PT09IHJlbGVhc2UgMS4xMy45MCA9PT0KCjIwMTgtMDMtMDMgMjE6NTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjEzLjkwCgoyMDE4LTAzLTAzIDIxOjUxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JldHJhY2Vycy54bWw6CgkgIFVwZGF0ZSBkb2NzCgoyMDE4LTAyLTEzIDIyOjIwOjE4ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJICBwbHVnaW5zOiBEb24ndCBmb3JjZSA2NC1iaXQgZmlsZS9zZWVrIGZ1bmN0aW9ucyB2YXJpYW50cyBvbiBhbmRyb2lkCgkgIE1vc3QgZnVuY3Rpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGNob3NlbiBmcm9tIHRoZSBfRklMRV9PRkZTRVRfQklUUwoJICBkZWZpbmUsIHRoZSByZW1haW5pbmcgb25lIChmc3RhdCkgaXMgb25seSBhdmFpbGFibGUgb24gQVBJID49IDIxIHNvCgkgIGNoZWNrIGZvciB0aGF0CgoyMDE4LTAzLTAxIDIyOjIxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IHN5bWJvbCB0byBkb2NzIGFuZCAuZGVmIGZpbGUKCSAgRml4ZXMgbWFrZSBjaGVjawoKMjAxOC0wMy0wMSAxNjoxOTowOSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogSWdub3JlIHRocmVzaG9sZHMgaWYgYSBxdWVyeSBpcyBxdWV1ZWQKCSAgVGhlIHF1ZXVlIGdldHMgZmlsbGVkIGJ5IHRoZSB0YWlsLCBzbyBhIHF1ZXJ5IHdpbGwgYWx3YXlzIGJlIHRoZSB0YWlsCgkgIG9iamVjdCwgbm90IHRoZSBoZWFkIG9iamVjdC4gQWxzbyBhZGQgYSBfcGVla190YWlsX3N0cnVjdCgpIG1ldGhvZCB0byB0aGUKCSAgR3N0UXVldWVBcnJheSB0byBlbmFibGUgbG9va2luZyBhdCB0aGUgdGFpbC4KCSAgV2l0aCB1bml0IHRlc3QgdG8gcHJldmVudCBmdXR1cmUgcmVncmVzc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg3NQoKMjAxOC0wMy0wMSAxODozODowMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IC1XZm9ybWF0LSogcmVxdWlyZSAtV2Zvcm1hdAoKMjAxOC0wMy0wMSAxNzoyMDowNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBlbmFibGUgbW9yZSB3YXJuaW5ncwoJICBNb2RlbGVkIG9uIHRoZSBhdXRvdG9vbHMgYnVpbGQsIC1XIGZsYWdzIGFyZSBvbmx5CgkgIGFkZGVkIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyB0aGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTU4CgoyMDE4LTAzLTAxIDAwOjMxOjExICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGdzdGFnZ3JlZ2F0b3I6IHBhZHMgbXVzdCBpbmhlcml0IGZyb20gI0dzdEFnZ3JlZ2F0b3JQYWQKCSAgRG9jdW1lbnQgdGhpcywgYW5kIHRha2UgYWR2YW50YWdlIG9mIHRoYXQgZmFjdCB0byB1c2UKCSAgR3N0QWdncmVnYXRvci5zcmNwYWQuc2VnbWVudCBpbnN0ZWFkIG9mIEdzdEFnZ3JlZ2F0b3Iuc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTQyCgoyMDE4LTAzLTAxIDAxOjE1OjM0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIFJldmVydCAiZ3N0YWdncmVnYXRvcjogcGFkcyBtdXN0IGluaGVyaXQgZnJvbSAjR3N0QWdncmVnYXRvclBhZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5Nzc0YjM3NzVkODQ4M2U1Njk3ZjkxOTZhMjZjMWU1ODMxMTEzYmQ2LgoJICBQdXNoZWQgYnkgbWlzdGFrZQoKMjAxOC0wMy0wMSAwMToxMjowNyArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGVuc3VyZSB3ZSBidWlsZCBhIGdob3N0IHBhZCAuLgoJICBXaGVuIHdlIGNvbnN0cnVjdCBmcm9tIGEgY3VzdG9tIEdUeXBlCgoyMDE4LTAzLTAxIDAxOjA5OjQ4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggbWl4ZWQgZGVjbGFyYXRpb25zCgoyMDE4LTAzLTAxIDAwOjMxOjExICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGdzdGFnZ3JlZ2F0b3I6IHBhZHMgbXVzdCBpbmhlcml0IGZyb20gI0dzdEFnZ3JlZ2F0b3JQYWQKCSAgRG9jdW1lbnQgdGhpcywgYW5kIHRha2UgYWR2YW50YWdlIG9mIHRoYXQgZmFjdCB0byB1c2UKCSAgR3N0QWdncmVnYXRvci5zcmNwYWQuc2VnbWVudCBpbnN0ZWFkIG9mIEdzdEFnZ3JlZ2F0b3Iuc2VnbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzOTQyCgoyMDE4LTAyLTI4IDE5OjUzOjQyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhbGxvdyBzcmMgR3N0QWdncmVnYXRvclBhZHMKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5MTcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzkzNAoKMjAxOC0wMi0yOCAxOTo1MTo0NCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkLCBnaG9zdHBhZDogdXNlIHRoZSB0ZW1wbGF0ZSBndHlwZSBpZiBzcGVjaWZpZWQKCSAgQWxzbyBtYWtlIHN1cmUgdGhlIEdUeXBlIHBhc3NlZCB0byB0aGUgd2l0aF9ndHlwZSB2ZXJzaW9ucwoJICBvZiB0aGUgdGVtcGxhdGUgY29uc3RydWN0b3JzIGlzX2EgR3N0UGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM5MzMKCjIwMTgtMDItMjEgMjI6MjU6MjUgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGludGVnZXIgb3ZlcmZsb3cgaW4gYml0cmF0ZSBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjg0CgoyMDE4LTAyLTIxIDIyOjAxOjM2IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEF2b2lkIG92ZXJmbG93IGluIHVwZGF0ZV9pbnRlcnZhbCBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjg0CgoyMDE4LTAyLTIxIDIxOjQzOjU5IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBjaGVjayBmb3IgdXBkYXRlX2ludGVydmFsCgkgIHVwZGF0ZV9pbnRlcnZhbCBtYXkgYmUgLTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzI4NAoKMjAxOC0wMi0xOSAxNTozOTo0NiArMDkwMCAgSnVzdGluIEtpbSA8anVzdGluLmtpbUBjb2xsYWJvcmEuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBVc2UgLmR5bGliIHN1ZmZpeCBpZiBkYXJ3aW4KCSAgRm9yIE1hYyBPUywgR1NUX0VYVFJBX01PRFVMRV9TVUZGSVggc2hvdWxkIGJlIHNldCBhcyAnLmR5bGliJy4KCSAgT3RoZXJ3aXNlLCBHU3RyZWFtZXIgZmFpbHMgdG8gbG9hZCBpdHMgcGx1Z2lucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MzU4NAoKMjAxOC0wMi0wMSAxODoyOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgcXVldWVhcnJheTogYWRkIF9wZWVrX3RhaWwoKSBhbmQgX3BvcF90YWlsKCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcG9wX3RhaWwoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wZWVrX3RhaWwoKQoJICBUaGVzZSB3aWxsIGJlIG5lZWRlZCBsYXRlciBmb3IgYXBwc3JjLgoKMjAxOC0wMi0xMyAxMjozODozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3Q6IGZpeCBzb21lIEdJUiBhbm5vdGF0aW9ucwoJICBNb3N0bHkgcmVsYXRlZCB0byBvdXQgcGFyYW1ldGVycyBhbmQgdGhlaXIgdHJhbnNmZXIKCjIwMTgtMDEtMTAgMDQ6MDg6NTcgKzAxMDAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgPGFib3lhQGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgZ3N0YmFzZXNpbms6IEluY2x1ZGUgc2VnbWVudC5vZmZzZXQgaW4gdGhlIGNvbXB1dGF0aW9uIG9mIHBvc2l0aW9uCgkgIFBvc2l0aW9uIHF1ZXJpZXMgd2l0aCBHU1RfRk9STUFUX1RJTUUgYXJlIHN1cHBvc2VkIHRvIHJldHVybiBzdHJlYW0KCSAgdGltZS4KCSAgZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24oKSBlc3RpbWF0ZXMgdGhlIGN1cnJlbnQgc3RyZWFtIHRpbWUgb24gaXRzCgkgIG93biBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKCksIGJ1dCB0aGUgYWxnb3JpdGhtCgkgIHVzZWQgd2FzIG5vdCB0YWtpbmcgc2VnbWVudC5vZmZzZXQgaW50byBhY2NvdW50LCByZXN1bHRpbmcgaW4gaW52YWxpZAoJICB2YWx1ZXMgd2hlbiB0aGlzIGZpZWxkIHdhcyBzZXQgdG8gYSBub24temVybyB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjQzNAoKMjAxOC0wMi0xNSAxMjo1ODo0MyArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgdHJhY2VyczogbGF0ZW5jeTogYWxsb3cgZm9yIG5vbiBwYXJlbnRlZCBwYWRzIHRvIHNlbmQgbGF0ZW5jeSBwcm9iZXMKCSAgU3VjaCBhIHNldHVwIGlzIHVzZWQgaW4gcnRzcHNyYyBmb3IgaXRzIFRDUCBjb25uZWN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTM0NzgKCjIwMTgtMDItMTUgMTk6NDQ6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJKiBtZXNvbi5idWlsZDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xMy4xID09PQoKMjAxOC0wMi0xNSAxNjozMToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE5FV1M6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZXRyYWNlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogbWVzb24uYnVpbGQ6CgkgIFJlbGVhc2UgMS4xMy4xCgoyMDE4LTAyLTE1IDEzOjM2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBwaXBlbGluZTogdHJ5IHRvIG1ha2UgdGVzdF9waXBlbGluZV9yZXNldF9zdGFydF90aW1lIG1vcmUgcmVsaWFibGUKCSAgT2NjYXNpb25hbGx5IHRoaXMgdGVzdCB3b3VsZCBmYWlsLCBlc3BlY2lhbGx5IGlmIHRoZSBzeXN0ZW0gaXMgdW5kZXIgbG9hZCwKCSAgYmVjYXVzZSB0aGUgcG9zaXRpb24gcXVlcnkgd291bGQgcGljayB1cCB0aGUgbGFzdCBwb3NpdGlvbiBmcm9tIHRoZQoJICBsYXN0IGJ1ZmZlciB0aW1lc3RhbXAgd2hpY2ggaGFzIGEgbG93ZXIgdGltZXN0YW1wIHRoYW4gd2hhdCB3ZSdyZQoJICBsb29raW5nIGZvci4gVGhlIHNsZWVwIGlzIGxvbmcgZW5vdWdoLCBob3dldmVyLiBJdCdzIHVuY2xlYXIgdG8gbWUgd2h5CgkgIGV4YWN0bHkgdGhpcyBoYXBwZW5zIGJ1dCB0aGVyZSBzZWVtcyB0byBiZSBzb21lIGtpbmQgb2Ygc2NoZWR1bGluZwoJICBpc3N1ZSBnb2luZyBvbiBhcyB0aGUgc3RyZWFtaW5nIHRocmVhZCBmbG9vZHMgdGhlIHNpbmsgd2l0aCBidWZmZXJzLgoJICBMZXQncyB0aHJvdHRsZSB0aGUgZmFrZXNyYyB0byAxMDAgYnVmZmVycyBwZXIgc2Vjb25kIGFuZCBtYWtlIHRoZSBzaW5rCgkgIHN5bmMgdG8gdGhlIGNsb2NrIHRvIHJlc3RvcmUgc29tZSBzYW5pdHkuIEl0IHNob3VsZCBiZSB0b3RhbGx5IHN1ZmZpY2llbnQKCSAgdG8gdGVzdCB3aGF0IHdlIHdhbnQgdG8gdGVzdCwgYW5kIHNlZW1zIHRvIG1ha2UgdGhpbmdzIHJlbGlhYmxlIGhlcmUuCgoyMDE4LTAyLTE1IDEyOjAzOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB0ZXN0czogdXJpOiBmaXggYnVpbGQgd2l0aG91dCAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKCSAgTXVzdCB1bmRlZmluZSBpdCBiZWZvcmUgaW5jbHVkaW5nIGdzdCBoZWFkZXJzLCBzaW5jZSB0aGUgdGVzdAoJICB0ZXN0cyBkZXByZWNhdGVkIEFQSS4KCjIwMTgtMDItMTUgMTI6MDk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiB3YW50IGRlcHJlY2F0aW9uIHdhcm5pbmdzIGlmIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgaXMgKnNldCoKCSAgRml4IGludmVydGVkIGxvZ2ljLiBJZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzIHVuZGVmaW5lZCwKCSAgd2UgZG9uJ3Qgd2FudCB3YXJuaW5ncyBhYm91dCBkZXByZWNhdGVkIEFQSSwgYW5kIGlmIGl0J3MKCSAgZGVmaW5lZCB3ZSBkbyB3YW50IHdhcm5pbmdzLgoKMjAxOC0wMi0xNSAxMToyODoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTgtMDItMTQgMTk6Mzc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgZmxvdyBjb21iaW5lciByZWYvdW5yZWYgdG8gZG9jcwoJICBTbyBuZXctaW4tMS4xMiBpbmRleCBhY3R1YWxseSBoYXMgc29tZSBlbnRyaWVzLgoKMjAxOC0wMi0xNCAxOToxMzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBpbmRleCBmb3IgbmV3IHN5bWJvbHMgaW4gMS4xNAoKMjAxOC0wMi0xNCAxOToxMjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBpbmRleCBmb3IgbmV3IHN5bWJvbHMgaW4gMS4xMgoKMjAxOC0wMi0wOCAxNzoyMjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogbWFrZSB2ZXJzaW9uIG51bWJlcnMgaW50cyBhbmQgZml4IGludC9zdHJpbmcgY29tcGFyaXNvbgoJICBXQVJOSU5HOiBUcnlpbmcgdG8gY29tcGFyZSB2YWx1ZXMgb2YgZGlmZmVyZW50IHR5cGVzIChzdHIsIGludCkuCgkgIFRoZSByZXN1bHQgb2YgdGhpcyBpcyB1bmRlZmluZWQgYW5kIHdpbGwgYmVjb21lIGEgaGFyZCBlcnJvcgoJICBpbiBhIGZ1dHVyZSBNZXNvbiByZWxlYXNlLgoKMjAxOC0wMi0wMyAxNzo1NjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSAgYXV0b3Rvb2xzOiB1c2UgLWZuby1zdHJpY3QtYWxpYXNpbmcgd2hlcmUgc3VwcG9ydGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxODMKCjIwMTgtMDItMDMgMTc6NTU6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZml4IGd0ay1kb2Mgd2FybmluZyByZWdhcmRpbmcgX2dldF9uX21ldGEoKSBkZWNsYXJhdGlvbgoKMjAxOC0wMi0wMiAwMDoyNDoyMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByb21pc2UuYzoKCSogZ3N0L2dzdHByb21pc2UuaDoKCSAgZ3N0cHJvbWlzZTogYWRkIHNpbmNlIDEuMTQgbWFya2VycwoKMjAxNy0xMC0xOCAyMToyNDoxOSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHdlYnJ0YyB0byBsaWJyYXJpZXMKCjIwMTgtMDEtMzEgMTQ6MDE6MzYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBnc3RidWZmZXIuaDogbW92ZSBGTEFHX0xBU1QgZG9jdW1lbnRhdGlvbiBiYWNrIHRvIHRoZSBib3R0b20KCjIwMTgtMDEtMzEgMTM6MzY6MTUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFubm90YXRlIHZpcnR1YWwgbWV0aG9kcwoKMjAxOC0wMS0zMCAxNjo0MTozOSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGdzdGJ1ZmZlcjogYWRkIEdTVF9CVUZGRVJfRkxBR19OT05fRFJPUFBBQkxFCgkgIFRoaXMgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgYnVmZmVycyBmb3Igd2hpY2ggYSBoaWdoZXIgcGVyY2VudGFnZQoJICBvZiByZWR1bmRhbmN5IHNob3VsZCBiZSBhbGxvY2F0ZWQgd2hlbiBwZXJmb3JtaW5nIGZvcndhcmQgZXJyb3IKCSAgY29ycmVjdGlvbiwgb3IgdG8gcHJldmVudCBzdGlsbCB2aWRlbyBmcmFtZXMgZnJvbSBiZWluZyBkcm9wcGVkIGJ5CgkgIGVsZW1lbnRzIGR1ZSB0byBRb1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTMwMDgKCjIwMTgtMDEtMzAgMjA6MzA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHVzZSAtZm5vLXN0cmljdC1hbGlhc2luZyBpZiBzdXBwb3J0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTE4MwoKMjAxNy0xMi0yMyAxNjo0NToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl9nZXRfbl9tZXRhKCkgY29udmVuaWVuY2UgZnVuY3Rpb24KCSAgQ291bnRzIGhvdyBtYW55IG1ldGFzIHRoZXJlIGFyZSBmb3IgYSBjZXJ0YWluIGFwaSB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxOTE4CgoyMDE3LTEwLTIyIDE4OjA1OjMwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBGaXggdXAgYSBidW5jaCBvZiBHSVIgYW5ub3RhdGlvbnMKCSAgVGhpcyBpcyBtb3N0bHkgb24gbnVsbGFibGUgcmV0dXJuIHZhbHVlcywgYW5kIHNvbWUgb3RoZXIgbWlub3Igb25lcyB0aGF0CgkgIEkgcmFuIGFjcm9zcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTMxOQoKMjAxNy0wNS0yNyAwNToxOToyMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogUmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBGQUxTRQoJICBTYW1lIGVmZmVjdCwgbWVhbmluZyBpcyBjbGVhcmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzE5CgoyMDE4LTAxLTI2IDEyOjQyOjI4ICswMTAwICBGcmFuw6dvaXMgTGFpZ25lbCA8ZmVuZ2FsaW5AZnJlZS5mcj4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBBZGQgZ3N0X21lc3NhZ2Vfd3JpdGFibGVfc3RydWN0dXJlKCkKCSAgQWRkIGdzdF9tZXNzYWdlX3dyaXRhYmxlX3N0cnVjdHVyZSgpIHRvIGJlIGFibGUgdG8gYWRkIGV4dHJhIGZpZWxkcyB0bwoJICBtZXNzYWdlcyAoYW5kIGJlIG9uIHBhciB3aXRoIEdzdEV2ZW50KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjkyOAoKMjAxOC0wMS0yMyAyMjo0OTo1MiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZGVsZWdhdGUgYnVmZmVyIHNraXBwaW5nIHRvIHRoZSBhZ2dyZWdhdGUgdGhyZWFkCgkgIEFzIHdlIGRvIHRoYXQgZm9yIHNlcmlhbGl6ZWQgZXZlbnRzIGFzIHdlbGwsIGFuZCB0aGUgc3ViY2xhc3Mgd2lsbAoJICBtb3N0IGxpa2VseSBuZWVkIHRvIGFjY2VzcyBwYWQtPnNlZ21lbnQgdG8gbWFrZSBpdHMgZGVjaXNpb25zLAoJICBkb2luZyB0aGF0IGZyb20gdGhlIHNpbmtwYWQncyBzdHJlYW1pbmcgdGhyZWFkcyB3YXMgcmFjeS4KCjIwMTctMTItMjggMTI6MTI6NDUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBBUEk6IEdzdEFnZ3JlZ2F0b3JQYWQuc2tpcF9idWZmZXIgdmlydHVhbCBtZXRob2QKCSAgQWxsb3dzIHN1YmNsYXNzZXMgdG8gcHJldmVudCBidWZmZXJzIGZyb20gYmVpbmcgcXVldWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxOTI4CgoyMDE4LTAxLTIzIDIwOjA0OjAyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBBbm5vdGF0ZSBzb21lIG9mIHRoZSB2aXJ0dWFsIG1ldGhvZHMKCjIwMTgtMDEtMjMgMDg6NTY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFnZ3JlZ2F0b3I6IHJlbmFtZSBfZ2V0X2J1ZmZlcigpIC0+IF9wZWVrX2J1ZmZlcigpIGFuZCBfc3RlYWwgLT4gX3BvcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMjA0CgoyMDE4LTAxLTIwIDE1OjMwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZ3JhY2VmdWxseSBoYW5kbGUgbWV0aG9kcyBiZWluZyBOVUxMCgkgIERvIHRoaXMgZm9yIGFsbCBtZXRob2QgaW52b2tlIGZ1bmN0aW9ucyBmb3IgY29uc2lzdGVuY3kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNTQKCjIwMTgtMDEtMTggMTg6MTE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCSAgRml4ZXMgY2hlY2sgKyBkaXN0Y2hlY2sKCjIwMTctMDgtMDEgMTA6NDM6MzIgKzAyMDAgIE1pY2hlbGUgRGlvbmlzaW8gPG1pY2hlbGUuZGlvbmlzaW9AZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogZml4IGJ1aWxkIGZhaWx1cmUgd2l0aCAjdW5kZWYgVVNFX01FQVNVUkVNRU5UX0ZJTFRFUklORwoJICAiTGFiZWwg4oCYb3V04oCZIHVzZWQgYnV0IG5vdCBkZWZpbmVkIiwgc2luY2UgaXQncyBhbHNvIHVzZWQgYnkKCSAgdGhlIFVTRV9NRURJQU5fUFJFX0ZJTFRFUklORyBicmFuY2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU2MzEKCjIwMTgtMDEtMTggMTk6MTY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IEFuZCBhZGQgbWlzc2luZyBHU1RfRVhQT1JUIHRvIGdzdF9wYWRfdGVtcGxhdGVfbmV3X3dpdGhfZ3R5cGUoKQoKMjAxOC0wMS0xOCAxOToxNTowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQWRkIG1pc3NpbmcgU2luY2U6IDEuMTQgbWFya2VyIHRvIGdzdF9wYWRfdGVtcGxhdGVfbmV3X3dpdGhfZ3R5cGUoKQoKMjAxOC0wMS0xOCAxOTowODoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IEFkZCBnc3RfcGFkX3RlbXBsYXRlX25ld193aXRoX2d0eXBlKCkKCSAgRm9yIGJlaW5nIGFibGUgdG8gY3JlYXRlIGEgcGFkIHRlbXBsYXRlIHdpdGggR1R5cGUgd2l0aG91dCBoYXZpbmcgYQoJICBzdGF0aWMgcGFkIHRlbXBsYXRlLgoKMjAxOC0wMS0xOCAxOTowNzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQWRkIFNpbmNlOiAxLjE0IG1hcmtlciB0byBnc3RfcGFkX3RlbXBsYXRlX25ld19mcm9tX3N0YXRpY19wYWRfdGVtcGxhdGVfd2l0aF9ndHlwZSgpCgoyMDE4LTAxLTE2IDEwOjE3OjU4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEF2b2lkIHN0cmVhbS1kZWFkLWxvY2sgb24gZGVhY3RpdmF0aW9uCgkgIFRoZSBmb2xsb3dpbmcgY2FzZSBjYW4gaGFwcGVuIHdoZW4gdHdvIHRocmVhZCB0cnkgdG8gYWN0aXZhdGUgYW5kCgkgIGRlYWN0aXZhdGUgYSBwYWQgYXQgdGhlIHNhbWUgdGltZToKCSAgVDE6IHN0YXJ0cyB0byBkZWFjdGl2YXRlLCBjYWxscyBwcmVfYWN0aXZhdGUoKSwgc2V0cyBpbl9hY3RpdmF0aW9uCgkgIHRvIFRSVUUgYW5kIGNhcnJpZXMgb24KCSAgVDI6IHN0YXJ0cyB0byBhY3RpdmF0ZSwgY2FsbHMgcHJlX2FjdGl2YXRlKCksIGluX2FjdGl2YXRpb24gaXMgVFJVRQoJICBzbyBpdCB3YWl0cyBvbiB0aGUgR0NvbmQKCSAgVDE6IGNhbGxzIHBvc3RfYWN0aXZhdGUoKSwgdHJpZXMgdG8gYWNxdWlyZSB0aGUgc3RyZWFtaW5nIGxvY2sgLi4KCSAgYnV0IGNhbid0IGJlY2F1c2UgVDIgaXMgY3VycmVudGx5IGhvbGRpbmcgaXQKCSAgV2l0aCB0aGlzIHBhdGNoLCB0aGUgZGVhZGxvY2sgd2lsbCBubyBsb25nZXIgaGFwcGVuIGJ1dCBkb2VzIG5vdAoJICBzb2x2ZSB0aGUgcHJvYmxlbSB0aGF0OgoJICBUMjogd2lsbCByZXN1bWUgYWN0aXZhdGlvbiBvZiB0aGUgcGFkLCBzZXQgdGhlIHBhZCBtb2RlIHRvIHRoZSB0YXJnZXQKCSAgb25lIChQVVNIIG9yIFBVTEwpIGFuZCBldmVudHVhbGx5IHRoZSBzdHJlYW1pbmcgbG9jayBnZXRzIHJlbGVhc2VkLgoJICBUMTogaXMgYWJsZSB0byBmaW5pc2ggY2FsbGluZyBwb3N0X2FjdGl2YXRlKCkgLi4uIGJ1dCAuLi4gdGhlIHBhZAoJICB3YXNuJ3QgZGVhY3RpdmF0ZWQgKFQyIHdhcyB0aGUgbGFzdCBvbmUgdG8gImFjdGl2YXRlIiB0aGUgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMzQxCgoyMDE4LTAxLTE1IDE4OjEzOjQ1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IFJlbGVhc2UgcGVuZGluZyBnX2NvbmRfd2FpdCgpIHdoZW4gc3RvcHBpbmcvcGF1c2luZyB0YXNrCgkgIE90aGVyd2lzZSB3ZSB3b3VsZCBkZWFkbG9jayB3YWl0aW5nIGZvcmV2ZXIgZm9yIHRoZSBzdHJlYW1pbmcgbG9jawoJICB0byBiZSByZWxlYXNlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMzQxCgoyMDE4LTAxLTEzIDExOjA4OjAwICswODAwICBKdW4gWGllIDxqdW4ueGllQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogZml4IGNvbmZ1c2luZyBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBJbiBjYXNlIG9mIGEgc2hvcnQgYnVmZmVyLCB0aGUgZGVidWcgbG9nIGlzIHF1aXRlIGNvbmZ1c2luZy4KCSAgRGlzdGluZ3Vpc2ggdGhlIHR3byB0eXBlcyBvZiBmYWlsdXJlIGNhc2VzIHRvIG1ha2UgaXQgY2xlYXJlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjQ4NgoKMjAxOC0wMS0xMiAxODo0NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZXhwbGljaXQgcmVmZXIgdG8gR09iamVjdCBkb2NzIGZvciBmbG9hdGluZyByZWZzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg0NzcKCjIwMTgtMDEtMTEgMTk6NTI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0czogZmFrZXNpbms6IG1ha2Ugbm90aWZ5IHN0cmVzcyB0ZXN0IHdvcmsgYmV0dGVyIG9uIFdpbmRvd3MKCSAgU2V0IHVwIGFsbCB0ZW4gcGlwZWxpbmVzIGFuZCBwcmVyb2xsIHRoZW0gZmlyc3QsIGFuZCBvbmx5IHNldAoJICB0aGVtIHRvIHBsYXlpbmcgdG8gcnVuIHdpbGQgYWZ0ZXIgdGhleSdyZSBhbGwgc2V0IHVwLiBJZiB3ZSBzZXQKCSAgdGhlbSB0byBQTEFZSU5HIGRpcmVjdGx5IGFuZCBsZXQgdGhvc2UgdGhyZWFkcyBydW4gd2lsZCwgdGhlbgoJICBpdCBtaWdodCB0YWtlIGFnZXMgKG1hbnkgc2Vjb25kcykgZm9yIHRoZSBvdGhlciBwaXBlbGluZXMgdG8KCSAgZXZlbiBnZXQgdXAgYW5kIHJ1bm5pbmcsIGVzcGVjaWFsbHkgb24gbWFjaGluZXMgd2l0aCBvbmx5IG9uZQoJICBvciB0d28gY29yZXMsIGFuZCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IHN1Y2sgYXQgc2NoZWR1bGluZy4KCSAgTm93IHRoZSBmYWtlc2luayB0ZXN0IHRha2VzIDE5IHNlY3MgaW5zdGVhZCBvZiA3MSBzZWNzIG9uIGEKCSAgc2luZ2xlLWNwdSB3aW5kb3dzIG1hY2hpbmUuCgoyMDE4LTAxLTExIDE5OjMyOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogZmlsZXNyYzogbW9yZSBXaW5kb3dzIGZpeGVzCgkgIEZpeCB0eXBvIGluIG5ld2x5LWFkZGVkIHdpbmRvd3MgdXJpIHRlc3QuCgoyMDE4LTAxLTExIDE4OjQ0OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSBhcyBmYWxsYmFjayBpbiBnc3RfdXRpbHNfZ2V0X3RpbWVzdGFtcCgpCgkgIFRoaXMgaXMgYSBiZXR0ZXIgZml0IGdpdmVuIHRoYXQgdGhlIGZ1bmN0aW9uIGRvY3Mgc2F5IHRoaXMKCSAgc2hvdWxkIChvbmx5KSBiZSB1c2VkIGZvciBpbnRlcnZhbCBtZWFzdXJlbWVudHMsIGJ1dCBhbHNvCgkgIHRoaXMgc2VlbXMgdG8gZ2l2ZSBtdWNoIGJldHRlciBncmFudWxhcml0eSBvbiBXaW5kb3dzCgkgIHN5c3RlbXMsIHdoZXJlIGJlZm9yZSB0aGlzIGNoYW5nZSB0aGVyZSB3b3VsZCBvZnRlbiBiZQoJICAxMC0yMCBsaW5lcyBvZiBkZWJ1ZyBsb2cgd2l0aCB0aGUgc2FtZSB0aW1lc3RhbXAgdXAgZnJvbnQuCgoyMDE4LTAxLTExIDE4OjM5OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBzeXN0ZW1jbG9jazogc2NhbGUgc3RyZXNzIHRlc3QgdGhyZWFkcyBhY2NvcmRpbmcgdG8gbnVtYmVyIG9mIGNwdXMKCSAgU2NhbGUgdGhlIG51bWJlciBvZiB0aHJlYWRzIHVzZWQgaW4gdGhlIHN0cmVzcyB0ZXN0cyBhY2NvcmRpbmcgdG8KCSAgdGhlIG51bWJlciBvZiBjb3Jlcy9jcHVzLiBXZSB3YW50IHNvbWUgY29udGVudGlvbiwgYnV0IHdlIGFsc28KCSAgZG9uJ3Qgd2FudCB0b28gbXVjaCBjb250ZW50aW9uLCBhcyBzb21lIG9wZXJhdGluZyBzeXN0ZW1zIGFyZQoJICBiZXR0ZXIgYXQgaGFuZGxpbmcgMTAwIHRocmVhZHMgcnVubmluZyB3aWxkIG9uIGEgc2luZ2xlIGNvcmUKCSAgdGhhbiBvdGhlcnMuCgoyMDE4LTAxLTExIDE3OjEwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHBsdWdpbl9sb2FkKCkgbXVzdCByZXR1cm4gYSByZWYgZXZlbiBpZiBpdCB3YXMgbG9hZGVkIGFscmVhZHkKCSAgRml4IHJlZmNvdW50aW5nIGlzc3VlIHdoZW4gcGx1Z2luIHdhcyBsb2FkZWQgYWxyZWFkeS4KCSAgZ3N0X3BsdWdpbl9sb2FkKCkgaXMgc3VwcG9zZWQgdG8gcmV0dXJuIGEgcmVmLCBzbyBpdAoJICBtdXN0IGFsd2F5cyByZXR1cm4gYSByZWYuCgkgIFRoaXMgYWxzbyBmaXhlcyB0aGUgZ3N0cGx1Z2luIHVuaXQgdGVzdCBvbiB3aW5kb3dzIHdoZXJlCgkgIGZvcmsgaXMgbm90IGF2YWlsYWJsZSBhbmQgd2hlcmUgdGVzdF9sb2FkX2NvcmVlbGVtZW50cygpCgkgIHdvdWxkIHVucmVmIGEgcGx1Z2luIHJlZiBpdCBkaWRuJ3QgZ2V0IGFuZCB0aGVuIG1lc3MgdXAKCSAgdGhlIGludGVybmFsIHJlZ2lzdHJ5IHBsdWdpbiBsaXN0IHN0YXRlIGZvciB0aGUgbmV4dCB0ZXN0LAoJICBpbiBjYXNlIHdoZXJlIHRoZSB0ZXN0IHJlZ2lzdHJ5IGRvZXMgbm90IGV4aXN0IHlldC4KCjIwMTgtMDEtMTEgMTQ6NTY6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiBmaWxlc3JjOiBmaXggZm9yIHdpbmRvd3MKCSAgTG9jYXRpb24gcGF0aHMgaGF2ZSBiYWNrc2xhc2hlcyBvbiB3aW5kb3dzIHdoZW4gY29udmVydGVkIGZyb20gVVJJLgoKMjAxOC0wMS0xMSAxMjoyNzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGxpYnM6IGNoZWNrOiBwcmludCBzdGFja3RyYWNlIG9uIHVuZXhwZWN0ZWQgY3JpdGljYWxzCgoyMDE4LTAxLTExIDEyOjAyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjR3Lmg6CgkgIHRlc3RzOiBhYmk6IGZpeCBhYmkgdGVzdCBvbiA2NC1iaXQgV2luZG93cwoJICBBZGQgaGVhZGVyIHdpdGggc3RydWN0dXJlIHNpemVzIGZvciA2NC1iaXQgd2luZG93cyBhcyB3ZWxsLgoJICBUaGV5J3JlIGFsbW9zdCB0aGUgc2FtZSBhcyBvbiBMaW51eCwgYnV0IGl0IGxvb2tzIGxpa2UgdGhpbmdzCgkgIGxpa2UgcGFkZGluZyB1bmlvbnMgZ2V0IGFsaWduZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkgc28gdGhlcmUKCSAgYXJlIGEgaGFuZGZ1bCBvZiBkaWZmZXJlbmNlczoKCSAgc2l6ZW9mKEdzdEdob3N0UGFkKSBpcyA1MjgsIGV4cGVjdGVkIDUzNgoJICBzaXplb2YoR3N0UGFkKSBpcyA1MTIsIGV4cGVjdGVkIDUyMAoJICBzaXplb2YoR3N0UGFkUHJvYmVJbmZvKSBpcyA2NCwgZXhwZWN0ZWQgNzIKCSAgc2l6ZW9mKEdzdFByb3h5UGFkKSBpcyA1MjAsIGV4cGVjdGVkIDUyOAoKMjAxOC0wMS0xMSAxMTozODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBmaXggcG9zdCBpbml0IGNhdCByZWcgdGVzdCBvbiB3aW5kb3dzIGFuZCB3aXRoIENLX0ZPUks9bm8KCSAgVGhlIHRlc3QgY2hlY2tzIHRoYXQgY2F0ZWdvcmllcyBub3QgY292ZXJlZCBieSB0aGUgcGF0dGVybiBpbiB0aGUKCSAgR1NUX0RFQlVHIHN0cmluZyBoYXZlIGRlYnVnIGxldmVsIEdTVF9MRVZFTF9ERUZBVUxUIHNldCwgYnV0IHByZXZpb3VzCgkgIHRlc3RzIG1lc3Mgd2l0aCB0aGUgZGVmYXVsdCB0aHJlc2hvbGQsIHdoaWNoIG1hZGUgdGhpcyB0ZXN0IGZhaWwgb24KCSAgV2luZG93cyBvciB3aGVuIHJ1biB3aXRoIENLX0ZPUks9bm8uIEZpeCB0aGlzIGJ5IHJlc2V0dGluZyBldmVyeXRoaW5nCgkgIGF0IHRoZSBiZWdpbm5pbmcsIGFuZCB0aGVuIGFsc28gZG8gYSBzYW5pdHkgY2hlY2sgYWZ0ZXJ3YXJkcy4KCjIwMTgtMDEtMTEgMTE6MzY6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZXNldCBkZWZhdWx0IHRocmVzaG9sZCB0byBMRVZFTF9ERUZBVUxUIG5vdCAwCgkgIGluIHNldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcoKS4KCjIwMTctMTEtMDggMjA6MDU6MDMgKzAxMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jaGVjay9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbWVzb24uYnVpbGQ6CgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSogdGVzdHMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBtYWtlIGNoZWNrIGFuZCB0ZXN0cyBidWlsZCBvbiBXaW5kb3dzIHdpdGggbXN2YwoKMjAxOC0wMS0wMiAxMDowMjo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZ3N0aGFybmVzczogUmVtb3ZlIGRvdWJsZSBmcmVlCgoyMDE3LTEyLTI2IDE4OjA4OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSAgc3RyZWFtczogR3N0U3RyZWFtVHlwZS9Hc3RTdHJlYW0gYXJlIGF2YWlsYWJsZSBzaW5jZSAxLjEwCgkgIEFubm90YXRlIHRoZW0gYXMgc3VjaC4KCjIwMTctMTItMjYgMTM6NDY6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHNraXAgdHJhbnNsYXRpb25zIGlmIGdldHRleHQgaXMgbm90IGF2YWlsYWJsZQoKMjAxNy0xMi0yNiAxMjo1MToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgREVCVUdfRlVOQ1BUUgoJICBUaGUgbmV3IGdzdF9lbGVtZW50X2RvX2ZvcmVhY2hfcGFkKCkgZG9lcyBub3QgcHJpbnQgdGhlIGZ1bmN0aW9ucyBhbnltb3JlLgoKMjAxNy0xMi0yNiAxMjoxNzo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGFkZCBjb21tZW50IGZvciBob3cgdG8gaW1wcm92ZSB0cmFjZXIgc3VwcG9ydAoKMjAxNy0xMi0yNiAxMToyOTozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFkZCBhIEZJWE1FLTIuMCBmb3IgdGhlIGZvcm1hdCBwYXJhbWV0ZXJzCgkgIENhcHR1cmUgdGhlIHNvbWV3aGF0IG5vdCBvcmRpbmFyeSB1c2Ugb2YgdGhlIGV4dHJhIGZvcm1hdCBwYXJhbWV0ZXIgaW4gYQoJICBjb21tZW50LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODk3OQoKMjAxNy0xMi0yNCAxNjoyMTozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGVpbml0LmM6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBTa2lwIGdzdF9kZWluaXQoKSBpZiBnc3RyZWFtZXIgd2FzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseQoJICBDYW4gaGFwcGVuIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgb3B0aW9uIHBhcnNpbmcsIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxOTE0CgoyMDE3LTEyLTIzIDIzOjQzOjMzICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogUmVwbGFjZSBsYXJnZSB0ZXN0IG1hY3JvIHdpdGggZnVuY3Rpb24KCSAgSnVzdCBhIGJpdCBvZiBjbGVhbnVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY3CgoyMDE3LTEyLTE1IDA5OjQzOjQwICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogQ2hlY2sgd2UgZ2V0IENSRUFURStFTlRFUiBzdHJlYW0tc3RhdHVzZXMgd2hlbiBhZGRpbmcgcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY3CgoyMDE3LTEyLTE1IDA5OjE0OjU3ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IHN0YXJ0IG5ldyBwYWRzIHVudGlsIHBhcmVudGVkCgkgIFN0YXJ0IHRhc2sgb24gbmV3IHNvdXJjZSBwYWRzIGFkZGVkIGF0IHJ1bnRpbWUgYWZ0ZXIgdGhleQoJICBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGVsZW1lbnQsIG5vdCBkdXJpbmcgYWN0aXZhdGlvbi4KCSAgVGhpcyBlbnN1cmVzIHRoZSBwYWRzIGNhbiBwb3N0IHRoZWlyIENSRUFURSBzdHJlYW0tc3RhdHVzCgkgIG1lc3NhZ2VzIGFuZCB0aGUgYXBwbGljYXRpb24gY2FuIHNldCB0aHJlYWQgcHJpb3JpdGllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NwoKMjAxNy0xMi0xNSAwOToxNDowNyArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBTcGxpdCB0YXNrIGhhbmRsaW5nIGZyb20gZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY3CgoyMDE3LTEyLTIzIDIzOjI1OjU4ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEF2b2lkIGEgbWF5YmUtdW5pbml0aWFsaXplZCB3YXJuaW5nCgkgIEFyY2ggTGludXggeDg2XzY0LCBnY2MgNy4yLjEtMiwgLU9nIC1nMwoKMjAxNy0xMi0yMSAxMzo0Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IERvbid0IGhvbGQgdGhlIG11dGV4IHdoaWxlIHBvc2ludCB0aGUgZG93bmxvYWQtY29tcGxldGUgbWVzc2FnZQoJICBTb21ldGhpbmcgbWlnaHQgaGFuZGxlIGl0IGZyb20gYSBzeW5jIG1lc3NhZ2UgaGFuZGxlciBhbmQgY2FsbCBiYWNrIGludG8KCSAgZG93bmxvYWRidWZmZXIsIGNhdXNpbmcgYSBkZWFkbG9jay4KCjIwMTctMTItMjAgMTg6NTY6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHNldF9kZWZhdWx0KCkgY2xvY2sgcGFyYW1ldGVyIGNhbiBiZSBOVUxMCgoyMDE3LTEyLTIwIDE4OjExOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQW5ub3RhdGUgc2V0X2Nsb2NrKCkgY2xvY2sgcGFyYW1ldGVyIHdpdGggYWxsb3ctbm9uZQoKMjAxNy0xMi0yMCAxODowOToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFubm90YXRlIHNldF9idXMoKSBidXMgcGFyYW1ldGVyIGFzIGFsbG93LW5vbmUKCSAgSXQncyBwb3NzaWJsZSB0byByZXBsYWNlIHRoZSBidXMgd2l0aCBOVUxML05vbmUKCjIwMTctMTItMTAgMjI6NTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1cGRhdGUgZm9yIGdsIGxpYiBtb3ZlIGZyb20gYmFkIHRvIGJhc2UKCjIwMTctMTItMTEgMjA6NTg6MTYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbGxvdyBnb2luZyBwYXNzdGhyb3VnaCBpbnNpZGUgZGVjaWRlX2FsbG9jYXRpb24KCSAgU3ViLWNsYXNzIG1heSB3YW50IHRvIGRlY2lkZSB0byBnbyBwYXNzdGhyb3VnaC9pbi1wbGFjZSBieSBpbnNwZWN0aW5nCgkgIHRoZSBzdXBwb3J0IG1ldGEgQVBJcy4gVGhpcyBwYXRjaCBkdXBsaWNhdGVzIHRoZSBjaGVjayBmb3IgdGhpcyBtb2RlLAoJICBzbyB3ZSBzdGlsbCBkb24ndCBkbyB1bmVlZGVkIGFsbG9jYXRpb24gcXVlcnkgd2hpbGUgd2UgYWxsb3cgc3ViLWNsYXNzZXMKCSAgdG8gc3dpdGNoIHRoZSBiZWhhdmlvdXIgZHVyaW5nIGl0J3Mgb3duIGRlY2lkZV9hbGxvY2F0aW9uIGNhbGwuCgkgIE5vdGljZSB0aGF0IHN1Y2ggc3ViLWNsYXNzIG5lZWQgdG8gcmVzZXQgdGhlIGNsYXNzIHRvIG5vbi1wYXNzdGhyb3VnaCBpbgoJICBzZXRfY2FwcygpIGluIG9yZGVyIGZvciBkZWNpZGVfYWxsb2NhdGlvbiB0byBiZSBjYWxsZWQgYWdhaW4uIFRoaXMgaXMKCSAgbmVlZGVkIG90aGVyd2lzZSB3ZSdkIGJlIGRvaW5nIGFuIGFsbG9jYXRpb24gcXVlcnkgaW4gZWxlbWVudCBpbiB3aGljaAoJICBpdCBtYWtlIG5vIHNlbnNlIChub3RhYmx5IGNhcHNmaWx0ZXIpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNDUzCgoyMDE3LTEyLTE3IDE0OjE4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEFubm90YXRlIGFkZF9kZXBlbmRlbmN5KCkgYXJndW1lbnRzIGFzIE5VTEwtdGVybWluYXRlZCBhcnJheXMKCjIwMTctMTItMTQgMDA6MDM6MDQgKzA1MzAgIFVtYW5nIEphaW4gPG1haWx1bWFuZ2phaW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBHc3RCdXM6IFByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBmb3IgcmVmL3VucmVmIGR1cmluZyBidXMgd2F0Y2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE1ODgKCjIwMTctMTItMTQgMTY6MDU6MDAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgd2luMzIgZGVmcyBmb3IgdHJhY2VyIEFQSSBhZGRpdGlvbgoKMjAxNy0xMi0xNCAxNDo0ODo0NyArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlOGM3YTcxIHRvIDNmYTJjOWUKCjIwMTctMTItMDUgMjE6MzY6MzQgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmV0cmFjZXJzLnhtbDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgZG9jczogaW5jbHVkZSB0cmFjZXJzIGluIHRoZSBkb2N1bWVudGF0aW9uCgkgIFJlcXVpcmVzIGV4cG9zaW5nIHRoZSB0cmFjZXIgR1R5cGUgZnJvbSB0aGUgR3N0VHJhY2VyRmFjdG9yeSBpbiBvcmRlcgoJICB0byBsaW5rIHRoZSBwbHVnaW4gd2l0aCB0aGUgdHJhY2VyIGluIHRoZSBkb2N1bWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMjUzCgoyMDE3LTEyLTA1IDIwOjU2OjA5ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGNoZWNrL2hhcm5lc3M6IGZpeCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBvbiBidWZmZXIgcGFzc2luZyBmdW5jdGlvbnMKCjIwMTctMDgtMzAgMTM6MDM6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzcmM6IGFkZCBidWZmZXIgbGlzdCBzdXBwb3J0CgkgIEFkZCBhIGdzdF9iYXNlX3NyY19zdWJtaXRfYnVmZmVyX2xpc3QoKSBmdW5jdGlvbiB0aGF0IGFsbG93cyBzdWJjbGFzc2VzCgkgIHRvIHByb2R1Y2UgYSBidWZmZXJsaXN0IGNvbnRhaW5pbmcgbXVsdGlwbGUgYnVmZmVycyBpbiB0aGUgOjpjcmVhdGUoKQoJICBmdW5jdGlvbi4gVGhlIGJ1ZmZlcnMgaW4gdGhlIGJ1ZmZlciBsaXN0IHdpbGwgdGhlbiBhbHNvIGJlIHB1c2hlZCBvdXQKCSAgaW4gb25lIGdvIGFzIGEgR3N0QnVmZmVyTGlzdC4gVGhpcyBjYW4gcmVkdWNlIHB1c2ggb3ZlcmhlYWQKCSAgc2lnbmlmaWNhbnRseSBmb3Igc291cmNlcyB3aXRoIHBhY2tldGlzZWQgaW5wdXRzIChzdWNoIGFzIHVkcHNyYykKCSAgaW4gaGlnaC10aHJvdWdocHV0IHNjZW5hcmlvcy4KCSAgVGhlIF9zdWJtaXRfYnVmZmVyX2xpc3QoKSBhcHByb2FjaCB3YXMgY2hvc2VuIGJlY2F1c2UgaXQgaXMgZmFpcmx5CgkgIHN0cmFpZ2h0LWZvcndhcmQsIGJhY2t3YXJkcy1jb21wYXRpYmxlLCBiaW5kaW5ncy1mcmllbmRseSAoYXMgb3Bwb3NlZAoJICB0byBlLmcuIG1ha2luZyB0aGUgY3JlYXRlIGZ1bmN0aW9uIHJldHVybiBhIG1pbmkgb2JqZWN0IGluc3RlYWQpLAoJICBhbmQgaXQgYWxsb3dzIHRoZSBzdWJjbGFzcyBtYXhpbXVtIGNvbnRyb2w6IHRoZSBzdWJjbGFzcyBjYW4gZGVjaWRlCgkgIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUgd2hldGhlciB0byByZXR1cm4gYSBsaXN0IG9yIGEgc2luZ2xlIGJ1ZmZlcgoJICAod2hpY2ggd291bGQgYmUgbWVzc2llciBpZiB3ZSBhZGRlZCBhIGNyZWF0ZV9saXN0IHZpcnR1YWwgbWV0aG9kKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDI0MQoKMjAxNy0wOC0zMSAwMToxODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtaW5vciBjb2RlIHJlYWRhYmlsaXR5IGltcHJvdmVtZW50CgoyMDE3LTEyLTA3IDEyOjA1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IEZpeCBhIGZldyBndGstZG9jIHdhcm5pbmdzCgkgIEJyb2tlbiBsaW5rcyBtb3N0bHkuCgoyMDE3LTEyLTA2IDIwOjU4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBhZ2dyZWdhdG9yOiBmaXggY2FwcyBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNy0xMi0wNiAxNzowNzoyOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBIYW5kbGUgR1NUX1BBRF9QUk9CRV9IQU5ETEVEIG9uIHN0aWNreSBldmVudCBwdXNoCgkgIFdoZW4gYWN0dWFsbHkgcHVzaGluZyBhbiBldmVudCwgaWYgd2UgZ2V0IEdTVF9GTE9XX0NVU1RPTV9TVUNDRVNTXzEKCSAgKHdoaWNoIGlzIHRoZSBjb252ZXJzaW9uIG9mIEdTVF9QQURfUFJPQkVfSEFORExFRCByZXR1cm4gdmFsdWUpLAoJICBkb24ndCBjb25zaWRlciB0aGUgc3RpY2sgZXZlbnQgcHVzaCBhcyBpZ25vcmVkLCBidXQgYXMgaGFuZGxlZAoKMjAxNy0xMi0wNiAxMzo0MDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZXZlbnQvcXVlcnkvbWVzc2FnZTogQW5ub3RhdGUgZ2V0X3N0cnVjdHVyZSgpIHJldHVybiB2YWx1ZSBhcyBudWxsYWJsZQoKMjAxNy0xMi0wNiAxMzozNjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQWRkIGFuIGVtcHR5IHN0cnVjdHVyZSBpbiB3cml0YWJsZV9zdHJ1Y3R1cmUoKSBpZiB0aGVyZSBpcyBub25lIHlldAoJICBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBob3cgaXQgd29ya3MgZm9yIEdzdEV2ZW50IGFscmVhZHkuCgoyMDE3LTEyLTA1IDE4OjIxOjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHByb21pc2UuYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSAgZG9jczogTWlzYyBhZGRpdGlvbi9maXhlcwoJICBBbmQgYWxzbyBhZGQgdGhlICJTaW5jZSIgQVBJIHNlY3Rpb25zIGZvciAxLjEyIGFuZCAxLjE0CgoyMDE3LTEyLTA1IDE4OjIwOjM0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgR1NUX1NFUU5VTV9JTlZBTElECgkgIEFuZCBsaW5rIHRvIGl0CgoyMDE3LTEyLTA1IDE3OjI4OjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogTmV2ZXIgcmV0dXJuIGEgZ3JvdXBfaWQgb2YgMCwgYWRkIEdTVF9HUk9VUF9JRF9JTlZBTElECgkgIFZhcmlvdXMgcGx1Z2lucyB1c2Ugc3BlY2lhbCB2YWx1ZXMgKDAgb3IgR19NQVhVSU5UMzIpIGFzIGFuCgkgIGludmFsaWQvdW5zZXQgZ3JvdXBfaWQsIGJ1dCBub3RoaW5nIGd1YXJhbnRlZXMgYSBncm91cGlkIHdvbid0IGhhdmUKCSAgdGhhdCB2YWx1ZS4KCSAgSW5zdGVhZCBkZWZpbmUgYSB2YWx1ZSB3aGljaCBncm91cF9pZCB3aWxsIG5ldmVyIGhhdmUgYW5kIG1ha2UKCSAgZ3N0X2dyb3VwX2lkX25leHQoKSBhbHdheXMgcmV0dXJuIGEgdmFsdWUgZGlmZmVyZW50IGZyb20gdGhhdC4KCSAgQVBJOiBHU1RfR1JPVVBfSURfSU5WQUxJRAoKMjAxNy0xMi0wNSAxNjo0Mjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWFrZSBiaW5kaW5ncyB1c2UgdGhlIEdCeXRlcyB2YXJpYW50IGZvciBfdGFrZV9hbGxfZGF0YSgpCgoyMDE2LTExLTIzIDEzOjEyOjM2ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IHVzZSBuZXcgdGFrZV9hbGxfZGF0YSgpIGZ1bmN0aW9uIGluIF9kdW1wX3RvX2ZpbGUoKS4KCjIwMTctMTItMDUgMTU6Mjg6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhZGQgZ3N0X2hhcm5lc3NfdGFrZV9hbGxfZGF0YSgpICsgX3Rha2VfYWxsX2RhdGFfYXNfe2J5dGVzLGJ1ZmZlcn0oKQoJICBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBqdXN0IGdyYWIgYWxsIHBlbmRpbmcgZGF0YQoJICBmcm9tIHRoZSBoYXJuZXNzLCBlLmcuIGlmIHdlIGp1c3Qgd2FudCB0byBjaGVjayBpZgoJICBpdCBtYXRjaGVzIHdoYXQgd2UgZXhwZWN0IGFuZCB3ZSBkb24ndCBjYXJlIGFib3V0CgkgIHRoZSBjaHVua2luZyBvciBidWZmZXIgbWV0YWRhdGEuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoyMDE3LTEyLTA1IDE1OjE2OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvY3VtZW50IHRoYXQgX2V4dHJhY3RfZHVwKCkgd2lsbCByZXR1cm4gTlVMTCBmb3IgMC1zaXplZCBidWYKCSAgQW5kIG1ha2UgaXQgZXhwbGljaXQsIGFuZCBkb24ndCBjYWxsIF9leHRyYWN0KCkgb24gTlVMTCBkYXRhIGJ1ZmZlci4KCjIwMTctMTItMDUgMTI6Mjc6MTggKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogVXNlIGFycmF5IHN5bnRheCBpbnN0ZWFkIG9mIC5nZXQoKSBpbiB0ZXN0cwoKMjAxNy0xMS0yNCAwMjozOTo0MyArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJICBtZXNvbjogVXNlIG5ldyBmaW5kX3Byb2dyYW0gZmFsbGJhY2sgc3ludGF4CgkgIFdlIHVzZSB0aGlzIHN5bnRheCBpbiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkIGFscmVhZHkuCgoyMDE3LTEyLTA0IDE4OjA4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0OiBnc3RfZWxlbWVudF9yZW1vdmVfcGFkKCkgaXMgdHJhbnNmZXIgbm9uZSBmb3IgdGhlIHBhZAoJICBXaGlsZSB0aGUgcmVmY291bnQgb2YgdGhlIHBhZCBpcyBkZWNyZWFzZWQsIGl0J3MgdGhlIHJlZmNvdW50IHRoYXQgaXMKCSAgb3duZWQgYnkgdGhlIHBhcmVudCAoaS5lLiB0aGUgZWxlbWVudCkgYW5kIG5vdCB0aGUgb25lIHBhc3NlZCBpbiBieSB0aGUKCSAgY2FsbGVyLgoJICBGaXhlcyBhIG1lbW9yeSBsZWFrIGluIGJpbmRpbmdzLgoKMjAxNy0xMi0wNCAxMToyNDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIGZpbmlzaF9idWZmZXIoKSB2ZnVuYwoJICBTbyBzdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGUgZmluaXNoIGJlaGF2aW91cgoJICBhbmQvb3IgZGVjb3JhdGUgb3IgbW9kaWZ5IGJ1ZmZlcnMgYmVmb3JlIHRoZXkKCSAgZ2V0IHB1c2hlZCBvdXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA5ODEKCjIwMTctMTItMDQgMTI6Mjk6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZGlzYWJsZSB0YWcgbWVyZ2luZyBhbmQgZm9yd2FyZGluZyBmb3Igbm93CgkgIFN1YmNsYXNzZXMgc2hvdWxkIGhhbmRsZSB0aGlzIGZvciBub3cuCgoyMDE3LTExLTA2IDIwOjIzOjEyICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogQXZvaWQgbWF5YmUtdW5pbml0aWFsaXplZCBjb21waWxlciB3YXJuaW5nCgkgIE9uIEFyY2ggTGludXggeDg2XzY0LCBnY2MgNy4yLjAtMywgLU9nIC1nMzoKCSAgZ3N0ZGV2aWNlbW9uaXRvci5jOiBJbiBmdW5jdGlvbiDigJhidXNfc3luY19tZXNzYWdl4oCZOgoJICBnc3RkZXZpY2Vtb25pdG9yLmM6Mjc2Ojg6IGVycm9yOiDigJhtYXRjaGVz4oCZIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQoJICBUaGlzIGNvbW1pdCBhbHNvIHNpbXBsaWZpZXMgdGhlIGNvZGUgYSBiaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk5ODMKCjIwMTctMTItMDMgMTQ6NDg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3Q6IEFubm90YXRlIHZhcmlvdXMgc3RyaW5ncyBhcyB0eXBlIGZpbGVuYW1lIGlmIHRoZXkgcmVwcmVzZW50IGEgcGF0aC9maWxlbmFtZQoKMjAxNy0xMi0wMiAxNTo0NDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGhvb2sgdXAgdG8gZG9jcwoKMjAxNy0xMi0wMiAxNToyNDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvYmFzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWdncmVnYXRvcjogaG9vayB1cCB0byBidWlsZCBzeXN0ZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTAxMAoKMjAxNy0xMi0wMiAxNToxMjoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIE1vdmUgR3N0QWdncmVnYXRvciBmcm9tIC1iYWQgdG8gY29yZQoJICBNZXJnZSBicmFuY2ggJ2FnZ3JlZ2F0b3ItbW92ZScKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTAxMAoKMjAxNy0xMS0wNiAyMTowNzo1MSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSBrbGFzcy0+c2lua3BhZHNfdHlwZQoJICBUaGlzIHBvc2VkIHByb2JsZW1zIGZvciB0aGUgcHl0aG9uIGJpbmRpbmdzIChhbmQgcG9zc2libHkgb3RoZXJzKS4KCSAgSW5zdGVhZCwgc3ViY2xhc3NlcyBub3cgdXNlIGFkZF9wYWRfdGVtcGxhdGVfd2l0aF9ndHlwZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTk4NgoKMjAxNy0xMS0wMiAxODozMjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgZG9jIGJsdXJiIGZvciBnc3RfYWdncmVnYXRvcl9wYWRfaXNfZW9zKCkKCjIwMTctMTEtMDIgMTY6MDU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWxzbyByZW1vdmUgbm93LXVudXNlZCBQYWRGb3JlYWNoRnVuYyBkZWNsYXJhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1Njc5CgoyMDE3LTA4LTAyIDEyOjA4OjI2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgcGFkIGl0ZXJhdG9yIGZ1bmN0aW9uCgkgIFVzZSBuZXcgZ3N0X2VsZW1lbnRfZm9yZWFjaF9zaW5rX3BhZCgpIGZyb20gY29yZSBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1Njc5CgoyMDE3LTExLTAyIDEyOjQ2OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfZm9yZWFjaF9zaW5rX3BhZCgpCgkgIEluc3RlYWQgb2YgZ3N0X2FnZ3JlZ2F0b3JfaXRlcmF0ZV9zaW5rcGFkcygpIHdoaWNoIHdpbGwKCSAgc29vbiBiZSByZW1vdmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1Njc5CgoyMDE3LTExLTAxIDE1OjE4OjA4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBtb3JlIGNvbW1lbnRzCgoyMDE3LTEwLTIzIDExOjUyOjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBjb21tZW50IGFuZCBsb2dnaW5nIGNsZWFudXBzIGZvciBhdWRpb21peGVyIGFuZCBhZ2dyZWdhdG9yCgkgIFJlbW92ZSBzb21lIHJlZmVyZW5jZXMgdG8gJ2NvbGxlY3RwYWRzJy4gTG9ncyBwYWRzIHRocm91Z2ggdGhlIG9iamVjdCB2YXJpYW50cy4KCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cy4gUmVtb3ZlIGEgbGVmdCBvdmVyIGNvbW1lbnQuCgoyMDE3LTEwLTIyIDE5OjQzOjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGZpeCB0eXBlIGZvciBsYXRlbmN5IHByb3BlcnR5IChpbnQ2NCAtPiBHU3RDbG9ja1RpbWUpCgkgIFRoZSB2YWx1ZSBpcyB1c2VkIGFzIEdzdENsb2NrVGllbSBpbiB0aGUgY29kZS4gQWRhcHQgdGhlIGhhY2teSF5IXkheSGNvZGUKCSAgaW4gbGl2ZS1hZGRlci4KCjIwMTctMDctMTMgMTk6MDM6MTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgdGFrZSBmbHVzaCBsb2NrIGZyb20gb3V0cHV0IHRocmVhZAoJICBJbnN0ZWFkIGp1c3QgdGFrZSBpdCBpbiB0aGUgY2hhaW4gZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ5MTEKCjIwMTctMDctMTMgMTg6Mzg6MzQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgYmxvY2sgaWYgYWRkaW5nIHRvIHRoZSB0YWlsIG9mIHRoZSBxdWV1ZQoJICBJZiB3ZSdyZSBhZGRpbmcgdG8gdGhlIHRhaWwgb2YgdGhlIHF1ZXVlLCBpdCdzIGJlY2F1c2Ugd2UncmUgY29udmVydGluZwoJICBhIGdhcCBldmVudCwgc28gZG9uJ3QgYmxvY2sgdGhlcmUgaXQgbWVhbnMgd2UncmUgY2FsbGluZyBmcm9tIHRoZSBvdXRwdXQKCSAgdGhyZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0OTExCgoyMDE3LTEwLTE3IDA4OjAzOjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJldmlldyBjb2RlIHJlbGF0ZWQgdG8gdGltZSBsZXZlbAoJICBBZGQgYSBjb21tZW50IGZvciB3aGVuIHRoZSBzdGF0ZSBtYXR0ZXJzLiBVc2UgYSBsb2NhbCB2YXIgZm9yIHByaXYgaW4KCSAgdXBkYXRlX3RpbWVfbGV2ZWwoKSB0byBpbXByb3ZlIHJlYWRhYmlsaXR5LiBNb3ZlIHRoZSBvdXJfbGF0ZW5jeSBsb2NhbAoJICB2YXIgYmVsb3cgdGhlIHF1ZXJ5IHJlc3VsdHMgY2hlY2tzLgoKMjAxNy0xMC0xNyAwNzo1MTo1MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBpbml0IGxhdGVuY3kgdmFsdWVzIHdpdGggMCBpbnN0ZWFkIG9mIEZBTFNFCgoyMDE3LTEwLTE1IDIwOjQ2OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGNvZGUgY2xlYW51cCBmb3IgZXZlbnQgYW5kIHF1ZXJ5IGZ1bmMKCSAgT25seSBsb29rIHVwIGtsYXNzIGZvciBub24gc2VyaWFsaXplZCBldmVudHMvcXVlcmllcy4gRm9yIGV2ZW50cyByZW1vdmUKCSAgc3VwZXJmbHVvdXMgYXNzaWdubWVudCBmb3IgdGhlIHJldHVybiB2YWx1ZSBpbiB0aGUgZmx1c2hpbmcgY2FzZS4KCjIwMTctMTAtMTUgMTc6NDY6NDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogc2ltcGxpZnkgcGFkX2V2ZW50X2Z1bmMgZm9yIEZMVVNIX1NUT1AgZXZlbnRzCgkgIFdlIHdhbnQgdG8gc2tpcCBzZXJpYWxpemF0aW9uIGZvciBGTFVTSF9TVE9QIGV2ZW50cyAoYXBwYXJlbnRseSkuIFdlIGNhbgoJICBzaW1wbGlmeSB0aGUgY29kZSB0byBhZGQgaXQgdG8gdGhlIHRvcC1sZXZlbCBjb25kaXRpb25zLiBUaGVyZSB3YXMgbm90aGluZwoJICBkb25lIGluIHRoZSBmaXJzdCBjb2RlIHBhdGggaWYgdGhlIGV2ZW50IHdhcyBGTFVTSF9TVE9QLgoKMjAxNy0xMC0xNSAxNjo1NzoxMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBkcm9wIHNwZWNpYWwgY2FzaW5nIGZvciBlb3MKCSAgSnVzdCBxdWV1ZSBpdCBsaWtlIGFueSBvdGhlciBzZXJpYWxpemVkIGV2ZW50LiBUaGlzIHdheSB3ZSBkb24ndCBuZWVkIHRvCgkgIGNoZWNrIGlmIHRoZXJlIHN0aWxsIGFyZSBidWZmZXJzIGluIHRoZSBxdWV1ZS4KCSAgVmFsaWRhdGVkIHdpdGggdGhlIHRlc3RzIGFuZCBnc3QtbGF1bmNoLTEuMCBwaXBlbGluZXMuCgoyMDE3LTEwLTE1IDE2OjUxOjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBhIGRvYy1ibG9iIGZvciB0aGUgZXZlbnRfZnVuYwoKMjAxNy0xMC0xNSAxNjo0ODoyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW5hbWUgYSBsb2NhbCB2YXJpYWJsZQoJICBUaGUgdmFyaWFibGUgdHJhY2tzIHdoZXRlciB0aGUgcXVldWUgaXMgbm90IGVtcHR5LCBidXQgbnVtX2J1ZmZlcnM9PTAuIFRoYXQKCSAgbWVhbnMgd2UgaGF2ZSBldmVudHMgb3IgcXVlcmllcyB0byBwcm9jZXNzLiBSZW5hbWUgYWNjb3JkaW5nbHkuCgoyMDE3LTEwLTE1IDEyOjE3OjQyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHJlbW92ZSBjb21tZW50ZWQgY29kZQoJICBUaGUgU0VHTUVOVF9ET05FIGV2ZW50IGRvZXMgbm90IHJlcXVpcmUgYW55IHNwZWNpYWwgdHJlYXRtZW50LiBUaGlzIGlzCgkgIGNvbW1lbnRlZCBvdXQgaW4gNmVmYzEwNmE2Ny4KCjIwMTctMTAtMTUgMTI6MTQ6MjggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogbW92ZSB0aGUgY29tbWVudCBmb3IgdGhlIGxvY2tzIHRvIHRoZSBsb2NrIG1hY3JvcwoJICBMb29rcyBsaWtlIHNvbWUgY29kZSB3YXMgaW5zZXJ0ZWQgYWZ0ZXJ3YXJkcy4KCjIwMTctMTAtMTUgMTA6NDQ6NDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogaW1wcm92ZSBzZWN0aW9uIGRvY3MKCSAgTWVudGlvbiBob3cgZGF0YSBlbmRzIHVwIGluIHRoZSBxdWV1ZXMuIERvY3VtZW50IHRoZSByZWxhdGlvbiBvZiB0aGUgcGFkCgkgIGZ1bmN0aW9ucyBhbmQgdGhlIGNsYXNzIHZtZXRob2RzIHRvIGdldCBldmVudHMgYW5kIHF1ZXJpZXMuCgoyMDE3LTEwLTE0IDE4OjE4OjQ0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCB0d28gbW9yZSB0ZXN0cyBmb3IgYSBzZXF1ZW5jZSBvZiBkYXRhCgkgIFRoaXMgdmVyaWZpZXMgdGhhdCB3ZSBoYW5kbGUgZXZlbnRzIGFuZCBxdWVyaWVzIGF0IHRoZSBoZWFkIG9mIHRoZSBxdWV1ZSBhbmQKCSAgdGhlbiBidWZmZXJzLgoKMjAxNy0xMC0xNCAxMzoyNjowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZWZhY3RvciB0aGUgdGVzdCBoZWxwZXIKCSAgTWFrZSB0aGUgdGVzdCBoZWxwZXJzIHVzZSBhIHF1ZXVlLiBUaGlzIGxldHMgdXMgYWxzbyB0ZXN0IHNlcXVlbmNlcyBvZiBldmVudHMsCgkgIHF1ZXJpZXMgYW5kIGRhdGEuCgoyMDE3LTEwLTE0IDEyOjA4OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHRlc3QgY2xlYW51cAoJICBSZW1vdmUgZ3N0X2luaXQoKSBmcm9tIGEgZmV3IHRlc3RzLiBVc2UgX09CSkVDVCB2YXJpYW50cyBpbiBsb2dnaW5nLiBSZW1vdmUKCSAgYXJiaXRyYXJ5IGV4dHJhIGJsYW5rIGxpbmVzLiBNYWtlIHB1c2hfZXZlbnQoKSBtb3JlIGxpa2UgcHVzaF9idWZmZXIoKSAtIHNldAoJICB0aGUgZXZlbnQgdG8gTlVMTCBhbmQgYWRkIGNsZWFudXAgdG8gX2NoYWluX2RhdGFfY2xlYXIoKS4KCjIwMTctMTAtMDMgMTI6MzY6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogY2xlYW51cCBldmVudCBmb3J3YXJkaW5nCgkgIERvbid0IGNvcHkgdGhlIHdob2xlIGV2ZW50IHN0cnVjdC4gU2V0IHRoZSBpbnB1dCBwYXJhbXMgd2hlbiB3ZSBjYWxsIHRoZQoJICBmb3J3YXJkaW5nIGhlbHBlci4gSW5pdGlhbGl6ZSB0aGUgaW50ZXJuYWwgZmllbGRzIGFuZCByZXR1cm4gdmFsdWVzIGluIHRoZQoJICBoZWxwZXIuCgoyMDE3LTEwLTAzIDEyOjA4OjQyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHNpbXBsaWZ5IHNyY19ldmVudAoJICBBdm9pZCBleHRyYSByZWYvdW5yZWYsIHdlIGhhdmUgYSByZWYgYW5kIGRvX3NlZWsgdW5yZWZzLiBKdXN0IHJldHVybiB0aGUgcmVzdWx0CgkgIGFzIHdlIGhhdmUuIFRoaXMgbGV0cyB1cyByZW1vdmUgdGhlIGxvY2FsIHZhciBwbHVzIHRoZSBsYWJlbC4KCjIwMTctMDktMTcgMTI6Mzc6MDMgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVnaXN0ZXIgZnVuYyBmb3IgZG9fZXZlbnRzX2FuZF9xdWVyaWVzCgkgIFRoaXMgZml4ZXMgbG9nZ2luZyB0aGUgZnVuYyBwdHIgZnJvbSBfaXRlcmF0ZV9zaW5rcGFkcygpLgoKMjAxNy0wOS0xNyAxMjozMDozNyAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBvbmx5IHNldCBjbGlwcGVkX2J1ZmZlciB0byBOVUxMIGlmIG5lZWRlZAoKMjAxNy0wOS0xNyAxMjoyNTozNyAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW5hbWUgY2hlY2tfZXZlbnRzCgkgIFRoaXMgZnVuY3Rpb24gYWxzbyBoYW5kbGVzIHF1ZXJpZXMuIFVwZGF0ZSB0aGUgY29kZSB0byBsb29wIHVudGlsIGFsbCBldmVudHMgYW5kCgkgIHF1ZXVyaWVzIGFyZSBoYW5kbGVkLgoKMjAxNy0wOS0xNyAxMjoyNDo1NCAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgYSBmZXcgbW9yZSBjb21tZW50cyB0byBQYWRQcml2YXRlIHN0cnVjdAoKMjAxNy0wOS0xNyAxMTozOToxMiAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW5hbWUgYnVmZmVycyBmaWVsZCB0byBkYXRhCgkgIFRoZSBxdWV1ZSBzdG9yZXMgYnVmZmVycywgZXZlbnRzIGFuZCBxdWVyaWVzLgoKMjAxNy0wOS0xNyAxMDoxODo1NiAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogZG9jdW1lbnRhaW9uIGZpeGVzCgkgIEZpeCB0eXBvcyBhbmQgcmVtb3ZlIHBhcmFtcyBkb2NzLCB3aGVyZSB0aGUgcGFyYW0gd2FzIG1vdmVkLgoKMjAxNy0wOS0wNSAxNDoyNjo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBjaGVjazogRml4IHVzYWdlIG9mIGR1YWwgcHJvYmVzCgkgIFVzaW5nIHR3byAob3IgbW9yZSkgcHJvYmVzIG9uIHRoZSBzYW1lIHBhZCB3aGVyZSBvbmUgb2YgdGhlIHByb2JlCgkgIHJldHVybnMgSEFORExFRCBvciBEUk9QIGlzIHRyaWNreSBzaW5jZSB0aGUgb3RoZXIgcHJvYmVzIG1pZ2h0CgkgIG5vdCBiZSBjYWxsZWQuCgkgIEluc3RlYWQgdXNlIHJlZ3VsYXIgcHJvYmVzIGFuZCBhIHByb3BlciBwYWQgKHRoZSBzaW5rcGFkIGFscmVhZHkgZXhpc3RlZCwKCSAgaXQgb25seSByZXF1aXJlZCB0byBiZSBhY3RpdmF0ZWQgYW5kIGhhdmUgYSBkdW1teSBjaGFpbiBmdW5jdGlvbiBmb3IKCSAgdGhlIGV2ZW50cy9idWZmZXJzIHRvIGJlIHJlY2VpdmVkL2hhbmRsZWQgcHJvcGVybHkpCgoyMDE3LTA3LTMwIDEyOjE3OjU3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGxvZyBhbGwgZXZlbnRzCgkgIFdlIGFscmVhZHkgbG9nIGEgZmV3IGV2ZW50cyBleHBsaWNpdGx5LCBqdXN0IGxvZyB0aGVtIGFsbCB3aXRoIG1vcmUgZGV0YWlsLgoKMjAxNy0wNy0yOSAxNjo1NDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBmaXggaGVhZGVyIGZvcm1hdHRpbmcKCjIwMTctMDctMjQgMTg6Mzg6NTcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIHRoZSBHQVAgZXZlbnQgZnJvbSB0aGUgcXVldWUgYmVmb3JlIHF1ZXVlaW5nIHVwIHRoZSBHQVAgYnVmZmVyCgkgIE90aGVyd2lzZSBjaGVja19ldmVudHMoKSB3aWxsIG5vdCByZW1vdmUgdGhlIEdBUCBldmVudCAoYXMgdGhlIHF1ZXVlCgkgIHRhaWwgaXMgbm90IHRoZSBldmVudCBhbnltb3JlIGJ1dCB0aGUgR0FQIGJ1ZmZlciksIHRoZW4gdGhlIEdBUCBidWZmZXIKCSAgaXMgaGFuZGxlZCwgdGhlbiB0aGUgR0FQIGV2ZW50IGlzIGhhbmRsZWQgYWdhaW4sIC4uLiBmb3JldmVyLgoKMjAxNy0wNy0xOCAwMDozMDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBtYXJrIHN5bWJvbHMgZXhwbGljaXRseSBmb3IgZXhwb3J0IHdpdGggR1NUX0VYUE9SVAoKMjAxNy0wNy0xMyAyMjowMDo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgZHVwbGljYXRlZCBjb2RlIGZyYWdtZW50CgkgIFRoaXMgY29kZSBhbHJlYWR5IHJ1bnMgYWJvdmUgd2hlbiAoZXZlbnQgfHwgcXVlcnkpLgoKMjAxNy0wNy0xMyAyMTo1NTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBjb2RlIGNsZWFudXBzCgkgIEZpeCBjb21tZW50IHR5cG9zLCBzb21lIGNvcHknbidwYXN0ZSBpbiBsb2dnaW5nLiBBZGQgbW9yZSBkb2MgY29tbWVudHMuCgoyMDE3LTA0LTEzIDIyOjExOjU1ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSW52YWxpZGF0ZSBwYWQncyB0YWlsIHBvc2l0aW9uIC4uLgoJICB3aGVuIGRlcXVldWluZyBhIHNlZ21lbnQgZXZlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ1OTMKCjIwMTctMDctMDEgMjA6MjM6MjUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZml4ICInYWdnY2xhc3MnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiIKCjIwMTctMDUtMjMgMDA6NTM6NTcgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJvY2VzcyBzZXJpYWxpemVkIHF1ZXJpZXMgdGhyb3VnaCB0aGUgcXVldWUKCSAgVGhpcyBlbnN1cmVzIHRoYXQgdGhleSByZWFsbHkgZ2V0IHByb2Nlc3NlZCBpbiBvcmRlciB3aXRoCgkgIGJ1ZmZlcnMuIEp1c3Qgd2FpdGluZyBmb3IgdGhlIHF1ZXVlIHRvIGJlIGVtcHR5IGlzIHNvbWV0aW1lcyBub3QKCSAgZW5vdWdoIGFzIHRoZSBidWZmZXJzIGFyZSBkcm9wcGVkIGZyb20gdGhlIHBhZCBiZWZvcmUgdGhlIHJlc3VsdCBpcwoJICBwdXNoZWQgdG8gdGhlIG5leHQgZWxlbWVudCwgc29tZXRpbWVzIHJlc3VsdGluZyBpbiBzdXJwcmlzaW5nCgkgIHJlLW9yZGVyaW5nLgoKMjAxNy0wNS0yMyAwMDo1MzoyMyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTZXQgZmxvdyB0byBGTFVTSElORyBvbiBwYWQgc3RvcAoJICBGaXhlcyBhIHJhcmUgcmFjZSB3aGVyZSB0aGUgcGFkIGlzIGJlaW5nIHN0b3BwZWQgd2hpbGUgZG9pbmcgYSBxdWVyeS4KCjIwMTYtMTEtMTggMTQ6NDQ6MTYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVxdWVzdCBwYWQgdGVtcGxhdGVzIHdoaWNoIGFyZSBub3QgcmVxdWVzdCBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkyMAoKMjAxNi0xMS0xOCAxNDo0MTo1NCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCByZXN0cmljdCBzaW5rIHBhZCBuYW1lcwoJICBTaW5rIHBhZHMgY291bGQgaGF2ZSBvdGhlciBuYW1lcyB0aGFuIHNpbmtfJXUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkyMAoKMjAxNy0wNS0yMSAxNToxOToxNyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogSW1wbGVtZW50IHByb3Bvc2UgYWxsb2NhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgyOTE4CgoyMDE3LTA1LTIxIDE0OjM0OjEzICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENoZWNrIGZvciB0aGUgcmVzdWx0IG9mIGNhcHMgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MTgKCjIwMTctMDUtMjEgMTQ6Mjg6MDAgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ2FwcyBldmVudCBhbHdheXMgZ29lcyB0byB0aGUgYWdncmVnYXRlIHRocmVhZAoJICBTbyBubyBuZWVkIHRvIGNoZWNrIGl0IGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MTgKCjIwMTctMDUtMjAgMTY6NTg6NTQgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IEFkZCBkb3duc3RyZWFtIGFsbG9jYXRpb24gcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUyOQoKMjAxNy0wNS0yMCAxNTo1NjoxNiArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBSZW1vdmUgdW51c2VkIEdTVF9GTE9XX05PVF9IQU5ETEVECgoyMDE3LTA1LTIwIDE0OjI0OjU3ICswMjAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBzaW1wbGUgc3VwcG9ydCBmb3IgY2FwcyBoYW5kbGluZwoJICBNb2RlbGxlZCBvZmYgdGhlIHZpZGVvYWdncmVnYXRvciBjYXBzIGhhbmRsaW5nIGFzIHRoYXQgc2VlbXMgdGhlIG1vc3QKCSAgbWF0dXJlIGFnZ3JlZ3Rvci11c2luZyBpbXBsZW1lbnRhdGlvbiB0aGF0IGhhcyBjYXBzIGhhbmRsaW5nIHRoZXJlIGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2OTMxCgoyMDE3LTA1LTIwIDEzOjEwOjUzICswMjAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVzZXQgdXBzdHJlYW0gbGF0ZW5jeSBvbiBmaXJzdCBidWZmZXIKCSAgSW4gdGhlIGNhc2UgYW4gYWdncmVnYXRvciBpcyBjcmVhdGVkIGFuZCBwYWRzIGFyZSByZXF1ZXN0ZWQgYnV0IG9ubHkKCSAgbGlua2VkIGxhdGVyLCB3ZSBlbmQgdXAgbmV2ZXIgdXBkYXRpbmcgdGhlIHVwc3RyZWFtIGxhdGVuY3kuCgkgIFRoaXMgd2FzIGJlY2F1c2UgbGF0ZW5jeSBxdWVyaWVzIG9uIHBhZHMgdGhhdCBhcmUgbm90IGxpbmtlZCBzdWNjZWVkLAoJICBzbyB3ZSBuZXZlciBkaWQgYSBuZXcgcXVlcnkgb25jZSBhIGxpdmUgc291cmNlIGhhcyBiZWVuIGxpbmtlZCwgc28gdGhlCgkgIHRocmVhZCB3YXMgbmV2ZXIgc3RhcnRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzU0OAoKMjAxNi0wNS0xNCAxNTo1MjozNyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBbHdheXMgaGFuZGxlIHN5bmMnZWQgZXZlbnRzIG9uIG91dHB1dCB0aHJlYWQKCSAgSGF2aW5nIGFsbCBzeW5jaHJvbml6ZWQgZXZlbnRzIGFsd2F5cyBiZSBoYW5kbGVkIG9uIHRoZSBvdXRwdXQKCSAgdGhyZWFkIHNob3VsZCBtYWtlIHN5bmNocm9uaXphdGlvbiBlYXNpZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTYtMDctMDYgMTY6Mzk6MTcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IERlbGF5IGNsaXBwaW5nIHRvIG91dHB1dCB0aHJlYWQKCSAgVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBzeW5jaHJvbml6ZWQgZXZlbnRzIGxpa2UgY2FwcyBvciBzZWdtZW50cwoJICBtYXkgb25seSBiZSBwcm9jZXNzZWQgb24gdGhlIG91dHB1dCB0aHJlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTYtMDctMDcgMTY6MTM6NTcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTWFrZSBwYWQgZW9zIGFzIHNvb24gYXMgYWxsIGJ1ZmZlcnMgYXJlIHByb2Nlc3NlZCwgZG9udCB3YXkgZm9yIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE2LTA3LTA3IDExOjQ3OjQwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE9ubHkgY291bnQgYnVmZmVycyB3aGVuIGRlY2xhcmluZyBxdWV1ZSBmdWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTYtMDctMDYgMTY6NDE6NDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFNpbXBsaWZ5IGNsaXAgZnVuY3Rpb24KCSAgVGhlIHJldHVybiB2YWx1ZSB3YXMgaWdub3JlZCBhbnl3YXkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNi0wNS0xNSAxNjowNDo1OCArMDMwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBPbmx5IGRlY2xhcmUgZmlyc3QgYnVmZmVyIG9uIGFjdHVhbCBidWZmZXIKCSAgVGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIHVubG9ja2VkIGlmIGFueSBkYXRhIGlzIHJlY2VpdmVkLCBidXQgb25seQoJICBlbmQgdGhlIGZpcnN0IGJ1ZmZlciBwcm9jZXNzaW5nIG9uIGFuIGFjdHVhbCBidWZmZXIsIHN5bmNocm9uaXplZCBldmVudHMKCSAgZG9uJ3QgbWF0dGVyIG9uIHRoZSBmaXJzdCBidWZmZXIgcHJvY2Vzc2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTY3MwoKMjAxNy0wNS0wOSAyMDoyMDowNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTZXQgaW5pdGlhbCBwb3NpdGlvbiBvbiBmaXJzdCBidWZmZXIKCSAgU2V0IHRoZSBpbml0aWFsIHBvc2l0aW9uIG9uIHRoZSBmaXJzdCBidWZmZXIsIG90aGVyd2lzZSB0aGUgcXVldWUKCSAgd2lsbCBncm93IHdpdGhvdXQgbGltaXRzIGJlZm9yZSB0aGUgb3V0cHV0IHRocmVhZCBpcyBzdGFydGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE3LTA1LTA5IDIwOjA2OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlc2V0IHRoZSBwYWQncyBmaXJzdCBidWZmZXIgZmxhZyB3aXRoIHRoZSByZXN0CgkgIFRoZXJlIGlzIG5vdCByZWFzb24gdG8gaGF2ZSBzZXBhcmF0ZSBjb2RlIHRvIHJlc2V0IHRoaXMgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNjczCgoyMDE3LTA1LTA5IDIwOjA1OjU1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlc2V0IHBhZCBvbiBpbml0CgkgIEZhY3RvciBvdXQgdGhlIHBhZCByZXNldCBjb2RlIGZyb20gdGhlIGZsdXNoaW5nIGFuZCB1c2UgaXQgb24gaW5pdCBhcyB3ZWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTctMDUtMDkgMjA6MTM6NTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IGluZGVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODE2NzMKCjIwMTctMDMtMDggMTU6MDE6MTMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGRvY3M6IFBvcnQgYWxsIGRvY3N0cmluZyB0byBndGstZG9jIG1hcmtkb3duCgoyMDE3LTA0LTEyIDEyOjA2OjUyIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBNYWtlIGluc3RhbmNlIHZhciBuYW1lIG1hdGNoICBiZXR3ZWVuIC5jIGFuZCAuaAoJICBNYWtpbmcgR0kgaGFwcHkKCjIwMTctMDQtMDcgMTA6MTk6NDMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGdzdGFnZ3JlZ2F0b3I6IGZpeCBldmVudCB1c2UgYWZ0ZXIgZnJlZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMDE3CgoyMDE2LTA5LTA2IDE2OjA1OjUzIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVc2UgdGhlIGV2ZW50X2Z1bGwgZnVuY3Rpb24gZm9yIEdzdEFnZ3JlZ2F0b3JQYWRzCgkgIEFsbG93aW5nIHVzIHRvIHRlbGwgR3N0UGFkIHdoeSB3ZSBhcmUgZmFpbGluZyBhbiBldmVudCwgd2hpY2ggbWlnaHQKCSAgYmUgYmVjYXVzZSB3ZSBhcmUgJ2ZsdXNoaW5nJyBldmVuIGlmIHRoZSBzaW5rcGFkIGlzIG5vdCBpbiBmbHVzaCBzdGF0ZQoJICBhdCB0aGF0IHBvaW50LgoKMjAxNi0wNS0yNSAxMzozODo0NyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIFJldmVydCAiYWdncmVnYXRvcjogU3RhcnQgdGhlIHRhc2sgd2hlbiBsaW5rZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzAyNTgwYzM4MTUxMzZkMjk0NzljM2E4Y2FlNjExZDZlMmZmMzcwOS4KCjIwMTYtMDQtMTMgMTY6MzA6MjggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTdGFydCB0aGUgdGFzayB3aGVuIGxpbmtlZAoJICBVbnRpbCBub3cgd2Ugd291bGQgc3RhcnQgdGhlIHRhc2sgd2hlbiB0aGUgcGFkIGlzIGFjdGl2YXRlZC4gUGFydCBvZiB0aGUKCSAgYWN0aXZpYXRpb24gY29uY2lzdCBvZiB0ZXN0aW5nIGlmIHRoZSBwaXBlbGluZSBpcyBsaXZlIG9yIG5vdC4KCSAgVW5mb3J0dW5hdGx5LCB0aGlzIGlzIG9mdGVuIHRvbyBzb29uLCBhcyBpdCdzIGxpa2VseSB0aGF0IHRoZSBwYWQgZ2V0CgkgIGFjdGl2YXRlZCBiZWZvcmUgaXQgaXMgZnVsbHkgbGlua2VkIGluIGR5bmFtaWMgcGlwZWxpbmUuCgkgIEluc3RlYWQsIHN0YXJ0IHRoZSB0YXNrIHdoZW4gdGhlIGZpcnN0IHNlcmlhbGl6ZWQgZXZlbnQgYXJyaXZlLiBUaGlzIGlzCgkgIGEgc2FmZSBtb21lbnQgYXMgd2Uga25vdyB0aGF0IHRoZSB1cHN0cmVhbSBjaGFpbiBpcyBjb21wbGV0ZSBhbmQganVzdAoJICBsaWtlIHRoZSBwYWQgYWN0aXZhdGlvbiwgdGhlIHBhZHMgYXJlIGxvY2tlZCwgaGVuY2UgY2Fubm90IGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzU0OAoKMjAxNi0wNC0yMiAxMDoxNTozOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IENoZWNrIGFsbCBwYWRzIGZvciBkYXRhIHdoZW4gbGl2ZQoJICBXaGVuIGxpdmUsIHdlIHN0aWxsIG5lZWQgdG8gaW5zcGVjdCBhbGwgcGFkcyBxdWV1ZSBpbiBvcmRlciB0byBkZXRlcm1pbgoJICBpZiB3ZSBoYXZlIHJlY2VpdmVkIHRoZSBmaXJzdCBidWZmZXIgb3Igbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NDMxCgoyMDE2LTA0LTE1IDE2OjUxOjE3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IGxvY2tpbmcgd2hlbiB1c2luZyB0aGUgY2xvY2sKCSAgVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUgd2UgY2hlY2sgaWYgdGhlcmUgaXMgYSBjbG9jaywgdGhlbiBpdCBnZXQKCSAgcmVtb3ZlZCBhbmQgd2UgZW5kdXAgY2FsbGluZyBnc3RfY2xvY2tfbmV3X3NpbmdsZV9zaG90X2lkKCkgd2l0aCBhIE5VTEwKCSAgcG9pbnRlciBpbnN0ZWFkIG9mIGEgdmFsaWQgY2xvY2sgYW5kIGFsc28gY2FsbGluZyBnc3Rfb2JqZWN0X3VucmVmKCkKCSAgd2l0aCBhIE5VTEwgcG9pbnRlciBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzU0OAoKMjAxNi0wNC0wMyAxNzo1NjowNiArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIGR1cGxpY2F0ZWQgdGVzdCBvZiBmbG93X3JldHVybiBpbiBwYWRfY2hhaW5faW50ZXJuYWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDU0OQoKMjAxNi0wMy0yOCAxMzo1MjowNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggbGVhayBpbiB1bml0IHRlc3QKCSAgR1NUX1BBRF9QUk9CRV9IQU5ETEVEIG1lYW5zIHRoYXQgd2Ugc2hvdWxkJ3ZlIHVucmVmZmVkIHRoZSBwcm9iZSBkYXRhLAoJICBpdCB3YXMgaGFuZGxlZCBieSB1cyBpbiBvbmUgd2F5IG9yIGFub3RoZXIuCgoyMDE2LTAzLTI3IDE5OjA2OjUwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IHN0cmNtcCB0ZXN0IGZvciBzaW5rIHRlbXBsYXRlCgoyMDE2LTAzLTI3IDE4OjQxOjMwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9uJ3QgdHJ5IHRvIGJlIHRvbyBzbWFydCB3aGlsZSBhbGxvY2F0aW5nIHBhZCBuYW1lcwoJICBQcmV2aW91c2x5LCB3aGlsZSBhbGxvY2F0aW5nIHRoZSBwYWQgbnVtYmVyIGZvciBhIG5ldyBwYWQsIGFnZ3JlZ2F0b3Igd2FzCgkgIG1haW50YWluaW5nIGFuIGludGVyZXN0aW5nIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBwYWQgY291bnQgYW5kIHRoZSBwYWQKCSAgbnVtYmVyLgoJICBJZiB5b3UgcmVxdWVzdGVkIGEgc2luayBwYWQgY2FsbGVkICJzaW5rXzYiLCBwYWRjb3VudCAod2hpY2ggaXMgYmFkbHkgbmFtZWQgYW5kCgkgIGFjdHVhbGx5IG1lYW5zIG51bWJlci1vZi1wYWRzLW1pbnVzLW9uZSkgd291bGQgYmUgc2V0IHRvIDYuIFdoaWNoIG1lYW5zIHRoYXQgaWYKCSAgeW91IHRoZW4gcmVxdWVzdGVkIGEgc2luayBwYWQgY2FsbGVkICJzaW5rXzAiLCBpdCB3b3VsZCBiZSBhc3NpZ25lZCB0aGUgbmFtZQoJICAic2lua182IiBhZ2Fpbiwgd2hpY2ggZmFpbHMgdGhlIG5vbi11bmlxdWVuZXNzIHRlc3QgaW5zaWRlIGdzdGVsZW1lbnQuYy4KCSAgVGhpcyBjYW4gYmUgZml4ZWQgYnkgaW5zdGVhZCBzZXR0aW5nIHBhZGNvdW50IHRvIGJlIDcgaW4gdGhhdCBjYXNlLCBidXQgdGhpcwoJICBicmVha3MgbWFudWFsIG1hbmFnZW1lbnQgb2YgcGFkIG5hbWVzIGJ5IHRoZSBhcHBsaWNhdGlvbiBzaW5jZSBpdCB0aGVuIGJlY29tZXMKCSAgaW1wb3NzaWJsZSB0byByZXF1ZXN0IGEgcGFkIGNhbGxlZCAic2lua18yIi4gSW5zdGVhZCwgd2UgZml4IHRoaXMgYnkgYWx3YXlzCgkgIGRpcmVjdGx5IHVzaW5nIHRoZSByZXF1ZXN0ZWQgbmFtZSBhcyB0aGUgc2luayBwYWQgbmFtZS4gVW5pcXVlbmVzcyBvZiB0aGUgcGFkCgkgIG5hbWUgaXMgdGVzdGVkIHNlcGFyYXRlbHkgaW5zaWRlIGdzdHJlYW1lciBjb3JlLiBJZiBubyBuYW1lIGlzIHJlcXVlc3RlZCwgd2UgdXNlCgkgIHRoZSBuZXh0IGF2YWlsYWJsZSBwYWQgbnVtYmVyLgoJICBOb3RlIHRoYXQgdGhpcyBpcyBpbXBvcnRhbnQgc2luY2UgdGhlIHNpbmtwYWQgbnVtYmVyaW5nIGluIGFnZ3JlZ2F0b3IgaXMgbm90CgkgIG1lYW5pbmdsZXNzLiBWaWRlb2FnZ3JlZ2F0b3IgdXNlcyBpdCB0byBkZWNpZGUgdGhlIFotb3JkZXIgb2YgdmlkZW8gZnJhbWVzLgoKMjAxNi0wMy0wNCAxNTo1MDoyNiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBiYWQ6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMDgxCgoyMDE1LTExLTA5IDE2OjA4OjMwICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czphZ2dyZWdhdG9yOiBmaXggdGMgZmFpbHVyZSBhbmQgY29ycmVjdCBjaGVjayB2YWx1ZQoJICBGYWlsdXJlIGJ5IHRoaXMgY29tbWl0IDJkZmE1NDhmMzY0NTg0NDA4MmMzZGI2NWQ5NmQ4NzI1NTcwMWIzYWQsIHdoaWNoIGlzCgkgIHRvIGFwcGVuZCBob29rcyBpbnN0ZWFkIG9mIHByZXBlbmQuCgkgIEJlY2F1c2Ugb2YgdGhpcyBjaGFuZ2UsIGFnZ3JldGF0ZWRfY2IgaXMgbm90IGNhbGxlZCBhbmQgbGVhZHMgdG8gZmFpbHVyZS4KCSAgQW5kIGNvcnJlY3QgdG8gY2hlY2sgZmx1c2ggc3RvcCB2YWx1ZSBpbnN0ZWFkIG9mIGZsdXNoIHN0YXJ0IHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc4MDEKCjIwMTUtMTEtMDUgMTI6MzY6NDggKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogdXNlIEdTVF9TVElNRV9GT1JNQVQgZm9yIEdzdENsb2NrVGltZURpZmYKCSAgTm8gbmVlZCB0byBtYW51YWxseSBoYW5kbGUgbmVnYXRpdmUgdmFsdWUgb2YgZGVhZGxpbmUsIEdTVF9TVElNRV9GT1JNQVQgZG9lcwoJICBleGFjdGx5IHRoaXMuCgoyMDE1LTExLTAzIDE5OjA5OjMzIC0wODAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRvbid0IGNvbXBhcmUgdGVtcGwgaW5zdGFuY2UgcG9pbnRlcnMKCSAgT25lIGNhbiBwYXNzIHRoZSBQYWRUZW1wbGF0ZSBmcm9tIHRoZSBlbGVtZW50X2NsYXNzIG9yIHRoZSBvbmUgZnJvbSB0aGUgZmFjdG9yeS4KCSAgV2hpbGUgdGhleSBoYXZlIHRoZSBzYW1lIGNvbnRlbnQsIHRoZSBhZGRyZXNzZXMgYXJlIGRpZmZlcmVudC4KCjIwMTUtMTEtMDMgMTQ6NDE6NTcgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU2V0IHRvIHJ1bm5pbmcgaW4gYSBzaW5nbGUgcGxhY2UKCSAgT25seSBzZXQgdG8gcnVubmluZyB3aGVuIHRoZSB0aHJlYWQgaXMgYWN0dWFsbHkgc3RhcnRlZC4KCjIwMTUtMTEtMDMgMTQ6Mzc6MjYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgbW9yZSBsb2NraW5nCgoyMDE1LTExLTAyIDIwOjEwOjM1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEhvbGQgb2JqZWN0IGxvY2sgd2hpbGUgbWFuaXB1bGF0aW5nIHRoZSBzZWdtZW50CgkgIE1ha2Ugc3VyZSB0aGUgb2JqZWN0IGxvY2sgaXMgaGVsZCB3aGVuIGFnZ3JlZ2F0b3ItPnNlZ21lbnQgaXMKCSAgbW9kaWZpZWQuCgoyMDE1LTExLTAyIDE5OjA1OjAxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSBkZWFkIGNvZGUKCSAgVGhpcyBjb2RlIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGFzIG1heD49bWluIGluIGFsbCBjYXNlcy4gSWYgdGhlIHVwc3RyZWFtCgkgIGxhdGVuY3kgcXVlcnkgcmV0dXJuZWQgbWluPm1heCwgdGhlIGZ1bmN0aW9uIGFscmVhZHkgcmV0dXJuZWQgYW5kIGFsbAoJICB2YWx1ZXMgdGhhdCBhcmUgYWRkZWQgdG8gdGhvc2UgaGF2ZSBtYXg+PSBtaW4uCgoyMDE1LTEwLTIzIDE1OjQyOjI0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBBZGQgY3JlYXRlX25ld19wYWQoKSB2ZnVuYyB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW91cgoJICBOb3QgYWxsIGFnZ3JlZ2F0b3Igc3ViY2xhc3NlcyB3aWxsIGhhdmUgYSBzaW5nbGUgcGFkIHRlbXBsYXRlIGNhbGxlZCBzaW5rXyV1CgkgIGFuZCBtaWdodCBkbyBzb21ldGhpbmcgc3BlY2lhbCBkZXBlbmRpbmcgb24gd2hhdCB0aGUgYXBwbGljYXRpb24gcmVxdWVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwMTgKCjIwMTUtMDktMzAgMTk6MDU6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ29udmVydCBHU1RfRVJST1JfT0JKRUNUKCkgZm9yIHNlZWsgZXZlbnRzIHRvIEdTVF9ERUJVR19PQkpFQ1QoKQoKMjAxNS0wOS0zMCAxOTowMzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGb3IgdGhlIHN0YXJ0IHRpbWUgc2VsZWN0aW9uLCBvbmx5IHNldCB0aGUgc2VnbWVudCBwb3NpdGlvbgoJICBzZWdtZW50LnRpbWUgYW5kIHNlZ21lbnQuc3RhcnQgY2FuIHN0YXkgdGhlIHNhbWUsIGFuZCB3ZXJlIGFsd2F5cyB0aGUgc2FtZQoJICBiZWZvcmUgYW55d2F5IGJlY2F1c2Ugb2YgYSBtaXN0YWtlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjIzCgoyMDE1LTA4LTMxIDE2OjEyOjQwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvbid0IGZvcndhcmQgUU9TIGV2ZW50cyB0byBzaW5rcGFkcyB0aGF0IGhhZCBubyBidWZmZXIgeWV0CgkgIE90aGVyd2lzZSB0aGV5IHdpbGwgcmVjZWl2ZSBhIFFPUyBldmVudCB0aGF0IGhhcyBlYXJsaWVzdF90aW1lPTAgKGJlY2F1c2Ugd2UKCSAgY2FuJ3QgaGF2ZSBuZWdhdGl2ZSB0aW1lc3RhbXBzKSwgYW5kIGNvbnNpZGVyIHRoZWlyIGJ1ZmZlciBhcyB0b28gbGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MzU2CgoyMDE1LTA5LTE3IDE5OjQyOjM0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEtlZXAgYXQgbGVhc3QgdHdvIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGluIGxpdmUgbW9kZQoJICBXaGVuIGluIGxpdmUgbW9kZSwgdGhlIHF1ZXVlIG5lZWRzIHRvIGhvbGQgdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQKCSAgYnVmZmVyIGFuZCBvbmUgbW9yZSBhdCBsZWFzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDg1MQoKMjAxNS0wOS0xMSAxMjoyMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCB0aGF0IGdldF9uZXh0X3RpbWUoKSBzaG91bGQgcmV0dXJuIHJ1bm5pbmcgdGltZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMTk2CgoyMDE1LTA4LTI4IDIzOjA1OjIwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFsc28gaWdub3JlIHN0YXJ0LXRpbWUgb24gc2VlayBmcm9tIGdzdF9lbGVtZW50X3NlbmRfZXZlbnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODA2CgoyMDE1LTA3LTAyIDE5OjM0OjQzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBBZGQgdGVzdCBmb3Igc2Vla2luZyBsaXZlIHBpcGVsaW5lcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NzY4CgoyMDE1LTA3LTAyIDE5OjE5OjMzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBNYWtlIHNvdXJjZSBsaXZlIHRvIHJlLWVuYWJsZSBhZ2dyZWdhdG9yIHRpbWVvdXQgdGVzdHMKCSAgVGhlIGxpdmUgbW9kZSBpcyBvbmx5IGVuYWJsZWQgaWYgb25lIG9mIHRoZSBzb3VyY2VzIGlmIGxpdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU3NjgKCjIwMTUtMDMtMDYgMTk6NTA6MDggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFF1ZXVlICJsYXRlbmN5IiBidWZmZXJzIGF0IGVhY2ggc2luayBwYWQuCgkgIEluIHRoZSBjYXNlIHdoZXJlIHlvdSBoYXZlIGEgc291cmNlIGdpdmluZyB0aGUgR3N0QWdncmVnYXRvciBzbWFsbGVyCgkgIGJ1ZmZlcnMgdGhhbiBpdCB1c2VzLCB3aGVuIGl0IHJlYWNoZXMgYSB0aW1lb3V0LCBpdCB3aWxsIGNvbnN1bWUgdGhlCgkgIGZpcnN0IGJ1ZmZlciwgdGhlbiB0cnkgdG8gcmVhZCBhbm90aGVyIGJ1ZmZlciBmb3IgdGhlIHBhZC4gSWYgdGhlCgkgIHByZXZpb3VzIGVsZW1lbnQgaXMgbm90IGZhc3QgZW5vdWdoLCBpdCBtYXkgZ2V0IHRoZSBuZXh0IGJ1ZmZlciBldmVuCgkgIHRob3VnaCBpdCBtYXkgYmUgcXVldWVkIGp1c3QgYmVmb3JlLiBUbyBwcmV2ZW50IHRoYXQgcmFjZSwgdGhlIGVhc2llc3QKCSAgc29sdXRpb24gaXMgdG8gbW92ZSB0aGUgcXVldWUgaW5zaWRlIHRoZSBHc3RBZ2dyZWdhdG9yUGFkIGl0c2VsZi4gSXQKCSAgYWxzbyBtZWFucyB0aGF0IHRoZXJlIGlzIG5vIG5lZWQgZm9yIHN0cmFuZ2UgY29kZSBjYXVzZSBieSBpbmNyZWFzaW5nCgkgIHRoZSBtaW4gbGF0ZW5jeSB3aXRob3V0IGluY3JlYXNpbmcgdGhlIG1heCBsYXRlbmN5IHByb3BvcnRpb25hbGx5LgoJICBUaGlzIGFsc28gbWVhbnMgcXVldWluZyB0aGUgc3luY2hyb25pemVkIGV2ZW50cyBhbmQgcG9zc2libHkgYWN0aW5nCgkgIG9uIHRoZW0gb24gdGhlIHNyYyB0YXNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1NzY4CgoyMDE1LTA3LTI5IDIwOjA3OjA5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERlZmF1bHQgdG8gInplcm8iIHN0YXJ0IHRpbWUgc2VsZWN0aW9uIG1vZGUgYXMgZG9jdW1lbnRlZAoKMjAxNS0wNy0yOSAyMDowNjoxMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBJZ25vcmUgdGhlICJmaXJzdCIgbW9kZSBpZiB0aGUgc2VnbWVudCBub3QgYSB0aW1lIHNlZ21lbnQKCjIwMTUtMDYtMTUgMTg6MzA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWRkIHByb3BlcnR5IHRvIHNlbGVjdCBob3cgdG8gZGVjaWRlIG9uIGEgc3RhcnQgdGltZQoJICBCZWZvcmUgYWdncmVnYXRvciBiYXNlZCBlbGVtZW50cyBhbHdheXMgc3RhcnRlZCBhdCBydW5uaW5nIHRpbWUgMCwKCSAgbm93IGl0J3MgcG9zc2libGUgdG8gc2VsZWN0IHRoZSBmaXJzdCBpbnB1dCBidWZmZXIgcnVubmluZyB0aW1lIG9yCgkgIGV4cGxpY2l0bHkgc2V0IGEgc3RhcnQtdGltZSB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTk2NgoKMjAxNS0wNy0yOCAyMToxNTo0MyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBRdWVyeSB0aGUgcGVlciBsYXRlbmN5IGFnYWluIG9uIHRoZSBuZXh0IG9wcG9ydHVuaXR5IGFmdGVyIGEgcGFkIHdhcyBhZGRlZCBvciByZW1vdmVkCgkgIEFkZGluZyBhIHBhZCB3aWxsIGFkZCBhIG5ldyB1cHN0cmVhbSB0aGF0IG1pZ2h0IGhhdmUgYSBiaWdnZXIgbWluaW11bSBsYXRlbmN5LAoJICBzbyB3ZSBtaWdodCBoYXZlIHRvIHdhaXQgbG9uZ2VyLiBPciBpdCBtaWdodCBiZSB0aGUgZmlyc3QgbGl2ZSB1cHN0cmVhbSwgaW4KCSAgd2hpY2ggY2FzZSB3ZSB3aWxsIGhhdmUgdG8gc3RhcnQgZGVhZGxpbmUgYmFzZWQgYWdncmVnYXRpb24uCgkgIFJlbW92aW5nIGEgcGFkIHdpbGwgcmVtb3ZlIGEgbmV3IHVwc3RyZWFtIHRoYXQgbWlnaHQgaGF2ZSBoYWQgdGhlIGJpZ2dlc3QKCSAgbGF0ZW5jeSwgc28gd2UgY2FuIG5vdyBzdG9wIHdhaXRpbmcgYSBiaXQgZWFybGllci4gT3IgaXQgbWlnaHQgYmUgdGhlIGxhc3QKCSAgbGl2ZSB1cHN0cmVhbSwgaW4gd2hpY2ggY2FzZSB3ZSBjYW4gc3RvcCBkZWFkbGluZSBiYXNlZCBhZ2dyZWdhdGlvbi4KCjIwMTUtMDUtMDYgMTM6MDc6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgYSBjb252ZW5pZW5jZSBtYWNybyB0byBnZXQgdGhlIHNvdXJjZSBwYWQKCSAgRWFzaWVyIHRoYW4gY2FzdGluZyBvciBhY2Vzc2luZyB0aGUgcGFyZW50IGV2ZXJ5d2hlcmUKCjIwMTUtMDYtMDEgMTg6NTA6MTQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgdGhhdCB0aGUgbGF0ZW5jeSBpcyBpbiBucwoKMjAxNS0wNS0yOCAwMDo1OTozOSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHVzaCBFT1Mgb24gZXJyb3IgcmV0dXJuLgoJICBCZWZvcmUgc2h1dHRpbmcgZG93biB0aGUgc3JjcGFkIHRhc2sgZHVlIHRvIGEKCSAgZG93bnN0cmVhbSBlcnJvciwgcHVzaCBhbiBFT1MgdG8gZ2l2ZSBkb3duc3RyZWFtCgkgIGEgY2hhbmNlIHRvIHNodXQgZG93biBzb21ld2hhdCBjbGVhbmx5LgoKMjAxNS0wMy0yOSAxNzo1MzoyMyAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGRvY3VtZW50IGdhcCBoYW5kbGluZyBiZWhhdmlvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MjQ5CgoyMDE1LTAzLTI3IDE5OjM2OjQyIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZHJvcCBzdGFsZSB3aGl0ZSBzcGFjZSBhdCB3YXJuaW5nCgoyMDE1LTAzLTI3IDE5OjI4OjA1IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZml4IHR5cG8gaW4gdGVzdCBzdWl0ZQoKMjAxNS0wMy0yNyAxODozMjoyNyAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBnYXAgZXZlbnQgaGFuZGxpbmcgdW5pdCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYyNDkKCjIwMTUtMDMtMTcgMjI6MTM6MDYgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBpbXBsZW1lbnQgZ2FwIGhhbmRsaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYyNDkKCjIwMTUtMDQtMDEgMjI6MTA6MTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVW5pZnkgZG93bnN0cmVhbSBmbG93IHJldHVybiBhbmQgZmx1c2hpbmcKCSAgQWxzbyBtZWFucyB0aGF0IGhhdmluZyBhIG5vbi1PSyBkb3duc3RyZWFtIGZsb3cgcmV0dXJuCgkgIHdha2VzIHVwIHRoZSBjaGFpbiBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyMjAKCjIwMTUtMDQtMDEgMjE6NDU6MDEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRmx1c2hpbmcgaXMgYWx3YXlzIGluIHBhZCBsb2NrLCBubyBuZWVkIHRvIGF0b21pY3MKCSAgVGhlIHVzYWdlIG9mIGF0b21pY3Mgd2FzIGFsd2F5cyBkb3VidGZ1bCBhcyBpdCB3YXMgdXNlZCB0byByZWxlYXNlIGEKCSAgR0NvbmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMAoKMjAxNS0wNC0wMSAyMTozODoxMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXNldCBwZW5kaW5nX2VvcyBvbiBwYWQgZmx1c2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMAoKMjAxNS0wNC0wMSAyMTozNzoyNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVbmlmeSBjb2RlIHRvIHNldCBhIHBhZCBmbHVzaGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIwCgoyMDE1LTAzLTA2IDIxOjEyOjUyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBRdWVyeSBsYXRlbmN5IG9uIGZpcnN0IGluY29taW5nIGJ1ZmZlci4KCSAgQW5kIGtlZXAgb24gcXVlcnlpbmcgdXBzdHJlYW0gdW50aWwgd2UgZ2V0IGEgcmVwbHkuCgkgIEFsc28sIHRoZSBfZ2V0X2xhdGVuY3lfdW5sb2NrZWQoKSBtZXRob2QgcmVxdWlyZWQgYmVpbmcgY2FsbGQKCSAgd2l0aCBhIHByaXZhdGUgbG9jaywgc28gcmVtb3ZlZCB0aGUgX3VubG9ja2VkKCkgdmFyaWFudCBmcm9tIHRoZSBBUEkuCgkgIEFuZCBpdCBub3cgcmV0dXJucyBHU1RfQ0xPQ0tfVElNRV9OT05FIHdoZW4gdGhlIGVsZW1lbnQgaXMgbm90IGxpdmUgYXMKCSAgd2UgdGhpbmsgdGhhdCAwIHVwc3RyZWFtIGxhdGVuY3kgaXMgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU3NjgKCjIwMTUtMDMtMDYgMjE6MTI6MTMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQmUgbW9yZSBhZ2dyZXNzaXZlIHdpdGggaW52YWxpZCByZXBsaWVzIHRvIG91ciBsYXRlbmN5IHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU3NjgKCjIwMTUtMDMtMDggMDI6MDQ6MTEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yeTogZG9uJ3QgcmVkZWZpbmUgR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MKCjIwMTUtMDItMjcgMDA6MjY6MDAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFVzZSBzdGFuZGFyZCB1cHN0cmVhbSBsYXRlbmN5IHF1ZXJ5aW5nIGxvZ2ljCgkgIFRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkgaXMgZHVwbGljYXRlZCBpbiB0aGUgZGVmYXVsdCBsYXRlbmN5IHF1ZXJ5aW5nCgkgIG5vdy4KCjIwMTUtMDItMTkgMjE6MjE6NTYgLTA1MDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBVc2Ugc3JjX2xvY2sgdG8gcHJvdGVjdCBsYXRlbmN5IHJlbGF0ZWQgbWVtYmVycwoJICBPbmUgaGFzIHRvIHVzZSB0aGUgc3JjX2xvY2sgYW55d2F5IHRvIHByb3RlY3QgdGhlIG1pbi9tYXgvbGl2ZSBzbyB0aGV5CgkgIGNhbiBiZSBub3RpZmllZCBhdG9taWNhbGx5IHRvIHRoZSBzcmMgdGhyZWFkIHRvIHdha2UgaXQgdXAgb24gY2hhbmdlcywKCSAgc3VjaCBhcyBwcm9wZXJ0eSBjaGFuZ2VzLiBTbyBubyBwb2ludCBpbiBoYXZpbmcgYSBzZWNvbmQgbG9jay4KCSAgQWxzbywgdGhlIG9iamVjdCBsb2NrIHdhcyBiZWluZyBoZWxkIGFjcm9zcyBhIGNhbGwgdG8KCSAgR1NUX0VMRU1FTlRfV0FSTklORywgZ3VhcmFudGVlaW5nIGEgZGVhZGxvY2suCgoyMDE1LTAyLTE5IDE4OjUzOjMyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbW92ZSB1bnRydWUgY29tbWVudAoKMjAxNS0wMi0xOSAxODozMDozNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCB0cnkgdG8gcHVzaCB0YWdzIHdoaWxlIGZsdXNoIHNlZWtpbmcKCSAgVGhlIGRvd25zdHJlYW0gc2VnbWVudCBjb3VsZCBoYXZlIGJlZW4gZmx1c2hlZCBhbHJlYWR5LCBzbwoJICBuZWVkIHRvIHJlLXNlbmQgdGhlIHNlZ21lbnQgZXZlbnQgYmVmb3JlIHJlLXNlbmRpbmcgdGhlIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDItMTkgMTE6MDQ6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVXNlIHRoZSBzaW5rcGFkcyBpdGVyYXRvciBkaXJlY3RseSB0byBxdWVyeSB1cHN0cmVhbSBsYXRlbmNpZXMKCSAgV2hpbGUgZ3N0X2FnZ3JlZ2F0b3JfaXRlcmF0ZV9zaW5rcGFkcygpIG1ha2VzIHN1cmUgdGhhdCBldmVyeSBwYWQgaXMgb25seQoJICB2aXNpdGVkIG9uY2UsIGV2ZW4gd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHRvIHJlc3luYywgdGhpcyBpcyBub3QgYWxsIHdlIGhhdmUKCSAgdG8gZG8gZm9yIHF1ZXJ5aW5nIHRoZSBsYXRlbmN5LiBXaGVuIHRoZSBpdGVyYXRvciByZXN5bmNzIHdlIGFjdHVhbGx5IGhhdmUKCSAgdG8gcXVlcnkgYWxsIHBhZHMgZm9yIHRoZSBsYXRlbmN5IGFnYWluIGFuZCBmb3JnZXQgb3VyIHByZXZpb3VzIHJlc3VsdHMuIEl0CgkgIG1pZ2h0IGhhdmUgaGFwcGVuZWQgdGhhdCBhIHBhZCB3YXMgcmVtb3ZlZCwgd2hpY2ggaW5mbHVlbmNlZCB0aGUgcmVzdWx0IG9mCgkgIHRoZSBsYXRlbmN5IHF1ZXJ5LgoKMjAxNS0wMi0xOSAxMDo1NzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBNb3ZlIGdzdF9hZ2dyZWdhdG9yX2dldF9sYXRlbmN5X3VubG9ja2VkKCkgYSBiaXQKCSAgSXQgd2FzIGJldHdlZW4gYW5vdGhlciBmdW5jdGlvbiBhbmQgaXRzIGhlbHBlciBmdW5jdGlvbiBiZWZvcmUsIHdoaWNoIHdhcwoJICBjb25mdXNpbmcgd2hlbiByZWFkaW5nIHRoZSBjb2RlIGFzIGl0IGhhZCBub3RoaW5nIHRvIGRvIHdpdGggdGhlIG90aGVyCgkgIGZ1bmN0aW9ucy4KCjIwMTUtMDItMTkgMDE6Mjg6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRmFpbCB0aGUgbGF0ZW5jeSBxdWVyeSBpZiBvbmUgb2YgdGhlIHVwc3RyZWFtIHF1ZXJpZXMgZmFpbHMKCjIwMTUtMDItMTggMTU6NTM6NTMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRG9jdW1lbnQgbG9ja2luZyBvcmRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAyLTE4IDE1OjExOjE0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbmFtZSBjb25mdXNpbmx5IG5hbWVkIFNSQ19TVFJFQU1fTE9DSyBtYWNyb3MgdG8gU1JDX0xPQ0sKCSAgVGhpcyB3aWxsIG1hdGNoIHRoZSBuYW1lIG9mIHRoZSBsb2NrIGl0c2VsZi4gSXQgaXMgYWxzbyBub3QgYSBzdHJlYW0KCSAgbG9jayBhcyBpdCBub3QgcmVjdXJzaXZlIGFuZCBub3QgaGVsZCB3aGlsZSBwdXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAyLTE4IDE1OjA2OjAxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlbmFtZSBjb25mdXNpbmdseSBuYW1lZCBzdHJlYW0gbG9jayB0byBmbHVzaCBsb2NrCgkgIFRoaXMgbG9jayBpcyBub3Qgd2hhdCBpcyBjb21tb25seSBrbm93biBhcyBhICJzdHJlYW0gbG9jayIgaW4gR1N0cmVtZXIsCgkgIGl0J3Mgbm90IHJlY3Vyc2l2ZSBhbmQgaXQncyB0YWtlbiBmcm9tIHRoZSBub24tc2VyaWFsaXplZCBGTFVTSF9TVEFSVCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMi0xOCAxNTowNDowNCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggbWFjcm8gaW5kZW5kYXRpb24KCSAgQ2hhbmdlcyBubyBjb2RlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDItMTMgMjM6NDU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZHJvcCBHQVAgZXZlbnRzIHVudGlsIHdlIGhhbmRsZSB0aGVtIHByb3Blcmx5CgoyMDE1LTAyLTEzIDE1OjUzOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiB1c2UgbmV3IGdzdF9hZ2dyZWdhdG9yX3BhZF9kcm9wX2J1ZmZlcigpCgoyMDE1LTAyLTEzIDE1OjQ5OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBhZGQgZ3N0X2FnZ3JlZ2F0b3JfcGFkX2Ryb3BfYnVmZmVyKCkKCSAgc3RlYWxfYnVmZmVyKCkgKyB1bnJlZiBzZWVtcyB0byBiZSBhIHdpZGUtc3ByZWFkIGlkaW9tCgkgICh3aGljaCBwZXJoYXBzIGluZGljYXRlcyB0aGF0IHNvbWV0aGluZyBpcyBub3QgcXVpdGUKCSAgcmlnaHQgd2l0aCB0aGUgd2F5IGFnZ3JlZ2F0b3IgcGFkIHdvcmtzIGN1cnJlbnRseSkuCgoyMDE1LTAyLTEyIDEzOjMyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IG9ubHkgcG9zdCBsYXRlbmN5IG1lc3NhZ2UgaWYgYW55dGhpbmcgY2hhbmdlZAoJICBQZXJoYXBzIHdlIHNob3VsZCBjaGVjayBmb3IgZWxlbWVudCBzdGF0ZSBhcyB3ZWxsIGFuZAoJICBvbmx5IHBvc3QgaXQgaWYgaW4gUExBWUlORyBzdGF0ZS4KCjIwMTUtMDItMTEgMTQ6MTY6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgSW1wcm92ZSBhbmQgZml4IExBVEVOQ1kgcXVlcnkgaGFuZGxpbmcKCSAgVGhpcyBub3cgZm9sbG93cyB0aGUgZGVzaWduIGRvY3MgZXZlcnl3aGVyZSwgZXNwZWNpYWxseSB0aGUgbWF4aW11bSBsYXRlbmN5CgkgIGhhbmRsaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTA2CgoyMDE1LTAyLTEwIDEwOjQ5OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFBhdXNlIHNyY3BhZCB0YXNrIG9uIGZsb3cgZXJyb3JzCgkgIE90aGVyd2lzZSB3ZSB3aWxsIGNhbGwgdGhlIHRhc2sgZnVuY3Rpb24gb3ZlciBhbmQgb3ZlciBhZ2FpbiB1bnRpbAoJICB1cHN0cmVhbSBmaW5hbGx5IGhhbmRsZWQgdGhlIGZsb3cgcmV0dXJuIGFuZCBzaHV0cyB1cyBkb3duLgoKMjAxNS0wMi0wNiAxMDo1OToyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTdHJlYW1saW5lIGxhdGVuY3kgY2FsY3VsYXRpb25zCgkgIE1pbiBsYXRlbmN5IGNhbiBuZXZlciBiZSBpbnZhbGlkLCBsYXRlbmN5IHByb3BlcnR5IGNhbiBuZXZlciBiZSBpbnZhbGlkCgkgIGVpdGhlci4gU28gbm8gbmVlZCB0byBjaGVjayBmb3IgYWxsIHRoZXNlIHRoaW5ncyBpbiB2YXJpb3VzIHBsYWNlcy4KCjIwMTUtMDItMDYgMTA6MzY6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogSWYgdXBzdHJlYW0gaGFzIG5vIG1heCBsYXRlbmN5IGJ1dCB0aGUgc3ViY2xhc3MgaGFzLCB0YWtlIHRoZSBzdWJjbGFzcyBtYXggbGF0ZW5jeQoKMjAxNS0wMi0wNiAxMDozMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBGaXggbWluPm1heCBsYXRlbmN5IGVycm9yIGNoZWNrCgkgIFdlIGhhdmUgdG8gaW5jbHVkZSB0aGUgdXBzdHJlYW0gbGF0ZW5jeSwgb3VyIG93biBsYXRlbmN5IGFuZCB0aGUgc3ViY2xhc3MKCSAgbGF0ZW5jeSBpbiB0aGUgY2FsY3VsYXRpb25zLgoJICBGSVhNRTogVGhpcyBpcyBzdGlsbCBub3QgZW50aXJlbHkgY29ycmVjdAoKMjAxNS0wMi0wNiAxMDozMDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCBhZGQgdGhlIGxhdGVuY3kgcHJvcGVydHkgdG8gdGhlIG1heCBsYXRlbmN5CgkgIEl0IGhhcyBubyBtZWFuaW5nIGZvciB0aGUgbWF4IGxhdGVuY3kgYW5kIGlzIG9ubHkgdXNlZCB0byBpbmNyZWFzZSB0aGUgbWluCgkgIGxhdGVuY3kuCgoyMDE1LTAxLTI2IDE3OjA2OjI5ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ2xlYW51cCBsb2NraW5nIGFyb3VuZCBBZ2dyZWdhdG9yUGFkIGZsdXNoIHJlbGF0ZWQgZmllbGRzCgkgIEFuZCBkb2N1bWVudCB0aGUgbG9ja2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTI2IDEzOjExOjA1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjoga2VlcCBjaGFpbiBmdW5jdGlvbnMgYXMgZHVtYiBhcyBwb3NzaWJsZS4KCSAgKyBBIHBhZCBjaGFpbiBmdW5jdGlvbiBoYXMgbm8gYnVzaW5lc3MgY2hlY2tpbmcgb3RoZXIgcGFkcywKCSAgdGhhdCdzIHdoYXQgdGhlIGFnZ3JlZ2F0ZSB0aHJlYWQgaXMgZm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTI2IDExOjMyOjQ3ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTW9yZSBmaXhlcyBhcm91bmQgbG9ja2luZyB3aGVuIGFjY2Vzc2luZyBwcm90ZWN0ZWQgcHJpdmF0ZSBmaWVsZHMKCSAgSW4gc29tZSBtb3JlIHBsYWNlcyB3ZSB3ZXJlIGFjY2Vzc2luZyBHc3RBZ2dyZWdhdG9yLT5zZWdtZW50CgkgIGFuZCBHc3RBZ2dyZWdhdG9yLT5zZXFudW0gd2l0aG91dCBob2xkaW5nIHRoZSBHU1RfT0JKRUNUX0xPQ0sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yNiAxMToyOTowOCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBNYWtlIHRoZSBQQURfTE9DSyBwcml2YXRlCgkgIEluc3RlYWQgb2YgdXNpbmcgdGhlIEdTVF9PQkpFQ1RfTE9DSyB3ZSBzaG91bGQgaGF2ZQoJICBhIGRlZGljYXRlZCBtdXRleCBmb3IgdGhlIHBhZCBhcyBpdCBpcyBhbHNvIGFzc29jaWF0ZWQKCSAgd2l0aCB0aGUgbXV0ZXggb24gdGhlIEVWRU5UX01VVEVYIG9uIHdoaWNoIHdlIHdhaXQKCSAgaW4gdGhlIF9jaGFpbiBmdW5jdGlvbiBvZiB0aGUgcGFkLgoJICBUaGUgR3N0QWdncmVnYXRvclBhZC5zZWdtZW50IGlzIHN0aWxsIHByb3RlY3RlZCB3aXRoIHRoZQoJICBHU1RfT0JKRUNUX0xPQ0suCgkgIFJlbW92ZSB0aGUgZ3N0X2FnZ3JlZ2F0b3JfcGFkX3BlYWtfdW5sb2NrZWQgbWV0aG9kIGFzIGl0IGRvZXMgbm90IG1ha2UKCSAgc2Vuc2UgYW55bW9yZSB3aXRoIGEgcHJpdmF0ZSBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTI2IDExOjI1OjU0ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBIaWRlIEdzdEFnZ3JlZ2F0b3JQYWQgYnVmZmVyIGFuZCBFT1MgZmlsZWRzCgkgIEFuZCBhZGQgYSBnZXR0ZXIgZm9yIHRoZSBFT1MuCgkgIFRoZSB1c2VyIHNob3VsZCBhbHdheXMgdXNlIHRoZSB2YXJpb3VzIGdldHRlcnMgdG8gYWNjZXNzCgkgIHRob3NlIGZpZWxkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE4OjQxOjQzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IGxvY2tpbmcgb2YgR3N0QWdncmVnYXRvclByaXZhdGUgbWVtYmVycwoJICBNb3N0IG9mIHRoZW0gYXJlIHByb3RlY3RlZCBieSB0aGUgb2JqZWN0IGxvY2ssIHNwZWNpZnkKCSAgd2hpY2ggb25lcyB1c2UgYSBkaWZmZXJlbnQgbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0yMSAxODo0NzowOSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBEb2N1bWVudCBob3cgdGhlIHNlZ21lbnQgaXMgcHJvdGVjdGVkCgkgIERvY3VtZW50IHRoYXQgaXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTk6NDQ6NTcgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJvdGVjdCBhbGwgbGF0ZW5jeSByZWxhdGVkIG1lbWJlcnMgd2l0aCB0aGUgb2JqZWN0IGxvY2sKCSAgVGhlIGxvY2tpbmcgd2FzIG5vdCBjb25zaXN0ZW50LCBub3cgY29uc2lzdGVudGx5IHVzZSB0aGUgb2JqZWN0IGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTk6NDM6MTIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IERvY3VtZW50IGxvY2tpbmcgZm9yIGdzdF9hZ2dyZWdhdG9yX2dldF9sYXRlbmN5X3VubG9ja2VkKCkKCSAgUmVuYW1lZCBpdCB0byBfdW5sb2NrZWQoKSB0byBtYWtlIGl0IGNsZWFyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTIxIDE5OjM1OjI1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByb3RlY3QgdGhlIHNyY3BhZCBjYXBzIG5lZ290aWF0aW9uIHdpdGggdGhlIHN0cmVhbSBsb2NrCgkgIEluc3RlYWQgb2YgYWRkaW5nIGFub3RoZXIgbG9jaywgdXNlIHRoZSBzcmNwYWQgc3RyZWFtIGxvY2ssIHdoaWNoIGlzIGFscmVhZHkKCSAgdGFrZW4gYW55d2F5IHRvIHB1c2ggb3V0IHRoZSBuZXcgY2FwcyBpZiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTk6MzM6MTggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUHJvdGVjdCB0aGUgdGFncyB3aXRoIHRoZSBvYmplY3QgbG9jawoJICBUaGUgdGFncyByZWxhdGVkIHZhcmlhYmxlcyB3ZXJlIHNvbWV0aW1lcyBwcm90ZWN0ZWQsIHNvbWV0aW1lcyBub3QgYW5kCgkgIHNvbWV0aW1lcyBhdG9taWMuIFB1dCB0aGVtIGFsbCB1bmRlciB0aGUgb2JqZWN0IGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTg6NTM6MjAgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ29uc2lzdGVubHkgbG9jayB0aGUgZmxvd19yZXR1cm4gc3RhdGUKCSAgVXNlIHRoZSBvYmplY3QncyBsb2NrIHRvIHByb3RlY3QgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMjEgMTg6NDU6MzYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQ29uc2lzdGVudGx5IGxvY2sgc29tZSBtZW1iZXJzCgkgIFNvbWUgbWVtYmVycyBzb21ldGltZXMgdXNlZCBhdG9taWMgYWNjZXNzLCBzb21ldGltZXMgd2hlcmUgbm90IGxvY2tlZCBhdAoJICBhbGwuIEluc3RlYWQgY29uc2lzdGVudGx5IHVzZSBhIG11dGV4IHRvIHByb3RlY3QgdGhlbSwgYWxzbyBkb2N1bWVudAoJICB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTE0IDE0OjM4OjA5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBQcm90ZWN0IGV4cG9ydGVkIHBhZCBtZW1iZXJzIHdpdGggdGhlIHBhZCdzIG9iamVjdCBsb2NrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI2ODQKCjIwMTUtMDEtMTQgMTQ6MzU6MTUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IFJlcGxhY2UgZXZlbnQgbG9jayB3aXRoIHBhZCdzIG9iamVjdCBsb2NrCgkgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIGxvY2tzIHNpbXBsaWZ5IGNvZGUsIHdoYXQgaXMgcHJvdGVjdHMKCSAgaXMgZXhwb3NlZCwgYnV0IHRoZSBsb2NrIHdhcyBub3QuCgkgIEFsc28gbWVhbnMgYWRkaW5nIGFuIF91bmxvY2tlZCB2ZXJzaW9uIG9mIGdzdF9hZ2dyZWdhdG9yX3BhZF9zdGVhbF9idWZmZXIoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY4NAoKMjAxNS0wMS0wOSAyMjowMTowMCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcm90ZWN0IGRhdGEgd2l0aCB0aGUgc2FtZSBtdXRleCBhcyBHQ29uZAoJICBXaGVuZXZlciBhIEdDb25kIGlzIHVzZWQsIHRoZSBzYWZlc3QgcGFyYWRpZ20gaXMgdG8gcHJvdGVjdAoJICB0aGUgdmFyaWFibGUgd2hpY2ggY2hhbmdlIGlzIHNpZ25hbGxlZCBieSB0aGUgR0NvbmQgd2l0aCB0aGUgc2FtZQoJICBtdXRleCB0aGF0IHRoZSBHQ29uZCBkZXBlbmRzIG9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyNjg0CgoyMDE1LTAxLTE0IDIzOjQ3OjE5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogTml0cGljayBzcGFjaW5nL3B1bmN0dWF0aW9uIGluIGRlYnVnIGxvZ2dpbmcKCjIwMTUtMDEtMDkgMjE6NTE6NDAgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogUmVtb3ZlIHBvaW50bGVzcyBhdG9taWMKCSAgSXQgaXMgb25seSBtb2RpZmllZCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkCgoyMDE1LTAxLTA5IDIxOjMwOjM2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBxdWVyeSBsZWFrCgoyMDE1LTAxLTA5IDE2OjQzOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFByaW50IGppdHRlciBmcm9tIGNsb2NrIHdhaXRpbmcgaW4gdGhlIGRlYnVnIGxvZ3MKCjIwMTUtMDEtMDQgMTc6MTU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogZG9uJ3QgdXNlIGl0ZXJhdG9yIHdoZW4gc2V0dGluZyBmbHVzaCBwZW5kaW5nIG9uIHBhZHMKCjIwMTUtMDEtMDQgMTY6NTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogY2hlY2sgaWYgcGFkcyBhcmUgcmVhZHkgbW9yZSBlZmZpY2llbnRseQoJICBObyBuZWVkIHRvIHVzZSBhbiBpdGVyYXRvciBmb3IgdGhpcyB3aGljaCBjcmVhdGVzIGEgdGVtcG9yYXJ5CgkgIHN0cnVjdHVyZSBldmVyeSB0aW1lIGFuZCBhbHNvIGludm9sdmVzIHRha2luZyBhbmQgcmVsZWFzaW5nIHRoZQoJICBvYmplY3QgbG9jayBtYW55IHRpbWVzIGluIHRoZSBjb3Vyc2Ugb2YgaXRlcmF0aW5nLiBOb3QgdG8gbWVudGlvbgoJICBhbGwgdGhhdCBHTGlzdCBoYW5kbGluZyBpbiBnc3RfYWdncmVnYXRvcl9pdGVyYXRlX3NpbmtwYWRzKCkuCgoyMDE1LTAxLTA0IDEyOjU5OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG5hbWUgdmZ1bmMgYXJndW1lbnRzIGNvbnNpc3RlbnRseQoKMjAxNS0wMS0wMSAxNTo0NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhZGQgZy1pIHRyYW5zZmVyIGFuZCBzY29wZSBhbm5vdGF0aW9ucwoKMjAxNS0wMS0wMSAxNDoxMDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZWdpc3RlciBuYW1lcyBvZiBpdGVyYXRlX3NpbmtwYWRzIGZ1bmN0aW9ucyB3aXRoIGRlYnVnIHN5c3RlbQoKMjAxNS0wMS0wMSAxNDowMzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZWR1Y2UgZGVidWcgbWVzc2FnZXMgZm9yIHRha2luZy9yZWxlYXNpbmcgbG9ncyB0byBUUkFDRSBsZXZlbAoJICBEb24ndCBzcGFtIGRlYnVnIGxvZyB3aXRoIHRoaXMgc3R1ZmYuCgoyMDE0LTEyLTMxIDE4OjE2OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBtb3ZlIHByb3BlcnR5IG1lbWJlciBpbnRvIHByaXZhdGUgc3RydWN0dXJlCgkgIE91ciBsb2NraW5nIChvciBsYWNrIHRoZXJlb2YpIHdoaWxlIGFjY2Vzc2luZyB0aGlzIGFsc28KCSAgbG9va3MgZ2VuZXJhbGx5IHF1aXRlIGRvZGd5LgoKMjAxNC0xMi0zMSAxNDo1MDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgZW1wdHkgZGlzcG9zZSBmdW5jdGlvbgoKMjAxNC0xMi0zMCAyMzo1ODozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogZ2l2ZSBwcml2YXRlIGZ1bmN0aW9ucyBuYW1lc3BhY2UgcHJlZml4CgkgIEVzcGVjaWFsbHkgdGhlIEdTVF9ERUJVR19GVU5DUFRSIG9uZXMuCgoyMDE0LTEyLTMxIDEyOjM1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGZpeCB1cCBzb21lIGRvY3MgY29tbWVudHMgaW4gaGVhZGVyCgoyMDE0LTEyLTMwIDIzOjQ0OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiByZW1vdmUgbm93LXVudXNlZCBzeXN0ZW0gY2xvY2sgbWVtYmVyCgoyMDE0LTEyLTMwIDE5OjIyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBtYWtlIEdzdEFnZ3JlZ2F0b3JQYWRGb3JlYWNoRnVuYyB0YWtlIGFuIEdzdEFnZ3JlZ2F0b3JQYWQKCjIwMTQtMTItMzAgMTc6NTA6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYnJpbmcgc3RhcnQvc3RvcCB2ZnVuYyBzZW1hbnRpY3MgaW4gbGluZSB3aXRoIG90aGVyIGJhc2VjbGFzc2VzCgkgIFN1Yi1jbGFzcyBzaG91bGQgbm90IGhhdmUgdG8gY2hhaW4gdXAgdG8gR3N0QWdncmVnYXRvcidzIHN0YXJ0L3N0b3AKCSAgdmZ1bmNzLCBzYW1lIGFzIGluIEdzdEJhc2VTcmMsIEdzdEJhc2VTaW5rLCBHc3RCYXNlVHJhbnNmb3JtIGV0Yy4KCjIwMTQtMTItMjggMTg6MjY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIHBvaW50bGVzcyBHU1RfREVCVUdfRlVOQ1BUUgoJICBOb3QgdXNlZnVsIGZvciBHT2JqZWN0IHZmdW5jcy4KCjIwMTQtMTItMjggMTg6MjQ6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogcmVtb3ZlIGR1cGxpY2F0ZSBwYWQgcGFyZW50X2NsYXNzIHZhcmlhYmxlCgkgIEdfREVGSU5FX1RZUEUgYWxyZWFkeSBwcm92aWRlcyBvbmUsIGp1c3QgbmVlZCB0byB1c2UgaXQuCgoyMDE0LTEyLTI4IDE4OjIyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBfQ0FTVCgpIHZhcmlhbnRzIGZvciBjYXN0IG1hY3JvcwoKMjAxNC0xMi0yOCAwMToxMzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJICBhZ2dyZWdhdG9yOiBtYWtlIHBhZGRpbmcgbGFyZ2VyCgkgIEVzcC4gdGhlIGNsYXNzIHN0cnVjdHVyZXMsIGNhbid0IGhhdmUgZW5vdWdoCgkgIHNwYXJlIHNwYWNlIGZvciB2aXJ0dWFsIGZ1bmN0aW9ucy4KCjIwMTQtMTItMjcgMTY6MTU6NDEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBMb2cgdG8gdGhlIHBhZCBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50CgkgIE1vcmUgY29ycmVjdCB3YXkgb2YgZG9pbmcgdGhlIHNhbWUgdGhpbmcgYXMgYmVmb3JlCgoyMDE0LTEyLTI3IDA5OjQ5OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IE1ha2Ugc3VyZSB0aGF0IHRoZSBtaW5pbXVtIGxhdGVuY2llcyBhcmUgbmV2ZXIgR1NUX0NMT0NLX1RJTUVfTk9ORQoKMjAxNC0xMi0yNyAwOTo0Mjo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBXYWl0IGZvciB0aGUgbWluaW11bSBsYXRlbmN5LCBub3QgdGhlIG1heGltdW0KCSAgVGhlIG1pbmltdW0gbGF0ZW5jeSBpcyB0aGUgbGF0ZW5jeSB3ZSBoYXZlIHRvIHdhaXQgYXQgbGVhc3QKCSAgdG8gZ3VhcmFudGVlIHRoYXQgYWxsIHVwc3RyZWFtcyBoYXZlIHByb2R1Y2VkIGRhdGEuIFRoZSBtYXhpbXVtCgkgIGxhdGVuY3kgaGFzIG5vIG1lYW5pbmcgbGlrZSB0aGF0IGFuZCBzaG91bGRuJ3QgYmUgdXNlZCBmb3Igd2FpdGluZy4KCjIwMTQtMTItMjcgMDQ6MjE6MzYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBDbGFtcCB0aGUgbWluIGxhdGVuY3kgYXQgdGhlIG1heCBpZiBpdCdzIGdyZWF0ZXIKCjIwMTQtMTItMjcgMDQ6MjE6MjYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBQcmludCB0aGUgc2lua3BhZCBuYW1lIHdoaWxlIGxvZ2dpbmcgbGF0ZW5jeSBxdWVyaWVzCgkgIFZlcnkgdXNlZnVsIHdoaWxlIGRlYnVnZ2luZy4KCjIwMTQtMTItMjcgMDQ6MTk6NTIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBUYWtlIHRoZSBzdHJlYW0gbG9jayB3aGVuIGl0ZXJhdGluZyBzaW5rIHBhZHMKCSAgV2hlbiBpdGVyYXRpbmcgc2luayBwYWRzIHRvIGNvbGxlY3Qgc29tZSBkYXRhLCB3ZSBzaG91bGQgdGFrZSB0aGUgc3RyZWFtIGxvY2sgc28KCSAgd2UgZG9uJ3QgZ2V0IHN0YWxlIGRhdGEgYW5kIHBvc3NpYmx5IGRlYWRsb2NrIGJlY2F1c2Ugb2YgdGhhdC4gVGhpcyBmaXhlcwoJICBhIGRlZmluaXRpdmUgZGVhZGxvY2sgaW4gX3dhaXRfYW5kX2NoZWNrKCkgdGhhdCBtYW5pZmVzdHMgd2l0aCBoaWdoIG1heAoJICBsYXRlbmNpZXMgaW4gYSBsaXZlIHBpcGVsaW5lLCBhbmQgZml4ZXMgb3RoZXIgcG9zc2libGUgcmFjZSBjb25kaXRpb25zLgoKMjAxNC0xMi0yMyAxMTo0NTowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCBsZWFrIGZsdXNoLXN0YXJ0IGV2ZW50cwoKMjAxNC0xMi0yMyAxMDoyNDoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBbHNvIGNoYW5nZSB0aGUgZGVmYXVsdCBsYXRlbmN5IHRvIDAsIG5vdCBqdXN0IHRoZSBtaW5pbXVtCgoyMDE0LTEyLTIzIDA5OjUyOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZpeCBkb2NzIGFuZCBkZWZhdWx0IHZhbHVlIG9mIHRoZSBsYXRlbmN5IHByb3BlcnR5CgoyMDE0LTEyLTIyIDIyOjE5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEFsc28gaW5jbHVkZSB0aGUgc3ViY2xhc3MgbGF0ZW5jeSBpbiB0aGUgcmVzdWx0IG9mIHRoZSBsYXRlbmN5IHF1ZXJ5CgoyMDE0LTEyLTIyIDE1OjI2OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFBvc3QgYSBsYXRlbmN5IG1lc3NhZ2UgaWYgdGhlIHZhbHVlIG9mIHRoZSBsYXRlbmN5IHByb3BlcnR5IGNoYW5nZXMKCjIwMTQtMTItMjIgMTU6MDM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogV2FrZSB1cCB0aGUgc3JjIHRocmVhZCBhZnRlciBoYW5kbGluZyBhIGxhdGVuY3kgcXVlcnkKCSAgRHVlIHRvIGNoYW5nZWQgbGF0ZW5jaWVzIG9yIGNoYW5nZWQgbGl2ZS1uZXNzIHdlIG1pZ2h0IGhhdmUgdG8KCSAgYWRqdXN0IGlmIHdlIHdhaXQgb24gYSBkZWFkbGluZSBhdCBhbGwgYW5kIGhvdyBsb25nLgoKMjAxNC0xMi0yMiAxNTowMDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBEb24ndCBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIG5lZWQgdG8gd2FrZSB1cCBidXQgaW5zdGVhZCBjaGVjayBhbGwgY29uZGl0aW9ucyBmb3Igd2FpdGluZyBhZ2FpbgoJICBUaGlzIHNpbXBsaWZpZXMgdGhlIGNvZGUgYW5kIGFsc28gbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IGZvcmdldCB0byBjaGVjayBhbGwKCSAgY29uZGl0aW9ucyBmb3Igd2FpdGluZy4KCSAgQWxzbyBmaXggYSBwb3RlbnRpYWwgZGVhZGxvY2sgY2F1c2VkIGJ5IG5vdCBjaGVja2luZyBpZiB3ZSdyZSBhY3R1YWxseSBzdGlsbAoJICBydW5uaW5nIGJlZm9yZSBzdGFydGluZyB0byB3YWl0LgoKMjAxNC0xMi0xNyAxOTo1MTozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogQWRkIGZ1bmN0aW9uIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gc2V0IHRoZWlyIG93biBsYXRlbmN5CgkgIEZvciBhdWRpb21peGVyIHRoaXMgaXMgb25lIGJsb2Nrc2l6ZSwgZm9yIHZpZGVvYWdncmVnYXRvciB0aGlzIHNob3VsZAoJICBiZSB0aGUgZHVyYXRpb24gb2Ygb25lIG91dHB1dCBmcmFtZS4KCjIwMTQtMTItMTcgMTc6NTQ6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBBZGQgYSB0aW1lb3V0IHBhcmFtZXRlciB0byA6OmFnZ3JlZ2F0ZSgpCgkgIFdoZW4gdGhpcyBpcyBUUlVFLCB3ZSByZWFsbHkgaGF2ZSB0byBwcm9kdWNlIG91dHB1dC4gVGhpcyBoYXBwZW5zCgkgIGluIGxpdmUgbWl4aW5nIG1vZGUgd2hlbiB3ZSBoYXZlIHRvIG91dHB1dCBzb21ldGhpbmcgZm9yIHRoZSBjdXJyZW50CgkgIHRpbWUsIG5vIG1hdHRlciBpZiB3ZSBoYXZlIGVub3VnaCBpbnB1dCBvciBub3QuCgoyMDE0LTEyLTE2IDE5OjQ5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzOiBmaXggYWdncmVnYXRvciB1bml0IHRlc3QgYWZ0ZXIgcHJvcGVydHkgcmVuYW1pbmcKCjIwMTQtMTItMTYgMTc6MzM6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogU29tZSBtaW5vciBjbGVhbnVwCgoyMDE0LTEyLTA1IDE4OjE5OjU0ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IG1ha2UgdGhlIHNyYyBwYWQgdGFzayBkcml2ZSB0aGUgcGlwZWxpbmUgZm9yIGxpdmUgcGlwZWxpbmVzCgkgIFRoaXMgcmVtb3ZlcyB0aGUgdXNlcyBvZiBHQXN5bmNRdWV1ZSBhbmQgcmVwbGFjZXMgaXQgd2l0aCBleHBsaWNpdAoJICBHTXV0ZXgsIEdDb25kIGFuZCB3YWtldXAgY291bnQgd2hpY2ggaXMgdXNlZCBmb3IgdGhlIG5vbi1saXZlIGNhc2UuCgkgIEZvciBsaXZlIHBpcGVsaW5lcywgdGhlIGFnZ3JlZ2F0b3Igd2FpdHMgb24gdGhlIGNsb2NrIHVudGlsIGVpdGhlcgoJICBkYXRhIGFycml2ZXMgb24gYWxsIHNpbmsgcGFkcyBvciB0aGUgZXhwZWN0ZWQgb3V0cHV0IGJ1ZmZlciB0aW1lCgkgIGFycml2ZXMgcGx1cyB0aGUgdGltZW91dC9sYXRlbmN5IGF0IHdoaWNoIHRpbWUsIHRoZSBzdWJjbGFzcwoJICBwcm9kdWNlcyBhIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTE0NgoKMjAxNC0xMi0xNCAwMToyOToyNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZ2dyZWdhdG9yLmM6CgkgIHRlc3RzL2FnZ3JlZ2F0b3I6IFVzZSBjb3JyZWN0IHR5cGUgd2hlbiBzZXR0aW5nIHByb3BlcnR5CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE0OTUKCjIwMTQtMTEtMTkgMTc6MTc6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVW5ibG9jayBldmVudHMvcXVlcmllcyBpbW1lZGlhdGVseSBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAzNzYKCjIwMTQtMTEtMTkgMTc6MTU6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRHJvcCBzZXJpYWxpemVkIGV2ZW50cy9xdWVyaWVzIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDM3NgoKMjAxNC0xMS0xOSAxNzowMzo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBCbG9jayBzZXJpYWxpemVkIGV2ZW50cy9xdWVyaWVzIHVudGlsIHRoZSBwYWQgaGFzIGNvbnN1bWVkIGFsbCBidWZmZXJzCgkgIE90aGVyd2lzZSB0aGUgY2FwcyBvZiB0aGUgcGFkIG1pZ2h0IGNoYW5nZSB3aGlsZSB0aGUgc3ViY2xhc3Mgc3RpbGwgd29ya3Mgd2l0aAoJICBhIGJ1ZmZlciBvZiB0aGUgb2xkIGNhcHMsIGFzc3VtaW5nIHRoZSB0aGUgY3VycmVudCBwYWQgY2FwcyBhcHBseSB0byB0aGF0CgkgIGJ1ZmZlci4gV2hpY2ggdGhlbiBsZWFkcyB0byBjcmFzaGVzIGFuZCBvdGhlciBuaWNlIGVmZmVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAzNzYKCjIwMTQtMTEtMTkgMTc6MDM6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IHR5cG8gaW4gZGVidWcgb3V0cHV0CgoyMDE0LTExLTE3IDE0OjAwOjEwICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGFnZ3JlZ2F0b3I6IGFkZCBfZ2V0X2xhdGVuY3koKSBmb3Igc3ViY2xhc3MgdXNhZ2UKCSAgQVBJOiBnc3RfYWdncmVnYXRvcl9nZXRfbGF0ZW5jeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5OTk2CgoyMDE0LTEwLTIwIDE4OjI1OjA4ICswNTMwICBWaW5lZXRoIFQgTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhdWRpb21peGVyOiBjcml0aWNhbCBlcnJvciBmb3IgYmxvY2tzaXplLCB0aW1lb3V0IG1pbi9tYXggdmFsdWVzCgkgIEF1ZGlvbWl4ZXIgYmxvY2tzaXplLCBjYW50IGJlIDAsIGhlbmNlIGFkanVzdGluZyB0aGUgbWluaW11bSB2YWx1ZSB0byAxCgkgIHRpbWVvdXQgdmFsdWUgb2YgYWdncmVnYXRvciBpcyBkZWZpbmVkIHdpdGggTUFYIG9mIE1BWElOVDY0LAoJICBidXQgaXQgY2Fubm90IGNyb3NzIEdfTUFYTE9ORyAqIEdTVF9TRUNPTkQgLSAxCgkgIEhlbmNlIGNoYW5nZWQgdGhlIG1heCB2YWx1ZSBvZiB0aGUgc2FtZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4ODQ1CgoyMDE0LTEwLTA3IDE2OjU3OjI3ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgdGVzdHMvYWdncmVnYXRvcjogYWRkIHRpbWVvdXQgaGFuZGxpbmcgdGVzdCBmb3IgdGhlIHRpbWVvdXQgcGFyYW1ldGVyCgoyMDE0LTEwLTA2IDIxOjQ2OjI0ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGxhdGVuY3kgcXVlcnkgaGFuZGxpbmcKCjIwMTQtMTAtMDYgMTg6MjM6MDMgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgYWdncmVnYXRvcjogYWRkIGEgdGltZW91dCBwcm9wZXJ0eSBkZXRlcm1pbmluZyBidWZmZXIgd2FpdCB0aW1lCgkgIERldGVybWluZXMgdGhlIGFtb3VudCBvZiB0aW1lIHRoYXQgYSBwYWQgd2lsbCB3YWl0IGZvciBhIGJ1ZmZlciBiZWZvcmUKCSAgYmVpbmcgbWFya2VkIHVucmVzcG9uc2l2ZS4KCSAgTmV0d29yayBzb3VyY2VzIG1heSBmYWlsIHRvIHByb2R1Y2UgYnVmZmVycyBmb3IgYW4gZXh0ZW5kZWQgcGVyaW9kIG9mIHRpbWUsCgkgIGN1cnJlbnRseSBjYXVzaW5nIHRoZSBwaXBlbGluZSB0byBzdGFsbCBwb3NzaWJseSBpbmRlZmluaXRlbHksIHdhaXRpbmcgZm9yCgkgIHRoZXNlIGJ1ZmZlcnMgdG8gYXBwZWFyLgoJICBTdWJjbGFzc2VzIHNob3VsZCByZW5kZXIgdW5yZXNwb25zaXZlIHBhZHMgd2l0aCBlaXRoZXIgc2lsZW5jZSAoYXVkaW8pLCB0aGUKCSAgbGFzdCAodmlkZW8pIGZyYW1lIG9yIHdoYXQgbWFrZXMgdGhlIG1vc3Qgc2Vuc2UgaW4gdGhlIGdpdmVuIGNvbnRleHQuCgoyMDE0LTA5LTE3IDE2OjQ4OjAyICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IFJlcGxhY2UgR01haW5Db250ZXh0IHdpdGggR0FzeW5jUXVldWUgKHYyKQoJICBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24ga2VwdCBhY2N1bXVsYXRpbmcgR1NvdXJjZXMsCgkgIHNsb3dpbmcgZG93biB0aGUgaXRlcmF0aW9uIGFuZCBsZWFraW5nIG1lbW9yeS4KCSAgSW5zdGVhZCBvZiB0cnlpbmcgdG8gZml4IHRoZSBtYWluIGNvbnRleHQgZmx1c2hpbmcsIHJlcGxhY2UKCSAgaXQgd2l0aCBhIEdBc3luY1F1ZXVlIHdoaWNoIGlzIHNpbXBsZSB0byBmbHVzaCBhbmQgaGFzCgkgIGxlc3Mgb3ZlcmhlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3ODIKCjIwMTQtMDgtMDUgMTU6MzY6MzAgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTZXQgc2VxbnVtIG9ubHkgd2hlbiBzZWdtZW50cyBhcmUgcmVjZWl2ZWQuCgoyMDE0LTA4LTAyIDE4OjI1OjAxICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWRkIGEgc3RyZWFtaW5nIGxvY2sgc28gdG8gc2VjdXJlIGZsdXNoIHN0YXJ0IGFjdGlvbgoJICBXaXRob3V0IGEgbG9jayB0aGF0IGlzIHRha2VuIGluIEZMVVNIX1NUQVJUIHdlIGhhZCBhIHJhcmUgcmFjZSB3aGVyZSB3ZQoJICBlbmQgdXAgYWdncmVnYXRpbmcgYSBidWZmZXIgdGhhdCB3YXMgYmVmb3JlIHRoZSB3aG9sZSBGTFVTSF9TVEFSVC9TVE9QCgkgIGRhbmNlLiBUaGF0IGNvdWxkIGxlYWQgdG8gdmVyeSB3cm9uZyBiZWhhdmlvdXIgaW4gc3ViY2xhc3Nlcy4KCjIwMTQtMDctMTggMTM6NTg6NTUgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBRdWVyeSBzZWVraW5nIHdoZW4gYSBzZWVrIGZhaWxlZCB0byBzZWUgaWYgaXQgd2FzIGV4cGVjdGVkCgkgIEFuZCBkbyBub3Qgd29ycnkgaWYgc2Vla2luZyBmYWlsZWQgb24gYSBzdHJlYW0gdGhhdCBpcyBub3Qgc2Vla2FibGUKCjIwMTQtMDctMTggMDE6NDE6MjYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBzZXQgZnV0dXJlIHNlcW51bSBiZWZvcmUgcHJvcGFnYXRpbmcgdGhlIHNlZWsgZXZlbnQuCgkgIFNvIHRoZSBzZXFudW0gaXMgcHJvcGVybHkgc2V0IGZvciB0aGUgZm9sbG93aW5nIGV2ZW50cy4KCjIwMTQtMDctMDggMTY6MTY6NTUgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBTdG9yZSBzZWdtZW50IHdoZW4gc2Vla2VkIGluIFJFQURZIGZvciBsYXRlciB1c2UKCjIwMTQtMTAtMDYgMTA6MTE6MjMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVW5yZWYgdGhlIHRhZ2xpc3QgaW4gR3N0QWdncmVnYXRvcjo6c3RvcCgpCgoyMDE0LTEwLTAzIDEyOjM0OjE1ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogVGFrZSBsb2NrIHRvIGVuc3VyZSBzZXRfY2FwcyBpcyBub3QgY2FsbGVkIGNvbmN1cmVudGx5CgkgIEF2b2lkaW5nIHRvIGJlIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSB3aGVyZSB3ZSBkbyBub3QgaGF2ZQoJICBhY3R1YWwgbmVnb3RpYXRlIGNhcHMgc2V0IGFzIHNyY2NhcHMgYW5kIGxlYWRpbmcgdG8gcG9pbnQgd2hlcmUgd2UKCSAgdHJ5IHRvIHVucmVmIC0+c3JjY2FwcyB3aGVuIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IHRvIE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUwNDIKCjIwMTQtMDgtMTEgMjM6Mzg6NDAgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDx5c3RyZWV0MDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGZpeCB1cCBkb2MgY29tbWVudCBmb3Igc2V0X3NyY19jYXBzCgkgIEl0IGRvZXMgbm90IG9jY3VyICdsYXRlcicgYW55bW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNjYyCgoyMDE0LTA4LTA3IDE5OjU0OjM2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICB2aWRlb2FnZ3JlZ2F0b3I6IHB1c2ggdGhlIGNhcHMgZXZlbnQgYXMgc29vbiBhcyB3ZSByZWNlaXZlIGl0CgkgIEFsb25nIHdpdGggdGhlIHJlcXVpcmVkIG1hbmRhdG9yeSBkZXBlbmRlbnQgZXZlbnRzLgoJICBTb21lIGVsZW1lbnRzIG5lZWQgdG8gcGVyZm9ybSBhbiBhbGxvY2F0aW9uIHF1ZXJ5IGluc2lkZQoJICA6Om5lZ290aWF0ZWRfY2FwcygpLiAgV2l0aG91dCB0aGUgY2FwcyBldmVudCBiZWluZyBzZW50IHByaW9yLAoJICBkb3duc3RyZWFtIGVsZW1lbnRzIHdpbGwgYmUgdW5hYmxlIHRvIGFuc3dlciBhbmQgd2lsbCByZXR1cm4KCSAgYW4gZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI2NjIKCjIwMTQtMDctMTYgMTY6NTc6MzUgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBSZXNldCBmbG93X3JldHVybiAqYWZ0ZXIqIHN0b3BwaW5nIHRoZSBzcmNwYWQgdGFzay4KCSAgT3RoZXJ3aXNlIGl0IG1pZ2h0IGJlIHNldCBpbiBhbiBhbHJlYWR5IHJ1bm5pbmcgYWdncmVnYXRlIGZ1bmN0aW9uLgoKMjAxNC0wNy0xMCAxMzoxODoyMSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IEZsdXNoIHNpbmtwYWRzIHdoZW4gc3RvcHBpbmcKCSAgQWxsIHZhbHVlcyBhcmUgbWVhbmluZ2xlc3MgaW4gdGhhdCBjYXNlLCBzbyB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQKCSAgd2UgY2xlYW4gZXZlcnl0aGluZwoKMjAxNC0wNy0xMCAxMzoxNTo1NSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IERvIG5vdCBmb3JnZXQgdG8gcmVzZXQgdGhlIGZsb3cgcmV0dXJuIHdoZW4gc3RvcGluZwoJICBTZXR0aW5nIGl0IHRvIEZMVVNISU5HIHdoZW4gdGhlIGVsZW1lbnQgaXMgbm90IHN0YXJ0ZWQsIGFuZCB0byBPSwoJICB3aGVuIGl0IHN0YXJ0cy4KCjIwMTQtMDctMDggMTY6NDg6MDggKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBIYW5kbGUgZXZlbnQgc2VxbnVtCgoyMDE0LTA3LTA2IDE2OjE3OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IGZpeCBsb2NraW5nCgkgIFdlIHdvdWxkIHVubG9jayBhIG11dGV4IHdlIG5ldmVyIGxvY2tlZCBvbiBTRUdNRU5UCgkgIGV2ZW50cy4KCjIwMTQtMDYtMzAgMTI6MjI6MDcgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQXZvaWQgZGVzdHJveWluZyBzb3VyY2VzIHdlIGRvIG5vdCBvd24KCSAgKyBVbnJlZiB0aGUgbWFpbmNvbnRleHQgaW4gYSBuZXcgZGlzcG9zZSBmdW5jdGlvbgoJICArIE1ha2Ugc3VyZSB0byByZW1vdmUgYWxsIHNvdXJjZXMgb24gZGlzcG9zZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNDQ1CgoyMDE0LTA2LTI4IDExOjIwOjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWdncmVnYXRvci5jOgoJICB0ZXN0czogYWdncmVnYXRvcjogZml4IHZhcmlvdXMgbGVha3MgaW4gdGhlIHRlc3RzCgoyMDE0LTA2LTI4IDA5OjM0OjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5jOgoJICBhZ2dyZWdhdG9yOiBhbHdheXMgc3RvcmUgb3IgdW5yZWYgdGhlIGJ1ZmZlciBvbiB0aGUgX2NoYWluIGZ1bmN0aW9uCgkgIE90aGVyd2lzZSBpdCBsZWFrcywgYW5kIGl0IGlzIHZlcnkgY29tbW9uIHRvIGdvIHRvIGZsdXNoaW5nIHdoZW4gdGhlCgkgIHBpcGVsaW5lIGlzIHN0b3BwaW5nLCBsZWFraW5nIGEgYnVmZmVyLgoKMjAxNC0wNi0yOCAwOTozMjozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWx3YXlzIHVucmVmIHRoZSBidWZmZXIgb24gX2ZpbmlzaCBmdW5jdGlvbgoJICBPdGhlcndpc2UgdGhlIHVzZXIgZG9lc24ndCBrbm93IGlmIGl0IHdhcyB1bnJlZidkIG9yIG5vdAoKMjAxNC0wNi0yOCAwOTozMTo1NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogYWRkIGRpc3Bvc2UvZmluYWxpemUgZnVuY3Rpb25zCgkgIEFkZCBmdW5jdGlvbnMgdG8gYmUgYWJsZSB0byBjbGVhbnVwIHRoZSBtdXRleC9jb25kIGFuZCBwZW5kaW5nIGJ1ZmZlcnMKCSAgb24gdGhlIGFnZ3JlZ2F0b3IgYW5kIG9uIGl0cyBwYWQKCjIwMTQtMDYtMjYgMTA6NTM6MTYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDx5c3RyZWV0MDBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkgIGFnZ3JlZ2F0b3I6IHBsdWcgYSBtZW1vcnkgbGVhayBvZiB0aGUgc3JjY2FwcwoKMjAxNC0wNi0yMSAxNjo1MTowMSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmg6CgkgIGxpYnM6YmFzZTogUHJvcGVybHkgZGVjbGFyZSBBUElzIGFzIFVOU1RBQkxFCgoyMDE0LTA2LTIxIDEzOjQ1OjEzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogRml4IHJlcXVlc3RlZCBwYWQgbmFtZQoKMjAxNC0wNS0yMiAxOTo0NDozNyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZ2dyZWdhdG9yLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWdncmVnYXRvci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FnZ3JlZ2F0b3IuYzoKCSAgYWdncmVnYXRvcjogQWRkIG5ldyBHc3RBZ2dyZWdhdG9yIGJhc2UgY2xhc3MKCSAgVGhpcyBiYXNlIGNsYXNzIGhhcyBiZWVuIGFkZGVkIHRvIGEgbmV3bHkgY3JlYXRlZCBsaWJnc3RiYWRiYXNlIGxpYnJhcnkKCSAgQ28tQXV0aG9yZWQgYnk6IE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTkxNwoKMjAxNy0xMi0wMiAxMjowMjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBhZGQgdGVzdCBmb3IgcG9zdC1nc3RfaW5pdCgpIGNhdGVnb3J5IHJlZ2lzdHJhdGlvbiBwZXJmCgkgIFdoZW4gcmVnaXN0ZXJpbmcgY2F0ZWdvcmllcyBhZnRlciBnc3RfaW5pdCgpIHdlIHdvdWxkIHJlLWNoZWNrICphbGwqCgkgIGNhdGVnb3JpZXMgYWdhaW5zdCB0aGUgZXhpc3RpbmcgR1NUX0RFQlVHIHBhdHRlcm5zIGFnYWluLCB3aGVyZWFzCgkgIGl0J3MgZW5vdWdoIHRvIGp1c3QgY2hlY2sgdGhlIG5ldyBjYXRlZ29yeS4gTW9yZW92ZXIsIHdlIHdvdWxkIHBhcnNlCgkgIHRoZSBHU1RfREVCVUcgcGF0dGVybiBzdHJpbmcgYWdhaW4gYW5kIHJlLWFkZCB0aGF0IHRvIHRoZSBleGlzdGluZwoJICBwYXR0ZXJuIGxpc3QgZm9yIGV2ZXJ5IG5ld2x5LXJlZ2lzdGVyZWQgZGVidWcgY2F0ZWdvcnksIGFuZCB0aGVuCgkgIGNoZWNrIHRoYXQgYWdhaW5zdCBhbGwgY2F0ZWdvcmllcyBvZiBjb3Vyc2UuIFRoaXMgbWFkZSByZWdpc3RlcmluZwoJICBjYXRlZ29yaWVzIGFmdGVyIGdzdF9pbml0KCkgdmVyeSB2ZXJ5IHNsb3cuCgoyMDE3LTEyLTAyIDEyOjI5OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWx3YXlzIGNoZWNrIG1hdGNoIHBhdHRlcm5zIGZvciBuZXcgZGVidWcgY2F0ZWdvcmllcwoJICBOb3Qgb25seSBpZiBhIG1hdGNoIHBhdHRlcm4gd2FzIHNldCBvcmlnaW5hbGx5IHZpYSBHU1RfREVCVUcuCgkgIFBhdHRlcm5zIG1pZ2h0IGJlIHNldCBwcm9ncmFtbWF0aWNhbGx5IGFzIHdlbGwgYWZ0ZXIgYWxsLgoKMjAxNy0xMi0wMiAxMjoyMjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBwZXJmb3JtYW5jZSBpc3N1ZSB3aXRoIHJlZ2lzdGVyaW5nIGNhdGVnb3JpZXMgYWZ0ZXIgZ3N0X2luaXQoKQoJICBXaGVuIHJlZ2lzdGVyaW5nIGEgbmV3IGRlYnVnIGNhdGVnb3J5IGFmdGVyIGdzdF9pbml0KCksIHNpbXBseSBjaGVjawoJICB0aGUgZXhpc3RpbmcgcGF0dGVybnMgYWdhaW5zdCB0aGF0IG5ldyBjYXRlZ29yeS4KCSAgTm8gbmVlZCB0byBpdGVyYXRlIG92ZXIgYWxsIGNhdGVnb3JpZXMgYW5kIHJlY2hlY2sgdGhlbSBhbGwgYWdhaW5zdAoJICB0aGUgZXhpc3RpbmcgcGF0dGVybnMuCgkgIEFsc28sIG5vIG5lZWQgdG8gcmUtcGFyc2UgdGhlIGV4aXN0aW5nIHBhdHRlcm4gc3RyaW5nIHNldCB2aWEgR1NUX0RFQlVHCgkgIGFuZCBhZGQgdGhlIHNhbWUgc2V0IG9mIG1hdGNoIHBhdHRlcm5zIGFsbCBvdmVyIGFnYWluIHRvIHRoZSBleGlzdGluZwoJICBsaXN0IG9mIG1hdGNoIHBhdHRlcm5zIGV2ZXJ5IHRpbWUgd2UgcmVnaXN0ZXIgYSBuZXcgZGVidWcgY2F0ZWdvcnkuCgkgIENvbWJpbmVkIHdpdGggaXRlcmF0aW5nIGFsbCBkZWJ1ZyBjYXRlZ29yaWVzIG9uIGEgY2hhbmdlIHRoaXMgd291bGQKCSAgbWFrZSBhZGRpbmcgZGVidWcgY2F0ZWdvcmllcyBhZnRlciBnc3RfaW5pdCgpIHZlcnkgdmVyeSB2ZXJ5IHNsb3cuCgoyMDE3LTEyLTAxIDEzOjMzOjQ4IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbi1zY2FubmVyOiBNZWFzdXJlIHN0cmluZyBsZW5ndGggaW4gYnl0ZXMKCSAgZ19zdHJuZHVwKCkgd2FudHMgYSBudW1iZXIgb2YgYnl0ZXMgdG8gY29weSwgc28gdXNlIHN0cmxlbiBpbnRlYWQgb2YKCSAgVVRGLTggc3RybGVuIGZ1bmN0aW9uLgoKMjAxNy0xMS0zMCAxNzo0OToxMCArMDEwMCAgTWljaGFlbCBUcmV0dGVyIDxtLnRyZXR0ZXJAcGVuZ3V0cm9uaXguZGU+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IGRvIG5vdCByZXF1aXJlIGEgbmFtZSB0byBjcmVhdGUgYSBjbG9jawoJICBUaGUgZ3N0X3B0cF9jbG9ja19uZXcoKSBkb2VzIG5vdCBhY3R1YWxseSByZXF1aXJlIGEgbmFtZS4gSG93ZXZlciwgZm9yCgkgIGV4YW1wbGUgdGhlIHJ0cGppdHRlcmJ1ZmZlciBtYXkgY3JlYXRlIGEgY2xvY2sgd2l0aG91dCBhIG5hbWUsIGZhaWwsIGFuZAoJICBmYWxsIGJhY2sgdG8gbm90IHVzaW5nIHRoZSBQVFAgY2xvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEwMzQKCjIwMTctMTEtMjggMjM6Mzc6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGZpeCByZWFkYWJsZSBmbGFnIHByaW50aW5nIGZvciBwYWQgcHJvcGVydGllcwoKMjAxNy0xMS0yNyAyMDowOTo0MiArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZjRhYTk2IHRvIGU4YzdhNzEKCjIwMTctMTEtMjYgMTM6MzE6MjggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUmV2ZXJ0ICJwcmVzZXQ6IERvIG5vdCBzYXZlIGRlcHJlY2F0ZWQgcHJvcGVydGllcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MWUxMGY2MTIzMWFkNTZjYTRhYTA3Mjc4OTkzYjg3YzZlYzBmMDU4LgoJICBBIG1pc3Rha2UgbGVhZCB0byBjb21taXR0aW5nIGl0IHR3aWNlIGluIGEgd2VpcmQgd2F5LgoKMjAxNy0xMS0wMyAxMjoyMDo0NyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogRG8gbm90IHNhdmUgZGVwcmVjYXRlZCBwcm9wZXJ0aWVzCgkgIEl0IHdpbGwgZ193YXJuIHVwb24gZGVzZXJpYWxpemF0aW9uIGFuZCB3ZSBzaG91bGQgbm90IHVzZQoJICB0aG9zZSBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk4NzEKCjIwMTctMTEtMDggMTI6NDY6NDQgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEF2b2lkIGFzc2VydGlvbnMgd2hlbiBnZXR0aW5nIHRhZyBuaWNrIGZyb20gdW5yZWdpc3RlciB0YWcKCSAgV2l0aCBzZXJpYWxpemVkIEdzdERpc2NvdmVyZXJJbmZvcyB3ZSBtaWdodCBlbmQgdXAgdHJ5aW5nIHRvIHVzZQoJICB0YWdzIHRoYXQgaGF2ZSBub3QgYmVlbiByZWdpc3RlcmVkLgoKMjAxNy0xMS0wMyAxMjoyMzo1MCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IERvIG5vdCBzYXZlIGRlcHJlY2F0ZWQgcHJvcGVydGllcwoJICBJdCB3aWxsIGdfd2FybiB1cG9uIGRlc2FyaWFsaXphdGlvbiBhbmQgd2Ugc2hvdWxkIG5vdCB1c2UKCSAgdGhvc2UgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5ODcxCgoyMDE3LTEwLTEzIDAwOjIxOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcnM6IGxvZzogbm8gbmVlZCB0byBsaW5rIHRvIG91ciBpbnRlcm5hbCBwcmludGYgaW1wbGVtZW50YXRpb24KCSAgVGhlIGNhbGwgdG8gX19nc3RfdmFzcHJpbnRmKCkgd2FzIHJlbW92ZWQgaW4gY29tbWl0IDFhM2UyMThiOC4KCjIwMTctMTEtMjYgMDA6MjA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGRvbid0IHByaW50IGVsZW1lbnQgZmxhZ3Mgd2hjaCBhcmUgYWx3YXlzICdub25lJwoJICBXZSBwcmludCB0aGUgaW50ZXJlc3RpbmcgZmxhZ3MgbGlrZSBjbG9ja2luZyBjYXBhYmlsaXRpZXMgc2VwYXJhdGVseQoJICBsYXRlciwgdGhpcyBmdW5jdGlvbiBqdXN0IGFsd2F5cyBwcmludHMgJ25vbmUnLCBzbyByZW1vdmUgaXQuCgoyMDE3LTExLTI1IDIzOjQzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogcHJpbnQgcGFkIHByb3BlcnRpZXMgd2hlcmUgd2Uga25vdyB0aGUgc3ViY2xhc3MgdHlwZQoKMjAxNy0xMS0yNSAyMjoyNzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogcmVmYWN0b3Igd2F5IGluZGVudGF0aW9uIGlzIGRvbmUgZHVyaW5nIHByaW50aW5nCgoyMDE3LTExLTI1IDEzOjA3OjEyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogVXNlIGZyZWUgaW5zdGVhZCBvZiBnX2ZyZWUKCSAgQmVjYXVzZQoKMjAxNy0xMS0yNSAxMjo0NDoxMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IERvbid0IGxlYWsgYXJyYXkgb2Ygc3RyaW5ncwoJICBUaGUgYXJyYXkgcHJvdmlkZWQgYnkgYmFja3RyYWNlX3N5bWJvbHMgbmVlZHMgdG8gYmUgZnJlZWQuCgoyMDE3LTExLTI0IDEyOjA4OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBjaGVjay9idWZmZXI6IFJlbW92ZSB1c2xlc3MgbWVtY21wIHdpdGggZW1wdHkgc2l6ZQoJICAxKSBjaGVja2luZyBub3RoaW5nIGFnYWluc3Qgbm90aGluZyBpcyBwb2ludGxlc3MKCSAgMikgbWVtY21wIG5lZWRzIHRvIGJlIHByb3ZpZGVkIG5vbi1OVUxMIGFyZ3VtZW50cwoKMjAxNy0xMS0yNCAxMjowNToyNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRml4IGxpbmVhciByZWdyZXNzaW9uIGNvbXBhcmlzaW9uCgkgIFRoZSBjaGVjayBmb3IgZHJvcHBpbmcgcHJlY2lzaW9uIHdhcyB3cm9uZyB3aGVuIHN4eCBhbmQgc3l5IHdlcmUgbmVnYXRpdmUuCgkgIGlmIHRoZXkgYXJlIG5lZ2F0aXZlIHRoZW4gIkdfTUFYSU5UNjQgLSB2YWwiIHdvdWxkIGFsd2F5cyBvdmVyZmxvdwoJICBUaGUgY2hlY2sgd2FzIG1lYW50IHRvIHVzZSBHX01JTklOVDY0IChsaWtlIGluIHRoZSBsb29wIGNvbnRhaW5lZCBqdXN0CgkgIGFmdGVyKS4KCjIwMTctMTEtMjQgMTM6NTg6MDEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIG1pc3NpbmcgaGFybmVzcyBmdW5jdGlvbiB0byBzeW1ib2wgZXhwb3J0IGxpc3QKCSAgRml4ZXMgaW4gdXNlciBjb2RlOgoJICB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnc3RfaGFybmVzc19hZGRfZWxlbWVudF9zaW5rX3BhZCcKCSAgQWxzbyByZW9yZGVyIGhhcm5lc3MgZnVuY3Rpb24gbGlzdCB0byBiZSBzdHJpY3RseSBpbiBhbHBoYWJldGljYWwgb3JkZXIgYW5kCgkgIGRvdWJsZSBjaGVjayB0aGUgbGlzdCB3aXRoOgoJICBhd2sgJ3sgaWYgKCQxICF+IC8jZGVmaW5lLykgaWYgKCQyIH4gL2dzdF9oYXJuZXNzXy8pIHsgcHJpbnQgJDIgfTsgaWYgKCQzIH4gL2dzdF9oYXJuZXNzXy8pIHsgcHJpbnQgJDN9IH0nIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaCB8IHNvcnQKCjIwMTctMTEtMjQgMTM6NDE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJpbnRmLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm9taXNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RyZWFtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdHM6IGluY2x1ZGUgY29uZmlnLmggYW5kIGRvbid0IGluY2x1ZGUgdW5peCBoZWFkZXJzCgkgIEluIG1hbnkgY2FzZXMgdGhlIHVuaXN0ZC5oIGluY2x1ZGVzIHdlcmVuJ3QgYWN0dWFsbHkgbmVlZGVkLgoJICBQcmVwYXJhdGlvbiBmb3IgbWFraW5nIHRlc3RzIHdvcmsgb24gV2luZG93cyB3aXRoIE1TVkMuCgoyMDE3LTExLTI0IDEzOjIxOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICB0ZXN0czogYWRkIG1pc3NpbmcgbGljZW5zZSBoZWFkZXIgdG8gdGVzdF90cmFuc2Zvcm0uYwoKMjAxNy0xMS0xMCAxNjoyNjo1MCArMDEwMCAgTWlraGFpbCBGbHVka292IDxtaXNoYUBwZXhpcC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZ3N0dHJhY2V1dGlsczogYWN0dWFsbHkgZGlzYWJsZSB0cmFjaW5nIHN5c3RlbSBob29rcyBpZiBjb25maWd1cmVkCgkgIGAuL2NvbmZpZ3VyZSAtLWRpc2FibGUtZ3N0LXRyYWNlci1ob29rc2AgZGlkbid0IGRvIGFueXRoaW5nLCBob29rcyB3ZXJlCgkgIGFsd2F5cyBlbmFibGVkIHJlZ2FyZGxlc3Mgb2YgdGhlIG9wdGlvbi4gSXQgd29ya3MgY29ycmVjdGx5IGluIHRoZQoJICBNZXNvbiBidWlsZCB0aG91Z2guCgoyMDE3LTEwLTI2IDEyOjA5OjA3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogYWRkIGdzdF91dGlsc19kdW1wX2J1ZmZlcigpCgkgIFVzZWZ1bCBmb3IgZGVidWdnaW5nLgoKMjAxNy0xMC0xMCAxNTo0NDo1MSArMDIwMCAgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSAgbWVzb24uYnVpbGQ6IHVzZSBqb2luX3BhdGhzKCkgb24gcHJlZml4CgkgIFNvIHRoYXQgIi8iIGFyZSBjb3JyZWN0IG9uIFdpbmRvd3MgYW5kIHRoZSBwYXRocyBpbgoJICB0aGUgLnBjIGZpbGVzIGFyZSBsaWtlIEM6L3NvbWUvd2hlcmUgYW5kIG5vdAoJICBDOlxzb21lXHdoZXJlLgoKMjAxNy0xMS0yNCAwOTo0OToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgbGliczogZml4IGluZGVudGF0aW9uCgoyMDE3LTA4LTE4IDE0OjMwOjMyICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHBhZDogZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgYWx3YXlzIHN1Y2NlZWQgaWYgc2FtZSBtb2RlCgkgIENoZWNraW5nIHRoYXQgdGhlIHBhZCBpcyBpbiB0aGUgY29ycmVjdCBtb2RlIGJlZm9yZSB0aGUgcGFyZW50IGlzCgkgIGNoZWNrZWQgbWFrZXMgdGhlIGNhbGwgYWx3YXlzIHN1Y2NlZWQgaWYgdGhlIG1vZGUgaXMgb2suCgkgIFRoaXMgZml4ZXMgYSByYWNlIHdpdGggZ2hvc3RwYWQgd2hlcmUgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgY291bGQKCSAgdHJpZ2dlciBhIGdfY3JpdGljYWwoKSBpZiB0aGUgZ2hvc3RwYWQgaXMgdW5wYXJlbnRlZCB3aGlsZSB0aGUKCSAgcHJveHlwYWQgaXMgZGVhY3RpdmF0aW5nLCBmb3IgaW5zdGFuY2UgaWYgdGhlIGdob3N0cGFkIGlzIHJlbGVhc2VkLgoJICBNb3JlIHNwZWNpZmljYWxseSwgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSdzCgkgIGNhbGwgdG8gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgd291bGQgZmFpbCBpZiBnaG9zdHBhZCBkb2Vzbid0IGhhdmUgYQoJICBwYXJlbnQuIFdpdGggdGhpcyBwYXRjaCBpdCB3aWxsIHJldHVybiB0cnVlIG9mIG1vZGUgaXMgYWxyZWFkeQoJICBjb3JyZWN0LgoKMjAxNy0wMy0zMSAxNjozNjowNSArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkgIGdzdGJhc2V0cmFuZm9ybTogcmVwbGFjZSBHU1RfQkFTRV9UUkFOU0ZPUk0gd2l0aCBHU1RfQkFTRV9UUkFOU0ZPUk1fQ0FTVAoJICBUbyBhdm9pZCBhIGdsb2JhbCB0eXBlLWxvY2sgb24gY2hhaW4gZXRjLgoKMjAxNy0xMS0yNCAwOTo1Mzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogcmV0dXJuIFRSVUUgaWYgdGFyZ2V0IHBhZCB3YXMgYWxyZWFkeSBzZXQKCSAgVGhlIHN0YXRlIGlzIGFzIGl0IHNob3VsZCBiZSwgc28gbm8gcmVhc29uIHRvIHJldHVybgoJICBGQUxTRSByZWFsbHksIGV2ZXJ5dGhpbmcncyBnb29kLgoKMjAxNy0xMS0yNCAwOTo0MDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWNjZXNzIGludGVybmFsIHBhZCB3aXRoIGxvY2sgaGVsZAoKMjAxNy0wMy0zMCAwOToxNzowOCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IHJhY2UtY29uZGl0aW9uIHdoaWxlIHRlYXJpbmcgZG93bgoJICBBbiB1cHN0cmVhbSBxdWVyeSB3aWxsIHRha2UgYSByZWYgb24gdGhlIGludGVybmFsIHByb3h5cGFkLCBhbmQgY2FuCgkgIGhlbmNlIGVuZCB1cCBvd25pbmcgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoYXQgcGFkLCBjYXVzaW5nIGEgY3Jhc2guCgoyMDEzLTAzLTIzIDEzOjQ0OjUxICswMTAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBZGQgdGVzdCBzdWl0ZSB0aW1lIGVsYXBzZWQgb3V0cHV0CgoyMDE3LTExLTIzIDE1OjI4OjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogT25seSBjYWxjdWxhdGUgbGV2ZWwgaWYgd2UgaGF2ZSB2YWxpZCBsZXZlbHMKCSAgRG9pbmcgY2FsY3VsYXRpb25zIHdpdGggR1NUX0NMT0NLX1NUSU1FX05PTkUgd291bGQgcmVzdWx0IGluCgkgIGNvbXBsZXRlbHkgYm9ndXMgbGV2ZWxzCgoyMDE3LTExLTIzIDEzOjU2OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBhbGxvY2F0ZSBzbGlnaHRseSBsYXJnZXIgdGhhbiBuZWVkZWQgdGFibGVzIGF0IHN0YXJ0dXAKCSAgSWYgd2UgcHJlLWFsbG9jYXRlIG9ubHkgKmV4YWN0bHkqIGFzIG1hbnkgbm9kZXMgYXMgd2UgbmVlZCBmb3IgdGhlCgkgIGNvcmUgdHlwZXMsIHdlIGFyZSBwcmFjdGljYWxseSBndWFyYW50ZWVkIGEgcmUtYWxsb2Mgd2hlbiBleHRlcm5hbAoJICBjb2RlIGxpa2UgR3N0VmlkZW9UaW1lQ29kZSBvciBHc3RFbmNvZGluZ1Byb2ZpbGUgcmVnaXN0ZXIgdGhlaXIKCSAgb3duIEdzdFZhbHVlIHRoaW5ncy4gU28gYWxsb2NhdGUgYSBiaXQgbW9yZSB0aGFuIHN0cmljdGx5IG5lZWRlZC4KCjIwMTctMTEtMDYgMjE6MTA6NTQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkIHRlbXBsYXRlczogQWxsb3cgc3BlY2lmeWluZyBHVHlwZQoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5OTg2CgoyMDE3LTExLTIyIDE1OjU5OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZm9yIGxhdGVzdCBwcm9taXNlIGFwaSBjaGFuZ2VzCgoyMDE3LTA0LTAzIDIyOjIwOjUxICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3Rwcm9taXNlLmM6CgkqIGdzdC9nc3Rwcm9taXNlLmg6CgkqIGdzdC9tZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvbWlzZS5jOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogYWRkIGEgcHJvbWlzZSBvYmplY3QKCSAgQW4gb2JqZWN0IHRoYXQgY2FuIGJlIHdhaXRlZCBvbiBhbmQgYXNrZWQgZm9yIGFzeW5jaHJvbm91cyB2YWx1ZXMuCgkgIEluIG11Y2ggdGhlIHNhbWUgd2F5IGFzIHByb21pc2UvZnV0dXJlcyBpbiBqcy9qYXZhL2V0YwoJICBBIGNhbGxiYWNrIGNhbiBiZSBpbnN0YWxsZWQgZm9yIHdoZW4gdGhlIHByb21pc2UgY2hhbmdlcyBzdGF0ZS4KCSAgT3JpZ2luYWwgaWRlYSBieQoJICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCSAgV2l0aCBjb250cmlidXRpb25zIGZyb20KCSAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoJICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTg0MwoKMjAxNy0xMS0yMCAxNzowMTowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogTWFrZSBzdXJlIHdlIHVzZSBhbGlnbmVkIG1lbW9yeQoJICBUaGlzIGlzIGluIHRoZSBzYW1lIHZlaW4gYXMgZm9yIGFsbCBvdGhlciBmZWF0dXJlcy4gU29tZSBzeXN0ZW1zCgkgIG1pZ2h0IG5vdCBhbGxvdyB1bmFsaWduZWQgcmVhZC4KCjIwMTctMTEtMTcgMDA6MTU6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IHN0b3AgcHJpbnRpbmcgZWxlbWVudCBzdGF0ZV9jaGFuZ2UgZnVuY3Rpb24KCSAgVGhpcyBpcyByZWFsbHkgbm90IGludGVyZXN0aW5nIGF0IGFsbCwgbm90IHN1cmUgd2h5IHdlIHByaW50IHRoaXMuCgoyMDE3LTExLTE3IDAwOjE0OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBmaXggZG91YmxlIGVtcHR5IGxpbmUgYWZ0ZXIgcGFkIHRlbXBsYXRlcwoKMjAxNy0xMS0xNiAxMDo0Nzo0NiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkgIGdzdHBhZDogTWFrZSBwYWQgKGRlKWFjdGl2YXRpb24gYXRvbWljCgkgIFRoZSBmb2xsb3dpbmcgY291bGQgaGFwcGVuIHByZXZpb3VzbHk6CgkgICogVDE6IGNhbGxzIGdzdF9wYWRfc2V0X2FjdGl2ZSgpCgkgICogVDI6IGN1cnJlbnRseSAoZGUpYWN0aXZhdGluZyBpdAoJICAqIFQxOiBnc3RfcGFkX3NldF9hY3RpdmUoKSByZXR1cm5zLCBjYWxsZXIgYXNzdW1lcyB0aGF0IHRoZSBwYWQgaGFzCgkgIGNvbXBsZXRlZCB0aGUgcmVxdWVzdGVkIChkZSlhY3RpdmF0aW9uIC4uLiB3aGVyZWFzIGl0IGlzIG5vdAoJICB0aGUgY2FzZSBzaW5jZSB0aGUgYWN0dWFsIChkZSlhY3RpdmF0aW9uIGluIFQyIG1pZ2h0IHN0aWxsIGJlCgkgIGdvaW5nIG9uLgoJICBUbyBlbnN1cmUgYXRvbWljaXR5IG9mIHBhZCAoZGUpYWN0aXZhdGlvbiwgd2UgdXNlIGEgaW50ZXJuYWwKCSAgdmFyaWFibGUgKGFuZCBjb25kKSB0byBlbnN1cmUgb25seSBvbmUgdGhyZWFkIGF0IGEgdGltZSBnb2VzIHRocm91Z2gKCSAgdGhlIGFjdHVhbCAoZGUpYWN0aXZhdGlvbiBibG9jawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwNDMxCgoyMDE3LTExLTE2IDA4OjI2OjEyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IE1ha2UgY2FsbHMgdG8gR3N0UGFkQWN0aXZhdGVGdW5jdGlvbiBNVC1zYWZlCgkgIGNoZWNraW5nIHdoZXRoZXIgd2UgYWxyZWFkeSB3ZXJlIGluIHRoZSB0YXJnZXQgR3N0UGFkTW9kZSB3YXMgYmVpbmcKCSAgZG9uZSB0b28gZWFybHkgYW5kIHRoZXJlIHdhcyB0aGUgcmlzayB0aGF0IHdlICp3b3VsZCogZW5kIHVwCgkgIChkZSlhY3RpdmF0aW5nIGEgcGFkIG1vcmUgdGhhbiBvbmNlLgoJICBJbnN0ZWFkLCByZS1kbyB0aGUgY2hlY2sgZm9yIHBhZCBtb2RlIHdoZW4gZW50ZXJpbmcgdGhlIGZpbmFsIHBhZAoJICAoZGUpYWN0aXZhdGlvbiBibG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDQzMQoKMjAxNy0xMS0xMCAxMjowNzoyOCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjOiBNb3ZlIGNvbmRpdGlvbiBjaGVjayBpbnNpZGUgdGhlIGdfcmV0dXJuCgkgIEl0J3MgbW9zdGx5IGEgZGVidWcgY2hlY2sgYW5kIGNyYXNoIGF2b2lkYW5jZSwgaXQncyBiZXR0ZXIgdG8KCSAga2VlcCBhbGwgdGhlIGNvbmRpdGlvbiBpbnNpZGUgdGhlIG1hY3JvLgoKMjAxNy0xMS0xMCAxMjowMzowMCAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjOiBBZGQgbWlzc2luZyBzaW5jZSBmb3IgX3NwZWNfYXJyYXkoKQoKMjAxNy0xMS0xMCAxNDoxMDozMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogSGFuZGxlIHNpbmdsZS1wYWQgdXNlLWNhc2VzCgkgIFdoZW4gRU9TIHJlYWNoZXMgY29uY2F0LCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBjYW5kaWRhdGUgYXMgaXRzCgkgIGFjdGl2YXRlIHBhZC4KCSAgVGhlIHByb2JsZW0gYXJpc2VzIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgc2lua3BhZCwgdGhlICJhY3RpdmUiIHBhZAoJICBiZWNvbWVzIE5VTEwuIFRoaXMgcmVzdWx0cyBpbiBjb25jYXQgYmVjb21pbmcgdW51c2FibGUgYWZ0ZXIgaXQgcmVjZWl2ZXMKCSAgYSAqc2luZ2xlKiBFT1Mgb24gaXRzIHNpbmdsZSBzaW5rcGFkLgoJICBJZiB3ZSBkZXRlY3QgdGhlcmUgaXMgYSBzaW5nbGUgc2lua3BhZCBhbmQgdGhlcmUgaXMgbm8gY3VycmVudCBhY3RpdmUgcGFkOgoJICAqIElmIHdlIGFyZSB3YWl0aW5nIChmcm9tIHNlbGVjdGVkIHNpbmsgZXZlbnQvYnVmZmVyKSwgYmVjb21lIHRoZSBjdXJyZW50CgkgIGFjdGl2ZSBwYWQuCgkgICogSWYgdGhlcmUgaXMgYSBzZWVrIHJlcXVlc3QsIHNlbmQgaXQgdXBzdHJlYW0uIFdlIGRvbid0IHN3aXRjaCB0aGUKCSAgYWN0aXZlX3NpbmtwYWQgcHJvcGVydHkgYXQgdGhhdCBwb2ludCBpbiB0aW1lLCBzaW5jZSB0aGUgc2VlayBjb3VsZAoJICBmYWlsLiBJZiB0aGUgc2VlayBzdWNjZWVkcywgdGhlIGZvbGxvd2luZyBTRUdNRU5UIChvciBTVFJFQU1fU1RBUlQpCgkgIHdpbGwgY2F1c2UgdGhlIHBhZF93YWl0KCkgdG8gZWxlY3QgdGhhdCBwYWQgYXMgdGhlIG5ldyBhY3RpdmUgb25lLgoJICAqIEZsdXNoIGV2ZW50cyBnZXQgZm9yd2FyZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTAxNjcKCjIwMTctMTEtMDkgMTc6Mzg6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IE1ha2UgUW9TIGZvcndhcmQgTVQtc2FmZQoJICBJbiB0aGUgc2FtZSB3YXkgaXQncyBkb25lIGZvciBvdGhlciBldmVudCBmb3J3YXJkaW5nLgoKMjAxNy0wNC0xMyAxNjoyODo1NCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICBsYXRlbmN5IHRyYWNlcjogYWRkIHRpbWVzdGFtcCB0byB0cmFjZXIgcmVjb3JkcwoJICBJbmNsdWRlIHRoZSB0aW1lc3RhbXAgb2YgdGhlIHJlY29yZGVkIGxvZyBhcyBpbiB0aGUgJ3N0YXRzJyB0cmFjZXIuCgkgIFRoaXMgY2FuIGJlIHVzZWZ1bCwgZm9yIGV4YW1wbGUsIHRvIHBsb3QgYSBncmFwaCBzaG93aW5nIHRoZSBsYXRlbmN5CgkgIG92ZXIgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTMxNQoKMjAxNy0xMS0wNCAxMTo0NTo1NCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmRoZWxwZXI6IEZpeCBvdmVyZmxvdyBzb21lIG1vcmUKCSAgTm90aGluZyBndWFyYW50ZWVkIHRoYXQgb2ZmK3NpemUgd291bGRuJ3QgZXhjZWVkIGEgMioqNjQgdmFsdWUuCgkgIEluc3RlYWQgd2UgcmV2ZXJzZSB0aGUgb3BlcmF0aW9uIGFuZCB1c2UgYSBzdWJ0cmFjdGlvbi4KCjIwMTctMTEtMDQgMTA6MzQ6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBGaXggc2lnbmVkIGludGVnZXIgb3ZlcmZsb3cKCSAgTWFrZSBzdXJlIHRoZSB3aG9sZSBjYWxjdWxhdGlvbiBpcyBkb25lIHdpdGggNjRiaXQgdW5zaWduZWQgdmFsdWVzCgkgIChUbyBiZSByZWFkeSBmb3IgcGVvcGxlIHdhbnQgdG8gdHlwZWZpbmQgZXhhYnl0ZSBmaWxlcykuCgoyMDE3LTA4LTAxIDExOjA2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9mb3JlYWNoXypwYWQoKQoJICBBZGQgY29udmVuaWVuY2UgQVBJIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbGwgcGFkcywgc2luayBwYWRzIG9yCgkgIHNvdXJjZSBwYWRzIGFuZCBtYWtlcyBzdXJlIHRoYXQgdGhlIGZvcmVhY2ggZnVuY3Rpb24gaXMgY2FsbGVkCgkgIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBwYWQuCgkgIFRoaXMgaXMgYSBLSVNTIGltcGxlbWVudGF0aW9uLiBJdCBkb2Vzbid0IHVzZSBHc3RJdGVyYXRvciBhbmQKCSAgZG9lc24ndCB0cnkgdG8gZG8gY2xldmVyIHRoaW5ncyBsaWtlIHJlc3luYyBpZiBwYWRzIGFyZSBhZGRlZAoJICBvciByZW1vdmVkIHdoaWxlIHRoZSBmdW5jdGlvbiBpcyBleGVjdXRpbmcuIFdlIGNhbiBzdGlsbCBkbyB0aGF0CgkgIGluIGZ1dHVyZSBpZiB3ZSB0aGluayBpdCdzIG5lZWRlZCwgYnV0IGluIHByYWN0aWNlIGl0IHdpbGwKCSAgbGlrZWx5IG1ha2UgYWJzb2x1dGVseSBubyBkaWZmZXJlbmNlIHdoYXRzb2V2ZXIsIHNpbmNlIHRoZXNlCgkgIHRoaW5ncyB3aWxsIGhhdmUgdG8gYmUgaGFuZGxlZCBwcm9wZXJseSBlbHNld2hlcmUgYnkgdGhlIGVsZW1lbnQKCSAgYW55d2F5IGlmIHRoZXkncmUgaW1wb3J0YW50LgoJICBBZnRlciBhbGwsIGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgYSBwYWQgaXMgYWRkZWQgb3IgcmVtb3ZlZAoJICBqdXN0IGFmdGVyIHRoZSBpdGVyYXRvciBmaW5pc2hlcyBpdGVyYXRpbmcsIGJ1dCBiZWZvcmUgdGhlCgkgIGZ1bmN0aW9uIHJldHVybnMuCgkgIFRoaXMgaXMgYWxzbyBhIHJlcGxhY2VtZW50IGZvciBnc3RfYWdncmVnYXRvcl9pdGVyYXRlX3NpbmtfcGFkcygpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1Njc5CgoyMDE3LTEwLTI3IDE0OjU4OjI4ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJICBnc3RsZWFrcy5jOiBhbHdheXMgbG9nIGxlYWtzIGxpc3RpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTU1NgoKMjAxNy0xMS0wMSAxMjoyNzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSAgbmV0OiBBZGQgbmV3IGZpbGUgdG8gdGhlIG1lc29uLmJ1aWxkCgoyMDE3LTExLTAxIDExOjMxOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvbWlzYy9uZXRjbG9jay1yZXBsYXkuYzoKCSAgZXhhbXBsZXMvbmV0Y2xvY2stcmVwbGF5OiBGaXggYnVpbGQKCjIwMTctMTAtMzAgMTA6NDk6MDYgKzAxMDAgIFJvYmVydCBSb3NlbmdyZW4gPHJvYmVydHJAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR1dGlscy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dXRpbHMuaDoKCSAgbmV0dXRpbHM6IEFkZCB1dGlsIGZvciBzZXR0aW5nIHNvY2tldCBEU0NQCgkgIFV0aWwgZnVuY3Rpb24gZm9yIHNldHRpbmcgUW9TIERTQ1AgYWRkZWQsIHRvIHJlbW92ZSBkdXBsaWNhdGVkIGNvZGUgaW4KCSAgbmV0Y2xpZW50Y2xvY2sgYW5kIG5ldHRpbWVwcm92aWRlci4gRml4IGJ1aWxkIGVycm9yIGlmIG1pc3NpbmcgSVBfVE9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzM3CgoyMDE3LTEwLTMxIDExOjM5OjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGdzdHZhbHVlOiBDYXN0IEdTVF9NQUtFX0ZPVVJDQyBhcmd1bWVudHMKCSAgVG8gbWFrZSBpdCBleHBsaWNpdCB0aGF0IHdlIGFyZSBkZWFsaW5nIHdpdGggdWludDMyIHRhcmdldHMKCSAgQXZvaWRzIGVycm9uZW91cyAgcnVudGltZSBlcnJvcjogbGVmdCBzaGlmdCBvZiBuZWdhdGl2ZSB2YWx1ZSAtMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5NzAwCgoyMDE3LTEwLTExIDExOjA4OjEyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJICBsYXRlbmN5LXRyYWNlcjogRXhjbHVkZSBzeW5jaHJvbml6YXRpb24gdGltZQoJICBUaGUgZ29hbCBvZiB0aGlzIHRyYWNlciBpcyB0byBtZWFzdXJlIHRoZSBwcm9jZXNzaW5nIGxhdGVuY3kgYmV0d2VlbiBhCgkgIHNyYyBhbmQgYSBzaW5rLiBJbiBwdXNoIG1vZGUsIHRoZSB0aW1lIHdhcyByZWFkIGFmdGVyIHRoZSBjaGFpbiBmdW5jdGlvbgoJICBoYXZlIHJldHVybmVkLiBBcyB0aGUgYW1vdW50IG9mIHRpbWUgd2Ugd2FpdCB0byBnZXQgc3luY2hlZCBpcyByZXZlcnNlCgkgIHRvIHRoZSBhbW91bnQgb2YgbGF0ZW5jeSB0aGUgc291cmNlIGludHJvZHVjZWQsIHRoZSByZXN1bHQgd2FzIHF1aXRlCgkgIHN1cnByaXNpbmcuCgkgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIGxhdGVuY3kgY2FsY3VsYXRpb24gaW4gdGhlIHByZS1wdXNoIGhvb2suIFdoZW4KCSAgdGhlcmUgaXMgbm8gcHJvY2Vzc2luZyBpbiBhIGEgcGlwZWxpbmUgKGUuZy4gZmFrZXNyYyAhIGZha2VzaW5rKSwgdGhlCgkgIGxhdGVuY3kgd2lsbCBub3cgYmUgMCBhcyBpdCdzIHN1cHBvc2VkIHRvLiBGb3IgcHVsbCBtb2RlLCB0aGUgY29kZSB3YXMKCSAgYWxyZWFkeSBjb3JyZWN0LiBXaGVuIEdzdEJhc2VTaW5rIG9wZXJhdGUgaW4gcHVsbCBtb2RlLCB0aGUgcHJvY2Vzc2luZwoJICB0aW1lIGlzIGRvbmUgZHVycmluZyB0aGUgcHVsbCwgc28gcHVsbC1wb3N0IGlzIHRoZSByaWdodCBob29rLiBUaGUKCSAgc3luY2hyb25pemF0aW9uIHdpbGwgaGFwcGVuIGFmdGVyIHRoZSBwdWxsIGhhcyBlbmRlZC4gTm90ZSB0aGF0CgkgIEdzdEJhc2VTaW5rIHJhcmVseSBvcGVyYXRlIGluIHB1bGwgbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODQzMQoKMjAxNy0xMC0yNyAwOTo1MzowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogRG9uJ3QgYWxsb3cgaW52YWxpZCBTRUxFQ1RfU1RSRUFNUyBldmVudCBjcmVhdGlvbgoJICBBc2tpbmcgdG8gc2VsZWN0IG5vIHN0cmVhbXMgbWFrZXMgbm8gc2Vuc2UgYW5kIGNhbiBjcmVhdGUgdmFyaW91cwoJICBpc3N1ZXMuCgkgIElmIG9uZSBkb2Vzbid0IG9uZSBhbnkgc3RyZWFtIGl0IHNob3VsZCBkZWFjdGl2YXRlIChvciBub3QgdXNlKSB0aGUKCSAgZWxlbWVudCBpbiBxdWVzdGlvbi4KCjIwMTctMTAtMjUgMTc6MTA6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IGJ1aWxkIHdpdGggb3B0aW9uIHBhcnNpbmcgZGlzYWJsZWQKCjIwMTctMTAtMjAgMTc6Mjg6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiB1cGRhdGUgdGhlIHRlc3RzCgkgIEJveSBzY291dCBydWxlLiBNYWtlIGlzIGEgbGl0dGxlIGxlc3MgcGFpbmZ1bCB0byBkZWJ1ZyB0aGUgdGVzdHMgYnkgdXNpbmcKCSAgZmFpbF91bmxlc3NfZXF1YWxzX3t1aW50NjQsaW50NjQsZmxvYXR9IHdoZXJlIGFwcHJvcHJpYXRlLiBJZGVhbGx5IHRoZSBsYXJnZQoJICB0ZXN0cyB3b3VsZCBiZSBzcGxpdHRlZCB0byBhdm9pZCBndWVzc2luZyBkYXRhIGRlcGVuZGVuY2llcy4KCjIwMTctMTAtMjAgMTY6MTU6MDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBjbGFyaWZ5IHRoZSBzZWdtZW50IGRvY3MgZm9yIHRoZSBkdXJhdGlvbgoKMjAxNy0xMC0yMCAxNjoxMTo0NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFJldmVydCAic2VnbWVudDogYWxzbyBpbnRpYWxpemUgdGhlIGR1cmF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGYxYmFhYWUxNzU1N2ZhNzVhOWJjZDk0MGI5OTQ1OTc3MTRiZTJmNzQuCgoyMDE3LTEwLTIwIDE0OjMwOjQyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWxzbyBpbnRpYWxpemUgdGhlIGR1cmF0aW9uCgkgIElmIHN0YXJ0IGFuZCBzdG9wIGFyZSBzZXQsIGNhbGN1bGF0ZSB0aGUgZHVyYXRpb24gYW5kIHNldCBpdCB0b28uCgoyMDE3LTEwLTIwIDEzOjAyOjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IG1vcmUgZGV0YWlscyBmb3IgdHlwZWZpbmQgYW5kIHRyYWNlciBmZWF0dXJlcwoJICBQcmludCBmdWxsIGRldGFpbHMgZm9yIHR5cGVmaW5kIGZlYXR1cmVzLiBQcmludCBzb21lIG9mIHRoZSBhdmFpbGFibGUgZmVhdHVyZXMKCSAgZm9yIHRyYWNlcnMgYW5kIGFkZCBzb21lIHRvZG9zIGZvciB0aGUgb25lcyB3ZSdkIGxpa2UgdG8gc2VlLgoKMjAxNy0xMC0yMCAxMToxNjo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiByZWR1Y2UgY2FzdGluZyBiYWNrIGFuZCBmb3J0aAoJICBSZWZhY3RvciB0aGUgcHJpbnRfZWxlbWVudF9pbmZvKCkgdG8gdGFrZSBhIEdzdFBsdWdpbkZlYXR1cmUuIFJlZHVjZXMgdGhlIG5lZWQKCSAgdG8gY2FzdCB0byBhbmQgZnJvbSBHc3RFbGVtZW50RmFjdG9yeS4KCjIwMTctMTAtMjAgMTE6MDg6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogc2ltcGxpZnkgdGhlIGNvZGUgZm9yIHByaW50aW5nIGZlYXR1cmUgaW5mbwoJICBSZW5hbWUgcHJpbnRfZWxlbWVudF9mZWF0dXJlcygpIHRvIHByaW50X2ZlYXR1cmVfaW5mbygpIGFuZCBtb3ZlIHRoZSBjb2RlIHRoYXQKCSAgaGFuZGxlcyB0aGUgRWxlbWVudEZhY3RvcnkgdGhlcmUuIFRoaXMgc2ltcGxpZmllcyB0aGUgY2FsbGluZyBjb2RlIGFuZCBpbXByb3ZlcwoJICByZWFkYWJpbGl0eS4KCSAgQWxzbyBkb24ndCBsZWFrIHRoZSBmZWF0dXJlcyBmb3Igb3RoZXIgZmFjdG9yaWVzLgoKMjAxNy0wNi0wMiAxNjoyNzoyOSArMDIwMCAgUm9iZXJ0IFJvc2VuZ3JlbiA8cm9iZXJ0ckBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWRkIHBvc3NpYmlsaXR5IHRvIHNldCBRb1MgRFNDUCB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NzM3CgoyMDE3LTA2LTAxIDE1OjQ4OjE2ICswMjAwICBSb2JlcnQgUm9zZW5ncmVuIDxyb2JlcnRyQGF4aXMuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IEFkZCBwb3NzaWJpbGl0eSB0byBzZXQgUW9TIERTQ1AgdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDczNwoKMjAxNy0xMC0xOCAwMjozMToxMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHNlcW51bTogTmV2ZXIgcmV0dXJuIGEgc2VxbnVtIG9mIDAsIHJlc2V0IEdTVF9TRVFOVU1fSU5WQUxJRAoJICBWYXJpb3VzIHBsdWdpbnMgdXNlIHRoZSB2YWx1ZSBvZiAnMCcgYXMgYW4gaW52YWxpZCBzZXFudW0gdmFsdWUKCSAgKHF0ZGVtdXggZm9yIG1hdGNoaW5nIGR1cGxpY2F0ZWQgc2VlayBldmVudHMsIGZvciBleGFtcGxlKS4gTWFrZQoJICB0aGF0IGJlaGF2aW91ciBleHBsaWNpdCwgY3JlYXRlIGEgR1NUX1NFUU5VTV9JTlZBTElEIHZhbHVlLAoJICBhbmQgZW5zdXJlIGdzdF91dGlsX3NlcW51bV9uZXh0IG5ldmVyIHJldHVybnMgaXQuCgoyMDE3LTEwLTE2IDE2OjA2OjM3ICswNTMwICBBc2hpc2ggS3VtYXIgPGtyLmFzaGlzaEBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBGaXggZm9yIHBvc3NpYmxlIGNyYXNoZXMgZHVlIHRvIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg4MzgKCjIwMTctMTAtMTUgMTU6NTk6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtZW50aW9uIHRoZSBxdWVyeSBmdW5jdGlvbiBpbiB0aGUgZG9jcyBhcyB3ZWxsCgoyMDE3LTEwLTA2IDIxOjU5OjAzICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgZ3N0YnVmZmVyOiBmaXggbWV0YSByZW1vdmFsIGluIGdzdF9idWZmZXJfZm9yZWFjaF9tZXRhCgkgIFdoZW4gdXBkYXRpbmcgdGhlIGxpbmtlZCBsaXN0LCBwcmV2LT5uZXh0ID0gbmV4dCBpcyBjb3JyZWN0CgkgIGlmIHByZXYgaXMgYWN0dWFsbHkgdXBkYXRlZCBhZnRlciBiZWluZyBzZXQgdG8gdGhlIGhlYWQKCSAgb2YgdGhlIGxpc3QgYXQgdGhlIHN0YXJ0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NjE3CgoyMDE3LTEwLTEwIDE1OjUzOjM4ICswMjAwICBmZW5nYWxpbiA8ZmVuZ2FsaW5AZnJlZS5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogRml4IHZlcnNpb24gZm9yIHJlZiBhbmQgdW5yZWYgZnVuY3Rpb25zCgkgIFRoZSBmdW5jdGlvbnMgd2VyZSBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMS4xMi4xLCBHc3RGbG93Q29tYmluZXIgd2FzCgkgIGludHJvZHVjZWQgaW4gMS40LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4Nzc4CgoyMDE3LTEwLTA1IDEzOjM1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIG5ldyBnc3RfYnVmZmVyX2xpc3RfY2FsY3VsYXRlX3NpemUoKSB1dGlsaXR5IGZ1bmN0aW9uCgoyMDE3LTEwLTA1IDEwOjI0OjI0ICswNTMwICBBc2hpc2ggS3VtYXIgPGtyLmFzaGlzaEBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJICBkZXZpY2UtcHJvdmlkZXI6IGdzdF9kZXZpY2VfcHJvdmlkZXJfdW5oaWRlX3Byb3ZpZGVyKCkgYWx3YXlzIGZhaWxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MjAKCjIwMTctMTAtMDQgMTQ6MTY6NDYgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHJlbW92ZSB2c19tb2R1bGVfZGVmcwoJICBUaGUgR1NUX0VYUE9SVCBzaG91bGQgaGFuZGxlIGl0LgoKMjAxNy0xMC0wMyAxMzo1NDoyNSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBVc2UgcHJvcGVyIEd0a0RvYyBub3RhdGlvbiBmb3IgTlVMTC9GQUxTRS9UUlVFCgoyMDE3LTEwLTAyIDE3OjU5OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogaXRlcmF0ZV9zb3J0ZWQ6IEVuc3VyZSBzb3VyY2VzIGFyZSBhbHdheXMgcmV0dXJuZWQgbGFzdAoJICBGb3IgbGlua2VkIGVsZW1lbnRzLCB0aGUgcmVzdWx0aW5nIGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQoKSB3aWxsCgkgIHByb3Blcmx5IHJldHVybiBlbGVtZW50cyBmcm9tIHNpbmsgdG8gc291cmNlcy4KCSAgSWYgd2UgaGF2ZSBzb21lIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBsaW5rZWQsIHdlICpzdGlsbCogd2FudCB0bwoJICBlbnN1cmUgdGhhdCB3ZSByZXR1cm46CgkgICogSW4gcHJpb3JpdHkgYW55IHNpbmtzCgkgICogTGFzdCBvZiBhbGwgYW55IHNvdXJjZXMKCSAgKiBBbmQgaW4gYmV0d2VlbiBhbnkgZWxlbWVudCB3aGljaCBpcyBuZWl0aGVyIHNvdXJjZSBub3Igc2luawoJICBGb3IgdGhpcyB0byB3b3JrLCB3aGVuIGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhbmRpZGF0ZSBlbGVtZW50LAoJICBub3Qgb25seSBjaGVjayB0aGUgZGVncmVlIG9yZGVyLCBidXQgaWYgdGhlcmUgYXJlIHR3byBjYW5kaWRhdGVzCgkgIHdpdGggdGhlIHNhbWUgZGVncmVlIG9yZGVyLCBwcmVmZXIgdGhlIG5vbi1zb3VyY2Ugb25lLgoJICBBbW9uZ3N0IG90aGVyIHRoaW5ncywgdGhpcyBmaXhlcyB0aGUgY2FzZSB3aGVyZSB3ZSBhY3RpdmF0aW5nIGEKCSAgYmluIGNvbnRhaW5pbmcgdW5saW5rZWQgc291cmNlcyBhbmQgb3RoZXIgZWxlbWVudHMuIFdpdGhvdXQgdGhpcwoJICB3ZSBjb3VsZCBlbmQgdXAgYWN0aXZhdGluZyBzb3VyY2VzICh3aGljaCBtaWdodCBzdGFydCBhZGRpbmcgcGFkcwoJICB0byBiZSBsaW5rZWQpIGJlZm9yZSBvdGhlciAodG8gd2hpY2ggdGhvc2UgbmV3IHNvdXJjZSBlbGVtZW50IHBhZHMKCSAgbWlnaHQgYmUgbGlua2VkKSBhcmUgbm90IGFjdGl2YXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NDM0CgoyMDE3LTEwLTAyIDE0OjExOjE5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlLXRlc3Q6IFRlc3QgYSByZWFsIHVzZSBjYXNlCgkgIFRoZSByZWFsIHVzZSBjYXNlIGlzIHdoZW4gZG93bnN0cmVhbSBkaWRuJ3Qgc2V0IGEgcG9vbCBvcgoJICBhbGxvY2F0aW9uIHBhcmFtcywgaW4gd2hpY2ggY2FzZSB3ZSBleHBlY3QgdGhlIHRlZSB0byBub3QKCSAgY3JlYXRlIGEgcG9vbCBvciBwYXJhbSBmcm9tIHRoaW4gYWlyLiBEb3dzdHJlYW0gc2V0dGluZwoJICBhbiBwb29sIHdpdGggc2l6ZT0wIHdhcyBpbiBmYWN0IHRlc3RpbmcgYSBkb3duc3RyZWFtIGVsZW1lbnQKCSAgYnVnLiBUaGUgZmFjdCB3ZSBoYW5kbGUgdGhhdCBpcyBhY2NpZGVudGFsLgoKMjAxNy0xMC0wMiAxNjoyNjozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IGRvbid0IGNyZWF0ZSBhIHBvb2wgaWYgbm9uZSBpcyBuZWVkZWQKCSAgSWYgdGhlIGFnZ3JlZ2F0ZWQgc2l6ZSBpcyAwIGFuZCB3ZSBjcmVhdGUgYSBwb29sLCB0aGUgcG9vbCB3b3VsZCBwcm92aWRlCgkgIGJ1ZmZlcnMgd2l0aCBubyBtZW1vcnkgYXNzaWduZWQuIEhhbmRsZSB0aGF0IGNhc2UgYW5kIHNraXAgdGhlIHBvb2wuCgkgIFRoaXMgd2FzIHRoZSBiZWhhdmlvdXIgYmVmb3JlIGNmODAzZWE5ZjRlM2ZkZTkyYzFkYTg2ZWNjNDc0NDQwMzVmN2MwYTcuCgkgIEFkZCBhIHRlc3QgZm9yIHRoaXMgc2NlbmFyaW8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3NTgKCjIwMTctMTAtMDIgMTM6MzU6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZWU6IFJlLWVuYWJsZWQgYWxsb2MgcXVlcnkgKyBhbGxvdy1ub3QtbGlua2VkIHRlc3QKCSAgSW4gdGhlIHVuaXQgdGVzdCByZWZhY3RvcmluZywgdGhlIHVubGlua2VkIHBhZCByZXF1aXJlZCB0byB0ZXN0CgkgIHRoZSBkaWZmZXJlbnQgYmVoYXZpb3VyIGluZHVjZWQgYnkgImFsbG93LW5vdC1saW5rZWQiIHByb3BlcnR5CgkgIHdhcyByZW1vdmVkLgoJICBDb21taXQgZTM2NGQ3OTQ0ZWNiYWI4NmRlYTczYzBlZTNlNjM5ZTc2NjkzOGQzNgoJICBNb3ZlIGFsbCB0aGUgY29kZSBmb3IgdGhpcyB0ZXN0IGluIHRoZSBwcm9wZXIgZnVuY3Rpb24sIGFuZCByZS1hZGQKCSAgdGhlIG1pc3NpbmcgdW5saW5rZWQgcGFkLiBUaGlzIG1ha2VzIHRoZSB0ZXN0IHVzZWZ1bCBhZ2Fpbi4KCjIwMTctMTAtMDIgMTY6MjU6MDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBzcGxpdCB0aGUgYWxsb2NhdGlvbiBxdWVyeSB0ZXN0CgkgIFNwbGl0IHRoZSBsYXJnZSBhbGxvY2F0aW9uX3F1ZXJ5IHRlc3QgaW50byBzZXBlcmF0ZSB0ZXN0cy4gQWRkIGEgc2V0dXAgaGVscGVyCgkgIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBGaXggdGhlIG9yaWdpbmFsIHRlc3QgdGhhdCB1c2VkIGZhaWxfdW5sZXNzIGluc3RlYWQKCSAgb2YgY2tfYXNzZXJ0X2ludF9lcSBhbmQgaGFkIGl0IGFjY2lkZW50aWFsbHkgd29ya2luZy4KCjIwMTctMTAtMDIgMTY6MjI6MDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIGEgdG9kbyBjb21tZW50CgkgIFByaW50aW5nIE5VTEwgaXMgY29uZnVzaW5nIHdoZW4gdGhlIHR5cGUgaXMgZS5nLiBhIEdBcnJheSB0aGF0IGlzIG5vdCBlbXB0eS4KCjIwMTctMTAtMDIgMTM6MTQ6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGRvYyBjb25zaXN0ZW5jeQoJICBNZW50aW9uIHRoYXQgaXQgaXMgdGhlICdidWZmZXIgc2l6ZScsIGxpa2Ugd2UgZG8gZWxzZXdoZXJlLgoKMjAxNy0wOS0yOCAxMDoxNzo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZmlsZQoKMjAxNy0wOS0yNyAyMDoyOTowNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0OiBNb2RpZnkgYmVoYXZpb3VyIG9mIGdzdF9nZXRfbWFpbl9leGVjdXRhYmxlX3BhdGgKCSAgVG8gYWN0dWFsbHkgcmV0dXJuIHRoZSBwYXRoIG9mIHRoZSBleGVjdXRhYmxlLCBub3QgaXRzCgkgIGRpcmVjdG9yeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODI1NgoKMjAxNy0wOS0yNiAyMTo1MTo1MyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQVBJOiBnc3RfZ2V0X21haW5fZXhlY3V0YWJsZV9wYXRoKCkKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIHBsdWdpbnMgdGhhdCBuZWVkIHRvIGluc3BlY3QgdGhlCgkgIGZvbGRlciBvZiB0aGUgbWFpbiBleGVjdXRhYmxlIGluIG9yZGVyIHRvIGRldGVybWluZSB0aGUKCSAgc2V0IG9mIGZlYXR1cmVzIHRoZXkgd2lsbCBleHBvc2UsIGZvciBleGFtcGxlOgoJICBodHRwczovL2dpdGh1Yi5jb20vY2VudHJpY3VsYXIvZ3N0cmVhbWVyLXZzdDMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODIxNAoKMjAxNy0wOS0yNyAxMzowNzoyNSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRG8gbm90IHRyeSB0byBkZXRlcm1pbmUgZXhlY3V0YWJsZSBwYXRoIG9uIGlPUy4KCSAgVGhlIG1ldGhvZCB1c2VkIHJlbGllcyBvbiAibGlicHJvYy5oIiwgd2hpY2ggaXMgb25seSBhdmFpbGFibGUKCSAgb24gT1NYLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjM0CgoyMDE3LTA5LTI3IDEzOjAxOjEzICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggdHlwbyBpbiB3aW5kb3dzIGZ1bmN0aW9uIG5hbWUuCgkgIEdldE1vZHVsZUZpbGVuYW1lIC0+IEdldE1vZHVsZUZpbGVOYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyMzQKCjIwMTctMDktMjcgMTA6MDY6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnQgZmlsZQoKMjAxNy0wOS0yNiAxNToxNToyNyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkgIHBsdWdpbiBkZXBlbmRlbmNpZXM6IGZpeCA2Y2RkY2U3NjYzY2I0YjZlZTA2MTk1MGQyMDM2NWY0MmNiNzU1ODUxCgkgIFRoZXJlIHdlcmUgYSBmZXcgZXJyb3JzOgoJICAqIFRoZSBwbHVnaW4gc2Nhbm5lciBub3cgYWNjZXB0cyBleGVjdXRhYmxlIHBhdGggYXMgYW4gYXJndW1lbnQuCgkgIEluIGNhc2UgaXQgaXMgTlVMTCwgYXJnYyA9PSAyCgkgICogV2UgZmluZCB0aGUgZXhlY3V0YWJsZSBwYXRoIGluIGluaXRfcHJlIGluc3RlYWQgb2YgZ3N0X2luaXQsCgkgIGFsbG93aW5nIHRoaXMgdG8gd29yayB3aGVuIGdzdCBpcyBpbml0aWFsaXplZCB0aHJvdWdoIHRoZQoJICBvcHRpb24gZ3JvdXAgKGVnIGdzdC1pbnNwZWN0KQoJICAqIFRoZXJlIHdhcyBhIHNlbWktY29sb24gbWlzc2luZyBpbiB0aGUgX19BUFBMRV9fICNpZmRlZgoKMjAxNy0wOS0yNSAyMDozNTo1OSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiBBUEk6IEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX1BBVEhTX0FSRV9SRUxBVElWRV9UT19FWEUKCSAgV2hlbiBhIHBsdWdpbiBkZWNsYXJlcyBhIGRlcGVuZGVuY3kgdXNpbmcgdGhpcyBmbGFnLCBhbGwgdGhlCgkgIHJlbGF0aXZlIHBhdGhzIGFyZSBjb25zaWRlcmVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBwYXRoIG9mCgkgIHRoZSBtYWluIGV4ZWN1dGFibGUuCgkgIFdlIHRyeSB0byBkZXRlcm1pbmUgdGhlIHBhdGggb2YgdGhlIGV4ZWN1dGFibGUgcG9ydGFibHksCgkgIHdpdGggaW1wbGVtZW50YXRpb25zIHByb3ZpZGVkIGZvciBMaW51eCwgV2luZG93cyBhbmQgTWFjLgoJICBJZiByZXRyaWV2YWwgb2YgdGhlIHBhdGggZmFpbHMsIHdlIHdpbGwgbm90IGRldGVjdCBjaGFuZ2VzLgoJICBJbiBvcmRlciBmb3IgdGhlIG1haW4gZXhlY3V0YWJsZSBwYXRoIHRvIGJlIHRoZSBzYW1lIHdoZW4KCSAgc2Nhbm5pbmcgYSBwbHVnaW4gaW4gYSBjaGlsZCBwcm9jZXNzLCBhIG5ldyB2YXJpYWJsZSBpcwoJICBleHBvc2VkIGluIGdzdF9wcml2YXRlLmgsIF9nc3RfZXhlY3V0YWJsZV9wYXRoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgxNTIKCjIwMTctMDktMjEgMTQ6MTM6NDcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBBbHNvIGJ1aWxkICRFWFRSQV9NT0RVTEVTCgkgIERvaW5nIGEgZ2l0IHB1bGwgYnV0IG5vdCBhdXRvZ2VuLnNoIC8gbWFrZSBpcyBub3QgY29uc2lzdGVudCBiZWhhdmlvdXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc5ODEKCjIwMTctMDktMTkgMjM6NTg6MjYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXVAY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFByaW50IEdzdFZhbHVlQXJyYXkgcHJvcGVydGllcyBuaWNlbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzkyNAoKMjAxNy0wNC0wMSAwNzoxNToyMiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIE11bHRpcXVldWU6IGRvbid0IGFsbG93IGRyb3BwaW5nIFNFR01FTlRfRE9ORSBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDc5NQoKMjAxNy0wOS0xNyAxODo1NToxOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IEdzdFN0YWNrVHJhY2VGbGFncyB3ZXJlIGFkZGVkIGluIDEuMTIKCjIwMTctMDgtMzEgMTM6MDU6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6IHVzZSBuZXcgZ3N0X2J1ZmZlcl9saXN0X2NhbGN1bGF0ZV9zaXplKCkKCjIwMTctMDgtMzEgMTI6NTQ6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGdzdF9idWZmZXJfbGlzdF9jYWxjdWxhdGVfc2l6ZSgpCgkgIFJldHVybnMgc2l6ZSBpbiBieXRlcy4KCjIwMTctMDgtMzAgMTM6NTA6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGdzdF9idWZmZXJfbGlzdF9nZXRfd3JpdGFibGUoKQoJICBFbnN1cmVzIGJ1ZmZlciBpcyB3cml0YWJsZS4gVXNlZnVsIGlmIHdlIHdhbnQgdG8gY2hhbmdlCgkgIG1ldGFkYXRhIG9uIGl0IHN1Y2ggYXMgdGltZXN0YW1wcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDI0MQoKMjAxNy0wOS0xMiAxODozMDowMCArMDMwMCAgTWljaGFlbCBTaGlnb3JpbiA8bWlrZUBhbHRsaW51eC5vcmc+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oLmluOiBpbml0aWFsIGUyayBhcmNoIHN1cHBvcnQKCSAgVGhpcyBtYWtlcyBnc3RyZWFtZXIgYnVpbGRhYmxlIG9uIEVsYnJ1cyAyMDAwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3NTg3CgoyMDE3LTA5LTA5IDE2OjE0OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogR3N0RGVidWdDb2xvckZsYWdzIGFyZSBmbGFncywgbm90IGFuIGVudW0KCSAgQW5ub3RhdGUgYXMgc3VjaC4KCjIwMTctMDktMDYgMTA6MDE6NTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogQWRkIGEgZHJvcC1hbGxvY2F0aW9uIHByb3BlcnR5CgkgIFdoZW4gZW5hYmxlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIG1ha2UgdGhlIGFsbG9jYXRpb24gcXVlcnkgZmFpbC4gVGhpcyBpcwoJICB0aGUgc2FtZSBhcyBvbmUgY291bGQgaGF2ZSBkb25lIHVzaW5nIGEgdGVlIGJlZm9yZSB0aGUgdGVlIHN0YXJ0ZWQKCSAgaW1wbGVtZW50aW5nIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTA5LTA1IDE1OjU3OjUxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBbGxvY2F0ZSBvbmUgbW9yZSBidWZmZXIgd2hlbiBtdWx0aS1wbGV4aW5nCgkgIFRoaXMgZXh0cmEgYnVmZmVyIGVuc3VyZSB0aGF0IHRoZSBkb3duc3RyZWFtIHRocmVhZHMgYXJlIG5vdCBzdGFydmVkCgkgIHdoZW4gbXVsdGlwbGV4aW5nIGEgc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzU4CgoyMDE3LTA5LTA1IDE1OjQ1OjMzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBZGQgdGVzdCBmb3IgdGhlIGFsbG9jYXRpb24gcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0wOC0wOCAxNzozOTo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBJbXBsZW1lbnQgYWxsb2NhdGlvbiBxdWVyeSBhZ2dyZWdhdGlvbgoJICBUaGlzIHdpbGwgYWdncmVnYXRlIGFsbG9jYXRpb24gcGFyYW1zLCBwb29sIGFuZCB3aWxsIGtlZXAgYWxsCgkgIG1ldGEgdGhhdCBoYXMgbm8gcGFyYW1ldGVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0wOC0wOCAxNzozNToxOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBEZXByZWNhdGUgYWxsb2MtcGFkIHByb3BlcnR5CgkgIEl0IGhhcyBubyBlZmZlY3QsIG5vdCBpbXBsZW1lbnRlZCwgYW5kIHdvdWxkIGxlYWQgdG8gYmFkIHJlbmRlcmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDc1OAoKMjAxNy0wOS0wNCAxMjoyMDo0MyArMDIwMCAgTWlndWVsIFBhcsOtcyA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHRlc3QgdG8gY2hlY2sgaGFuZGxlZCBhbmQgZHJvcCBwcm9iZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI0MwoKMjAxNy0wOS0wNCAxNDozMzoyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBjYWxsIHJlbWFpbmluZyBwcm9iZXMgYWZ0ZXIgdGhleSByZXR1cm4gRFJPUFBFRHxIQU5ETEVECgkgIElmIG11bHRpcGxlIHByb2JlcyBhcmUgc2V0IG9uIGEgcGFkIGFuZCBvbmUgcHJvYmUgcmV0dXJucyBlaXRoZXIKCSAgR1NUX1BBRF9QUk9CRV9IQU5ETEVEIG9yIEdTVF9QQURfUFJPQkVfRFJPUFBFRCB3ZSBuZWVkIHRvIHN0b3AKCSAgY2FsbGluZyB0aGUgcmVtYWluaW5nIHByb2Jlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI0MwoKMjAxNy0wOC0yNiAxMzo0NDozOCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBIYW5kbGUgc2VyaWFsaXppbmcgTlVMTCBHVmFsdWVBcnJheQoJICBDb25jaWRlciB0aGVtIGFzIGFuIGVtcHR5IGFycmF5IGFuZCBkbyBub3Qgc2VnZmF1bHQuLi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjY3MAoKMjAxNy0wOC0yNCAxNjowMDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHRhZ2xpc3QgdXBkYXRlIHNwYW0KCSAgV2Ugd291bGQgY29uc3RhbnRseSByZS1wb3N0IHRoZSB0YWdsaXN0IGJlY2F1c2UKCSAgcG9zdGVkX2F2Z19yYXRlIG9ubHkgZ2V0cyBzZXQgdG8gYXZnX2JpdHJhdGUgaWYKCSAgcGFyc2UtPnByaXYtPnBvc3RfYXZnX2JpdHJhdGUgaXMgdHJ1ZSwgc28gaWYgaXQncwoJICBmYWxzZSB0aGUgcG9zdGVkIHJhdGUgd2lsbCBhbHdheXMgZGlmZmVyIGZyb20gdGhlCgkgIGN1cnJlbnQgYXZlcmFnZSByYXRlIGFuZCB3ZSdkIHF1ZXVlIGFuIHVwZGF0ZSwKCSAgd2hpY2ggbGVhZHMgdG8gdXMgc3BhbW1pbmcgZG93bnN0cmVhbSBhbmQgdGhlCgkgIGFwcGxpY2F0aW9uIHdpdGggdGFnbGlzdCB1cGRhdGVzLgoJICBGaXggdGhpcyBieSBvbmx5IHF1ZXVpbmcgYW4gdXBkYXRlIGlmIHRoZSBhdmVyYWdlCgkgIHJhdGUgd2lsbCBhY3R1YWxseSBiZSBwb3N0ZWQuCgkgIFRoZXNlIHRhZ2xpc3RzIHVwZGF0ZXMgY291bGQgY2F1c2UgZXhwZW5zaXZlCgkgIG9wZXJhdGlvbnMgb24gdGhlIGFwcGxpY2F0aW9uIHNpZGUsIGUuZy4gaW4gVG90ZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODY1NjEKCjIwMTctMDgtMTcgMTI6MjM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDhhNWQ4NSB0byAzZjRhYTk2CgoyMDE3LTA4LTE3IDE0OjEzOjM5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudC9kZXZpY2Vwcm92aWRlcjogQWRkIGluc3RhbmNlIGdldHRlciBmdW5jdGlvbnMgZm9yIGNsYXNzIHByb3BlcnRpZXMKCSAgVGhhdCBpcywgdGhlIG1ldGFkYXRhIGFuZCBwYWQgdGVtcGxhdGVzLiBVc2luZyBpbnN0YW5jZSBnZXR0ZXJzIGlzCgkgIGVhc2llciB0byBkZWFsIHdpdGggZm9yIGJpbmRpbmdzLCBlc3BlY2lhbGx5IGF1dG9nZW5lcmF0ZWQgb25lcy4KCjIwMTctMDgtMTYgMjI6NDc6MzEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IFJldHVybiBGTFVTSElORyBpbnN0ZWFkIG9mIEVPUyBhbmQgZG9uJ3Qgc3RhcnQgd2FpdGluZyBmb3IgYW55dGhpbmcgaWYgY3VycmVudGx5IGZsdXNoaW5nCgkgIE90aGVyd2lzZSB3ZSBtaWdodCB0cnkgdW5zY2hlZHVsaW5nIGEgY2xvY2sgaWQgKHRoYXQgZG9lcyBub3QgZXhpc3QKCSAgeWV0KSwgdGhlbiB0aGUgc3RyZWFtaW5nIHRocmVhZCB3YWl0cyBmb3IgaWQgYW5kIHRoZSBzdGF0ZSBjaGFuZ2UgbmV2ZXIKCSAgY29udGludWVzIGJlY2F1c2UgdGhlIHN0cmVhbWluZyB0aHJlYWQgaXMgYmxvY2tlZC4KCSAgQWxzbyBzaHV0dGluZyBkb3duIGFuZCBmbHVzaGluZyBhbmQgc2ltaWxhciBzaG91bGQgcmV0dXJuIEZMVVNISU5HLCBub3QKCSAgRU9TLiBUaGUgc3RyZWFtIGlzIG5vdCBvdmVyLCB3ZSdyZSBqdXN0IG5vdCBhY2NlcHRpbmcgYW55IGJ1ZmZlcnMKCSAgYW55bW9yZS4KCjIwMTctMDgtMTQgMTE6MDE6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhbGxvY2F0b3I6IEhpZGUgcHJpdmF0ZSBzeXNtZW0gR1R5cGUgZnVuYwoJICBXYXMgbmV2ZXIgZXhwb3NlZCBpbiBhbnkgaGVhZGVyIGZpbGUsIG9ubHkgZXhwb3J0ZWQKCSAgYnkgYWNjaWRlbnQuCgoyMDE3LTA4LTExIDIxOjE3OjA2ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWRkIHN3aXRjaGVzIGZvciBlbmFibGluZy9kaXNhYmxpbmcgbGliZHcgYW5kIGxpYnVud2luZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4MTkzCgoyMDE3LTA4LTEzIDEwOjUwOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5oOgoJICBsaWJjaGVjazogZml4IGJ1aWxkIGZhaWx1cmUKCSAgTmVlZCB0byBkZWZpbmUgQ0tfRExMX0VYUCB0byBleHRlcm4gYXMgd2VsbCBpbiBsaWJjb21wYXQuaAoJICB3aGljaCBnZXRzIGluY2x1ZGVkIGJlZm9yZSB0aGUgaW50ZXJuYWwtY2hlY2suaCB3aGVyZSB0aGUKCSAgb3RoZXIgZmFsbGJhY2sgZGVmaW5pdGlvbiBmb3IgQ0tfRExMX0VYUCBpcy4KCSAgZHVwbGljYXRlIHN5bWJvbCBfY2hlY2tfbWlub3JfdmVyc2lvbiBpbjoKCSAgbGliY2hlY2tpbnRlcm5hbC5hKGxpYmNoZWNraW50ZXJuYWxfbGEtY2hlY2subykKCSAgbGliY2hlY2tpbnRlcm5hbC5hKGxpYmNoZWNraW50ZXJuYWxfbGEtY2hlY2tfbG9nLm8pCgoyMDE3LTA4LTExIDExOjEyOjA5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQWxsb3cgcmUtdXNhYmlsaXR5IGFmdGVyIEVPUwoJICBBZnRlciBFT1MsIGl0IGlzIHBvc3NpYmxlIGZvciBhIHBhZCB0byBiZSByZXNldHRlZCBieSBzZW5kaW5nCgkgIGVpdGhlciBhIFNUUkVBTV9TVEFSVCBvciBTRUdNRU5UIGV2ZW50CgkgIE1pbWljIHRoZSBzYW1lIGJlaGF2aW91ciB3aGVuIHJlY2VpdmluZyBTVFJFQU1fU1RBUlQvU0VHTUVOVCBldmVudHMKCSAgaW4gcXVldWUgaWYgd2UgYXJlIEVPUydkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODYwNTYKCjIwMTctMDgtMTAgMTM6MzI6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBoaWRlIHN5bWJvbHMgYnkgZGVmYXVsdCB1bmxlc3MgZXhwbGljaXRseSBleHBvcnRlZAoKMjAxNy0wOC0xMCAxMToxNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgbGliczogY2hlY2s6IHNwcmlua2xlIHNvbWUgR1NUX0VYUE9SVAoJICBIYXZlIHRvIG1vZGlmeSBsaWJjaGVjayBoZWFkZXIgYSBiaXQgdG8gYXZvaWQgd2FybmluZ3MKCSAgYWJvdXQgZHVwbGljYXRlICdleHRlcm4gZXh0ZXJuJy4KCSAgQWxzbyBuZWVkcyBzb21lIGFkZGl0aW9ucyB0byB0aGUgbGliY2hlY2sgbWVzb24uYnVpbGQgZmlsZQoJICB0byBkZWZpbmUgQ0tfRVhQX0RMTCB3aGVuIGJ1aWxkaW5nIHRoZSBzdGF0aWMgbGliY2hlY2suCgoyMDE3LTA4LTA4IDEyOjU2OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZy1pci1zY2FubmVyIHdhcm5pbmcgYWJvdXQgYm9ndXMgdHJhbnNmZXIgYW5ub3RhdGlvbnMKCSAgZm9yIHZhcmFyZyBwYXJhbWV0ZXJzLiBWYXJhcmcgZnVuY3Rpb25zIGFyZSBub3QgaW50cm9zcGVjdGFibGUgYW55d2F5LAoJICBzbyBtaWdodCBqdXN0IGFzIHdlbGwgbWFyayB0aGVtIGFzICcoc2tpcCknIHdoaWxlIHdlJ3JlIGF0IGl0LgoJICBnc3R1dGlscy5jOjI2MTE6IFdhcm5pbmc6IEdzdDogaW52YWxpZCAidHJhbnNmZXIiIGFubm90YXRpb24gZm9yIDx2YXJhcmdzPjogb25seSB2YWxpZCBmb3Igb2JqZWN0IGFuZCBHVmFyaWFudCB0eXBlcwoKMjAxNy0wOC0wOSAxNjoxNToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQWxsb3cgcmUtdXNhYmlsaXR5IGFmdGVyIEVPUwoJICBBZnRlciBFT1MsIGl0IGlzIHBvc3NpYmxlIGZvciBhIHBhZCB0byBiZSByZXNldHRlZCBieSBzZW5kaW5nCgkgIGVpdGhlciBhIFNUUkVBTV9TVEFSVCBvciBTRUdNRU5UIGV2ZW50CgkgIE1pbWljIHRoZSBzYW1lIGJlaGF2aW91ciB3aGVuIHJlY2VpdmluZyBTVFJFQU1fU1RBUlQvU0VHTUVOVCBldmVudHMKCSAgaW4gcXVldWUyIGlmIHdlIGFyZSBFT1MnZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDU2CgoyMDE3LTA4LTA5IDEwOjUxOjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogKnF1ZXVlKiBlbGVtZW50czogSGFuZGxlIFNUUkVBTV9TVEFSVCBpbiBFT1Mgc2l0dWF0aW9uCgkgIFdoZW4gcXVldWUtbGlrZSBlbGVtZW50cyBhcmUgaW4gIkVPUyIgc2l0dWF0aW9uIChyZWNlaXZlZCBHU1RfRkxPV19FT1MKCSAgZnJvbSBkb3duc3RyZWFtIG9yIEVPUyB3YXMgcHVzaGVkKSwgdGhleSBkcmFpbiBidWZmZXJzL2V2ZW50cyB0aGF0CgkgIHdvdWxkbid0IGJlIHByb2Nlc3NlZCBhbnl3YXkgYW5kIGxldCB0aHJvdWdoIGV2ZW50cyB0aGF0IG1pZ2h0CgkgIG1vZGlmeSB0aGUgRU9TIHNpdHVhdGlvbi4KCSAgUHJldmlvdXNseSBvbmx5IEdTVF9FVkVOVF9FT1MgYW5kIEdTVF9FVkVOVF9TRUdNRU5UIGV2ZW50cyB3ZXJlIGxldAoJICB0aHJvdWdoLCBidXQgd2UgYWxzbyBuZWVkIHRvIGFsbG93IEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQgdG8gZ28KCSAgdGhyb3VnaCBzaW5jZSBpdCByZXNldHMgdGhlIEVPUyBzdGF0ZSBvZiBwYWRzIHNpbmNlIDEuNgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDM0CgoyMDE3LTA4LTA4IDIxOjE5OjMyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBTa2lwIGdzdF9jYWxjdWxhdGVfbGluZWFyX3JlZ3Jlc3Npb24oKSBpbiBiaW5kaW5ncwoKMjAxNy0wOC0wNyAxMjoyNDozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogSGFuZGxlIGJ1ZmZlcmluZyBsZXZlbHMgb24gTk9UX0xJTktFRAoJICBXaGVuIGRvd25zdHJlYW0gcmV0dXJucyBOT1RfTElOS0VELCB3ZSByZXR1cm4gdGhlIGJ1ZmZlcmluZyBsZXZlbAoJICBhcyBiZWluZyAxMDAlLgoJICBTaW5jZSB0aGUgcXVldWUgaXMgbm8gbG9uZ2VyIGJlaW5nIGNvbnN1bWVkL3VzZWQgZG93bnN0cmVhbSwgd2UKCSAgd2FudCBhcHBsaWNhdGlvbnMgdG8gZXNzZW50aWFsbHkgImlnbm9yZSIgdGhpcyBxdWV1ZSBmb3IgYnVmZmVyaW5nCgkgIHB1cnBvc2VzLgoJICBJZiBvdGhlciBzdHJlYW1zIGFyZSBzdGlsbCBiZWluZyB1c2VkLCB0aG9zZSBzdHJlYW0gYnVmZmVyaW5nIGxldmVscwoJICB3aWxsIGJlIHVzZWQuIElmIG5vbmUgYXJlIHVzZWQsIHVwc3RyZWFtIHdpbGwgcG9zdCBhbiBlcnJvciBtZXNzYWdlCgkgIG9uIHRoZSBidXMgaW5kaWNhdGluZyBubyBzdHJlYW1zIGFyZSB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1Nzk5CgoyMDE3LTA4LTA3IDExOjIzOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBndGstZG9jIGludm9jYXRpb24KCSAgQXJndW1lbnQgaXMgY2FsbGVkICJzY2Fub2Jqc19hcmdzIiwgYW5kIHdlIHdlcmUgbWlzc2luZyBhIHF1b3RlLgoKMjAxNy0wOC0wNyAxMTowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggYSBmZXcgd2FybmluZ3MKCjIwMTctMDgtMDcgMTA6MzM6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwa2djb25maWcvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBhZGQgLWxtIHRvIGdzdHJlYW1lci1jaGVjay0xLjAgcGtnY29uZmlnIGZpbGUKCSAgRml4ZXMgd2FybmluZyB3aXRoIG1lc29uIGZyb20gZ2l0IGFib3V0IExJQk0gbm90IGJlaW5nCgkgIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb25fZGF0YS4KCjIwMTctMDgtMDIgMjE6MDI6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVjaGVjayBzdGlja3kgZXZlbnRzIGFmdGVyIG5vbi1ibG9ja2luZyBidWZmZXIgcHJvYmVzIGFuZCBibG9ja2luZyBldmVudCBwcm9iZXMKCSAgV2l0aG91dCB0aGUgZm9ybWVyLCBldmVudCBjaGFuZ2VzIChlLmcuIHNldHRpbmcgYSBwYWQgb2Zmc2V0KSBkb2VzIG5vdAoJICB0YWtlIGVmZmVjdCBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyIGJ1dCBvbmx5IGZvciB0aGUgbmV4dCBvbmUuIFdpdGhvdXQKCSAgdGhlIGxhdHRlciwgbm9uLWJsb2NraW5nIGV2ZW50IHByb2JlcyB3b3VsZCBub3Qgc2VlIGFueSB1cGRhdGVkIGV2ZW50cwoJICB5ZXQuCgoyMDE3LTA3LTI5IDEwOjI4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGJ1aWxkIHdpdGggZ3N0IGRlYnVnZ2luZyBkaXNhYmxlZAoKMjAxNy0wNy0xNyAyMTowMzoxMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWJ1ZzogQWRkIGEgbWVtb3J5IHJpbmdidWZmZXIgYmFzZWQgZGVidWcgbG9nZ2VyCgkgIFRoaXMgc3RvcmVzIGRlYnVnIGxvZ3MgaW4gbWVtb3J5IHBlciB0aHJlYWQgYW5kIHVzZXMgdXAgdG8gYQoJICBjb25maWd1cmFibGUgYW1vdW50IG9mIGJ5dGVzIHBlciB0aHJlYWQgZm9yIHRoZSBsb2dzLiBJbmFjdGl2ZSB0aHJlYWRzCgkgIGFyZSB0aW1lZCBvdXQgYWZ0ZXIgYSBjb25maWd1cmFibGUgYW1vdW50IG9mIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODUwMzUKCjIwMTctMDctMjggMTc6Mjc6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBBZGQgbWlzc2luZyBvdXQgYW5ub3RhdGlvbnMgZm9yIHZhcmlvdXMgcGFyYW1ldGVycwoKMjAxNy0wNy0yNiAxNDoxNzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5oOgoJICBkb3dubG9hZGJ1ZmZlcjogcmVtb3ZlIHVudXNlZCBzdHJ1Y3QgbWVtYmVyCgkgIFRoaXMgd2FzIHVzZWQgaW4gcXVldWUyIHdoZW4gaGFuZGxpbmcgaW4gY29taW5nIHNlcmlhbGl6ZWQKCSAgcXVlcmllcywgYnV0IGRvd25sb2FkYnVmZmVyIGp1c3QgcmVmdXNlcyBzZXJpYWxpemVkIHF1ZXJpZXMuCgoyMDE1LTAzLTEwIDE2OjQyOjQ0ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBkdXBsaWNhdGUgY29kZSBicmFuY2hlcwoJICBDSUQgIzEyMjY0NDYKCjIwMTctMDctMjYgMTE6MTU6NTggKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb2N1bWVudCB0aGF0IGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlIG5lZWRzIHRvIGJlIGNhbGxlZCB3aXRoIHRoZSBTVEFURV9MT0NLCgkgIEl0IGludGVybmFsbHkgY2FsbHMgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKCksIHdoaWNoIHJlcXVpcmVzIHRoZSBTVEFURV9MT0NLCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODU0MzEKCjIwMTctMDctMjAgMTc6MzE6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCBjb21waWxlciB3YXJuaW5ncyBmb3IgU0lHSFVQIGhhbmRsZXJzIG9uIHdpbmRvd3MKCSAgRml4IHVudXNlZCB2YXJpYWJsZS9mdW5jdGlvbiBjb21waWxlciB3YXJuaW5ncyBvbiB3aW5kb3dzLgoJICBUaGUgU0lHSFVQIGhhbmRsaW5nIGlzIG9ubHkgYXZhaWxhYmxlIHVuZGVyIHVuaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM2NjEKCjIwMTctMDctMjAgMTQ6MTc6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGFjY2VzcyB0byBOVUxMIHBvaW50ZXIKCSAgc3EgY2FuIGJlIE5VTEwuCgkgIEFsc28gZml4IGNvbW1pdCBtZXNzYWdlIChpdCdzIHRoZSBxdWV1ZSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIgdGhhdCB3ZQoJICBhcmUgbG9nZ2luZywgbm90IHRoZSBvbmUgcGFzc2VkIGFzIGFyZ3VtZW50KS4KCSAgQ0lEICMxNDE1NTY5CgoyMDE3LTA3LTAzIDE1OjE3OjMzICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBDYWxjdWxhdGUgaW50ZXJsZWF2ZSBvbmx5IHdpdGhpbiBlYWNoIHN0cmVhbWluZyB0aHJlYWQKCSAgLi4uIGFuZCB1c2UgdGhlIGJpZ2dlc3QgaW50ZXJsZWF2ZSB2YWx1ZSBhbW9uZyBzdHJlYW1pbmcgdGhyZWFkcy4KCSAgVGhpcyBpcyB0byBvcHRpbWl6ZSBtdWx0aXF1ZXVlIHNpemUgYWRhcHRhdGlvbiBvbiBhZGFwdGl2ZSBzdHJlYW1pbmcKCSAgdXNlIGNhc2Ugd2l0aCAidXNlLWludGVybGVhdmUiIHByb3BlcnR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NDQ4CgoyMDE3LTA3LTE1IDEyOjQwOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBwbzogdXNlIGdsaWIgcHJlc2V0IGFuZCByZWFkIGxhbmd1YWdlIGxpc3QgZnJvbSBMSU5HVUFTCgkgIFN1cHBvcnRlZCBzaW5jZSBtZXNvbiAwLjM3LCBzbyB3ZSBjYW4gdXNlIGl0IG5vdy4KCjIwMTctMDctMTUgMTE6NTQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBkb24ndCBtb2RpZnkgbWVtb3J5IGlmIGl0J3MgY2xlYXJseSBub3QgYSB2YWxpZCBtaW5pb2JqZWN0CgkgIEFkZCBiYWNrIGZ1bmN0aW9uIGd1YXJkIHRoYXQgY2hlY2tzIHRoZSByZWZjb3VudCBpbiBhIHJlYWQtb25seQoJICBvcGVyYXRpb24gZmlyc3QsIGFuZCBiYWlsIG91dCB3aXRob3V0IG1vZGlmeWluZyB0aGUgcGFzc2VkLWluCgkgIG1lbW9yeSBpZiBpdCdzIGNsZWFybHkgbm90IGEgdmFsaWQgbWluaSBvYmplY3QuIE90aGVyd2lzZSB3ZQoJICBwcm9iYWJseSBjYXVzZSBtb3JlIGhhcm0gdGhhbiBnb29kLiBXZSBrZWVwIHRoZSBzZWNvbmQgc2FuaXR5CgkgIGNoZWNrIGJhc2VkIG9uIHRoZSAncmVhbCByZWZjb3VudCcgYXQgdGhlIHRpbWUgb2YgdGhlIHVucmVmCgkgIGFyb3VuZCBmb3Igbm93IHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDM4MwoKMjAxNy0wNy0xNCAxNjo1Njo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogZGVwcmVjYXRlIG5vbi1mdW5jdGlvbmFsICJ0eXBlZmluZCIgcHJvcGVydHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjU2NQoKMjAxNy0wNy0xMCAxNjo1MjozOCArMDIwMCAgRnJhbmNpc2NvIFZlbGF6cXVleiA8ZnJhbmNpc3ZAaWZpLnVpby5ubz4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuc2NtOgoJICBiZW5jaG1hcms6IGZpeCBjb21wbGV4aXR5IGJlbmNobWFyawoJICBNYWtlIGNvbXBsZXhpdHkgYmVuY2htYXJrIGNvZGUgd29yayBmb3IgY29tcGxleGl0eSA+IDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDc1NAoKMjAxNy0wNy0xNCAxNjoxMjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBtZXNvbi5idWlsZDoKCSAgd2luMzI6IGZpbmQgcGx1Z2luIHNjYW5uZXIgaW4gbGliZXhlY2RpciBzdWJkaXIgYXMgY29uZmlndXJlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTE1CgoyMDE3LTA3LTEzIDIxOjUyOjM0ICswODAwICBKYXNvbiBMaW4gPHNoYW5nY2hpZWhAcmVhbHRlay5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggYnVmZmVyIGxlYWtzIGlmIHByZXJvbGwgZmFpbGVkCgkgIGJ1ZmZlciBpcyBub3QgdW5yZWZlcmVuZWQgaWYgcHJlcm9sbCBmYWlsZWQKCSAgOkRldGFpbGVkIE5vdGVzOgoJICAtIFByb2JsZW0gOiB2aWRlbyBmcmVlemUgd2hlbiBzd2l0Y2hpbmcgZnJvbSBwYXVzZSB0byAxLzItRkYgcmVwZWF0ZWRseQoJICAtIFJvb3RDYXVzZSA6IGJ1ZmZlciBsZWFrcyBpbiBiYXNlc2luawoJICAtIFNvbHV0aW9uIDogdW5yZWYgdGhlIGJ1ZmZlciBpZiBwcmVyb2xsZWQgZmFpbGVkCgkgIDpUZXN0aW5nIFByZWZvcm1lZDoKCSAgSG93IHRvIFRlc3QgOgoJICBwYXVzZSAtPiAxLzIgRkYgLT4gcmVzdW1lIC0+IHBhdXNlIC0+IDEvMiBGRiAuLi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDkzMgoKMjAxNy0wNi0xMSAxNToxNToxMyArMDAwMCAgR3JhaGFtIExlZ2dldHQgPG1pbmZyaW5Ac2hhcnAuZm0+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogdG9vbHMvZ3N0LWxhdW5jaC0xLjAuMToKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBHZW5lcmF0ZSBhIGdzdHJlYW1lciBwaXBlbGluZSBkaWFncmFtIG9uIFNJR0hVUC4KCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgYSBwaXBlbGluZSB0aGF0IHJlZnVzZXMgdG8gZW50ZXIgYSBnaXZlbiBzdGF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzY2MQoKMjAxNy0wNi0yNiAxMTo0NjozOSArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmb3J3YXJkIFNJTktfTUVTU0FHRSBldmVudHMgZG93bnN0cmVhbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0NTUxCgoyMDE3LTA3LTExIDE0OjU2OjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBiYXNoY29tcCBpbnN0YWxsYXRpb24KCSAgRm9yIHNvbWUgcmVhc29uIHRoZSBkb3VibGUgcXVvdGVzIGVuZGVkIHVwIGluIHRoZSBwYXRoLCBoZW5jZQoJICB0aGUgaGVscGVyIHdoZXJlIGluc3RhbGxlZCBhdCAiLiIvc2hhcmUvLi4uCgoyMDE3LTA3LTExIDE0OjU1OjQyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkYXRhL2Jhc2gtY29tcGxldGlvbi9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy9lbGVtZW50cy9tZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSBqb2luX3BhdGhzIGFuZCAuc2V0X3F1b3RlZCB3aGVyZSBwb3NzaWJsZQoKMjAxNy0wNy0xMSAxNjoxNToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSAgbWVzb246IHBrZ2NvbmZpZzogYWRkIGxpYnVud2luZC9saWJkdyB0byBnc3RyZWFtZXItMS4wIFJlcXVpcmVzLnByaXZhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDc5NQoKMjAxNy0wNy0xMSAxNToyOTo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcGtnY29uZmlnOiBBZGQgcHJpdmF0ZSByZXF1aXJlbWVudHMKCSAgQWRkIGxpYnVud2luZCBhbmQgZHcgdG8gdGhlIC5wYyBSZXF1aXJlcy5wcml2YXRlLiBGaXhlcyBzdGF0aWMgbGlicmFyeQoJICBjb21waWxhdGlvbiBpZiBnc3RyZWFtZXIgd2FzIGNvbXBpbGVkIHdpdGggb25lIG9mIHRob3NlIGRlcGVuZGVuY2llcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0Nzk1CgoyMDE3LTA3LTA5IDIxOjIwOjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIEdTVF9DTE9DS19USU1FIG1hY3JvcyBmb3IgcmVhZGFiaWxpdHkKCSAgUmVwbGFjZSBzb21lIC0xIGNvbXBhcmlzb24gd2l0aCBHU1RfQ0xPQ0tfVElNRSBtYWNyb3MuCgoyMDE3LTA3LTA5IDIxOjE2OjQ0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogY29ycmVjdCBzb21lIGNvbW1lbnRzIGFuZCBhZGQgbW9yZSBsb2dnaW5nCgkgIEFkZCBtb3JlIGxvZ2dpbmcgdG8gYW5hbHl6ZSBldmVudCBoYW5kbGluZyAoZXNwZWNpYWxseSBmYWlsdXJlIGNhc2VzKS4KCjIwMTctMDUtMDEgMTM6MzU6MDkgLTA3MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRvb2xzOiBnc3Qtc3RhdHM6IFVzZSBzdGFuZGFyZCBjaGFyYWN0ZXIgZXNjYXBlcwoJICBIYXZpbmcgJ1xlJyBleHBhbmQgdG8gJ1x4MWInIGlzIGEgZ251IGV4dGVuc2lvbi4gSSBkaWRuJ3Qgc2VlIGFueQoJICBkb2N1bWVudCBkZXNjcmliaW5nIHRoZSBiZWhhdmlvciwgYnV0IGdjYyBhbHNvIHNlZW1zIHRvIGV4cGFuZAoJICAnXFsnIHRvICdbJy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjAyOAoKMjAxNy0wNy0wNyAxMjowNjo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaW5kIHB5dGhvbjMgdmlhIHB5dGhvbjMgbW9kdWxlCgkgIEFuZCByZW5hbWUgcHl0aG9uMyB2YXJpYWJsZSBpbiBtZXNvbiBidWlsZCBmaWxlcyBmb3IgY2xhcml0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzE5OAoKMjAxNy0wNy0wNSAxMzoyMDoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkqIHBsdWdpbnMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogYWRkIG9wdGlvbiB0byBkaXNhYmxlIHRyYWNlciBob29rcwoKMjAxNy0wNy0wNSAxMzoxOTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IG1lbW9yeTogc2tpcCB0ZXN0IHRoYXQgZGVwZW5kcyBvbiBkZWJ1ZyBzeXN0ZW0gaWYgaXQncyBkaXNhYmxlZAoKMjAxNy0wNy0wNSAxMzoxNzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjaW5nOiBmaXggYnVpbGQgd2l0aCB0cmFjZXIgaG9va3MgZGlzYWJsZWQKCjIwMTctMDctMDMgMDk6MDM6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBtYWtlIHJlZmNvdW50IHRyYWNpbmcgYW5kIGRlYnVnIGxvZ2dpbmcgcmVsaWFibGUKCSAgVHJhY2luZyBvZiB0aGUgcmVmY291bnRzIHdhc24ndCB0aHJlYWQtc2FmZSwgYW5kIGxvZyBvdXRwdXQgb2YKCSAgdGhlIHJlZmNvdW50IHZhbHVlcyBiZWZvcmUvYWZ0ZXIgd2Fzbid0IHJlbGlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MzgzCgoyMDE3LTA3LTAzIDIxOjA2OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGNsYXJpZnkgY29kZSB0aGF0IGRlZHVjZXMgcGx1Z2luIG5hbWUgZnJvbSBmaWxlIG5hbWUKCSAgTWFrZSB0aGUgZmluYWwgZWxzZSBicmFuY2ggZXhwbGljaXQgZm9yIGNsYXJpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODMzMzMKCjIwMTctMDYtMjcgMDc6NDQ6MTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJICBkb2NzOiBhZGQgYSBtaXNzaW5nIGNvbnN0IGluIGJ5dGVyZWFkZXIgZG9jcwoJICBUaGlzIHN5bmNzIHRoZSBwcm90b3R5cGUgd2l0aCBnc3RieXRlcmVhZGVyLmgKCjIwMTctMDYtMjkgMTA6NTA6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZW1vdmVkIHVudXNlZCBwcml2YXRlIG1lbWJlciBxb3NfZW5hYmxlZAoKMjAxNy0wNi0yNiAxNDowOToyMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IHJlYWxsb2NhdGUgYnVmZmVycyB3aGVuIGZsdXNoaW5nCgkgIEluc3RlYWQgb2YgdXNpbmcgZ3N0X2J1ZmZlcl9wb29sX3NldF9hY3RpdmUoKSB3aGVuIGZsdXNoaW5nLCB1c2UKCSAgZ3N0X2J1ZmZlcl9wb29sX3NldF9mbHVzaGluZygpLCB0aGlzIGF2b2lkcyB1bmVlZGVkIHJlYWxsb2NhdGlvbiBvZiB0aGUKCSAgYnVmZmVycy4KCjIwMTctMDYtMDEgMTA6MzY6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBob2xkIExJVkVfTE9DSyBpbiBjcmVhdGUvYWxsb2MvZmlsbAoJICBIb2xkaW5nIHRoaXMgbG9jayBvbiBsaXZlIHNvdXJjZSBwcmV2ZW50cyB0aGUgc291cmNlIGZyb20gY2hhbmdpbmcKCSAgdGhlIGNhcHMgaW4gOjpjcmVhdGUoKSB3aXRob3V0IHJpc2tpbmcgYSBkZWFkbG9jay4gVGhpcyBoYXMgY29uc2VxdWVuY2VzCgkgIGFzIHRoZSBMSVZFX0xPQ0sgd2FzIHJlcGxhY2luZyB0aGUgU1RSRUFNX0xPQ0sgaW4gbWFueSBzaXR1YXRpb24uIEFzIGEKCSAgc2lkZSBlZmZlY3Q6CgkgIC0gV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gdW5sb2NrIHdoZW4gZG9pbmcgcGxheS9wYXVzZSBhcyB0aGUgTElWRV9MT0NLCgkgIGlzbid0IGhlbGQuIFdlIHRoZW4gbGV0IHRoZSBjcmVhdGUoKSBjYWxsIGZpbmlzaCwgYnV0IHdpbGwgYmxvY2sgaWYKCSAgdGhlIHN0YXRlIGhhdmUgY2hhbmdlZCBtZWFud2hpbGUuIFRoaXMgaGFzIHRoZSBiZW5lZml0IHRoYXQKCSAgd2FpdF9wcmVyb2xsKCkgY2FsbHMgaW4gc3ViY2xhc3MgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KCSAgLSBXZSBubyBsb25nZXIgbmVlZCB0byBjaGFuZ2UgdGhlIHN0YXRlIHRvIHVubG9jaywgc2ltcGxpZnlpbmcgdGhlCgkgIHNldF9mbHVzaGluZygpIGludGVyZmFjZQoJICAtIFdlIG5lZWQgZGlmZmVyZW50IGhhbmRsaW5nIGZvciBFT1MgZGVwZW5kaW5nIGlmIHdlIGFyZSBpbiBwdXNoIG9yIHB1bGwKCSAgbW9kZS4KCSAgVGhpcyBwYXRjaCBhbHNvIGRvY3VtZW50IHRoZSBsb2NraW5nIG9mIGVhY2ggcHJpdmF0ZSBjbGFzcyBtZW1iZXIgYW5kCgkgIHRoZSBsb2NraW5nIG9yZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMzAxCgoyMDE3LTA2LTAxIDEwOjAxOjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUHJvdGVjdCBhY2Nlc3MgdG8gcG9vbCBhbmQgYWxsb2NhdG9yCgkgIFRoaXMgd2FzIG9ubHkgcGFydGx5IHByb3RlY3RlZCBieSB0aGUgb2JqZWN0IGxvY2suIEFsd2F5cyB0YWtlIHRoZQoJICBvYmplY3QgbG9jayB0byBhY2Nlc3MgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIHBvb2wgYW5kIGFsbG9jYXRvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzMwMQoKMjAxNy0wNi0yOSAwODozMDo1MCArMDkwMCAgSmltbXkgT2huIDx5b25namluLm9obkBsZ2UuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCBtZW1vcnkgbGVhayBpbiBwcmludF9wYWRfdGVtcGxhdGVzX2luZm8KCSAgZ3N0X3N0YXRpY19jYXBzX2dldCBmdW5jdGlvbiByZXR1cm5lZCBhbGxvY2F0ZWQgbWVtb3J5LgoJICBTbywgSXQgc2hvdWxkIGJlIGZyZWUgdXNpbmcgZ3N0X2NhcHNfdW5yZWYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQzMTEKCjIwMTctMDYtMjkgMDk6MTA6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGNoZWNrIGZvciBwcG9sbCgpIGFzIHdlbGwKCjIwMTctMDYtMjcgMDk6NTk6NTIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgY29uZmlnaW5jIGFzIGluY2x1ZGVfZGlyZWN0b3J5IGluIHRvb2xzLwoJICBPdGhlcndpc2Ugd2hlbiB0aGUgZ2xpYiBpcyB1c2VkIGFzIGEgc3VicHJvamVjdCBjb25maWcuaCBpcyB0aGUgZ2xpYgoJICBvbmUsIG5vdCBvdXJzLgoKMjAxNy0wNi0yMyAxNToxMzoxNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IEFsbG93IHVzaW5nIGdsaWIgYXMgYSBzdWJwcm9qZWN0CgoyMDE3LTA2LTI4IDA5OjU0OjU2ICswMjAwICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwcm90ZWN0aW9uOiBhZGQgZnVuY3Rpb24gdG8gZmlsdGVyIHN5c3RlbSBpZHMKCSAgZ3N0X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMoKSB0YWtlcyBhbiBhcnJheQoJICBvZiBzdHJpbmdzIGFuZCByZXR1cm5zIGEgbmV3IGFycmF5IG9mIHN0cmluZ3MgZmlsdGVyZWQgYnkgdGhlIGF2YWlsYWJsZQoJICBkZWNyeXB0b3JzIGZvciB0aGVtIHNvIHRoZSBvbmVzIHlvdSBnZXQgYXJlIHRoZSBvbmVzIHRoYXQgeW91IHNob3VsZCBiZQoJICBhYmxlIHRvIGRlY3J5cHQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxMDcKCjIwMTctMDYtMjMgMTE6MTE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCB3aXRoLXBhY2thZ2UtbmFtZSBvcHRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDA4MgoKMjAxNy0wNi0wMiAwMDo1MjozNyArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiByZW1vdmUgZ3N0IHByZWZpeCB3aGVuIGxvYWRpbmcgcGx1Z2luIG9uIE1TVkMKCSAgV2hlbiBidWlsZGluZyB3aXRoIE1lc29uIGFuZCBNU1ZDLCBvdXIgcGx1Z2lucyBkb24ndCBoYXZlIGEgJ2xpYmdzdCcKCSAgc3VmZml4IGFuZCBhcmUganVzdCAnZ3N0Zm9vLmRsbCcsIHNvIGxvb2sgZm9yIHRoYXQgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzMzMzCgoyMDE3LTA2LTIxIDEwOjQ4OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNpbmtjYXBzIGNhbiBiZSBOVUxMIGluIGRlZmF1bHQgY2FwcyBuZWdvdGlhdGlvbgoJICBUaGlzIHdhcyBjYXVzaW5nIGhhcm1sZXNzIGFzc2VydGlvbiBhYm91dCB0aGUgdW5yZWZmZWQgY2FwcyBub3QgYmVpbmcgb2YKCSAgdHlwZSBjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0MDQxCgoyMDE3LTA2LTIwIDExOjA1OjQxIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZQoKMjAxNy0wNi0xNCAxNzoxMjozMiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgYSBmdW5jdGlvbiB0byBnZXQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgR3N0U3RhdGVDaGFuZ2UKCSAgQVBJOgoJICBnc3Rfc3RhdGVfY2hhbmdlX2dldF9uYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3OTgKCjIwMTctMDYtMTUgMTA6Mzg6MjkgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGVsZW1lbnQ6IEFkZCBtaXNzaW5nIHZhbHVlcyBmb3IgInRvIHNhbWUiIHN0YXRlIGNoYW5nZXMKCSAgQW5kIGhhbmRsZSBuZXdseSBhZGRlZCBHc3RTdGF0ZUNoYW5nZSB2YWx1ZXMgaW4gR3N0UGlwZWxpbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4Mzc5OAoKMjAxNy0wNi0yMCAxNTo1Nzo0NyArMDkwMCAgSGVla3lvdW5nIFNlbyA8aGVla3lvdW5nLnNlb0BsZ2UuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggbGVhayBpbiBmYWlsZWQgY2FzZSBvZiByZWdyZXNzaW9uIG92ZXJmbG93IGNoZWNraW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM5NzgKCjIwMTctMDYtMjAgMTY6MTA6MDcgKzA5MDAgIEhlZWt5b3VuZyBTZW8gPGhlZWt5b3VuZy5zZW9AbGdlLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rOiBGaXggbGVhayBpbiBmYWlsZWQgY2FzZSBvZiByZWFkaW5nIHBsdWdpbiBkZXBlbmRlbmN5IHN0cmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzOTc4CgoyMDE3LTA2LTIwIDEwOjAwOjE2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgY29udHJvbGxlcjogRXhwb3J0IGJveGVkIHR5cGUgY29weS9mcmVlIGZ1bmN0aW9ucyBmb3IgR3N0Q29udHJvbFBvaW50CgoyMDE3LTA2LTIwIDA5OjU3OjAxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBFeHBvcnQgYm94ZWQgdHlwZSBjb3B5L2ZyZWUgZnVuY3Rpb25zIGZvciB0aGUgcmVtYWluaW5nIHR5cGVzCgoyMDE3LTA2LTE2IDEzOjM0OjAwICswMDAwICBBbmRyZWpzIFZhc2lsamV2cyA8YW5kcmVqcy52YXNpbGpldnNAdWJudC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBVbnJlZiB0aW1lb3V0IEdTb3VyY2UgZm9yIGRlbGF5IHJlcXVlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM4NjQKCjIwMTctMDYtMTUgMTA6NTE6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCB0ZXN0cyBidWlsZCB3aXRoIC0td2Vycm9yCgkgIE5lZWQgdG8gcGFzcyAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgdG8gYXZvaWQgd2FybmluZ3Mgd2hlbgoJICB0ZXN0aW5nIGRlcHJlY2F0ZWQgQVBJIHN1Y2ggYXMgZ3N0X3VyaV9jb25zdHJ1Y3QoKS4KCSAgQWxzbyByZW1vdmUgI2lmbmRlZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGd1YXJkIGZyb20gaGVhZGVyCgkgIGZpbGUsIHdlIGRvbid0IHVzZSB0aG9zZSBhbnkgbW9yZSBmb3IgZnVuY3Rpb25zLCB0aGUKCSAgR1NUX0RFUFJFQ0FURURfRk9SIG1hY3JvIGlzIGVub3VnaC4KCjIwMTctMDYtMTQgMTc6MzY6NTcgKzAyMDAgIERpbWl0cmlvcyBLYXRzYXJvcyA8cGF0Y2hlcndvcmtAZ21haWwuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBGaXhlZCBpbmNvcnJlY3QgZXNjYXBpbmcgb2YgcGF0aCBhcyBhIGdlbmVyaWMgc3RyaW5nCgkgIFRoZSBnc3RfdXJpX2NvbnN0cnVjdCBmdW5jdGlvbiB3YXMgZXNjYXBpbmcgdGhlIGxvY2F0aW9uIHN0cmluZwoJICBhcyBhIGdlbmVyaWMgdXJpIHN0cmluZy4gVGhpcyBpcyBpbmNvcnJlY3Qgc2luY2UgdGhlIHNsYXNoKCcvJykKCSAgY2hhcmFjdGVycyBhcmUgcmVzZXJ2ZWQgZm9yIHVzZSBpbiB0aGlzIGV4YWN0IGNhc2UuIFRoZSBwYXRjaAoJICBjaGFuZ2VzIHRoZSBlc2NhcGVfc3RyaW5nIGZ1bmN0aW9uIG1vZGUgdG8gaGFuZGxlIHRoZSBwYXRoIGNvcnJlY3RseS4KCSAgSSBoYXZlIGRlbGV0ZWQgdGhlIGVzY2FwZV9zdHJpbmcgZnVuY3Rpb24gc2luY2UgaXQgaXMgbm8gbG9uZ2VyIGJlaW5nCgkgIHVzZWQgYW5kIGhhdmUgY3JlYXRlZCBhIHVuaXQgdGVzdCBmb3IgdGhlIGZ1bmN0aW9uLiBJIGhhdmUgYWxzbwoJICBkZXByZWNhdGVkIHRoaXMgZnVuY3Rpb24gaW4gZmF2b3VyIG9mIHRoZSBHc3RVcmkgQVBJLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNzg3CgoyMDE3LTA2LTA3IDExOjQyOjI4IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogRG8gbm90IHVzZSBwYXRoIHNlcGFyYXRvciBpbiB0ZXN0IG5hbWVzCgkgIEF2b2lkaW5nIHdhcm5pbmdzIGxpa2U6CgkgIFdBUk5JTkc6IFRhcmdldCAiZWxlbWVudHMvYXVkaW9hbXBsaWZ5IiBoYXMgYSBwYXRoIHNlcGFyYXRvciBpbiBpdHMgbmFtZS4KCjIwMTctMDUtMzEgMjA6NDA6MDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUHV0IGNvcnJlY3QgYW5ub3RhdGlvbnMgb24gZ3N0X2Jpbl9hZGQoKSB0b28KCjIwMTctMDUtMjMgMDA6NTE6MTIgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSG9sZCBvYmplY3QgbG9jayB3aGlsZSB1cGRhdGluZyBsYXRlbmN5CgkgIE90aGVyd2lzZSBpbiBnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSgpLCBpdCBlbmRlZCB1cAoJICBzb21ldGltZXMgdGhpbmtpbmcgaXQgd2Fzbid0IC0xIHdoZW4gaXQgd2FzIGFjdHVhbGx5LgoKMjAxNy0wNS0yMiAxMjowMTo0MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBBZGQgbWlzc2luZyBhbm5vdGF0aW9ucyB0byBnZXRfdmFsdWVfYXJyYXkoKSAvIGdldF92YWx1ZV9nX2FycmF5KCkKCSAgU2FtZSBhcyBhbHJlYWR5IHVzZWQgaW4gR3N0Q29udHJvbEJpbmRpbmcuCgoyMDE3LTA1LTIxIDE4OjExOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkgIG1lc29uOiBhY3R1YWxseSByZW1vdmUgY29uZmlnLmgubWVzb24gYXMgd2VsbAoKMjAxNy0wNS0yMSAxOToxNjo1NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIHByb3RlY3Rpb246IEZpeCBhbm5vdGF0aW9ucyBmb3IgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSgpCgoyMDE3LTA1LTIxIDE3OjA0OjEwICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IFN0b3AgcGx1Z2luIHN5bWJvbCBuYW1lIGF0IGZpcnN0IC4KCSAgVGhpcyBpcyBiZWNhdXNlIHRoZSBweXRob24gcGx1Z2luIGVuZHMgdXAgbmFtZWQKCSAgbGliZ3N0cHl0aG9uLmNweXRob24tMzVtLXg4Nl82NC1saW51eC1nbnUuc28gc28gd2UgbmVlZCB0byBzdG9wCgkgIGF0IHRoZSBmaXJzdCBkb3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI5MjQKCjIwMTctMDUtMjEgMTQ6MjY6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGRvbid0IG5lZWQgY29uZmlnLmgubWVzb24gYW55IG1vcmUKCSAgTWVzb24gZG9lcyB0aGUgbGFyZ2VmaWxlIHN1cHBvcnQgYXV0b21hdGljYWxseSBub3dhZGF5cywgYW5kCgkgIGNhbiBnZW5lcmF0ZSBhIGNvbmZpZy5oIGZyb20gY29uZmlndXJhdGlvbl9kYXRhKCkgd2l0aG91dCBhCgkgIHRlbXBsYXRlIGFzIGlucHV0LgoKMjAxNy0wNS0yMSAwOTowMjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSogbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogbWFrZSBDKysgY29tcGlsZXIgb3B0aW9uYWwKCSAgSXQncyBvbmx5IHVzZWQgdG8gYnVpbGQgdGVzdHMgdG8gc2VlIGlmIG91ciBoZWFkZXJzIGFyZSBDKysgY2xlYW4uCgoyMDE3LTA1LTIwIDE3OjU3OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBjaGVjazogZ2VuZXJhdGUgLmdpciBmaWxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIxNzMKCjIwMTctMDUtMjAgMTk6NDI6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYXJzZTogTWFrZSBnc3RfcGFyc2VfY29udGV4dF9jb3B5KCkgcHVibGljIGZvciBiaW5kaW5ncwoKMjAxNy0wNS0yMCAxNjo0NDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICB0b29sczogZGlzdCBuZXcgZ3N0LXN0YXRzIG1hbiBwYWdlCgkgIEZpeGVzIG1lc29uIGJ1aWxkIGZyb20gdGFyYmFsbC4KCjIwMTctMDUtMjAgMTY6NDM6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBEaXN0IG1lc29uIHB0cCBoZWxwZXIgaW5zdGFsbCBzY3JpcHQKCSAgRml4ZXMgbWVzb24gYnVpbGQgZnJvbSB0YXJiYWxsLgoKMjAxNy0wNS0yMCAxMzoyNDoxOCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzOiBIYW5kbGUgc3ViY2xhc3NlcyBpbiBmaWx0ZXJzIGV2ZW4gZm9yIHVuaGFuZGxlZC9sYXp5IGxvYWRlZCB0eXBlcwoJICBVc2luZyB0eXBlbmFtZSBpbiB0aGUgc2V0IG9mIHVuaGFuZGxlZCB0eXBlcyBpbnN0ZWFkIG9mIHRoZSBxdWFyayBzbwoJICB0aGF0IHdlIGFsc28gaGFuZGxlIHN1YmNsYXNzZXMgYXMgd2l0aCBvdGhlciBmaWx0ZXJzLgoKMjAxNy0wNS0xOSAxOToyMjoyNyArMDIwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWRkIG1pc3NpbmcgRSBjaGFyYWN0ZXIgdG8gdGhlIGxlZ2VuZAoJICBUaGUgRSBjaGFyYWN0ZXIgb24gcGFkcyBpbmRpY2F0ZXMgdGhlIHByZXNlbmNlIG9mIHRoZSBFT1MgZmxhZy4KCjIwMTctMDUtMTcgMjE6NTA6MjUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGdzdC1wbHVnaW46IGFsbG93ICctJyBpbiBwbHVnaW4gZmlsZSBuYW1lCgkgICctJyB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gdW5kZXJzY29yZSB3aGVuIGRldGVybWluaW5nIHN5bWJvbCBuYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI3NTYKCjIwMTYtMDYtMjAgMTU6NTg6NTkgKzAyMDAgIENocmlzdG9waCBSZWl0ZXIgPHJlaXRlci5jaHJpc3RvcGhAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgZ3N0OiByZWZfc2luaygpIHNvbWUgbW9yZSBmbG9hdGluZyByZWZlcmVuY2VzIHJldHVybmVkIGJ5IGdfb2JqZWN0X25ldygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMwNjIKCjIwMTctMDUtMTUgMTg6NTg6MzggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGdzdDogQ2xlYXIgZmxvYXRpbmcgZmxhZyBpbiBjb25zdHJ1Y3RvciBvZiBhbGwgR3N0T2JqZWN0IHN1YmNsYXNzZXMgdGhhdCBhcmUgbm90IG93bmVkIGJ5IGFueSBwYXJlbnQKCSAgSS5lLiBtb3N0IG9mIHRoZW0gdW5mb3J0dW5hdGVseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzA2MgoKMjAxNy0wNS0xNSAxNDozNDo1NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiByZWZfc2luaygpIHRoZSBnbG9iYWwgc3lzbWVtIGFsbG9jYXRvciBhZnRlciBjcmVhdGlvbgoJICBJdCdzIG5vdCBvd25lZCBieSB0aGUgZmlyc3Qgb25lIHRvIGFzayBmb3IgaXQsIGJ1dCBieSB0aGlzIHZlcnkgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzA2MgoKMjAxNy0wNS0xNSAxNDozMjo0OCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGdzdDogRG9uJ3QgcmVmX3NpbmsoKSBHc3RPYmplY3Qgc3ViY2xhc3NlcyBpbiBpbnN0YW5jZV9pbml0L2NvbnN0cnVjdG9yCgkgIFRoaXMgaXMgc29tZXRoaW5nIGJpbmRpbmdzIGNhbid0IGhhbmRsZSBhbmQgaXQgY2F1c2VzIGxlYWtzLiBJbnN0ZWFkCgkgIG1vdmUgdGhlIHJlZl9zaW5rKCkgdG8gdGhlIGV4cGxpY2l0LCBuZXcoKSBjb25zdHJ1Y3RvcnMuCgkgIFRoaXMgbWVhbnMgdGhhdCBhYnN0cmFjdCBjbGFzc2VzLCBhbmQgYW55dGhpbmcgdGhhdCBjYW4gaGF2ZSBzdWJjbGFzc2VzLAoJICB3aWxsIGhhdmUgdG8gZG8gcmVmX3NpbmsoKSBpbiB0aGVpciBuZXcoKSBmdW5jdGlvbiBub3cuIFNwZWNpZmljYWxseQoJICB0aGlzIGFmZmVjdHMgR3N0Q2xvY2sgYW5kIEdzdENvbnRyb2xTb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMwNjIKCjIwMTctMDUtMTUgMTQ6MzI6MDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0cHJveHljb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGdzdDogQ29ycmVjdGx5IGFubm90YXRlIGZ1bmN0aW9ucyB0YWtpbmcgZmxvYXRpbmcgcmVmZXJlbmNlIHBhcmFtZXRlcnMgYW5kIHJldHVybmluZyBmbG9hdGluZyByZWZlcmVuY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5NjAKCjIwMTctMDUtMTUgMTQ6Mjk6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogSGFuZGxlIGZsb2F0aW5nIHJlZmVyZW5jZXMgY29uc2lzdGVudGx5CgkgIElmIGEgZnVuY3Rpb24gdGFrZXMgYSBmbG9hdGluZyByZWZlcmVuY2UgcGFyYW1ldGVyLCBpdCBzaG91bGQgYWxzbyBiZQoJICBzaW5rZWQgaW4gZXJyb3IgY2FzZXMuIE90aGVyd2lzZSB0aGUgZnVuY3Rpb24gYmVoYXZlcyBkaWZmZXJlbnRseQoJICBiZXR3ZWVuIGVycm9yIGFuZCBub3JtYWwgY2FzZXMsIHdoaWNoIGlzIGltcG9zc2libGUgZm9yIGJpbmRpbmdzIHRvCgkgIGhhbmRsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzk5MAoKMjAxNS0wNy0xMCAxNTozNjo1OSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3Q6IEZpeCBmbG9hdGluZyByZWZlcmVuY2UgaW5jb25zaXN0ZW5jaWVzIGluIGVycm9yIGNhc2VzCgkgIElmIGEgZnVuY3Rpb24gdGFrZXMgYSBmbG9hdGluZyByZWZlcmVuY2UgYW5kIHNpbmtzIGl0LCBpdCBzaG91bGQgYWxzbyBkbwoJICB0aGF0IGluIGVycm9yIGNhc2VzLiBJLmUuIGNhbGwgcmVmX3NpbmsoKSBmb2xsb3dlZCBieSB1bnJlZigpLgoJICBPdGhlcndpc2UgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBiZWhhdmlvdXIgb2YgdGhlIGZ1bmN0aW9uIHdpbGwgYmUKCSAgZGlmZmVyZW50IGJldHdlZW4gdGhlIGdvb2QgYW5kIHRoZSBlcnJvciBjYXNlLCBhbmQgc2ltcGx5IGluY29uc2lzdGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzk5MAoKMjAxNy0wNS0xNiAxMzozMTowNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBBbHNvIHVzZSBkZWZhdWx0IHZpc2liaWxpdHkgZm9yIHBsdWdpbnMgc3ltYm9sCgoyMDE3LTA1LTE2IDEzOjI5OjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL21lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBwbHVnaW4gc3BlY2lmaWMgc3RhdGljIGJ1aWxkIG9wdGlvbgoJICBTdGF0aWMgYW5kIGR5bmFtaWMgcGx1Z2lucyBub3cgaGF2ZSB0aGUgc2FtZSBpbnRlcmZhY2UuIFRoZSBzdGFuZGFyZAoJICAtLWVuYWJsZS1zdGF0aWMvLS1lbmFibGUtc2hhcmVkIHRvZ2dsZSBhcmUgc3VmZmljaWVudC4KCjIwMTctMDUtMTYgMDA6MDI6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9tZXNvbi5idWlsZDoKCSAgbWVzb246IGZpeCBnc3RwcmludGYgdGVzdCBsaW5raW5nCgkgIE11c3QgbGluayBhZ2FpbnN0IGdzdHByaW50IGhlbHBlciBsaWIgdG8gdXNlIHByaXZhdGUgc3ltYm9sLgoKMjAxNy0wNS0xMCAxMzowMzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IHVzZSBkZWZhdWx0IHZpc2liaWxpdHkgZm9yIEdTVF9FWFBPUlQgZm9yIGdjYy9jbGFuZyB0b28KCSAgVGhpcyB3aWxsIGJlIG5lZWRlZCBsYXRlciB3aGVuIHdlIHN3aXRjaCB0byB1c2luZyAtZnZpc2liaWxpdHk9aGlkZGVuLgoKMjAxNy0wNS0xMCAxMzowNzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIGdzdDogYWRkIEdTVF9ERVBSRUNBVEVEX0ZPUigpIGFuZCBhbHNvIGV4cG9ydCBkZXByZWNhdGVkIHN5bWJvbHMKCSAgQ2FuJ3QgdXNlIGEgI2lmbmRlZiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGd1YXJkIGFyb3VuZCBkZXByZWNhdGVkCgkgIGZ1bmN0aW9ucyBhbnkgbW9yZSwgYXMgdGhleSB3b24ndCBnZXQgZXhwb3J0ZWQgdGhlbi4gQmVzaWRlcywgd2UKCSAgZ2V0IGEgbmljZXIgZXJyb3IgbWVzc2FnZSBmcm9tIHRoZSBjb21waWxlciB0ZWxsaW5nIHVzIHdoYXQgZnVuY3Rpb24KCSAgdG8gdXNlIGluc3RlYWQgdGhpcyB3YXkuCgoyMDE3LTA1LTEwIDEwOjU2OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGR5bmFtaWN0eXBlZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGVudW10eXBlcy5oLnRlbXBsYXRlOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmg6CgkqIGdzdC9nc3RzdHJlYW1zLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGdzdDogbWFyayBzeW1ib2xzIGV4cGxpY2l0bHkgZm9yIGV4cG9ydCB3aXRoIEdTVF9FWFBPUlQKCSAgT25lIG9taXNzaW9uOiBnc3RfYWxsb2NhdG9yX3N5c21lbV9nZXRfdHlwZSgpIHdhcwoJICBleHBvcnRlZCBidXQgbmV2ZXIgaW4gYW55IHB1YmxpYyBoZWFkZXIgZmlsZS4KCjIwMTctMDUtMTAgMDA6MTE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlcl9ta2VudW0ucHk6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJICBsaWJzOiBjb250cm9sbGVyOiBtYXJrIHN5bWJvbHMgZXhwbGljaXRseSBmb3IgZXhwb3J0IHdpdGggR1NUX0VYUE9SVAoKMjAxNy0wNS0wOSAxNjoxOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBsaWJzOiBiYXNlOiBtYXJrIHN5bWJvbHMgZXhwbGljaXRseSBmb3IgZXhwb3J0IHdpdGggR1NUX0VYUE9SVAoKMjAxNy0wNS0wOSAxNjowMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBsaWJzOiBuZXQ6IG1hcmsgc3ltYm9scyBleHBsaWNpdGx5IGZvciBleHBvcnQgd2l0aCBHU1RfRVhQT1JUCgoyMDE3LTA1LTEzIDE4OjMwOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkqIG1lc29uX29wdGlvbnMudHh0OgoJICBtZXNvbjogYWRkIG9wdGlvbnMgdG8gc2V0IHBhY2thZ2UgbmFtZSBhbmQgb3JpZ2luCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIxNzIKCjIwMTctMDUtMTMgMTg6MTk6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHVzZSB0aGUgZnVsbCBwYXRoIHRvIGlnbm9yZSBkaXJzCgoyMDE3LTA1LTEyIDE3OjQ5OjI1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBkb2NzOiByZW1vdmUgc3RyYXkgJyxcJyBmcm9tIGRvYyBjb21tZW50CgoyMDE3LTAyLTI1IDEyOjE4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IEFkZCBHc3RSZWZlcmVuY2VUaW1lc3RhbXBNZXRhCgkgIFRoaXMgaXMgYSBtZXRhIHRoYXQgZ2VuZXJpY2FsbHkgYWxsb3dzIHRvIGF0dGFjaCBhZGRpdGlvbmFsIHJlZmVyZW5jZQoJICB0aW1lc3RhbXBzIHRvIGEgYnVmZmVyLCB0aGF0IGRvbid0IGhhdmUgdG8gcmVsYXRlIHRvIHRoZSBwaXBlbGluZSBjbG9jawoJICBpbiBhbnkgd2F5LgoJICBFeGFtcGxlcyBvZiB0aGlzIGNvdWxkIGJlIGFuIE5UUCB0aW1lc3RhbXAgd2hlbiB0aGUgbWVkaWEgd2FzIGNhcHR1cmVkLAoJICBhIGZyYW1lIGNvdW50ZXIgb24gdGhlIGNhcHR1cmUgc2lkZSBvciB0aGUgKGxvY2FsKSBVTklYIHRpbWVzdGFtcCB3aGVuCgkgIHRoZSBtZWRpYSB3YXMgY2FwdHVyZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkyMTMKCjIwMTctMDUtMDkgMTY6Mjk6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGJ1bXAgbWVzb24gdmVyc2lvbiByZXF1aXJlbWVudCB0byAwLjQwLjEKCjIwMTYtMTItMTUgMTI6NDg6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1czogQWRkIGZ1bmN0aW9uIHRvIGdldCB0aGUgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBidXMKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGludGVncmF0aW9uIHdpdGggb3RoZXIgZXZlbnQgbG9vcHMgdGhhdCB3b3JrIGJ5CgkgIHBvbGxpbmcgZmlsZSBkZXNjcmlwdG9ycy4gR19JT19JTiB3aWxsIGFsd2F5cyBiZSBzZXQgd2hlbmV2ZXIgYSBtZXNzYWdlCgkgIGlzIGF2YWlsYWJsZSBjdXJyZW50bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYxMjYKCjIwMTctMDItMjcgMjE6Mzg6MTEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBVbmlmeSBzdGF0aWMgYW5kIGR5bmFtaWMgcGx1Z2luIGludGVyZmFjZQoJICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGVudHJ5IHBvaW50IG9mIGVhY2ggcGx1Z2luIGluIG9yZGVyIHRvIHVuaWZ5IHRoZQoJICBpbnRlcmZhY2UgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyBwbHVnaW4uIFdoYXQgd2UgZG8gaXMgcmVwbGFjZSB0aGUKCSAgY3VycmVudCBzdGF0aWMgcGx1Z2luIGludGVyZmFjZSBhbmQgZXh0ZW5kIHRoZSBkeW1hbWljIG9uZS4gVGhlIHBsdWdpbgoJICBlbnRyeSB3YXMgYSBDIHN0cnVjdHVyZSwgbmFtZSAiZ3N0X3BsdWdpbl9kZXNjIi4gV2l0aCB0aGlzIHBhdGNoLCB0aGUKCSAgaW50ZXJmYWNlIGlzIG5vdzoKCSAgR3N0UHBsdWdpbkRlc2MgKmdzdF9wbHVnaW5fPG5hbWU+X2dldF9kZXNjKHZvaWQpOwoJICBUaGUgcmVhc29uIHdlIGNoYW5nZSB0aGUgQyBzdHJ1Y3R1cmUgaW50byBmdW5jdGlvbiwgaXMgdGhhdCBpdCBpcwoJICBwb3RlbnRpYWxseSBtb3JlIGNvbW1vbiB0byBoYXZlIGZ1bmN0aW9uIHBvaW50ZXJzLCBhdm9pZGluZyBwb3NzaWJsZQoJICBiaW5kaW5nIGxhbmd1YWdlIGxpbWl0YXRpb24uIEFkZGl0aW9uYWxseSB0byB0aGF0LiBUaGlzIGNoYW5nZSBwcmV2ZW50cwoJICB0aGUgc3ltYm9scyBmcm9tIGNsYXNoaW5nIGJldHdlZW4gcGx1Z2lucywgYWxsb3dpbmcgdG8gYnVpbGQgb25jZSB0aGUKCSAgcGx1Z2luIChhc3N1bWluZyB5b3UgaGF2ZSAtZlBJQykuCgkgIE9uIHRoZSBwbHVnaW4gbG9hZGVyIHNpZGUsIHdlIHN5bXBseSBkZXJpdmUgdGhlIHNoYXJlZCBvYmplY3QgYmFzZW5hbWUKCSAgdG8gZXh0cmFjdCB0aGUgcGx1Z2luIG5hbWUuIElmIHRoaXMgc3ltYm9sIGlzIG5vdCBmb3VuZCwgd2UgZmFsbGJhY2sgdG8KCSAgZ3N0X3BsdWdpbl9kZXNjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgoJICBUaGlzIGhhcyBvbmUgc2lkZSBlZmZlY3QsIHdoaWNoIGlzIHRoYXQgdGhlIHNoYXJlZCBvYmplY3RzIG5vdyBuZWVkIHRvCgkgIGJlIG5hbWVkIGFmdGVyIHRoZWlyIHBsdWdpbiBuYW1lLiBUaGlzIGlzIGdlbmVyYWxseSB0aGUgY2FzZSB3aXRoIGZldwoJICBleGNlcHRpb25zLiBUaGUgYmVuaWZpdCBvZiB0aGlzIGxpbWl0YXRpb24gaXMgdGhhdCB5b3UgY2FuIGNvbnRyb2wgdGhlCgkgIGdzdF9wbHVnaW5fPG5hbWU+X2Rlc2MgY2xhc2ggYXQgZmlsZSBsZXZlbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTM0NAoKMjAxNy0wNS0wOSAwOToyNDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBmaXggc2VhcmNoIHBhdGggZm9yIHNldGNhcAoKMjAxNy0wNS0wNyAxMToxNzoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IG1ha2UgbG9jYWwgdmFyaWFibGUgc3RhdGljCgoyMDE3LTA1LTA1IDEyOjIzOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9wdHBfaGVscGVyX3Bvc3RfaW5zdGFsbC5zaDoKCSAgbWVzb246IGZhaWwgc2lsZW50bHkgaW4gcHRwIGhlbHBlciBwb3N0IGluc3RhbGwgc2NyaXB0CgkgIC4uIGluIGNhc2UgcGVybWlzc2lvbnMvY2FwYWJpbGl0aWVzIGNvdWxkIG5vdCBiZSBzZXQuCgoyMDE3LTA1LTA1IDEyOjAyOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IHVzZSBjYy5maW5kX2xpYnJhcnkoKQoJICBmaW5kX2xpYnJhcnkoKSB3YXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCBpbiBsYXRlciB2ZXJzaW9ucy4KCjIwMTctMDUtMDUgMTE6NDk6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9oZWxwZXJzL3B0cF9oZWxwZXJfcG9zdF9pbnN0YWxsLnNoOgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkgIG1lc29uOiBhZGQgZ3N0LXB0cC1oZWxwZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDQxOAoKMjAxNy0wNS0wNSAwOToxMDo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGluZGVudGF0aW9uCgkgIE5vIHRhYnMgcGxlYXNlLgoKMjAxNy0wNS0wNSAwMDo0NTowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHJlbW92ZSBvbGQgY3J1ZnQgZnJvbSBDTEVBTkZJTEVTCgkgIFRoZXNlIGZpbGVzIGFyZSBubyBsb25nZXIgYnVpbHQsIHNvIG5vIG5lZWQgdG8gY2xlYW4gdGhlbS4KCjIwMTctMDQtMjkgMTE6MzA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIG1lc29uLmJ1aWxkOgoJICBnLWk6IG5vIG5lZWQgdG8gbG9hZCByZWdpc3RyeSBpbiBnLWkgc2Nhbm5lcgoKMjAxNy0wNS0wNCAyMTozNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBnc3QtZWxlbWVudC1jaGVjay0xLjAubTQ6CgkgIERvbid0IGdlbmVyYXRlIGdzdC1lbGVtZW50LWNoZWNrLTEuMC5tNCBvbiB0aGUgZmx5IGFuZCBmaXggbWVzb24gYnVpbGQKCSAgVGhpcyB3aWxsIGludGVyZmVyZSB3aXRoICdnaXQgcHVsbCcuIFlvdSB3aWxsIGhhdmUgdG8gcmVtb3ZlIHRoZQoJICBvbGQgZ2VuZXJhdGVkIGdzdC1lbGVtZW50LWNoZWNrLTEuMC5tNCBtYW51YWxseSBpZiB5b3UncmUgcHVsbGluZwoJICBvbiBhIGRpcnR5IGJ1aWxkIGRpcmVjdG9yeSwgc29ycnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIxNzQKCjIwMTctMDUtMDQgMjE6MDY6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGluc3RhbGwgZ3N0LWVsZW1lbnQtY2hlY2stMS4wLm00CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIxNzQKCjIwMTctMDQtMzAgMTI6MTA6NDkgKzA5MDAgIFlhc3VzaGkgU0hPSkkgPHlhc2hpQGF0bWFyay10ZWNobm8uY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBBYm9ydCB3aGVuIGZhaWxlZCB0byBjb25zdHJ1Y3QgdGhlIHNwZWNpZmllZCBwaXBlbGluZQoJICBnc3RfaGFybmVzc19uZXdfcGFyc2UoKSByZXR1cm5zIHdpdGhvdXQgYW55IGVycm9yIGV2ZW4gaWYgaXQgZG9lc24ndAoJICBmaW5kIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4gIFRoZW4gYSBzdWNjZWVkaW5nIGNhbGwgdG8KCSAgZ3N0X2hhcm5lc3Nfc2V0X3NpbmtfY2Fwc19zdHIoKSBjYXVzZXMgYW4gZXJyb3IgbGlrZSB0aGlzOgoJICBVbmV4cGVjdGVkIGNyaXRpY2FsL3dhcm5pbmc6IGdzdF9wYWRfcHVzaF9ldmVudDogYXNzZXJ0aW9uICdHU1RfSVNfUEFEIChwYWQpJyBmYWlsZWQKCSAgVGhpcyBpcyBhIGJpdCBjcnlwdGljIGFuZCBkb2Vzbid0IGdpdmUgdXNlcnMgYW55IGNsdWUgd2hhdCB3YXMgZ29pbmcKCSAgb24uCgkgIGdzdF9oYXJuZXNzX25ld19wYXJzZSgpIGNhbGxzIGdzdF9oYXJuZXNzX2FkZF9wYXJzZSgpIHdpdGggYSBuZXdseQoJICBjcmVhdGVkIGVtcHR5IGhhcm5lc3MgYW5kIHRoZSBnaXZlbiBwaXBlbGluZSBkZXNjcmlwdGlvbiBzdHJpbmcsIGJ1dAoJICBnc3RfaGFybmVzc19hZGRfcGFyc2UoKSBkb2VzIG5vdCBoYXZlIGEgd2F5IHRvIHByb3BhZ2F0ZSB0aGUgZXJyb3IKCSAgYmFjayB0byB0aGUgY2FsbGVyLiAgU2luY2UgdGhlIGZ1bmN0aW9uLCBnc3RfaGFybmVzc19hZGRfcGFyc2UoKSwgaXMgYQoJICBwdWJsaWMgQVBJLCBpdCdzIG5vdCBhIGdvb2QgaWRlYSB0byBjaGFuZ2UgaXRzIHNpZ25hdHVyZS4gIFRoaXMgcGF0Y2gsCgkgIGluc3RlYWQsIG1ha2VzIHRoZSBmdW5jdGlvbiB0byBnX2Vycm9yKCkgd2hlbiBpdCBkaXNjb3ZlcnMgYW55IGVycm9yLgoJICBXaXRoIHRoaXMgY2hhbmdlIHRoZSBzYW1lIGVycm9yIHByaW50czoKCSAgKiogKG15ZWxlbWVudC10ZXN0OjI1MzQ1KTogRVJST1IgKio6IFVuYWJsZSB0byBjcmVhdGUgcGlwZWxpbmUgJ2Jpbi4oIG15ZWxlbWVudCApJzogbm8gZWxlbWVudCAibXllbGVtZW50IgoJICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKSBkb2Vzbid0IHJldHVybgoJICBwYXJ0aWFsbHkgY29uc3RydWN0ZWQgcGlwZWxpbmUgd2hlbiBHU1RfUEFSU0VfRkxBR19GQVRBTF9FUlJPUlMgaXMKCSAgc3BlY2lmaWVkLCBob3dldmVyLCB0aGlzIHBhdGNoIGFsc28gYWRkcyBhIGNoZWNrIGZvciBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTk1OAoKMjAxNy0wNS0wNCAxODo1OToxNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbWVzb24uYnVpbGQ6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMTIuMCA9PT0KCjIwMTctMDUtMDQgMTU6MzY6NTUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjEyLjAKCjIwMTctMDUtMDQgMTU6MDA6MTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXN0LnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2Z1ci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wNS0wMiAxNDozNTo1MCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IERvbid0IHBhc3MgYSBOVUxMIGRlYnVnIHN0cmluZyB0byBnX3V0ZjhfdmFsaWRhdGUoKQoJICBnX3V0ZjhfdmFsaWRhdGUoKSBjcmFzaGVzIG9uIE5VTEwsIGJ1dCBOVUxMIGlzIHZhbGlkIGZvciB0aGUgZGVidWcKCSAgc3RyaW5nIG5vbmV0aGVsZXNzLgoKMjAxNy0wNS0wMiAxNDoyNzoxNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBDaGVjayBpZiBtZXRhIHRyYW5zZm9ybV9mdW5jIGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIwNTAKCjIwMTctMDUtMDIgMTA6MzI6NTQgKzAyMDAgIEZyw6lkw6lyaWMgRGFsbGVhdSA8ZnJlZGVyaWMuZGFsbGVhdUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENoZWNrIGlmIG1ldGEgdHJhbnNmb3JtX2Z1bmMgaXMgTlVMTCBiZWZvcmUgdXNpbmcgaXQKCSAgQW4gdW50ZXN0ZWQgcG9pbnRlciBzZWdmYXVsdGVkIGluIHdlYmtpdCB3aGlsZSBwbGF5aW5nIHZpZGVvCgkgIG9uIGlteDYgc2FicmVsaXRlLiBJdCB0dXJuZWQgb3V0IHRoYXQgdGhlIGlteCBwbHVnaW4gZGlkbid0CgkgIGltcGxlbWVudCB0aGUgbWV0YSB0cmFuc2Zvcm0gZnVuY3Rpb24uCgkgIFRoZSBmb2xsb3dpbmcgR1NUX0RFQlVHIHRyYWNlIHdhcyB2aXNpYmxlOgoJICBnc3RiYXNldHJhbnNmb3JtLmM6MTc3OTpmb3JlYWNoX21ldGFkYXRhOjxjb252Mj4gY29weSBtZXRhZGF0YQoJICBHc3RJbXhWcHVCdWZmZXJNZXRhQVBJCgkgIFRocmVhZCAyNiB2cXVldWU6c3JjIHJlY2VpdmVkIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50YXRpb24gZmF1bHQuCgkgIChnZGIpIGJ0CgkgIDB4MDAwMDAwMDAgaW4gPz8gKCkKCSAgMHg3M2Y4ZDdkOCBpbiBmb3JlYWNoX21ldGFkYXRhIChpbmJ1Zj0weGM5YjAyMCwgbWV0YT0weDQ3NGIyNDkwLAoJICB1c2VyX2RhdGE9PG9wdGltaXplZCBvdXQ+KSBhdCBnc3RiYXNldHJhbnNmb3JtLmM6MTc4MQoJICAweDczZWIzZWE4IGluIGdzdF9idWZmZXJfZm9yZWFjaF9tZXRhIChidWZmZXI9YnVmZmVyQGVudHJ5PTB4YzliMDIwLAoJICBmdW5jPTB4NzNmOGQ3MDUgPGZvcmVhY2hfbWV0YWRhdGE+LAoJICB1c2VyX2RhdGE9dXNlcl9kYXRhQGVudHJ5PTB4NDc0YjI0ZDQpCgkgIGF0IGdzdGJ1ZmZlci5jOjIyMzQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjA1MAoKMjAxNy0wNC0yOCAxOTo0Mzo0OSArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogY2hlY2sgbm9uLW51bGwgYmVmb3JlIGRlcmVmZXJlbmNlCgkgIEl0IGlzIHBvc3NpYmxlIHRvIHVzZSBnc3RfZGVpbml0KCkgd2l0aG91dCByZWdpc3RlcmluZyB0aGUgYmFzZQoJICBjbGFzc2VzLiBGb3IgZXhhbXBsZSwgd2hlbiB1c2luZyBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgYW5kCgkgIGNhbGwgdGhlIHByb2dyYW0gd2l0aCBhbiBpbnZhbGlkIHBhcmFtZXRlci4gSW4gdGhhdCBjYXNlLAoJICBnc3RfZGVpbml0KCkgd2lsbCBsZWFkIHRvIGEgc2VnbWVudGF0aW9uIGZhdWx0LCBzaW5jZSB0aGVyZSBpcyBhCgkgIGRlcmVmZXJlbmNlIHRvIGEgcG9pbnRlciB0aGF0IGlzIG51bGwuCgkgIFRoaXMgcGF0Y2ggdmFsaWRhdGVzIGlmIHRoZSB0eXBlIGlzIG5vbi1udWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgkgIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxOTE0CgoyMDE3LTA0LTI4IDExOjU3OjQxICswMjAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBvcGVuY3YgdG8gYmFkIGxpYnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTg4OQoKPT09IHJlbGVhc2UgMS4xMS45MSA9PT0KCjIwMTctMDQtMjcgMTc6MjQ6MDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBtZXNvbi5idWlsZDoKCSAgUmVsZWFzZSAxLjExLjkxCgoyMDE3LTA0LTI3IDE1OjQ4OjMzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2FzdC5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9mdXIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTctMDQtMjcgMTU6MjE6MjYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9hc3QucG86CgkqIHBvL2Z1ci5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTctMDQtMjQgMjA6Mjc6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwYWVlZjYgdG8gNDhhNWQ4NQoKMjAxNy0wNC0yMSAxNTowNDozMiArMDIwMCAgS29vcCBNYXN0IDxrd21AcmFpbmJvdy1ydW5uZXIubmw+CgoJKiB0b29scy9tZXNvbi5idWlsZDoKCSAgTWVzb246IGFsc28gYnVpbGQgYW5kIGluc3RhbGwgZ3N0LXN0YXRzLTEuMCBhbmQgaXQncyBtYW4gcGFnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTU4NQoKMjAxNy0wNC0yMSAxNTowMzoxOCArMDIwMCAgS29vcCBNYXN0IDxrd21AcmFpbmJvdy1ydW5uZXIubmw+CgoJKiB0b29scy9nc3Qtc3RhdHMtMS4wLjE6CgkgIEFkZCB2ZXJ5IHNpbXBsZSBtYW4gcGFnZSBmb3IgZ3N0LXN0YXRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNTg1CgoyMDE3LTA0LTIxIDEwOjUxOjU5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvYzogRml4IHNvbWUgZG9jdHNpbmcgbWFraW5nIEdJIGhhcHB5CgoyMDE3LTA0LTA2IDE3OjUxOjI5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvYzogRml4IEdzdENoYW5nZVN0YXRlIGRvY3N0cmluZwoKMjAxNy0wNC0xOSAxNzozMTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IE1vdmUgZGVidWcgb3V0cHV0IGluIGZvcl9lYWNoX3RocmVzaG9sZF9ieV9lbnRyeSgpIHRvIFRSQUNFIGxldmVsCgkgIEl0J3Mgb3RoZXJ3aXNlIGFwcGVhcmluZyBtYW55LCBtYW55IHRpbWVzIGluIGxvZ3MgYW5kIHVzdWFsbHkgaXMgbm90aGluZwoJICB5b3UncmUgaW50ZXJlc3RlZCBpbi4KCjIwMTctMDMtMzEgMTI6MjI6MDAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IGZpeCBtZXNzYWdlIGxlYWsgaW4gc2VlayB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA3NTcKCjIwMTctMDMtMjkgMTk6MjY6NTMgKzA5MDAgIFlhc3VzaGkgU0hPSkkgPHlhc2hpQGF0bWFyay10ZWNobm8uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB0eXBvIGluIGRlYnVnIGxvZyBvdXRwdXQKCSAgVGhpcyB1bmJhbGFuY2VkIGNsb3NpbmcgcGFyZW50aGVzaXMgaXMgbGVmdG92ZXIgZnJvbSB0aGUgY29tbWl0CgkgIDhiNzM5ZDkxZTcuIEl0IHVzZWQgdG8gd3JhcCB0aGUgY2FwcyBidXQgd2UgZG9uJ3Qgc2VlbSB0byBkbyB0aGF0IGluCgkgIHRoZSBjdXJyZW50IGNvZGUuCgkgIFNvLCBqdXN0IHJlbW92ZSBpdC4gTm8gZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBjaGFuZ2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNDg0CgoyMDE3LTA0LTEwIDE2OjI4OjU3ICswMjAwICBSaWNvIFR6c2NoaWNoaG9seiA8cmljb3R6QHVidW50dS5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2Jhc2UvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L25ldC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEEgY291cGxlIGZvciBHSVItZ2VuZXJhdGlvbiBmaXhlcwoKMjAxNy0wNC0xMiAwOTo0ODo1MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIGNvbnRyb2xsZXIgZW51bSBmaWxlIGFzIGdlbmVyYXRlZCBzb3VyY2VzCgkgIEF2b2lkaW5nIGJ1aWxkIGZhaWx1cmUgbGlrZQoJICBodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L3RoaWJsYWh1dGUvZ3N0LWJ1aWxkLWdlOW01L2J1aWxkLzEuMC4yODU3CgoyMDE3LTA0LTExIDIwOjE5OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIG1lc29uOiBkaXN0IG5ldyBtZXNvbiBidWlsZCBzY3JpcHQKCjIwMTctMDQtMTEgMjA6MTY6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXIuaDoKCSAgY29udHJvbGxlcjogaW5jbHVkZSBuZXcgcHJveHljb250cm9sYmluZGluZyBoZWFkZXIKCSAgQW5kIGZpeCBpbmNsdWRlcyBpbiBkb2NzIHRvIGp1c3QgaW5jbHVkZSB0aGUgbWFpbiBoZWFkZXIgKHRoZQoJICBpbmNsdWRlIGZvciB0aGUgcHJveHljb250cm9sYmluZGluZyB3YXMgd3JvbmcgaW4gdGhlIGRvY3MpLgoKMjAxNy0wNC0xMSAyMDoxNjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBtb3JlCgoyMDE3LTA0LTExIDExOjUyOjIwIC0wNDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBPbmx5IGNoZWNrIHRoZSBmaXJzdCBwYXJhbWV0ZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MTE1NQoKMjAxNy0wNC0xMSAxMDoxNzo0MCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvcGFyc2UvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBDaGVjayBiaXNvbiBhbmQgZmxleCBhcmUgcmVjZW50IGVub3VnaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMTU1CgoyMDE3LTA0LTEwIDIzOjQ4OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzOWFjMmY1IHRvIDYwYWVlZjYKCjIwMTctMDQtMTAgMTI6MjQ6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBY2NlcHQgTlVMTCBhcyBhIHN0cnVjdHVyZQoJICBTb21lIEdzdFN0cnVjdHVyZSBwcm9wZXJ0aWVzIGRlZmF1bHQgdG8gTlVMTCwgc28gaXQgc2hvdWxkCgkgIGJlIGEgc3VwcG9ydGVkIHZhbHVlLgoJICBXaXRoIHVuaXQgdGVzdC4KCjIwMTctMDQtMTAgMTQ6MjY6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiBGaXggYnVpbGQgd2l0aCBzcmNkaXIhPWJ1aWxkZGlyCgoyMDE3LTA0LTEwIDEzOjUyOjE3ICswMzAwICBSaWNvIFR6c2NoaWNoaG9seiA8cmljb3R6QHQtb25saW5lLmRlPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogQWRkIG1pc3Npbmcgc291cmNlcy9oZWFkZXJzIHRvIHRoZSBHSVIgYnVpbGQKCjIwMTctMDQtMDkgMTI6MTY6MzkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQW5kIGFjdHVhbGx5IG1ha2UgdGhlIGNvbnRyb2xsZXIgbWtlbnVtcyBydWxlcyB3b3JrCgoyMDE3LTA0LTA5IDEyOjA5OjMzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgY2hlY2sgZm9yIGdsaWItbWtlbnVtcwoKMjAxNy0wNC0wOSAxMjowMjo0MyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvY29udHJvbGxlcl9ta2VudW0ucHk6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbWVzb24uYnVpbGQ6CgkgIGNvbnRyb2xsZXI6IEdlbmVyYXRlIEdMaWIgZW51bXMgYXV0b21hdGljYWxseQoKMjAxNy0wNC0wNCAxNzo1MzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBEb24ndCB1c2UgZGVwcmVjYXRlZCBnX29iamVjdF9uZXd2KCkKCSAgVXNlIGdfb2JqZWN0X25ldygpIGluc3RlYWQgd2hpY2ggbm93YWRheXMgaGFzIGEgc2hvcnRjdXQgZm9yIHRoZQoJICBuby1wcm9wZXJ0aWVzIGNoZWNrLiBJdCBzdGlsbCBkb2VzIGFuIGV4dHJhIEdUeXBlIGNoZWNrIGluIHRoZQoJICBmdW5jdGlvbiBndWFyZCwgYnV0IHRoZXJlJ3MgYSBwZW5kaW5nIHBhdGNoIHRvIHJlbW92ZSB0aGF0CgkgIGFuZCBpdCdzIGhhcmRseSBnb2luZyB0byBiZSBhIHBlcmZvcm1hbmNlIGlzc3VlIGluIHByYWN0aWNlLAoJICBldmVuIGxlc3Mgc28gb24gYSBzeXN0ZW0gdGhhdCdzIGNvbXBpbGVkIHdpdGhvdXQgcnVuLXRpbWUgY2hlY2tzLgoJICBBbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBtb3ZlIHRvIHRoZSBuZXcgZ19vYmplY3RfbmV3X3Byb3BlcnRpZXMoKQoJICB3aXRoIGEgZmFsbGJhY2sgZGVmaW5lIGZvciBvbGRlciBnbGliIHZlcnNpb25zLCBidXQgaXQgbWFrZXMgdGhlCgkgIGNvZGUgbG9vayBtb3JlIHVud2llbGR5IGFuZCBkb2Vzbid0IHNlZW0gd29ydGggaXQuCgkgIEZpeGVzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBuZXdlciBHTGliIHZlcnNpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwOTAzCgoyMDE3LTA0LTA3IDEzOjQ5OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0OiBBZGQgdGVzdCBmb3Igc2VyaWFsaXppbmcvZGVzZXJpYWxpemluZyBOVUxMIHN0cmluZ3MKCj09PSByZWxlYXNlIDEuMTEuOTAgPT09CgoyMDE3LTA0LTA3IDE2OjMwOjM1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIG1lc29uLmJ1aWxkOgoJICBSZWxlYXNlIDEuMTEuOTAKCjIwMTctMDQtMDcgMTU6MDQ6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTAzLTA4IDEyOjA5OjQ1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERvbid0IHByaW50IHdhcm5pbmcgb24gTlVMTCBzdHJpbmdzIG9yIHBvaW50ZXJzCgkgIFB1dHRpbmcgTlVMTCBmb3IgdGhvc2UgaXMgYSB2YWxpZCBzZXJpYWxpemF0aW9uIGZvciB0aGUgTlVMTCB2YWx1ZS4KCjIwMTctMDQtMDUgMTY6MzI6MzggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZ3N0OiBVc2UgR3N0Q2xvY2tUaW1lRGlmZiBpbnN0ZWFkIG9mIEdzdENsb2NrVGltZSBhcyB0eXBlIGZvciBHU1RfU0VDT05EIGFuZCBmcmllbmRzCgkgIFRoZXkgd2VyZSAoc2lnbmVkISkgZ2ludDY0IGJlZm9yZSBiZWNhdXNlIG9mIEdfR0lOVDY0X0NPTlNUQU5UKCkgYWxyZWFkeQoJICBhbmQgdGhleSBhcmUgYWN0dWFsbHkgdXNlZCBpbiBzaWduZWQgY2FsY3VsYXRpb25zLgoJICBXaXRoIHRoaXMgY2hhbmdlIHdlIGF0IGxlYXN0IGVuc3VyZSB0aGF0IGFuIGludGVnZXIgdHlwZSBvZiB0aGUgY29ycmVjdAoJICBzaXplIGlzIHVzZWQgZm9yIEdJIChpdCB3YXMgdXNpbmcgZ2ludCBiZWZvcmUpLgoKMjAxNy0wNC0wNSAxNTo0NjoyNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBnc3Q6IFVwZGF0ZSBzb21lIG1vcmUgdHlwZXMgYW5kIHZhbHVlcyBvZiBjb21iaW5lZC1mbGFncyBjb25zdGFudHMKCjIwMTctMDQtMDUgMTQ6NDU6MDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgZ3N0OiBDYXN0IGNvbWJpbmVkLWZsYWdzIGNvbnN0YW50cyB0byB0aGVpciByZXNwZWN0aXZlIHRhcmdldCB0eXBlcwoJICBUaGlzIG1ha2VzIEMrKyBjb21waWxlcnMgYSBiaXQgbW9yZSBoYXBweSB3aXRob3V0IGhhdmluZyB0aGUgdXNlciBvZiB0aGUKCSAgY29uc3RhbnRzIGNhc3QuIEl0IGFsc28gcHJvdmlkZXMgdGhlIGNvcnJlY3QgdHlwZSBpbmZvcm1hdGlvbiB0byBHSS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDkyMwoKMjAxNy0wNC0wNSAxNDo0MjoxNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBnc3Q6IFNldCB2YWx1ZXMgYW5kIHR5cGVzIGZvciBjb21iaW5lZC1mbGFncyBjb25zdGFudHMgaW4gR0kgYW5ub3RhdGlvbnMKCjIwMTctMDQtMDUgMTQ6MjY6MzMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IFByb3Blcmx5IHNldCB2YWx1ZSBhbmQgdHlwZSBmb3IgR1NUX0ZMQUdfU0VUX01BU0tfRVhBQ1QgaW4gR0kgYW5ub3RhdGlvbnMKCSAgU3RvcmluZyBhIC0xIGluc2lkZSBhbiB1bnNpZ25lZCBpbnRlZ2VyIGNvbmZ1c2VzIEdJUiBiYXNlZCBiaW5kaW5ncwoJICBnZW5lcmF0b3JzLgoKMjAxNy0wNC0wNCAxNjoyODo0NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vaGVscGVycy9nc3QuaW46CgkgIGNvbXBsZXRpb246IFRyeSB0byBhdm9pZCBwYXJzaW5nIHN1bW1hcnkKCSAgSW4gR0VTLCB0aGUgc3VtbWFyeSByZWZlcnMgdG8gb3B0aW9ucyB0aGF0IGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIGJ1aWx0CgkgIGFnYWluc3QgZ3N0LXZhbGRpYXRlLiBUaG9zZSB3aGVyZSBwaWNrZWQgYnkgb3VyIHJlZ2V4LiBUaGlzIHBhdGNoIGFkZCBhCgkgIGluaXRpYWwgZ3JlcCB0byB0cnkgYW5kIGZpbHRlci1vdXQgYXMgYmVzdCBhcyBwb3NzaWJsZSB0aGUgY29udGVudCB0bwoJICB3aGljaCB3ZSB3aWxsIGV4dHJhY3QgdGhlIGNvbW1hbmQgbGlzdC4KCjIwMTctMDQtMDQgMTQ6MjU6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIGRhdGEvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIGJhc2ggY29tcGxldGlvbiBzdXBwb3J0CgoyMDE3LTA0LTA0IDEzOjQyOjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRhdGEvTWFrZWZpbGUuYW06CgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkqIGRhdGEvYmFzaC1jb21wbGV0aW9uL2hlbHBlcnMvLmdpdGlnbm9yZToKCSogZGF0YS9iYXNoLWNvbXBsZXRpb24vaGVscGVycy9nc3QuaW46CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgY29tcGxldGlvbjogUGxhY2UgdGhlIGNvbXBsZXRpb24gaGVscGVyIGluIGxpYmV4ZWMKCSAgVGhpcyBwYXRjaCByZW9yZ2FuaXplIHRoZSBiYXNoIGNvbXBsZXRpb24gc2NyaXB0cyBpbiBvcmRlciB0byBpbnN0YWxsCgkgIHRoZSBiaW5hcnkgaGVscGVyIChnc3QtY29tcGxldGlvbi1oZWxwZXIpIGluIGxpYmV4ZWMgcGF0aCByYXRoZXIgdGhlbgoJICBzaGFyZSBmb2xkZXIuIE1vc3QgTGludXggaGllcmFyY2h5IGNvbXBsaWFuY2UgcmVxdWlyZXMgdGhhdCBubyBiaW5hcnkKCSAgZXhlY3V0YWJsZSBhcmUgcGxhY2VkIGluIHNoYXJlLiBXZSBhbHNvIGNsZWFudXAgdGhlIHVudXNlZCAucGMgZW50cmllcwoJICBhbmQgcmVtb3ZlIGNvcHkgcGFzdGVkIHBhcnRzIG9mIHRoZSBzY3JpcHQuIE5vdGUgdGhhdCBvdGhlciBwcm9qZWN0CgkgIGluY2x1ZGluZyB0aGUgY29tbW9uIGhlbHBlciwgc2hvdWxkIG5vdyB1c2UgJF9HU1RfSEVMUEVSIHRvIHJlYWQKCSAgdGhlIGJpbmFyeSBleGVjdXRhYmxlIGdzdC1jb21wbGV0aW9uLWhlbHBlci4gVGhpcyBoZWxwZXIgaXMgbm90IGxvbmdlcgoJICB2ZXJzaW9uLCBhcyBpdCBpcyBwbGFjZWQgaW4gYSB2ZXJzaW9ubmVkIHN1YmZvbGRlcgoJICAobGliZXhlYy9nc3RyZWFtZXIuMTApIGp1c3QgbGlrZSB0aGUgb3RoZXIgaGVscGVycyAoc2Nhbm5lciBhbmQgcHRwKS4KCjIwMTctMDMtMzEgMTE6MjI6NDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBmaXggR3N0VmFsdWUgbGVhayBpbiBzdHJ1Y3R1cmVfZmllbGRfdW5pb25faW50bwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNzUxCgoyMDE3LTAzLTMxIDEwOjM4OjE1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkgIHN0cmVhbWNvbGxlY3Rpb246IGZpeCByYWN5IHVzZXItYWZ0ZXItZnJlZQoJICBUaGUgaXNzdWUgaGFwcGVucyB3aGVuIHRoZSBzdHJ1Y3R1cmUgaXMgcHJpbnRlZCBieSB0aGUgbG9nZ2luZwoJICBzdWJzeXN0ZW06IHRoZSBvYmplY3QgaXMgaW5jbHVkZWQgaW4gdGhlIGxvZywgYW5kIHRoaXMgd2lsbCBjYXVzZSB0aGUKCSAgZnVsbCBvYmplY3QgcHJpbnRvdXQgdG8gYmUgZG9uZSB0aGVyZS4gSG93ZXZlciwgYWZ0ZXIgZGlzcG9zZSwgdGhlIHF1ZXVlCgkgIHdhcyBhbHJlYWR5IGNsZWFyZWQsIHNvIHRoZSBhY2Nlc3MgdG8gaXQgKHRvIHByaW50IHRoZSBvYmplY3QpIHdvdWxkCgkgIGFzc2VydCwgYXMgdGhlIHF1ZXVlIHdhcyBhbHJlYWR5IGZyZWVkLiBUaGUgcGF0Y2ggY2hhbmdlcyBpdCBzbyB0aGF0IHRoZQoJICBxdWV1ZSBpcyBtZXJlbHkgZW1wdHksIGFuZCBvbmx5IGZyZWVkIGluIF9maW5hbGl6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjI5MwoKMjAxNy0wMy0yNyAxODozMDozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFkZCBwYWQgRU9TIGZsYWcgaW4gcGlwZWxpbmUgZG90IGZpbGUgZHVtcHMKCSAgQnV0IG9ubHkgaWYgc2V0LiBIZWxwcyBkZWJ1ZyBpc3N1ZXMgd2l0aCBFT1MgcHJvcGFnYXRpb24uCgoyMDE3LTAzLTI3IDE4OjI3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogcHJpbnQgc3RydWN0dXJlIHByb3BlcnR5IG5vdGlmaWVzIG5pY2VyCgkgIE9uZSBsZXNzIGxheWVyIG9mIGVzY2FwaW5nLCBidXQgc3RpbGwgbG90cyBvZiB1Z2x5IFwuCgoyMDE3LTAzLTI0IDE0OjMzOjE5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRml4IHdpbjMyIGxpYmdzdHJlYW1lci5kZWYgb3JkZXJpbmcKCSAgVGhpcyBzaG91bGQgZml4IG1ha2UgZGlzdGNoZWNrCgoyMDE3LTAzLTE1IDE3OjMxOjM5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBwYXJhbXNwZWM6IEZpeCBhcnJheSB2YWxpZGF0aW9uIGxvZ2ljCgkgIEEgcGFyYW1zcGVjIHZhbGlkYXRpb24gc2hvdWxkIG1vZGlmeSB0aGUgY29udGVudCB0byBtYXRjaCB3aGF0IHRoZSBzcGVjCgkgIHJlcXVpcmVzIGFuZCByZXR1cm4gVFVSRSBpZiBhIG1vZGlmaWNhdGlvbiBoYXBwZW5lZC4gVGhpcyBwcmV2aW91cwoJICBpbXBsZW1lbnRhdGlvbiB3b3VsZCBvbmx5IGZpeCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgYW5kIHJldHVybi4KCSAgSXQgd2FzIGFsc28gcmV0dXJuIFRSVUUgZm9yIGVtcHR5IGFycmF5LCB3aGlsZSBubyBtb2RpZmljYXRpb24gd2FzCgkgIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDExMQoKMjAxNy0wMy0yMiAxMzozNTozMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgYXJyYXkvZnJhY3Rpb246IEluIHBhcmFtIHR5cGVzLCB1c2UgZ2V0X3R5cGUoKSBmdW5jdGlvbiBkaXJlY3RseQoJICBUaGUgR1NUX1RZUEUgbWFjcm8gcG9pbnRzIHRvIGdsb2JhbCB2YXJpYWJsZXMgaW5pdGlhbGl6ZWQgYnkgdGhlCgkgIGZpcnN0IGNhbGwgdG8gZ2V0X3R5cGUuIFRoaXMgaXMgbm90IGFuIGlzc3VlIGlmIHlvdSBjYWxsIGdzdF9pbml0KCkKCSAgYnV0IHVuZm9ydHVuYXRseSBweWdpIHdpbGwgbmVlZCB0byBhY2NlcyB0aGUgcGFyYW0gdHlwZSBiZWZvcmUKCSAgaW5pdCBjYW4gYmUgY2FsbGVkLiBUaGlzIHJlbW92ZXMgYW4gYXNzZXJ0aW9uLgoKMjAxNy0wMy0yMiAxMzozMzo0NyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgZnJhY3Rpb24vYXJyYXk6IE1ha2UgZ2V0X3R5cGUoKSB0aHJlYWQgc2FmZQoJICBUaG9zZSBhcmVuJ3Qgc3VwcG9zZSB0byBiZSBjYWxsZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWQsIGJ1dCBhbGwKCSAgZnVuZGFtZW50YWwgZ2V0X3R5cGUoKSBmdW5jdGlvbiBhcmUgdGhyZWFkIHNhZmUuIEZpeCBpdCB0bwoJICBiZSBjb25zaXN0ZW50IGFuZCBpdCBtYXkgaGVscCBpZiB3ZSBjaGFuZ2UgdGhlIHR5cGluZyBtZWNoYW5pc20KCSAgaW4gR1N0cmVhbWVyIGNvbWUgZGF5LgoKMjAxNy0wMy0yMCAxNjo0NjozMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IEFkZCBoZWxwZXJzIHRvIGdldC9zZXQgYXJyYXkgcHJvcGVydGllcwoJICBUaGlzIGlzIHRvIGhlbHAgYmluZGluZ3MgYWNjZXNzIHByb3BlcnRpZXMgb2YgdHlwZSBHU1RfVFlQRV9BUlJBWS4KCSAgVGhpcyBmdW5jdGlvbiB3aWxsIGdldC9zZXQgdGhlIHByb3BlcnR5IGFuZCBjb252ZXJ0IGZvcm0vdG8KCSAgR1ZhbHVlQXJyYXkuCgkgIE5ldyBBUEk6CgkgIGdzdF91dGlsX3NldF9vYmplY3RfYXJyYXkKCSAgZ3N0X3V0aWxfZ2V0X29iamVjdF9hcnJheQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNzU0CgoyMDE3LTAzLTIwIDE1OjUwOjQ5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdldC9zZXRfYXJyYXkvbGlzdCB1c2luZyBHVmFsdWVBcnJheQoJICBUaGlzIGFkZHMgYSBiaW5kaW5nIGZyaWVuZGx5IGludGVyZmFjZSB0byBnZXQgYW5kIHNldCBhcnJheXMKCSAgYW5kIGxpc3QgaW50byBHc3RTdHJ1Y3R1cmUuCgkgIE5ldyBBUEk6CgkgIC0gZ3N0X3N0cnVjdHVyZV9zZXRfYXJyYXkKCSAgLSBnc3Rfc3RydWN0dXJlX3NldF9saXN0CgkgIC0gZ3N0X3N0cnVjdHVyZV9nZXRfYXJyYXkKCSAgLSBnc3Rfc3RydWN0dXJlX2dldF9saXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM3NTQKCjIwMTctMDMtMjAgMTU6NDA6MjUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCB0cmFuc2Zvcm1hdGlvbiB0by9mcm9tIEdWYWx1ZUFycmF5CgkgIFRoaXMgYWxsb3cgdHJhbnNmb3JtaW5nIGEgR1ZhbHVlIG9mIHR5cGUgR19UWVBFX1ZBTFVFX0FSUkFZIHRvCgkgIGFuZCBmcm9tIEdTVF9UWVBFX0FSUkFZL0xJU1QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM3NTQKCjIwMTctMDMtMjQgMTQ6MjE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSAgcXVldWVhcnJheTogQWRkIEdfQkVHSU5fREVDTFMgYW5kIEdfRU5EX0RFQ0xTIHRvIG1ha2UgaXQgdXNhYmxlIGZyb20gQysrIGNvZGUKCjIwMTctMDMtMjQgMTc6NTM6MzEgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgcGFyYW1zcGVjczogVXNlIGdzdF92YWx1ZV9hcnJheV9nZXRfdHlwZSgpIGZvciBHc3RQYXJhbVNwZWNBcnJheSB0eXBlCgkgIFdoZW4gcmVnaXN0ZXJpbmcgR3N0UGFyYW1TcGVjQXJyYXksIHVzZSB0aGUgZ3N0X3ZhbHVlX2FycmF5X2dldF90eXBlKCkKCSAgZnVuY3Rpb24gdG8gZ2V0IHRoZSB0eXBlLCByYXRoZXIgdGhhbiB0aGUgR1NUX1RZUEVfQVJSQVkgbWFjcm8sIHdoaWNoCgkgIGdldHMgaXQgZnJvbSB0aGUgX2dzdF92YWx1ZV9hcnJheV90eXBlLCB3aGljaCBpcyBpbiB0dXJuIG9ubHkKCSAgaW5pdGlhbGlzZWQgZHVyaW5nIGdzdF9pbml0KCkKCSAgRml4ZXMgY3JpdGljYWxzIHdpdGggKHB5dGhvbikgYmluZGluZ3MgdGhhdCBsb29rIHVwIGFsbCB0aGUKCSAgdHlwZXMgZnJvbSB0aGUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGluZm8gYXMgc29vbiBhcyB0aGV5CgkgIGFyZSBpbXBvcnRlZC4KCSAgL3Vzci9saWI2NC9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9naS9tb2R1bGUucHk6MTc4OiBXYXJuaW5nOiBnX3BhcmFtX3R5cGVfcmVnaXN0ZXJfc3RhdGljOiBhc3NlcnRpb24gJ2dfdHlwZV9uYW1lIChwc3BlY19pbmZvLT52YWx1ZV90eXBlKSAhPSBOVUxMJyBmYWlsZWQKCSAgZ190eXBlID0gaW5mby5nZXRfZ190eXBlKCkKCSAgL3Vzci9saWI2NC9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9naS9tb2R1bGUucHk6MjEyOiBXYXJuaW5nOiBnX3R5cGVfZ2V0X3FkYXRhOiBhc3NlcnRpb24gJ25vZGUgIT0gTlVMTCcgZmFpbGVkCgkgIHR5cGVfID0gZ190eXBlLnB5dHlwZQoJICAvdXNyL2xpYjY0L3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL2dpL21vZHVsZS5weToyMjY6IFdhcm5pbmc6IGdfdHlwZV9nZXRfcWRhdGE6IGFzc2VydGlvbiAnbm9kZSAhPSBOVUxMJyBmYWlsZWQKCSAgZ190eXBlLnB5dHlwZSA9IHdyYXBwZXIKCSAgL3Vzci9saWI2NC9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9naS9tb2R1bGUucHk6MjI2OiBXYXJuaW5nOiBnX3R5cGVfc2V0X3FkYXRhOiBhc3NlcnRpb24gJ25vZGUgIT0gTlVMTCcgZmFpbGVkCgkgIGdfdHlwZS5weXR5cGUgPSB3cmFwcGVyCgoyMDE3LTAzLTE3IDIyOjMyOjE5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgZm9yZ2V0IGVycm9yIHJldHVybnMgd2hlbiBwcm9jZXNzaW5nIG1vcmUKCSAgSWYgcGFyc2luZyByZXR1cm5zIGEgbm9uLU9LIGZsb3cgcmV0dXJuIGluIHRoZSBtaWRkbGUKCSAgb2YgcHJvY2Vzc2luZyBhbiBpbnB1dCBidWZmZXIsIGRvbid0IG92ZXJ3cml0ZSB0aGF0CgkgIGlmIGEgbGF0ZXIgcmV0dXJuIGlzIE9LIGFnYWluIC0gdGhlIHN1YmNsYXNzIG1pZ2h0CgkgIHJldHVybiBub3QtbGlua2VkIGluIHRoZSBtaWRkbGUsIGFuZCB0aGVuIGRpc2NhcmQKCSAgc3Vic2VxdWVudCBkYXRhIHdpdGhvdXQgcHVzaGluZyB3aGlsZSByZXR1cm5pbmcgT0suCgkgIEEgbGF0ZXIgc3VjY2VzcyBkb2Vzbid0IGludmFsaWRhdGUgdGhlIGVhcmxpZXIgZmFpbHVyZSwKCSAgYnV0IHdlIHNob3VsZCBjb250aW51ZSBwcm9jZXNzaW5nIGFmdGVyIG5vdC1saW5rZWQsIHNvCgkgIGFzIHRvIGtlZXAgcGFyc2Ugc3RhdGUgY29uc2lzdGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTgzMQoKMjAxNy0wMy0yMCAxNjo1NDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2gtMS4wLjE6CgkgIHRvb2xzOiByZXBsYWNlIG1lbnRpb25zIG9mICdtYWQnIG9uIHRoZSBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZQoJICBUaGUgJ21hZCcgcGx1Z2luIGhhcyBiZWVuIHJlbW92ZWQuIE1lbnRpb24gbXBnMTIzYXVkaW9kZWMgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjE0MAoKMjAxNy0wMy0xMyAxMTowODowMSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggdW5pb24gb2YgaW50IHJhbmdlIGFuZCBpbnQgd2hlbiBleHRlbmRpbmcgb24gYSBzaWRlCgkgIFRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB1c2VzIGJvdW5kcyBzY2FsZWQgYnkgdGhlIHN0ZXAKCSAgQWRkIHRlc3RzIHRvIGNhdGNoIHRob3NlIGNhc2VzCgoyMDE3LTAzLTE0IDIyOjE4OjM2IC0wNzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGF2b2lkIHJldHVybiBmbHVzaGluZyBpZiB3ZSBoYXZlIGEgbm90LWxpbmtlZAoJICBSZXR1cm4gdGhlIGNvcnJlY3QgZmxvdyByZXR1cm4gaW5zdGVhZCBvZiByZXR1cm5pbmcgYWx3YXlzIGZsdXNoaW5nLgoJICBUaGlzIHdvdWxkIGNhdXNlIHF1ZXVlIHRvIGNvbnZlcnQgbm90LWxpbmtlZCB0byBmbHVzaGluZyBhbmQgbWFraW5nCgkgIHVwc3RyZWFtIGVsZW1lbnRzIHN0b3AuCgkgIEJhc2VkIG9uIHRoZSBwcmV2aW91cyBwYXRjaCBmb3IgcXVldWUyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2OTk5CgoyMDE3LTAxLTIyIDExOjI2OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgcmV0dXJuIGZsdXNoaW5nIGlmIHdlIGhhdmUgYSBub3QtbGlua2VkCgkgIFJldHVybiB0aGUgY29ycmVjdCBmbG93IHJldHVybiBpbnN0ZWFkIG9mIHJldHVybmluZyBhbHdheXMgZmx1c2hpbmcuCgkgIFRoaXMgd291bGQgY2F1c2UgcXVldWUyIHRvIGNvbnZlcnQgbm90LWxpbmtlZCB0byBmbHVzaGluZyBhbmQgbWFraW5nCgkgIHVwc3RyZWFtIGVsZW1lbnRzIHN0b3AuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY5OTkKCjIwMTYtMDktMTggMTI6MDI6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogYmluOiBhZGQgbW9yZSB0ZXN0cyBmb3Igc3VwcHJlc3NlZCBmbGFncwoJICBBZGQgdGVzdHMgdG8gY29uZmlybSBmbGFncyBhcmUgcGVyc2lzdGVkIGV2ZW4gYWZ0ZXIgcmVtb3ZpbmcKCSAgZWxlbWVudHMgdGhhdCBoYXZlIHRob3NlIHN1cHByZXNzZWQgZmxhZ3MKCjIwMTctMDMtMTAgMTA6MTM6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGJ1ZmZlcjogaGFuZGxlIGdzdF9idWZmZXJfbWFwIGZhaWx1cmVzCgoyMDE3LTAzLTEwIDEwOjEyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHVubG9jayBtdXRleCBpbiBlcnJvciBjYXNlCgoyMDE3LTAzLTA5IDEyOjA5OjU3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHZhbHVlOiBEbyBtb3JlIGNoZWNrcyB3aGVuIGd1ZXNzaW5nIGF0IGZsYWdzZXQgc3RyaW5ncwoJICBJZiBndWVzc2luZyB0aGF0IGEgc3RyaW5nIG1hdGNoZXMgYSBmbGFnc2V0LCBiZSBtb3JlIHRob3JvdWdoCgkgIGF0IGNoZWNraW5nIHRoYXQgdGhlIHN0cmluZyBmb2xsb3dpbmcgYSBzdHJpbmcgb2YgaGV4OmhleDoKCSAgYWN0dWFsbHkgbG9va3MgbGlrZSBhIGZsYWcgc2V0IHN0cmluZy4gQWRkIHNvbWUgdW5pdCB0ZXN0cwoJICB0byBjYXRjaCBtb3JlIGNhc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NzU1CgoyMDE3LTAzLTA5IDEyOjA5OjU3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogTWFrZSBtaW4taW50ZXJsZWF2ZS10aW1lIGEgY29uZmlndXJhYmxlIHByb3BlcnR5CgkgIFJlbW92ZSBhIEZJWE1FIGFib3V0IG1ha2luZyB0aGUgbWluaW11bSBpbnRlcmxlYXZlCgkgIGJ1ZmZlcmluZyBhIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0eQoKMjAxNy0wMy0wOCAxNDo1MTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogcHJvbW90ZSBmYWN0b3J5IG5vdCBmb3VuZCBsb2cgbWVzc2FnZSB0byBXQVJOSU5HCgkgIEluIG1vc3QgY2FzZXMgcGVvcGxlIHJlYWxseSB3YW50IHRvIGtub3cgd2hlbiBhbiBlbGVtZW50CgkgIGNvdWxkIG5vdCBiZSBjcmVhdGVkLgoKMjAxNy0wMy0wNyAwODoyMTo0OCArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogQWx3YXlzIHByb3h5IHBvc2l0aW9uL2R1cmF0aW9uIHF1ZXJ5CgkgIGFjdGl2ZS1wYWQgc3dpdGNoIGNhdXNlcyByZWNvbmZpZ3VyZSBldmVudCB3aXRoIGxvY2sgdGFrZW4sCgkgIGFuZCB1cHN0cmVhbSBlbGVtZW50IG1pZ2h0IHF1ZXJ5IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9yIGR1cmF0aW9uCgkgIGJlZm9yZSByZXR1cm5pbmcgdGhlIHJlY29uZmlndXJlIGV2ZW50LgoJICBNZWFud2hpbGUsIGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfbGlua2VkX3BhZCgpIGlzIHVzZWQgdG8gZ2V0IHNyY3BhZAoJICBpbnNpZGUgb2YgZGVmYXVsdCBxdWVyeSBoYW5kbGUsIGFuZCBpdCB0YWtlcyBhbHNvIGxvY2suCgkgIFNpbmNlIGlucHV0c2VsZWN0b3IgaXMgc3RpbGwgbG9ja2VkIGJ5IGFjdGl2ZS1wYWQgc3dpdGNoLCBhbmQgc28gdGhlIHF1ZXJ5CgkgIGNhbm5vdCBiZSBoYW5kbGVkIGZ1cnRoZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU0NDUKCjIwMTctMDMtMDMgMTI6NTM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBkb2N1bWVudCB0aGF0IGxvZ2dpbmcgbWFjcm9zIGRvbid0IG5lZWQgbmV3bGluZXMgYXQgdGhlIGVuZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NDU5CgoyMDE3LTAyLTI0IDIxOjM1OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBzaW5jZSBtYXJrZXIgdG8gZG9jcyBmb3IgbmV3IEFQSQoKMjAxNy0wMi0yNCAyMTozMzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IEFQSQoKMjAxNy0wMi0yNCAxMDoyMzowMSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IE9ubHkgc2NhbiBwbHVnaW4gZmlsZXMgdGhhdCBlbmQgd2l0aCBhbiBleHRlbnNpb24KCSAgTm90IGZpbGUgdGhhdCB3b3VsZCBmb3Igc29tZSByZWFzb24gZW5kIHdpdGggJ3NvJyBvciAnZGxsJywgZXRjLi4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkxNzUKCjIwMTctMDItMTcgMTU6NDg6MTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIEFQSSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSB0YXNrCgkgIEF2b2lkaW5nIHRoZSB1c2VyIHRvIG5lZWQgdG8gZGVhbCB3aXRoIHRoZSBsb2NraW5nIGhpbXNlbGYgZXRjLgoJICBBUEk6CgkgIGdzdF9wYWRfdGFza19nZXRfc3RhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODgzMAoKMjAxNy0wMi0xMyAxNToxODo1OSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IEFkZCBhbiBvcHRpb24gdG8gZGlzYWJsZSB1c2FnZSBvZiBsaWJ1bndpbmQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODE5MwoKMjAxNy0wMi0yNCAxNTo1OTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogVXBkYXRlIHZlcnNpb24KCjIwMTctMDItMjQgMTU6Mzc6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMTEuMiA9PT0KCjIwMTctMDItMjQgMTU6MDY6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAxLjExLjIKCjIwMTctMDItMjQgMTI6NDQ6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTAyLTIzIDIwOjUyOjM5ICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBkZXNlcmlhbGl6YXRpb24gZm9yIGFycmF5cy9saXN0cyBvdXRzaWRlIEdzdFN0cnVjdHVyZXMKCSAgVGhpcyBpcyBtb3N0bHkgdXNlZnVsIGZvciBwcm9wZXJ0aWVzIG9mIHRob3NlIHR5cGVzIHdoZW4gdXNlZCBpbgoJICBnc3QtbGF1bmNoIG9yIHNpbWlsYXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzczNzUKCjIwMTctMDItMjMgMjA6NTA6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBhIHR5cGUgYWJicmV2aWF0aW9uIGZvciBHc3RGbGFnU2V0IGluIHNlcmlhbGl6YXRpb24KCjIwMTctMDItMjMgMjA6NDc6MzAgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBbHdheXMgYWRkIHRoZSB0eXBlIG5hbWUgdG8gZWxlbWVudHMgd2hlbiBzZXJpYWxpemluZyBhcnJheXMvbGlzdHMKCSAgQnV0IG9ubHkgd2hlbiBzZXJpYWxpemluZyBvdXRzaWRlIG9mIEdzdFN0cnVjdHVyZXMsIGJlY2F1c2UgaW4gY2FzZSBvZgoJICBHc3RTdHJ1Y3R1cmUgdGhlIHR5cGUgaXMgYWxyZWFkeSBwcmVwcmVuZGVkIHRvIHRoZSBhcnJheS9saXN0IGFuZCB0aGUKCSAgR3N0U3RydWN0dXJlIEFQSSBtYWtlcyBzdXJlIHRoYXQgdGhleSBoYXZlIHRoZSBzYW1lICJnZW5lcmljIiB0eXBlIHNvCgkgIGRlc2VyaWFsaXphdGlvbiB3b3JrcyBwcm9wZXJseS4KCSAgVGhpcyBrZWVwcyBzZXJpYWxpemF0aW9uIG9mIEdzdFN0cnVjdHVyZXMgdGhlIHNhbWUgYXMgYmVmb3JlLCBhbmQgdGhlCgkgIEdzdENhcHMgdW5pdCB0ZXN0cyBhbHJlYWR5IHRlc3QgZm9yIHRoYXQuIEhvd2V2ZXIgd2hlbiBzZXJpYWxpemluZwoJICBzdGFuZGFsb25lIGFycmF5cy9saXN0cyBnZXQgdGhlIHR5cGVzIGFkZGVkIG5vdy4KCjIwMTctMDItMjMgMjA6MjI6MDMgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBNb3ZlIGxpc3QvYXJyYXkgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gZnVuY3Rpb25zIGZyb20gR3N0U3RydWN0dXJlIHRvIEdzdFZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzczNzUKCjIwMTctMDItMjMgMjA6MTY6MTcgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhcmFtc3BlY3M6IEFkZCBHc3RQYXJhbVNwZWNBcnJheSBmb3IgR1NUX1RZUEVfQVJSQVkgdHlwZWQgcHJvcGVydGllcwoJICBUaGVzZSBhcmUgbW9zdGx5IHVzZWZ1bCB0byBnZXQgb3VyIGF1dG9tYXRpYwoJICBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbiBmcm9tIHN0cmluZ3MgYW5kIHNpbXBsZSB1c2FnZSBmcm9tCgkgIGdzdC1sYXVuY2ggb3Igc2ltaWxhci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzM3NQoKMjAxNy0wMi0yMSAyMDoyMzo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogZml4IHBlZWsgdmFsdWUgd2hlbiBzY2FubmluZyBmb3IgMDAgMDAgMDEgd2l0aCBub24tMCBvZmZzZXQKCSAgV2Ugd291bGQgYWRkIHRoZSBvZmZzZXQgYSBzZWNvbmQgdGltZSBpbiBfc2Nhbl9mb3Jfc3RhcnRfY29kZSgpCgkgIHdoZW4gd2UgZm91bmQgYSByZXN1bHQsIGJ1dCBpdCdzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgZGF0YQoJICBwb2ludGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrKCksIHNvIHRoZQoJICBwZWVrZWQgdmFsdWUgd291bGQgYmUgd3JvbmcgaWYgdGhlIGluaXRpYWwgb2Zmc2V0IHdhcyA+MCwgYW5kCgkgIHdlIHdvdWxkIHBvdGVudGlhbGx5IHJlYWQgbWVtb3J5IG91dC1vZi1ib3VuZHMuCgkgIEFkZCB1bml0IHRlc3QgZm9yIGFsbCBvZiB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4MzY1CgoyMDE3LTAyLTIwIDEyOjE2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IHB1dCAoKSBhcm91bmQgbWFjcm8gYXJndW1lbnRzCgkgIFB1dCBicmFjZXMgYXJvdW5kIG1hY3JvIGFyZ3VtZW50cyBvciBlbHNlIHdlIG1pZ2h0IHJ1biBpbnRvIHByb2JsZW1zCgkgIHdpdGggb3BlcmF0ZXIgcHJlY2VkZW5jZS4KCjIwMTctMDItMjAgMTA6NDU6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJICBkZXZpY2Vwcm92aWRlcmZhY3Rvcnk6IGlnbm9yZSBlbXB0eSBjbGFzc2VzCgoyMDE3LTAyLTIwIDEwOjI1OjUwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBjb21wYXJlIGNsYXNzIGFnYWluc3QgTlVMTAoJICBnc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzo1MDE6MjA6IGVycm9yOiBjb21wYXJpc29uIGJldHdlZW4gcG9pbnRlciBhbmQgemVybyBjaGFyYWN0ZXIgY29uc3RhbnQgWy1XZXJyb3I9cG9pbnRlci1jb21wYXJlXQoJICBpZiAoY2xhc3Nlc1swXSA9PSAnXDAnKQoKMjAxNy0wMi0xOCAxNjo0OTo0MCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogRml4IGJ1aWxkIHdpdGggbGF0ZXN0IHVwc3RyZWFtIGdpdAoJICBUcml2aWFsIGluY29ycmVjdCBpbmNsdWRlX2RpcmVjdG9yaWVzKCkgY2FsbAoKMjAxNy0wMi0xOCAxMDowMzoyNCArMDEwMCAgUGV0ZXIgS29yc2dhYXJkIDxwZXRlckBrb3JzZ2FhcmQuY29tPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWc6IEZpeCB1bmFsaWduZWQgYWNjZXNzIHN1cHBvcnQgZm9yIHRoZSBvcGVucmlzYyBhcmNoaXRlY3R1cmUKCSAgVGVhY2ggZ3N0Y29uZmlnLmguaW4gYWJvdXQgdGhlIG9wZW5yaXNjIChvcjFrKSBhcmNoaXRlY3R1cmUuICBGaXhlcwoJICBidWlsZHJvb3QgYXV0b2J1aWxkIGZhaWx1cmU6CgkgIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm5ldC9yZXN1bHRzLzcxNy83MTdkNzhjZTA5MzU3NDlmNDc3YmRmMzEzM2I2ZjIwMDU3YTI4YzAxL2J1aWxkLWVuZC5sb2cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODg2NgoKMjAxNy0wMi0xNSAyMTozNzozMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0YmFzZXNpbms6IHhyZWYgc3ltYm9sIGluIGRvY3MKCjIwMTctMDItMTUgMjA6NTg6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmV2ZXJ0IHRoZSBjb250ZW50IGNoYW5nZXMgZnJvbSBwcmV2aW91cyBjb21taXQKCSAgVGhlIGRlZmF1bHQgYmVoYXZpb3VyIHdoZW4gcmV0dXJuaW5nIEdTVF9QQURfUFJPQkVfT0sgaXMgdW5yZWxhdGVkIHRvCgkgIHRoZSBvdGhlciByZXR1cm4gY29kZS4KCjIwMTctMDItMTUgMjA6Mzc6NDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGRvY3MgZm9yIEdzdFBhZFByb2JlUmV0dXJuCgkgIFRoZXJlIGlzIG5vICdibG9jaycgdmFsdWUsIGJ1dCB3ZSBoYXZlICdkcm9wJy4gQWxzbyBmaXggdGhlIG1hcmt1cDsgaXQKCSAgaXMgJyUnIHRvIGxpbmsgdG8gY29uc3RhbnRzIChhbmQgZW51bSB2YWx1ZXMpLgoKMjAxNi0xMC0yNCAyMjo0NzoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBtZXNvbjogZGlzdCBtZXNvbiBidWlsZCBmaWxlcwoJICBTaGlwIG1lc29uIGJ1aWxkIGZpbGVzIGluIHRhcmJhbGxzLCBzbyBwZW9wbGUgd2hvIHVzZSB0YXJiYWxscwoJICBpbiB0aGVpciBidWlsZHMgY2FuIHN0YXJ0IHBsYXlpbmcgd2l0aCBtZXNvbiBhbHJlYWR5LgoKMjAxNy0wMS0zMSAwOTo1NTo1OSArMDAwMCAgSnVsaWVuIElzb3JjZSA8amlzb3JjZUBvYmxvbmcuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IGFkZCAyIHVuaXQgdGVzdHMgZm9yIG5vbi1mbHVzaCBzZWVrIHdpdGggZ3N0YmFzZXBhcnNlCgkgIFRoZSB1bml0IHRlc3QgZGVmaW5lcyBhIHRlc3QgcGFyc2UgZWxlbWVudCB0aGF0IGluaGVyaXQgZnJvbSBHc3RCYXNlUGFyc2UuCgkgIFRoZSB0ZXN0IHBpcGVsaW5lIGlzOiBmYWtlc3JjICEgdGVzdHBhcnNlICEgZmFrZXNpbmsgc3luYz0xCgkgIEJlZm9yZSB0aGUgZml4IGIyYzA1Y2FjOCB0aGUgZmlyc3QgbmV3IHRlc3Qgd291bGQgaGF2ZSBmYWlsIGJlY2F1c2UgdGhlCgkgIHBpcGVsaW5lIHdvdWxkIGhhdmUgd2FpdCBkb2luZyBub3RoaW5nIGp1c3QgYWZ0ZXIgcHJvY2VlZGVkIHRoZSBzZWVrIGV2ZW50LgoJICBUaGUgc2Vjb25kIG5ldyB0ZXN0IHdvdWxkIGhhdmUgZmFpbCBiZWNhdXNlIHRoZSBwaXBlbGluZSB3b3VsZCBoYXZlCgkgIHBsYXllZCB0aGUgbWVkaWEgaW5zdGFudGx5IGp1c3QgYWZ0ZXIgcHJvY2VlZGVkIHRoZSBzZWVrIGV2ZW50CgkgIChsaWtlIGlmIHN5bmMgd2FzIEZBTFNFIG9uIHRoZSBzaW5rKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Nzc4MAoKMjAxNy0wMS0zMSAyMToxOToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBEb24ndCB0cmFuc2xhdGUgdGhlICJiaW4iIGVsZW1lbnQgbmFtZQoJICBPdGhlcndpc2Ugd2Ugd29uJ3QgYmUgYWJsZSB0byBjcmVhdGUgYmlucywgdGhlcmUgaXMgbm8gZWxlbWVudCBjYWxsZWQKCSAgIkJlaMOkbHRlciIgaWYgeW91J3JlIHVzaW5nIGEgR2VybWFuIGxvY2FsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3Nzk5OAoKMjAxNi0wNC0xNSAyMDo1NDo0MiArMDkwMCAgU2V1bmdoYSBZYW5nIDxzaC55YW5nQGxnZS5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBNb2RpZml5IGluc2lkZSBzZWdtZW50IGNvbmRpdGlvbgoJICBUaGVyZSBpcyBhIHNwZWNpYWwgY2FzZSB0aGF0IHNlZ21lbnRfc3RhcnQgPT0gc2VnbWVudF9zdG9wID09IHN0YXJ0LgoJICBJdCdzIGluc2lkZSBvZiBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ3MDcKCjIwMTctMDEtMjYgMTY6MzU6MjcgKzAwMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQ2hlY2sgbGlidW53aW5kIHJldHVybiBjb2RlcwoKMjAxNy0wMS0xOCAxODoxNjoyNiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9uZXQvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBsaWJzOiBBZGQgZ2lyIHRvIHRoZSBzb3VyY2UgbGlzdCBvZiB0aGUgZGVwZW5kZW5jeQoKMjAxNy0wMS0xNiAxMToyNjoxNiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGR5bmFtaWN0eXBlZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJlYW1jb2xsZWN0aW9uLmM6CgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgUG9ydCBndGstZG9jIGNvbW1lbnRzIHRvIHRoZWlyIGVxdWl2YWxlbnQgbWFya2Rvd24gc3ludGF4CgkgIE1vZGVybml6aW5nIG91ciBkb2N1bWVudGF0aW9uIGFuZCBwcmVwYXJpbmcgYSBwb3NzaWJsZSBtb3ZlIHRvIGhvdGRvYy4KCSAgVGhpcyBjb21taXRzIGFsc28gYWRkcyBtaXNzaW5nIEB0aXRsZSBtZXRhZGF0YXMgdG8gYWxsIFNFQ1RJT05zCgoyMDE3LTAxLTExIDE3OjI1OjA4IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgZ3N0OiBGaXggaW5jbHVkZXMgc28gdGhhdCBmaWxlcyBjYW4gYmUgYnVpbHQgc2VwYXJhdGVseQoJICBJdCB1c2VkIHRvIHdvcmsgYnV0IGl0IGhhcyBicm9rZSBpbiB0aGUgMS4xMCBjeWNsZS4KCjIwMTctMDEtMTggMTA6NTY6MzggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRW5jb2RlIGluIHV0Zi04CgoyMDE3LTAxLTI2IDE1OjMyOjMxIC0wODAwICBCcmVuZGFuIFNoYW5rcyA8YnJlbmRhbi5zaGFua3NAdGVyYWRlay5jb20+CgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJICBHc3RTdHJlYW0vR3N0U3RyZWFtQ29sbGVjdGlvbjogYWRkIGdfYXV0b3B0cigpIHN1cHBvcnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzgxMAoKMjAxNy0wMS0yNiAxNjo1MToyMSArMDAwMCAgSnVsaWVuIElzb3JjZSA8amlzb3JjZUBvYmxvbmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjb3JyZWN0bHkgaGFuZGxlIG5vbi1mbHVzaCBzZWVrCgkgIE90aGVyd2lzZSB3aGVuIHNlZWtpbmcvbG9vcGluZyB0byB0aGUgc3RhcnQgd2hlbiByZWFjaGluZyB0aGUgZW5kLAoJICB0aGUgc2luayB3YWl0cyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBzdHJlYW0uIFNvIHRoZSB1c2VyIGhlYXJzCgkgIG5vdGhpbmcgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgc3RyZWFtIGJlZm9yZSBpdCBhY3R1YWxseSBsb29wIGFnYWluLgoJICBTZWUgZXhhbXBsZSBhdHRhY2hlZCB0byB0aGUgYnVnIGZvciB0aGF0LgoJICBFeGlzdGluZyB0ZXN0OgoJICBnc3QtcGx1Z2lucy1nb29kL3Rlc3RzL2ljbGVzL3Rlc3Qtc2VnbWVudC1zZWVrcyBmb28uZmxhYwoJICBXaXRob3V0IHRoZSBwYXRjaCB0aGUgdXNlciBoZWFycyBhIGNyYWNrL2N1dCBhdCBlYWNoIHNlZWsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzc3ODAKCjIwMTYtMDUtMjQgMTQ6NTc6NTQgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgQVBJIHRvIGZpbHRlciBnX3dhcm5pbmcvZ19jcml0aWNhbCBldGMKCSAgTmV3IEFQSSBmdW5jdGlvbnMgdG8gZmlsdGVyIGxvZyBtZXNzYWdlcyBiZWZvcmUgdGhleSBhcmUgcHJvY2Vzc2VkIGJ5CgkgIEdzdENoZWNrLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRpc2NhcmQgc3BlY2lmaWMgbWVzc2FnZXMgdGhhdCBhcmUKCSAgYWNjZXB0ZWQgYnkgdGhlIHRlc3Qgb3IgdG8gYWRkIGNhbGxiYWNrcyB0aGF0IHRlc3Qgc3BlY2lmaWMgbWVzc2FnZXMuCgkgIERlZmF1bHQgYmV2YXZpb3Igd2hlbiBubyBjYWxsYmFjayBpcyBnaXZlbiB0byBhIGZpbHRlciBpcyB0byBkaXNjYXJkIHRoZQoJICBtZXNzYWdlLCBiZWNhdXNlIGl0IGRvZXMgbm90IG1ha2VzIHNlbnNlIHRvIGhhdmUgYSBmaWx0ZXIgd2l0aCBubwoJICBjYWxsYmFjayB3aGljaCBkb2VzIG5vdCBkaXNjYXJkOyB0aGF0IHdvdWxkIGJlIGEgbm9vcC4KCSAgRGlzY2FyZGVkIG1lc3NhZ2VzIHdpbGwgaW4gYWRkaXRpb24gdG8gYnlwYXNzIHRoZSBHc3RDaGVjayBoYW5kbGluZyBhbHNvCgkgIHJldHVybiB0byBHTGliIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm90IGZhdGFsIGlmIGl0IG9jY3Vycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA5MQoKMjAxNy0wMS0xOCAyMjozOTozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiB1cGRhdGUgdGhlIGRvY3MgZm9yIHRoZSBldmVudCBmb3J3YXJkaW5nCgkgIEZpcnN0IHRoaXMgc2VuZHMgdGhlIGV2ZW50cyBub3Qgb25seSB0byB0aGUgc291cmNlcyBhbmQgMm5kIHRoaXMgaXMgbm90IG9ubHkKCSAgZm9yIHNlZWsgZXZlbnRzLgoKMjAxNy0wMS0xOCAxNTowNzo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBEb24ndCBob2xkIGVsZW1lbnQncyBvYmplY3QgbG9jayB3aGlsZSBxdWVyeWluZyBlbGVtZW50IHBhZHMnIGNhcHMKCSAgVGhpcyBjYW4gZWFzaWx5IGRlYWRsb2NrIGlmIHRoZSBlbGVtZW50IHVzZXMgdGhlIG9iamVjdCBsb2NrIGZvcgoJICBzb21ldGhpbmcgaW50ZXJuYWxseSwgbGlrZSBwb3N0aW5nIGFuIGVycm9yIG1lc3NhZ2UuIFVzZSBhbiBHc3RJdGVyYXRvcgoJICBmb3IgaXRlcmF0aW5nIG92ZXIgdGhlIHBhZHMgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ0OQoKMjAxNy0wMS0xNiAwOTo0MToxOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogUXVpZXRlbiBhIG5vaXN5IEZJWE1FIGFib3V0IGR1cmF0aW9uIGNhY2hpbmcKCSAgT25seSBwcmludCB0aGlzIEZJWE1FIG9uY2UgcGVyIHJ1biwgYXQgaXQncyBwcmV0dHkgYW5ub3lpbmcgaW4KCSAgbG90cyBvZiBsb2dzIG90aGVyd2lzZS4KCjIwMTUtMDctMTQgMTM6MTE6MTEgKzAwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBBZGQgdHMtb2Zmc2V0IHByb3BlcnR5LgoJICBBZGQgYSBwcm9wZXJ0eSB0byBkZWxheSBvciBhZHZhbmNlIHN5bmMgdGltZQoJICB3aGVuIHN5bmM9dHJ1ZSwgd2l0aCB0aGUgc2FtZSBiZWhhdmlvdXIgYXMKCSAgdGhlIHRzLW9mZnNldCBwcm9wZXJ0eSBpbiBiYXNlc2luawoKMjAxNy0wMS0xNSAxMTo1Mjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGZpeCBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kIHJlYWQgb24gbWFsZm9ybWVkIGRhdGV0aW1lIHN0cmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3MjYzCgoyMDE3LTAxLTEzIDEyOjM0OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBidW1wIHZlcnNpb24KCjIwMTctMDEtMTIgMTY6MzI6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMTEuMSA9PT0KCjIwMTctMDEtMTIgMTU6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDEuMTEuMQoKMjAxNy0wMS0xMiAxNDozNToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2hyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3poX0NOLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE3LTAxLTEyIDE0OjM0OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vaHIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE3LTAxLTEyIDE0OjI2OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNy0wMS0wNSAxMzo0NTozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QtMS4wLjE6CgkgIHRvb2xzOiB1cGRhdGUgZ3N0LWluc3BlY3QgbWFuIHBhZ2UKCjIwMTctMDEtMDUgMTA6MzI6MDMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJICBtZXNvbjogRG8gbm90IGdlbmVyYXRlIC5wYyBmaWxlcyBmb3IgbGliZ3N0Y2hlY2sgb24gd2luZG93cwoJICBUaGUgbGliIGlzIG5vdCBidWlsdAoKMjAxNy0wMS0wNCAxMjoxMDo0NSArMDEwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZ2VuZXJhdGUgcGtnLWNvbmZpZyAtdW5pbnN0YWxsZWQgcGMgZmlsZXMKCSAgR2VuZXJhdGluZyB0aG9zZSBmaWxlcyBpcyB1c2VmdWwgZm9yIHVzZXJzIGJ1aWxkaW5nIHRoZSBHU3RyZWFtZXIgc3RhY2sKCSAgdXNpbmcgbWVzb24gYW5kIGhhdmluZyB0byBsaW5rIGl0IHRvIGFub3RoZXIgcHJvamVjdCB3aGljaCBpcyBzdGlsbAoJICB1c2luZyB0aGUgYXV0b3Rvb2xzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2ODEwCgoyMDE3LTAxLTAzIDEyOjMwOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsYXJpZnkgZG9jcyBmb3IgR1NUX1BBRF9QUk9CRV9EUk9QCgoyMDE3LTAxLTAzIDAyOjEzOjMwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IGdlbmVyYXRlIEdTVF9GTE9XX0VSUk9SIHdpdGhvdXQgbG9nZ2luZwoJICBBdCBsZWFzdCBsb2cgYSBtZXNzYWdlIHRvIHRoZSBkZWJ1ZyBsb2cgd2hlbiBnZW5lcmF0aW5nCgkgIGEgR1NUX0ZMT1dfRVJST1IsIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gZmluZCB3aGVyZSBpdCBjYW1lIGZyb20uCgoyMDE3LTAxLTAzIDAyOjEyOjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogRml4IG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBvbiBpbnZhbGlkIHN0YXRpYyBjYXBzCgkgIEEgdHlwbyBpbiBhIHN0YXRpYyBjYXBzIHN0cmluZyBtYXkgcmVzdWx0IGluIGZhaWx1cmUgdG8KCSAgZGVzZXJpYWxpc2UgaXQsIHNvIGRvbid0IGRlcmVmZXJlbmNlIHRoZSByZXN1bHQgd2l0aG91dAoJICBjaGVja2luZy4KCjIwMTctMDEtMDMgMDI6MTE6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBvbiBpbnZhbGlkIHN0YXRpYyBjYXBzCgkgIEEgdHlwbyBpbiBhIHN0YXRpYyBjYXBzIHN0cmluZyBtYXkgcmVzdWx0IGluIGZhaWx1cmUgdG8KCSAgZGVzZXJpYWxpc2UgaXQsIHNvIGRvbid0IGRlcmVmZXJlbmNlIHRoZSByZXN1bHQgd2l0aG91dAoJICBjaGVja2luZy4KCjIwMTYtMTItMzAgMTk6NDI6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmV3b3JkIGNvbW1lbnQgZm9yIGdzdF9zdHJ1Y3R1cmVfcGFyc2Vfc3RyaW5nKCkKCSAgVGhlIGNvbW1lbnQgd2FzIGEgYml0IGNvbmZ1c2luZy4gVHVybiBpdCBpbnRvIGd0a2RvYyBzdHlsZSBhbmQgcmV3b3JkIGl0LgoKMjAxNi0xMi0yOCAyMTo0NzowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlLWV2YWwgR1NUX0RFQlVHIGVudiB2YXIgZm9yIGxhdGUgY2F0ZWdvcmllcwoJICBXaGVuIHJlZ2lzdGVyaW5nIGEgbmV3IGRlYnVnIGNhdGVnb3J5IGFmdGVyIF9kZWJ1Z19pbml0KCksIHdlIG5lZWQgdG8KCSAgcmUgY2hlY2sgdGhlIEdTVF9ERUJVRyBmaWx0ZXIgc2V0dGluZ3MgYWdhaW4uCgkgIEluIGFkZGl0aW9uIHdoZW4gcGFyc2luZyB0aGUgZmlsdGVyIHNldHRpbmcsIHdlIG5lZWQgdG8gYWxyZWFkeSBidW1wIHVwCgkgIHRoZSBtaW4tZGVidWcgbGV2ZWwgdG8gbm90IHN1cHByZXNzIGRlYnVnIGxvZyBzdGF0bWVudHMgdGhhdCBkeW5hbWljYWxseQoJICByZWdpc3RlciBhIGNhdGVnb3J5LiBUaGlzIGhhcHBlbnMgaW4gbGlicmFyaWVzIHRoYXQgdXNlIGEgZnVuY3Rpb24gdG8KCSAgcmVnaXN0ZXIgYSBjYXRlZ29yeSBvbiBmaXJzdCB1c2UuCgoyMDE2LTEyLTI5IDE3OjA0OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRGVmYXVsdCB0byBweXRob24zCgkgIEl0J3MgMjAxNiwgdW5sZXNzIHlvdSd2ZSBzcGVjaWZpZWQgYSBkaWZmZXJlbnQgdmVyc2lvbiBvZiBweXRob24sCgkgIHdlJ2xsIGRlZmF1bHQgdG8gcHl0aG9uMwoKMjAxNi0xMi0yOCAxMzo0NTo1NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIHVuc2V0IERJU0NPTlQgb24gYnVmZmVycyBpbiByZXZlcnNlIHBsYXliYWNrIGZyYWdtZW50cwoKMjAxNi0xMi0yMSAyMTo1ODo1MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC0xLjAuMToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWxhdW5jaDogQWRkIGEgJy0tdHlwZXMnIG9wdGlvbiB0byBmaWx0ZXIgZWxlbWVudHMgYnkgdHlwZXMgdG8gcHJpbnQKCSAgVGhpcyB3YXkgdGhlIHVzZXIgY2FuIGVhc2lseSBmaWd1cmUgb3V0IHdoYXQgYXJlIHRoZSBhdmFpbGFibGUgYXVkaW8KCSAgZW5jb2RlciBmb3IgZXhhbXBsZSBkb2luZzoKCSAgZ3N0LWluc3BlY3QtMS4wIC0tdHlwZXMgRW5jb2Rlci9BdWRpbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MzkyCgoyMDE2LTEyLTIyIDE4OjQ1OjEwICswMTAwICBOaWNvbGFzIERlY2hlc25lIDxuaWNvbGFzLmRlY2hlc25lQGxpbmFyby5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBzZXQgR1NUX0dMX1hJTklUVEhSRUFEUwoJICBUaGlzIGVuc3VyZSB0aGF0IFhJbml0VGhyZWFkcyBpcyBjYWxsZWQgYW5kIHNvIGdsIGNvbnRleHRzIGFyZSBwcm9wZXJseQoJICBpbml0aWFsaXplZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjQwMQoKMjAxNi0xMi0yMiAxNjoxMzoyMiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIGdzdHByZXNldDogTG93ZXIgc29tZSBkZWJ1ZyBsb2dzIGxldmVsCgkgIEEgcHJvcGVydHkgbm90IGRlZmluZWQgaW4gYSBwcmVzZXQgZmlsZSBjYW4gc2ltcGx5IG1lYW4gdGhhdCB0aGUKCSAgdXNlciB3YW50cyBpdCB0byBiZSBzZXQgYXMgaXQgZGVmYXVsdCB2YWx1ZSwgYW5kIHdlIHNob3VsZCBub3Qgd2FybgoJICBhYm91dCB0aGF0LgoJICBBIG1pc3NpbmcgcHJlc2V0IGZpbGUgaW4gYSBkaXJlY3RvcnkgY2FuIGhhcHBlbiBoYXMgdGhlcmUgYXJlIHNldmVyYWwKCSAgZGlyZWN0b3J5IHdoZXJlIGEgcHJlc2V0IGNhbiBiZSBmb3VuZCBpbi4KCjIwMTYtMTItMjIgMjM6Mzk6MzkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBvcmRlciBvZiBDIHNvdXJjZSBhbmQgaGVhZGVyIGluIG1rZW51bXMKCSAgT3RoZXJ3aXNlIGdzdGVudW1faCBkZXBlbmRlbmNpZXMgZG9uJ3QgZ2V0IGFkZGVkIHByb3Blcmx5IHRvIGdzdF9kZXAgYW5kCgkgIHdlIHNlZSByYWN5IGJ1aWxkIGZhaWx1cmVzIGV2ZXJ5d2hlcmUuCgoyMDE2LTEyLTE3IDE0OjM1OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2J1aWxkX21rZW51bS5weToKCSogZ3N0L2dzdGVudW10eXBlcy5jLnRlbXBsYXRlOgoJKiBnc3QvZ3N0ZW51bXR5cGVzLmgudGVtcGxhdGU6CgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgbWVzb246IHVzZSBnbm9tZS5ta2VudW1zKCkgd2l0aCB0ZW1wbGF0ZSBmaWxlcyBmb3IgZW51bSBmaWxlIGdlbgoJICBTYXZlcyB1cyBhIGN1c3RvbSBzY3JpcHQuIFRlbXBsYXRlIGZpbGVzIGFyZSBuaWNlciB0aGFuIHBhc3NpbmcKCSAgbXVsdGlsaW5lIHRlbXBsYXRpbmcgc3R1ZmYgdGhyb3VnaCB0byBnbGliLW1rZW51bXMuIEFuZCB3ZSBjYW4KCSAgZ2V0IHJpZCBvZiBvdXIgY3VzdG9tIHB5dGhvbiBzY3JpcHQuCgoyMDE2LTEyLTIyIDEyOjA1OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQWRkIGd1YXJkIHRvIGdzdF9lbGVtZW50X3JlbGVhc2VfcGFkKCkgdG8gZW5zdXJlIHRoZSBwYWQgYmVsb25ncyB0byB0aGlzIGVsZW1lbnQKCSAgSXQncyBhIHByb2dyYW1taW5nIGVycm9yIHRvIHBhc3Mgb3RoZXIgcGFkcyBoZXJlLCBhbmQgaXQgZWFzaWx5IGNhdXNlcwoJICBjcmFzaGVzIG9yIG90aGVyIHByb2JsZW1hdGljIGJlaGF2aW91ciBkb3duIHRoZSByb2FkIGFzIHN1YmNsYXNzZXMKCSAgdXN1YWxseSBhc3N1bWUgdG8gb25seSBnZXQgdGhlaXIgcGFkcy4KCjIwMTYtMTItMjEgMjI6MTg6MTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIGdzdHJ1c2FnZTogZXhwbGljaXRseSByZWdpc3RlciB0byBob29rcwoJICBXZSB3ZXJlIGF0dGFjaGluZyB0byBhbnkgcHJvYmUgcG9pbnQgdG8gdGFrZSBydXNhZ2Ugc2FtcGxlcy4gVGhlIG5ldyByZWZjb3VudAoJICBob29rcyBhcmUgY2FsbGVkIHdheSB0b28gZnJlcXVlbnRseSB0aG91Z2ggdG8gbWFrZSB0aGlzIHN0aWxsIGZlYXNpYmxlLgoKMjAxNi0xMi0yMSAyMzo0OToxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBBZGQgc2V2ZXJhbCBtaXNzaW5nIGZlYXR1cmVzIGZyb20gY29uZmlndXJlLmFjCgkgICogLVdsLC1Cc3ltYm9saWMtZnVuY3Rpb25zCgkgICogSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlBfV0lUSE9VVF9USUQKCSAgKiBIQVZFX1BPU0lYX1RJTUVSUwoJICAqIEhBVkVfTU9OT1RPTklDX0NMT0NLCgkgICogSEFWRV9VSU5UMTI4X1QKCSAgKiBIQVZFX0xPTkdfTE9ORwoJICAqIEhBVkVfUFJPQ0VTU19ICgkgICogSEFWRV9HTVAKCSAgKiBIQVZFX0dTTAoJICAqIEhBVkVfRExBRERSCgkgIEFsc28sIGRvbid0IHVzZSBwcmVmaXggZm9yIGNoZWNraW5nIGZ1bmN0aW9ucywgYW5kIG9ubHkgY2hlY2sgbXN2YwoJICBmdW5jdGlvbnMgb24gV2luZG93cy4KCjIwMTYtMTItMjEgMDk6MzM6MzkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBjb25maWd1cmUuYWM6CgkqIG1lc29uLmJ1aWxkOgoJICBidWlsZDogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMKCSAgZmdldHBvcywgZnNldHBvcywgbW1hcCwgcG9zaXhfbWVtYWxpZ24uIE5vbmUgb2YgdGhlc2UgYXJlIHVzZWQgYW55d2hlcmUKCSAgaW4gdGhlIGNvZGViYXNlLgoKMjAxNi0xMi0yMSAwOTowMDoyMiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IERlcml2ZSBkZWZpbmVzIGZyb20gaGVhZGVyL2Z1bmN0aW9uIG5hbWVzCgkgIFRoaXMgaXMgd2hhdCBBdXRvY29uZiBhbHJlYWR5IGRvZXMgZm9yIHVzLCBzbyBqdXN0IGRvIHRoaXMuIEF2b2lkcwoJICBwZW9wbGUgbWFraW5nIHR5cG9zIHdoaWxlIGFkZGluZyBoZWFkZXIgb3IgZnVuY3Rpb24gY2hlY2tzLiBCZWNhdXNlIHdlCgkgIHVzZSBhIGNvbmZpZy5oLm1lc29uLCBzdWNoIHR5cG9zIHdvbid0IGV2ZW4gYmUgbm90aWNlZC4KCSAgQWxzbywgc3RhcnRpbmcgZnJvbSBNZXNvbiAwLjM2LjAsIHRoZSBYQ29kZSA4IHdvcmthcm91bmQgdGhhdCB3ZSB1c2UgZm9yCgkgIGNsb2NrX2dldHRpbWUgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KCjIwMTYtMTItMjEgMTA6MDI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogc2ltcGxpZnkgdGVzdAoJICBXZSBjYW4gY29tcGFyZSBzdHJ1Y3R1cmVzLCB0aGF0IGlzIHdoYXQgdGhlIGNhcHMgZnVjbnRpb24gdGhhdCB3YXMgdXNlZCBiZWZvcmUKCSAgd291bGQgY2FsbCBhbnl3YXkuCgoyMDE2LTEyLTIwIDIxOjA4OjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJICB0cmFjZXJyZWNvcmQ6IGltcHJvdmUgdGhlIHZhbHVlcyBmbGFncyBkb2NzCgoyMDE2LTEyLTIwIDIxOjA3OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgbGF0ZW5jeTogdGhlIGxhdGVuY3kgaXMgbm90IGFuIGFnZ3JlZ2F0ZWQgdmFsdWUKCSAgVGhlIGxvZ2dlZCBsYXRlbmNpZXMgYXJlIGluZGl2aWR1YWwgbWVhc3N1cmVtZW50cy4KCjIwMTYtMTItMDIgMDg6Mjk6MTEgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuaDoKCSAgbGVha3M6IEFsbG93IHVzZXIgdG8gc2V0IHRoZSBmbGFncyB0byB1c2UgdG8gcmV0cmlldmUgc3RhY2sgdHJhY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NDEKCjIwMTYtMTItMDEgMTc6MzU6NDUgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzOiBBbGxvdyB0cmFjaW5nIEdzdChNaW5pKU9iamVjdCByZWZmaW5nIG9wZXJhdGlvbnMKCSAgSXQgbWFrZXMgaXQgbXVjaCBzaW1wbGVyIHRvIGxhdGVyIGRlYnVnIHJlZmNvdW50IGlzc3Vlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0MQoKMjAxNi0xMS0zMCAxNzowNTo1NiAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIGxlYWtzOiBBbGxvdyBwYXNzaW5nIGEgR3N0U3RydWN0dXJlIHRvIGNvbmZpZ3VyZSB0aGUgdHJhY2VyCgkgIEJ1dCBrZWVwIHVuZGVyc3RhbmRpbmcgdGhlIHNpbXBsZSBzeW50aGF4IHdpdGggYSBjb21tYSBzZXBhcmF0ZWQKCSAgbGlzdCBvZiBmaWx0ZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NDEKCjIwMTYtMTItMjEgMDA6NDA6MTAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN3aXRjaCB0byBub3JtYWwgbW9kZSBiZWZvcmUgaGF2ZS10eXBlCgkgIEJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUsIHN3aXRjaCB0byBOT1JNQUwKCSAgbW9kZSwgYXMgcGFydCBvZiB0aGUgaGF2ZS10eXBlIHByb2Nlc3Npbmcgc2VuZHMKCSAgdGhlIGNhcHMgZXZlbnQgZG93bnN0cmVhbSwgd2hpY2ggbWlnaHQgdHJpZ2dlcgoJICBhY3Rpb25zIGxpa2UgZG93bnN0cmVhbSBhdXRvcGx1Z2dpbmcgb3IKCSAgZmx1c2hpbmcgc2Vla3MgLSBhbmQgdGhlIGxhdHRlciBhcmUgb25seQoJICBwYXNzZWQgdXBzdHJlYW0gaWYgd2UndmUgc2V0IHR5cGVmaW5kIHRvIE5PUk1BTAoJICBtb2RlLgoKMjAxNi0xMi0xMyAyMToxMjoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBQcm90ZWN0IGFnYWluc3Qgc3B1cmlvdXMgd2FrZXVwcyBvZiB0aGUgY29uZGl0aW9uIHZhcmlhYmxlCgoyMDE2LTExLTMwIDIxOjE3OjU1ICswMTAwICBGYWJyaWNlIEJlbGxldCA8ZmFicmljZUBiZWxsZXQuaW5mbz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBhIHVzZSBhZnRlciBmcmVlIGNhc2UKCSAgVGhlIGV2ZW50IG1heSBiZSBkaXNwb3NlZCB3aGlsZSBiZWluZyBwdXNoZWQsIHNvIHdlIG1ha2Ugc3VyZSB0aGUKCSAgZGVidWcgaW5mcmFzdHJ1Y3R1cmUgd29uJ3QgdXNlIGl0IGFmdGVyIHRoZSBnc3RfcGFkX3B1c2goKS4KCjIwMTYtMTItMTYgMTg6MzA6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZml4IHR5cG8gaW4gZG9jcwoKMjAxNi0xMi0xNiAyMzo0NTowOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IERvbid0IHNlYXJjaCBmb3IgcHl0aG9uMyB0d2ljZQoKMjAxNi0xMi0xNiAxODoxNDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZXhwb3J0IG5ldyBnbG9iYWwgdmFyaWFibGUKCjIwMTYtMTItMTYgMTM6NTk6NTEgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBdm9pZCBwb3NzaWJsZSBkb3VibGUgZnJlZQoKMjAxNi0xMi0wMiAxMTo1OTo0MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFsbG93IGxpc3RpbmcgdW5pdCB0ZXN0cyBuYW1lcwoJICBBZGRpbmcgb3B0aW9ucyB3aGlsZSBydW5uaW5nIGdzdF9jaGVja19pbml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NDAKCjIwMTYtMTItMTUgMTU6Mzc6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRyYWNlcnMvc3RhdHM6IGxvZyBvcHRpb25hbCBmaWVsZHMgaW5zdGVhZCBvZiBHU1RfQ0xPQ0tfVElNRV9OT05FCgkgIFNpbXBsaWZ5IHRoZSB0cmFjZXMgYW5kIGF2b2lkIHRyYWNlIGFuYWx5emVyIHRvIGtub3cgdGhhdCAoKDE8PDY0KSAtIDEpIG1lYW5zCgkgIHdlIGhhZCBubyB2YWx1ZS4KCjIwMTYtMTItMTYgMTU6MDU6NDYgKzAxMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGRyb3AgYSBsZWZ0b3ZlciBkb2Nib29rIHJlbGF0ZWQgYml0CgoyMDE2LTEyLTA4IDIxOjAxOjUyICsxMTAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgc3RydWN0dXJlIGludGVyc2VjdC91bmlvbi9pc19zdWJzZXQvZml4YXRlIGltcGxlbWVudGF0aW9ucwoJICBBbGxvd3MgcHJvcGVyIHVzYWdlIG9mIHN0cnVjdHVyZXMgaW4gc3RydWN0dXJlcyBpbiBjYXBzLiAgU3VidHJhY3Rpb24KCSAgaXMgbm90IGltcGxlbWVudGVkIGR1ZSB0byBjb21wbGljYXRpb25zIHdpdGggZW1wdHkgZmllbGRzIHJlcHJlc2VudGluZwoJICBhbGwgcG9zc2libGUgdmFsdWVzLgoJICBUaGUgb25seSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXNuJ3QgZGVsZWdhdGUgdG8gdGhlIGFscmVhZHkgZXhpc3RpbmcKCSAgR3N0U3RydWN0dXJlIGZ1bmN0aW9ucyBpcyB0aGUgdW5pb24gZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3OTYKCjIwMTYtMTItMDggMTU6NDE6NDAgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHMvc3RydWN0dXJlOiBhZGQgc29tZSBtb3JlIGlzX3N1YnNldCBjaGVja3MKCSAgRXhwbGljaXRseSB0ZXN0aW5nIGV4dHJhL21pc3NpbmcgZmllbGRzIGFuZCBuYW1lIGRpZmZlcmVuY2VzCgoyMDE2LTEyLTE0IDE4OjE5OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IG1ldGE6IGFkZCB0ZXN0IGZvciBnc3RfYnVmZmVyX2l0ZXJhdGVfbWV0YSooKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzI3CgoyMDE2LTEyLTAzIDEzOjA1OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBnc3RfYnVmZmVyX2l0ZXJhdGVfbWV0YV9maWx0ZXJlZCgpCgkgIEZvciBjb252ZW5pZW5jZS4gUHJldHR5IG11Y2ggZXZlcnkgdXNlciBvZgoJICBnc3RfYnVmZmVyX2l0ZXJhdGVfbWV0YSgpIGZpbHRlcnMgZm9yIGEgc3BlY2lmaWMKCSAgYXBpIHR5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU3MjcKCjIwMTYtMTItMTQgMTU6MjI6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbWFyayBnc3RfYnVmZmVyX2l0ZXJhdGVfbWV0YSgpIGFzICdza2lwJyBmb3IgYmluZGluZ3MKCSAgVGhlIHBvaW50ZXIgc3RhdGUgYXJnIHdvbid0IHdvcmsgd2VsbCwgYmluZGluZ3MgY2FuIHVzZQoJICB0aGUgZm9yZWFjaCBmdW5jdGlvbiBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzI3CgoyMDE2LTEyLTE0IDA2OjU2OjU1ICswMTAwICBJw7Fha2kgR2FyY8OtYSBFdHhlYmFycmlhIDxnYXJldHhlQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnLWk6IEZpeCBhbm5vdGF0aW9ucyBmb3IgZ3N0X2V2ZW50X25ld19zZWxlY3Rfc3RyZWFtcygpIGFuZCBnc3RfZXZlbnRfcGFyc2Vfc2VsZWN0X3N0cmVhbXMoKQoJICBBIGdjaGFyIGlzIG5vdCBhIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTk0NAoKMjAxNi0xMi0xMyAyMzoyNTozOSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IG9ubHkgd2FybiBvbiBwZXJmb3JtYW5jZSBwZW5hbHR5IGlmIG5vdCB1c2luZyB0aGUgdGVtcGxhdGUgY2FwcwoJICBBZnRlciBiNzZlY2ZkOTkyYjBkM2E0MjNjYzlhY2U1NTM5ZWNkMmJhNTA5ZDQxIGludHJvZHVjZWQKCSAgR1NUX1BBRF9GTEFHX0FDQ0VQVF9URU1QTEFURSwgdGhlIHBlcmZvcm1hbmNlIHBlbmFsdHkgdGhpcwoJICBtZXNzYWdlIGlzIHJlZmVyaW5nIHRvICh0aGUgY2FzY2FkaW5nIEFDQ0VQVF9DQVBTIHF1ZXJ5KQoJICBvbmx5IGFwcGxpZXMgdG8gdGhlIGNhc2VzIHdoZXJlICFHU1RfUEFEX0lTX0FDQ0VQVF9URU1QTEFURQoKMjAxNi0xMi0xMyAyMDo1MToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZS9xdWV1ZTI6IFByb3RlY3QgYWdhaW5zdCBzcHVyaW91cyBjb25kaXRpb24gdmFyaWFibGUgd2FrZXVwcwoJICBNYWtlIHN1cmUgdGhhdCB3ZSBvbmx5IHdha2UgdXAgd2hlbiB3ZSBoYXZlIHRvIGZsdXNoLCBvciB3aGVuIHRoaXMKCSAgc3BlY2lmaWMgcXVlcnkgd2FzIGhhbmRsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwMzkKCjIwMTYtMTItMTMgMjA6MDA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlL3F1ZXVlMjogRW5zdXJlIHRoYXQgdGhlIHN0cmVhbWluZyB0aHJlYWQgaXMgdW5sb2NrZWQgYWZ0ZXIgZGVhY3RpdmF0aW5nIHRoZSBzcmNwYWQKCSAgSXQgbWlnaHQgaGFwcGVuIHRoYXQgdGhlIHNyY3BhZCB0YXNrIGZ1bmN0aW9uIGlzIG5ldmVyIGNhbGxlZCBhdCBhbGwsIGluCgkgIHdoaWNoIGNhc2UgdW5sb2NraW5nIGV2ZXJ5dGhpbmcgZnJvbSB0aGVyZSB3aWxsIG5ldmVyIGhhcHBlbi4KCSAgTWFrZSBzdXJlIHRvIHVubG9jayBldmVyeXRoaW5nIGFub3RoZXIgdGltZSBhZnRlciB0aGUgdGFzayBmdW5jdGlvbiBpcwoJICBkZWZpbml0ZWx5IHN0b3BwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwMzkKCjIwMTYtMTItMTIgMjI6MTQ6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBzZXJpYWxpc2F0aW9uIGZvciBHVHlwZXMKCSAgV2UgbmVlZCB0aGlzIGluIHRoZSBHc3RUcmFjZXJSZWNvcmQuIFRoaXMgd2lsbCBzZXJpYWxpemUgR1R5cGVzIHRvIHRoZSB0eXBlbmFtZQoJICBhbmQgdmljZSB2ZXJzYS4KCjIwMTYtMTItMTMgMTM6MjA6MDkgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0OiBGaXggYnVpbGRpbmcgd2l0aCBtc3ZjCgoyMDE2LTEyLTEyIDIwOjU1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgbmV3IGZsYWdzIHR5cGUgaW4gZ3N0X2luaXQoKQoJICBGaXggJ21ha2UgY2hlY2snIHNvbWUgbW9yZS4KCjIwMTYtMTItMTIgMTk6MjU6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTYtMTEtMzAgMTU6MTA6NDggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkgIGluZm86IEFkZCBhICdmbGFncycgcGFyYW1ldHRlciB0byBnc3RfZGVidWdfZ2V0X3N0YWNrX3RyYWNlCgkgIFRoaXMgaXMgYW4gQVBJIGJyZWFrIGJ1dCB0aGF0IEFQSSBoYXMgbm90IGJlZW4gcmVsZWFzZWQgeWV0LgoJICBXZSBhcmUgcGFzc2luZyBhIGZsYWcgcmF0aGVyIHRoYW4gYSBzaW1wbGUgYm9vbGVhbiBhcyB3ZSBjYW4gaW1hZ2luZQoJICB0byBpbXBsZW1lbnQgbW9yZSBmZWF0dXJlcyBpbiB0aGUgZnV0dXJlIGZvciBleGFtcGxlIHRvIHJldHJpZXZlIGEKCSAgc3RhY2sgdHJhY2UgZm9yIGFsbCB0aGUgdGhyZWFkcywgZXRjLi4KCSAgUmV0cmlldmluZyBzb3VyY2UgZmlsZSBhbmQgbGluZSBudW1iZXJzIGlzIHByZXR0eQoJICBleHBlbnNpdmUgd2hpbGUgZ2V0dGluZyBhIHN0YWNrIHRyYWNlLCB0aGlzIG5ldyBhcmd1bWVudAoJICBhbGxvd3MgdGhlIHVzZXIgdG8gZGVjaWRlIHRvIHJldHJpZXZlIGEgYmFja3RyYWNlCgkgIHdpdGhvdXQgdGhvc2UgaW5mb3MgaW5zdGVhZCB3aGljaCBpcyBtdWNoIGZhc3Rlci4KCSAgRm9yIGV4YW1wbGUgcnVubmluZyAkIEdTVF9MRUFLU19UUkFDRVJfU1RBQ0tfVFJBQ0U9MSBHU1RfREVCVUc9R1NUX1RSQUNFUjo3IFwKCSAgR1NUX1RSQUNFUlM9bGVha3MgdGltZSBnc3QtbGF1bmNoLTEuMCB2aWRlb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MSAhIGZha2VzaW5rOgoJICAqIFdpdGggc2ltcGxlIHN0YWNrIHRyYWNlczoKCSAgMC4wNHMgdXNlciAwLjAycyBzeXN0ZW0gOTklIGNwdSAwLjA2MCB0b3RhbAoJICAqIFdpdGggZnVsbCBzdGFjayB0cmFjZXM6CgkgIDAuNjZzIHVzZXIgMC4yM3Mgc3lzdGVtIDk2JSBjcHUgMC45MjYgdG90YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTQyMwoKMjAxNi0xMi0xMiAxNjoxOToxMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBTZXQgR0Vycm9yIGluIGFub3RoZXIgZXJyb3IgY2FzZQoJICBXaGVuIGNoYW5naW5nIHRoZSBsb2NhdGlvbiB3aGlsZSBvcGVuLCBwcm9wZXJseSBzZXQgdGhlIEdFcnJvciByZWdhcmRpbmcKCSAgdGhlIGZhaWx1cmUuCgoyMDE2LTEyLTEwIDE4OjM4OjMyICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggb3ZlcmZsb3cgb24gZ2V0X2J1ZmZlcmluZ19sZXZlbCgpCgkgIGd1aW50NjQgZGVub21pbmF0b3IgZmFjdG9yIGZvciBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KCkgY2FuIGNhdXNlIG92ZXJmbG93CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU5MjEKCjIwMTYtMTItMDkgMTk6Mjg6MjIgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIG1lc29uX29wdGlvbnMudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggYnVpbGQKCjIwMTYtMTItMDkgMTc6NTU6MzkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogU3VwcG9ydCBidWlsZGluZyB3aXRoIEdzdCBkZWJ1ZyBkaXNhYmxlZAoKMjAxNi0xMi0wOSAyMjozOTozNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2Nsb2NrX2dldHRpbWUuYzoKCSAgY2hlY2s6IEZpeCBtYWNybyBjaGVjayBmb3IgT1MgWAoJICBUQVJHRVRfT1NfTUFDIGlzIGRlZmluZWQgb24gYWxsIEFwcGxlIHBsYXRmb3Jtcy4gWW91IG5lZWQgdG8gY2hlY2sgZm9yCgkgICFUQVJHRVRfT1NfSVBIT05FIHRvIGRldGVjdCBPUyBYIChub3cgY2FsbGVkIG1hY09TKS4KCjIwMTYtMTItMDkgMTg6MDI6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogVXNlIGdzdF9xdWVyeV9oYXNfc2NoZWR1bGluZ19tb2RlX3dpdGhfZmxhZ3MoKSBjb252ZW5pZW5jZSBmdW5jdGlvbgoKMjAxNi0xMi0wOSAxODowMTozNSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2Nsb2NrX2dldHRpbWUuYzoKCSAgY2hlY2s6IERvbid0IHRyeSB0byBpbmNsdWRlIENvcmVTZXJ2aWNlcy5oIG9uIGlPUwoJICBPbiBpT1MsIHdlIGhhdmUgTW9iaWxlQ29yZVNlcnZpY2VzLmggYnV0IGl0J3Mgbm90IHJlYWxseSBuZWVkZWQuCgoyMDE2LTEyLTA5IDE3OjU5OjUzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL1JFQURNRS50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9tYWxsb2MuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3JlYWxsb2MuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IERvbid0IGNoZWNrIGZvciBtYWxsb2MvcmVhbGxvYyBhbmQgdHJ5IHRvIGZhbGxiYWNrCgkgIFdoZW4gbWFsbG9jIGlzIG5vdCBhdmFpbGFibGUsIHRoaXMgd2lsbCBzZXQgI2RlZmluZSBtYWxsb2MgcnBsX21hbGxvYwoJICB3aGljaCBpcyBpbXBsZW1lbnRlZCBvbmx5IGluc2lkZSBsaWJjaGVjaywgYW5kIG5vdCBldmVyeXRoaW5nIHdpbGwgbGluawoJICB0byBsaWJjaGVjay4KCSAgV2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8gY2FyZSB0b28gbXVjaCBhYm91dCBob3cgbWFsbG9jIGlzIGltcGxlbWVudGVkCgkgIGFuZCB3ZSBkb24ndCBjYXJlIGFib3V0IHBsYXRmb3JtcyB0aGF0IGRvbid0IGltcGxlbWVudCBtYWxsb2MuCgoyMDE2LTEyLTA5IDE2OjAzOjQxICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9SRUFETUUudHh0OgoJICBBZGQgYSBSRUFETUUudHh0IHdpdGggY29udGV4dCBmb3IgbGliY2hlY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg3MAoKMjAxNi0xMi0wOSAxNToxODoxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlnLmgubWVzb246CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvYWxhcm0uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2Nsb2NrX2dldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2dldGxpbmUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2dldHRpbWVvZmRheS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9saWJjb21wYXQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xvY2FsdGltZV9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9tYWxsb2MuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3JlYWxsb2MuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3N0cmR1cC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvc3Ryc2lnbmFsLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9jcmVhdGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX2RlbGV0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfc2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbWVzb24uYnVpbGQ6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSogbWVzb24uYnVpbGQ6CgkgIGxpYmNoZWNrOiBVcGRhdGUgdGhlIGNvbXBhdGliaWxpdHkgY29kZSBhbmQgY2hlY2tzCgkgIFRoaXMgYnJpbmdzIHVzIHVwLXRvLXNwZWVkIHdpdGggdGhlIGxhdGVzdCBjb21wYXRpYmlsaXR5IGNvZGUgZnJvbSB1cHN0cmVhbQoJICBjaGVjayBnaXQuIEZvciBjb21wbGV0ZW5lc3MsIHdlIGRvIGFsbCB0aGUgY2hlY2tzIHRoYXQgdXBzdHJlYW0gY2hlY2sgZG9lcywgYnV0CgkgIHdlIHNraXAgdGhlIHNucHJpbnRmL3ZzbnByaW50ZiBjb2RlIGJlY2F1c2UgaXQncyBub3Qgc3RyYWlnaHRmb3J3YXJkIChpbnZvbHZlcwoJICBydW5uaW5nIGNvZGUgYW5kIHRoYXQgaXMgYmFkIGZvciBjcm9zcy1jb21waWxhdGlvbikgYW5kIG5vdCBuZWNlc3NhcnkgZm9yIHRoZQoJICBwbGF0Zm9ybXMgd2Ugc3VwcG9ydCBhbnl3YXkuCgkgIElmIHNvbWVvbmUgcmVhbGx5IHdhbnRzIHRoaXMsIHRoZXkgY2FuIHVuY29tbWVudCB0aGlzIGFuZCBjb3B5IHRoZSByZWxldmFudAoJICBjaGVja3MgZnJvbSB0aGUgY2hlY2sgZ2l0IHJlcG9zaXRvcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4NzAKCjIwMTYtMTItMDkgMTU6MTg6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvYWxhcm0uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2Nsb2NrX2dldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L2xpYmNvbXBhdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvbGliY29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC9sb2NhbHRpbWVfci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvc3Ryc2lnbmFsLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC90aW1lcl9jcmVhdGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0L3RpbWVyX2RlbGV0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQvdGltZXJfc2V0dGltZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9tZXNvbi5idWlsZDoKCSAgbGliY2hlY2s6IEp1c3QgbW92ZSBsaWJjb21wYXQgZmlsZXMgdG8gYSBzdWJkaXIKCSAgTWFrZXMgaXQgY2xlYXJlciB3aGljaCBmaWxlcyBhcmUgYWN0dWFsbHkgdXNlZCBpbiBsaWJjaGVjayBhbmQgd2hpY2ggYXJlIHVzZWQKCSAgZm9yIGNyb3NzLXBsYXRmb3JtIGNvbXBhdGliaWxpdHkuIFRoaXMgaXMgZ29pbmcgdG8gYmUgZXNwZWNpYWxseSB1c2VmdWwgd2hlbiB3ZQoJICBhZGQgYWxsIHRoZSBsaWJjb21wYXQgZmFsbGJhY2sgY29kZSB0aGF0IHVwc3RyZWFtIGxpYmNoZWNrIGhhcyB3aGljaCB3aWxsIGFkZAoJICBhYm91dCA2IG5ldyBmaWxlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg3MAoKMjAxNi0xMi0wOSAxNToxODoxMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJICBsaWJjaGVjazogcG9ydCB0byBsYXRlc3QgY2hlY2sgZ2l0CgkgIFVwc3RyZWFtIHNlZW1zIHRvIGhhdmUgc3RvcHBlZCBkb2luZyByZWxlYXNlcywgYnV0IHdlIG5lZWQgdG8gdXBkYXRlIGZvciBiZXR0ZXIKCSAgV2luZG93cyBhbmQgVmlzdWFsIFN0dWRpbyBzdXBwb3J0LgoJICBUaGlzIHBhdGNoIG9ubHkgdXBkYXRlcyB0aGUgbGliY2hlY2sgc291cmNlcyBhbmQgaWdub3JlcyB0aGUgY29tcGF0aWJpbGl0eQoJICBzb3VyY2VzIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU4NzAKCjIwMTYtMTItMDggMjI6MDM6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcnMvbG9nOiBsb2cgbW9yZSBkZXRhaWwKCSAgTG9nIHRoZSBvYmplY3RzIGxpa2Ugd2Ugd291bGQgaW4gR1NUX1RSQUNFX09CSkVDVC4gQWRkIHRoZSBob29rIGZ1bmN0aW9uIGludG8KCSAgdGhlIGZ1Y250aW9uIGZpZWxkLgoKMjAxNi0xMi0wOCAyMjowMjoxNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyL2xvZzogZml4IGhvb2sgcHJvdG90eXBlCgkgIHMvR3N0RWxlbWVudC9Hc3RQYWQvCgoyMDE2LTEyLTA4IDIwOjIwOjE3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICB0cmFjZXI6IG1vdmUgdGhlIFBBRF9MSU5LIHRyYWNlciBob29rIHRvIF9wYWRfbGlua19mdWxsKCkKCSAgVGhpcyBpcyB1bHRpbWF0ZWx5IGV4ZWN1dGluZyB0aGUgcGFkX2xpbmsuIEluIHRoZSBwcmV2aW91cyBwb3NpdGlvbiB3ZSBtaXNzZWQKCSAgc29tZSBsaW5rcywgbm90YWJseSBnaG9zdHBhZHMuCgoyMDE2LTEyLTA3IDIxOjUzOjQ5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgdHJhY2VyL2xhdGVuY3k6IGNsZWFyIHFkYXRhCgkgIFdoZW4gcmVhZGluZyB0aGUgcWRhdGEsIGNsZWFyIGl0IHRvIGF2b2lkIGl0IGJlaW5nIHJlYWQgYW5kIHVucmVmZmVkIGFnYWluLgoJICBGaXhlcyAjNzc0MzMyCgoyMDE2LTEyLTA2IDIyOjMyOjMxICswMTAwICBQZXRlciBTZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZzogRml4IHVuYWxpZ25lZCBhY2Nlc3Mgc3VwcG9ydCBmb3IgYXJjIGFuZCBuaW9zMiBhcmNoaXRlY3R1cmVzCgkgIEZpeGVzIGJ1aWxkcm9vdCBhdXRvYnVpbGQgZmFpbHVyZXMgKFsxXSwgWzJdKS4KCSAgWzFdIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm5ldC9yZXN1bHRzL2ZiZC9mYmRjZDkwNjM1ZDVlYzNhNjJhZDk4YTdmZjkzYjcxYjhlNWVjZGU0CgkgIFsyXSBodHRwOi8vYXV0b2J1aWxkLmJ1aWxkcm9vdC5uZXQvcmVzdWx0cy9mM2MvZjNjOWIwZWQ0ZmZiMTE0MjIxMDU3MjM3Y2UyMmM5OTViNjczYTk4YgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzI4CgoyMDE2LTExLTIyIDE2OjUyOjQ2ICswOTAwICBTZXVuZ2hhIFlhbmcgPHNoLnlhbmdAbGdlLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cmk6IEFkZCBuZXcgdXJpIEFQSSB0byBnZXQgbWVkaWEgZnJhZ21lbnRzIFVSSSBhcyB0YWJsZQoJICBBcyBhbiB1c2VjYXNlIG9mIFVSSSBmcmFnbWVudCwgaXQgY2FuIGluZGljYXRlIHRlbXBvcmFsIG9yIHNwYXRpYWwKCSAgZGltZW5zaW9uIG9mIGEgbWVkaWEgc3RyZWFtLiBUbyBlYXNpbHkgcGFyc2Uga2V5LXZhbHVlIHBhaXIsCgkgIG5ld2x5IGFkZGVkIGdzdF91cmlfZ2V0X21lZGlhX2ZyYWdtZW50X3RhYmxlICgpIEFQSSB3aWxsIHByb3ZpZGUKCSAgdGhlIHRhYmxlIG9mIGtleS12YWx1ZSBwYWlyIGxpa2V3aXNlIFVSSSBxdWVyeS4KCSAgU2VlIGFsc28gaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhLWZyYWdzLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0ODMwCgoyMDE2LTEyLTA2IDE2OjI3OjIzICswMTAwICBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0OgoJICBoZWxwZXJzL2dzdDogR2V0IGJhc2ggY29tcGxldGlvbiBvcHRpb25zIGZyb20gZ3N0LWxhdW5jaAoJICBJdCBpcyBtb3JlIGxpa2VseSB0aGF0IGdzdC1sYXVuY2ggaXMgaW5zdGFsbGVkIHRoYW4gZ2VzLWxhdW5jaAoJICBSZXBvcnRlZC1ieTogTWFyaWFubmEgU21pZHRoIEJ1c2NobGUgPG1zYkBxdGVjLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTcxNAoKMjAxNi0xMi0wNiAxODowNjo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1cGRhdGUgZm9yIHJlbW92ZWQgZG9jcy9kZXNpZ24gZGlyZWN0b3J5CgoyMDE2LTEyLTA1IDE4OjE2OjM0IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZHluYW1pYy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taW5pb2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9ncmVzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZXFudW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGFuZGFyZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXNlbGVjdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkb2NzOiBSZW1vdmUgZGVzaWduIGRvYyBhcyB0aGV5IGhhdmUgYmVlbiBtb3ZlZCB0byBnc3QtZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NjY3CgoyMDE2LTExLTI5IDE3OjM0OjQwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBQcm9wZXJseSBzdGFydCBhbmQgZW5kIGR3Zmwgc2Vzc2lvbnMgd2hlbiBnZXR0aW5nIHN0YWNrIHRyYWNlcwoJICBXZSB3ZXJlIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gdG8gcmV0cml2ZSBlYWNoIGxpbmUgb2YgYSBzdGFjayB0cmFjZQoJICBhbmQgd2UgYXJlIHN1cHBvc2VkIHRvIHN0YXJ0IGl0IG9uY2UgZm9yIGEgd2hvbGUgc3RhY2sgdHJhY2UuCgkgIEFuZCBwYXNzIHRoZSB3aG9sZSBmaWxlIHRvIGdzdC1pbmRlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzUzNjUKCjIwMTYtMTItMDIgMjI6NDc6MzIgKzAxMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXQ6IHNldCBjbG9jayBuYW1lIGluIHRoZSBjb25zdHJ1Y3RvcgoJICBnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcoKSBhbmQgZ3N0X250cF9jbG9ja19uZXcoKSBkaWRuJ3Qgc2V0IHRoZQoJICAibmFtZSIgcHJvcGVydHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1MzgKCjIwMTYtMTItMDUgMjE6MDk6NTIgKzAxMDAgIFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnOiBGaXggdW5hbGlnbmVkIGFjY2VzcyBzdXBwb3J0IGZvciBtaWNyb2JsYXplIGFuZCB4dGVuc2EgYXJjaGl0ZWN0dXJlcwoJICBGaXhlcyBidWlsZHJvb3QgYXV0b2J1aWxkIGZhaWx1cmVzLCBmb3IgZGV0YWlscyBzZWU6CgkgIGh0dHA6Ly9saXN0cy5idXN5Ym94Lm5ldC9waXBlcm1haWwvYnVpbGRyb290LzIwMTYtRGVjZW1iZXIvMTc4ODk1Lmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTY2MQoKMjAxNi0xMi0wMiAxNTozMDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBtZXRhOiByZW1vdmUgdW5uZWNlc3NhcnkgcGFkZGluZyBmb3IgR3N0TWV0YUluZm8gc3RydWN0CgkgIFRoaXMgc3RydWN0dXJlIGlzIGFsd2F5cyBhbGxvY2F0ZWQgYnkgR1N0cmVhbWVyLCBjYW4ndCBiZQoJICBzdWJjbGFzc2VkIG9yIGV4dGVuZGVkLCBhbmQgaXMgbmV2ZXIgYWxsb2NhdGVkIG9yIHVzZWQgb24KCSAgdGhlIHN0YWNrLCBzbyB3ZSBkb24ndCBuZWVkIGFueSBwYWRkaW5nIGFuZCBjYW4gZXh0ZW5kIGl0CgkgIGFzIHdlIHBsZWFzZS4KCjIwMTYtMDYtMjkgMTk6MzY6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc2luaywgaWRlbnRpdHk6IHByaW50IG1ldGFzIGF0dGFjaGVkIHRvIGJ1ZmZlciBpbiBzaWxlbnQ9ZmFsc2UgbW9kZQoKMjAxNi0xMi0wNSAxMTowMTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBIYW5kbGUgR3N0SXRlcmF0b3IgUkVTWU5DIHJldHVybiB2YWx1ZSBjb3JyZWN0bHkgaW4gZ3N0X2l0ZXJhdG9yX2ZvcmVhY2goKQoKMjAxNi0xMi0wNCAxMjoxNTowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2Vycy9sb2c6IGxvZyBtZXNzYWdlcyBpbiBtZXNzYWdlIGNhdGVnb3J5CgoyMDE2LTEyLTAzIDA4OjE5OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogUkVBRE1FOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY5ODBmZDkgdG8gMzlhYzJmNQoKMjAxNi0xMi0wMSAxODoyMDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgdG8gcmVzeW5jIGl0ZXJhdG9ycyBhbmQgaGFuZGxlIFJFU1lOQyBhdCBhbGwgaW4gZ3N0X2l0ZXJhdG9yX2ZvcmVhY2goKSBjYWxscwoKMjAxNi0xMS0yOSAxODoxNDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogRml4IG9mZnNldHRpbmcgb2YgdGltZXNfdGVtcCByZWxhdGl2ZSB0byB0aGUgdGltZXMgYXJyYXkKCjIwMTYtMTEtMjkgMTA6MzQ6MTQgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogU2V0IGRlZmF1bHQgZGVidWcgbGV2ZWwgdG8gRVJST1Igd2hlbiBydW5uaW5nIGZyb20gZ2l0CgoyMDE2LTExLTI4IDE5OjI4OjI3ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIEF1dG90b29scyBjaGFuZ2VzIHRoYXQgd2VyZW4ndCBtaXJyb3JlZAoJICBjb21taXRzOgoJICBhN2QyODJkMjcyNTZhZDFkMWE1NWFmYzM3ZDFkYjdmNjBiMDQwMDg5CgkgIDZmZGI0ZGYwZjhjOGE5ZTM5ZjdmN2NiNzNhYjY1MzA2ZmIwNTE3ZjUKCSAgMWFjZWViZDY3ZjAxNjE4MDZkYzNiNGI2ODQ4OGQ1OTkyOTBmMjgzZQoKMjAxNi0xMS0yOCAxNDoxMToyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBjaGVjay9waXBlbGluZTogTWFrZSBmYWlsdXJlIG1lc3NhZ2UgbW9yZSBpbmZvcm1hdGl2ZQoJICBUaGlzIHdpbGwgcHJvdmlkZSBtYXliZSBhIGJpdCBtb3JlIGluc2lnaHQgdGhlIG5leHQgdGltZSBpdCBmYWlscwoKMjAxNi0xMS0yOCAxNDowMDoxOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgY2hlY2svbWVtb3J5OiBEb24ndCBsZWFrIHRoZSBjdXN0b20gYWxsb2NhdG9yCgoyMDE2LTExLTI4IDEzOjQ4OjE2ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBGaXggYSBwYWQgbGVhawoJICBXaGVuIHJlcXVlc3RpbmcgYSBwYWQgZnJvbSBhIHRlbXBsYXRlIGFuZCBpdCdzIGFscmVhZHkgbGlua2VkLCB0aGlzCgkgIG1lYW5zIGl0IHdhcyBhIHN0YXRpYyBwYWQuIFNpbmNlIHdlIG9ubHkgd2FudCB0byByZXR1cm4gYW4gKmF2YWlsYWJsZSoKCSAgcGFkLCB3ZSBtdXN0IHJldHVybiBOVUxMIC4uLiBidXQgd2UgbXVzdCBhbHNvIHJlbW92ZSB0aGUgcmVmZXJlbmNlCgkgIHdlIGdvdCBmcm9tIGdldHRpbmcgdGhhdCBzdGF0aWMgcGFkLgoJICBUaGUgIk5vIG5lZWQgdG8gdW5yZWYiIG1lc3NhZ2UgKHdoaWNoIHdhc24ndCB0cnVlIGZvciBxdWl0ZSBzb21lIHRpbWUpCgkgIGRhdGVzIGJhY2sgZnJvbSB0aGUgdmVyeSB2ZXJ5IHZlcnkgZmlyc3QgY29tbWl0IGludHJvZHVjaW5nIHRoZSAwLjEwCgkgIGZlYXR1cmVzLgoKMjAxNi0xMS0yOCAwOTo1MDo0MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBjaGVjazogRml4IGxlYWsgaW4gcXVldWUyIHRlc3QKCjIwMTYtMTEtMjMgMTU6NDE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBFeHBvcnQgbGluZWFyIHJlZ3Jlc3Npb24gY2FsY3VsYXRpb24gYXMgcHVibGljIGZ1bmN0aW9uCgkgIEl0IGlzIHVzZWZ1bCBvdXRzaWRlIHRoZSBHc3RDbG9jayBjb2RlIHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDkxNgoKMjAxNi0xMS0yOCAxMTo1NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBSZW1vdmUgZ2VuZXJhdGVkIGdzdHJlYW1lci5zcGVjIGZpbGUKCSAgTGlrZWx5IGV4dHJlbWVseSBiaXRyb3R0ZW4sIGFuZCB3ZSBzaG91bGQgbm90IHNoaXAgdGhpcyBhbnl3YXkuCgoyMDE2LTExLTI4IDExOjA5OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBhZGQgZGF0YXVyaXNyYyB0byBkb2NzIGFuZCB1cGRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyNwoKMjAxNi0xMS0yOCAxMToxMDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IGZpbGVzcmM6IGluaXQgYW5kIGNsZWFyIEdDb25kIGFuZCBtdXRleAoJICBNaWdodCBvdGhlcndpc2UgbGVhayBvbiBub24tTGludXggc3lzdGVtcy4KCjIwMTYtMTEtMjggMTE6MDg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICB0ZXN0czogcmV3cml0ZSBhbmQgZW5hYmxlIGRhdGF1cmlzcmMgdGVzdAoJICBDYW4ndCB1c2UgcGxheWJpbiBmb3IgY29yZSB1bml0IHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTI3CgoyMDE2LTExLTI4IDExOjA3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZWxlbWVudHM6IGFkZCBkYXRhdXJpc3JjIHRvIGJ1aWxkCgkgIE1vdmVkIGZyb20gLWJhZC4KCjIwMTYtMTEtMjggMTA6NDI6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogZml4IHN0cmluZyBsZWFrIGluIHByb3BlcnR5IGdldHRlcgoKMjAxNi0xMS0yOCAxMToxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkgIE1vdmUgZGF0YXVyaXNyYyBlbGVtZW50IGZyb20gLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTI3CgoyMDE2LTExLTI4IDEyOjI4OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRW5zdXJlIHRoYXQgdGhlICJkZWJ1ZyIgZmllbGQgb2YgZXJyb3Ivd2FybmluZy9pbmZvIG1lc3NhZ2VzIGlzIHZhbGlkIFVURi04CgkgIFRoZSBjYWxsZXIgbWlnaHQgcGFzcyBhcmJpdHJhcnkgZGF0YSBoZXJlIHRoYXQgY2F1c2VkIHRoZSBlcnJvciwgYW5kCgkgIHRyeWluZyB0byBzZXQgaW52YWxpZCBVVEYtOCBpbiBhIEdzdFN0cnVjdHVyZSBjYXVzZXMgaXQgdG8gYmUgbm90IHNldCBhdAoJICBhbGwuIExhdGVyIHdoZW4gdHJ5aW5nIHRvIHBhcnNlIGl0LCB0aGUgZmllbGQgd2lsbCBub3QgZXhpc3QgYW5kIHRoZQoJICByZXR1cm4gdmFsdWUgd2lsbCBwb2ludCB0byBpbnZhbGlkIG1lbW9yeS4gUHJldmVudCB0aGlzIGJ5IHN0b3JpbmcgTlVMTAoJICBpbnN0ZWFkLgoJICBBbHNvIHByaW50IGEgZ193YXJuaW5nKCksIHRoZSBjYWxsZXIgc2hvdWxkIG5ldmVyIGV2ZXIgZG8gdGhpcyB0byBiZWdpbgoJICB3aXRoLgoKMjAxNi0xMS0yNiAxMToyMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRtb2R1bGVzOgoJICBjb21tb246IHVzZSBodHRwcyBwcm90b2NvbCBmb3IgY29tbW9uIHN1Ym1vZHVsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1MTEwCgoyMDE2LTExLTI2IDExOjA2OjIwICswMDAwICBIYW5ubyBCb2VjayA8aGFubm9AaGJvZWNrLmRlPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogdXNlIGh0dHBzIHByb3RvY29sIHRvIGNsb25lIHJlcG9zCgkgIFRoZSBnaXQ6Ly8gcHJvdG9jb2wgaXMgcHJvYmxlbWF0aWMgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLCBhcwoJICBpdCBwcm92aWRlcyBubyBhdXRoZW50aWNpdHkgb2YgZGF0YS4gaHR0cHM6Ly8gYWxzbyB3b3JrcyBiZXR0ZXIgaW4KCSAgZW52aXJvbm1lbnRzIHdpdGggcmVzdHJpY3RlZCBuZXR3b3JrIGNvbm5lY3Rpdml0eS4KCSAgQWxzbyBhZGQgQ0xPTkVfT1BUUyB0byBkbyBzaGFsbG93IGNoZWNrb3V0cyBtb3JlIGVhc2lseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTExMAoKMjAxNi0xMS0xNSAwMzowMzoyMiArMDgwMCAgVGluZy1XZWkgTGFuIDxsYW50d0BzcmMuZ25vbWUub3JnPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBTdXBwb3J0IGV4ZWNpbmZvLmggb24gRnJlZUJTRCBieSB1c2luZyAtbGV4ZWNpbmZvCgkgIEZyZWVCU0Qgc3VwcG9ydHMgZXhlY2luZm8uaCBhbmQgYmFja3RyYWNlKiBmdW5jdGlvbnMsIGJ1dAoJICB1c2luZyB0aGVtIHJlcXVpcmVzIGxpbmtpbmcgd2l0aCAtbGV4ZWNpbmZvLgoJICBSZXF1aXJlcyBzdWZmaWNpZW50bHktbmV3IG1lc29uIHdpdGggIzEwNTMgZml4ZWQgKHBvc3QtMC4zNikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ0MjQKCjIwMTYtMTEtMjMgMTg6NTY6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgdG9vbHM6IFJlbW92ZSBmaWxlcyB0byBiZSBjbGVhbmVkCgkgIG1hbnBhZ2VzIGFyZSBubyBsb25nZXIgYXV0by1nZW5lcmF0ZWQKCSAgY292LXJlbGF0ZWQgZmlsZXMgc2hvdWxkIG5vdCBiZSB0aGVyZSAoaWYgbmVlZGVkIHdlIGNvdWxkIHVzZSBnaXRpZ25vcmUpCgoyMDE2LTExLTA0IDE4OjU0OjEwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBEb2N1bWVudCB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiB1bmxvY2soKSBhbmQgd2FpdF9wcmVyb2xsKCkKCSAgVGhpcyB3YXMgdG90YWxseSBub24tb2J2aW91cywgdGhlIGtpbmQgb2YgYmlnIHByb2JsZW0gaXMgdGhhdCBzdWJjbGFzc2VzIG11c3QKCSAgYmUgYWJsZSB0byB1bmJsb2NrIHRoZWlyIHN0cmVhbWluZyB0aHJlYWQgYW5kIGNvbnRpbnVlIGV4YWN0bHkgd2hlcmUgdGhleSBsZWZ0IG9mZgoJICBvbiB1bnBhdXNlIQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTEyCgoyMDE2LTExLTA0IDE4OjQ2OjQ1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZkc2luazogQmxvY2sgaW4gcHJlcm9sbF93YWl0IG9uIHVubG9jawoJICBUaGUgY29ycmVjdCBiZWhhdmlvdXIgb2YgYW55dGhpbmcgc3R1Y2sgaW4gdGhlIC0+cmVuZGVyKCkgZnVuY3Rpb24KCSAgYmV0d2VlbiAtPnVubG9jaygpIGFuZCAtPnVubG9ja19zdG9wKCkgaXMgdG8gY2FsbAoJICBnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCgpIGFuZCBvbmx5IHJldHVybiBhbiBlcnJvciBpZiB0aGlzIHJldHVybnMgYW4KCSAgZXJyb3IsIG90aGVyd2lzZSwgaXQgbXVzdCBjb250aW51ZSB3aGVyZSBpdCBsZWZ0IG9mZiEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxMgoKMjAxNi0xMS0yMyAxODo1NzoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IERvbid0IGluY3JlbWVudCBOVUxMIHBvaW50ZXJzCgkgIFRyaXZpYWwgd29ya2Fyb3VuZCBmb3IgY292ZXJpdHkgZmFsc2Ugd2FybmluZy4KCSAgQ0lEIDEzOTQ0ODgsIDEzOTQ0ODcuCgoyMDE2LTExLTIzIDA5OjU4OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIHRvb2xzOiBmaXggZGlzdGNoZWNrIGFuZCAuZ2l0aWdub3JlCgoyMDE2LTExLTAzIDEwOjMwOjUzICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBtZXNvbjogdG9vbHM6IGluc3RhbGwgdGhlIG1hbiBwYWdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczOTE3CgoyMDE2LTExLTAzIDEwOjMwOjUzICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtaW5zcGVjdC0xLjAuMToKCSogdG9vbHMvZ3N0LWxhdW5jaC0xLjAuMToKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLTEuMC4xOgoJICB0b29sczogc2hpcCB0aGUgZmluYWwgbWFuIHBhZ2VzIGRpcmVjdGx5LCBubyBtb3JlIG1hbiBwYWdlcyB0ZW1wbGF0ZXMKCSAgRG9uJ3QgdXNlIHRlbXBsYXRlcyBmb3IgdGhlIG1hbiBwYWdlcywgdGhlIEFQSSB2ZXJzaW9uIGNoYW5nZSBpcyBhIHJhcmUKCSAgZXZlbnQsIHNvIGl0J3Mgbm90IHJlYWxseSB3b3J0aCBrZWVwaW5nIGluIHBsYWNlIHRoZSAic2VkIiBib2lsZXJwbGF0ZQoJICB0byBoYXZlIGl0IHNldCBhdCBidWlsZCB0aW1lLgoJICBTaGlwcGluZyB0aGUgZmluYWwgbWFuIHBhZ2VzIGRpcmVjdGx5IGFsc28gbWFrZXMgaXQgZWFzZXIgdG8gaW5zdGFsbCB0aGUKCSAgbWFuIHBhZ2VzIHdpdGggbWVzb24gKGluIGEgZnV0dXJlIGNvbW1pdCkuCgkgIE5vdGUgdGhhdCBub3cgYWxsIHRoZSBvY2N1cnJlbmNlcyBvZiB0aGUgcHJvZ3JhbXMgbmFtZXMgaGF2ZSB0aGUgQVBJCgkgIHZlcnNpb24gYXMgYSBzdWZmaXguCgkgIFRyYWRpdGlvbmFsbHkgdGhlIGV4YW1wbGUgY29tbWFuZCBsaW5lcyBsb29rZWQgbGlrZToKCSAgZ3N0LWxhdW5jaCAuLi4KCSAgTm93IHRoZXkgbG9vayBsaWtlOgoJICBnc3QtbGF1bmNoLTEuMCAuLi4KCSAgVGhpcyByZWZsZWN0cyB0aGUgYWN0dWFsIHByb2dyYW1zIG5hbWVzIGFuZCBtYWtlcyBpdCBlYXNpZXIgdG8gY29weSBhbmQKCSAgcGFzdGUgdGhlIGV4YW1wbGUgY29tbWFuZHMuCgkgIEFsc28sIHRoZSAuZ2l0aWdub3JlIGZpbGUgaXMgYWRqdXN0ZWQgbm90IHRvIGlnbm9yZSB0aGUgZmluYWwgbWFuIHBhZ2VzCgkgIGFueW1vcmUuCgkgIFlvdSBtYXkgbmVlZCB0byBjbGVhbiB5b3VyIHNyYy9idWlsZCBkaXJlY3RvcnkgYmVmb3JlIHB1bGxpbmcgaW4gdGhpcwoJICBwYXRjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0xOCAxMzowOToyMSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rwcm94eWNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0cHJveHljb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyczogYWRkIG5ldyBwcm94eSBjb250cm9sIGJpbmRpbmcKCSAgQWxsb3dzIHByb3h5aW5nIHRoZSBjb250cm9sIGludGVyZmFjZSBmcm9tIG9uZSBwcm9wZXJ0eSBvbiBvbmUgR3N0T2JqZWN0CgkgIHRvIGFub3RoZXIgcHJvcGVydHkgKG9mIHRoZSBzYW1lIHR5cGUpIGluIGFub3RoZXIgR3N0T2JqZWN0LgoJICBFLmcuIGluIGEgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcCwgb25lIG1heSBuZWVkIHRvCgkgIGdzdF9vYmplY3Rfc3luY192YWx1ZXMoKSBvbiB0aGUgY2hpbGQgYW5kIGhhdmUgYSBiaW5kaW5nIChzZXQgZWxzZXdoZXJlKQoJICBvbiB0aGUgcGFyZW50IHVwZGF0ZSB0aGUgdmFsdWUuCgkgIE5vdGU6IHRoYXQgdGhpcyBkb2Vzbid0IHNvbHZlIEdPYmplY3QgcHJvcGVydHkgZm9yd2FyZGluZyBhbmQgbXVzdCBiZQoJICB0YWtlbiBjYXJlIG9mIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBtYW51YWxseSBvciB1c2luZyBHQmluZGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDY1NwoKMjAxNi0xMC0wNyAxMTozOToyNiArMDEwMCAgSnVsaWVuIElzb3JjZSA8ai5pc29yY2VAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBsb2cgd2l0aCBHU1RfSU5GTyBpbnN0ZWFkIEdTVF9FUlJPUiB3aGVuIHN1YmNsYXNzIG1hcCBmYWlsZWQuCgkgIEFkZCB1bml0IHRlc3QgdG8gZW5zdXJlIHRoYXQuCgkgIEl0IGNhbiBiZSBhIG5vcm1hbCBleGVjdXRpb24gcGF0aCB0byBkbyBzb21lIG1hcCB0cmlhbHMgYW5kIHRoZXJlIGlzCgkgIG5vIG5lZWQgdG8gd29ycnkgdGhlIHVzZXIgaW4gdGhhdCBjYXNlLgoJICBUaGUgYXBwbGljYXRpb24gaGFzIHRvIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X21lbW9yeV9tYXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2MDAKCjIwMTYtMTEtMTcgMTc6Mzc6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRW5zdXJlIHRvIHNldCB0aGUgUkVDT05GSUdVUkUgZmxhZyBhZ2FpbiBpZiByZWNvbmZpZ3VyYXRpb24gZmFpbGVkCgkgIEl0IG1pZ2h0J3ZlIGZhaWxlZCBqdXN0IGJlY2F1c2Ugb2YgZmx1c2hpbmcgb3Igb3RoZXIgdGhpbmdzLCBhbmQgd2UKCSAgc2hvdWxkIHJldHJ5IGFnYWluIG9uIHRoZSBuZXh0IHBvc3NpYmlsaXR5IGlmIHNvbWV0aGluZyBldmVyIGNhbGxzIGluCgkgIGhlcmUgYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ2MjMKCjIwMTYtMTEtMTcgMTY6Mzk6NTIgLTA4MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBhZGRfZ2xvYmFsX2FyZ3VtZW50cyAtPiBhZGRfcHJvamVjdF9hcmd1bWVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDY1NgoKMjAxNi0xMS0xNiAyMzoxOToyOCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBzdXJlIG5vdC1saW5rZWQgc3RyZWFtcyBnZXQgd29rZW4gdXAKCSAgV2hlbiBydW5uaW5nIGluIHN5bmMtYnktcnVubmluZy10aW1lIG1vZGUsIHBhZCBncm91cHMKCSAgdGhhdCBoYXZlIGV4YWN0bHkgMSBwYWQgYW5kIGl0J3Mgbm90LWxpbmtlZCBtaWdodCBuZXZlcgoJICB3YWtlIHVwIGFmdGVyIGNvbXB1dGluZyBhIGhpZ2ggdGltZSwgYXMgdGhlIHBlci1wYWQtZ3JvdXAKCSAgaGlnaCB0aW1lIHdhcyBvbmx5IHJlY29tcHV0ZWQgd2hlbiBhIHBhZCBpbiB0aGUgZ3JvdXAKCSAgYWR2YW5jZXMuCgkgIFdha2UgdGhvc2UgdXAgdXNpbmcgdGhlIGdsb2JhbCBtdWx0aXF1ZXVlIGhpZ2gtdGltZSBhY3Jvc3MKCSAgYWxsIG90aGVyIGdyb3VwcyBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzIyCgoyMDE2LTExLTE2IDEwOjU1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZG9jczogbWlzYyBmaXhlcwoKMjAxNi0xMS0xNiAxMDo1MTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogdXNlIHRlbXAgdmFyIGluIGZhbGxiYWNrIEdTVF9XUklURV8qKCkgbWFjcm9zCgkgIFRvIG1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgb25seSBleHBhbmRlZC91c2VkIG9uY2UsIGluIGNhc2UKCSAgdGhlcmUgYXJlIHNpZGUgZWZmZWN0cyB0byBpdCwgYW5kIHRvIGF2b2lkIGNhbGN1bGF0aW5nIGl0CgkgIG9yIGxvb2tpbmcgaXQgdXAgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUgaXMgYSBjYWxjdWxhdGlvbgoJICBvciBsb29rdXAgaW52b2x2ZWQuCgoyMDE2LTExLTE2IDAwOjMwOjI2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHByZXZpb3VzIGNvbW1pdAoJICBDaGVjayB0aGUgY29ycmVjdCBzZWdtZW50IGZvcm1hdCB2YWx1ZS4KCSAgcGFyc2UtPnNlZ21lbnQuZm9ybWF0IGlzIHRoZSBmb3JtYXQgd2UncmUgb3V0cHV0dGluZyBpbiwKCSAgbm90IHRoZSB1cHN0cmVhbSBmb3JtYXQuIFVzZSBwYXJzZS0+cHJpdi0+dXBzdHJlYW1fZm9ybWF0IGluc3RlYWQsCgkgIGFuZCBtYWtlIHN1cmUgaXQncyBzZXQgaW4gcHVsbCBtb2RlLgoKMjAxNi0xMS0xNSAyMzo1MTowNiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlc3RyaWN0IHF1ZXJ5L2NvbnZlcnQgcmVzcG9uc2VzIHdoZW4gZGVtdXhpbmcKCSAgSWYgdGhlIHBhcnNlciBpcyBub3QgcGFyc2luZyBhIHJhdyBlbGVtZW50YXJ5IHN0cmVhbSwgcmVzdHJpY3QKCSAgdGhlIHBvc2l0aW9uLCBkdXJhdGlvbiBhbmQgY29udmVyc2lvbiBxdWVyeSByZXBsaWVzIHRvCgkgIHRoaW5ncyB3ZSBjYW4gc2Vuc2libHkgYW5zd2VyIGFib3V0IC0gZXNwZWNpYWxseSBkb24ndCBkbwoJICByYW5kb20gY29udmVyc2lvbnMgdG8vZnJvbSBieXRlcy4KCjIwMTYtMTEtMTUgMjI6Mzk6NDMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHF1ZXVlczogRG9uJ3QgcmV0dXJuIG5lZ2F0aXZlIHBvc2l0aW9uIHF1ZXJpZXMuCgkgIFdoZW4gc3VidHJhY3RpbmcgcXVldWVkIGRhdGEgc2l6ZXMgZnJvbSB1cHN0cmVhbSBxdWVyaWVzCgkgIGluIHF1ZXVlLCBxdWV1ZTIsIGRvd25sb2FkYnVmZmVyIGFuZCB0eXBlZmluZCwgY2xhbXAgdGhlCgkgIHJlc3VsdCB0byBub3QgZ28gbmVnYXRpdmUsIGluIGNhc2UgdXBzdHJlYW0gcmV0dXJuZWQKCSAgYSBub25zZW5zZSB2YWx1ZSB0aGF0J3MgdG9vIHNtYWxsIChhcyBjb3VsZCBoYXBwZW4gaWYKCSAgdXBzdHJlYW0gaXMgZXN0aW1hdGluZywgb3IganVzdCBicm9rZW4pCgoyMDE2LTExLTE0IDExOjI3OjA1IC0wODAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSAgQ2FzdCBhd2F5IGNvbnN0IGZyb20gR3N0TWV0YUluZm8gaW4gKl9nZXRfbWV0YV9pbmZvKCkgZnVuY3Rpb25zCgkgIE1TVkMgd2FybnMgYWJvdXQgdGhlIGNvbnN0IGluIHRoZSBpbXBsaWNpdCBhcmd1bWVudCBjb252ZXJzaW9uIGluIHRoZQoJICBjYWxscyB0byBnX29uY2VfaW5pdF97ZW50ZXIsbGVhdmV9LiBJdCdzIE9LIHNvIGV4cGxpY2l0bHkgY2FzdCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDI5MwoKMjAxNi0xMS0xNCAxMTozMjo1MSAtMDgwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBVcGRhdGUgcHJvdG90eXBlIG9mIGhlbHBlcl9maW5kX3N1Z2dlc3QoKQoJICBmb3J3YXJkIGRlY2xhcmF0aW9uIHByb3RvdHlwZSBpcyB1cGRhdGVkIHRvIG1hdGNoIHRoZSBjaGFuZ2UgaW46CgkgIDVhNzJjMjMgQ2hhbmdlIHNvbWUgdHlwZXMgdG8gbWF0Y2ggdGhlaXIgcHJvdG90eXBlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MjkzCgoyMDE2LTExLTE0IDIxOjI4OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL1JFQURNRS50eHQ6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHJlbW92ZSBjb3BpZXMgb2YgZ2VuZXJhdGVkIGhlYWRlcnMKCjIwMTYtMTEtMTQgMjE6MTg6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJKiBkb2NzL2ltYWdlLWVwczoKCSogZG9jcy9pbWFnZS1wZGY6CgkqIGRvY3MvaW1hZ2UtcG5nOgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSogZG9jcy9zbGlkZXMvUkVBRE1FOgoJKiBkb2NzL3NsaWRlcy9hYnN0cmFjdDoKCSogZG9jcy9zbGlkZXMvYWJzdHJhY3Quc2F2ZToKCSogZG9jcy9zbGlkZXMvb3V0bGluZToKCSogZG9jcy9zbGlkZXMvc2xpZGVzOgoJKiBkb2NzL3VybC5lbnRpdGllczoKCSogZG9jcy94c2wvTWFrZWZpbGUuYW06CgkqIGRvY3MveHNsL2FkbW9uLnhzbDoKCSogZG9jcy94c2wvY3NzLnhzbDoKCSogZG9jcy94c2wvZmlsZWV4dC54c2w6CgkqIGRvY3MveHNsL2ZvLnhzbDoKCSogZG9jcy94c2wvaHRtbC54c2w6CgkqIGRvY3MveHNsL2tleWNvbWJvLnhzbDoKCSogZG9jcy94c2wvdWxpbmsueHNsOgoJICBkb2NzOiByZW1vdmUgbW9yZSBkb2Nib29rIGJ1aWxkIGNydWZ0IHRoYXQncyBubyBsb25nZXIgbmVlZGVkCgoyMDE2LTExLTE0IDIxOjI5OjQzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9SRUFETUU6CgkgIGRvY3MvUkVBRE1FOiByZW1vdmUgbW9yZSBvdXRkYXRlZCBwaWVjZXMgb2YgaW5mby9hZHZpY2UKCjIwMTYtMTAtMjAgMjI6MzI6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBzY3JpcHRzL2dzdC1wbG90LXRyYWNlcy5zaDoKCSAgc2NyaXB0cy9nc3QtcGxvdC10cmFjZXMuc2g6IG1ha2UgbG9nIHBhcnNpbmcgYSBiaXQgbW9yZSBzb2xpZAoJICBVc2UgZ3JlcCAtbyB0byBncmFiIHRoZSBsb2cgbWVzc2FnZSBvbmx5LiBUaGlzIG1ha2VzIGl0IHdvcmsgd2l0aCBjb2xvcmVkIGxvZwoJICBmaWxlcyB0b28uIFByZWZpbHRlciB0aGUgbG9nIHRvIG5vdCBjYXRjaCB0cmFjZXIgY2xhc3Nlcy4KCSAgVXBkYXRlIHRoZSBjb21tYW5kbGluZSBmb3IgdGhlIHNjcmlwdCBpbiB0aGUgZG9jcy4KCjIwMTYtMTAtMjAgMTU6Mzg6NDYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogcmVxdWlyZSBtZXNvbiAwLjM2IGFuZCB1c2UgbmV3IGBwaWNgIGFyZyBvbiBzdGF0aWMgbGlicwoJICBSZW1vdmVzIGEgbWVzb24gd2FybmluZyBhbmQgc29tZSBzcGVjaWFsIGNhc2luZyB3ZSBoYWQuCgoyMDE2LTExLTExIDEwOjMwOjQ0IC0wODAwICBTY290dCBEIFBoaWxsaXBzIDxzY290dC5kLnBoaWxsaXBzQGludGVsLmNvbT4KCgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIENoYW5nZSBzb21lIHR5cGVzIHRvIG1hdGNoIHRoZWlyIHByb3RvdHlwZXMKCSAgUGFydGljdWxhcmx5IG5vdGUgdGhhdCB0aGUgdW5kZXJseWluZyBpbnRlZ2VyIHR5cGUgb2YgdGhlIGVudW0KCSAgR3N0VHlwZUZpbmRQcm9iYWJpbGl0eSBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQgYW5kIG1heSBub3QgbWF0Y2gKCSAgZ3VpbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQyOTMKCjIwMTYtMTEtMTQgMTg6MDQ6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTYtMTEtMTQgMTc6NDY6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9mYXEvLmdpdGlnbm9yZToKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2Jhc2UuY3NzOgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9mYXEvZmFxLnhtbDoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJKiBkb2NzL2ZhcS9sZWdhbC54bWw6CgkqIGRvY3MvZmFxL3N0YXJ0LnhtbDoKCSogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZG9jczogcmVtb3ZlIEZBUSB3aGljaCB3YXMgbW92ZWQgaW50byBnc3QtZG9jcyBtb2R1bGUKCjIwMTUtMDQtMjkgMTI6MzQ6NDkgKzAyMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIEdJT19FWFRSQV9NT0RVTEVTCgkgIEluIGNhc2UgZ2xpYiBpcyBpbnN0YWxsZWQgaW50byBsb2NhbCBwcmVmaXggZGlyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjI2CgoyMDE2LTExLTEyIDEyOjM2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBmYXN0ZXIgR1NUX1dSSVRFXyogbWFjcm9zIGlmIHVuYWxpZ25lZCBhY2Nlc3MgaXMgcG9zc2libGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5OTU0NgoKMjAxNi0xMS0xMSAyMDozMTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIGxpbmtpbmcgdHdvIGVsZW1lbnRzIHdpdGggY2Fwc2ZpbHRlciBmYWlscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTUwCgoyMDE2LTExLTExIDE2OjExOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcHJpbnQoKSwgZ3N0X3ByaW50bG4oKSwgZ3N0X3ByaW50ZXJyKCksIGdzdF9wcmludGVycmxuKCkKCSAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY0NzAKCjIwMTYtMTEtMTEgMTA6MjM6MTcgLTA4MDAgIFNjb3R0IEQgUGhpbGxpcHMgPHNjb3R0LmQucGhpbGxpcHNAaW50ZWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVtb3ZlIGByZXR1cm4gdm9pZGAgaW4gZ3N0X3RhZ19yZWdpc3RlcgoJICBNU1ZDIHdhcm5zIG9uIHRoaXMgYW5kIHRoZSBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSB3YXJuaW5nIHNheXM6CgkgID4gVGhlIGNvbXBpbGVyIGFzc3VtZXMgdGhlIGZ1bmN0aW9uIHJldHVybnMgYSB2YWx1ZSBvZiB0eXBlIGludAoJICB3aGljaCBpcyBhIGxpdHRsZSBzY2FyeSwgc28gbGV0cyBqdXN0IHJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgJ3JldHVybicKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDI5MwoKMjAxNi0wNS0wOSAxNTozMjo0MyArMDIwMCAgTmljb2xhcyBIdWV0IDxuaWNvbGFzLmh1ZXRAcGFycm90LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2FkYXB0ZXJfcHJldl9wdHNfYXRfb2Zmc2V0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTY2MgoKMjAxNi0wNC0yNyAxMDo1NzoyOSArMDIwMCAgTmljb2xhcyBIdWV0IDxuaWNvbGFzLmh1ZXRAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggZGlzdGFuY2Ugd2hlbiBnZXR0aW5nIHByZXYgcHRzL2R0cyBhdCBvZmZzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTY2MgoKMjAxNi0xMC0yNiAyMjozODowNyAtMDcwMCAgU2NvdHQgRCBQaGlsbGlwcyA8c2NvdHQuZC5waGlsbGlwc0BpbnRlbC5jb20+CgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IGRvbid0IGFkZF9nbG9iYWxfYXJndW1lbnRzIHdoZW4gYmVpbmcgYnVpbHQgYXMgYSBzdWJwcm9qZWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NjgKCjIwMTYtMDctMjEgMTA6NTI6MzAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBwb29sIGxlYWsgd2hlbiBlYXJseSByZXR1cm5pbmcgaW4gZGVjaWRlX2FsbG9jYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTAyMwoKMjAxNi0wNy0yNyAxMzozOTo1MCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgR3N0U3RyZWFtIGFuZCBHc3RTdHJlYW1Db2xsZWN0aW9uIHN1cHBvcnQgdG8gZ3N0X2RlYnVnX3ByaW50X29iamVjdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkyMjAKCjIwMTYtMDgtMTIgMDg6MDM6NDEgKzA5MDAgIFNldW5naGEgWWFuZyA8c2gueWFuZ0BsZ2UuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFN1cHBvcnQgUFJPVEVDVElPTiBldmVudCBmcm9tIGFwcGxpY2F0aW9uCgkgIEFwcGxpY2F0aW9uIG1heSB3YW50IHRvIHNlbmQgUFJPVEVDVElPTiBldmVudCB0byB0aGUgc3JjIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njk3NzUKCjIwMTYtMTEtMDMgMTM6MzQ6MTggKzAxMDAgIEFudG9uaW8gT3NwaXRlIDxhbzJAYW8yLml0PgoKCSogdG9vbHMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB0b29sczogZ2VuZXJhdGUgdGhlIHRhcmdldHMgZHluYW1pY2FsbHkKCSAgVGhlIHRocmVlIHRhcmdldHMgYXJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgaW5wdXQgYW5kIG91dHB1dAoJICBmaWxlcywgdXNlIGEgbG9vcCBhbmQgZ2VuZXJhdGUgdGhlbSBkeW5hbWljYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0wMyAxNToyMTowNSArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuMS5pbjoKCSAgdG9vbHM6IGRvbid0IG1lbnRpb24gZ3N0LWZlZWRiYWNrIGluIG1hbiBwYWdlcwoJICBnc3QtZmVlZGJhY2sgbm8gbG9uZ2VyIGV4aXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0wMyAwMDoxODoyMSArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBwdXQgdGhlIGV4YW1wbGVzIGRlc2NyaXB0aW9ucyBiZWZvcmUgdGhlIGNvbW1hbmRzIGluIG1hbiBwYWdlCgkgIFB1dCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGV4YW1wbGUgY29tbWFuZCBsaW5lcyBiZWZvcmUgdGhlIGNvbW1hbmQKCSAgaW5zdGVhZCBvZiBhZnRlciB0aGVtLiBUaGUgbmV3IHdheSBpcyBtb3JlIGludHVpdGl2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0wMiAyMjo1NjowMSArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiBkb24ndCBzdGFydCBsaW5lcyB3aXRoIHNpbmdsZSBxdW90ZXMgaW4gbWFuIHBhZ2UKCSAgV2hlbiBhIGxpbmUgc3RhcnRzIHdpdGggYSBzaW5nbGUgcXVvdGUgaXQncyB0cmVhdGVkIGluIGEgc3BlY2lhbCB3YXkgYnkKCSAgbWFuLCB3aGljaCBtYXkgcmVzdWx0IGluIHBhcmFncmFwaHMgb2YgdGhlIG1hbiBwYWdlIG5vdCByZW5kZXJlZCBieSB0aGUKCSAgbWFuIHBhZ2VyLCBzbyBqdXN0IGF2b2lkIHRoYXQuCgkgIEEgcG9zc2libGUgc29sdXRpb24gY291bGQgaGF2ZSBiZWVuIHRvIGVzY2FwZSB0aGUgc2luZ2UgcXVvdGUgd2l0aAoJICBhIFwoY3Egc2VxdWVuY2UgYnV0IHRoaXMgaXMgcmF0aGVyIHVucmVhZGFibGUsIGluc3RlYWQgdGhlIHRleHQgaGFzIGJlZW4KCSAgcmVmb3JtYXR0ZWQgdG8gaGF2ZSB0aGUgcHJvYmxlbWF0aWMgcXVvdGVkICdwcGMnIHN0cmluZyBvbiB0aGUgcHJldmlvdXMKCSAgbGluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0wMiAyMjozNjoyNyArMDEwMCAgQW50b25pbyBPc3BpdGUgPGFvMkBhbzIuaXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICB0b29sczogZXNjYXBlIGRhc2hlcyBpbiB0aGUgbWFuIHBhZ2VzCgkgIFRoZSBwb3J0YWJsZSB3YXkgdG8gaGF2ZSB0aGUgZGFzaGVzIHRvIGJlIHJlbmRlcmVkIGFzIEFTQ0lJIG1pbnVzZXMgaXMKCSAgdG8gdXNlIHRoZSBzZXF1ZW5jZSBiYWNrc2xhc2gtZGFzaCwgdXNlIHRoaXMgc3R5bGUgYXQgbGVhc3QgZm9yIHRleHQKCSAgdGhhdCBjYW4gYmUgY29waWVkIGFuZCBwYXN0ZWQgKGUuZy4gY29tbWFuZCBuYW1lcywgZmlsZSBuYW1lcywgZWxlbWVudAoJICBvcHRpb25zKS4KCSAgQWxzbyB1c2UgYmFja3NsYXNoLWRhc2ggaW4gdGhlIE5BTUUgc2VjdGlvbiBhcyBzdWdnZXN0ZWQgYnkgbGV4Z3JvZygxKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzkxNwoKMjAxNi0xMS0xMSAwNDo0MjozMCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogRmlyIGRlcGVuZGVuY2llcyBvZiBnc3RuZXQtMS4wCgkgIEl0IGRlcGVuZHMgb24gZ3N0X2Jhc2VfZGVwIHdoaWNoIHdpbGwgcHVsbCBpbiBnc3RfZGVwCgoyMDE2LTExLTExIDA0OjQxOjM5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWRkIEdzdEJhc2UtMS4wLmdpciB0byBnc3RfYmFzZV9kZXAKCSAgV2l0aG91dCB0aGlzLCBHSVIgZ2VuZXJhdG9ycyBjYW4ndCBmaW5kIGFuZCB1c2UgaXQKCjIwMTYtMTEtMTAgMTM6NDI6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogYWRkIHNpbmNlIG1hcmtlciBmb3IgbmV3IEFQSSB0byBkb2NzIGFuZCBmaXggd2luMzIgLmRlZiBmaWxlCgoyMDE2LTExLTEwIDEyOjQ3OjM3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXBhcnNlOiBleHBvc2UgZ3N0X2Jhc2VfcGFyc2VfZHJhaW4KCjIwMTYtMTEtMDkgMTQ6MDc6MjggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY29udHJvbGxlci9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJICBtZXNvbjogQWR2ZXJ0aXNlIGRlcGVuZGVuY3kgb24gZ3N0X2RlcCBnZW5lcmF0aW5nIGdpcnMKCSAgQW5kIGRvIG5vdCBzaW1wbHkgbGluayB0byBsaWJnc3QgYXMgdGhlIGdpciBpbmZvcm1hdGlvbgoJICBsb2NhdGlvbiBvbmx5IGV4aXN0IGluIGRlY2xhcmVfZGVwZW5kZWN5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQwNDQKCjIwMTYtMTEtMDggMTc6MDk6NTMgKzAxMDAgIFZpY3RvciBUb3NvIDxtZUB2aWN0b3J0b3NvLmNvbT4KCgkqIHRlc3RzL21pc2MvbmV0Y2xvY2stcmVwbGF5LmM6CgkgIHRlc3RzOiBGaXggY29tcGlsZSB3YXJuaW5nIG9uIG1pbmd3NjQKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uL2xpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzozNTowLAoJICBmcm9tIG5ldGNsb2NrLXJlcGxheS5jOjI1OgoJICAuLi8uLi9jb25maWcuaDo1NDY6MDogZXJyb3I6ICJfX01TVkNSVF9WRVJTSU9OX18iIHJlZGVmaW5lZCBbLVdlcnJvcl0KCSAgI2RlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gMHgwNjAxCgkgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL3g4Nl82NC13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL2NydGRlZnMuaDoxMDowLAoJICBmcm9tIC91c3IveDg2XzY0LXc2NC1taW5ndzMyL3N5cy1yb290L21pbmd3L2luY2x1ZGUvc3RkaW8uaDo5LAoJICBmcm9tIG5ldGNsb2NrLXJlcGxheS5jOjIxOgoJICAvdXNyL3g4Nl82NC13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL19taW5ndy5oOjIyMDowOiBub3RlOgoJICB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbgoJICAjIGRlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gMHgwNzAwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQxMDgKCjIwMTYtMTEtMDkgMTE6Mzc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IE1ha2Ugc3VyZSB0byBvbmx5IGxvY2sgdGhlIHN0cmVhbSBsb2NrIG9uY2UKCSAgV2UgYWxzbyBvbmx5IHVubG9jayBpdCBvbmNlLCBhbmQgb3RoZXJ3aXNlIGhhdmUgaXQgbG9ja2VkIGZvcmV2ZXIgZnJvbQoJICB0aGlzIHRocmVhZCwgY2F1c2luZyBkZWFkbG9ja3Mgb24gc2h1dGRvd24gbGF0ZXIuCgoyMDE2LTExLTA4IDE2OjU4OjUzICswMTAwICBWaWN0b3IgVG9zbyA8bWVAdmljdG9ydG9zby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb29sOiBGaXggY29tcGlsZXIgd2FybmluZyBvbiBtaW5ndzY0CgkgIGdzdHBvbGwuYzogSW4gZnVuY3Rpb24gJ3JlbGVhc2VfZXZlbnQnOgoJICBnc3Rwb2xsLmM6MjM5OjM6IGVycm9yOiBzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCBhc3NpZ25tZW50IHVzZWQgYXMKCSAgdHJ1dGggdmFsdWUgWy1XZXJyb3I9cGFyZW50aGVzZXNdCgkgIGlmIChzdGF0dXMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0IChzZXQtPndha2V1cF9ldmVudCwgSU5GSU5JVEUpKSB7CgkgIF5+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQxMDgKCjIwMTYtMTEtMDQgMjE6MTU6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgQVBJCgoyMDE2LTExLTA0IDEwOjE5OjE3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogVW5zZXQgdGhlIHBsdWdpbiBwYXRocyB0byBnZW5lcmF0ZSB0aGUgLmdpciBmaWxlcwoJICBBdm9pZGluZyBwcm9ibGVtcyB3aGVuIHVzaW5nIHN1YnByb2plY3Q6CgkgIEZhaWxlZCB0byBsb2FkIHBsdWdpbiAnc29tZXRoaW5nLnNvOiBmaWxlIHRvbyBzaG9ydAoKMjAxNi0xMC0xMCAxNjo0MDoyMSArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1ZzogUmVtb3ZlIHRoZSBHc3Qgb25seSBiYXNlZCBzdGFjayB0cmFjZSBwcmludGluZyBpbXBsZW1lbnRhdGlvbgoJICBXZSBub3cgaGF2ZSAyIG90aGVyIGltcGxlbWVudGF0aW9ucyB0aGF0IHNob3VsZCB3b3JrIGJldHRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MjU1NQoKMjAxNi0xMC0wNyAxMjowMjo0NCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIHRyYWNlcnM6IGxlYWtzOiBVc2UgdGhlIG5ldyBnc3RfZGVidWdfZ2V0X3N0YWNrX3RyYWNlCgkgIEFuZCByZW1vdmUgdGhlIGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNTU1CgoyMDE2LTEwLTA3IDExOjM4OjI3ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogcGx1Z2lucy90cmFjZXJzL21lc29uLmJ1aWxkOgoJICBnc3Q6IFVzZSBsaWJ1bndpbmQvbGliZHcgdG8gZ2VuZXJhdGUgYmFja3RyYWNlcyBpZiBhdmFsYWlibGUKCSAgTWFraW5nIHRoZSBnc3RfZGVidWdfcHJpbnRfdHJhY2UgZnVuY3Rpb24gbW9yZSBnZW5lcmFsbHkgdXNlZnVsLgoJICBBUEk6CgkgICsgZ3N0X2RlYnVnX2dldF90cmFjZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNTU1CgoyMDE2LTExLTAyIDEzOjU3OjUxICswMTAwICBBbnRvbmlvIE9zcGl0ZSA8YW8yQGFvMi5pdD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGZpeCBtaW5vciBtZW1vcnkgbGVhayB3aGVuIGZhaWxpbmcgdG8gcGFyc2Ugb3B0aW9ucwoJICBDb21taXQgMjE1Y2ZjZjk5MzM4IChnc3RyZWFtZXI6IEZpeCBtZW1vcnkgbGVha3Mgd2hlbiBjb250ZXh0IHBhcnNlCgkgIGZhaWxzKSBmaXhlcyBzb21lIG1lbW9yeSBsZWFrLCBidXQgaW4gb25lIG9mIHRoZSBuZXdseSBhZGRlZCBjYWxscyB0bwoJICBnX2NsZWFyX2Vycm9yKCkgdGhlIHdyb25nIHZhcmlhYmxlIHdhcyBwYXNzZWQuCgkgIFdoZW4gZmFpbGluZyB0byBwYXJzZSBjb21tYW5kIGxpbmUgb3B0aW9ucywgZnJlZSB0aGUgImVyciIgdmFyaWFibGUsIG5vdAoJICB0aGUgImVycm9yIiBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM5MDcKCjIwMTYtMTEtMDMgMTU6MjI6MzQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2Ugc3VyZSB3ZSBuZXZlciBkcm9wIHRoZSBwcmVyb2xsIGJ1ZmZlcgoJICBUaGlzIGlzIGNvc21ldGljIGFzICdsYXRlJyBzaG91bGQgbmV2ZXIgYmUgc2V0IGR1cmluZyBwcmVyb2xsIChpbiBwYXVzZSkuCgkgIFRob3VnaCBjb2RlIG1heSBldm9sdmUgaW4gdGhlIGZ1dHVyZSwgc28gdGhpcyBpcyBnb29kIGZvciBwcmV2ZW50aW5nCgkgIHBvdGVudGlhbCBidWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNDY4CgoyMDE2LTEwLTA1IDE0OjI2OjExIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBuZXN0IHByZXBhcmUvcmVuZGVyIGNhbGxzCgkgIFdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBhcnJpdmVzLCB3ZSBlbmR1cCBjYWxsaW5nOgoJICAtPnByZXBhcmUoKQoJICAtPnByZXBhcmUoKQoJICAtPnByZXJvbGwoKQoJICAtPnJlbmRlcigpCgkgIFRoaXMgd2lsbCBsaWtlbHkgY29uZnVzZSBhbnkgZWxlbWVudCB1c2luZyB0aGlzIG1ldGhvZC4gV2l0aCB0aGlzIHBhdGNoLAoJICB3ZSBlbnN1cmUgdGhlIHByZXJvbGwgdGFrZSBwbGFjZSBiZWZvcmUgdGhlIGZpcnN0IHJlbmRlciBwcmVwYXJlKCkgaXMKCSAgY2FsbGVkLiBUaGlzIHdpbGwgcmVzdWx0IGluOgoJICAtPnByZXBhcmUoKQoJICAtPnByZXJvbGwoKQoJICAtPnByZXBhcmUoKQoJICAtPnJlbmRlcigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI0NjgKCjIwMTYtMTEtMDIgMTY6Mjc6NTggKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIFNtYWxsIHR5cG8gaW4gdGhlIGRvY3VtZW50YXRpbiBvZiBnc3RfYmFzZV9zaW5rX3NldF9kcm9wX291dF9vZl9zZWdtZW50KCkuCgkgIEZpeGluZyBpdC4KCjIwMTYtMTEtMDIgMTY6MzU6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IEZpeCBnc3RfYmFzZV9zaW5rX3NldF9kcm9wX291dF9vZl9zZWdtZW50KCkgZG9jdW1lbnRhdGlvbgoJICBBbHNvIHNpbGVuY2VzIGEgR0kgd2FybmluZy4KCjIwMTYtMTEtMDIgMTQ6MTE6NDMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2Nsb2NrX2dldHRpbWUuYzoKCSAgY2xvY2tfZ2V0dGltZS5jOiBVc2UgX19BUFBMRV9fIGluc3RlYWQgb2YgX19NQUNIX18KCSAgSHVyZCBhbHNvIGRlZmluZXMgX19NQUNIX18sIGJ1dCBpdCBkb2VzIG5vdCBoYXZlIG1hY2hfYWJzb2x1dGVfdGltZS4gVXNlCgkgIHRoZSBtb3JlIHN0cmljdCBfX0FQUExFX18gaW5zdGVhZC4KCSAgSGFzIGFsc28gYmVlbiBzZW50IHVwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vbGliY2hlY2svY2hlY2svcHVsbC82NQoKMjAxNi0xMS0wMiAxNDowMTozOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogRml4IEFNX0NPTkRJVElPTkFMIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgkgIEl0IHdhcyBhbHdheXMgZXZhbHVhdGluZyB0byBmYWxzZSwgc28gY2xvY2tfZ2V0dGltZS5jIHdhcyBhbHdheXMgYmVpbmcKCSAgaW5jbHVkZWQgaW50byBsaWJjaGVjay4gVGhpcyBicmVha3MgYnVpbGRpbmcgb24gSHVyZCBhbmQgY2F1c2VzIHVzIHRvCgkgIGFsd2F5cyBvdmVycmlkZSBjbG9ja19nZXR0aW1lKCkgZXZlbiB3aGVuIGl0IGlzIGF2YWlsYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzgxMwoKMjAxNi0xMS0wMiAxMDoxMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgZ3N0OiBBbHNvIGluY2x1ZGUgdGhlIGdzdGR5bmFtaWN0eXBlZmFjdG9yeS5jIHNvdXJjZSBmaWxlIGluIHRoZSBidWlsZAoKMjAxNi0xMS0wMiAxMDowNDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L21lc29uLmJ1aWxkOgoJICBnc3Q6IEluc3RhbGwgZ3N0ZHluYW1pY3R5cGVmYWN0b3J5LmggaGVhZGVyIGZpbGUKCjIwMTYtMTEtMDIgMDk6MzU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogZml4IGRyYWluaW5nIHdpdGggbGVzcyBkYXRhIHRoYW4gbWluIGZyYW1lIHNpemUgYXZhaWxhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJlMjc4YWViNzEyOGU4NzMyZjUzMjRhYjhjOGIyMmE0Nzk1MGM4MGEuCgkgIFNvbWUgcGFyc2Vycywgc3BlY2lmaWNhbGx5IGF1ZGlvIHBhcnNlcnMsIGFzc3VtZSB0byBnZXQgYWxsIHJlbWFpbmluZwoJICBkYXRhIG9uIEVPUyBhbmQganVzdCBwYXNzIHRoZW0gb253YXJkcy4gV2hpbGUgdGhlIGlkZWEgaGVyZSBpcyBjb3JyZWN0LAoJICB3ZSB3aWxsIHByb2JhYmx5IG5lZWQgYSBwcm9wZXJ0eSBmb3IgdGhpcyBvbiBiYXNlcGFyc2UgZm9yIHBhcnNlcnMgdG8KCSAgb3B0LWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNjY2CgoyMDE1LTA2LTI2IDAzOjI5OjI3ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHBhcnNlLWxhdW5jaDogU3VwcG9ydCBsaW5raW5nIGFsbCBwYWRzIHdpdGggbmV3IG9wZXJhdG9yCgkgIEludHJvZHVjZSBhIG5ldyBvcGVyYXRvciAnOicgLSBlLmcuIGVsZW1lbnQxICc6JyBlbGVtZW50MgoJICBGb3IgZXhhbXBsZSwgJ3VyaWRlY29kZWJpbiA6IGVuY29kZWJpbicgLQoJICBpZiB0aGUgZW5jb2RlYmluIGhhcyBtdWx0aXBsZSBwcm9maWxlcyBjb21wYXRpYmxlIHdpdGggdGhlCgkgIGRlY29kZWJpbiwgbXVsdGlwbGUgbGlua3Mgd2lsbCBiZSBjcmVhdGVkLgoJICBXaXRoICchJyAsIGFmdGVyIG9uZSBkZWxheWVkIGxpbmsgaXMgc3VjY2Vzc2Z1bGx5IGRvbmUsIHRoZQoJICBwYWQtYWRkZWQgY2FsbGJhY2sgaXMgZGlzY29ubmVjdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDUwCgoyMDE2LTExLTAyIDExOjMyOjQyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgbmV3IGJhc2VzaW5rIEFQSSB0byBleHBvcnRzIGFuZCBTaW5jZSBtYXJrZXJzCgkgIEFkZCBTaW5jZSBtYXJrZXJzIHRvIHRoZSBuZXcgYmFzZXNpbmsgQVBJIHRvIGRyb3AKCSAgb3V0LW9mLXNlZ21lbnQgYnVmZmVycywgYW5kIGFkZCB0aGVtIHRvIHRoZQoJICB3aW4zMiBleHBvcnRzCgoyMDE1LTA1LTE0IDAwOjI1OjIxICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGR5bmFtaWN0eXBlZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZHluYW1pY3R5cGVmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZHluYW1pYyB0eXBlczogSW1wbGVtZW50IGR5bmFtaWMgdHlwZXMgaW4gdGhlIHJlZ2lzdHJ5CgkgIEltcGxlbWVudCBHc3REeW5hbWljVHlwZUZhY3RvcnkgYXMgYSBuZXcgcmVnaXN0cnkgZmVhdHVyZS4KCSAgR3N0RHluYW1pY1R5cGVGYWN0b3J5IHByb3ZpZGVzIGEgd2F5IG9mIHJlZ2lzdGVyaW5nIGEgR1R5cGUKCSAgaW50byB0aGUgcmVnaXN0cnksIHN1Y2ggdGhhdCBpdCB3aWxsIGJlIHJlZ2lzdGVyZWQgYXMgYSBkeW5hbWljCgkgIHR5cGUgd2hlbiB0aGUgcmVnaXN0cnkgaXMgbG9hZGVkLCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IGxvYWRlZAoJICBpZiB0aGUgdHlwZSBpcyBuZWVkZWQgZHVyaW5nIGNhcHMgcGFyc2luZy4KCSAgVGhpcyBhbGxvd3MgdXNpbmcgbm9uLWNvcmUgdHlwZXMgaW4gcGFkIHRlbXBsYXRlcywgYnkgbG9hZGluZyBhCgkgIHJlZ2lzdHJ5IGZlYXR1cmUgdG8gY3JlYXRlIHRoZSBHVHlwZSBvbiB0aGUgZmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDc5CgoyMDE2LTA0LTI5IDAyOjM4OjQ5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBBZGQgcHJvcGVydHkgdG8gbm90IGRyb3Agb3V0LW9mLXNlZ21lbnQgYnVmZmVycwoJICBJbXBsZW1lbnQgaGFuZGxpbmcgaW4gYmFzZXNpbmsgdG8gbm90IHVuY29uZGl0aW9uYWxseSBkaXNjYXJkCgkgIG91dC1vZi1zZWdtZW50IGJ1ZmZlcnMgYW5kIGV4cG9zZSBpdCBhcyBhIG5ldyBwcm9wZXJ0eSBvbiBmYWtlc2luawoJICAobm90IHVuY29uZGl0aW9uYWxseSBpbiBhbGwgYmFzZXNpbmsgYmFzZWQgc2lua3MpLgoJICBUaGUgcHJvcGVydHkgZGVmYXVsdHMgdG8gRkFMU0UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU3MzQKCjIwMTYtMTEtMDEgMjM6NTQ6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFVwZGF0ZSBHc3RWYWx1ZSB0YWJsZSBzaXplIGZvciBHVmFsdWVBcnJheQoKMjAxNi0wNy0wNyAxOTo0MTo0OSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQWx3YXlzIHB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbmV2ZXIgd2UgZm9yd2FyZCBhIHNlcmlhbGl6ZWQgZXZlbnQKCSAgT3RoZXJ3aXNlIGRvd25zdHJlYW0gd2lsbCBoYXZlIGFuIGluY29uc2lzdGVudCBzZXQgb2Ygc3RpY2t5IGV2ZW50cyBhdCB0aGlzCgkgIHBvaW50LCBlLmcuIHdoZW4gYSBUQUcgZXZlbnQgaXMgcHVzaGVkIGFuZCBkb3duc3RyZWFtIHdhbnRzIHRvIHJlbGF0ZSBpdCB0bwoJICB0aGUgc3RyZWFtIGJ5IGxvb2tpbmcgYXQgdGhlIGN1cnJlbnQgU1RSRUFNX1NUQVJUIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4NTI2CgoyMDE2LTAzLTI5IDEwOjM4OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBTZXQgR1NUX1BBRF9GTEFHX1BST1hZX0NBUFMgYmVmb3JlIGZvcndhcmRpbmcgc3RpY2t5IGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMjEzCgoyMDE2LTEwLTI5IDExOjE3OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggZHJhaW5pbmcgd2l0aCBsZXNzIGRhdGEgdGhhbiBtaW4gZnJhbWUgc2l6ZSBhdmFpbGFibGUKCSAgYmFzZXBhcnNlIHdvdWxkIHBhc3Mgd2hhdGV2ZXIgaXMgbGVmdCBpbiB0aGUgYWRhcHRlciB0byB0aGUKCSAgc3ViY2xhc3Mgd2hlbiBkcmFpbmluZywgZXZlbiBpZiBpdCdzIGxlc3MgdGhhbiB0aGUgbWluaW11bQoJICBmcmFtZSBzaXplIHJlcXVpcmVkLiBUaGlzIGlzIGJvZ3VzLCBiYXNlcGFyc2Ugc2hvdWxkIGp1c3QKCSAgZGlzY2FyZCB0aGF0IGRhdGEgdGhlbi4gVGhlIG9yaWdpbmFsIGludGVudGlvbiBvZiB0aGF0IGNvZGUKCSAgc2VlbXMgdG8gaGF2ZSBiZWVuIHRoYXQgaWYgd2UgaGF2ZSBtb3JlIGRhdGEgYXZhaWxhYmxlIHRoYW4KCSAgdGhlIG1pbmltdW0gcmVxdWlyZWQgd2Ugc2hvdWxkIHBhc3MgYWxsIG9mIHRoZSBkYXRhIGF2YWlsYWJsZQoJICBhbmQgbm90IGp1c3QgdGhlIG1pbmltdW0gcmVxdWlyZWQsIHdoaWNoIGRvZXMgbWFrZSBzZW5zZSwgc28KCSAgd2UnbGwgY29udGludWUgdG8gZG8gdGhhdCBpbiB0aGUgY2FzZSB0aGF0IG1vcmUgZGF0YSBpcyBhdmFpbGFibGUuCgkgIEZpeGVzIGFzc2VydGlvbnMgaW4gcmF3dmlkZW9wYXJzZSBvbiBFT1MgYWZ0ZXIgbm90LW5lZ290aWF0ZWQgd2l0aAoJICBmYWtlc3JjIHNpemV0eXBlPXJhbmRvbSAhIHF1ZXVlICEgcmF3dmlkZW9wYXJzZSBmb3JtYXQ9cmdiICEgYXBwc2luayBjYXBzPXZpZGVvL3gtcmF3LGZvcm1hdD1JNDIwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2NjYKCjIwMTUtMTAtMjkgMjI6NTE6MTggKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUmVwbGFjZSAlcCBhbmQgJXIgaW4gR1NUX0RFQlVHX0ZJTEUKCSAgSXQncyB1c2VmdWwgdG8gYmUgYWJsZSB0byBzZXQgYSBuYW1lIHBhdHRlcm4gZm9yIEdTVF9ERUJVR19GSUxFIHNvIHRoYXQKCSAgdGhlIHNhbWUgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIG11bHRpcGxlIHByb2Nlc3NlcyBhbmQKCSAgc3RpbGwgd3JpdGUgdG8gZGlmZmVyZW50IGZpbGVzLiBFc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGVzZSBwcm9jZXNzZXMKCSAgcnVuIHNpbXVsdGFuZW91c2x5LgoJICAlcDogUmVwbGFjZWQgd2l0aCBQSUQKCSAgJXI6IFJlcGxhY2VkIHdpdGggcmFuZG9tIG51bWJlcgoJICAlcCBpcyBvYnZpb3VzbHkgdXNlZnVsLiAlciBpcyB1c2VmdWwgd2hlbiBmb3IgaW5zdGFuY2UgcnVubmluZyB0d28KCSAgcHJvY2Vzc2VzIHdpdGggc2FtZSBQSUQgYnV0IGluIGRpZmZlcmVudCBjb250YWluZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczMDkyCgoyMDEzLTA1LTAyIDEwOjA5OjI5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuLnNlbG5lc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogc2V0IGVudiBHU1RfUkVHSVNUUllfRElTQUJMRT15ZXMgdG8gZGlzYWJsZSByZWdpc3RyeQoJICBJZiBHU1RfUkVHSVNUUllfRElTQUJMRT15ZXMgdGhlIHJlZ2lzdHJ5IGlzIGRpc2FibGVkIHNpbWlsYXIgdG8KCSAgY29tcGlsZSB0aW1lIHN3aXRjaCBHU1RfRElTQUJMRV9SRUdJU1RSWS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA4OQoKMjAxNS0xMS0xMSAxNjo0Mzo0MCArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IE1ha2UgR1ZhbHVlQXJyYXkgc2VyaWFsaXphYmxlCgkgIEZvciBpbnN0YW5jZSB2ZXJ5IHVzZWZ1bCBmb3IgbG9nZ2luZyBHVmFsdWVBcnJheSB3aXRoIEdTVF9QVFJfRk9STUFUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTgKCjIwMTYtMDQtMjkgMTY6MjY6NDkgKzA5MDAgIFdvbmNodWwgTGVlIDx3b25jaHVsLmxlZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZWxlbWVudDogQWxsb3cgbXVsdGlwbGUgY29udmVyc2lvbiBzcGVjaWZpZXJzIGZvciByZXF1ZXN0IHBhZHMKCSAgVGhpcyBhbGxvd3MgcGFkIHRlbXBsYXRlIG5hbWVzIGxpa2UgInNyY18ldV8ldSIsIGJ1dCBpdCBkb2VzIG5vdCBhbGxvdwoJICBtdWx0aXBsZSBzcGVjaWZpZXJzIG9mIHN0cmluZyB0eXBlICVzIGFzIHRoYXQgd291bGQgbGVhZCB0byBhbWJpZ3VpdGllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIyNQoKMjAxNS0xMS0wNSAxNzoxMzoyNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIG5vLXJlY29uZmlndXJlIGxpbmsgY2hlY2sKCSAgRW5hYmxlIGl0IHRvIHByZXZlbnQgc2VuZGluZyByZWNvbmZpZ3VyZSB3aGVuIGxpbmtpbmcgZWxlbWVudHMuCgkgIFVzZWZ1bCBmb3IgYXV0b3BsdWdnaW5nIHdoZW4gd2Uga25vdyBjYXBzIG9yIGJ1ZmZlcnBvb2xzIHNob3VsZG4ndCBjaGFuZ2UKCSAgdG8gc2F2ZSBkb2luZyBjYXBzIHJlbmVnb3RpYXRpb24gdG8gZW5kIHVwIHdpdGggdGhlIHNhbWUgZmluYWwgc2NlbmFyaW8uCgkgIFRoZSBuby1yZWNvbmZpZ3VyZSBpcyBub3QgYSBwcm9wZXIgY2hlY2ssIGl0IGlzIGEgZmxhZy4gSXQgaXMgaW1wbGVtZW50ZWQKCSAgYXMgYSBHc3RQYWRMaW5rQ2hlY2sgdG8gYXZvaWQgY3JlYXRpbmcgYW5vdGhlciBnc3RfcGFkX2xpbmsgdmFyaWFudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzY1MwoKMjAxNi0xMS0wMSAxODowODoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogdXBkYXRlIHZlcnNpb24KCjIwMTYtMTEtMDEgMTc6MzU6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsLy5naXRpZ25vcmU6CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9SRUFETUU6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY29tcGlsaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNlLmNzczoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGx1Z2lucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LWdob3N0LnBuZzoKCSogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtbm9naG9zdC5wbmc6CgkqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LnBuZzoKCSogZG9jcy9tYW51YWwvY2xvY2tzLnBuZzoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWNsb2Nrcy5zdmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1waXBlbGluZXMuc3ZnOgoJKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC1tdWx0aS5wbmc6CgkqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LnBuZzoKCSogZG9jcy9tYW51YWwvZ3N0cmVhbWVyLW92ZXJ2aWV3LnBuZzoKCSogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDoKCSogZG9jcy9tYW51YWwvaW1hZ2VzLy5naXRpZ25vcmU6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLnBuZzoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkqIGRvY3MvbWFudWFsL291dGxpbmUudHh0OgoJKiBkb2NzL21hbnVhbC9zaW1wbGUtcGxheWVyLnBuZzoKCSogZG9jcy9tYW51YWwvc2luay1lbGVtZW50LnBuZzoKCSogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQucG5nOgoJKiBkb2NzL21hbnVhbC9zdGF0ZS1kaWFncmFtLnN2ZzoKCSogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkqIGRvY3MvbWFudWFsL3RocmVhZC1zeW5jaHJvbml6aW5nLnBuZzoKCSogZG9jcy9tYW51YWwvdGl0bGVwYWdlLnhtbDoKCSogZG9jcy9wd2cvLmdpdGlnbm9yZToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LWxpY2Vuc2luZy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1weXRob24ueG1sOgoJKiBkb2NzL3B3Zy9iYXNlLmNzczoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWV2ZW50Zm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1xdWVyeWZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctc2lnbmFscy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbWFuYWdlci54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLW9uZXRvbi54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNpbmsueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IHJlbW92ZSBhcHAgZGV2IG1hbnVhbCBhbmQgcGx1Z2luIHdyaXRlcidzIGd1aWRlCgkgIFRoZXkgaGF2ZSBtb3ZlZCB0byBnc3QtZG9jcyBhbmQgd2lsbCBiZSBtYWludGFpbmVkIHRoZXJlIGluIGZ1dHVyZS4KCj09PSByZWxlYXNlIDEuMTEuMCA9PT0KCjIwMTYtMTEtMDEgMTg6NTM6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMTAuMCA9PT0KCjIwMTYtMTEtMDEgMTc6NTA6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEwLjAKCjIwMTYtMTEtMDEgMTc6NDA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9uYi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0xMS0wMSAxNzozODo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL25iLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0xMS0wMSAxNzozNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTYtMTAtMjUgMTI6MjE6MDcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IEFkZCBhbiBvcHRpb24gdG8gZXhwbGljaXRseSBkaXNhYmxlIGd0ay1kb2MKCSAgU2ltaWxhciB0byBob3cgQXV0b3Rvb2xzIHByb3ZpZGVzIGFuIG9wdGlvbiwgZGVmYXVsdCBpcyAnZW5hYmxlZCcuCgoyMDE2LTEwLTI0IDExOjQ1OjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIFJldmVydCAiY29sbGVjdHBhZHM6IEFzc3VtZSBQVFMgaXMgZXF1YWwgRFRTIGlmIFBUUyBpcyBtaXNzaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDliMGQ0MmNlZWNiMzE5ODM5OWQ3ZTA1ZTNkNWYwODBhN2NhMjdjYTkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIyMDcKCjIwMTYtMTAtMTggMTE6NTk6MjUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBNYXJrIHJlZ2lzdGVyZWQgYWxsb2NhdG9yIGZvciBsZWFrCgoyMDE2LTA2LTIxIDA4OjAwOjMwIC0wNTAwICBBbmRyZXcgRWlrdW0gPGFlaWt1bUBjb2Rld2VhdmVycy5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3RtZXNzYWdlLmg6IEF2b2lkIGdjYyBiaXQgc2hpZnQgb3ZlcmZsb3cgY29tcGlsZXIgd2FybmluZwoJICBBdm9pZHMgYml0IHNoaWZ0IG92ZXJmbG93IHdhcm5pbmcgd2l0aCBnY2M2LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODgyIChnbGliKQoJICBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD03MTgwMyAoZ2NjKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODgzCgoyMDE2LTEwLTIzIDIyOjExOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBlcnJvbmVvdXMgdXNlIG9mIF8oIiIpCgkgIEZpeGVzIHhnZXR0ZXh0IHdhcm5pbmdzIHdoZW4gZG9pbmcgJ21ha2UgdXBkYXRlLXBvJzoKCSAgZ3N0L3BhcnNlL2dyYW1tYXIueToyMTc6IHdhcm5pbmc6IEVtcHR5IG1zZ2lkLiAgSXQgaXMgcmVzZXJ2ZWQgYnkgR05VIGdldHRleHQ6CgkgIGdldHRleHQoIiIpIHJldHVybnMgdGhlIGhlYWRlciBlbnRyeSB3aXRoCgkgIG1ldGEgaW5mb3JtYXRpb24sIG5vdCB0aGUgZW1wdHkgc3RyaW5nLgoKMjAxNi0xMC0yMiAxNzowNTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBpbmRleCBmb3IgQVBJIG5ldyBpbiAxLjEwCgoyMDE2LTEwLTIyIDE3OjA1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGluZGV4IGZvciBBUEkgbmV3IGluIDEuOAoKMjAxNi0xMC0yMSAxNTo0MDo0NyArMDIwMCAgSmVzcGVyIExhcnNlbiA8a25vcnIuamVzcGVyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBGaXggbWl4LXVwIGJldHdlZW4gRFRTIGFuZCBQVFMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzMxOQoKMjAxNi0xMC0yMSAxNToyMjoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTogRml4IHJhY2Ugd2hlbiBjYWxjdWxhdGluZyBjdXJfbGV2ZWwudGltZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkMDNiZDU0NzgwOWY4NDk0MDVhM2Y3MDY5MjAwOTFkOWIwMzE0N2IwLgoJICBJdCBicmVha3MgdGhlIHVuaXQgdGVzdCwgYWx0aG91Z2ggaXQgZW5zdXJlcyB0aGF0IG9ubHkgY29ycmVjdCB2YWx1ZXMKCSAgYXJlIHVzZWQgZm9yIGNhbGN1bGF0aW9ucy4gTmVlZHMgdG8gYmUgZml4ZWQgdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzMwOTYKCjIwMTYtMTAtMjAgMTc6MTk6MjUgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBSZXZlcnQgIm1lc29uOiBVc2UgdGhlIG5ldyBgcGljYCBhcmd1bWVudCBvbiBzdGF0aWMgbGlicyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhNTc1MjI0MGExNzhjMmM2NTFlZDEwMTY3MDI1ZmFkOGI5YzRlN2JkLgoJICBwaWMgd2FzIGFkZGVkIGFmdGVyIDAuMzUgYW5kIHdpbGwgYmUgcHJlc2VudCBpbiAwLjM2IChtZXNvbgoJICBkb2N1bWVudGF0aW9uIHdhcyB3cm9uZykuCgoyMDE2LTEwLTIwIDE1OjM4OjQ2IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9wcmludGYvbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFVzZSB0aGUgbmV3IGBwaWNgIGFyZ3VtZW50IG9uIHN0YXRpYyBsaWJzCgkgIFdlIGRlcGVuZCBvbiBtZXNvbiAwLjM1IHdoaWNoIG1ha2VzIGl0IHNpbXBsZXIgdG8gaGFuZGxlCgkgIFJlbW92ZXMgYSBtZXNvbiB3YXJuaW5nCgoyMDE2LTA5LTE0IDE0OjIzOjU2ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZpeCByYWNlIHdoZW4gY2FsY3VsYXRpbmcgY3VyX2xldmVsLnRpbWUKCSAgT24gdGhlIGZpcnN0IGJ1ZmZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHNpbmtfc2VnbWVudCBpcyBzZXQgYnV0CgkgIHNyY19zZWdtZW50IGhhcyBub3QgYmVlbiBzZXQgeWV0LiBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3ZSBzaG91bGQgbm90CgkgIGNhbGN1bGF0ZSBjdXJfbGV2ZWwudGltZSBzaW5jZSBzaW5rX3NlZ21lbnQucG9zaXRpb24gbWF5IGJlIGxhcmdlIGFuZAoJICBzcmNfc2VnbWVudC5wb3NpdGlvbiBkZWZhdWx0IGlzIDAsIHdpdGggdGhlIHJlc3VsdGluZyBkaWZmIGJlaW5nIGxhcmdlcgoJICB0aGFuIG1heC1zaXplLXRpbWUsIGNhdXNpbmcgdGhlIHF1ZXVlIHRvIHN0YXJ0IGxlYWtpbmcgKGlmCgkgIGxlYWt5PWRvd25zdHJlYW0pLgoJICBPbmUgcG90ZW50aWFsIGNvbnNlcXVlbmNlIG9mIHRoaXMgaXMgdGhhdCB0aGUgc2VnbWVudCBldmVudCBtYXkgYmUKCSAgc3RvcmVkIG9uIHRoZSBzcmNwYWQgYmVmb3JlIHRoZSBjYXBzIGV2ZW50IGlzIHB1c2hlZCBkb3duc3RyZWFtLCBjYXVzaW5nCgkgIGEgZ193YXJuaW5nICgiU3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nLCBnb3QgJ3NlZ21lbnQnIGJlZm9yZSAnY2FwcyciKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzA5NgoKMjAxNi0wOS0yNyAwMDowMDozMCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdXNlIGdfc3RyY21wMCBpbiBzZXRfY29udGV4dAoJICBJdCdzIE5VTEwtc2FmZSB3aGlsZSB0aGUgbGliYyBpbXBsZW1lbnRhdGlvbiBtYXkgbm90IGJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNzczCgoyMDE2LTA5LTI2IDIzOjU5OjI5ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBjaGVjayBmb3IgaW52YWxpZCBnc3Rjb250ZXh0J3MgYmVpbmcgcHJvdmlkZWQgdG8gc2V0X2NvbnRleHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTc3MwoKMjAxNi0xMC0xOCAwOTozODowNCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBtZXNvbi5idWlsZDoKCSAgYnVpbGQ6IEFwcGx5IFhDb2RlIDggd29ya2Fyb3VuZCBmb3IgaU9TIHRvbwoJICBjbG9ja19nZXR0aW1lIHdhcyBhbHNvIGFkZGVkIGZvciBpT1MgMTAuMCwgc28gZG9uJ3QgdXNlIGl0IGlmIHdlJ3JlCgkgIHRhcmdldHRpbmcgYW4gb2xkZXIgdmVyc2lvbi4gVGhhdCB3b3VsZCd2ZSBjYXVzZWQgdGhlIHN5bWJvbCB0byBub3QgYmUKCSAgZm91bmQgYXQgcnVudGltZSBvbiBvbGRlciBkZXZpY2VzLgoKMjAxNi0xMC0xNSAyMTo0OToyMSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBEb24ndCB1c2UgY19zdGQ9Yzk5CgkgIEp1c3QgdXNlIHRoZSBkZWZhdWx0IGNfc3RkIHVzZWQgYnkgdGhlIGNvbXBpbGVyLiBXaXRoIEdDQyBvbiBMaW51eCB0aGlzCgkgIGlzIGdudTg5LgoJICBUb25zIG9mIGVycm9ycyByZWxhdGVkIHRvIHRpbWUuaCwgc2lnbmFsLmgsIGV0YyB3aGVuIHVzaW5nIGM5OToKCSAgRkFJTEVEOiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubwoJICBjYyAgJy1JbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tAc3RhJyAnLWZkaWFnbm9zdGljcy1jb2xvcj1hbHdheXMnICctSS4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrJyAnLUlsaWJzL2dzdC9jaGVjay9saWJjaGVjaycgJy1JLicgJy1JLi4vLicgJy1JbGlicy9nc3QvY2hlY2svbGliY2hlY2svLi4nICctSS4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrLy4uJyAnLXBpcGUnICctV2FsbCcgJy1XaW52YWxpZC1wY2gnICctc3RkPWM5OScgJy1ESEFWRV9DT05GSUdfSCcgJy1mUElDJyAnLU8yJyAnLWcnICctZlBJQycgJy1NTUQnICctTVEnICdsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubycgJy1NRicgJ2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrQHN0YS9jaGVja19ydW4uYy5vLmQnIC1vICdsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja0BzdGEvY2hlY2tfcnVuLmMubycgLWMgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmMKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOjIxOjA6CgkgIC4uL2xpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOjE2NzoxODogd2FybmluZzog4oCYc3RydWN0IGl0aW1lcnNwZWPigJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24KCSAgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgKm5ld192YWx1ZSwgc3RydWN0IGl0aW1lcnNwZWMgKm9sZF92YWx1ZSk7CgkgIF5+fn5+fn5+fn4KCSAgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6OTg6MjU6IGVycm9yOiBhcnJheSB0eXBlIGhhcyBpbmNvbXBsZXRlIGVsZW1lbnQgdHlwZSDigJhzdHJ1Y3Qgc2lnYWN0aW9u4oCZCgkgIHN0YXRpYyBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZF9hY3Rpb25bM107CgkgIF5+fn5+fn5+fn4KCSAgLi4vbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6OTk6MjU6IGVycm9yOiBhcnJheSB0eXBlIGhhcyBpbmNvbXBsZXRlIGVsZW1lbnQgdHlwZSDigJhzdHJ1Y3Qgc2lnYWN0aW9u4oCZCgkgIHN0YXRpYyBzdHJ1Y3Qgc2lnYWN0aW9uIG5ld19hY3Rpb25bM107CgkgIF5+fn5+fn5+fn4KCSAgWy4uLl0KCSAgbmluamE6IGJ1aWxkIHN0b3BwZWQ6IHN1YmNvbW1hbmQgZmFpbGVkLgoJICBUaGUgY2hhbmdlIHdhcyBvcmlnaW5hbGx5IG1hZGUgYmVjYXVzZSBnbnU5OSB3YXMgY2F1c2luZyBpc3N1ZXMgb24gT1MgWC4KCjIwMTYtMTAtMTQgMTE6NTk6MjQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBGaXggd2FybmluZwoKMjAxNi0xMC0wNCAwOToyMDozNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogdGVzdHMvY2hlY2svbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBNYWtlIHVzZSBvZiBuZXcgZW52aXJvbm1lbnQgb2JqZWN0IGFuZCBzZXQgcGx1Z2luIHBhdGggdG8gYnVpbGRkaXIKCSAgLSBQcm9wZXJseSBzZXQgd2hlcmUgdG8gZmluZCBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgLSBVc2UgR1NUX0xPQURJTkdfV0hJVEVMSVNUIHNvIHRoYXQgb25seSBjb3JlIHBsdWdpbnMgYXJlIHVzZWQKCSAgQnVtcCBtZXNvbiByZXF1aXJlbWVudCB0byAwLjM1CgoyMDE2LTEwLTEzIDE4OjIwOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZzogU3RvcmUgb2JqZWN0IGluIGEgdGhyZWFkLXNhZmUgR1dlYWtSZWYKCSAgZ19vYmplY3Rfd2Vha19yZWYoKSBpcyBub3QgdGhyZWFkLXNhZmUuCgoyMDE2LTEwLTEzIDE4OjAyOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSAgYXJnYmNvbnRyb2xiaW5kaW5nOiBnc3Rfb2JqZWN0X3JlcGxhY2UoKSBpcyB0cmFuc2ZlciBub25lCgoyMDE2LTEwLTEzIDE4OjAxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogQ2xhcmlmeSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYWJzb2x1dGUgYW5kIG5vdCBpcwoKMjAxNi0xMC0xMyAxNzo1NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xzb3VyY2U6IFJlbW92ZSBtaXNsZWFkaW5nIHNlbnRlbmNlIGZyb20gdGhlIGRvY3VtZW50YXRpb24KCSAgY29udHJvbCBzb3VyY2VzIGFyZSBub3QgcmVxdWlyZWQgdG8gcmV0dXJuIHZhbHVlcyBiZXR3ZWVuIDAuMCBhbmQgMS4wLgoJICBUaGlzIGlzIGNvbXBsZXRlbHkgdXAgdG8gdGhlIGNvbnRyb2wgYmluZGluZyB0aGF0IGlzIHVzZWQuCgoyMDE2LTEwLTEzIDE3OjIxOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEZpeCBicm9rZW4gc2VudGVuY2Ugc3RydWN0dXJlIGluIGRvY3MKCjIwMTYtMTAtMTMgMTI6MTg6MTIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGZpeCBzdHJ1Y3R1cmUgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyODUxCgoyMDE2LTEwLTEzIDEyOjAzOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cmVhbXMuaDoKCSAgc3RyZWFtczogRXh0ZW5kIEdzdFN0cmVhbVR5cGUgZG9jdW1lbnRhdGlvbgoJICBVc2VycyBzaG91bGRuJ3QgYXNzdW1lIGl0IHdpbGwgYmUgYSBzaW5nbGUgdmFsdWUgc2luY2UgaXQncyBhIGZsYWcuCgoyMDE2LTEwLTAzIDIwOjIyOjUzICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSogbWVzb24uYnVpbGQ6CgkgIGJ1aWxkOiBGaXggY2xvY2tfZ2V0dGltZSBjaGVjayB3aXRoIFhDb2RlIDgKCSAgV2l0aCBYQ29kZSA4LCBjbG9ja19nZXR0aW1lIHdpbGwgYmUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgYXMgYmVpbmcKCSAgYXZhaWxhYmxlIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBPUyBYIHZlcnNpb24gd2UncmUgdGFyZ2V0dGluZyBiZWNhdXNlIHRoZQoJICBzeW1ib2wgaXMgYXZhaWxhYmxlIGluIHRoZSAudGJkIGxpYnJhcnkgYXMgYSB3ZWFrIHN5bWJvbC4KCSAgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vSG9tZWJyZXcvaG9tZWJyZXctY29yZS9pc3N1ZXMvMzcyNyNpc3N1ZS0xNzAwODYyNzMKCSAgSXQncyBvbmx5IHN0YXJ0aW5nIGZyb20gbWFjT1MgMTAuMTIgdGhhdCBjbG9ja19nZXR0aW1lIGlzIGFjdHVhbGx5CgkgIGF2YWlsYWJsZSwgc28gd2UgY2FuIHVuY29uZGl0aW9uYWxseSBkaXNhYmxlIGl0IHdoZW4gdGFyZ2V0dGluZyBvbGRlcgoJICB2ZXJzaW9ucy4gV2UgY2Fubm90IHNpbXBseSBkbyBBQ19DSEVDS19GVU5DUyB3aXRoIC1XbCwtbm9fd2Vha19pbXBvcnRzCgkgIGJlY2F1c2UgdGhlIGF1dG9jb25mIGNoZWNrIGRvZXMgaXRzIG93biBwcm90b3R5cGUgZGVjbGFyYXRpb24gdGhhdAoJICBkb2Vzbid0IHRyaWdnZXIgdGhhdCBjb21waWxlciBmbGFnLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNDUxCgoyMDE2LTEwLTExIDEyOjEyOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5oOgoJICBiaW46IEFkZCBhIG5ldyBHU1RfQklOX0ZMQUdfU1RSRUFNU19BV0FSRSBmbGFnCgkgIFRoaXMgZmxhZyBpcyB0byBpbmRpY2F0ZSB0byBjaGlsZCBlbGVtZW50cyB0aGF0IHRoZXkgY2FuIGFkZCBhbmQKCSAgcmVtb3ZlIHBhZHMgYXQgYW55IHBvaW50IGluIHRpbWUgd2l0aG91dCByZS1hZGRpbmcgZXhpc3Rpbmcgb25lcy4KCSAgRWxlbWVudHMgc2hvdWxkIHBvc3QgYmVmb3JlLWhhbmQgYSBHU1RfTUVTU0FHRV9TVFJFQU1fQ09MTEVDVElPTgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNzQxCgoyMDE2LTEwLTEwIDEwOjU5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IHBhdGhzIGluIGVudiB2YXJzIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyBvbiB3aW5kb3dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI0MzEKCjIwMTYtMTAtMDcgMTc6MDI6NDcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jczogZml4IEdTVF9MRUFLU19UUkFDRVJfU0lHIGRvYwoJICBUaGUgZG9jdW1lbnRhdGlvbiB3YXNuJ3QgbWVudGlvbmluZyB0aGUgU0lHVVNSMiBzaWduYWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzI1NzEKCjIwMTYtMTAtMDggMTc6MjM6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRml4IGl0ZXJhdG9yIHJlc3luYydpbmcKCSAgV2hlbiB3ZSBnZXQgR1NUX0lURVJBVE9SX1JFU1lOQywgd2UgbmVlZCB0byBjYWxsIGdzdF9pdGVyYXRvcl9yZXN5bmMoKQoJICBvdGhlcndpc2Ugd2Ugd2lsbCBhbHdheXMgZ2V0IEdTVF9JVEVSQVRPUl9SRVNZTkMgKGFuZCB0aGF0IGxvb3Agd291bGQKCSAgcnVuIGZvcmV2ZXIpLgoKMjAxNi0xMC0wOCAxMzo1NDo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogSW1wbGVtZW50IGdzdF9ldmVudF9mdWxsX2Z1bmMgaGFuZGxpbmcKCSAgU2FtZSBhcyB3ZSBkbyBmb3IgcXVldWUKCjIwMTYtMTAtMDggMTM6MjA6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlci9ydXNhZ2U6IGZpeCBmb3JtYXQgc3RyaW5nIGFyZ3MKCSAgVGhlIGZvcm1hdCBzdHJpbmcgY29udGFpbnMgYSBwcm9jZXNzIGlkLCBidXQgd2UgZGlkIG5vdCBwcm92aWNlIG9uZS4gVGhpcwoJICBjYXVzZWQgdXMgdG8gbG9nIGdhcmJhZ2Ugc2luY2UgYWxsIGFyZ3MgZ290IHNoaWZ0ZWQuCgoyMDE2LTEwLTAxIDE2OjQ3OjA1ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRml4IHR5cG8gaW4gZ3N0X21lc3NhZ2VfbmV3X3Byb2dyZXNzKCkgZG9jcwoJICB0ZXN0IC0+IHRleHQKCjIwMTYtMDktMzAgMDk6NTc6NTcgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogaG9va3MvcHJlLWNvbW1pdC5ob29rOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IFNldHVwIHByZS1jb21taXQgaG9va3Mgd2hlbiBjb25maWd1cmluZwoKMjAxNi0wOS0zMCAxMTozODozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogdXBkYXRlIHZlcnNpb24KCj09PSByZWxlYXNlIDEuOS45MCA9PT0KCjIwMTYtMDktMzAgMTM6MDE6MTcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjkwCgoyMDE2LTA5LTMwIDEyOjA4OjUyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNi0wOS0zMCAxMTo0MToxNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RlLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wOS0yNyAxODowMDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIG1lc29uLmJ1aWxkOgoJKiBwbHVnaW5zL3RyYWNlcnMvbWVzb24uYnVpbGQ6CgkgIG1lc29uOiB0cmFjZXJzOiBzaWduYWwgYXZhaWxhYmlsaXR5IG9mIGxpYnVud2luZCBhbmQgYmFja3RyYWNlKCkgdG8gY29kZQoJICBOb3Qgc2V0dGluZyBjZGF0YSBoZXJlIG9uIHB1cnBvc2UgYmVjYXVzZSBvZiAuLiBjb21wbGljYXRpb25zLgoKMjAxNi0wOS0yNiAxODoyMToxOSAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBvc2cuc2Ftc3VuZy5jb20+CgoJKiBjb25maWcuaC5tZXNvbjoKCSogbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvbWVzb24uYnVpbGQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEJ1aWxkIHRyYWNlcnMKCjIwMTYtMDktMjMgMjA6NDA6MzkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvbWVzb24uYnVpbGQ6CgkqIGRvY3MvbGlicy9tZXNvbi5idWlsZDoKCSogZG9jcy9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZpeCBndGtkb2MgdXNpbmcgbmV3IG1lc29uIGZlYXR1cmVzCgoyMDE2LTA5LTI2IDEyOjE0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIHZhbGdyaW5kIHN0dWZmCgkgIENvZGUgd2FzIGFsc28gY2hlY2tpbmcgdGhlIHdyb25nIGRlZmluZSBhbnl3YXkuCgoyMDE2LTA5LTI2IDEyOjEyOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IHBhcnNlLWxhdW5jaDogbG9va3MgY2xlYW4gbm93YWRheXMsIHNvIHJlLWVuYWJsZSBmb3IgdmFsZ3JpbmQKCSAgQWxzbywgdGhlIHZhbGdyaW5kIGJpdHMgd2VyZW4ndCBob29rZWQgdXAgcHJvcGVybHkgYW55d2F5LAoJICBjaGVja2luZyB0aGUgd3JvbmcgZGVmaW5lLgoKMjAxNi0wOS0yNCAxODoyMjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZy5oLm1lc29uOgoJKiBtZXNvbi5idWlsZDoKCSAgbWVzb246IHJlbW92ZSBpbmNvcnJlY3QgYW5kIHVubmVlZGVkIGNoZWNrIGZvciBwdHJkaWZmX3QKCSAgTmVlZCB0byBpbmNsdWRlIHN0ZGRlZi5oIGZvciBpdCwgc28gdGhpcyB3b3VsZCd2ZSB3b3JrZWQ6CgkgIGlmIGNjLmhhc190eXBlKCdwdHJkaWZmX3QnLCBwcmVmaXg6ICcjaW5jbHVkZSA8c3RkZGVmLmg+JykKCjIwMTYtMDktMjQgMTg6MDY6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL21lc29uLmJ1aWxkOgoJICBtZXNvbjogZml4IGludGVybmFsIHByaW50ZiBmb3IgJWxsIGZvcm1hdCBtb2RpZmllciBvbiAzMi1iaXQgc3lzdGVtcwoJICBnc3QvZ3N0cHJpbnRmIHVuaXQgdGVzdCB3b3VsZCBmYWlsIG9uIDMyLWJpdCB4ODYgd2l0aDoKCSAgZ3N0cHJpbnRmLmM6ODM6cHJpbnRmX0kzMl9JNjQ6MDogJ3N0cicgKDY0LWJpdCB4IHZhbHVlID0gYjVhNjk3OGYpIGlzIG5vdCBlcXVhbCB0byAnIjY0LWJpdCB4IHZhbHVlID0gZjFlMmQzYzRiNWE2OTc4ZiInCgoyMDE2LTA5LTIzIDA0OjE5OjQ3ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkgIFJldmVydCAibWVzb246IEZvcmNlIGdzdGVudW1faCB0byBiZSBidWlsdCB3aGVuIHVzaW5nIGdzdF9kZXAiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgY2ZjNTY1ZTJkODhhOGU3ZDY1NmI2OGM1YzJhMWI3YWNiMDhjZGI3Zi4KCSAgVGhlIGNvbW1pdCB3YXMgcmVkdW5kYW50IHNpbmNlIGdzdF9nZW5fc291cmNlcyBhbHJlYWR5IGNvbnRhaW5zCgkgIGdzdGVudW1faC4gV2UncmUgc3RpbGwgaW52ZXN0aWdhdGluZyB3aHkgc29tZSBwZW9wbGUgYXJlIHN0aWxsIHNlZWluZwoJICBhIHJhY3kgYnVpbGQgZmFpbHVyZS4KCjIwMTYtMDktMjMgMDA6Mjg6NTMgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9tZXNvbi5idWlsZDoKCSAgbWVzb246IEZvcmNlIGdzdGVudW1faCB0byBiZSBidWlsdCB3aGVuIHVzaW5nIGdzdF9kZXAKCSAgVGhpcyBmb3JjZXMgZ3N0ZW51bXR5cGVzLmggdG8gYmUgYnVpbHQgd2hlbmV2ZXIgc29tZXRoaW5nIHVzZXMgZ3N0X2RlcAoJICBhcyBhIHN1YnByb2plY3QgZGVwZW5kZW5jeS4gVGhpcyBpcyBuZWVkZWQgc2luY2UgZ3N0L2dzdC5oIGluY2x1ZGVzCgkgIGdzdGVudW10eXBlcy5oCgkgIENsb3NlcyBodHRwczovL2dpdGh1Yi5jb20vbWVzb25idWlsZC9tZXNvbi9pc3N1ZXMvNzE0IHdoaWNoIGlzIG5vdAoJICBhY3R1YWxseSBhIE1lc29uIGJ1Zy4KCjIwMTYtMDktMTkgMTA6MDc6NTEgLTA0MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWRkIGZvcmdvdHRlbiAiZ2l0IGNvbW1pdCAtLWFtZW5kIiBmb3IgbGFzdCBjb21taXQKCSAgTmVlZCB0byBjYXN0IGF3YXkgdGhlIGNvbnN0IGFzIGdfcXVldWVfZm9yZWFjaCgpIHRha2VzIGEgbm9uLWNvbnN0IEdRdWV1ZSoKCjIwMTYtMDktMTkgMTA6MDQ6NTUgLTA0MDAgIEtvdWhlaSBTdXRvdSA8a291QGNsZWFyLWNvZGUuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFdoZW4gY29weWluZyB0aGUgc29ydCBpdGVyYXRvciwgYWxzbyBjb3B5IGl0cyBpbnRlcm5hbCBxdWV1ZQoJICBPdGhlcndpc2UgYm90aCBpdGVyYXRvcnMgc2hhcmUgdGhlIHNhbWUgcmVmZXJlbmNlcywgdGhlIHNlY29uZCBvbmUKCSAgdXN1YWxseSByZXN1bHRpbmcgaW4gYSBjcmFzaCB3aGVuIGJlaW5nIGZyZWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNjQ5CgoyMDE2LTA5LTExIDE1OjI4OjQzICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggd2F0ZXJtYXJrIHRlc3QKCSAgVGhpcyBjYXJyaWVzIG92ZXIgY29kZSBmb3IgYSBzaW1pbGFyIHRlc3QgZnJvbSBtdWx0aXF1ZXVlIHRvIGVuc3VyZSBmdWxsCgkgIGNvbnRyb2wgb3ZlciB0aGUgZGF0YWZsb3cgd2hpbGUgdGVzdGluZy4gKFRoZSBwcmV2aW91cyBhdHRlbXB0IHdhcyByYWN5CgkgIHNpbmNlIHRoZSBmaWxsIGxldmVsIGNoYW5nZWQgd2l0aG91dCBhbnkgdGhyZWFkIHN5bmMgd2l0aCB0aGUgdGVzdCBjb2RlLikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTIxMAoKMjAxNi0wOS0xMSAxNToyNjoyNiArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVcGRhdGUgYnVmZmVyaW5nIGlmIGl0cyBlbmFibGVkIGFuZCBsb3cvaGlnaCB3YXRlcm1hcmtzIGFyZSBjaGFuZ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEyMTAKCjIwMTYtMDktMTUgMTc6Mzg6NDkgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24oKQoJICBTZWVtcyBsaWtlIHRoZXJlIHdhcyBzb21lIGRvY3VtZW50YXRpb24gbGVmdCBvdmVyIGZyb20gd2hlbiB0aGlzIHdhcwoJICBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24oKS4KCjIwMTYtMDktMTIgMTc6NDE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZW1vdmUgdW51c2VkIGZpZWxkcyBhbmQgYWx3YXlzIHVzZSB0aGUgYnVmZmVyIHRpbWVzdGFtcCBkaWZmZXJlbmNlIGZvciBjYWxjdWxhdGluZyB0aGUgUW9TIHByb3BvcnRpb24KCSAgVGhlIGJ1ZmZlciB0aW1lc3RhbXBzIGFyZSBvbmx5IGhpbnRzIGFuZCBtb3JlIG9mdGVuIHRoYW4gbm90IGhhdmUKCSAgbm90aGluZyB0byBkbyB3aXRoIHJlYWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzEzMDYKCjIwMTYtMDktMDggMTI6NTg6NTQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBtZXNvbi5idWlsZDoKCSAgZ3N0Y29uZmlnOiBVc2UgX19kZWNsc3BlYyB3aGVuIGJ1aWx0IHdpdGggTWluR1cgYW5kIGxpbmtpbmcgd2l0aCBNU1ZDCgkgIEVhcmxpZXIgd2Ugd2VyZSBvbmx5IHVzaW5nIF9fZGVjbHNwZWMoZGxsZXhwb3J0L2ltcG9ydCkgd2hlbiB3ZSB3ZXJlCgkgIGJ1aWx0IHdpdGggTVNWQyBiZWNhdXNlIHdoZW4gYnVpbHQgd2l0aCBNaW5HVyBhbmQgbGlua2luZyB3aXRoIE1pbkdXIHdlCgkgIGRvbid0IG5lZWQgaXQgKGFuZCB3ZSBnZXQgbGlua2VyIGVycm9ycyBiZWNhdXNlIG9mIGl0KS4KCSAgSG93ZXZlciwgd2hlbiB3ZSdyZSBidWlsdCB3aXRoIE1pbkdXIGFuZCBzb21lb25lIHdhbnRzIHRvIGxpbmsgdG8gdXMKCSAgd2l0aCBNU1ZDLCB3ZSBzdGlsbCBuZWVkIHRoZSBwcm90b3R5cGVzIHRvIGhhdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpCgkgIHNpbmNlIE1TVkMgY2Fubm90IGRvIGF1dG8taW1wb3J0IGxpa2UgR0NDIGNhbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTAyOQoKMjAxNi0wOS0xMiAxNzowNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHNvIGRvbid0ICp1bnNldCogZWxlbWVudCBmbGFncyBpZiB0aGV5J3JlIGluIHRoZSBzdXBwcmVzc2VkIGZsYWdzCgkgIE90aGVyd2lzZSBvdXIgYmluIG1pZ2h0IGxvc2UgdmFyaW91cyBmbGFncyB0aGF0IHdlcmUgZXhwbGljaXRseSBzZXQgb24KCSAgaXQgYXQgYXJiaXRyYXJ5IHRpbWVzLgoKMjAxNi0wOS0xMCAxMTo1OToxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBnc3RiaW46IGFkZCB0ZXN0cyBmb3Igc3VwcHJlc3NlZCBmbGFncwoJICBTb21lIHNpbXBsZSB0ZXN0cyB0byBtYWtlIHN1cmUgaXQga2VlcHMgd29ya2luZwoKMjAxNi0wOS0wMiAxNzozOToxNyArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogQWRkIHNldHRlciBhbmQgZ2V0dGVyIHRvIHN1cHByZXNzIGVsZW1lbnQgZmxhZ3MKCSAgU3VwcHJlc3MtZmxhZ3MgaXMgZm9yIHByZXZlbnRpbmcgcHJvcGFnYXRpb24gb2YgY2hpbGQgZWxlbWVudCdzIHNwZWNpZmljCgkgIGZsYWcgd2hlbiBpdCBpcyBhZGRlZCB0byB0aGUgYmluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI3CgoyMDE2LTA5LTEwIDIwOjUwOjQ4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjE4ZDgyMCB0byBmOTgwZmQ5CgoyMDE1LTExLTEzIDE2OjAwOjAyICswMDAwICBHcmFoYW0gTGVnZ2V0dCA8bWluZnJpbkBzaGFycC5mbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBFbnN1cmUgZ3N0X3ZhbHVlIGlzIGluaXRpYWxpc2VkIGJlZm9yZSBnc3RfdGFnCgkgIE90aGVyd2lzZSBHU1RfVFlQRV9GUkFDVElPTiB3aWxsIHdvcmsgY29ycmVjdGx5IGluIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM5MjIKCjIwMTYtMDktMDkgMTE6NDY6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogUmVzZXQgdGhlIHN0b3AgcG9zaXRpb24gdG8gTk9ORSBpbiBzZWVrX3NpbXBsZSgpCgkgIFdoZW4gdXNpbmcgc2Vla19zaW1wbGUoKSBpbiBjb21iaW5hdGlvbiB3aXRoIG90aGVyIGtpbmRzIG9mIHNlZWtzLCB0aGlzCgkgIGJlY29tZXMgcHJvYmxlbWF0aWMuIHNlZWtfc2ltcGxlKCkgZG9lcyBub3QgcmVzZXQgdGhlIHN0b3AgcG9zaXRpb24gdG8KCSAgR1NUX0NMT0NLX1RJTUVfTk9ORSBidXQga2VlcHMgd2hhdGV2ZXIgYSBwcmV2aW91cyBzZWVrIGRpZC4gU28gZm9yIGV4YW1wbGUKCSAgd2hlbiBkb2luZyBhIHNlZWtfc2ltcGxlKCkgYWZ0ZXIgYSByYXRlPS0xIHNlZWssIHdlIHdvdWxkIHVzdWFsbHkgZ2V0CgkgIGFzc2VydGlvbnMgdGhhdCBzdGFydD5zdG9wIChhbmQgc3RvcCBiZWluZyB0aGUgb2xkIHN0b3AgZnJvbSB0aGUgcmF0ZT0xIHNlZWspLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxMTA0CgoyMDE2LTA5LTEwIDA5OjUzOjQyICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjQ5YzU1ZSB0byBiMThkODIwCgoyMDE2LTA5LTA5IDA5OjM2OjQwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjp0ZXN0czogQnVtcCB0aW1lb3V0IHRvIDMgbWludXRlcwoJICBCYXNpY2FsbHkgd2UgYWxyZWFkeSBoYXZlIGVhY2ggdGVzdCB3aXRoIGEgMjBzZWMgdGltZW91dCwKCSAgYW5kIHRlc3RzdWl0ZSBjYW4gbGFzdCBtb3JlIHRoYW4gdGhlIGRlZmF1bHQgMzBzZWNzIGZyb20KCSAgbWVzb24uIDMgbWludXRlcyBpcyBhbm90aGVyIGFyYml0cmFyeSB0aW1lb3V0IGJ1dCBzaG91bGQKCSAgYmUgZ29vZCBlbm91Z2guCgoyMDE2LTA5LTA4IDE1OjE5OjM4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXNlIHRoZSBhdmVyYWdlIGR1cmF0aW9ucyBiYXNlZCBvbiB0aW1lc3RhbXBzIGZvciB0aGUgUW9TIHByb3BvcnRpb24gd2hlbiBkb2luZyB0cmlja21vZGVzCgkgIFRoZSBkdXJhdGlvbnMgb2YgdGhlIGJ1ZmZlcnMgYXJlICh1c3VhbGx5KSBhc3N1bWluZyB0aGF0IG5vIGZyYW1lcyBhcmUgYmVpbmcKCSAgZHJvcHBlZCBhbmQgYXJlIGp1c3QgdGhlIGR1cmF0aW9ucyBjb21pbmcgZnJvbSB0aGUgc3RyZWFtLiBIb3dldmVyIGlmIHdlIGRvCgkgIHRyaWNrbW9kZXMsIGZyYW1lcyBhcmUgYmVpbmcgZHJvcHBlZCByZWd1bGFybHkgZXNwZWNpYWxseSBpZiBvbmx5IGtleSB1bml0cwoJICBhcmUgc3VwcG9zZWQgdG8gYmUgcGxheWVkLgoJICBGaXhlcyBjb21wbGV0ZWx5IGJvZ3VzIFFvUyBwcm9wb3J0aW9uIHZhbHVlcyBpbiB0aGUgYWJvdmUgY2FzZS4KCjIwMTYtMDktMDUgMTg6MDc6NDkgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAb3NnLnNhbXN1bmcuY29tPgoKCSogbWVzb24uYnVpbGQ6CgkgIG1lc29uOiBGaXggYnVpbGRpbmcgd2l0aCBtZXNvbiAwLjM0CgoyMDE2LTA4LTI2IDIwOjA2OjU5IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJKiBtZXNvbl9vcHRpb25zLnR4dDoKCSAgbWVzb246IEFsbG93IG90aGVycyB0byBidWlsZCBHSVIgZmlsZXMgd2hlbiB1c2luZyBHU3RyZWFtZXIgYXMgc3VicHJvamVjdAoJICBBbmQgYWRkIGEgd2F5IHRvIGRpc2FibGUgdGhlIGludHJvc3BlY3Rpb24gYW5kIGJ1bXAgdmVyc2lvbiB0byAxLjkuMgoKMjAxNi0wOS0wNSAxMToxMToyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmguaW46IEFkZCBhbm90aGVyIHZlcnNpb24gb2YgdGhlIFNINCAjZGVmaW5lIGFuZCBTMzkweAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNzMxCgoyMDE2LTA5LTA1IDA5OjUwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgY29uZmlnOiBuZXdlciBnY2MgZG9lc24ndCBrbm93IF9fcHBjX18gYW5kIF9fcHBjNjRfXyBhbnltb3JlCgkgIF9fcHBjX18gYW5kIF9fcHBjNjRfXyBhcmUgbm9uLXN0YW5kYXJkIGRlZmluZXMsIHdlIHNob3VsZCB1c2UKCSAgX19wb3dlcnBjX18gYW5kIF9fcG93ZXJwYzY0X18gaW5zdGVhZCBiZWNhdXNlIG5ld2VyIGdjYyBkb2Vzbid0IGtub3cKCSAgdGhlbSBhbnltb3JlLgoKMjAxNi0wOS0wNCAyMDozOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBnc3QtaW5zcGVjdDogYWRkICogZm9yIHBvaW50ZXIgc2lnbmFsIGFyZ3VtZW50cyB3aGVyZSBuZWVkZWQKCSAgUHJpbnQgR09iamVjdCBhcmd1bWVudCBwcm9wZXJseSB3aXRoIHBvaW50ZXIgbWFya2VyOgoJICAiY2xpZW50LWFkZGVkIiA6ICB2b2lkIHVzZXJfZnVuY3Rpb24gKEdzdEVsZW1lbnQqIG9iamVjdCwKCSAgR09iamVjdCogYXJnMCwKCSAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKCSAgaW5zdGVhZCBvZgoJICAiY2xpZW50LWFkZGVkIiA6ICB2b2lkIHVzZXJfZnVuY3Rpb24gKEdzdEVsZW1lbnQqIG9iamVjdCwKCSAgR09iamVjdCBhcmcwLAoJICBncG9pbnRlciB1c2VyX2RhdGEpOwoJICBmb3IgZ3N0LWluc3BlY3QtMS4wIHRjcHNlcnZlcnNpbmsuCgoyMDE2LTA5LTAyIDIzOjIyOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkb24ndCBidWlsZCBtaXNjIHN1YmRpciBpZiBib3RoIGV4YW1wbGVzIGFuZCBiZW5jaG1hcmtzIGhhdmUgYmVlbiBkaXNhYmxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNzQwCgoyMDE2LTA5LTAxIDE0OjEzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgY29uZmlnOiBzdXBwb3J0IFN5c3RlbSB6CgoyMDE2LTA5LTAxIDEyOjI1OjIzICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjkuMiA9PT0KCjIwMTYtMDktMDEgMTI6MjQ6NDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjIKCjIwMTYtMDktMDEgMTE6MjI6NDUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wOC0zMSAwOTo0OTowMyArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIGhpZ2hlci1yZXNvbHV0aW9uIGxvdy9oaWdoLXdhdGVybWFyayBwcm9wZXJ0aWVzCgkgIGxvdy9oaWdoLXdhdGVybWFyayBhcmUgb2YgdHlwZSBkb3VibGUsIGFuZCBnaXZlbiBpbiByYW5nZSAwLjAtMS4wLiBUaGlzCgkgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNldCBsb3cvaGlnaCB3YXRlcm1hcmtzIHdpdGggZ3JlYXRlciByZXNvbHV0aW9uLAoJICB3aGljaCBpcyB1c2VmdWwgd2l0aCBsYXJnZSBtdWx0aXF1ZXVlIG1heCBzaXplcyBhbmQgd2F0ZXJtYXJrcyBsaWtlIDAuNSUuCgkgIEFsc28gYWRkaW5nIGEgdGVzdCB0byBjaGVjayB0aGUgZmlsbCBhbmQgd2F0ZXJtYXJrIGxldmVsIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNjI4CgoyMDE2LTA4LTMxIDA5OjQ4OjUzICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IERpc3Rpbmd1aXNoIGJldHdlZW4gYnVmZmVyaW5nIHBlcmNlbnRhZ2UgYW5kIGJ1ZmZlcmluZyBsZXZlbAoJICBUbyBtYWtlIHRoZSBjb2RlIGNsZWFyZXIsIGFuZCB0byBmYWNpbGl0YXRlIGZ1dHVyZSBpbXByb3ZlbWVudHMsIGludHJvZHVjZQoJICBhIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGJ1ZmZlcmluZyBsZXZlbCBhbmQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50YWdlLgoJICBCdWZmZXJpbmcgbGV2ZWw6IHRoZSBxdWV1ZSdzIGN1cnJlbnQgZmlsbCBsZXZlbC4gVGhlIGxvdy9oaWdoIHdhdGVybWFya3MKCSAgYXJlIGluIHRoaXMgcmFuZ2UuCgkgIEJ1ZmZlcmluZyBwZXJjZW50YWdlOiBwZXJjZW50YWdlIHJlbGF0aXZlIHRvIHRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgICgwJSA9IGxvdyB3YXRlcm1hcmssIDEwMCUgPSBoaWdoIHdhdGVybWFyaykuCgkgIFRvIHRoYXQgZW5kLCBnZXRfcGVyY2VudGFnZSgpIGlzIHJlbmFtZWQgdG8gZ2V0X2J1ZmZlcmluZ19sZXZlbCgpLiBBbHNvLAoJICBsb3cvaGlnaF9wZXJjZW50IGFyZSByZW5hbWVkIHRvIGxvdy9oaWdoX3dhdGVybWFyayB0byBhdm9pZCBjb25mdXNpb24uCgkgIG1xLT5idWZmZXJpbmdfcGVyY2VudCB2YWx1ZXMgYXJlIG5vdyBub3JtYWxpemVkIGluIHRoZSAwLi4xMDAgcmFuZ2UgZm9yCgkgIGJ1ZmZlcmluZyBtZXNzYWdlcyBpbnNpZGUgdXBkYXRlX2J1ZmZlcmluZygpLCBhbmQgbm90IGp1c3QgYmVmb3JlIHNlbmRpbmcKCSAgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlLiBGaW5hbGx5IHRoZSBidWZmZXJpbmcgbGV2ZWwgcmFuZ2UgaXMgcGFyYW1ldGVyaXplZAoJICBieSBhZGRpbmcgYSBuZXcgY29uc3RhbnQgY2FsbGVkIE1BWF9CVUZGRVJJTkdfTEVWRUwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjgKCjIwMTYtMDgtMzEgMDk6NDg6MzggKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogUmVuYW1lIHBlcmNlbnQvcGVyY2VudF9jaGFuZ2VkIHRvIGJ1ZmZlcmluZ19wZXJjZW50KF9jaGFuZ2VkKQoJICBUaGlzIGlzIGEgcHJlcmVxdWlzaXRlIGZvciBzdWJzZXF1ZW50IGNvbW1pdHMsIGFuZCBtYWtlcyBxdWV1ZTIgYW5kCgkgIG11bHRpcXVldWUgY29kZSBhIGxpdHRsZSBtb3JlIGNvbnNpc3RlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA2MjgKCjIwMTYtMDgtMjMgMTQ6NTc6MzMgKzA5MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhpZ2hfdGltZSB3YWtldXAgbG9naWMKCSAgV2hlbiBjYWxjdWxhdGluZyB0aGUgaGlnaF90aW1lLCBjYWNoZSB0aGUgZ3JvdXAgdmFsdWUgaW4gZWFjaCBzaW5nbGVxdWV1ZS4KCSAgVGhpcyBmaXhlcyB0aGUgaXNzdWUgYnkgd2hpY2ggd2FrZV91cF9uZXh0X25vbl9saW5rZWQoKSB3b3VsZCB1c2UgdGhlIGdsb2JhbAoJICBoaWdoLXRpbWUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gd2FrZS11cCBhIHdhaXRpbmcgdGhyZWFkLCBpbnN0ZWFkIG9mIHRoZSBncm91cAoJICBvbmUsIHJlc3VsdGluZyBpbiB0aG9zZSB0aHJlYWRzIGNvbnN0YW50bHkgc3Bpbm5pbmcuCgkgIFRpZHkgdXAgYSBiaXQgdGhlIHdhaXRpbmcgbG9naWMgd2hpbGUgd2UncmUgYXQgaXQuCgkgIFdpdGggdGhpcyBwYXRjaCwgd2UgZ28gZnJvbSAyMTIlIHBsYXlpbmcgYSA4IGF1ZGlvIC8gOCB2aWRlbyBmaWxlIGRvd24gdG8gbGVzcwoJICB0aGFuIDEwJSAobW9zdCBvZiBpdCBiZWluZyB0aGUgdmlkZW8gZGVjb2RpbmcpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMjI1CgoyMDE2LTA4LTI4IDE2OjAyOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBkb24ndCBwcmludCBpbnRlcm5hbCBwYWQgcmVxdWVzdCBmdW5jdGlvbiBuYW1lCgkgIFRoaXMganVzdCBjb25mdXNlcyBwZW9wbGUsIHRoZXkgbG9vayBhdCBpdCBhbmQgdHJ5IHRvIGNhbGwgaXQKCSAgZGlyZWN0bHkgYnkgbmFtZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcHVibGljIEdzdEVsZW1lbnQgQVBJLgoJICBJdCBzdGFuZHMgdG8gcmVhc29uIHRoYXQgaXQgZ29lcyB3aXRob3V0IHNheWluZyB0aGF0IHdoZW4gYW4KCSAgZWxlbWVudCBwcm92aWRlcyByZXF1ZXN0IHBhZHMgdGhhdCB0aGV5IGNhbiBhY3R1YWxseSBiZQoJICByZXF1ZXN0ZWQgdXNpbmcgdGhlIHN0YW5kYXJkIEFQSSwgYW5kIHRoZXJlJ3Mgbm8gcG9pbnQgaW4KCSAgcHJpbnRpbmcgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiB0aGUgZWxlbWVudC4KCjIwMTYtMDgtMjMgMTM6Mjc6NTggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgTWFrZSB1c2Ugb2YgdGhlIG5ldyBHU1RfRUxFTUVOVF9GTE9XX0VSUk9SIEFQSSBhbGwgYXJvdW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMTU4CgoyMDE2LTA4LTIzIDEzOjI3OjIwIC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgQVBJIHRvIG1vcmUgZWFzaWx5IHBvc3QgbWVzc2FnZXMgYWJvdXQgZmxvd2luZyBpc3N1ZXMKCSAgSW4gbWFueSBwYXJ0cyBvZiB0aGUgY29kZSB3ZSByYWlzZSBzdHJlYW1pbmcgZXJyb3Igd2hlbiB0aGUgZmxvdwoJICBnb2VzIHdyb25nLCBhbmQgZWFjaCB0aW1lIHdlIGNyZWF0ZSBtb3JlIG9yIGxlc3Mgc2ltaWxhcmUgZXJyb3IKCSAgbWVzc2FnZS4gQWxzbyB0aGF0IG1lc3NhZ2UgZG9lcyBub3QgbGV0IHRoZSBhcHBsaWNhdGlvbiBrbm93IHdoYXQKCSAgaGFzIGFjdHVhbGx5IGdvbmUgd3JvbmcuIEluIHRoZSBuZXcgQVBJIHdlIGFkZCBhICJmbG93LXJldHVybiIgZGV0YWlsCgkgIGZpZWxkIGluc2lkZSB0aGUgR3N0TWVzc2FnZSBzbyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbgoJICBpZiBpdCBuZWVkcyBpdC4KCSAgQVBJOgoJICBHU1RfRUxFTUVOVF9GTE9XX0VSUk9SCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxNTgKCjIwMTYtMDgtMjYgMTk6Mjc6MjIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBtZXNvbi5idWlsZDoKCSAgZ3N0Y29uZmlnOiBEZWNpZGUgR1NUX0VYUE9SVCBkZWNsYXJhdGlvbiBzdHlsZSBhdCBidWlsZCB0aW1lCgkgIFdlIG9ubHkgdXNlIEdTVF9FWFBPUlQgY29uc2lzdGVudGx5IHdoZW4gYnVpbGRpbmcgd2l0aCBNU1ZDIGJ5IHVzaW5nIHRoZQoJICB2aXN1YWwgc3R1ZGlvIGRlZmluaXRpb25zIGZpbGVzICh3aW4zMi9jb21tb24vKi5kZWYpLCBzbyBhbHdheXMgZGlzYWJsZQoJICBpdCB3aGVuIGJ1aWxkaW5nIHdpdGggQXV0b3Rvb2xzIGFuZCBvbmx5IGVuYWJsZSBpdCB3aXRoIE1lc29uIHdoZW4KCSAgYnVpbGRpbmcgd2l0aCBNU1ZDLgoJICBUaGlzIGFsbG93cyB5b3UgdG8gdXNlIE1pbkdXIHRvIGxpbmsgdG8gYSBHU3RyZWFtZXIgYnVpbHQgd2l0aCBNU1ZDIGFuZAoJICBnZXQgdGhlIGNvcnJlY3QgZnVuY3Rpb24gcHJvdG90eXBlcyB0byBmaW5kIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGluCgkgIERMTHMuCgoyMDE2LTA4LTI2IDE2OjIxOjMwICswOTAwICBXb25jaHVsIExlZSA8d29uY2h1bC5sZWVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXNlbGVjdGlvbi50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvIGluIHN0cmVhbSBzZWxlY3Rpb24gZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc3MDQyOAoKMjAxNi0wOC0yNiAxMjo1NTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiByZW5hbWUgZ3N0X2VsZW1lbnRfbWVzc2FnZV9uZXdfZGV0YWlscygpIHRvIGdzdF9tYWtlX2VsZW1lbnRfbWVzc2FnZV9kZXRhaWxzKCkKCSAgRml4ZXMgZy1pIHdhcm5pbmcgIkdzdDogQ29uc3RydWN0b3IgcmV0dXJuIHR5cGUgbWlzbWF0Y2gKCSAgc3ltYm9sPSdnc3RfZWxlbWVudF9tZXNzYWdlX25ld19kZXRhaWxzJyBjb25zdHJ1Y3RlZD0nR3N0LkVsZW1lbnQnCgkgIHJldHVybj0nR3N0LlN0cnVjdHVyZSciLgoJICBUaGlzIGlzIGEgbmV3bHktYWRkZWQgZnVuY3Rpb24gaW4gZ2l0IHRoYXQgaGFzIG5vdCBiZWVuIGluIGEgc3RhYmxlCgkgIHJlbGVhc2UgeWV0LCBzbyBpdCdzIGZpbmUgdG8gcmVuYW1lIGl0LiBJdCdzIGFsc28gb25seSB1c2VkIGluZGlyZWN0bHkKCSAgdmlhIG1hY3Jvcy4KCjIwMTYtMDgtMjYgMTI6MzU6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSAgZG9jczogZml4IHZhcmlvdXMgZ3RrLWRvYyB3YXJuaW5ncwoJICBlLmcuICJ3YXJuaW5nOiBtdWx0aS1saW5lIHNpbmNlIGRvY3MgZm91bmQiCgoyMDE2LTA4LTI2IDEyOjA0OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZy1pOiBpbmZvOiBhbGxvdyBwYXNzaW5nIE5VTEwgdG8gZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24oKQoJICBVc2VmdWwgZm9yIHJlbW92aW5nIHRoZSBkZWZhdWx0IGhhbmRsZXIgZnJvbSBiaW5kaW5ncy4KCjIwMTYtMDgtMjUgMTU6MDQ6MDYgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L21lc29uLmJ1aWxkOgoJKiBkb2NzL2xpYnMvbWVzb24uYnVpbGQ6CgkqIG1lc29uLmJ1aWxkOgoJICBtZXNvbjogZG9jOiBGaXggYnVpbGRpbmcgZG9jdW1lbnRhdGlvbiB3aGVuIHVzaW5nIHN1YnByb2plY3RzCgkgIGFuZCBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgZ3RrLWRvYyBiZWZvcmUgYnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb24KCjIwMTYtMDgtMjYgMDM6MTc6NDEgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogSW1wbGVtZW50IGNhbl9pbnRlcnNlY3QgZm9yIEdzdEZsYWdTZXQgdHlwZXMKCSAgTWFrZSBzdXJlIHRoYXQgZ3N0X3ZhbHVlX2Nhbl9pbnRlcnNlY3QgcmV0dXJucyBUUlVFCgkgIGZvciBHc3RGbGFnU2V0IGNvbWJpbmF0aW9ucyB0aGF0IGNhbiBzdWNjZXNzZnVsbHkKCSAgaW50ZXJzZWN0CgoyMDE2LTA4LTAzIDE1OjIwOjIwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBBZGQgaGlnaGVyLXJlc29sdXRpb24gbG93L2hpZ2gtd2F0ZXJtYXJrIHByb3BlcnRpZXMKCSAgbG93L2hpZ2gtd2F0ZXJtYXJrIGFyZSBvZiB0eXBlIGRvdWJsZSwgYW5kIGdpdmVuIGluIHJhbmdlIDAuMC0xLjAuIFRoaXMKCSAgbWFrZXMgaXQgcG9zc2libGUgdG8gc2V0IGxvdy9oaWdoIHdhdGVybWFya3Mgd2l0aCBncmVhdGVyIHJlc29sdXRpb24sCgkgIHdoaWNoIGlzIHVzZWZ1bCB3aXRoIGxhcmdlIHF1ZXVlMiBtYXggc2l6ZXMgYW5kIHdhdGVybWFya3MgbGlrZSAwLjUlLgoJICBBbHNvIGFkZGluZyBhIHRlc3QgdG8gY2hlY2sgdGhlIGZpbGwgYW5kIHdhdGVybWFyayBsZXZlbCBiZWhhdmlvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTQ0OQoKMjAxNi0wOC0wMyAxNToyNzo0MCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGJ1ZmZlcmluZyBwZXJjZW50YWdlIGFuZCBidWZmZXJpbmcgbGV2ZWwKCSAgVG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLCBhbmQgdG8gZmFjaWxpdGF0ZSBmdXR1cmUgaW1wcm92ZW1lbnRzLCBpbnRyb2R1Y2UKCSAgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHRoZSBidWZmZXJpbmcgbGV2ZWwgYW5kIHRoZSBidWZmZXJpbmcgcGVyY2VudGFnZS4KCSAgQnVmZmVyaW5nIGxldmVsOiB0aGUgcXVldWUncyBjdXJyZW50IGZpbGwgbGV2ZWwuIFRoZSBsb3cvaGlnaCB3YXRlcm1hcmtzCgkgIGFyZSBpbiB0aGlzIHJhbmdlLgoJICBCdWZmZXJpbmcgcGVyY2VudGFnZTogcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgbG93L2hpZ2ggd2F0ZXJtYXJrcwoJICAoMCUgPSBsb3cgd2F0ZXJtYXJrLCAxMDAlID0gaGlnaCB3YXRlcm1hcmspLgoJICBUbyB0aGF0IGVuZCwgZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkgaXMgcmVuYW1lZCB0byBnZXRfYnVmZmVyaW5nX2xldmVsKCksCgkgIGFuZCB0aGUgY29kZSBhdCB0aGUgZW5kIHRoYXQgdHJhbnNmb3JtcyB0byB0aGUgYnVmZmVyaW5nIHBlcmNlbnRhZ2UgaXMKCSAgZmFjdG9yZWQgb3V0IGludG8gYSBuZXcgY29udmVydF90b19idWZmZXJpbmdfcGVyY2VudCgpIGZ1bmN0aW9uLiBBbHNvLAoJICB0aGUgYnVmZmVyaW5nIGxldmVsIHJhbmdlIGlzIHBhcmFtZXRlcml6ZWQgYnkgYWRkaW5nIGEgbmV3IGNvbnN0YW50IGNhbGxlZAoJICBNQVhfQlVGRkVSSU5HX0xFVkVMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NDQ5CgoyMDE2LTA4LTIzIDEwOjUyOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogcmVsZWFzZTogYWRkIHRhZyBzaWduaW5nIGNvbW1hbmQKCjIwMTYtMDctMDcgMDg6MDE6MjQgKzAyMDAgIEFyamVuIFZlZW5odWl6ZW4gPGFyamVuLnZlZW5odWl6ZW5AdG5vLm5sPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBleHBsaWNpdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBidWZmZXIgZmxhZ3MKCSAgVGhlc2UgY2FuIGJlIHVzZWQgZnJvbSBiaW5kaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODMwMQoKMjAxNi0wOC0yMiAwMDowMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJICBtZXNvbjogaW5zdGFsbCBsaWJnc3RjaGVjay0xLjAgYW5kIGFkZCBhcGkgdmVyc2lvbiB0byBuYW1lCgoyMDE2LTA4LTIwIDA4OjU0OjI3ICswOTAwICBIb29uaGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGdzdC9nc3RzdHJlYW1zLmM6CgkgIHN0cmVhbXM6IHVwZGF0ZSBhbmQgZW1pdCBub3RpZnkgc2lnbmFsIG9ubHkgaWYgdGFnbGlzdCBhY3R1YWxseSBjaGFuZ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxNjEKCjIwMTYtMDgtMTIgMjA6MjU6MTcgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIGNvbmZpZy5oLm1lc29uOgoJKiBkb2NzL2dzdC9tZXNvbi5idWlsZDoKCSogZG9jcy9saWJzL21lc29uLmJ1aWxkOgoJKiBkb2NzL21lc29uLmJ1aWxkOgoJKiBnc3QvYnVpbGRfbWtlbnVtLnB5OgoJKiBnc3QvbWVzb24uYnVpbGQ6CgkqIGdzdC9wYXJzZS9nZW5fZ3JhbW1hci5weS5pbjoKCSogZ3N0L3BhcnNlL2dlbl9sZXgucHkuaW46CgkqIGdzdC9wYXJzZS9tZXNvbi5idWlsZDoKCSogZ3N0L3ByaW50Zi9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvYmFzZS9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbWVzb24uYnVpbGQ6CgkqIGxpYnMvZ3N0L2NoZWNrL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9oZWxwZXJzL21lc29uLmJ1aWxkOgoJKiBsaWJzL2dzdC9tZXNvbi5idWlsZDoKCSogbGlicy9nc3QvbmV0L21lc29uLmJ1aWxkOgoJKiBsaWJzL21lc29uLmJ1aWxkOgoJKiBtZXNvbi5idWlsZDoKCSogbWVzb25fb3B0aW9ucy50eHQ6CgkqIHBrZ2NvbmZpZy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy9lbGVtZW50cy9tZXNvbi5idWlsZDoKCSogcGx1Z2lucy9tZXNvbi5idWlsZDoKCSogcG8vbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2JlbmNobWFya3MvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2NoZWNrL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL2V4YW1wbGVzL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvcHRwL21lc29uLmJ1aWxkOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtaWRkZW11eC9tZXNvbi5idWlsZDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9tZXNvbi5idWlsZDoKCSogdGVzdHMvbWVzb24uYnVpbGQ6CgkqIHRlc3RzL21pc2MvbWVzb24uYnVpbGQ6CgkqIHRvb2xzL21lc29uLmJ1aWxkOgoJICBBZGQgc3VwcG9ydCBmb3IgTWVzb24gYXMgYWx0ZXJuYXRpdmUvcGFyYWxsZWwgYnVpbGQgc3lzdGVtCgkgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvbmJ1aWxkL21lc29uCgkgIFdpdGggY29udHJpYnV0aW9ucyBmcm9tOgoJICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoJICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgkgIEp1c3NpIFBha2thbmVuIDxqcGFra2FuZUBnbWFpbC5jb20+IChvcmlnaW5hbCBwb3J0KQoJICBIaWdobGlnaHRzIG9mIHRoZSBmZWF0dXJlcyBwcm92aWRlZCBhcmU6CgkgICogRmFzdGVyIGJ1aWxkcyBvbiBMaW51eCAofjQwLTUwJSBmYXN0ZXIpCgkgICogVGhlIGFiaWxpdHkgdG8gYnVpbGQgd2l0aCBNU1ZDIG9uIFdpbmRvd3MKCSAgKiBHZW5lcmF0ZSBWaXN1YWwgU3R1ZGlvIHByb2plY3QgZmlsZXMKCSAgKiBHZW5lcmF0ZSBYQ29kZSBwcm9qZWN0IGZpbGVzCgkgICogTXVjaCBmYXN0ZXIgYnVpbGRzIG9uIFdpbmRvd3MgKG9uLXBhciB3aXRoIExpbnV4KQoJICAqIFNlcmlvdXNseSBmYXN0IGNvbmZpZ3VyZSBhbmQgYnVpbGRpbmcgb24gZW1iZWRkZWQKCSAgLi4uIGFuZCBtYW55IG1vcmUuIEZvciBtb3JlIGRldGFpbHMgc2VlOgoJICBodHRwOi8vYmxvZy5uaXJiaGVlay5pbi8yMDE2LzA1L2dzdHJlYW1lci1hbmQtbWVzb24tbmV3LWhvcGUuaHRtbAoJICBodHRwOi8vYmxvZy5uaXJiaGVlay5pbi8yMDE2LzA3L2J1aWxkaW5nLWFuZC1kZXZlbG9waW5nLWdzdHJlYW1lci11c2luZy5odG1sCgkgIEJ1aWxkaW5nIHdpdGggTWVzb24gc2hvdWxkIHdvcmsgb24gYm90aCBMaW51eCBhbmQgV2luZG93cywgYnV0IG1heQoJICBuZWVkIGEgZmV3IG1vcmUgdHdlYWtzIG9uIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLgoKMjAxNi0wOC0xMyAxMzo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgTW92ZSBnc3Rjb25maWcuaCBiYWNrIHRvIG5vcm1hbCBpbmNsdWRlIGRpcgoJICBOb3cgdGhhdCBpdCdzIGFyY2gtaW5kZXBlbmRlbnQgYWdhaW4uIFdpbGwgbmVlZCBmaXhlcyBpbiBjZXJiZXJvIHRvby4KCjIwMTYtMDYtMjEgMTg6NTk6NDkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogRGV0ZWN0IHVuYWxpZ25lZCBhY2Nlc3Mgc3VwcG9ydCBhdCBjb21waWxlLXRpbWUKCSAgVGhpcyBtYWtlcyBnc3Rjb25maWcuaCBjb21wbGV0ZWx5IGFyY2gtaW5kZXBlbmRlbnQuIFNob3VsZCBjb3ZlciBhbGwKCSAgY29tcGlsZXJzIHRoYXQgZ3N0cmVhbWVyIGlzIGtub3duIHRvIGJ1aWxkIG9uLCBhbmQgYWxsIGFyY2hpdGVjdHVyZXMKCSAgdGhhdCBJIGNvdWxkIGZpbmQgaW5mb3JtYXRpb24gb24uIFBlb3BsZSBhcmUgZW5jb3VyYWdlZCB0byBmaWxlIGJ1Z3MgaWYKCSAgdGhlaXIgcGxhdGZvcm0vYXJjaCBpcyBtaXNzaW5nLgoKMjAxNi0wOC0xMyAwOTo1NTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogcG8vUE9URklMRVMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZW1vdmUgb2xkIGFsbG9jIHRyYWNpbmcgY29kZSBub3cgdGhhdCB3ZSBoYXZlIGEgR3N0VHJhY2VyLWJhc2VkIHJlcGxhY2VtZW50CgkgIEl0J3MgYmVlbiBpbnRlcm5hbCBBUEkgb25seSBpbiAxLnguCgoyMDE2LTA4LTEyIDE2OjE1OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQb3N0IGJ1ZmZlcmluZyBtZXNzYWdlcyBlYXJsaWVyIGluIHJpbmdidWZmZXIgbW9kZQoJICBJbiByaW5nYnVmZmVyIG1vZGUgd2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgcG9zdCBidWZmZXJpbmcgbWVzc2FnZXMgKmJlZm9yZSoKCSAgYmxvY2tpbmcgdG8gd2FpdCBmb3IgZGF0YSB0byBiZSBkcmFpbmVkLgoJICBXaXRob3V0IHRoaXMsIHdlIHdvdWxkIGVuZCB1cCBpbiBzaXR1YXRpb25zIGxpa2UgdGhpczoKCSAgKiBwaXBlbGluZSBpcyBwcmUtcm9sbGluZwoJICAqIERvd25zdHJlYW0gZGVtdXhlci9kZWNvZGVyIGhhcyBwdXNoZWQgZGF0YSB0byBhbGwgc2lua3MsIGFuZCBkZW11eGVyIHRocmVhZAoJICBpcyBibG9ja2luZyBkb3duc3RyZWFtIChpLmUuIG5vdCBwdWxsaW5nIGZyb20gdXBzdHJlYW0vcXVldWUyKS4KCSAgKiBUaGVyZWZvcmUgcGlwZWxpbmUgaGFzIHByZS1yb2xsZWQgLi4uCgkgICogLi4uIGJ1dCBxdWV1ZTIgaGFzbid0IGZpbGxlZCB1cCB5ZXQsIHRoZXJlZm9yZSB0aGUgYXBwbGljYXRpb24gd2FpdHMgZm9yCgkgIHRoZSBidWZmZXJpbmcgMTAwJSBtZXNzYWdlcyBiZWZvcmUgc2V0dGluZyB0aGUgcGlwZWxpbmUgdG8gUExBWUlORwoJICAqIEJ1dCBxdWV1ZTIgY2FuJ3QgcG9zdCB0aGF0IG1lc3NhZ2UsIHNpbmNlIHRoZSAxMDAlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQKCSAgKmFmdGVyKiB0aGVyZSBpcyByb29tIGF2YWlsYWJsZSBmb3IgdGhhdCBsYXN0IGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTgwMgoKMjAxNi0wOC0wOCAxNjo0MjowNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHJlbW92ZWQgcmVkdW5kYW50IGNhbGwgdG8gZ190aHJlYWRfc2VsZgoJICBSZW1vdmUgYW4gdW5uZWVkZWQgY2FsbCB0byBnX3RocmVhZF9zZWxmIGFuZCBtaW5vciBjb2Rpbmcgc3R5bGUgZml4LgoKMjAxNi0wMy0xNiAxODowMDoxNSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSGFuZGxlIHN0cmVhbS1ncm91cC1kb25lCgkgIEhhbmRsZSB0aGUgbmV3IHN0cmVhbS1ncm91cC1kb25lIG1lc3NhZ2UgdG8gdW5ibG9jayBwYWRzIHdoaWNoCgkgIGFyZSB3YWl0aW5nIGZvciB0aGUgcnVubmluZyB0aW1lIHRvIGFkdmFuY2Ugb24gdGhhdCBncm91cC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk5NQoKMjAxNi0wMy0xNCAxNDoyMDo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50czogSW1wbGVtZW50IHRoZSBzdHJlYW0tZ3JvdXAtZG9uZSBldmVudAoJICBBIG5ldyBldmVudCB3aGljaCBwcmVjZWRlcyBFT1MgaW4gc2l0dWF0aW9ucyB3aGVyZSB3ZQoJICBuZWVkIGRvd25zdHJlYW0gdG8gdW5ibG9jayBhbnkgcGFkcyB3YWl0aW5nIG9uIGEgc3RyZWFtCgkgIGJlZm9yZSB3ZSBjYW4gc2VuZCBFT1MuIEUuZywgZGVjb2RlYmluIGRyYWluaW5nIGEgY2hhaW4KCSAgc28gaXQgY2FuIHN3aXRjaCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTk1CgoyMDE2LTA3LTI1IDExOjIyOjM2ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBBZGQgcmVkaXJlY3QgbWVzc2FnZQoJICBSZWRpcmVjdGlvbiBtZXNzYWdlcyBhcmUgYWxyZWFkeSB1c2VkIGluIGZyYWdtZW50ZWQgc291cmNlcyBhbmQgaW4KCSAgdXJpZGVjb2RlYmluLCBzbyBpdCBtYWtlcyBzZW5zZSB0byBpbnRyb2R1Y2UgdGhlc2UgYXMgYW4gb2ZmaWNpYWwgbWVzc2FnZQoJICB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMxNjczCgoyMDE2LTA3LTI1IDE5OjE1OjE1ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWtlIG90aGVyIHBhZHMgd2hlbiBzZWxlY3RlZCBnb2VzIEVPUwoJICBPdGhlciBwYWRzIHRoYXQgYXJlIHdhaXRpbmcgZm9yIHRoZSBzdHJlYW0gb24gdGhlIHNlbGVjdGVkCgkgIHBhZCB0byBhZHZhbmNlIGJlZm9yZSB0aGV5IGZpbmlzaCB3YWl0aW5nIHRoZW1zZWx2ZXMKCSAgc2hvdWxkIGJlIGdpdmVuIHRoZSBjaGFuY2UgdG8gZG8gc28gd2hlbiB0aGUgc2VsZWN0ZWQgcGFkCgkgIGdvZXMgRU9TLiBGaXhlcyBwcm9ibGVtcyB3aGVyZSBpbnB1dCBzdHJlYW1zIGNhbiBlbmQgdXAKCSAgd2FpdGluZyBmb3JldmVyIGlmIHRoZSBhY3RpdmUgc3RyZWFtIGdvZXMgRU9TIGVhcmxpZXIgdGhhbgoJICB0aGVpciBvd24gZW5kIHRpbWUuCgoyMDE2LTA3LTI0IDAxOjM1OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogZml4IEdTVF9FTEVNRU5UX0VSUk9SKCkgZXJyb3IgY29kZSBleHBhbnNpb24KCSAgSW4gc29tZSBjb3JuZXIgY2FzZXMsIHRoZSBlcnJvciAnY29kZScgcGFydCBwYXNzZWQgdG8KCSAgR1NUX0VMRU1FTlRfRVJST1IoKSBpcyBhIHZhbGlkIGRlZmluZSBhcyB3ZWxsLCBpbiB3aGljaAoJICBjYXNlIGl0IHdvbid0IHN1cnZpdmUgdHdvIGxldmVscyBvZiBtYWNybyBleHBhbnNpb24sIGJ1dAoJICBvbmx5IG9uZS4gRml4ZXM6CgkgIG9zczQtc2luay5jOiBJbiBmdW5jdGlvbiDigJhnc3Rfb3NzNF9zaW5rX29wZW7igJk6CgkgIGVycm9yOiDigJhHU1RfUkVTT1VSQ0VfRVJST1JfMHgwMDAwMDAwMuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKCSAgR1NUXyAjIyBkb21haW4gIyMgX0VSUk9SXyAjIyBjb2RlLCBfX3R4dCwgX19kYmcsIF9fRklMRV9fLAoJICB3aGljaCBpcyBmcm9tIEdTVF9FTEVNRU5UX0VSUk9SKGVsLFJFU09VUkNFLE9QRU5fV1JJVEUsLi4pCgkgIGFuZCBPUEVOX1dSSVRFIGhhcHBlbnMgdG8gYmUgZGVmaW5lZCB0byAyIGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MDYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTExNwoKMjAxNi0wNy0yMiAxNzozMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBzb21lIG5vbnNlbnNpY2FsIGFubm90YXRpb25zCgoyMDE2LTA3LTIyIDE1OjI1OjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBHU1RfRUxFTUVOVF8qX1dJVEhfREVUQUlMUyB0byBkb2MgbGlzdAoKMjAxNi0wNy0yMiAxNTowNDo1OCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBsaXN0IG5ldyBtZXNzYWdlIGRldGFpbHMgYXBpcyB3aGVyZSB0aGV5IHNlZW0gdG8gYmVsb25nCgoyMDE2LTA3LTIyIDE0OjU5OjU2ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBsaWJnc3RyZWFtZXIuZGVmOiBmaXggbWVudGlvbnMgb2YgbmV3IG1lc3NhZ2UgZGV0YWlscyBhcGkKCSAgSSBoYWQgbm90IHVwZGF0ZWQgaXQgYWZ0ZXIgdGhlIHJldmlldyBjaGFuZ2VzCgoyMDE2LTAzLTAyIDExOjIyOjIzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBuZXcgQVBJIGZvciBhZGRpdGlvbmFsIGN1c3RvbSBkYXRhIHRvIGVycm9yIG1lc3NhZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MDYKCjIwMTYtMDctMjAgMTI6MjI6MTAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICB0cmFjZXJzOiBsZWFrczogdXBkYXRlIHR5cGUgZmlsdGVyIGxhdGVyIGZvciB1bmtub3duIHR5cGVzCgkgIFRoaXMgYWxsb3cgdXMgdG8gZmlsdGVyIHVzaW5nIGFuIG9iamVjdCB0eXBlIHdoaWNoIGlzIGltcGxlbWVudGVkCgkgIGJ5IGEgcGx1Z2luIGxpa2UsIHNheSwgR3N0R3RrR0xTaW5rLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4OTg5CgoyMDE2LTA3LTE5IDE0OjQ1OjUzICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIGctaSB0cmFuc2ZlciBhbm5vdGF0aW9ucyB0byBwZWVrL3BvcC9yZWFkX2J1ZmZlci90YWtlX2J1ZmZlciBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODk0OAoKMjAxNi0wNy0xOSAyMzoxODoyNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBVc2UgZ3N0X2Nsb2NrX3dhaXRfZm9yX3N5bmMgKCkgZm9yIG5ldCBjbGllbnQgY2xvY2sKCSAgSW5zdGVhZCBvZiBsb29waW5nLCB1c2UgdGhlIGdzdF9jbG9ja193YWl0X2Zvcl9zeW5jKCkgZnVuY3Rpb24KCSAgdG8gZ2l2ZSBjbG9ja3MgdXAgdG8gMSBzZWNvbmQgdG8gc3luY2hyb25pc2UKCjIwMTYtMDctMTMgMTU6NDM6MjEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IGFubm90YXRpb24gb2YgcGFyc2Vfc3RyZWFtX3tjb2xsZWN0aW9uLHN0cmVhbXNfc2VsZWN0ZWR9CgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgcmV0dXJucyBhIG5ldyByZWZlcmVuY2Ugc28gdGhlIHJldHVybmVkIG9iamVjdCBpcwoJICBhY3R1YWxseSAodHJhbnNmZXIgZnVsbCkuCgkgIFRoZSB1bml0IHRlc3RzIHdhcyBhbHJlYWR5IHVucmVmZmluZyB0aGUgb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3NgoKMjAxNi0wNy0xMyAxNTo0MzoyMSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggYW5ub3RhdGlvbiBvZiBwYXJzZV9kZXZpY2Vfe2FkZGVkLHJlbW92ZWR9CgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZ2V0KCkgcmV0dXJucyBhIG5ldyByZWZlcmVuY2Ugc28gdGhlIHJldHVybmVkIGRldmljZSBpcwoJICBhY3R1YWxseSAodHJhbnNmZXIgZnVsbCkuCgkgIFRoZSBjb2RlIHVzaW5nIHRoaXMgQVBJIHdhcyBhbHJlYWR5IGNvcnJlY3QgYnV0IHRoZSBjb2RlIGV4YW1wbGUgaW4KCSAgY29tbWVudHMgd2FzIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODc3NgoKMjAxNi0wNy0xNCAxNjo0MDoyMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGctaSB0cmFuc2ZlciBhbm5vdGF0YXRpb24gdG8gX3N0b3JlX3N0aWNreV9ldmVudCgpCgkgIEZvciBjbGFyaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4ODEwCgoyMDE2LTA3LTEyIDEyOjMyOjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBhdXRvbWF0aWMtZW9zPWZhbHNlIG1vZGUgaWYgYSBzZWdtZW50LnN0b3AgaXMgZ2l2ZW4KCSAgSWYgc2VnbWVudC5zdG9wIHdhcyBnaXZlbiwgYW5kIHRoZSBzdWJjbGFzcyBwcm92aWRlcyBhIHNpemUgdGhhdCBtaWdodCBiZQoJICBzbWFsbGVyIHRoYW4gc2VnbWVudC5zdG9wIGFuZCBhbHNvIHNtYWxsZXIgdGhhbiB0aGUgYWN0dWFsIHNpemUsIHdlIHdvdWxkCgkgIGFscmVhZHkgc3RvcCB0aGVyZS4KCSAgSW5zdGVhZCB0cnkgcmVhZGluZyB1cCB0byBzZWdtZW50LnN0b3AsIHRoZSBnb2FsIGlzIHRvIGlnbm9yZSB0aGUgKHBvc3NpYmx5CgkgIGluYWNjdXJhdGUpIHNpemUgdGhlIHN1YmNsYXNzIGdpdmVzIGFuZCBmaW5pc2ggdW50aWwgc2VnbWVudC5zdG9wIG9yIHdoZW4gdGhlCgkgIHN1YmNsYXNzIHRlbGxzIHVzIHRvIHN0b3AuCgoyMDE2LTA3LTExIDIxOjEzOjI4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMzYzYjMyIHRvIGY0OWM1NWUKCjIwMTYtMDctMTEgMTg6NDU6NDkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogRml4IHBvdGVudGlhbCBzdGFjayBjb3JydXB0aW9uIGluIGNhcHNuZWdvIHRlc3QKCSAgZmxhdm91cl9zdHIgaXMgYSBub24tY29uc3QgcG9pbnRlciB0aGF0IHdpbGwgYmUgd3JpdHRlbiB0byBpZiB0aGUgLWYKCSAgb3B0aW9uIGlzIHBhc3NlZAoKMjAxNi0wNy0xMSAxMTozNDowMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3M6IGNoZWNrIHJldHVybiB2YWx1ZXMgb2YgbGlidW53aW5kIGNhbGxzCgoyMDE2LTA3LTExIDA5OjU4OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYXZlcmFnZSBpbnB1dCByYXRlIGNhbGN1bGF0aW9uIG9uIHNtYWxsIGlucHV0IHJhbmdlCgkgIFdoZW4gZGVhbGluZyB3aXRoIHNtYWxsLWlzaCBpbnB1dCBkYXRhIGNvbWluZyBpbnRvIHF1ZXVlMiwgc3VjaCBhcwoJICBhZGFwdGl2ZWRlbXV4IGZyYWdtZW50cywgd2Ugd291bGQgbmV2ZXIgdGFrZSBpbnRvIGFjY291bnQgdGhlIGxhc3QKCSAgPDIwMG1zIG9mIGRhdGEgY29taW5nIGluLgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHVzdWFsbHkgb24gVENQIGNvbm5lY3Rpb24gdGhlIGRvd25sb2FkIHJhdGUKCSAgZ3JhZHVhbGx5IGluY3JlYXNlcyAoaS5lLiB0aGUgcmF0ZSBpcyBsb3dlciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEKCSAgZG93bmxvYWQgdGhhbiBpdCBpcyBsYXRlciBvbikuIENvbWJpbmVkIHdpdGggc21hbGwgZG93bmxvYWQgdGltZSAobGVzcwoJICB0aGFuIGEgc2Vjb25kKSB3ZSB3b3VsZCBlbmQgdXAgd2l0aCBhIGNvbXB1dGVkIGF2ZXJhZ2UgaW5wdXQgcmF0ZQoJICB3aGljaCB3YXMgc29tZXRpbWVzIHVwIHRvIDMwLTUwJSBvZmYgZnJvbSB0aGUgKmFjdHVhbCogYXZlcmFnZSBpbnB1dAoJICByYXRlIGZvciB0aGF0IGZyYWdtZW50LgoJICBJbiBvcmRlciB0byBmaXggdGhpcywgZm9yY2UgdGhlIGF2ZXJhZ2UgaW5wdXQgcmF0ZSBjYWxjdWxhdGlvbiB3aGVuCgkgIHdlIHJlY2VpdmUgYW4gRU9TIHNvIHRoYXQgd2UgdGFrZSBpbnRvIGFjY291bnQgdGhhdCBmaW5hbCB3aW5kb3cKCSAgb2YgZGF0YS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODY0OQoKMjAxNi0wNy0wOCAxNjozMTo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiB3ZWFrX3VucmVmOiBkaXNwbGF5IHRoZSBwb2ludGVyIG9mIHRoZSBvYmplY3QgaWYgZmFpbGluZwoJICBUaGF0J3MgZ2VuZXJhbGx5IHRoZSBtb3N0IHVzZWZ1bCBpbmZvcm1hdGlvbiB0byBoZWxwIGRlYnVnZ2luZyB0aGUKCSAgcHJvYmxlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3OQoKMjAxNi0wNy0wOCAxNjoyOTozOCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcHJvcGVybHkgZGlzcGxheSB0aGUgdHlwZSBvZiB0aGUgcmVtb3ZlZCBtZXNzYWdlCgkgIE1ha2VzIGRlYnVnZ2luZyBlYXNpZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzkKCjIwMTYtMDctMDggMTc6NDY6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZS1jcmVhdGUgdGhyZWFkcG9vbCBhZnRlciBjbGVhbmluZyB1cCB0YXNrcwoJICBXZSBkb24ndCBmcmVlIHRoaXMgZnJvbSBnc3RfZGVpbml0KCkgYnV0IGZyb20gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKSwKCSAgc28gbW9yZSBHU3RyZWFtZXIgQVBJIG1heSBiZSBjYWxsZWQuIEluIHBhcnRpY3VsYXIgbWFrZXMgdW5pdCB0ZXN0cwoJICB3b3JrIGFnYWluIHdpdGggQ0tfRk9SSz1uby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODU3NwoKMjAxNi0wNy0wOCAxNjo1Mzo1MSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzOiB3YXJuIGlmIG9iamVjdCBpcyBkZXN0cm95ZWQgd2hpbGUgdGhlIHRyYWNlciBpcyBkaXNwb3NpbmcKCSAgVGhpcyBzaG91bGQgbm90IGhhcHBlbiBhbmQgZ2VuZXJhbGx5IG1lYW5zIHNvbWUgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzgKCjIwMTYtMDctMDggMTY6MzY6MDEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGVsZW1lbnQ6IGNsZWFuIHVwIHRocmVhZCBwb29sIGZyb20gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKQoJICBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgYXN5bmMgb3BlcmF0aW9ucyAoc3RhcnRlZCBmcm9tIGdzdF9lbGVtZW50X2NhbGxfYXN5bmMoKSkKCSAgaGF2ZSBiZWVuIGNvbXBsZXRlZCBhbmQgc28gdGhlcmUgaXMgbm8gZXh0cmEgdGhyZWFkIHJ1bm5pbmcuCgkgIEZpeCByYWNlcyB3aGVuIGNoZWNraW5nIGZvciBsZWFrcyBvbiB1bml0IHRlc3RzIGFzIHNvbWUgb2YgdGhvc2UKCSAgb3BlcmF0aW9ucyB3ZXJlIHN0aWxsIHJ1bm5pbmcgd2hlbiB0aGUgbGVha3MgdHJhY2VyIHdhcyBjaGVja2luZyBmb3IKCSAgbGVha2VkIG9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg1NzcKCjIwMTYtMDctMDggMTE6MTU6MDYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3MgdHJhY2VyOiB1c2UgR19PU19VTklYIHRvIGNoZWNrIGZvciBzaWduYWwgc3VwcG9ydAoJICBDaGVja2luZyBmb3Igc2lnbmFsLmggaXMgbm90IGdvb2QgZW5vdWdoIGFzIGl0J3MgcHJlc2VudCBpbiBXaW5kb3dzLgoJICBUaG9zZSBzaWduYWxzIGFyZSBVTklYIHNwZWNpZmljIGFueXdheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg1NwoKMjAxNi0wNi0yMiAxNjoyNToxNiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJICBsZWFrcyB0cmFjZXI6IGFkZCBjcmVhdGlvbiBzdGFjayB0cmFjZSBzdXBwb3J0CgkgIFRoaXMgYWxsb3cgdXMgdG8gcHJvdmlkZSB0aGUgdHJhY2Ugb2YgbGVha2VkIG9iamVjdHMgbWFraW5nIGl0IGVhc2llcgoJICB0byBkZWJ1Zy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg2MgoKMjAxNi0wNi0wMSAxMTowODozOSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmg6CgkgIGxlYWtzIHRyYWNlcjogYWRkIGNoZWNrcG9pbnQgc3VwcG9ydCB1c2luZyBTSUdVU1IyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4NTcKCjIwMTYtMDUtMzEgMTY6NTY6MjYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGVha3MuYzoKCSAgbGVha3MgdHJhY2VyOiBsb2cgYWxpdmUgb2JqZWN0cyB3aGVuIHJlY2VpdmluZyBTSUdVU1IxCgkgIFdlIGRvbid0IHdhbnQgdG8gYXV0b21hdGljYWxseSBjYXRjaCBzaWduYWxzIHNvIHVzZSBhbiBlbnYgdmFyaWFibGUgdG8KCSAgZW5hYmxlIHRoaXMgZmVhdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Nzg1NwoKMjAxNi0wNy0wNyAxMzoxNTo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogT25seSBmb3J3YXJkIHN0aWNreSBldmVudHMgb24gR0FQIGV2ZW50cyBpZiBuZWVkZWQKCSAgVGhhdCBpcywgaWYgdGhlIGFjdGl2ZSBwYWQgY2hhbmdlZCBhbmQgaWYgZm9yd2FyZGluZyBvZiBzdGlja3kgZXZlbnRzIGlzCgkgIHJlcXVlc3RlZCBhdCBhbGwuIFdlIG90aGVyd2lzZSBmb3J3YXJkIGV2ZW50cyB0b28gb2Z0ZW4uCgoyMDE2LTA3LTA1IDE2OjUwOjE2ICswMjAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBxdWVyeSBjYXBzIGFuc3dlcmVkIGFuZCBjYXBzIG5vdCBOVUxMCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njg0NTAKCjIwMTYtMDctMDYgMTM6NTA6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuOS4xID09PQoKMjAxNi0wNy0wNiAxMzowNTowMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS45LjEKCjIwMTYtMDctMDYgMTE6Mzc6NTYgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTA3LTA2IDEwOjE3OjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL2hyLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc2sucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTA3LTA1IDEyOjE3OjE4ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBhZGQgY2FsY3VsYXRlZCBiaXRyYXRlcyB1bnRpbCB0aHJlc2hvbGQKCSAgV2FpdGluZyBiZWZvcmUgcG9zdGluZyBjYWxjdWxhdGVkIGJpdHJhdGVzIHNlZW1zIHRvIGJlIHRoZQoJICBpbnRlbnQgb2YgdGhlIGNvZGUsIHNvIGF2b2lkIGFkZGluZyB0aGVtIHRvIHRoZSB0YWcgbGlzdAoJICBwdXNoZWQgd2l0aCB0aGUgZmlyc3QgZnJhbWUuCgkgIFdoZW4gdGhlIHRocmVzaG9sZCBpcyByZWFjaGVkLCBnc3RfYmFzZV9wYXJzZV91cGRhdGVfYml0cmF0ZXMKCSAgc2V0cyB0YWdzX2NoYW5nZWQsIHNvIHRoaXMgcG9zdHMgdGhlIGNhbGN1bGF0ZWQgb25lcyByaWdodAoJICB0aGF0IG1vbWVudC4KCSAgVGhpcyBwcmV2ZW50cyBhbiBpbnNhbmUgYXZlcmFnZSBjYWxjdWxhdGVkIGZyb20ganVzdCB0aGUKCSAgZmlyc3QgKGtleSkgZnJhbWUgZnJvbSBnZXR0aW5nIHBvc3RlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODQzOQoKMjAxNi0wNy0wNCAxMDowMDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTWFrZSBzdXJlIHRvIG5vdCBjcmVhdGUgYW4gaW52YWxpZCBldmVudCBvcmRlciB3aGVuIGdlbmVyYXRpbmcgdGhlIGRlZmF1bHQgQ0FQUyBldmVudCBiZWNhdXNlIG9mIGEgR0FQIGV2ZW50CgkgIFRoZXJlIG11c3QgYmUgYSBTRUdNRU5UIGV2ZW50IGJlZm9yZSB0aGUgR0FQIGV2ZW50LCBhbmQgU0VHTUVOVCBldmVudHMgbXVzdAoJICBjb21lIGFmdGVyIGFueSBDQVBTIGV2ZW50LiBXZSBob3dldmVyIGRpZCBub3QgcHJvZHVjZSBhbnkgQ0FQUyB5ZXQsIHNvIHdlIG5lZWQKCSAgdG8gZW5zdXJlIHRvIGluc2VydCB0aGUgQ0FQUyBldmVudCBiZWZvcmUgdGhlIFNFR01FTlQgZXZlbnQgaW50byB0aGUgcGVuZGluZwoJICBldmVudHMgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njk3MAoKMjAxNi0wNy0wMSAyMjozNDo1OSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBdm9pZCBnY2MgNiB3YXJuaW5nIHRoYXQgYnJlYWtzIHRoZSB0ZXN0cyBidWlsZAoJICBnY2MgNiBoYXMgcHJvYmxlbXMgZGV0ZWN0aW5nIGFuZCBhdm9pZGluZyB0aHJvd2luZwoJICBhIHdhcm5pbmcgZm9yIHRhdXRvbG9naWNhbCBjb21wYXJlcyBpbiBtYWNyb3MgKHRoZXkKCSAgc2hvdWxkIG9ubHkgdHJpZ2dlciBmb3IgY29tcGFyZXMgb3V0c2lkZSBtYWNyb3MpLgoJICBBdm9pZCB0aGVtIHdpdGggYSBuYXN0eSBjYXN0IG9mIG9uZSBwYXJhbWV0ZXIgdG8gdm9pZCAqCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ1MjYKCjIwMTYtMDctMDEgMDk6NDQ6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGJlaGF2aW91ciB3aXRoIG5vdC1saW5rZWQgYW5kIGVvcyBwYWRzCgkgIFRoaXMgaXMgYW4gdXBkYXRlIG9uIGM5YjY4NDg4ODVmNDY3NWQ0NDdlODIzYzhmYjExN2UyNDc2NTgyNTIKCSAgbXVsdGlxdWV1ZTogRml4IG5vdC1saW5rZWQgcGFkIGhhbmRsaW5nIGF0IEVPUwoJICBXaGlsZSB0aGF0IGNvbW1pdCBkaWQgZml4IHRoZSBiZWhhdmlvdXIgaWYgdXBzdHJlYW0gc2VudCBhIEdTVF9FVkVOVF9FT1MsCgkgIGl0IHdvdWxkIGJyZWFrIHRoZSBzYW1lIGlzc3VlIHdoZW4gKmRvd25zdHJlYW0qIHJldHVybnMgR1NUX0ZMT1dfRU9TCgkgICh3aGljaCBjYW4gaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gZG93bnN0cmVhbSBkZWNvZGVycyByZWNlaXZlIGRhdGEKCSAgZnJvbSBhZnRlciB0aGUgc2VnbWVudCBzdG9wKS4KCSAgR1NUX1BBRF9JU19FT1MoKSBpcyBvbmx5IFRSVUUgd2hlbiBhIEdTVF9FVkVOVF9FT1MgaGFzIGZsb3duIHRocm91Z2ggaXQKCSAgYW5kIG5vdCB3aGVuIGEgR1NUX0VWRU5UX0VPUyBoYXMgZ29uZSB0aHJvdWdoIGl0LgoJICBJbiBvcmRlciB0byBoYW5kbGUgYm90aCBjYXNlcywgYWxzbyB0YWtlIGludG8gYWNjb3VudCB0aGUgbGFzdCBmbG93CgkgIHJldHVybi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc3MAoKMjAxNi0wNi0zMCAxNTowNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uYzoKCSogZ3N0L2dzdHN0cmVhbWNvbGxlY3Rpb24uaDoKCSogZ3N0L2dzdHN0cmVhbXMuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHN0cmVhbXM6IHNwcmlua2xlIHNvbWUgU2luY2U6IG1hcmtlcnMgZm9yIGRvY3MKCjIwMTYtMDYtMzAgMTQ6Mzc6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYWRkIGd0ay1kb2MgYmx1cmIgZm9yIG5ldyBwYWQgcHJvcGVydHkKCjIwMTYtMDItMTAgMTE6NDI6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBhIHBhZCBwcm9wZXJ0eSB0byAiZ3JvdXAiIHN0cmVhbXMKCSAgV2hlbiBzeW5jaW5nIGJ5IHJ1bm5pbmcgdGltZSwgbXVsdGlxdWV1ZSB3aWxsIHRocm90dGxlIHVubGlua2VkIHN0cmVhbXMKCSAgYmFzZWQgb24gYSBnbG9iYWwgImhpZ2gtdGltZSIgYW5kIHRoZSBwZW5kaW5nICJuZXh0X3RpbWUiIG9mIGEgc3RyZWFtLgoJICBUaGUgaWRlYSBpcyB0aGF0IHdlIGRvbid0IHdhbnQgdW5saW5rZWQgc3RyZWFtcyB0byBiZSAiYmVoaW5kIiB0aGUgZ2xvYmFsCgkgIHJ1bm5pbmcgdGltZSBvZiBsaW5rZWQgc3RyZWFtcywgc28gdGhhdCBpZi93aGVuIHRoZXkgZ2V0IGxpbmtlZCAobGlrZSB3aGVuCgkgIHN3aXRjaGluZyB0cmFja3MpIGRlY29kaW5nL3BsYXliYWNrIGNhbiByZXN1bWUgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiBhcwoJICB0aGUgb3RoZXIgc3RyZWFtcy4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCBpdCBhc3N1bWVzIGVsZW1lbnRzIGRvd25zdHJlYW0gd2lsbCBoYXZlIGEgbW9yZSBvciBsZXNzCgkgIGVxdWFsIGJ1ZmZlcmluZy9sYXRlbmN5IC4uLiB3aGljaCBpc24ndCB0aGUgY2FzZSBmb3Igc3RyZWFtcyBvZiBkaWZmZXJlbnQKCSAgdHlwZS4gVmlkZW8gZGVjb2RlcnMgdGVuZCB0byBoYXZlIGhpZ2hlciBsYXRlbmN5IChhbmQgdGhlcmVmb3JlIGNvbnN1bWUgbW9yZQoJICBmcm9tIHVwc3RyZWFtIHRvIG91dHB1dCBhIGdpdmVuIGRlY29kZWQgZnJhbWUpIGNvbXBhcmVkIHRvIGF1ZGlvIG9uZXMsIHJlc3VsdGluZwoJICBpbiB0aGUgY29tcHV0ZWQgImhpZ2hfdGltZSIgYmVpbmcgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB2aWRlbyBzdHJlYW0sCgkgIG11Y2ggZnVydGhlciB0aGFuIHRoZSBhdWRpbyBzdHJlYW1zLgoJICBUaGlzIG1lYW5zIHRoZSB1bmxpbmtlZCBhdWRpbyBzdHJlYW1zIGVuZCB1cCBiZWluZyBxdWl0ZSBhIGJpdCBhZnRlciB0aGUgbGlua2VkCgkgIGF1ZGlvIHN0cmVhbXMsIHJlc3VsdGluZyBpbiBnYXBzIHdoZW4gc3dpdGNoaW5nIHN0cmVhbXMuCgkgIEluIG9yZGVyIHRvIG1pdGlnYXRlIHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyAiZ3JvdXAtaWQiIHBhZCBwcm9wZXJ0eQoJICB3aGljaCBhbGxvd3MgdXNlcnMgdG8gImdyb3VwIiBzdHJlYW1zIHRvZ2V0aGVyLiBDYWxjdWxhdGluZyB0aGUgaGlnaC10aW1lIHdpbGwKCSAgbm93IGJlIGRvbmUgbm90IG9ubHkgZ2xvYmFsbHksIGJ1dCBhbHNvIHBlciBncm91cC4gVGhpcyBlbnN1cmVzIHRoYXQgd2l0aGluCgkgIGEgZ2l2ZW4gZ3JvdXAgdW5saW5rZWQgc3RyZWFtcyB3aWxsIGJlIHRocm90dGxlZCBieSB0aGF0IGdyb3VwJ3MgaGlnaC10aW1lCgkgIGluc3RlYWQuCgkgIFRoaXMgZml4ZXMgZ2FwcyB3aGVuIHN3aXRjaGluZyBkb3duc3RyZWFtIGVsZW1lbnRzIChsaWtlIHN3aXRjaGluZyBhdWRpbyB0cmFja3MpLgoKMjAxNS0wNi0xMiAxMDo1MzoyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXNlbGVjdGlvbi50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5jOgoJKiBnc3QvZ3N0c3RyZWFtY29sbGVjdGlvbi5oOgoJKiBnc3QvZ3N0c3RyZWFtcy5jOgoJKiBnc3QvZ3N0c3RyZWFtcy5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJlYW0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cmVhbS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBOZXcgU3RyZWFtIGxpc3Rpbmcvc2VsZWN0aW9uIHN5c3RlbQoJICAqIEdzdFN0cmVhbQoJICAqIEdzdFN0cmVhbUNvbGxlY3Rpb24KCSAgKiBHU1RfRVZFTlRfU0VMRUNUX1NUUkVBTVMKCSAgKiBHU1RfTUVTU0FHRV9TVFJFQU1fQ09MTEVDVElPTgoKMjAxNi0wNi0yOSAyMzoyNDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogI2RlZmluZSBFV09VTERCTE9DSyB0byBFQUdBSU4gaWYgaXQncyBub3QgZGVmaW5lZCBvbiBXaW5kb3dzCgoyMDE2LTA2LTI5IDE0OjA1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRml4IGhhbmRsaW5nIG9mIHRoZSBHc3RQb2xsCgkgIEVzcGVjaWFsbHkgaWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUgd2FpdGluZyBmb3IgYnVmZmVycyB0byBiZSBhdmFpbGFibGUgYWdhaW4sCgkgIHRoZSBjdXJyZW50IGNvZGUgd2FzIHdyb25nLiBGaXggdGhpcyBhbmQgZG9jdW1lbnQgY2xlYXJseSBob3cgdGhlIEdzdFBvbGwgaXMKCSAgc3VwcG9zZWQgdG8gYmUgdXNlZC4KCSAgQWxzbyBmaXggc29tZSBwb3RlbnRpYWwgcmFjZXMgd2l0aCByZWFkaW5nIGZyb20gdGhlIEdzdFBvbGwgYmVmb3JlIHdyaXRpbmcKCSAgYWN0dWFsbHkgaGFwcGVuZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc5NzkKCjIwMTYtMDYtMjkgMTQ6MDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogTWFrZSBzdXJlIHRvIGFsd2F5cyByZWFkIHRoZSBjb250cm9sIGFmdGVyIHBvcHBpbmcgYSBtZXNzYWdlCgkgIEl0IG1pZ2h0IGhhcHBlbiB0aGF0IHdlIHBvcHBlZCB0aGUgbWVzc2FnZSBiZWZvcmUgd3JpdGluZyBvZiB0aGUgY29udHJvbAoJICBoYXBwZW5lZC4gSW4gdGhpcyBjYXNlIHdlIGp1c3QgaGF2ZSB0byByZXRyeSBhZ2FpbiBhIGJpdCBsYXRlciwgYW5kIGZhaWx1cmUgdG8KCSAgZG8gc28gd2lsbCBjYXVzZSBhbiBhZGRpdGlvbmFsIGJ5dGUgaW4gdGhlIGNvbnRyb2wgYW5kIHRoZSBHU291cmNlIC8KCSAgZ3N0X3BvbGxfd2FpdCgpIHRvIGFsd2F5cyB3YWtlIHVwIGFnYWluIGltbWVkaWF0ZWx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzk3CgoyMDE2LTA2LTI5IDEzOjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBJbXByb3ZlIEdzdFBvbGwgaGFuZGxpbmcgYW5kIGRvbid0IGNoZWNrIGZvciBpbXBvc3NpYmxlIGVycm5vIHZhbHVlcwoJICBBbHNvIGp1c3QgcmVhZC93cml0ZSBjb250cm9sIGV2ZXJ5IHRpbWUsIEdzdFBvbGwgaXMgb3B0aW1pemVkIGJ5IGl0c2VsZgoJICBhbHJlYWR5IHRvIG9ubHkgZG8gSS9PIGlmIHN3aXRjaGluZyBiZXR3ZWVuIGVtcHR5IGFuZCBvbmUgYnl0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzozNTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IENsYXJpZnkgd2hlbiBGQUxTRSBpcyByZXR1cm5lZCBmcm9tIHJlYWQvd3JpdGVfY29udHJvbCgpCgkgIEFuZCBhbHNvIG1lbnRpb24gd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWVzIG9mIGVycm5vIGFyZSBnb2luZyB0byBiZS4KCSAgd3JpdGVfY29udHJvbCgpIHdpbGwgb25seSBldmVyIHJldHVybiBGQUxTRSBpZiB0aGVyZSB3YXMgYSBjcml0aWNhbCBlcnJvci4gSXQKCSAgd2lsbCBuZXZlciByZXR1cm4gYmVjYXVzZSBvZiBFSU5UUiwgRUFHQUlOIG9yIEVXT1VMREJMT0NLLgoJICByZWFkX2NvbnRyb2woKSB3aWxsIHJldHVybiBGQUxTRSBpZiB0aGVyZSB3YXMgbm8gYnl0ZSB0byByZWFkLCBpbiB3aGljaCBjYXNlCgkgIGVycm5vIHdvdWxkIGJlIEVXT1VMREJMT0NLLgoJICBJbiBhbGwgb3RoZXIgY2FzZXMgdGhlcmUgd2FzIGEgY3JpdGljYWwgZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjkgMTM6MjY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBzZXRfY29udHJvbGxhYmxlKCksIHJlc3RhcnQoKSBhbmQgc2V0X2ZsdXNoaW5nKCkgYXJlIG9ubHkgdmFsaWQgZm9yIG5vbi10aW1lciBHc3RQb2xscwoJICBPbiB0aW1lciBHc3RQb2xscyBpdCB3aWxsIGNhdXNlIHRoZSBjb250cm9sIHNvY2tldCBzdGF0ZSB0byBiZWNvbWUKCSAgaW5jb25zaXN0ZW50IGFzIG5vdyBvbmUgbGVzcyByZWFkX2NvbnRyb2woKSB0aGFuIHdyaXRlX2NvbnRyb2woKSBiZSB3b3VsZAoJICBuZWVkZWQuCgkgIFNpbWlsYXJseSwgcmVhZF9jb250cm9sKCkgYW5kIHdyaXRlX2NvbnRyb2woKSBhcmUgb25seSB2YWxpZCBvbiB0aW1lcgoJICBHc3RQb2xscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxMzoxMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmg6CgkgIHBvbGw6IFdhcm4gaWYgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcG9sbF9yZWFkX2NvbnRyb2woKSBpcyB1bnVzZWQKCSAgVGhpcyBtaWdodCBmYWlsIGV2ZW4gdW5kZXIgY29ycmVjdCB1c2FnZSwgZS5nLiBpZiByZWFkX2NvbnRyb2woKSBpcyBjYWxsZWQKCSAgZnJvbSBhbm90aGVyIHRocmVhZCBiZWZvcmUgd3JpdGVfY29udHJvbCgpIGZpbmlzaGVkIGluIGFub3RoZXIuIEl0IGhhcyB0byBiZQoJICByZXRyaWVkIHRoZW4sIG9yIG90aGVyIG1lYXN1cmVzIGhhdmUgdG8gYmUgdGFrZW4sIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgdXNlZAoJICBieSB0aGUgc3Vycm91bmRpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDM5NwoKMjAxNi0wNi0yOSAxODo1Nzo0MiArMDIwMCAgTWF0dGhldyBHcnVlbmtlIDxtZ3J1ZW5rZUB0eWNvaW50LmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCB2YXJpb3VzIHJhY2UgY29uZGl0aW9ucyB3aXRoIHJlYWRfY29udHJvbCgpIGFuZCB3cml0ZV9jb250cm9sKCkKCSAgVGhpcyBhZGRyZXNzZXMgc2xpZ2h0bHkgZGlmZmVyZW50IHJhY2UgY29uZGl0aW9ucyBvbiBMaW51eCBhbmQgV2luZG93cywgYW5kCgkgIGZpeGVzIGdzdF9wb2xsX3JlYWRfY29udHJvbCgpIHdoZW4gY29udHJvbF9wZW5kaW5nID09IDAuCgkgIE9uIExpbnV4LCB0aGUgc29ja2V0cGFpcigpIHVzZWQgZm9yIGNvbnRyb2wgc2hvdWxkIG5vdCBiZSBtYWRlIE9fTk9OQkxPQ0suCgkgIElmIHRoZXJlJ3MgYW55IHByb3BhZ2F0aW9uIGRlbGF5IGJldHdlZW4gc2V0LT5jb250cm9sX3dyaXRlX2ZkLmZkIGFuZAoJICBzZXQtPmNvbnRyb2xfcmVhZF9mZC5mZCwgZXZlbiB0aGUgbXV0ZXggbm93IGhlbGQgd2lsbCBub3QgYmUgc3VmZmljaWVudCB0bwoJICBwcmV2ZW50IGEgcmFjZSBjb25kaXRpb24uICBUaGVyZSdzIG5vIGJlbmVmaXQgdG8gdXNpbmcgT19OT05CTE9DSywgaGVyZS4KCSAgT25seSBsaWFiaWxpdGllcy4KCSAgRm9yIFdpbmRvd3MsIGl0J3MgbmVjZXNzYXJ5IHRvIGZpeCB0aGUgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0ZXN0aW5nCgkgIHNldC0+Y29udHJvbF9wZW5kaW5nIGFuZCBwZXJmb3JtaW5nIFdBS0VfRVZFTlQoKS9SRUxFQVNFX0VWRU5UKCkuICBUaGlzIGlzCgkgIGFjY29tcGxpc2hlZCBieSBhY3F1aXJpbmcgYW5kIGhvbGRpbmcgc2V0LT5sb2NrLCBmb3IgYm90aCBvZiB0aGVzZSBvcGVyYXRpb25zLgoJICBXZSBjb3VsZCBvcHRpbWl6ZSB0aGUgTGludXggdmVyc2lvbiBieSBtYWtpbmcgdGhpcyBXaW5kb3dzLXNwZWNpZmljLgoJICBGb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgTGludXggaW1wbGVtZW50YXRpb24sIFdpbmRvd3MnIFJFTEVBU0VfRVZFTlQoKQoJICBoYXMgYWxzbyBiZWVuIG1hZGUgdG8gYmxvY2ssIGFsdGhvdWdoIGl0IHNob3VsZCBuZXZlciBoYXBwZW4uCgkgIEFsc28sIGNoYW5nZWQgcmVsZWFzZV93YWtldXAoKSB0byByZXR1cm4gVFJVRSBhbmQgZGVjcmVtZW50IGNvbnRyb2xfcGVuZGluZwoJICBvbmx5IHdoZW4gPiAwLiAgRnVydGhlcm1vcmUsIFJFTEVBU0VfRVZFTlQoKSBpcyBjYWxsZWQgb25seSB3aGVuCgkgIGNvbnRyb2xfcGVuZGluZyA9PSAxLgoJICBGaW5hbGx5LCBjaGFuZ2VkIGNvbnRyb2xfcGVuZGluZyB0byB1c2Ugbm9ybWFsLCBub24tYXRvbWljIGFyaXRobWV0aWMKCSAgb3BlcmF0aW9ucywgc2luY2UgaXQncyBub3cgcHJvdGVjdGVkIGJ5IHNldC0+bG9jay4KCSAgTm90ZTogZXZlbiB0aG91Z2ggdGhlIHVuZGVybHlpbmcgc2lnbmFsaW5nIG1lY2hhbmlzbXMgYXJlIGJsb2NraW5nLAoJICByZWxlYXNlX3dha2V1cCgpIGlzIGVmZmVjdGl2ZWx5IG5vbi1ibG9ja2luZywgYXMgaXQgd2lsbCBvbmx5IGF0dGVtcHQgdG8gcmVhZAoJICBmcm9tIGNvbnRyb2xfcmVhZF9mZC5mZCBhZnRlciBhIGJ5dGUgaGFzIGJlZW4gd3JpdHRlbiB0byBjb250cm9sX3dyaXRlX2ZkLmZkCgkgIG9yIFdhaXRGb3JTaW5nbGVPYmplY3QoKSBhZnRlciBpdCdzIGJlZW4gc2lnbmFsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzOTcKCjIwMTYtMDYtMjggMTU6MDE6MTcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGNoYWluIHVwIEdPYmplY3Q6OmNvbnN0cnVjdGVkKCkgdG8gdGhlIHBhcmVudCBjbGFzcycgaW1wbGVtZW50YXRpb24KCSAgTmVlZGVkIHNvIEdzdEJ1cyBjYW4gYmUgdHJhY2tlZCBieSB0aGUgbGVha3MgdHJhY2VyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MTQxCgoyMDE2LTA2LTI0IDA1OjI2OjA5ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBEb24ndCB1c2UgZXh0ZXJuIHdpdGggZGxsZXhwb3J0CgkgIEdDQyBlbWl0cyBhbiBlcnJvciBmb3IgdGhpcyB3aXRoIC1XZXJyb3I6CgkgIHBsdWdpbi5jOjIyOjE6IGVycm9yOiAnZ3N0X3BsdWdpbl9kZXNjJyBpbml0aWFsaXplZCBhbmQgZGVjbGFyZWQgJ2V4dGVybicgWy1XZXJyb3JdCgkgIFRoaXMgbWF0Y2hlcyBob3cgZ2xpYiBkb2VzIHN5bWJvbCBleHBvcnRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc0NjMKCjIwMTYtMDYtMjEgMTk6NDk6MTUgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICB3aW4zMjogRG9uJ3QgdXNlIGRsbGV4cG9ydC9pbXBvcnQgd2hlbiBvbmx5IGJ1aWxkaW5nIHN0YXRpY2FsbHkKCSAgSWYgdGhlIHByb3RvdHlwZXMgaW4gdGhlIHB1YmxpYyBBUEkgaGF2ZSBkbGxpbXBvcnQgaW4gdGhlbSB3aGVuIGJ1aWxkaW5nCgkgIHN0YXRpY2FsbHkgb24gV2luZG93cywgdGhlIGNvbXBpbGVyIHdpbGwgbG9vayBmb3Igc3ltYm9scyB3aXRoIHN5bWJvbAoJICBtYW5nbGluZyBhbmQgaW5kaXJlY3Rpb24gY29ycmVzcG9uZGluZyB0byBhIERMTC4gVGhpcyB3aWxsIGNhdXNlIGEgYnVpbGQKCSAgZmFpbHVyZSB3aGVuIHRyeWluZyB0byBsaW5rIHRlc3RzL2V4YW1wbGVzL2V0Yy4KCSAgRXh0ZXJuYWwgdXNlcnMgb2YgR1N0cmVhbWVyIGFsc28gbmVlZCB0byBkZWZpbmUgLURHU1RfU1RBVElDX0NPTVBJTEFUSU9OCgkgIGlmIHRoZXkgd2FudCB0byBsaW5rIHRvIHN0YXRpYyBnc3RyZWFtZXIgbGlicmFyaWVzIG9uIFdpbmRvd3MuCgkgIEEgc2ltaWxhciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggaGFzIGJlZW4gY29tbWl0dGVkIHRvIGFsbCBnc3RyZWFtZXIKCSAgcmVwb3NpdG9yaWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3NDYzCgoyMDE2LTA2LTIxIDExOjQ1OjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFjMmY2NDcgdG8gZjM2M2IzMgoKMjAxNi0wNi0xNSAxNjoyNDoyNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IGFkZCBhIHRlc3QgZm9yIHNtYWxsIHJpbmcgYnVmZmVyIHNpemVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc2ODgKCjIwMTYtMDYtMTUgMTM6NDM6NTkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggY3Jhc2ggZGVsZXRpbmcgY3VycmVudCByZWdpb24gZm9yIHNtYWxsIHJpbmcgYnVmZmVycwoJICBFbnN1cmUgd2UgZG8gbm90IGF0dGVtcHQgdG8gZGVzdHJveSB0aGUgY3VycmVudCByYW5nZS4gRG9pbmcgc28KCSAgY2F1c2VzIHRoZSBjdXJyZW50IG9uZSB0byBiZSBsZWZ0IGRhbmdsaW5nLCBhbmQgaXQgbWF5IGJlIGRlcmVmZXJlbmNlZAoJICBsYXRlciwgbGVhZGluZyB0byBhIGNyYXNoLgoJICBUaGlzIGNhbiBoYXBwZW4gd2l0aCBhIHZlcnkgc21hbGwgcXVldWUyIHJpbmcgYnVmZmVyICgxMDAwMCBieXRlcykKCSAgYW5kIDQga0IgYnVmZmVycy4KCSAgcmVwcm8gY2FzZToKCSAgZ3N0LWxhdW5jaC0xLjAgZmFrZXNyYyBzaXpldHlwZT0yIHNpemVtYXg9NDA5NiAhIFwKCSAgcXVldWUyIHJpbmctYnVmZmVyLW1heC1zaXplPTEwMDAgISBmYWtlc2luayBzeW5jPXRydWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzY4OAoKMjAxNi0wNi0yMCAxMTozNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgdGVzdHM6IGdzdG9iamVjdDogZml4IHR5cG8gaW4gdGVzdCBuYW1lCgoyMDE2LTA2LTE2IDE0OjA4OjAxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmc6IGZpeCByZWZlcmVuY2UgdG8gcmVuYW1lZCBmdW5jCgoyMDE2LTA2LTA4IDEyOjM0OjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFByb3Blcmx5IGhhbmRsZSByZXR1cm4gdmFsdWUgd2hlbiBvbmx5IDEgcGFkCgkgIFRoaXMgcGF0Y2ggaGFuZGxlIHRoZSBjYXNlIHdoZW4geW91IGhhdmUgMSBwYWQgKHNvIHRoZSBmYXN0IHBhdGggaXMKCSAgYmVpbmcgdXNlZCkgYnV0IHRoaXMgcGFkIGlzIHJlbW92ZWQuIElmIHdlIGFyZSBpbiBhbGxvdy1ub3QtbGlua2VkLCB3ZQoJICBzaG91bGQgcmV0dXJuIEdTVF9GTE9XX09LLCBvdGhlcndpc2UsIHdlIHNob3VsZCByZXR1cm4gR1NUX0ZMT1dfVU5MSU5LRUQKCSAgYW5kIGlnbm9yZSB0aGUgbWVhbmluZ2xlc3MgcmV0dXJuIHZhbHVlIG9idGFpbmVkIGZyb20gcHVzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzQxMwoKMjAxNi0wNi0xNiAxNTo1MjoxNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXBsb3QtdHJhY2VzLnNoOgoJICBnc3QtcGxvdC10cmFjZXMuc2g6IGFkZCBhIHNjcmlwdCB0byBwbG90IGdzdC10cmFjZXIgZ3JhcGhzCgkgIFRoZSBzY3JpcHQgZXh0cmFjdHMgY3B1LXVzYWdlIGRhdGEgZnJvbSBhIHRyYWNlbG9nIGFuZCBwbG90cyBpdCB2aWEgZ251cGxvdC4KCjIwMTYtMDYtMTUgMTY6MTI6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogRml4IHR5cG8KCSAgcGFyYW1hdGVyIC0+IHBhcmFtZXRlcgoKMjAxNi0wNi0xNCAxOToxNjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZsZXNoIG91dCBHU1RfUFRSX0ZPUk1BVCBkb2NzIGEgYml0CgoyMDE2LTA2LTEzIDE4OjMzOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXBkYXRlIHN0YXJ0IHRpbWUgd2hlbiBsb3Npbmcgc3RhdGUgb25seSBpZiB3ZSB3ZXJlIGluIFBMQVlJTkcKCSAgSWYgd2Ugd2VyZSBpbiBQQVVTRUQsIHRoZSBjdXJyZW50IGNsb2NrIHRpbWUgYW5kIGJhc2UgdGltZSBkb24ndCBoYXZlIG11Y2ggdG8KCSAgZG8gd2l0aCB0aGUgcnVubmluZyB0aW1lIGFueW1vcmUgYXMgdGhlIGNsb2NrIG1pZ2h0IGhhdmUgYWR2YW5jZWQgd2hpbGUgd2UKCSAgd2VyZSBQQVVTRUQuIFRoZSBzeXN0ZW0gY2xvY2sgZG9lcyB0aGF0IGZvciBleGFtcGxlLCBhdWRpbyBjbG9ja3Mgb2Z0ZW4gZG9uJ3QuCgkgIFVwZGF0aW5nIHRoZSBzdGFydCB0aW1lIGluIFBBVVNFRCB3aWxsIGNhdXNlIGEpIHRoZSB3cm9uZyBwb3NpdGlvbiB0byBiZQoJICByZXBvcnRlZCwgYikgc3RlcCBldmVudHMgdG8gc3RlcCBub3QganVzdCB0aGUgcmVxdWVzdGVkIGFtb3VudCBidXQgdGhlIGFtb3VudAoJICBvZiB0aW1lIHdlIHNwZW50IGluIFBBVVNFRC4gVGhlIHN0YXJ0IHRpbWUgc2hvdWxkIG9ubHkgZXZlciBiZSB1cGRhdGVkIHdoZW4KCSAgZ29pbmcgZnJvbSBQTEFZSU5HIHRvIFBBVVNFRCB0byByZW1lbWJlciB0aGUgY3VycmVudCBydW5uaW5nIHRpbWUgKHRvIGJlIGFibGUKCSAgdG8gY29tcGVuc2F0ZSBsYXRlciB3aGVuIGdvaW5nIHRvIFBMQVlJTkcgZm9yIHRoZSBjbG9jayB0aW1lIGFkdmFuY2luZyB3aGlsZQoJICBQQVVTRUQpLCBub3Qgd2hlbiB3ZSBhcmUgYWxyZWFkeSBpbiBQQVVTRUQuCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgS2lzaG9yZSBBcmVwYWxsaSA8a2lzaG9yZS5hcmVwYWxsaUBnbWFpbC5jb20+CgkgIFRoZSB1cGRhdGluZyBvZiB0aGUgc3RhcnQgdGltZSB3aGVuIHRoZSBzdGF0ZSBpcyBsb3N0IHdhcyBhZGRlZCBpbiBjb21taXQKCSAgYmE5NDNhODJjMGJiZmQxN2M5ZWU5ZjUwNjhkNDRjOWQ5Mjc0ZmQxMyB0byBmaXggdGhlIHBvc2l0aW9uIHJlcG9ydGluZyB3aGVuCgkgIHRoZSBzdGF0ZSBpcyBsb3N0LiBUaGlzIHN0aWxsIHdvcmtzIGNvcnJlY3RseSBhZnRlciB0aGlzIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTI4OQoKMjAxNi0wNi0xMSAyMjoxODowNiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBMb2cgcGFkIG9mZnNldHMgYXMgc2lnbmVkIHRpbWVzCgoyMDE2LTA2LTExIDIxOjU2OjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsc28gY2hlY2sgdGhlIG51bWJlciBvZiBzZWdtZW50IGV2ZW50cyBhbmQgaWYgb3RoZXIgc2VyaWFsaXplZCBldmVudHMgYW5kIHF1ZXJpZXMgdHJpZ2dlciBzZWdtZW50IHVwZGF0aW5nIHRvbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDQ5CgoyMDE2LTA2LTExIDIxOjM3OjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB1bml0IHRlc3QgZm9yIHBhZCBvZmZzZXQgaGFuZGxpbmcgb24gc3JjIHBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA0OQoKMjAxNi0wNi0wNyAxMTozMjo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogUmVuYW1lIGZ1bmN0aW9ucyBhbmQgaW1wbGVtZW50IG5ldyBmdW5jdGlvbnMsIHVwZGF0ZSB0ZXN0CgkgIFdlIGRvbid0IGRvIGNhbGN1bGF0aW9ucyB3aXRoIGRpZmZlcmVudCB1bml0cyAoYnVmZmVyIG9mZnNldHMgYW5kIGJ5dGVzKQoJICBhbnltb3JlIGJ1dCBoYXZlIGZ1bmN0aW9ucyBmb3I6CgkgIDEpIGdldHRpbmcgdGhlIG51bWJlciBvZiBieXRlcyBzaW5jZSB0aGUgbGFzdCBkaXNjb250CgkgIDIpIGdldHRpbmcgdGhlIG9mZnNldCAoYW5kIHB0cy9kdHMpIGF0IHRoZSBsYXN0IGRpc2NvbnQKCSAgYW5kIHRoZSBwcmV2aW91c2x5IGFkZGVkIGZ1bmN0aW9uIHRvIGdldCB0aGUgbGFzdCBvZmZzZXQgYW5kIGl0cyBkaXN0YW5jZSBmcm9tCgkgIHRoZSBjdXJyZW50IGFkYXB0ZXIgcG9zaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NDcKCjIwMTYtMDUtMTkgMTA6MzE6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBtZXRob2RzIHRvIHF1ZXJ5IGN1cnJlbnQgb2Zmc2V0CgkgIEFQSTogZ3N0X2J1ZmZlcl9wcmV2X29mZnNldAoJICBBUEk6IGdzdF9idWZmZXJfZ2V0X29mZnNldF9mcm9tX2Rpc2NvbnQKCSAgVGhlIGdzdF9idWZmZXJfZ2V0X29mZnNldF9mcm9tX2Rpc2NvbnQoKSBtZXRob2QgYWxsb3dzIHJldHJpZXZpbmcgdGhlIGN1cnJlbnQKCSAgb2Zmc2V0IGJhc2VkIG9uIHRoZSBHU1RfQlVGRkVSX09GRlNFVCBvZiB0aGUgYnVmZmVycyB0aGF0IHdlcmUgcHVzaGVkIGluLgoJICBUaGUgb2Zmc2V0IHdpbGwgYmUgc2V0IGluaXRpYWxseSBieSB0aGUgR1NUX0JVRkZFUl9PRkZTRVQgb2YKCSAgRElTQ09OVCBidWZmZXJzLCBhbmQgdGhlbiBpbmNyZW1lbnRlZCBieSB0aGUgc2l6ZXMgb2YgdGhlIGZvbGxvd2luZwoJICBidWZmZXJzLgoJICBUaGUgZ3N0X2J1ZmZlcl9wcmV2X29mZnNldCgpIG1ldGhvZCBhbGxvd3MgcmV0cmlldmVudCB0aGUgcHJldmlvdXMKCSAgR1NUX0JVRkZFUl9PRkZTRVQgcmVnYXJkbGVzcyBvZiBmbGFncy4gSXQgd29ya3MgaW4gdGhlIHNhbWUgd2F5IGFzCgkgIHRoZSBvdGhlciBnc3RfYnVmZmVyX3ByZXZfKigpIG1ldGhvZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY2NDcKCjIwMTYtMDYtMDkgMTc6NDI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oLmluOiBpbmRlbnQgI2lmICNlbHNlIGp1bmdsZSBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDE2LTA2LTA4IDEyOjExOjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IEFkZCBnc3RfcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcoKSBmb3IgY29uc2lzdGVuY3kKCSAgV2UgYWxyZWFkeSBoYWQgYSBfZnVsbCgpIHZlcnNpb24sIGJ1dCBoYXZpbmcgdGhhdCBhbG9uZSBzZWVtcyBpbmNvbnNpc3RlbnQuCgkgIEFkZCBhIG5vbi1mdWxsIHZlcnNpb24gdGhhdCBtaXJyb3JzIHRoZSBiZWhhdmlvdXIgb2YgZ3N0X3BhZF9saW5rKCkgdnMKCSAgZ3N0X3BhZF9saW5rX2Z1bGwoKS4KCjIwMTYtMDUtMjIgMTM6MTA6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1ha2Ugc3VyZSBESVNDT05UIGZsYWdzIGFyZSBwcm9wZXJseSBwcm9wYWdhdGVkCgkgIElmIHdlIGRyb3AgYSBmcmFtZSB0aGF0IGNvbnRhaW5lZCBhIGRpc2NvbnRpbnVpdHksIHdlIG11c3QgcmVtZW1iZXIKCSAgdGhhdCBmb3IgdGhlIG5leHQgZnJhbWUgdGhhdCAqd2lsbCogYmUgcHVzaGVkIGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY3OTUKCjIwMTYtMDYtMDQgMTM6MzE6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSAgZGV2aWNlcHJvdmlkZXI6IHJlbW92ZSBiYXNlX2NsYXNzX2ZpbmFsaXplIGZ1bmN0aW9uCgkgIEl0J3Mgbm90IGdvaW5nIHRvIGdldCBjYWxsZWQgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTQwCgoyMDE2LTA2LTA0IDEzOjExOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIGJhc2VfY2xhc3NfZmluYWxpemVfZnVuYyB3aGljaCBpcyBuZXZlciBjYWxsZWQKCSAgV29uJ3QgYmUgY2FsbGVkIGZvciBzdGF0aWMgdHlwZXMsIHNvIG5vIHBvaW50IGtlZXBpbmcgaXQgYXJvdW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTQwCgoyMDE2LTA2LTAzIDEzOjU1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkgIHRyYWNlcnM6IGxlYWtzOiBzb21lIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgLSB3ZSBrbm93IG51bWJlciBvZiBmaWx0ZXIgaXRlbXMgaXMgbm90IGdvaW5nIHRvIGNoYW5nZSwKCSAgYnV0IGNvbXBpbGVyIGRvZXNuJ3QKCSAgLSBvbmx5IGRvIEdTVF9JU19UUkFDRVIgY2hlY2sgZm9yIEdPYmplY3RzLCBub3QgbWluaSBvYmplY3RzCgkgIC0gdXNlIG5vbi10eXBlIGNoZWNrIGNhc3QgbWFjcm9zIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzCgoyMDE2LTA1LTEwIDA5OjI5OjEyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxlYWtzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsZWFrcy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBhZGQgbGVha3MgdHJhY2VyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMzAgMTI6MTE6MTMgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBVc2UgTUFZX0JFX0xFQUtFRF9GTEFHCgkgIFRoaXMgaGVscHMgaGF2aW5nICJtYWtlIGNoZWNrIiBwYXNzaW5nIHdpdGggdGhlIGxlYWtzIHRyYWNlciBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2MDA4CgoyMDE2LTA1LTA5IDE2OjMxOjM2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjaW5nOiBhZGQgaG9va3Mgd2hlbiBvYmplY3RzIG9yIG1pbmlvYmplY3RzIGFyZSBjcmVhdGVkIGFuZCBkZXN0cm95ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0wOSAxNjo1Njo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdF9kZWluaXQ6IG1vdmUgZG93biB0cmFjZXJzIGNsZWFuaW5nCgkgIFdlIHdhbnQgdGhlIHRyYWNlciBkZXRlY3RpbmcgbGVha3MgdG8gYmUgZmluYWxpemVkIGFzIGxhdGUgYXMgcG9zc2libGUKCSAgdG8gZ2l2ZSB0aGUgY2hhbmNlIHRvIG90aGVyIGdzdCBjb21wb25lbnRzIHRvIGJlIHByb3Blcmx5IGNsZWFuZWQgZmlyc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwNTIKCjIwMTYtMDUtMTAgMTE6MDY6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogcGx1Z2luOiByZW1vdmUgZmVhdHVyZSByZWZjb3VudCBhc3NlcnQKCSAgVGhpcyBjaGVjayBmYWlscyBpZiBvbmUsIG9yIG1vcmUsIHRyYWNlcnMgYXJlIGxvYWRlZCB3aGlsZSBydW5uaW5nIHRoZQoJICB0ZXN0LiBUaGUgbmV3ICJsZWFrcyIgdHJhY2VyIHdpbGwgYmUgYWJsZSB0byBjaGVjayBmb3IgbGVha3MgYW55d2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1MDUyCgoyMDE2LTA0LTE0IDEyOjI1OjQzICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdHJhY2VycmVjb3JkOiBhbGxvdyBHX1RZUEVfUE9JTlRFUiBmb3IgZmllbGQgdHlwZXMKCSAgVHJhY2VycyBtYXkgd2FudCB0byBkaXNwbGF5IHRoZSBhZGRyZXNzIG9mIGFuIG9iamVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTA1MgoKMjAxNi0wNS0zMCAxMzo0MjozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBzcGxpdCB1cCBuYW1lIHRlc3RzCgkgIEl0IGlzIGJldHRlciB0byBoYXZlIHNlcGFyYXRlIHRlc3RzOgoJICAxKSB0aGUgdGVzdCBuYW1lIHdpbGwgdGVsbCB3aGF0IGlzIGJyb2VrbiB3aGVuIHRoZSB0ZXN0IGZhaWxzCgkgIDIpIHdlIHN0aWxsIHJ1biB0aGUgb3RoZXIgdGVzdHMgd2hlbiBvbmUgYXNzZXJ0IGZhaWxzCgkgIDMpIHRoZSB0ZXN0cyBhcmUgZWFzaWVyIHRvIHVuZGVyc3RhbmQKCSAgNCkgd2UgZG9uJ3QgcmVseSBvbiBzaWUgZWZmZWN0IG9mIHByZXZpb3VzIGFjdGlvbnMKCSAgNSkgLi4uCgkgIEFsc28gaXggdGhlIGFzc2VydGlvbiBtZXNzYWdlIGZvciB0aGUgbmFtZSBjaGVja3MgKEdzdCAtPiBmYWtlb2JqZWN0KS4KCjIwMTYtMDUtMzAgMDI6MDY6MDEgLTA3MDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jCgkgIFNvbWUgb2YgdGhlIGFwaSB3YXMgcmVuYW1lZCBiZWZvcmUgdGhlIG1lcmdlLgoKMjAxNi0wNS0zMCAwMjowNDoxOCAtMDcwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB4cmVmIHRoZSBmcmVlIGZ1bmN0aW9uIGFuZCBleHBhbmQgYWxsb2NhdGlvbiBxdWVyeSBkb2NzCgkgIEFkZCB4cmVmcyBmb3IgaG93IHRvIHBhcnNlIHBvb2wgZGV0YWlscyBmcm9tIGFuIGFsbG9jYXRpb24gcXVlcnkuCgoyMDE2LTA1LTI2IDE0OjQzOjEwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogQWRkIF9zZXRfbmFtZSgpIHRlc3Qgb24gcGFyZW50ZWQgb2JqZWN0CgkgIFRoaXMgaXMgbm90IGFsbG93ZWQsIGFuZCBzZXRfbmFtZSgpIHNob3VsZCBmYWlsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2OTIzCgoyMDE2LTA1LTI2IDE0OjQxOjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogQ2hlY2sgdGhhdCBuYW1lIGNoYW5nZSBhcmUgbm90aWZpZWQgb25jZQoJICBHT2JqZWN0IGFsbG93IGNhbGxpbmcgZ19vYmplY3Rfbm90aWZ5KCkgd2l0aGluIHNldF9wcm9wZXJ0eSgpIGFuZAoJICB3b24ndCBub3RpZnkgaXQgdHdpY2UuIEFzIGl0IHdhcyByYWlzZWQgZHVyaW5nIHJldmlldywgYWRkIGEgdW5pdCB0ZXN0IHRvCgkgIG1ha2Ugc3VyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjkyMwoKMjAxNi0wNS0yNiAxMzoxNzozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IE5vdGlmeSBuYW1lIGNoYW5nZSB3aGVuIHVzaW5nIF9zZXRfbmFtZSgpCgkgIFRoZXJlIHdhcyBhIDAuMTEgRklYTUUgYWJvdXQgbm90aWZ5aW5nIHRoZSBuYW1lIGNoYW5nZSBvciByZW1vdmluZyB0aGF0CgkgIGZ1bmN0aW9uLiBDbGVhcmx5IHdlIGNhbid0IHJlbW92ZSB0aGlzIGZ1bmN0aW9uLCBzbyBsZXQncyBub3RpZnkgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY5MjMKCjIwMTYtMDUtMjUgMTU6MzA6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IEZpeCBnc3Rjb25maWcgaW5jbHVkZQoJICBTaW5jZSBpdCdzIGEgZ2VuZXJhdGVkIGhlYWRlciwgd2UgbmVlZCB0byBzcGVjaWZ5IHRoZSBnc3Qgc3ViZGlyIHNvCgkgIHRoYXQgaXQgZ2V0cyBwcm9wZXJseSBpbmNsdWRlZCBpbiBvdXQtb2YtZGlyIGNvbXBpbGF0aW9uCgoyMDE2LTA1LTI1IDEwOjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdDogbWFrZSBzdXJlIHRvIGluY2x1ZGUgZ3N0Y29uZmlnLmggYWxzbyBpbiBnc3RfcHJpdmF0ZS5oCgkgIEZvciBHU1RfRVhQT1JUIGRlZmluZSBhbmQgYWxzbyB0aGluZ3MgbGlrZSBHU1RfRElTQUJMRV9SRUdJU1RSWS4KCSAgSG9wZWZ1bGx5IGZpeGVzIHRoZSBmb2xsb3dpbmcgYnVpbGQgZmFpbHVyZSBvbiBjZXJiZXJvLWNyb3NzLW1pbmd3MzI6CgkgIGhlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6NTA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9pbXBfX19nc3RfZGlzYWJsZV9yZWdpc3RyeV9jYWNoZScKCjIwMTYtMDUtMjQgMDA6NDA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGctaTogcGFzcyBjb21waWxlciBlbnYgdG8gZy1pci1zY2FubmVyCgkgIEl0J3Mgd2hhdCBpbnRyb3NwZWN0aW9uLm1hayBkb2VzIGFzIHdlbGwuIFNob3VsZAoJICBmaXggc3B1cmlvdXMgYnVpbGQgZmFpbHVyZXMgb24gZ25vbWUtY29udGludW91cy4KCjIwMTYtMDUtMjMgMjE6MTU6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogZy1pOiBwYXNzIGNvbXBpbGVyIHdpdGggcXVvdGVzCgkgIFNvIENDPSJjY2FjaGUgZ2NjIiB3b3JrcyBwcm9wZXJseS4KCjIwMTYtMDUtMjMgMjE6MDY6NTMgKzAxMDAgIFJheSBTdHJvZGUgPHJzdHJvZGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBhdHRlbXB0IHRvIGZpeC90cmFjay1kb3duIG15c3RlcmlvdXMgZ25vbWUtY29udGludW91cyBidWlsZCBmYWlsdXJlcwoKMjAxNi0wNS0yMyAxODowMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogb25seSB1bnNldCBHVmFsdWUgaWYgaXQgd2FzIGluaXRlZAoJICBBbmQgYWRkIHNvbWUgZnVuY3Rpb24gZ3VhcmRzLiBGcm9tIEdMaWIgMi40OCBvbiBpdCBpcwoJICBhbGxvd2VkIHRvIHBhc3MgYW4gdW5pbml0aWFsaXNlZCBHVmFsdWUgdG8gZ192YWx1ZV91bnNldCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzYyCgoyMDE2LTA1LTIzIDE4OjQ0OjAxICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGdzdC9wYXJzZTogQWxzbyBwYXNzIC1ER1NUX0VYUE9SVFMgaGVyZQoJICBUaGlzIHN0YXRpYyBsaWJyYXJ5IGdldHMgaW5jbHVkZWQgZGlyZWN0bHkgaW50byBsaWJnc3RyZWFtZXItMS4wLnNvLCBzbyBpdCBuZWVkcwoJICB0aGUgc2FtZSBHU1RfRVhQT1JUUyBkZWZpbml0aW9uIGFzIHRoZSByZXN0IG9mIHRoZSBjb2RlIHRoYXQncyBjb21waWxlZCBpbnRvCgkgIHRoYXQgb3RoZXJ3aXNlIGl0IHdpbGwgdHJ5IHRvIGZpbmQgdGhlIGNvbnN0YW50cyBpdCB1c2VzIGZyb20gZ3N0aW5mbyB2aWEgRExMCgkgIGltcG9ydGluZyAoX19kZWNsc3BlYyhkbGxpbXBvcnQpKS4KCSAgRml4ZXMgaHR0cHM6Ly9jaS5nc3RyZWFtZXIubmV0L2pvYi9jZXJiZXJvLWNyb3NzLW1pbmd3MzIvNDM5My8KCjIwMTYtMDUtMjAgMDA6MjQ6NTQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IEFsd2F5cyB1c2UgZGxsZXhwb3J0L2ltcG9ydCBvbiBXaW5kb3dzCgkgIF9fZGVjbHNwZWMoZGxsZXhwb3J0L2ltcG9ydCkgYXJlIHN1cHBvcnRlZCBieSBHQ0MgYW5kIGFyZSBuZWVkZWQgZm9yCgkgIHByb3Blcmx5IGdlbmVyYXRpbmcgY29kZSB0aGF0IGZldGNoZXMgdGhlIHZhbHVlcyBvZiBjb25zdGFudHMgZnJvbSBETExzCgkgIGJ1aWx0IHdpdGggX19kZWNsc3BlYyhkbGxleHBvcnQpIHdoaWNoIGhhcHBlbnMgd2hlbiBhbnl0aGluZyB1c2luZwoJICBHU1RfRVhQT1JUIGlzIGJ1aWx0IHdpdGggTVNWQy4KCSAgU2VlOiBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5LzYxOXcxNGRzLmFzcHgKCSAgRXNzZW50aWFsbHksIGlmIHlvdSBidWlsdCBnc3RyZWFtZXIgd2l0aCBNU1ZDIGFuZCB0aGVuIHRyaWVkIHRvIHVzZQoJICBjb25zdGFudHMgZnJvbSBpdCAoc3VjaCBhcyBHU1RfVFlQRV9DQVBTKSBpbiBhIHBsdWdpbiwgR0NDIHdvdWxkCgkgIHJldHJpZXZlIHRoZSBhZGRyZXNzIG9mIHRoZSB2YWx1ZSBpbnN0ZWFkIG9mIHRoZSB2YWx1ZSBpdHNlbGYuCgoyMDE2LTA1LTE5IDExOjI3OjM2IC0wMzAwICBEYW5pbG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgPGRhbmlsby5jZXNhckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IG1ha2UgZ2l0LXVwZGF0ZS5zaCBidWlsZCB3aXRoIGFsbCBjb3JlcyBhdmFpbGFibGUKCSAgVGhlIGdpdC11cGRhdGUuc2ggbm93IGJ1aWxkcyB3aXRoIGFsbCBjb3JlcyBhdmFpbGFibGUuIEluIGNhc2Ugb2YKCSAgZmFpbHVyZSBpdCBkZWZhdWx0cyB0byAxCgkgIFRoZSBkZXZlbG9wZXIgY2FuIHN0aWxsIG92ZXJyaWRlIHRoaXMgYnkgc2V0dGluZyAtaiB0byBzb21ldGhpbmcgZWxzZQoJICBpbiBNQUtFRkxBR1MsIGFzIHN0YXRlZCBieSAyOTk2MDVkZmUyZjk3ZmNhMzMwMTYxZmYwMWEzOTJlMWE4NWZlNDIyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY2NjY2CgoyMDE2LTA1LTA0IDEzOjUzOjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgKG1pbmkpb2JqZWN0OiBhZGQgTUFZX0JFX0xFQUtFRCBmbGFnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYwMDgKCjIwMTYtMDUtMTUgMTQ6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBlbWl0IGRlZXAtZWxlbWVudC17YWRkZWQscmVtb3ZlZH0gZm9yIGNoaWxkcmVuIG9mIG5ld2x5LWFkZGVkL3JlbW92ZWQgYmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzg5MzMKCjIwMTYtMDUtMTQgMTA6NTU6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFkZCAiZGVlcC1lbGVtZW50LWFkZGVkIiBhbmQgImRlZXAtZWxlbWVudC1yZW1vdmVkIiBzaWduYWxzCgkgIFRoaXMgbWVhbnMgYXBwbGljYXRpb25zIGFuZCBiaW4gc3ViLWNsYXNzZXMgY2FuIGVhc2lseSB0cmFjayB3aGVuCgkgIGEgbmV3IGNoaWxkIGVsZW1lbnQgaXMgYWRkZWQgdG8gdGhlIHBpcGVsaW5lIHN1Yi1oaWVyYXJjaHkgb3IKCSAgcmVtb3ZlZC4KCSAgQ3VycmVudGx5IGRvZXNuJ3Qgc2lnbmFsIGRlZXAgYWRkZWQvcmVtb3ZlZCBmb3IgZWxlbWVudHMgaW5zaWRlCgkgIGEgYmluIGlmIGEgYmluIGlzIGFkZGVkL3JlbW92ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzg5MzMKCjIwMTYtMDUtMTUgMTU6MDI6NDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogSW1wcm92ZSBJRExFIHByb2JlIGRvY3MKCSAgTWFrZSBpdCBleHBsaWNpdCB0aGF0IHRoZSBwYWQgaXMgb25seSBibG9ja2VkIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBydW5uaW5nLAoJICBhbmQgdGhlIHBhZCB3aWxsIGJlIHVuYmxvY2tlZCBhZ2FpbiBvbmNlIHRoZSBjYWxsYmFjayByZXR1cm5lZC4KCSAgSWYgQkxPQ0sgYW5kIElETEUgYmVoYXZpb3VyIGlzIG5lZWRlZCwgYm90aCBuZWVkIHRvIGJlIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjYwMDIKCjIwMTYtMDUtMTUgMTM6Mjk6NTUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogVXBkYXRlIGZvciBnaXQgbWFzdGVyCgoyMDE2LTAzLTExIDE2OjA0OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogT25seSB1bmJsb2NrIHVwc3RyZWFtIHdhaXRpbmcgZm9yIHRoZSBxdWVyeSBvbmNlIGRvd25zdHJlYW0gaXMgZmluaXNoZWQKCSAgLi4uIHdoZW4gZmx1c2hpbmcgYW5kIGRlYWN0aXZhdGluZyBwYWRzLiBPdGhlcndpc2UgZG93bnN0cmVhbSBtaWdodCBoYXZlIGEKCSAgcXVlcnkgdGhhdCB3YXMgYWxyZWFkeSB1bnJlZmZlZCBieSB1cHN0cmVhbSwgY2F1c2luZyBjcmFzaGVzIG9yIG90aGVyCgkgIGludGVyZXN0aW5nIGVmZmVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTYKCjIwMTYtMDUtMTQgMTc6MzE6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc2luay9zcmM6IFBvc3QgYW4gZXJyb3IgbWVzc2FnZSBpZiA6OnN0YXJ0KCkgZmFpbHMKCSAgVGhlIHN1YmNsYXNzIHNob3VsZCBkbyB0aGF0IGFscmVhZHksIGJ1dCBqdXN0IGluIGNhc2UgZG8gaXQgb3Vyc2VsdmVzIHRvbyBhcyBhCgkgIGZhbGxiYWNrLiBXaXRob3V0IHRoaXMsIGUuZy4gcGxheWJpbiB3aWxsIGp1c3Qgd2FpdCBmb3JldmVyIGlmIHRoaXMgZmFpbHMKCSAgYmVjYXVzZSBpdCBpcyB0cmlnZ2VyZWQgYXMgcGFydCBvZiBhbiBBU1lOQyBzdGF0ZSBjaGFuZ2UuCgoyMDE2LTA1LTE0IDIzOjM2OjQzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBGaXggRU9TIGZvcndhcmRpbmcgb24gUExBWUlORy0+UExBWUlORwoJICBXaGVuIGRvaW5nIGEgdHJhbnNpdGlvbiBmcm9tIFBMQVlJTkcgdG8gUExBWUlORywgd2Ugd2lsbCBmYWlsCgkgIHRvIGZvcndhcmQgYW4gRU9TIG1lc3NhZ2Ugb24gdGhlIGJ1cywgYW5kIG5vb25lIGVsc2Ugd2lsbCBldmVyCgkgIHNlbmQgaXQgYmVjYXVzZSB0aGVyZSdsbCBiZSBubyBhY3R1YWwgc3RhdGUgY2hhbmdlZCBtZXNzYWdlLgoJICBBbGxvdyBFT1MgdGhyb3VnaCBkaXJlY3RseSBpbiB0aGF0IGNhc2UuCgoyMDE2LTA1LTEzIDA5OjQzOjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGRyb3AgTEFURU5DWSBxdWVyaWVzIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgoJICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBwYWQgaW4gdGhlIGludGVybmFsIHBhZHMsIHdoZW4gZm9sZGluZyBmb3IKCSAgTEFURU5DWSBxdWVyaWVzIGl0IHdpbGwganVzdCBkcm9wIHRoZSByZXNwb25zZSBpZiBpdCdzIG5vdCBsaXZlLgoJICBUaGlzIGlzIG1heWJlIG5vdCB0aGUgcHJvcGVyIGZpeCwgYnV0IGl0IHdpbGwganVzdCBhY2NlcHQgdGhlIGZpcnN0CgkgIHBlZXIgcmVzcG9uc2VzLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwYWRzLCBpdCB3aWxsIG9ubHkgdGFrZQoJICB0aGVtIGludG8gYWNjb3VudCBpZiB0aGUgcmVzcG9uc2UgaXMgbGl2ZS4KCSAgVGhpcyAqc2hvdWxkKiBwcm9wZXJseSBoYW5kbGUgdGhlIGFnZ3JlZ2F0aW9uL2ZvbGRpbmcgYmVoYXZpb3VyIG9mCgkgIG11bHRpcGxlIGxpdmUgcGVlciByZXNwb25zZXMsIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUgaGFuZGxpbmcgdGhlCgkgIHNpbXBsZSBvbmUtcGFkLW9ubHktYW5kLWZvcndhcmQgdXNlLWNhc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjM2MAoKMjAxNi0wNC0wNyAwMDo0NjoyMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIFVwZGF0ZSB0aGUgZXhhbXBsZXMgaW4gdGhlIGdzdC1sYXVuY2gtMS4wIG1hbnBhZ2UKCSAgUmVwbGFjZSBlbGVtZW50cyB0aGF0IGRvbid0IGV4aXN0IGFueSBtb3JlIHdpdGggb25lcwoJICB0aGF0IGRvLCBhbmQgaW5zZXJ0IGVsZW1lbnRzIGxpa2UgbXBlZ2F1ZGlvcGFyc2Ugd2hlcmUKCSAgdGhleSBhcmUgbmVlZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MTA1CgoyMDE2LTA0LTAyIDAxOjA1OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZGVidWc6IEluc3RhbnRpYXRlIEdUeXBlIHdoZW4gZHVtcGluZyBkZWJ1ZyBjYXRlZ29yaWVzLgoJICBBIGxvdCBvZiBkZWJ1ZyBjYXRlZ29yaWVzIGFyZSBkZWNsYXJlZCBpbiBlbGVtZW50IGNsYXNzX2luaXQKCSAgZnVuY3Rpb25zLCB3aGljaCBkb24ndCBnZXQgcnVuIHVudGlsIHRoZSBlbGVtZW50IGlzIGZpcnN0IGNyZWF0ZWQKCSAgKG5vdCBqdXN0IHJlZ2lzdGVyZWQgaW4gdGhlIHBsdWdpbiBsb2FkIGZ1bmN0aW9uKS4gVGhpcyBtZWFucwoJICB0aGF0IC0tZ3N0LWRlYnVnLWhlbHAgZG9lc24ndCBwcmludCBvdXQgYSBsb3Qgb2YgY2F0ZWdvcmllcy4KCSAgQ3JlYXRpbmcgYW4gaW5zdGFuY2Ugb2YgZWFjaCBlbGVtZW50IGZyb20gdGhlIGVsZW1lbnQgZmFjdG9yeQoJICBtYWtlcyB0aGVtIHZpc2libGUsIGF0IHNvbWUgZXh0cmEgY29zdCAtIDItMyB0aW1lcyBsb25nZXIsIHdoaWNoIGNhbgoJICBiZSBhIGZ1bGwgc2Vjb25kIG9yIHR3byBvZiBleHRyYSB3YWl0aW5nLiBZaWtlcyEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTAwMQoKMjAxNi0wNS0xMSAxNTowNjozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQgaXMgbm90IGluIFBVTEwgbW9kZQoJICBUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0eXBlLWZvdW5kIHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCgkgIHR5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCgkgIGRlYWRsb2NrcyBhbmQgaXMgaW4gZ2VuZXJhbCB1bmV4cGVjdGVkIGJ5IGVsZW1lbnRzIHRoYXQgYXJlIGluIFBVTEwgbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwNgoKMjAxNi0wNS0xMSAxMjoxNjowOSArMDkwMCAgV29uY2h1bCBMZWUgPHdvbmNodWwubGVlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggd2FybmluZyBvbiBlbnVtIHByb3BlcnRpZXMgcHJpbnRpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NjI1MQoKMjAxNi0wNS0xMCAxNTowMTo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcGFkIHN0YXRlIHdoZW4gZGVhY3RpdmF0aW5nIGZyb20gb25lIG1vZGUgYW5kIHRoZW4gdHJ5aW5nIHRvIGFjdGl2YXRlIGFub3RoZXIgYW5kIGZhaWxpbmcKCSAgV2hlbiBhY3RpdmF0aW5nIGEgcGFkIGluIFBVTEwgbW9kZSwgaXQgbWlnaHQgYWxyZWFkeSBiZSBpbiBQVVNIIG1vZGUuIFdlIG5vdwoJICBmaXJzdCB0cnkgdG8gZGVhY3RpdmF0ZSBpdCBmcm9tIFBVU0ggbW9kZSBhbmQgdGhlbiB0cnkgdG8gYWN0aXZhdGUgaXQgaW4gUFVMTAoJICBtb2RlLiBJZiB0aGUgYWN0aXZhdGlvbiBmYWlscywgd2Ugd291bGQgc2V0IHRoZSBwYWQgdG8gZmx1c2hpbmcgYW5kIHNldCBpdAoJICBiYWNrIHRvIGl0cyBvbGQgbW9kZS4gSG93ZXZlciB0aGUgb2xkIG1vZGUgaXMgd3JvbmcsIHRoZSBwYWQgaXMgbm90IGluIFBVU0gKCSAgbW9kZSBhbnltb3JlIGJ1dCBpbiBOT05FIG1vZGUuCgkgIFRoaXMgZml4ZXMgZS5nLiB0eXBlZmluZCBpbiBkZWNvZGViaW4gcmVhY3RpdmF0aW5nIFBVU0gvUFVMTCBtb2RlIGlmIHVwc3RyZWFtCgkgIGFjdHVhbGx5IGZhaWxzIHRvIGdvIGludG8gUFVMTCBtb2RlIGFmdGVyIGZpcnN0IFBVU0hJTkcgZGF0YSB0byB0eXBlZmluZC4KCjIwMTYtMDMtMTMgMTE6MDU6MjkgLTA0MDAgIEFudGhvbnkgRy4gQmFzaWxlIDxibHVlbmVzc0BnZW50b28ub3JnPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svc3Ryc2lnbmFsLmM6CgkgIGxpYmNvbXBhdC5oOiBzdHJzaWduYWwoKSBzaG91bGQgYmUgbm90IGJlIGRlY2xlYXJlZCBjb25zdAoJICBQT1NJWCBzdGFuZGFyZHMgcmVxdWlyZXMgc3Ryc2lnbmFsKCkgdG8gcmV0dXJuIGEgcG9pbnRlciB0byBhIGNoYXIsCgkgIG5vdCBhIGNvbnN0IHBvaW50ZXIgdG8gYSBjaGFyLiBbMV0gIE9uIHVDbGliYywgYW5kIHBvc3NpYmx5IG90aGVyCgkgIGxpYmMncywgdGhhdCBkbyBub3QgSEFWRV9ERUNMX1NUUlNJR05BTCwgbGliY29tcGF0LmggZGVjbGFyZXMKCSAgY29uc3QgY2hhciAqc3Ryc2lnbmFsIChpbnQgc2lnKSB3aGljaCBjYXVzZXMgYSB0eXBlIGVycm9yLgoJICBbMV0gbWFuIDMgc3Ryc2lnbmFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM1NjcKCjIwMTYtMDUtMDUgMTg6NTA6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBOb3QgdGhhdCBpdCBsb2dzIG11Y2guCgoyMDE2LTA1LTA1IDE4OjAyOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZG9jcyBmb3IgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKQoKMjAxNi0wNS0wNCAxMDowNDozMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlLWxhdW5jaDogZml4IGZhY3RvcnkgbGVhayBpbiB0ZXN0CgkgIFdlIGdldCAyIHJlZmVyZW5jZXMgb25lIGZyb20gZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCkgYW5kIHRoZSBvdGhlcgoJICBmcm9tIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NzYKCjIwMTYtMDUtMDQgMTM6NDY6NDYgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHJlZiBjb3VudCBsZWFrcyBpbiB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTc4CgoyMDE2LTA1LTA0IDA5OjUzOjMyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHV0aWxzOiBmaXggZWxlbWVudCBsZWFrIGluIGZpbmRfY29tbW9uX3Jvb3QoKQoJICBUaGUgcm9vdCBlbGVtZW50IHdhcyBub3QgdW5yZWZmZWQgd2hlbiBpdGVyYXRpbmcgb3ZlciBhbmNlc3RvcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5NjEKCjIwMTYtMDUtMDIgMTc6MzU6MjkgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogZml4IGZlYXR1cmUgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTU3CgoyMDE2LTA1LTAzIDExOjQ5OjAzICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiB1bnJlZiBpbnN0ZWFkIG9mIHVzaW5nIF9nc3RfdXJpX2ZyZWUoKSBkaXJlY3RseQoJICBUaGlzIGNvbmZ1c2VzIGdzdF90cmFjaW5nIGFzIHdlIHNob3J0Y3V0IHRoZSBtaW5pIG9iamVjdCByZWZlcmVuY2UKCSAgc3lzdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTU4CgoyMDE2LTA1LTAyIDA5OjMyOjQ3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zZWVrLmM6CgkgIHBpcGVsaW5lOiBmaXggYnVzIGxlYWsgaW4gc2VlayB0ZXN0CgkgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKCkga2VlcHMgYSByZWYgb24gdGhlIGJ1cyB3aGljaCBzaG91bGQKCSAgYmUgcmVsZWFzZWQgdXNpbmcgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDk6Mjk6MzEgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJICBzdHJlYW1pZGRlbXV4OiBmaXggbGlzdCBhbmQgZXZlbnQgbGVha3MgaW4gdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDA4OjQzOjA0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBmaXggcGFkIGxlYWtzIGluIHRlc3RzCgkgIHNldHVwX2lucHV0X3BhZCgpIGNyZWF0ZXMgYSBuZXcgcGFkIHNvIHdlIHNob3VsZCB1bnJlZiBpdCBvbmNlIHdlJ3JlCgkgIGRvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDg6MzM6NDIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBmaXggYnVmZmVyIGxlYWtzIGluIHRlc3RzCgkgIGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCgpIGludGVybmFsbHkgdXNlcyBnc3RfY2hlY2tfY2hhaW5fZnVuYygpIHNvIHdlCgkgIHNob3VsZCBjYWxsIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMoKSB3aGVuIHRlYXJpbmcgZG93biB0ZXN0cyB0byBmcmVlIHRoZQoJICBidWZmZXJzIHdoaWNoIGhhdmUgYmVlbiBleGNoYW5nZWQgdGhyb3VnaCB0aGUgcGlwZWxpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDMKCjIwMTYtMDUtMDIgMDg6Mjk6MDAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGZpeCBwaXBlbGluZSBsZWFrIGluIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwMwoKMjAxNi0wNS0wMiAwNzozNTo0NSArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGZpeCBmYWN0b3J5IGxlYWsgaW4gdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTAzCgoyMDE2LTA1LTAyIDE2OjAwOjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSAgZGV2aWNlcHJvdmlkZXJmYWN0b3J5OiBmaXggZmFjdG9yeSBsZWFrCgkgIFRoZSBjb2RlIHBhdGggd2hlbiBlYXJseSByZXR1cm5pbmcgd2FzIGxlYWtpbmcgdGhlIGV4dHJhIHJlZmVyZW5jZSBvbgoJICB0aGUgZmFjdG9yeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTkwNAoKMjAxNi0wNC0xMCAxMTo0MjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgQzQxNDY6IHVuYXJ5IG1pbnVzIG9wZXJhdG9yIGFwcGxpZWQgdG8gdW5zaWduZWQgdHlwZSwgcmVzdWx0IHN0aWxsIHVuc2lnbmVkCgoyMDE2LTA0LTI4IDE0OjU5OjUxICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggbGVha3MgaW4gdW5pdCB0ZXN0cwoJICBUaGUgdGVzdCByZWx5IG9uIGJ1cyBiZWluZyBmbHVzaGVkIHdoZW4gc2V0dGluZyB0aGUgYmluIHRvIHRoZSBOVUxMIHN0YXRlIHdoaWNoCgkgIGlzIG5vdCB0aGUgY2FzZS4gVGhpcyBhcHBseSBvbmx5IHdoZW4gc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgdG8KCSAgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTcyMAoKMjAxNi0wNC0yOCAxNDo1NjoxOCArMDMwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJ1ZmZlciBsZWFrcyBpbiB0ZXN0cwoJICBUaGUgYnVmZmVyIHJlY2VpdmVkIHRocm91Z2ggdGhlIHBhZCBoYXZlIHRvIGJlIHVucmVmZmVkIHVzaW5nCgkgIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTcxOQoKMjAxNi0wNC0zMCAxNDoxNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgRml4IHNvbWUgbm9uc2Vuc2ljYWwgZy1pIGFubm90YXRpb25zCgoyMDE2LTA0LTI5IDE0OjU1OjAyICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IElnbm9yZSB0aW1lIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBzcGFyc2Ugc3RyZWFtIGxpbWl0cyBoYXZlIGJlZW4gcmVhY2hlZAoJICBCYXNpY2FsbHksIHNxLT5tYXhfc2l6ZS52aXNpYmxlIGlzIG5ldmVyIGluY3JlYXNlZCBmb3Igc3BhcnNlIHN0cmVhbXMgaW4KCSAgb3ZlcnJ1bmNiIHdoZW4gZW1wdHkgcXVldWUgaGFzIGJlZW4gZm91bmQ7CgkgIElmIHRoZSBxdWV1ZSBpcyBzcGFyc2UgaXQganVzdCBza2lwIHRoZSBlbnRpcmUgbG9naWMgZGV0ZXJtaW5pbmcgd2hldGhlcgoJICBtYXhfc2l6ZS52aXNpYmxlIHNob3VsZCBiZSBpbmNyZWFzZWQsIGRlYWRsb2NraW5nIHRoZSBkZW11eGVyLgoJICBXaGF0IHNob3VsZCBiZSBkb25lIGluc3RlYWQgaXMgdGhhdCB3aGVuIGRldGVybWluaW5nIGlmIGxpbWl0cyBoYXZlIGJlZW4KCSAgcmVhY2hlZCwgdG8gaWdub3JlIHRpbWUgZm9yIHNwYXJzZSBzdHJlYW1zLCBhcyB0aGUgYnVmZmVyIG1heSBiZSBmYXIgaW4gdGhlCgkgIGZ1dHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTczNgoKMjAxNi0wMi0yOCAxMjowNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogQWRkIGdzdF9lbGVtZW50X2NhbGxfYXN5bmMoKQoJICBUaGlzIGNhbGxzIGEgZnVuY3Rpb24gZnJvbSBhbm90aGVyIHRocmVhZCwgYXN5bmNocm9ub3VzbHkuIFRoaXMgaXMgdG8gYmUKCSAgdXNlZCBmb3IgY2FzZXMgd2hlbiBhIHN0YXRlIGNoYW5nZSBoYXMgdG8gYmUgcGVyZm9ybWVkIGZyb20gYSBzdHJlYW1pbmcKCSAgdGhyZWFkLCBkaXJlY3RseSB2aWEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKCkgb3IgaW5kaXJlY3RseSBlLmcuIHZpYSBTRUVLCgkgIGV2ZW50cy4KCSAgQ2FsbGluZyB0aG9zZSBmdW5jdGlvbnMgZGlyZWN0bHkgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aWxsIGNhdXNlCgkgIGRlYWRsb2NrcyBpbiBtYW55IHNpdHVhdGlvbnMsIGFzIHRoZXkgbWlnaHQgaW52b2x2ZSB3YWl0aW5nIGZvciB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZCB0byBzaHV0IGRvd24gZnJvbSB0aGlzIHZlcnkgc3RyZWFtaW5nIHRocmVhZC4KCSAgVGhpcyBpcyBtb3N0bHkgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiBhcm91bmQgYSBHVGhyZWFkUG9vbCBhbmQgaXMgZm9yIGV4YW1wbGUKCSAgdXNlZCBieSBHc3RCaW4gdG8gY29udGludWUgYXN5bmNocm9ub3VzIHN0YXRlIGNoYW5nZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA1MzIKCjIwMTYtMDQtMjcgMDk6MjE6MzEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggYnVmZmVyIG1lbW9yeSBsZWFrIGluIGFwcHNyYyBleGFtcGxlCgkgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSgpIGlzIG5vdCBsaWtlIGdzdF9hcHBfc3JjX3B1c2hfYnVmZmVyKCkgZHVlIHRvIHJlZmVyZW5jZQoJICBjb3VudGluZyBsaW1pdGF0aW9ucyBvZiBzaWduYWxzLCBpdCBkb2VzICpub3QqIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBidWZmZXIuCgoyMDE2LTA0LTI2IDE2OjAyOjE0ICswMzAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBjbGVhbnVwIHByaXYgZnVuY3Rpb24KCSAgVGhvc2UgYXJlIGFsbG9jYXRlZCBpbiBfcHJpdl9nc3RfY2Fwc19pbml0aWFsaXplKCkgc28gaXQgbWFrZXMKCSAgc2Vuc2UgdG8gaGF2ZSBhIHN5bWV0cmljIGNsZWFudXAgZnVuY3Rpb25zIGNhbGxlZCBieSBnc3RfZGVpbml0KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2MDYKCjIwMTYtMDQtMjYgMTY6MDI6MTQgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZTogYWRkIGNsZWFudXAgcHJpdiBmdW5jdGlvbgoJICBUaG9zZSBhcmUgYWxsb2NhdGVkIGluIF9wcml2X2dzdF9jYXBzX2ZlYXR1cmVzX2luaXRpYWxpemUoKSBzbyBpdCBtYWtlcwoJICBzZW5zZSB0byBoYXZlIGEgc3ltZXRyaWMgY2xlYW51cCBmdW5jdGlvbnMgY2FsbGVkIGJ5IGdzdF9kZWluaXQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTYwNgoKMjAxNi0wNC0yMSAxNDo0NTozOSArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogYWRkIGNsb2NrLXR5cGUgcHJvcGVydHkKCSAgVG8gYWxsb3cgdGhlIEdzdFRlc3RDbG9jayB0byBiZSB1c2VkIGFzIGEgR3N0U3lzdGVtQ2xvY2ssIGl0IGlzCgkgIHVzZWZ1bCB0byBpbXBsZW1lbnQgdGhlIGNsb2NrLXR5cGUgcHJvcGVydHkgdGhhdCBHc3RTeXN0ZW1DbG9jawoJICBwcm92aWRlcy4gVGhpcyBhbGxvd3MgR3N0VGVzdENsb2NrIHRvIGJlIHVzZWQgYXMgdGhlIHN5c3RlbSBjbG9jawoJICB3aXRoIGNvZGUgdGhhdCBleHBlY3RzIGEgR3N0U3lzdGVtQ2xvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIxNDcKCjIwMTYtMDQtMjEgMTM6NDk6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IFNhbml0eSBjaGVjayB5ZWFyLCBtb250aCBhbmQgZGF5IHdoZW4gcGFyc2luZyBJU08tODYwMSBzdHJpbmdzCgkgIFBhc3NpbmcgeWVhcnMgPiA5OTk5LCBtb250aHMgPiAxMiBvciBkYXlzID4gMzEgdG8gZ3N0X2RhdGVfdGltZV9uZXcoKSB3aWxsCgkgIGNhdXNlIGFuIGFzc2VydGlvbiBhbmQgZ2VuZXJhbGx5IGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZS4gSW5zdGVhZCBjb25zaWRlciBpdAoJICBhcyBhIHBhcnNpbmcgZXJyb3IgbGlrZSBob3VycyA+IDI0IGFuZCByZXR1cm4gTlVMTC4KCjIwMTYtMDQtMjAgMTE6NDY6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbWVtYmVyIGlmIHdlIGludGVycG9sYXRlZCBEVFMgZnJvbSBQVFMgYW5kIHJlZnJlc2ggaXQgd2hlbmV2ZXIgd2UgdXBkYXRlIHRoZSBQVFMKCSAgT3RoZXJ3aXNlIFBUUyBhbmQgRFRTIHdpbGwgY29tZSBvdXQgb2Ygc3luYyBpZiB1cHN0cmVhbSBjb250aW51ZXMgdG8gcHJvdmlkZQoJICBQVFMgYW5kIG5vdCBEVFMsIGFuZCB3ZSBoYXZlIHRvIHNraXAgc29tZSBkYXRhIGZyb20gdGhlIHN0cmVhbSBvciBQVFMgYXJlIG5vdAoJICBleGFjdGx5IGluY3JlYXNpbmcgd2l0aCB0aGUgZHVyYXRpb24gb2YgZWFjaCBwYWNrZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyNjAKCjIwMTYtMDQtMjAgMTE6NDU6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBGaXggZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmcgYWJvdXQgaW52YWxpZCB0cmFuc2ZlciBhbm5vdGF0aW9uCgkgIGdzdHR5cGVmaW5kaGVscGVyLmM6NDg1OiBXYXJuaW5nOiBHc3RCYXNlOiBpbnZhbGlkICJ0cmFuc2ZlciIgYW5ub3RhdGlvbiBmb3IgZ3NpemU6IG9ubHkgdmFsaWQgZm9yIGFycmF5LCBzdHJ1Y3QsIHVuaW9uLCBib3hlZCwgb2JqZWN0IGFuZCBpbnRlcmZhY2UgdHlwZXMKCjIwMTYtMDQtMTggMTM6MDU6NDAgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGFkZCBjbGVhbnVwIG1ldGhvZAoJICBNYWtlIHRyYWNraW5nIG1lbW9yeSBsZWFrcyBlYXNpZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyMTIKCjIwMTYtMDMtMjUgMTU6NTU6MTggKzAxMDAgIEZyYW5jaXNjbyBWZWxhenF1ZXogPGZyYW5jaXN2QGlmaS51aW8ubm8+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIHRlc3RzOiBwbHVnaW46IGltcHJvdmUgZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MTk5CgoyMDE2LTA0LTE0IDExOjU0OjMyICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNoZWNrIGJ1ZmZlcmluZyBzdGF0dXMgYWZ0ZXIgY2hhbmdpbmcgbG93IHRocmVzaG9sZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzU3CgoyMDE2LTA0LTE0IDAwOjA5OjQ0ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZWNhbGN1bGF0ZSBmaWxsIGxldmVsIGFmdGVyIGNoYW5naW5nIGhpZ2gtdGhyZXNob2xkCgkgIFRoaXMgZW5zdXJlcyB0aGUgZm9sbG93aW5nIHNwZWNpYWwgY2FzZSBpcyBoYW5kbGVkIHByb3Blcmx5OgoJICAxLiBRdWV1ZSBpcyBlbXB0eQoJICAyLiBEYXRhIGlzIHB1c2hlZCwgZmlsbCBsZXZlbCBpcyBiZWxvdyB0aGUgY3VycmVudCBoaWdoLXRocmVzaG9sZAoJICAzLiBoaWdoLXRocmVzaG9sZCBpcyBzZXQgdG8gYSBsZXZlbCB0aGF0IGlzIGJlbG93IHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwKCSAgU2luY2UgbXEtPnBlcmNlbnQgd2Fzbid0IGJlaW5nIHJlY2FsY3VsYXRlZCBpbiBzdGVwICMzIHByb3Blcmx5LCB0aGlzCgkgIGNhdXNlZCB0aGUgbXVsdGlxdWV1ZSB0byBzd2l0Y2ggb2ZmIGl0cyBidWZmZXJpbmcgc3RhdGUgd2hlbiBuZXcgZGF0YSBpcwoJICBwdXNoZWQgaW4sIGFuZCBuZXZlciBwb3N0IGEgMTAwJSBidWZmZXJpbmcgbWVzc2FnZS4gVGhlIGFwcGxpY2F0aW9uIHdpbGwKCSAgaGF2ZSByZWNlaXZlZCBhIDwxMDAlIGJ1ZmZlcmluZyBtZXNzYWdlIGZyb20gc3RlcCAjMiwgYnV0IHdpbGwgbmV2ZXIgc2VlCgkgIDEwMCUuCgkgIEZpeCB0aGlzIGJ5IHJlY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbCBwZXJjZW50YWdlIGR1cmluZwoJICBoaWdoLXRocmVzaG9sZCBwcm9wZXJ0eSBjaGFuZ2VzIGluIHRoZSBzYW1lIG1hbm5lciBhcyBpdCBpcyBkb25lIHdoZW4KCSAgdXNlLWJ1ZmZlcmluZyBpcyBtb2RpZmllZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1NwoKMjAxNi0wNC0xNSAxMzo1MDozMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogV2hlbiBpbml0aWFsaXppbmcgRFRTIGZyb20gUFRTLCByZW1lbWJlciB0aGF0IHdlIGRpZCBzbwoJICBJZiB3ZSBkb24ndCBzdG9yZSB0aGUgdmFsdWUgaW4gcHJldl9kdHMsIHdlIHdvdWxkIG92ZXIgYW5kIG92ZXIgYWdhaW4KCSAgaW5pdGlhbGl6ZSB0aGUgRFRTIGZyb20gdGhlIGxhc3Qga25vd24gdXBzdHJlYW0gUFRTLiBJZiB1cHN0cmVhbSBvbmx5IHByb3ZpZGVzCgkgIFBUUyBldmVyeSBub3cgYW5kIHRoZW4sIHRoZW4gdGhpcyBjYXVzZXMgRFRTIHRvIGJlIHJhdGhlciBzdGF0aWMuCgkgIEZvciBleGFtcGxlIGluIGFkYXB0aXZlIHN0cmVhbWluZyBzY2VuYXJpb3MgdGhpcyBtZWFucyB0aGF0IGFsbCBidWZmZXJzIGluIGEKCSAgZnJhZ21lbnQgd2lsbCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgRFRTIHdoaWxlIHRoZSBQVFMgaXMgcHJvcGVybHkgdXBkYXRlZC4gQXMKCSAgb3VyIHF1ZXVlcyBhcmUgbm93IHByZWZlcnJpbmcgdG8gZG8gYnVmZmVyIGZpbGwgbGV2ZWwgY2FsY3VsYXRpb25zIG9uIERUUywKCSAgdGhpcyBpcyBjYXVzaW5nIGh1Z2UgcHJvYmxlbXMgdGhlcmUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxI2MyNyB3aGVyZSB0aGlzIHBhcnQgb2YKCSAgdGhlIGNvZGUgd2FzIGludHJvZHVjZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUwOTYKCjIwMTYtMDQtMTQgMDk6NTg6MDQgKzAxMDAgIEp1bGllbiBJc29yY2UgPGouaXNvcmNlQHNhbXN1bmcuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZmMmQyMDkgdG8gYWMyZjY0NwoKMjAxNi0wNC0xMyAxNjowODozMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2F0Y2ggZXJyb3JzIGFuZCBmbHVzaGluZyBjYXNlIGFmdGVyIGxvY2sKCSAgVGhpcyBlbnN1cmVzIHdlIGNhbiBub3QgZ2V0IGludG8gYW4gaW5kZWZpbml0ZSB3YWl0IG9uIHRoZQoJICBmb2xsb3dpbmcgY29uZCB2YXIgd2FpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDk5OQoKMjAxNi0wNC0xMyAxNjo0MDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGZpeCB1cCBjYXBzIHByaW50aW5nIGluIHZlcmJvc2UgbW9kZQoJICBBZGQgbWlzc2luZyAnZWxzZScgYW5kIHByaW50IGNhcHMgYW5kIHRhZ2xpc3RzIHdpdGhvdXQgdGhlCgkgIGFubm95aW5nIGR1cGxpY2F0ZSBzdHJpbmcgZXNjYXBpbmcsIG1ha2luZyBib3RoIG5pY2VyIHRvIHJlYWQuCgkgIEZpeGVzIHN0cmluZyBsZWFrIGFuZCBjb3Zlcml0eSBDSUQgMTM1ODQ5Mi4KCjIwMTYtMDQtMTMgMTI6Mzg6MDUgKzAzMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJICBydXNhZ2U6IHByb3Blcmx5IGZyZWUgdGhlIHF1ZXVlIG1lbW9yeQoJICBUaGUgcXVldWUgaXMgYWxsb2NhdGVkIGFzIHBhcnQgb2YgdGhlIHRyYWNlciBzdHJ1Y3Qgc28gd2Ugc2hvdWxkIG5vdAoJICB1c2UgZ19xdWV1ZV9mcmVlKCkgdG8gZnJlZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDk4NQoKMjAxNi0wNC0xMyAxMDoyMToxNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogV2FybiBpZiBhIG1ldGEgaW1wbGVtZW50YXRpb24gaXMgcmVnaXN0ZXJlZCB3aXRob3V0IGluaXQgZnVuY3Rpb24KCSAgVGhpcyBwcmV2aW91c2x5IGNhdXNlZCB1bmluaXRpYWxpemVkIG1lbW9yeSB1bmxlc3Mgc29tZXRoaW5nIGVsc2Ugd2FzCgkgIGluaXRpYWxpemluZyBhbGwgdGhlIGZpZWxkcyBleHBsaWNpdGx5IHRvIHNvbWV0aGluZy4KCSAgVG8gYmUgb24gdGhlIHNhZmUgc2lkZSwgd2UgYWxzbyBhbGxvY2F0ZSBtZXRhcyB3aXRob3V0IGluaXQgZnVuY3Rpb24gdG8gYWxsCgkgIHplcm9lcyBub3cgYXMgaXQgd2FzIHJlbGF0aXZlbHkgY29tbW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTAyCgoyMDE2LTA0LTEyIDE1OjE3OjM2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBSZXZlcnQgImJhc2VzaW5rOiBUYWtlIFBSRVJPTExfTE9DSyBpbiB3YWl0X2V2ZW50KCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODI4YTQ2MjdkYjBjYjZhNjcwNmI5NmQ5YmU5N2U1ZTVjN2QyMjIxNS4KCSAgVGhlIGxvY2sgd2FzIGFscmVhZHkgdGFrZW4gZWxzZXdoZXJlLCBpbiBnc3RfYmFzZV9zaW5rX2V2ZW50KCkuCgoyMDE2LTA0LTEyIDE1OjExOjMwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVGFrZSBQUkVST0xMX0xPQ0sgaW4gd2FpdF9ldmVudCgpCgkgIEl0IGlzIGNhbGxpbmcgZG9fc3luYygpLCB3aGljaCByZXF1aXJlcyB0aGUgU1RSRUFNX0xPQ0sgYW5kIFBSRVJPTExfTE9DSyB0byBiZQoJICB0YWtlbi4gVGhlIFNUUkVBTV9MT0NLIGlzIGFscmVhZHkgdGFrZW4gaW4gYWxsIGNhbGxlcnMsIHRoZSBQUkVST0xMX0xPQ0sgbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0OTM5CgoyMDE2LTAyLTExIDA5OjMzOjI4ICswMTAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogYWRkIFBUSFJFQURfQ0ZMQUdTIGZvciBtYWtlIGNoZWNrIHRvIHBhc3Mgb24gT1MgWAoJICBDdXJyZW50bHkgIm1ha2UgY2hlY2siIGZhaWxzIHdpdGg6CgkgICJlcnJvcjogYXJndW1lbnQgdW51c2VkIGR1cmluZyBjb21waWxhdGlvbjogJy1wdGhyZWFkJyIKCSAgUFRIUkVBRF9DRkxBR1Mgbm93IGNvbnRhaW5zIC1RdW51c2VkLWFyZ3VtZW50cyB0byBmaXggdGhhdC4KCSAgRXhwbGFuYXRpb24gaGVyZTogaHR0cDovL3NhdmFubmFoLmdudS5vcmcvcGF0Y2gvPzgxODYjY29tbWVudDIxCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc5NTQKCjIwMTYtMDQtMTEgMTA6NDQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogYmFzZXBhcnNlOiBtYWtlIHdvcmsgd2l0aCBDS19GT1JLPW5vCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0NjkKCjIwMTYtMDQtMTEgMTA6Mjc6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTIuYzoKCSAgdGVzdHM6IHRyYW5zZm9ybTE6IG1ha2UgdGVzdCB3b3JrIHdpdGggQ0tfRk9SSz1ubwoJICBXZSBuZWVkIHRvIGNsZWFyIHNvbWUgZ2xvYmFsIHN0YXRlIGFuZCByZWdpc3RlciBhIG5ldyB0ZXN0CgkgIGJhc2V0cmFuc2Zvcm0gc3ViY2xhc3MgZm9yIGVhY2ggdGVzdCBiZWNhdXNlIHdlIGRvIHRoaW5ncwoJICBpbiBjbGFzc19pbml0IGJhc2Ugb24gZ2xvYmFsIHN0YXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjQ1OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IGZpeCBmb3IgQ0tfRk9SSz1ubwoJICBSZXNldCBnbG9iYWwgc3RhdGUgd2hlbiBkb25lLCBhbmQgdW5yZWYgc2luayBwYWRzIHRvbwoJICBpbiB0ZWFyZG93biBmdW5jdGlvbiB0byBtYWtlIGl0IHZhbGdyaW5kIGNsZWFuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjI1OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc3RyZWFtaWRkZW11eC5jOgoJICB0ZXN0czogc3RyZWFtaWRkZW11eDogZml4IHdpdGggQ0tfRk9SSz1ubwoJICBDbGVhciBnbG9iYWwgc3RhdGUgd2hlbiBkb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzNDY5CgoyMDE2LTA0LTEwIDIwOjA0OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgdGVzdHM6IGJ1ZmZlcnBvb2w6IGZpeCB3cm9uZyBhc3N1bXB0aW9ucyBhYm91dCBwb2ludGVycyBhbmQgb2JqZWN0IGxpZmVjeWNsZXMKCSAgVGhlIHRlc3QgYXNzdW1lZCB0aGF0IGlmIGEgYnVmZmVyIGhhcyB0aGUgc2FtZSBwb2ludGVyIGFkZHJlc3MgYXMKCSAgYmVmb3JlIGl0IGlzIGluIGZhY3QgdGhlIHNhbWUgbWluaSBvYmplY3QgYW5kIGhhcyBiZWVuIHJlLXVzZWQgYnkKCSAgdGhlIHBvb2wuIFRoaXMgc2VlbXMgdG8gYmUgbW9zdGx5IHRydWUsIGJ1dCBub3QgYWx3YXlzLiBUaGUgYnVmZmVyCgkgIG1pZ2h0IGJlIGRlc3Ryb3llZCBhbmQgd2hlbiBhIG5ldyBidWZmZXIgaXMgY3JlYXRlZCB0aGUgYWxsb2NhdG9yCgkgIG1pZ2h0IHJldHVybiB0aGUgc2FtZSBtZW1vcnkgdGhhdCB3ZSBqdXN0IGZyZWVkLgoJICBJbnN0ZWFkIGF0dGFjaCBhIHFkYXRhIHdpdGggZGVzdHJveSBub3RpZnkgZnVuY3Rpb24gdG8gYnVmZmVyCgkgIGluc3RhbmNlcyB3ZSB3YW50IHRvIHRyYWNrIHRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyIGFjdHVhbGx5CgkgIGdldHMgZmluYWxpemVkIHJhdGhlciB0aGFuIHJlc3VycmVjdGVkIGFuZCBwdXQgYmFjayBpbnRvIHRoZSBwb29sLgoKMjAxNi0wNC0xMCAxODozNzozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRvY3M6IHB3ZzogcmVtb3ZlIGJyb2tlbiByZWZlcmVuY2VzIHRvIGV4YW1wbGUgY29kZQoJICBXZSBwb2ludCB0byBnc3QtdGVtcGxhdGUgYXQgdGhlIGJlZ2lubmluZyB0aGF0IHNob3VsIGJlCgkgIGVub3VnaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzU3NQoKMjAxNi0wNC0wOCAxMzoyNjo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZG9uJ3QgcnVuIHRyYWNlcnJlY29yZCBpbiB2YWxncmluZCBmb3Igbm93CgkgIEJlY2F1c2Ugb2YgdGhlIHdheSB3ZSBpbXBsZW1lbnQgbG9nZ2luZyBhbmQgYWRkaW5nL3JlbW92aW5nCgkgIGxvZyBmdW5jdGlvbnMgY3VycmVudGx5ICh3ZSBsZWFrIGEgR0xpc3Qgb24gcHVycG9zZSkgdGhpcwoJICB0ZXN0IGxlYWtzLgoKMjAxNi0wMy0wNSAxNzo1MTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IHVzZSBuZXcgYXN5bmMgcHJvcGVydHkgY2hhbmdlIG5vdGlmaWNhdGlvbiBBUEkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzE0MgoKMjAxNi0wMy0wNSAxNDoxMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBBUEkgdG8gZ2V0IHByb3BlcnR5IGNoYW5nZSBub3RpZmljYXRpb25zIHZpYSBtZXNzYWdlcwoJICBCZSBub3RpZmllZCBpbiB0aGUgYXBwbGljYXRpb24gdGhyZWFkIHZpYSBidXMgbWVzc2FnZXMgYWJvdXQKCSAgbm90aWZ5OjoqIGFuZCBkZWVwLW5vdGlmeTo6KiBwcm9wZXJ0eSBjaGFuZ2VzLCBpbnN0ZWFkIG9mCgkgIGhhdmluZyB0byBkZWFsIHdpdGggaXQgaW4gYSBub24tYXBwbGljYXRpb24gdGhyZWFkLgoJICBBUEk6IGdzdF9lbGVtZW50X2FkZF9wcm9wZXJ0eV9ub3RpZnlfd2F0Y2goKQoJICBBUEk6IGdzdF9lbGVtZW50X2FkZF9wcm9wZXJ0eV9kZWVwX25vdGlmeV93YXRjaCgpCgkgIEFQSTogZ3N0X2VsZW1lbnRfcmVtb3ZlX3Byb3BlcnR5X25vdGlmeV93YXRjaCgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3Byb3BlcnR5X25vdGlmeSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfcHJvcGVydHlfbm90aWZ5KCkKCSAgQVBJOiBHU1RfTUVTU0FHRV9QUk9QRVJUWV9OT1RJRlkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzE0MgoKMjAxNi0wNC0wNyAyMDoyOToxMCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgdGVzdHM6IEFkZCBDKysgdGVzdHMgZm9yIHRoZSBvdGhlciBJTklUIG1hY3JvcyB3ZSBoYXZlCgoyMDE2LTA0LTA2IDE3OjE5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNwcC5jYzoKCSAgdGVzdHM6IGdzdGNwcDogZmxlc2ggb3V0IEMrKyB0ZXN0IHNvIHdlIGNhbiBhZGQgbW9yZSBiaXRzCgkgIExpa2UgYSBjaGVjayBmb3IgR1NUX01BUF9JTkZPX0lOSVQuCgoyMDE2LTA0LTA2IDE2OjQ4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogdXNlIGNhdGNoLWFsbCBpbmNsdWRlcyBmb3IgYysrIGdzdCBsaWJzIGluY2x1ZGUgdGVzdAoJICBTbyB3ZSBnZXQgYW55IG5ldyBoZWFkZXIgZmlsZXMgYXMgd2VsbCBhcyB0aGV5J3JlIGFkZGVkLgoKMjAxNi0wNC0wNiAxNzoyMzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggQysrIGNvbXBpbGVyIHdhcm5pbmdzIHdpdGggR1NUX01BUF9JTkZPX0lOSVQKCjIwMTYtMDQtMDQgMTA6Mjg6MTggKzAwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGNoZWNrIHRoZSBjb3JyZWN0IGVsZW1lbnQncyBzdGF0ZSBvbiBnaG9zdGluZyBwYWRzCgkgIENoZWNraW5nIHRoZSBjdXJyZW50IGVsZW1lbnQncyBzdGF0ZSB3aGVuIHdlJ3JlIGFkZGluZyBwYWRzIHRvCgkgIHRoZSBwYXJlbnQgZWxlbWVudCBpcyBjaGVja2luZyB0aGUgd3JvbmcgdGhpbmcuCgkgIFNpbGVuY2VzIGEgJ2F0dGVtcHRpbmcgdG8gYWRkIGFuIGluYWN0aXZlIHBhZCB0byBhIHJ1bm5pbmcgZWxlbWVudCcKCSAgd2FybmluZyB3aGVuIGFkZGluZyBhIGdob3N0IHBhZCB0byBhIHJ1bm5pbmcgcGFyZW50IGJpbiBvZiB0aGUgcGFyZW50CgkgIGJpbiBvZiB0aGUgZWxlbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDE3NgoKMjAxNi0wMy0yNSAwMToyODoxOCArMDAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IGV4cG9zZSBwYWRfbGlua19tYXliZV9naG9zdGluZwoJICBUaGlzIGlzIGEgdXNlZnVsIGZ1bmN0aW9uIHRvIGF1dG9tYXRpY2FsbHkgYWRkIGdob3N0IHBhZHMgd2hlbiBsaW5raW5nCgkgIHR3byBlbGVtZW50cyBhY3Jvc3MgYmluIGJvdW5kYXJpZXMgd2l0aG91dCBrbm93IHRoZWlyIGV4YWN0IHBhcmVudGFnZS4KCSAgZS5nLiB3aGVuIHVzaW5nIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiAod2l0aCBvciB3aXRob3V0IGl0IGdob3N0aW5nIHBhZHMpLAoJICBvbmUgY2FuIHNpbXBseSByZXRyZWl2ZSB0aGUgc3JjL3NpbmsgcGFkcyBmcm9tIHRoZSBiaW4gdG8gbGluayB0byBhbm90aGVyIHBhZC4KCSAgU2ltaWxhciBmdW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkIGJ5IGdzdF9lbGVtZW50X2xpbmtfcGFkc3tfZnVsbH0oKSBob3dldmVyIG9ubHkKCSAgYnkgcGFkIG5hbWUgcmF0aGVyIHRoYW4gYnkgYWN0dWFsIHBhZHMuCgkgIEFQSTogZ3N0X3BhZF9saW5rX21heWJlX2dob3N0aW5nX2Z1bGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDE3NgoKMjAxNi0wNC0wMyAyMzozNTo0NiAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6IHNwZWxsaW5nIGZpeAoKMjAxNS0wNS0xNSAxMzozNjowNCArMDEwMCAgTWFyayBDb21iZWxsYWNrIDxnbm9tZS1idWd6aWxsYUBjb21iZWxsYWNrLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBHU1RfUkVGQ09VTlRJTkc6IEFkZCBsb2dnaW5nIG9mIHBvaW50ZXIgYWRkcmVzcyBmb3IgZGlzcG9zZSwgZmluYWxpemUsIGV0YyBtZXNzYWdlcwoJICBVcGRhdGVkIHRoZSBHU1RfUkVGQ09VTlRJTkcgbG9nZ2luZyBzbyB0aGF0IGl0IGluY2x1ZGVzIHRoZSBwb2ludGVyCgkgIGFkZHJlc3Mgb2YgdGhlIG9iamVjdCB0aGF0IGlzIGJlaW5nIGRpc3Bvc2VkIG9yIGZpbmFsaXplZC4KCSAgV2l0aCB0aGlzIGNoYW5nZSBpcyBpcyB0aGVuIHBvc3NpYmxlIHRvIG1hdGNoIHVwIEdTVF9SRUZDT1VOVElORyBsb2cgbWVzc2FnZXMKCSAgZm9yIG9iamVjdCBhbGxvY2F0aW9uL2Rpc3Bvc2FsL2ZpbmFsaXphdGlvbi4gVGhpcyBjYW4gaGVscCB3aXRoIGRpYWdub3NpbmcKCSAgIm1lbW9yeSBsZWFrcyIgaW4gYXBwbGljYXRpb25zIHRoYXQgaGF2ZSBub3QgY29ycmVjdGx5IGRpc3Bvc2VkIG9mIGFsbCB0aGUKCSAgR1N0cmVhbWVyIG9iamVjdHMgaXQgY3JlYXRlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTQyNwoKMjAxNi0wMy0zMSAxMTo0NjowMyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG9ubHkgb3BlbiBsb2cgZmlsZSB3aGVuIGFkZGluZyBpdCB0byB0aGUgbG9nIGZ1bmN0aW9uCgkgIFRoaXMgYXZvaWRzIHRoZSBsZWFrIG9mIG9wZW5pbmcgaXQgYW5kIHRoZW4gbm90IHBhc3NpbmcgaXQgb3IgY2xvc2luZyBpdAoJICBiZWZvcmUgaXQgZ29lcyBvdXQgb2Ygc2NvcGUuCgoyMDE2LTA0LTAxIDIyOjQxOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBSZXR1cm4gRkFMU0UgaW4gYWxsIHBhdGhzIHRoYXQgZG9uJ3Qgc2V0IG91dCBwYXJhbWV0ZXJzIGluIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkKCSAgSXQgcmV0dXJuZWQgVFJVRSB3aGVuIHJlZ3Jlc3Npb24gZmFpbGVkLCB3aGlsZSBub3Qgc2V0dGluZyBhbnkgb2YgdGhlIG91dAoJICBwYXJhbWV0ZXJzLiBUaGlzIGNhdXNlZCB1bmluaXRpYWxpemVkIGRhdGEgZnJvbSB0aGUgc3RhY2sgdG8gYmUgdXNlZCBmb3IKCSAgc2V0dGluZyB0aGUgY2xvY2sgY2FsaWJyYXRpb24uCgoyMDE2LTAzLTI0IDE3OjM0OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV3b3JrIHByb2JlJ3MgaG9va19tYXJzaGFsbCBmdW5jdGlvbgoJICBQVVNIIGFuZCBQVUxMIG1vZGUgaGF2ZSBvcHBvc2l0ZSBzY2VuYXJpb3MgZm9yIElETEUgYW5kIEJMT0NLCgkgIHByb2Jlcy4KCSAgRm9yIFBVU0ggaXQgd2lsbCBCTE9DSyB3aXRoIHNvbWUgZGF0YSB0eXBlIGFuZCBJRExFIHdvbid0IGhhdmUgYSB0eXBlLgoJICBGb3IgUFVMTCBpdCB3aWxsIEJMT0NLIGJlZm9yZSBnZXR0aW5nIHNvbWUgZGF0YSBhbmQgd2lsbCBiZSBJRExFIHdoZW4KCSAgc29tZSBkYXRhIGlzIG9idGFpbmVkLgoJICBUaGUgY2hlY2sgaW4gaG9va19tYXJzaGFsbCB3YXMgc3BlY2lmaWMgZm9yIFBVU0ggbW9kZSBhbmQgd291bGQgY2F1c2UKCSAgUFVMTCBwcm9iZXMgdG8gZmFpbCB0byBiZSBjYWxsZWQuIEFkZGluZyBkaWZmZXJlbnQgY2hlY2tzIGZvciB0aGUgbW9kZQoJICB0byBmaXggdGhpcyBpc3N1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMy0yNCAxNzozNDo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBleHRyYSB0ZXN0cyBmb3IgcGFkIHB1bGwgcHJvYmVzCgkgIEZvciBCVUZGRVIgYW5kIElETEUgcHJvYmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDEtMjggMTY6MjI6MTcgKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTIxMQoKMjAxNi0wMy0yNCAxMjoxMzozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNvbnNpZGVyIFBST0JFX1RZUEVfRVZFTlRfRkxVU0ggd2hlbiB1c2luZyBQUk9CRV9UWVBFX0FMTF9CT1RICgkgIFdoZW4gR1NUX1BBRF9QUk9CRV9FVkVOVF9GTFVTSCBpcyB1c2VkLCB0aGUgcHJvYmVzIGFscmVhZHkgaGF2ZQoJICBhIGRhdGEgdHlwZSBhbmQgaXQgaXMgbm90IG5lZWRlZCB0byBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgZGVmYXVsdAoJICB0eXBlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMzMAoKMjAxNi0wMi0xOSAxNjoxODoxMiArMDEwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZCB0ZXN0czogQWRkIGEgdGVzdCBmb3IgZmx1c2ggZXZlbnQgb25seSBwcm9iZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMzMAoKMjAxNi0wMy0yNiAxNzoyMTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBlbnVtL2ZsYWcgcHJvcGVydGllcyBwcmludGluZyBmb3IgZWxlbWVudHMKCSAgV2Ugd2FudCB0byB1c2UgdGhlIGZsYWcvZW51bSBuaWNrcyBoZXJlLCBub3Qgb25seSBiZWNhdXNlIHRoZXkKCSAgYXJlIHNob3J0ZXIgYnV0IGFsc28gYmVjYXVzZSBpbiBjYXNlIG9mIGVsZW1lbnQtc3BlY2lmaWMgZW51bXMKCSAgYW5kIGZsYWdzIHdlIGFidXNlIHRoZSBlbnVtL2ZsYWcgbmFtZSBmaWVsZCBmb3IgdGhlIGRlc2NyaXB0aW9uLAoJICBhbmQgd2UgZG9uJ3Qgd2FudCB0aGF0IHByaW50ZWQgaW4gdGhlIGRvdCBmaWxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzODE0CgoyMDE2LTAzLTIzIDEwOjMxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGFsbG9jdHJhY2U6IHByaW50IHNpemUgYW5kIGFsbG9jYXRvciBkZXRhaWxzIGZvciBidWZmZXJzIGFuZCBtZW1vcmllcwoKMjAxNi0wMi0yOSAxOTowNDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgaXQgcG9zc2libGUgdG8gcmVtb3ZlIGRlZmF1bHQgbG9nIGhhbmRsZXIgYmVmb3JlIGdzdF9pbml0KCkKCSAgTWFrZSBzdXJlIGl0J3Mgbm90IGV2ZW4gYWRkZWQgdGhlbiwgc28gdGhhdCB3ZSBuZXZlciBvdXRwdXQKCSAgYW55dGhpbmcgdmlhIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyIHRoZW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE1MzgKCjIwMTYtMDMtMDUgMTQ6Mjc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgbWluaW9iamVjdCwgbWVtb3J5LCB1cmk6IHdhcm4gb24gdW51c2VkIHJldHVybiB2YWx1ZSBvZiBzb21lIGZ1bmNzCgkgIE1ha2UgY29tcGlsZXIgaXNzdWUgYSB3YXJuaW5nIGZvciBjb21tb24gYmVnaW5uZXIgbWlzdGFrZXMgc3VjaCBhczoKCSAgLi4uCgkgIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSAoYnVmKTsKCSAgZ3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9XUklURSk7CgkgIC4uLgoJICBhbmQgc2ltaWxhci4gT25seSBkbyB0aGlzIGZvciBzb21lIGZ1bmN0aW9ucyBmb3Igbm93LgoKMjAxNi0wMy0yNiAxMToxNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmUgbmV3IG5ldGNsb2NrLXJlcGxheSB0ZXN0aW5nIHRvb2wgYmluYXJ5CgoyMDE1LTEwLTE3IDE4OjAxOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhbGxvdyBwbHVnaW4gYW5kIGZlYXR1cmUgZmlsdGVyIGZ1bmNzIHRvIGNhbGwgcmVnaXN0cnkgQVBJCgkgIERvbid0IGtlZXAgdGhlIHJlZ2lzdHJ5IGxvY2tlZCB3aGlsc3QgaXRlcmF0aW5nIG92ZXIgdGhlIHBsdWdpbnMKCSAgb3IgZmVhdHVyZXMgd2l0aCBhIGZpbHRlciBmdW5jdGlvbi4gVGhpcyB3b3VsZCBkZWFkbG9jayBpZiB0aGUKCSAgY2FsbGJhY2sgdHJpZWQgdG8gYWNjZXNzIHRoZSByZWdpc3RyeSBmcm9tIHRoZSBmdW5jdGlvbi4gSW5zdGVhZCwKCSAgbWFrZSBhIGNvcHkgb2YgdGhlIGZlYXR1cmUvcGx1Z2luIGxpc3QgYW5kIHRoZW4gZmlsdGVyIGl0IHdpdGhvdXQKCSAgaG9sZGluZyB0aGUgcmVnaXN0cnkgbG9jay4gVGhpcyBpcyBzdGlsbCBjb25zaWRlcmFibHkgZmFzdGVyIHRoYW4KCSAgdGhlIGFsdGVybmF0aXZlIHdoaWNoIHdvdWxkIGJlIHRvIHVzZSBhIEdzdEl0ZXJhdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NzM4CgoyMDE2LTAzLTI1IDEyOjU5OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSB1bm5lZWRlZCBwYXJlbnRoZXNpcyBmcm9tIEFHX0dTVF9DSEVDS19DSEVDS1MKCjIwMTYtMDMtMjUgMTI6MDU6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogRml4IHVuaXQgdGVzdCBieSBzZW5kaW5nIGNhcHMgYmVmb3JlIGJ1ZmZlcnMKCSAgVW5leHBlY3RlZCBjcml0aWNhbC93YXJuaW5nOiBnc3RwYWQuYzo0NDAwOmdzdF9wYWRfcHVzaF9kYXRhOjwnJzpzcmM+IEdvdCBkYXRhIGZsb3cgYmVmb3JlIHNlZ21lbnQgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mzc1MwoKMjAxNi0wMy0yNSAxMDoyMzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL21pc2MvTWFrZWZpbGUuYW06CgkgIG5ldGNsb2NrOiBMaW5rIHRoZSByZXBsYXkgZXhhbXBsZSB0byBHSU8KCjIwMTYtMDMtMDMgMjE6NDU6NTQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvbWlzYy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbWlzYy9uZXRjbG9jay1yZXBsYXkuYzoKCSAgdGVzdHM6IEFkZCBzb21lIGNvZGUgdG8gcmVwbGF5IGFuZCBhbmFseXNlIG5ldGNsaWVudGNsb2NrCgkgIFRoaXMgdGFrZXMgcmVhZGluZ3MgaW4gdGhlIGZvcm0gb2YgLi4uCgkgIDxsb2NhbF8xPiA8cmVtb3RlXzE+IDxyZW1vdGVfMj4gPGxvY2FsXzI+CgkgIC4uLiB3aXRoIG9uZSBvYnNlcnZhdGlvbiBwZXIgbGluZSwgYW5kIHRoZW4gcmVwbGF5cyBpdCB1c2luZyB0aGUKCSAgbmV0Y2xpZW50Y2xvY2sgY29kZS4KCSAgVGhlIG91dHB1dCBpcyB0aGUgc3RhdGlzdGljcyBzdHJ1Y3R1cmUgZW1pdHRlZCBieSB0aGUgbmV0Y2xpZW50Y2xvY2ssCgkgIHdoaWNoIGNhbiB0aGVuIGJlIGFuYWx5c2VkIGFuZCB0dW5lZCBvbmNlIHdlIGdldCB0aG9zZSByZWFkaW5ncyBmb3IKCSAgcG90ZW50aWFsIGVkZ2UtY2FzZXMuCgkgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBmaW5kIHNvbWUgaW5wdXRzIHdpdGggImJhZCIgZGF0YSBhbmQgY29udmVydAoJICB0aGlzIGludG8gYSB1bml0IHRlc3QgZm9yIGZ1dHVyZSB0d2Vha3MgdG8gcnVuIGFnYWluc3QuCgoyMDE2LTAzLTAzIDIxOjQ0OjM1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWx3YXlzIGR1bXAgY2xvY2sgb2JzZXJ2YXRpb25zIGluIGxvZ3MKCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBleGFtaW5lIHdoYXQgdmFsdWVzIHdlIGdldCBpbiBsb2dzLCBhbmQKCSAgcG90ZW50aWFsbHkgdHVuZSBvdXIgZmlsdGVyaW5nL2V4dHJhcG9sYXRpb24gaW4gdmFyaW91cyBzY2VuYXJpb3MuCgoyMDE2LTAzLTA0IDE1OjUwOjI2ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGJhZDogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMwODEKCjIwMTYtMDMtMTYgMTU6MTM6MzkgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSAgdmFsdmU6IGRvbid0IHNlbmQgc3RpY2t5IGV2ZW50cyBhcyBhIGRpcmVjdCByZXNwb25zZSB0byB1cHN0cmVhbSBldmVudHMKCSAgQWxzbyByZWZhY3RvciB0aGUgZXhpc3RpbmcgdmFsdmUgdGVzdCB0byBhY3R1YWxseSB0ZXN0IHRoZSB2YWx2ZSwKCSAgYW5kIG5vdCBqdXN0IHRlc3QgdGhlIEVPUyBtZWNoYW5pc20gb2YgYSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NTMKCjIwMTYtMDMtMTEgMDk6MjM6MDQgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBBZGQgZmxhZyBmb3IgcGxhY2luZyBlbGVtZW50cyBpbiBhIGJpbiBpbnN0ZWFkIG9mIGEgcGlwZWxpbmUKCSAgQnkgZGVmYXVsdCwgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsKCkgY3JlYXRlcyBhIEdzdFBpcGVsaW5lIGlmIHRoZXJlJ3MgbW9yZQoJICB0aGFuIG9uZSB0b3BsZXZlbCBlbGVtZW50LiBBZGQgYSBmbGFnIHRvIGxldCBpdCB1c2UgYSBHc3RCaW4gaW5zdGVhZC4KCSAgQWxzbyBmaXggdGhlIHBhcnNlciB0byBsZXQgaXQgdXNlIHRoaXMgZmxhZyBmb3IgR1NUX1RZUEVfRUxFTUVOVCBwcm9wZXJ0eQoJICB2YWx1ZXMsIHRvIGF2b2lkIGhhdmluZyBHc3RQaXBlbGluZXMgaW5zaWRlIG90aGVyIEdzdFBpcGVsaW5lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ1NwoKMjAxNi0wMy0wOCAxOTowODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogb3B0aW1pc2F0aW9uOiBhdm9pZCB1bm5lY2Vzc2FyeSBnc3RfcGFkX2hhc19jdXJyZW50X2NhcHMoKSBjaGVja3MKCSAgTm8gbmVlZCB0byBkbyB0aGlzIGZvciBldmVyeSBpbnB1dCBidWZmZXIsIHNpbmNlIGl0IGludm9sdmVzCgkgIGxvY2tpbmcgYW5kIGl0ZXJhdGluZyBvZiB0aGUgc3RpY2t5IGV2ZW50cyBhcnJheSBhbmQgc3VjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzMzNwoKMjAxNi0wMy0wMyAxNDoxNTowMCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJICBnc3RyZWFtZXI6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMDIwCgoyMDE2LTAzLTAyIDE3OjQ3OjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBVc2UgZnVsbCBydW5uaW5nIHRpbWUgZm9yIGxldmVsIGNhbGN1bGF0aW9uCgkgIEVuc3VyZXMgd2UgaGF2ZSBwcm9wZXIgdGltZSBsZXZlbCBlc3RpbWF0aW9uIGZvciB0aGUgY2FzZXMgd2hlcmUKCSAgdGhlIGluY29taW5nIGJ1ZmZlcnMgaGF2ZSBQVFMvRFRTIG91dHNpZGUgb2YgdGhlIHNlZ21lbnQgc3RhcnQvc3RvcAoJICB2YWx1ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI5OTUKCjIwMTYtMDEtMjcgMTE6NDY6MDYgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByYWNlIGJldHdlZW4gZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCBhbmQgc3RhdGUgY2hhbmdlCgkgIFdoZW4gZ29pbmcgZnJvbSBSRUFEWSB0byBOVUxMIGFsbCBlbGVtZW50IHBhZHMgYXJlIGRlYWN0aXZhdGVkLiBJZgoJICBzaW11bHRhbmVvdXNseSB0aGUgcGFkIGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGUgZWxlbWVudCB3aXRoCgkgIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQoKSBhbmQgdGhlIHBhZCBpcyB1bnBhcmVudGVkLCB0aGVyZSBpcyBhIHJhY2UKCSAgd2hlcmUgdGhlIGRlYWN0aXZhdGlvbiB3aWxsIGFzc2VydCAoZ19jcml0aWNhbCkgaWYgdGhlIHBhcmVudCBpcyBsb3N0IGF0CgkgIHRoZSB3cm9uZyB0aW1lLgoJICBUaGUgcHJvcG9zZWQgZml4IHdpbGwgY2hlY2sgcGFyZW50IG9ubHkgb25jZSBhbmQgcmV0YWluIGl0IHRvIGF2b2lkIHRoZQoJICByYWNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEyCgoyMDE2LTAzLTAyIDIxOjExOjUxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBBc3N1bWUgUFRTIGlzIGVxdWFsIERUUyBpZiBQVFMgaXMgbWlzc2luZwoJICBUaGlzIGlzIHRoZSBiZXN0IGd1ZXNzIHdlIGNhbiBtYWtlIGlmIHN1Y2ggYSBidWZmZXIgcmVhY2hlZCB0aGUgY29sbGVjdAoJICBwYWQuIFRoaXMgaXMgdW5jb21tb24sIHdlIGRvIGV4cGVjdCBwYXJzZXJzIHRvIGhhdmUgdHJpZWQgYW5kIGZpeGVkIHRoYXQKCSAgaWYgcG9zc2libGUgKG9yIG5lZWRlZCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjIyMDcKCjIwMTYtMDMtMjQgMTM6MzI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCjIwMTYtMDMtMjQgMTE6NDk6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVtb3ZlIHJlZHVuZGFudCBhc3NpZ25tZW50CgkgIENJRCAxMzU3MTU4Cgo9PT0gcmVsZWFzZSAxLjguMCA9PT0KCjIwMTYtMDMtMjQgMTE6NDk6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS44LjAKCjIwMTYtMDMtMjQgMTE6MzU6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTAzLTEzIDExOjA1OjI5IC0wNDAwICBBbnRob255IEcuIEJhc2lsZSA8Ymx1ZW5lc3NAZ2VudG9vLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJICBsaWJjb21wYXQuaDogc3Ryc2lnbmFsKCkgc2hvdWxkIGJlIG5vdCBiZSBkZWNsZWFyZWQgY29uc3QKCSAgUE9TSVggc3RhbmRhcmRzIHJlcXVpcmVzIHN0cnNpZ25hbCgpIHRvIHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaGFyLAoJICBub3QgYSBjb25zdCBwb2ludGVyIHRvIGEgY2hhci4gWzFdICBPbiB1Q2xpYmMsIGFuZCBwb3NzaWJseSBvdGhlcgoJICBsaWJjJ3MsIHRoYXQgZG8gbm90IEhBVkVfREVDTF9TVFJTSUdOQUwsIGxpYmNvbXBhdC5oIGRlY2xhcmVzCgkgIGNvbnN0IGNoYXIgKnN0cnNpZ25hbCAoaW50IHNpZykgd2hpY2ggY2F1c2VzIGEgdHlwZSBlcnJvci4KCSAgWzFdIG1hbiAzIHN0cnNpZ25hbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTY3CgoyMDE2LTAzLTIyIDE5OjA0OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IFVzZSBHU1RfUFJFU0VUX1BBVEggYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBzeXN0ZW0gcGF0aCwgbm90IGEgcmVwbGFjZW1lbnQgb2YgdGhlIHVzZXIgcGF0aAoJICBGaXJzdCBsb2FkIGFsbCBzeXN0ZW0gcHJlc2V0cywgdGhlbiBhbGwgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZW4KCSAgZnJvbSB0aGUgYXBwIGRpcmVjdG9yeSwgdGhlbiBmcm9tIHRoZSB1c2VyIGRpcmVjdG9yeS4gQW55IG9uZSBpbiB0aGUgY2hhaW4KCSAgd2l0aCB0aGUgaGlnaGVzdCB2ZXJzaW9uIGNvbXBsZXRlbHkgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMsIGxhdGVyIG9uZXMKCSAgd2l0aCBsb3dlciB2ZXJzaW9ucyBhcmUgbWVyZ2VkIGluIHdpdGhvdXQgcmVwbGFjaW5nIGV4aXN0aW5nIHByZXNldHMuCgkgIFRoaXMgaXMgYmFzaWNhbGx5IHRoZSBzYW1lIGJlaGF2aW91ciBhcyBiZWZvcmUsIGp1c3QgdGhhdCBHU1RfUFJFU0VUX1BBVEggaXMKCSAgaW5zZXJ0ZWQgYXMgYW5vdGhlciBzb3VyY2Ugb2YgZGlyZWN0b3JpZXMgYmV0d2VlbiB0aGUgc3lzdGVtIGFuZCBhcHAgcHJlc2V0cy4KCSAgSXQgd2FzIGFkZGVkIGluIGNhMDhhZjFmMTdkMmNlMzZiODM5OThhMGJhM2E3YjhiY2FmZDc4NzIsIGJ1dCB3YXMKCSAgYWNjaWRlbnRpYWxseSBvdmVycmlkaW5nIHRoZSB1c2VyIHByZXNldCBwYXRoIHRoZXJlLiBXaGljaCBjYXVzZWQgaW5jb25zaXN0ZW50CgkgIGJlaGF2aW91ciBhcyBuZXcgcHJlc2V0cyB3ZXJlIHN0aWxsIHN0b3JlZCBpbiB0aGUgc3lzdGVtIHBhdGgsIGp1c3Qgbm90IGxvYWRlZAoJICBmcm9tIHRoZXJlLiBNZWFuaW5nIHlvdSBjb3VsZCBzdG9yZSBhIG5ldyBwcmVzZXQgKGluIHRoZSB1c2VyIHBhdGgpLCBqdXN0IGZvcgoJICBHc3RQcmVzZXQgdG8gbm90IGZpbmQgaXQgYW55bW9yZSBsYXRlciAoYmVjYXVzZSBpdCBvbmx5IGxvb2tlZCBpbiB0aGUKCSAgR1NUX1BSRVNFVF9QQVRIIGluc3RlYWQgb2YgdGhlIHVzZXIgcGF0aCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQwMzQKCjIwMTYtMDMtMTkgMTI6NTU6MDkgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhZGQgJ3RyYW5zZmVyIGZ1bGwnIGFubm90YXRpb24gdG8gZ3N0X3BhZF9wZWVyX3F1ZXJ5X2NhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzkxMgoKMjAxNi0wMy0xOSAxMjozOToxOCArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAZGFya29zcGhlcmUuZnI+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkICd0cmFuc2ZlciBmdWxsJyBhbmQgJ251bGxhYmxlJyBhbm5vdGF0aW9ucyB0byBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMKCSAgYW5kIGFsc28gY2hhbmdlIHRoZSBkZXNjcmlwdGlvbiBhY2NvcmRpbmdseSBzaW5jZSBmdW5jdGlvbiByZXR1cm5zIGFuCgkgIGluY3JlbWVudGVkIGNhcHMgb2JqZWN0IG9yIE5VTEwgaWYgdGhlcmUgaXMgbm8gY2FwcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM5MTIKCjIwMTYtMDMtMTggMTY6MDI6NDMgLTA0MDAgIEJlbiBJb2ZlbCA8aW9mZWxiZW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZ2lyIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzODk1CgoyMDE2LTAzLTE3IDAxOjQyOjU1ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IENoZWNrIG11bHRpcXVldWUgbm90LWxpbmtlZCBFT1MgaGFuZGxpbmcKCSAgQWRkIGEgdGVzdCB3aGljaCBjaGVja3MgdGhhdCBub3QtbGlua2VkIHBhZHMgY29udGludWUKCSAgdG8gb3V0cHV0IGRhdGEgYWZ0ZXIgbGlua2VkIHBhZHMgaGF2ZSBnb25lIEVPUwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNzcwCgoyMDE2LTAzLTE4IDAzOjA4OjM5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggbm90LWxpbmtlZCBwYWQgaGFuZGxpbmcgYXQgRU9TCgkgIEVuc3VyZSB0aGF0IG5vdC1saW5rZWQgcGFkcyB3aWxsIGRyYWluIG91dCBhdCBFT1MgYnkKCSAgY29ycmVjdGx5IGRldGVjdGluZyB0aGUgRU9TIGNvbmRpdGlvbiBiYXNlZCBvbiB0aGUgRU9TCgkgIHBhZCBmbGFnICh3aGljaCBpbmRpY2F0ZXMgd2UgYWN0dWFsbHkgcHVzaGVkIGFuIEVPUyksCgkgIGFuZCBtYWtlIHN1cmUgdGhhdCBub3QtbGlua2VkIHBhZHMgYXJlIHdva2VuIHdoZW4gZG9pbmcKCSAgRU9TIHByb2Nlc3Npbmcgb24gbGlua2VkIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3NzAKCjIwMTYtMDMtMTUgMTY6Mzc6MzMgKzAxMDAgIFJvbWFpbiBQaWNhcmQgPHJvbWFpbi5waWNhcmRAb2FrYml0cy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWxsb3cgY2FwcyBxdWVyeSBpbiAiaGF2ZS10eXBlIiBzaWduYWwgaGFuZGxlcnMKCSAgSWYgYW4gYXBwbGljYXRpb24gY2FsbHMgZ3N0X3BhZF9xdWVyeV9jYXBzIGZyb20gaXRzICJoYXZlLXR5cGUiIHNpZ25hbCBoYW5kbGVyLAoJICB0aGVuIHRoZSBxdWVyeSBmYWlscyBiZWNhdXNlIHR5cGVmaW5kLT5jYXBzIGhhcyBub3QgYmVlbiBzZXQgeWV0LgoJICBUaGlzIHBhdGNoIHNldHMgdHlwZWZpbmQtPmNhcHMgaW4gdGhlIG9iamVjdCBtZXRob2QgaGFuZGxlciwgYmVmb3JlIHRoZSBzaWduYWwKCSAgaGFuZGxlcnMgYXJlIGNhbGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKPT09IHJlbGVhc2UgMS43LjkxID09PQoKMjAxNi0wMy0xNSAxMTo1NjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuOTEKCjIwMTYtMDMtMTUgMTE6NDQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vdHIucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE2LTAzLTE1IDExOjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDMtMTEgMTQ6MTc6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM0OTEKCjIwMTYtMDMtMTMgMTA6MzM6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlY2hlY2sgYWZ0ZXIgcHJlX3B1c2hfZnJhbWUoKSBpZiB0aGVyZSBhcmUgdGFncyBwZW5kaW5nCgkgIE1hbnkgcGFyc2VycyBhcmUgc3RvcmluZyB0YWdzIG9ubHkgaW4gcHJlX3B1c2hfZnJhbWUoKSwgaWYgd2Ugd291bGRuJ3QgY2hlY2sKCSAgYWZ0ZXJ3YXJkcyB3ZSB3b3VsZCBwdXNoIGJ1ZmZlcnMgYmVmb3JlIHRob3NlIHRhZ3MgYW5kIGEgbG90IG9mIGNvZGUgYXNzdW1lcyB0aGF0CgkgIHRhZ3MgYXJlIGF2YWlsYWJsZSBiZWZvcmUgcHJlcm9sbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzU1MwoKMjAxNi0wMy0xNCAxMToxNTowNyArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBGaXggY29tbWVudCB0eXBvCgoyMDE2LTAzLTEyIDEyOjU2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJ0eXBlZmluZDogU3RvcmUgY2FwcyBvbiB0aGUgcGFkIGJlZm9yZSBlbWl0dGluZyBoYXZlLXR5cGUgYnV0IHNlbmQgaXQgZG93bnN0cmVhbSBvbmx5IGluIHRoZSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDA4MzVjM2Q2NTY5ZGRlMGVjOWU1NTI0NDM2MzY3Yzc2NzhjYzRhNGEuCgkgIEl0IGNhdXNlcyBkZWFkbG9ja3MgaW4gZGVjb2RlYmluLCB3aGljaCBjdXJyZW50bHkgd291bGQgZGVhZGxvY2sgaWYgdGhlIGNhcHMKCSAgYXJlIGFscmVhZHkgb24gdGhlIHBhZCBpbiBoYXZlLXR5cGUgYW5kIGFyZSBmb3J3YXJkZWQgd2hpbGUgY29weWluZyB0aGUgc3RpY2t5CgkgIGV2ZW50cyAod2hpbGUgaG9sZGluZyB0aGUgZGVjb2RlYmluIGxvY2spLi4uIGFzIHRoYXQgbWlnaHQgY2F1c2UgdGhlIG5leHQKCSAgZWxlbWVudCB0byBleHBvc2UgcGFkcywgd2hpY2ggdGhlbiBjYWxscyBiYWNrIGludG8gZGVjb2RlYmluIGFuZCB0YWtlcyB0aGUKCSAgZGVjb2RlYmluIGxvY2suCgkgIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAxNi0wMy0xMSAxNDoxNzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKMjAxNi0wMy0xMCAxMDozNTo0MCArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBkb2NzOiBGbGVzaCBvdXQgZWxlbWVudCBhbmQgb2JqZWN0IG1hY3JvIGFjY2Vzc29yIGRvY3MgYSBiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzIxMwoKMjAxNi0wMy0wOSAxNjowNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogUmVtb3ZlIHNvbWUgb2Jzb2xldGUgY29kZSB0aGF0IGNhbiBjYXVzZSB3YXJuaW5ncwoKMjAxNi0wMy0wOSAxMzo0NDoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRG9uJ3QgcmVzZXQgY2FsaWJyYXRpb24gb2YgaW50ZXJuYWwgY2xvY2sgd2hlbmV2ZXIgYSBuZXcgbmV0Y2xpZW50IGNsb2NrIGlzIGNyZWF0ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzMyNQoKMjAxNi0wMy0wNCAxODoyMzoxOCArMDEwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBmaXggR3N0UGFyZW50QnVmZmVyTWV0YSBHVHlwZSBuYW1lCgkgIFRoZSBhbGlhcyBkZWZpbmUgR1NUX1RZUEVfUEFSRU5UX0JVRkZFUl9NRVRBX0FQSV9UWVBFIGlzIHdyb25nIGFuZAoJICBicmVha3MgdGhlIHVzYWdlIG9mIGdzdF9idWZmZXJfZ2V0X3BhcmVudF9idWZmZXJfbWV0YSgpLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBHVHlwZSBhbGlhcyBhbmQgbWFrZSBhbm90aGVyIGFsaWFzIHRvIGtlZXAgdGhlIEFQSQoJICBjb21wYXRpYmlsaXR5IGd1YXJkZWQgYnkgR1NUX0RJU0FCTEVfREVQUkVDQVRFRC4KCSAgQWxzbyBhZGRlZCBhIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzExMgoKMjAxNi0wMy0wMiAxMDozNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBSZW1vdmUgdXNlbGVzcyBOVUxMIGNoZWNrIGFuZCBhZGQgYXNzZXJ0aW9uIGZvciBtYWtpbmcgYXNzdW1wdGlvbnMgZXhwbGljaXQKCSAgZ3N0X3N0cnVjdHVyZV9uZXdfZW1wdHkoKSBpcyBub3QgcmV0dXJuaW5nIE5VTEwgaW4gYW55IHZhbGlkIHNjZW5hcmlvcywKCSAgY2hlY2tpbmcgZm9yIE5VTEwgaGVyZSBpcyB1c2VsZXNzLiBFc3BlY2lhbGx5IGJlY2F1c2Ugd2Ugd291bGQgZGVyZWZlcmVuY2UgYW55CgkgIE5VTEwgcmlnaHQgYWZ0ZXIgdGhlIE5VTEwgY2hlY2sgYWdhaW4uCgkgIENJRCAxMzUyMDM3LgoJICBXZSBwcmV2aW91c2x5IGNoZWNrIGlmIHRoZSBzdHJpbmcgZW5kcyBvbiAuY2xhc3MsIGFzIHN1Y2ggc3RycmNocigpIHNob3VsZAoJICByZXR1cm4gc29tZXRoaW5nIG5vbi1OVUxMLiBBZGQgYW4gYXNzZXJ0aW9uIGZvciB0aGF0LgoJICBDSUQgMTM0OTY0Mi4KCjIwMTYtMDMtMDEgMTk6NTA6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtaW5vciBkb2NzIGZpeAoJICBNYWtlIGd0ay1kb2MgaGFwcHkuCgo9PT0gcmVsZWFzZSAxLjcuOTAgPT09CgoyMDE2LTAzLTAxIDE4OjE0OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNy45MAoKMjAxNi0wMy0wMSAxNjo1Mjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAyLTI5IDIzOjMzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgUmV2ZXJ0ICJidXM6IGNoYW5nZSBHc3RCdXNTb3VyY2UgdG8gaG9sZCBhIHdlYWsgcmVmIHRvIEdzdEJ1cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4OTRjNjdlNjQyYzBmODU4YjViMTgwOTdmYTdjOTk1YmYzY2M1MGMxLgoKMjAxNi0wMi0yOSAyMzozMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IE1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIEdQb2xsRkQgZnJvbSB0aGUgR1NvdXJjZXMgd2hlbiBkZXN0cm95aW5nIHRoZSBidXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDU3MDBhNzA4MmMxNDUwNTdjY2MwYmU3NjMwNjdiY2MyNjMyMzllYi4KCjIwMTYtMDItMjkgMTc6MDY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBSZW1vdmUgR1NUX1NUQVRFX0xPQ0tfRlVMTCgpIC8gVU5MT0NLX0ZVTEwoKQoJICBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIEFQSSBmb3IgdGhhdCBpbiBHTGliIGFuZCBub2JvZHkgY291bGQndmUgZXZlciB1c2VkCgkgIHRoZXNlIG1hY3JvcyB3aXRob3V0IGNvbXBpbGVyIGVycm9ycyBhbnl3YXkuCgoyMDE2LTAyLTI5IDEwOjAxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IE1ha2Ugc3VyZSB0byByZW1vdmUgdGhlIEdQb2xsRkQgZnJvbSB0aGUgR1NvdXJjZXMgd2hlbiBkZXN0cm95aW5nIHRoZSBidXMKCSAgT3RoZXJ3aXNlIHRoZSBHU291cmNlIGNhbiBsb29rIGludG8gb3VyIGFscmVhZHkgZGVzdHJveWVkIGJ1cyB3aGVyZSB0aGUKCSAgR1BvbGxGRCBpcyBzdG9yZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI4NDkKCjIwMTYtMDItMjkgMTE6MDY6NTAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGdob3N0cGFkOiBGaXggbWVtb3J5IGxlYWtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI4NDUKCjIwMTYtMDItMjggMTM6NTk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgZ3VhcmQgdG8gY2hlY2sgd3JpdGFiaWxpdHkgd2hlbiByZW1vdmluZyB0YWdzIGZyb20gYSB0YWdsaXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3OTMKCjIwMTYtMDItMjcgMTU6MzY6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IHVzZSBuZXcgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzc4CgoyMDE2LTAyLTI3IDE1OjI4OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIFByZXR0eSBtdWNoIGV2ZXJ5IHNpbmdsZSBlbGVtZW50IGRvZXMKCSAgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSAoZWxlbWVudF9jbGFzcywKCSAgZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0ICgmc29tZV90ZW1wbCkpOwoJICB3aGljaCBpcyBib3RoIGNvbmZ1c2luZyBhbmQgdW5uZWNlc3NhcnkuIFdlIG1pZ2h0IGp1c3QKCSAgYXMgd2VsbCBhZGQgYSBmdW5jdGlvbiB0byBkbyB0aGF0IGluIG9uZSBzdGVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzc4CgoyMDE2LTAyLTI3IDE1OjMyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMi0yNiAxMjo0MDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjY0ZjAzZiB0byA2ZjJkMjA5CgoyMDE2LTAyLTI1IDIyOjM2OjE0ICswMDAwICBKYW1lcyBTdGV2ZW5zb24gPGphbWVzQHN0ZXYub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFByZXZlbnQgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbF91bmxvY2tlZCBmcm9tIGEgc2VnZmF1bHQgaWYgcHJpdi0+cG9sbCA9PSBOVUxMCgkgIFRoaXMgaGFwcGVucyBpZiB0aGUgcHJvY2VzcyBydW5zIG91dCBvZiBmaWxlIGRlc2NyaXB0b3JzLiBCZXR0ZXIgcHJpbnQKCSAgYSBjcml0aWNhbCB3YXJuaW5nIGluc3RlYWQgb2YganVzdCBjcmFzaGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjcwMgoKMjAxNi0wMi0yNCAxMDo1NjoyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYnVzOiBjaGFuZ2UgR3N0QnVzU291cmNlIHRvIGhvbGQgYSB3ZWFrIHJlZiB0byBHc3RCdXMKCSAgV2hlbiBob2xkaW5nIGEgcmVndWxhciByZWYgaXQgd2lsbCBjYXVzZSB0aGUgR3N0QnVzIHRvIG5ldmVyCgkgIHJlYWNoIDAgcmVmZXJlbmNlcyBhbmQgaXQgd29uJ3QgYmUgZGVzdHJveWVkIHVubGVzcyB0aGUgYXBwbGljYXRpb24KCSAgZXhwbGljaXRseSBjYWxscyBnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2goKS4KCSAgU3dpdGNoaW5nIHRvIHdlYWtyZWYgd2lsbCBhbGxvdyB0aGUgR3N0QnVzIHRvIGJlIGRlc3Ryb3llZC4KCSAgVGhlIGFwcGxpY2F0aW9uIGlzIHN0aWxsIHJlc3BvbnNpYmxlIGZvciBkZXN0cm95aW5nIHRoZQoJICBHU291cmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNTUyCgoyMDE2LTAyLTI1IDE0OjExOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogQWRkIGEgIiAiIGFmdGVyIHB0czogaW4gdGhlIHNpbGVudD1mYWxzZSBvdXRwdXQKCjIwMTQtMDQtMTYgMTE6NDI6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGV4YW1wbGVzIHRvIGNoZWNrIGZvciBnc3RfYnVmZmVyX21hcCByZXR1cm4gdmFsdWVzCgkgIE90aGVyd2lzZSBwZW9wbGUgcmVhZGluZyB0aGUgbWFudWFsIHdpbGwgZXhwZWN0IGl0IHRvIGFsd2F5cwoJICBzdWNjZWVkIDopCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTQtMDQtMTYgMTE6NDA6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfYnVmZmVyX21hcAoJICBXZSBjYW4ndCBjaGVjayBjb250ZW50cyBpZiB3ZSBkb24ndCBoYXZlIGFjY2VzcyB0byBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE0LTA0LTE2IDExOjM5OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogQ2hlY2sgcmV0dXJuIHZhbHVlcyBvZiBnc3RfYnVmZmVyX21hcCgpCgkgIFRoZXkgY2FuIGZhaWwgZm9yIHZhcmlvdXMgcmVhc29ucy4KCSAgRm9yIG5vbi1mYXRhbCBjYXNlcyAoc3VjaCBhcyB0aGUgZHVtcCBmZWF0dXJlIG9mIGlkZW50aXkgYW5kIGZha2VzaW5rKSwKCSAgd2UganVzdCBzaWxlbnRseSBza2lwIGl0LgoJICBGb3Igb3RoZXIgY2FzZXMgcG9zdCBhbiBlcnJvciBtZXNzYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzI2CgoyMDE2LTAyLTIzIDE3OjIzOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnc3RfbWVtb3J5X21hcCgpCgkgIE9ubHkgZG8gbWVtb3J5IG9wZXJhdGlvbnMgaWYgdGhlIG1lbW9yeSB3YXMgc3VjY2VzZnVsbHkgbWFwJ2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTYtMDItMjMgMTg6MTc6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogRG9uJ3QgYXNzdW1lIHRoYXQgZ2V0X2N1cnJlbnRfY2FwcygpIHJldHVybnMgbm9uLU5VTEwgY2FwcyBhZnRlciBoYXNfY3VycmVudF9jYXBzKCkKCSAgUmVtb3ZlIGNhbGxzIHRvIGdzdF9wYWRfaGFzX2N1cnJlbnRfY2FwcygpIHdoaWNoIHRoZW4gZ28gb24gdG8gY2FsbAoJICBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBhcyB0aGUgY2FwcyBjYW4gZ28gdG8gTlVMTCBpbiBiZXR3ZWVuLiBJbnN0ZWFkIGp1c3QKCSAgdXNlIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGFuZCBjaGVjayBmb3IgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTUzOQoKMjAxNS0xMi0xMCAxNTozMjoyNyArMDEwMCAgQWRhbSBNaWFydHVzIDxhZGFtLm1pYXJ0dXNAc3RyZWFtdW5saW1pdGVkLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBHU1RfVEFHX0NPTkRVQ1RPUgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgbWV0YWRhdGEgd2hpY2ggZXhwbGljaXRlbHkgZGlzdGluZ3Vpc2hlcwoJICBiZXR3ZWVuIGFydGlzdC9jb21wb3NlciBhbmQgY29uZHVjdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDUwCgoyMDE2LTAyLTIyIDE0OjA5OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbiBvbiBzdHJlYW0taWQKCSAgLi4uIHdoZXJlIGl0IG1pZ2h0IGVuZCB1cCBiZWluZyB1c2VkIGZvci4KCjIwMTYtMDEtMjIgMTE6MjU6MzAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IEluaXRpYWxpemUgR3N0VHJhY2VyIF9wcml2X3RyYWNlcnMgYW5kIHF1YXJrcyB1bmNvbmRpdGlvbm5hbGx5CgkgIFNvbWUgcGVvcGxlIG1pZ2h0IHVzZSB0cmFjZXIgaG9va3MgZXZlbiBpZiBHU1RfVFJBQ0VSX1BMVUdJTlMgaXMgbm90CgkgIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDk3OQoKMjAxNi0wMi0yMCAxMDoxODowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogbWFudWFsOiByZW1vdmUgZGVhZCBsaW5rIGZyb20gaW50ZWdyYXRpb24gcGFnZQoKMjAxNi0wMi0yMCAxMDoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBkb2NzOiBtYW51YWw6IGZpeCBmb3JtYXR0aW5nCgkgIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOjEyMTA6IGVsZW1lbnQgbGlzdGl0ZW06IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudAoJICBsaXN0aXRlbSBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgKC4uLiksCgkgIGdvdCAocGFyYSBDREFUQSBwYXJhICkKCSAgPC9saXN0aXRlbT4KCjIwMTYtMDItMjAgMDA6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY2hlY2sgZm9yIGdpdCBpbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2ggYXMgd2VsbAoKMjAxNi0wMi0xOSAyMDoyNjoyNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWsuY2hhdWhhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIFdoZW5ldmVyIHdlIGluY2x1ZGUgd2luZG93cy5oLCBhbHNvIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCgkgIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHN5bWJvbHMgYW5kIGNvZGUgcHVsbGVkIGluIGRyYXN0aWNhbGx5CgoyMDE2LTAyLTEzIDA2OjUzOjI0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBPbiBNU1ZDLCBhbHNvIGRlZmluZSBIQVZFX1NURElOVF9IX1dJVEhfVUlOVE1BWAoJICBNU1ZDIHByb3ZpZGVzIHN0ZGludC5oIGJ1dCBub3QgaW50dHlwZXMuaCwgYW5kIHdlIG5lZWQgdG8gaW5jbHVkZSBzdGRpbnQuaCB0bwoJICBnZXQgaW50bWF4X3QKCjIwMTYtMDItMTMgMDY6NDI6MDYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogT25seSBpbmNsdWRlIHVuaXN0ZC5oIGlmIGZvdW5kCgkgIHVuaXN0ZC5oIGlzIG5vdCBwcm92aWRlZCBieSB0aGUgIE1pY3Jvc29mdCBWaXN1YWwgQysrIGNvbXBpbGVyLiBJdCBpbnN0ZWFkCgkgIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgZGVmaW5lcyB0aHJvdWdoIGlvLmgKCjIwMTYtMDItMTMgMDY6MTk6NTIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBPbmx5IGNoZWNrIGZvciBTX0lGQkxLIGlmIGl0IGlzIGRlZmluZWQKCSAgV2luZG93cyBkb2VzIG5vdCBkZWZpbmUgU19JRkJMSyBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgYmxvY2sgZGV2aWNlcwoKMjAxNi0wMi0xOSAyMDoxNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvTGlicmFyeS5wcm9wczoKCSogd2luMzIvdnMxMC9QbHVnaW4ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUmVhZE1lLnR4dDoKCSogd2luMzIvdnMxMC9Ub29sLnByb3BzOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvajoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSogd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM4L2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIHdpbjMyOiB1cGRhdGUgUkVBRE1FIGFuZCByZW1vdmUgb3V0ZGF0ZWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBoYXNuJ3QgYmVlbiB0b3VjaGVkIGZvciBnZW5lcmF0aW9ucywgZG9lc24ndCB3b3JrLAoJICBhbmQgaXMganVzdCBjYXVzaW5nIGNvbmZ1c2lvbi4gV2UgYWxzbyBkb24ndCB3YW50IHRvCgkgIG1haW50YWluIHRoZXNlIGZpbGVzIG1hbnVhbGx5LgoKMjAxNi0wMi0xOSAwODo0MzowMCArMDAwMCAgR2VvcmdlIFl1bmFldiA8Z3l1bmFldkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBFeHBsYWluIHdoYXQgaGFwcGVucyBpZiB1cHN0cmVhbSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwaXBlbGluZSB3aXRob3V0IGRyYWluaW5nIHRoZW0gZmlyc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMwMgoKMjAxNi0wMi0xOSAxNDo0MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICB0ZXN0czogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTE5IDEyOjM4OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjcuMiA9PT0KCjIwMTYtMDItMTkgMTE6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuMgoKMjAxNi0wMi0xOSAxMDoyOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAyLTE4IDE0OjIwOjE3ICswMDAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdW5pbnN0YWxsZWQucGM6IGFkZCBzdXBwb3J0IGZvciBub24gbGlidG9vbCBidWlsZCBzeXN0ZW1zCgkgIEN1cnJlbnRseSB0aGUgLmxhIHBhdGggaXMgcHJvdmlkZWQgd2hpY2ggcmVxdWlyZXMgdG8gdXNlIGxpYnRvb2wgYXMKCSAgbWVudGlvbmVkIGluIHRoZSBHU3RyZWFtZXIgbWFudWFsIHNlY3Rpb24taGVsbG93b3JsZC1jb21waWxlcnVuLmh0bWwuCgkgIEl0IGlzIGZpbmUgYXMgbG9uZyBhcyB0aGUgYXBwbGljYXRpb24gaXMgYnVpbHQgdXNpbmcgbGlidG9vbC4KCSAgU28gY3VycmVudGx5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjb21waWxlIGEgR1N0cmVhbWVyIGFwcGxpY2F0aW9uCgkgIHdpdGhpbiBnc3QtdW5pbnN0YWxsZWQgd2l0aCBDTWFrZSBvciBvdGhlciBidWlsZCBzeXN0ZW0gZGlmZmVyZW50CgkgIHRoYW4gYXV0b3Rvb2xzLgoJICBUaGlzIHBhdGNoIGFsbG93cyB0byBkbyB0aGUgZm9sbG93aW5nIGluIGdzdC11bmluc3RhbGxlZCBlbnY6CgkgIGdjYyB0ZXN0LmMgLW8gdGVzdCAkKHBrZy1jb25maWcgLS1jZmxhZ3MgLS1saWJzIGdzdHJlYW1lci0xLjApCgkgIFByZXZpb3VzbHkgaXQgcmVxdWlyZWQgdG8gcHJlcGVuZCBsaWJ0b29sIC0tbW9kZT1saW5rCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA3NzgKCjIwMTYtMDItMTggMTE6NDM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBQVUxMIHByb2JlcyBhcmUgY2FsbGVkIHdpdGhvdXQgYSBidWZmZXIgc28gZG9uJ3QgcmVxdWlyZSBhbnkgb2YgdGhlIGRhdGEgZmxhZ3MgdG8gYmUgc2V0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI4OWZhNDc4NmIzZGY2Y2I3OWY2NjJjMDM3ZGVlNzRiM2Y3NDI4ZDYuCgkgIFRoZSBjaGFuZ2VzIGJyZWFrIHZhcmlvdXMgdGVzdHMuCgoyMDE2LTAyLTE4IDExOjQzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTdkMzBlOTQ0YmUwNDI1ZWJiNGZiNjA0NmY4MmQxZjYxNzAxZmU4Zi4KCSAgVGhlIFBVTEwgcHJvYmUgY2hhbmdlcyBicmVhayB2YXJpb3VzIHRlc3RzLgoKMjAxNi0wMi0xOCAxMTowOTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBQcm90ZWN0IGFnYWluc3QgZmFpbGluZyB0byBtYXAgaW5wdXQgbWVtb3J5IHdoZW4gbWVyZ2luZyBtZW1vcmllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjM5CgoyMDE2LTAxLTI4IDE2OjIyOjE3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDItMTcgMTY6NTc6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUFVMTCBwcm9iZXMgYXJlIGNhbGxlZCB3aXRob3V0IGEgYnVmZmVyIHNvIGRvbid0IHJlcXVpcmUgYW55IG9mIHRoZSBkYXRhIGZsYWdzIHRvIGJlIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAyLTE3IDE2OjQxOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjQyNzk5NzExOWEyYjZhYWNiZWI1NTBmNzI5OTM2ZjhiOTYzZTI0Yi4KCSAgSXQgYnJlYWtzIHRoaW5ncyB0aGF0IHVzZWQgdG8gd29yayBiZWZvcmUsIGV2ZW4gaWYgdGhlIGNoYW5nZSBieSBpdHNlbGYgaXMKCSAgY29ycmVjdCBhbmQgdGhlIHByZXZpb3VzIGNvZGUgaXMganVzdCB3b3JraW5nIGFyb3VuZCBkZWVwZXIgYnVncyBpbiB0aGUgYXN5bmMKCSAgc3RhdGUgY2hhbmdlIGNvZGUuIExldCdzIGdvIGJhY2sgdG8gd2hhdCBwcmV2aW91c2x5IHdvcmtlZCBhbmQgdGhlbiBmaXggYXN5bmMKCSAgc3RhdGUgY2hhbmdlcyBpbiBnZW5lcmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTMyCgoyMDE2LTAyLTE3IDE1OjI2OjQ5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCIKCSAgVGhhdCBjb21taXQgd291bGQgYnJlYWsgc2NoZWR1bGluZyByZWNvbmZpZ3VyYXRpb24gd2l0aCBnaG9zdHBhZHMKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYjU1YWQ3ZWFhZDRmYTJjMGIxNmM3ODkzNTBlODgyY2Y3MGEyN2VkLgoKMjAxNi0wMi0xNyAxNToyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjazogQWRkIHRlc3QgZm9yIGNoZWNraW5nIHNjaGVkdWxpbmcgcmVjb25maWd1cmF0aW9uIHdpdGggZ2hvc3RwYWRzCgkgIFNob3djYXNlcyB0aGUgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0OgoJICBDb21taXQ6IGFiNTVhZDdlYWFkNGZhMmMwYjE2Yzc4OTM1MGU4ODJjZjcwYTI3ZWQKCSAgQXV0aG9yOiBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCSAgRGF0ZTogICBXZWQgSmFuIDI3IDEzOjIwOjIzIDIwMTYgKzAxMDAKCSAgZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoKMjAxNi0wMi0xNyAxMTowMjozNCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhZGQgc29tZSB0ZXN0cyBmb3IgYWN0aXZhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEzCgoyMDE2LTAxLTI3IDEzOjIwOjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG8gbm90aGluZyBpbiBfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIFdoZW4gY2FsbGluZyBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiBhIGdob3N0cGFkCgkgIGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkgd2lsbCBiZSBjYWxsZWQuIFRoaXMgd2lsbCBjYWxsCgkgIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIHRoZSBwcm94eXBhZCAod2hpY2ggaXMgaW50ZXJuYWwgb2YgdGhlCgkgIGdob3N0cGFkKSwgY2FsbGluZyBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpLCB3aGljaAoJICBhZ2FpbiB3aWxsIGNhbGwgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gdGhlIG9yaWdpbmFsIGdob3N0cGFkLgoJICBCeSBzaW1wbHkgcmV0dXJuaW5nIFRSVUUgaW4KCSAgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSB0aGUgcmVkdW5kYW50IGNhbGwgdG8KCSAgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgKGZvciB0aGUgc2FtZSBwYWQpIGlzIGF2b2lkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTMKCjIwMTYtMDItMTYgMTc6NTM6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogcmVtb3ZlIHVudXNlZCBtYWNybwoJICBtYWNybyB3YXMgYWRkZWQgaW4gMjAxMSBhbmQgaXNuJ3QgdXNlZCBhbnltb3JlCgoyMDE2LTAyLTE2IDE5OjExOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIFJldmVydCAicXVldWUyOiBhZGQgb3ZlcnJ1biBzaWduYWwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGFlOGIyNzIzZDBjZjE3OWE0ZjA5YjJmNmM1Zjc5N2UyZDk3MDM0ZC4KCSAgSXQncyBub3QgdXNlZCBhbnltb3JlIGJ5IGFueXRoaW5nIGFuZCB3YXMgY29uc2lkZXJlZCBhIGJhZCBpZGVhIGluIGdlbmVyYWwuCgoyMDE0LTA2LTA1IDEzOjI3OjI4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBhbm5vdGF0ZSBDIGV4YW1wbGVzIGFzIHN1Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MgoKMjAxNi0wMi0xNSAxMToxMzo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSAgYmVuY2htYXJrOiB0cmFjZXJzZXJpYWxpemU6IGFkZCBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQKCSAgdHJhY2Vyc2VyaWFsaXplLmM6MTE3OjE6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mCgkgIG5vbi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQoKMjAxNi0wMi0xNSAxMDowNjowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgcHJvdGVjdGlvbi9oYXJuZXNzL3N5c3RlbWNsb2NrOiBtb3ZlIGRlY2xhcmF0aW9uIG91dCBvZiBmb3IgbG9vcCBpbml0aWFsaXphdGlvbgoJICBDOTAgY29tcGlsZXJzIGNvbXBsYWluIGFib3V0IGl0CgkgIGVycm9yOiDigJhmb3LigJkgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9ucyBhcmUgb25seSBhbGxvd2VkIGluIEM5OSBvciBDMTEgbW9kZQoJICBBbHNvIHJ1biBnc3QtaW5kZW50IG9uIHN5c3RlbWNsb2NrIHRlc3RzLgoKMjAxNi0wMS0yNyAxNToxNjowMyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhbHdheXMgc2V0IG91ciB0ZXN0LWNsb2NrIG9uIHRoZSBoYXJuZXNzZWQgZWxlbWVudAoJICBUaGUgaW50ZWdyYXRpb24gaXMgYWxyZWFkeSBzbyB0aWdodCwgdGhlcmUgaXMgbm8gcmVhc29uIHRvCgkgIG5vdCBmdXJ0aGVyIGZvcm1hbGl6ZSBpdCEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxNAoKMjAxNi0wMi0xMyAxNjoxMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGNvbXBpbGF0aW9uCgkgIFdhcyBzdXBwb3NlZCB0byBiZSBzcXVhc2hlZCB3aXRoIDMzNmM3YmI2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTAKCjIwMTYtMDItMTMgMTY6MTA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMS0yMSAxMzozMzoxNSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggTVQgaXNzdWVzIHdoZW4gZm9yd2FyZGluZyBldmVudC9xdWVyeSB0byBzaW5rIGhhcm5lc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMAoKMjAxNi0wMi0xMyAxMDowNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgLWJhZCBsaWJyYXJpZXMgYXVkaW8sIHBsYXllciBhbmQgd2F5bGFuZCB0byBwYXRocwoJICBBbmQgcmVtb3ZlIGVnbCB3aGljaCBubyBsb25nZXIgZXhpc3RzLgoKMjAxNi0wMi0xMiAxMTo1Nzo1NSAtMDgwMCAgTWFydGluIEtlbGx5IDxtYXJ0aW5Ac3Vycm91bmQuaW8+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgcHVzaHNyYzogZml4IG1pbm9yIHR5cG9zIGluIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTcwCgoyMDE2LTAxLTIxIDEzOjI4OjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogQWRkIGV2ZW50IHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyB3aXRoIGNhbGxiYWNrCgkgIFNpbWlsYXIgdG8gdGhlIHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyBmb3IgYnVmZmVycyB0aGF0IGhhcyBhIGNhbGxiYWNrIHRvCgkgIGNyZWF0ZSB0aGUgYnVmZmVyIHRvIGJlIHB1c2hlZCwgaXQncyB1c2VmdWwgdG8gaGF2ZSBmdW5jdGlvbnMgdGhhdCB1c2UgYQoJICBjYWxsYmFjayB0byBjcmVhdGUgdGhlIGV2ZW50IHRvIGJlIHB1c2hlZC4KCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0KCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0X2Z1bGwoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19zZW5kX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnQoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19wdXNoX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnRfZnVsbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MzIKCjIwMTYtMDEtMTQgMjE6NTQ6NDIgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgY3JhbmsgbWV0aG9kCgkgIEFuZCB1c2UgaXQgaW5zaWRlIEdzdEhhcm5lc3MKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19jcmFuaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDYKCjIwMTUtMTItMDkgMTM6NDM6MzggKzExMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogZW5hYmxlIGVtcHR5IGhhcm5lc3MgY3JlYXRpb24gYW5kIHJlZmFjdG9yIGFyb3VuZCB0aGlzCgkgIEFsc28gbWFrZSB0aGUgdGVzdGNsb2NrIGEgbWVtYmVyIG9mIHRoZSBoYXJuZXNzLCBhbGxvd2luZyBzb21lCgkgIG1vcmUgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGNsb2NrIHByaW9yIHRvIGFkZGluZyBlbGVtZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNQoKMjAxNi0wMi0xMiAxNToxMjo0MyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE5CgoyMDE1LTA4LTA0IDE3OjA5OjM1ICswMjAwICBNaWtoYWlsIEZsdWRrb3YgPG1pc2hhQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHRoZSByYWNlIGluIGJsb2NraW5nIHB1c2ggbW9kZQoJICBEZXBlbmRpbmcgb24gd2hlbiBnc3RfaGFybmVzc19wdWxsIHdhcyBjYWxsZWQgLSBiZWZvcmUgdGhlIGJ1ZmZlciByZWFjaGVkCgkgIGdzdF9oYXJuZXNzX2NoYWluIG9yIGFmdGVyIHdlIGNhbiBnZXQgZGlmZmVyZW50IGJlaGF2aW9ycyBvZiB0aGUgdGVzdAoJICB3aXRoIGVuYWJsZWQgYmxvY2tpbmcgcHVzaCBtb2RlLiBUaGUgZml4IG1ha2VzIHRoZSBiZWhhdmlvciBhbHdheXMgdGhlCgkgIHNhbWUuIEluIHB1bGwgZnVuY3Rpb24gd2UgZ2V0IHRoZSBidWZmZXIgZmlyc3QsIHRodXMgbWFraW5nIHN1cmUKCSAgZ3N0X2hhcm5lc3NfY2hhaW4gd2FpdHMgZm9yIHRoZSBzaWduYWwsIGFuZCBlbWl0dGluZyB0aGUgc2lnbmFsIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTMxCgoyMDE2LTAyLTA0IDE1OjE2OjQxICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgdGNhc2Vfc2tpcF9icm9rZW5fbG9vcF90ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTcKCjIwMTYtMDEtMjEgMTM6MjU6NDAgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggZG9jcyBmb3Igc3RyZXNzIHRlc3QgZnVuY3Rpb25zCgkgIG5vdGlmeSBpcyBub3QgY2FsbGVkIHBlciBidWZmZXIsIGJ1dCB3aGVuIHRoZSB0aHJlYWQgaXMgZnJlZWQuCgkgIENvbW1lbnQgYWJvdXQgc2VyaWFsaXplZCBldmVudHMgYW5kIE9PQiBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB1cHN0cmVhbQoJICBldmVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDkKCjIwMTUtMTItMDggMTQ6MTg6MjEgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBVbnNldCBzaW5rX2ZvcndhcmRfcGFkIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzCgkgIFNldCB0aGUgc2lua19mb3J3YXJkX3BhZCB0byBOVUxMIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzIHRvCgkgIGF2b2lkIHRoYXQgdGhlIGhhcm5lc3MgdHJpZXMgdG8gZm9yd2FyZCBldmVudHMvcXVlcmllcyB0byBpdCB3aGlsZSBpdCdzCgkgIHRlYXJpbmcgZG93bi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNAoKMjAxNS0wOS0yOSAxMjoxMjoyNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggdXAgZG9jcyB0byByZWZlcmVuY2UgZnVuY3Rpb25zIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDEKCjIwMTYtMDItMTAgMTQ6MDE6NTQgKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcGFzcyBhY3F1aXJlIHBhcmFtcyB0byBhbGxvY19idWZmZXIKCSAgV2hlbiBhbGxvY2F0aW5nIGEgbmV3IGJ1ZmZlciBpbiB0aGUgcG9vbCwgYm90aCB0aGUgZG9fYWxsb2NfYnVmZmVyKCkgYW5kIHRoZQoJICB2bWV0aG9kLCBhbGxvY19idWZmZXIoKSwgcmVjZWl2ZSB0aGUgcGFyYW1ldGVyIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLgoJICBOb25ldGhlbGVzcywgd2hlbiBkZWZhdWx0X2FjcXVpcmVfYnVmZmVyKCkgY2FsbHMgdGhlIGRvX2FsbG9jX2J1ZmZlcigpIGl0IGRvZXMKCSAgbm90IHBhc3MgdGhlIHJlY2VpdmVkIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLCBzbyB3aGVuIHRoZSB1c2VyIHBhc3MgdGhvc2UKCSAgcGFyYW1ldGVycyB0aGV5IGFyZSBpZ25vcmVkIGJ5IGFsbG9jX2J1ZmZlcigpIHZtZXRob2QuCgkgIFRoaXMgb25lLWxpbmVyIHBhdGNoIHBhc3MgdGhlIHJlY2VpdmVkIGFjcXVpcmUgcGFyYW1zIHRvIGRvX2FsbG9jX2J1ZmZlcigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxODI0CgoyMDE2LTAyLTEwIDA5OjA5OjI5ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEZpeCB3YWl0L3Vuc2NoZWR1bGUgcmFjZQoJICBGaXhlcyBhIHJhY2Ugd2hlcmUgYW4gZW50cnkgaXMgc2V0IHRvIEJVU1kgaW4KCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcigpIGFuZCBpcyBVTlNDSEVEVUxFRCBiZWZvcmUKCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCgpIHN0YXJ0cyBwcm9jZXNzaW5nIGl0LiBUaGUKCSAgd2FrZXVwIGFkZGVkIGJ5IGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSgpIG11c3QgYmUgY2xlYW5lZCB1cC4KCSAgVHdvIHN0cmVzcyB0ZXN0cyBhcmUgYWRkZWQuIE9uZSB0ZXN0IHRoYXQgdHJpZ2dlcnMgdGhlIHNwZWNpZmljIGlzc3VlCgkgIGRlc2NyaWJlZCBhYm92ZS4gVGhlIHNlY29uZCBzdHJlc3NlcyB0aGUgY29kZSBwYXRoIHdoZXJlIGEgd2FpdCBpcwoJICByZXNjaGVkdWxlZCBiZWNhdXNlIHRoZSBwb2xsIHJldHVybmVkIGVhcmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE1OjM0OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGhhbmRsZSB1bnNjaGVkdWxlIG9mIGxhdGUgZW50cmllcwoJICBJZiB0aGUgY2xvY2tlbnRyeSBpcyB0b28gbGF0ZSBhbmQgaXMgdW5zY2hlZHVsZWQgYmVmb3JlIGl0IGdldHMKCSAgYSBjaGFuZ2UgdG8gZGV0ZWN0IGl0cyBsYXRlbmVzcyB0aGUgd2FrZXVwIGNvdW50IGFuZCB0aGUgcG9sbCBhcmUKCSAgdXNlZCBidXQgbmV2ZXIgcHJvcGVybHkgY2xlYW5lZCB1cC4gVGhpcyBsZWF2ZXMgaXQgaW4gYSBkaXJ0eSBzdGF0ZQoJICB0aGF0IGlzIGdvaW5nIHRvIG1lc3Mgd2l0aCB0aGUgbmV4dCBjbG9jayBlbnRyeSB3YWl0aW5nIHJlcXVlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE5OjA4OjE4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGV4dGVuZCB0aGUgQU1fVEVTVFNfRU5WSVJPTk1FTlQgZnJvbSBjaGVjay5tYWsKCSAgVG8gZ2V0IHRoZSBDS19ERUZBVUxUX1RJTUVPVVQgZGVmaW5lZCBmb3IgYWxsIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE0NzIKCjIwMTYtMDItMDUgMTg6MDE6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODZlNDY2MyB0byBiNjRmMDNmCgoyMDE2LTAyLTA0IDEwOjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc3RyYXkgZGlzY29udCBmbGFnIHNldCBvbiBvdXRnb2luZyBidWZmZXJzIGluIHB1c2ggbW9kZQoJICBXZSBoYXZlIG5vIGd1YXJhbnRlZXMgYWJvdXQgd2hhdCBmbGFncyBhcmUgc2V0IG9uIGJ1ZmZlcnMgd2UgdGFrZQoJICBvdXQgb2YgdGhlIEdzdEFkYXB0ZXIuIElmIHdlIHB1c2ggb3V0IG11bHRpcGxlIGJ1ZmZlcnMgZnJvbSB0aGUKCSAgZmlyc3QgaW5wdXQgYnVmZmVyICh3aGljaCB3aWxsIGhhdmUgZGlzY29udCBzZXQpLCBvbmx5IHRoZSBmaXJzdAoJICBidWZmZXIgd2UgcHVzaCBvdXQgc2hvdWxkIGJlIGZsYWdnZWQgYXMgZGlzY29udCwgbm90IGFsbCBvZiB0aGUKCSAgYnVmZmVycyBwcm9kdWNlZCBmcm9tIHRoYXQgZmlyc3QgaW5pdGlhbCBpbnB1dCBidWZmZXIuCgkgIEZpeGVzIGlzc3VlIHdoZXJlIHRoZSBmaXJzdCBmZXcgbXAzIGZyYW1lcy9zZWNvbmRzIG9mIGRhdGEgaW4gcHVzaAoJICBtb2RlIHdlcmUgc2tpcHBlZCBvciBnYXJibGVkIGluIHNvbWUgY2FzZXMsIGFuZCB0aGUgZGlzY29udCBmbGFncwoJICB3b3VsZCBhbHNvIHRyaXAgdXAgZGVjb2RlcnMgd2hpY2ggd2VyZSBnZXR0aW5nIGRyYWluZWQvZmx1c2hlZCBmb3IKCSAgZXZlcnkgYnVmZmVyLiBUaGlzIHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiAxLjYgYXBwYXJlbnRseS4KCjIwMTYtMDItMDIgMTY6MzU6MzQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogRG8gbm90IHVuc2V0IHVuaW5pdGlhbGxpemVkIEdWYWx1ZQoJICBJbiBjYXNlIHRoZSBwcm9wZXJ0eSB3YXMgbm90IGludGVycG9sbGFibGUgd2UgbWlnaHQgbmV2ZXIgaW5pdGlhbGl6ZQoJICB0aGUgR1ZhbHVlLCB3ZSBzaG91bGQgdGh1cyBuZXZlciB1bnNldCBpdC4KCjIwMTYtMDItMDIgMTY6MzQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgZG9jczogcHdnOiBmaXggbWlzc2luZyBlbmQgb2YgbGluZSBzZW1pY29sb24gaW4gY3VzdG9tIG1ldGEgZXhhbXBsZQoKMjAxNi0wMi0wMiAxMDo1NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBhZGQgZ3VhcmQgdG8gbWFrZSBzdXJlIGdzdHJlYW1lciBpcyBpbml0aWFsaXplZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDQ4CgoyMDE2LTAyLTAxIDE4OjQxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyBydHNwIHNlcnZlciBwbHVnaW4gbG9jYXRpb24gdG8gcGx1Z2lucyBwYXRoCgoyMDE2LTAxLTI1IDE2OjMwOjA0ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVHJ5IHRvIGdlbmVyYXRlIGNhcHMgb24gdGhlIHNyY3BhZCBiZWZvcmUgZm9yd2FyZGluZyBHQVAgZXZlbnQKCSAgVG8gY29uZmlndXJlIGRvd25zdHJlYW0gZWxlbWVudHMgYW5kIGNvbXBsZXRlIGluaXRpYWwgcHJlLXJvbGxpbmcsCgkgIGVuc3VyZSB3ZSBoYXZlIGRlZmF1bHQgb3V0cHV0IGNhcHMgYmVmb3JlIGZvcndhcmRpbmcgR0FQIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODk5CgoyMDE2LTAxLTI4IDIwOjE4OjU1IC0wNzAwICBBbGV4IEhlbnJpZSA8YWxleGhlbnJpZTI0QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogSW1wcm92ZSBFbmdsaXNoIGdyYW1tYXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTI3MwoKMjAxNi0wMS0yNyAxMjo0NToyMCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCBhbiBvdGhlciB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCSAgU2hvY2tpbmdseSBJIG1pc3NlZCB0aGlzIGJpZ2dlciB0eXBvIGluIHRoZSBwcmV2aW9zIGZpeAoKMjAxNi0wMS0yNyAxMjoyNDo1NyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCjIwMTYtMDEtMjUgMTI6MDk6NTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czpnc3RpbmZvOiBGaXggc3RyaW5nIG1lbW9yeSBsZWFrCgkgIGluZm9fZm91cmNjIHRlc3QgbGVha3Mgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMDcxCgoyMDE2LTAxLTIzIDE2OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IG1ha2Ugd29yayB3aXRob3V0IHJlZ2lzdHJ5CgoyMDE2LTAxLTIyIDEyOjUwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgdHJhY2VyOiByZW5hbWUgR1NUX1RSQUNFUl9QTFVHSU5TIGVudiB2YXIgdG8gR1NUX1RSQUNFUlMKCjIwMTYtMDEtMjEgMDg6MTI6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGRvbid0IGxlYWsgdGhlIHNwZWMgc3RydWN0dXJlcwoJICBDaGFuZ2UgdGhlIGdzdF90cmFjZXJfcmVjb3JkX25ldygpIGFwaSB0byB0YWtlIHRoZSBwYXJhbWV0ZXJzIHRoZSBtYWtlIHRoZQoJICBzcGVjIHN0cnVjdHVyZSBkaXJlY3RseS4gVGhpcyBhbGxvd3MgdXMgdG8gb3duIHRoZSB0b3AtbGV2ZWwgc3RydWN0dXJlIGFuZAoJICBhbHNvIGNvbGxlY3QgdGhlIGFyZ3Mgc28gdGhhdCB3ZSBjYW4gdGFrZSBvd25lcnNoaXAgb2YgdGhlIHN1Yi1zdHJ1Y3R1cmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIxIDE1OjQ1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IGZpeCBjb21wYXJpc29uIGluIF9oYXNfY2xhc3Nlc3YoKQoJICBXZSdyZSBjb21wYXJpbmcgYSBwb2ludGVyIHR5cGUgd2l0aCAnXDAnIGhlcmUsIHdoaWNoCgkgIHByb2JhYmx5IGlzbid0IHJpZ2h0LCBhbmQgdGhlIGxvb3AgY29uZGl0aW9uIG1hZGUgc3VyZQoJICB0aGF0IGNsYXNzZXNbMF0gaXMgIT0gTlVMTCBhbHJlYWR5LCBzbyBpdCdzIHBvaW50bGVzcy4KCSAgV2FzIHByb2JhYnkgbWVhbnQgdG8gY2hlY2sgaWYgdGhlIHN0cmluZyBwb2ludGVkIHRvIGlzCgkgIG5vdCBlbXB0eSwgc28gbWFrZSBpdCBkbyB0aGF0IGluc3RlYWQuCgoyMDE2LTAxLTIwIDIwOjMyOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0L3RyYWNlcnJlY29yZDogdW5yZWYgb2JqZWN0cyBhbmQgZnJlZSBzdHJpbmcKCjIwMTYtMDEtMTggMjI6NDU6NTggKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB0ZXN0czogYWRkZWQgc3RyZXNzIHRlc3QgZm9yIGFzeW5jIG9yZGVyCgkgIEtlZXAgaW5zZXJ0aW5nIGFsYXJtcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LiBEdWUgdG8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoJICBhbGFybSB0aHJlYWQgd2lsbCBnZXQgY29uZnVzZWQgYW5kIG5vdCBzZXJ2ZSB0aGVtIGluIG9yZGVyLgoKMjAxNi0wMS0xOCAxNjoyNToyMCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeGVkIHJhY2UgY29uZGl0aW9uIGluIGhhbmRsaW5nIGFsYXJtcwoJICBXaGVuIGNob29zaW5nIHRoZSBmaXJzdCBlbnRyeSBmcm9tIHRoZSBsaXN0LCBnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZAoJICBtdXN0IHNldCB0aGUgZW50cnkgc3RhdGUgdG8gYnVzeSBiZWZvcmUgcmVsZWFzaW5nIHRoZSBjbG9jayBsb2NrLiBPdGhlcndpc2UKCSAgYSBuZXcgZW50cnkgY291bGQgYmUgYWRkZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBhbmQKCSAgZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQgd2lsbCBiZSB1bmF3YXJlIGFuZCBrZWVwIHdhaXRpbmcgb24gdGhlIGVudHJ5CgkgIGl0IGhhcyBhbHJlYWR5IGNob3Nlbi4KCSAgQWxzbyBpbXByb3ZlZCBtZXNzYWdlcyBhYm91dCBleHBlY3RlZCBzdGF0ZSBhbmQgYnVtcGVkIHRoZW0gdG8gRVJST1IgbGV2ZWwKCSAgdG8gZGV0ZWN0IHVuZXhwZWN0ZWQgc3RhdGUgY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoKMjAxNi0wMS0yMCAxMTowNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIGR1cGxpY2F0ZSBjaGVjawoKMjAxNi0wMS0yMCAwOTo1NzowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB0d28gc21hbGwgZml4ZXMgZm9yIHdoZW4gYW4gZXhpc3RpbmcgcGFkIGlzIHJlcXVlc3RlZAoJICBVbmxvY2sgd2hlbiByZXR1cm5pbmcgTlVMTCBmcm9tIGdzdF9zaW5nbGVfcXVldWVfbmV3KCksIGFuZCBkb24ndAoJICBjcmFzaCB3aXRoIGRlYnVnIGxvZ2dpbmcgZW5hYmxlZCBpZiBOVUxMIGlzIHJldHVybmVkLgoJICBTcG90dGVkIGJ5IFN0ZXZlbiBIb3ZpbmcuCgoyMDE2LTAxLTIwIDEwOjAyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgYSBoYWxmIGZpbmlzaGVzaCBzZW50ZW5jZSBpbiB0aGUgZG9jcwoJICBObyBpZGVhIHdoYXQgd2FzIHRoZSBpZGVhIGhlcmUuIFNPIGxldHMganVzdCBkcm9wIGl0LgoKMjAxNi0wMS0xOSAxNDozOTowNiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBGaXggc2VsZi0+c3BlYyBzdHJ1Y3R1cmUgaW52YWxpZCBmcmVlCgkgIHNlbGYtPnNwZWMgaXMgZ290IHVzaW5nIGdfdmFsdWVfZ2V0X2JveGVkKCksIHdoaWNoIGlzIGEgdHJhbnNmZXIgbm9uZSBmdW5jdGlvbi4KCSAgU28gdGhlIHNhbWUgc2hvdWxkIG5vdCBiZSBmcmVlZCwgd2hpY2ggaXMgcmVzdWx0aW5nIGluIHdyb25nIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIwIDA5OjI1OjQ0ICswMTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IEluaXRpYWxpc2UgZmxhZ3MgdG8gYXZvaWQgd3JvbmcgY29tcGFyaXNpb24KCSAgR3N0VHJhY2VyVmFsdWVGbGFncyBpcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQgYW5kIHRoZSBzYW1lIGNvdWxkIHJlc3VsdCBpbiB3cm9uZwoJICBjb21wYXJpc2lvbiBhbmQgYmVoYXZpb3IuIEhlbmNlIGluaXRpYWxpemluZyBpdCB0byBHU1RfVFJBQ0VSX1ZBTFVFX0ZMQUdTX05PTkUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMjAgMDk6MTg6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0cy9nc3QvaW5mbzogRml4IG1lc3NhZ2VzIGdsaXN0IG1lbW9yeSBsZWFrCgoyMDE2LTAxLTE5IDE1OjAzOjU1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0czogdHJhY2VycmVjb3JkOiBGaXggbWVzc2FnZXMgZ2xpc3QgbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0xOCAyMToxMjo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0cmFjZXI6IGFkZCBhbiBpbnRlcm5hbCBwdHIgZm9ybWF0IGZvciB0cmFjZXIgc2VyaWFsaXNhdGlvbgoJICBXZSBuZWVkIHRvIGFwcGx5IHRoZSBzdHJpbmcgd3JhcHBpbmcgdGhhdCB2YWx1ZSBzZXJpYWxpc2F0aW9uIGRvZXMgYWxzbyBpbiB0aGUKCSAgdHJhY2VyIGxvZ2dpbmcsIG90aGVyd2lzZSB3ZSBjYW4ndCBwYXJzZSBuZXN0ZWQgc3RydWN0dXJlcy4KCjIwMTYtMDEtMTggMjE6MDk6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRyYWNlci9nc3RzdGF0czogZml4IG1pc21hdGNoIGJldHdlZW4gJy5jbGFzcycgYW5kIHRyYWNlciBhcmdzCgkgIENsZWFuIHVwIGZyb20gdGhlIHJlY2VudCBjaGFuZ2VzLiBUaGUgbG9nZ2luZyBkZXNjcmlwdGlvcnMgZGlkIG5vdCBtYXRjaCB3aGF0IHdlIGxvZ2dlZC4KCjIwMTUtMTEtMTIgMDE6MTQ6MzQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eQoJICBUaGUgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eSBtYWtlcyBxdWV1ZTIgbG9vayBhdAoJICB0YWcgZXZlbnRzIGluIHRoZSBzdHJlYW0gYW5kIGV4dHJhY3QgYSBiaXRyYXRlIGZvciB0aGUKCSAgc3RyZWFtIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIGEgZHVyYXRpb24gZm9yIGJ1ZmZlcnMKCSAgdGhhdCBkb24ndCBoYXZlIG9uZSBleHBsaWNpdGx5IHNldC4KCSAgVGhpcyBsZXRzIHF1ZXVlMiBzZW5zaWJseSBidWZmZXIgdG8gYSB0aW1lIHRocmVzaG9sZAoJICBmb3IgYW55IGJ5dGVzdHJlYW0gZm9yIHdoaWNoIHRoZSBnZW5lcmFsIGJpdHJhdGUgaXMga25vd24uCgoyMDE2LTAxLTE5IDEyOjA0OjE2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGF2b2lkIG92ZXJ3cml0aW5nIHZhbHVlCgkgIHJlcyB2YWx1ZSBpcyBvdmVyd3JpdHRlbiwgcmVtb3ZlIHRoZSBhc3NpZ25tZW50LgoJICBwcml2X19nc3Rfc3RydWN0dXJlX2FwcGVuZF90ZW1wbGF0ZV90b19nc3RyaW5nICgpIGFsd2F5cyByZXR1cm5zIFRSVUUKCSAgYW55d2F5LgoJICBDSUQgMTM0OTY0NQoKMjAxNi0wMS0xOSAxMToxMToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGJlbmNobWFya3M6IERpc2FibGUgdHJhY2Vyc2VyaWFsaXplIGJlbmNobWFyayBvbiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgbm8gZ3N0LWRlYnVnZ2luZyA9PiBubyB0cmFjZXIgbG9nZ2luZyAoYW5kIG5vIHBvbnkgZWl0aGVyKQoKMjAxNi0wMS0xOSAxMToxMDozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJICB0cmFjZXJyZWNvcmQ6IERpc2FibGUgbG9nZ2luZyBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTWFrZSB0aGUgZ3N0X3RyYWNlcl9yZWNvcmRfbG9nKCkgYSBuby1vcCBpZiB0aGUgZ3N0LWRlYnVnIHN1YnN5c3RlbQoJICBpcyBkaXNhYmxlZC4KCjIwMTYtMDEtMTggMTk6MTc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmYWlsIGZsYWcgZGVzZXJpYWxpemF0aW9uIG9uIGludmFsaWQgZmxhZyBuYW1lcwoKMjAxNi0wMS0xOCAxOToxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IHN0cnVjdHVyZTogZml4IHdyb25nIGZsYWcgbmFtZSBpbiBkZXNlcmlhbGl6YXRpb24gdGVzdAoJICBUaGVyZSBpcyBubyBHU1RfU0VFS19GTEFHU19OT05FIG9ubHkgR1NUX1NFRUtfRkxBR19OT05FIChidXQKCSAgdGhlIGRlc2VyaWFsaXplciBzaWxlbnRseSBza2lwcyBiYWQgZmxhZyBuYW1lcyBjdXJyZW50bHkpLgoKMjAxNi0wMS0xNyAyMzo0OToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXJzOiBmaXggdGhyZWFkLWlkIGNhc3RzIHRvIDY0LWJpdCBpbnRzIG9uIDMyLWJpdCBzeXN0ZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NjIKCjIwMTYtMDEtMTggMTA6MTM6MDIgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIG5ldyBlbnVtIHR5cGVzIGluIGdzdF9pbml0L2RlaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzY3CgoyMDE2LTAxLTE3IDAwOjA4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgbmV3IGZsYWdzIGdldF90eXBlKCkKCjIwMTYtMDEtMTYgMjI6NDM6MjMgKzAxMDAgIFBoaWxpcCBWYW4gSG9vZiA8cGhpbGlwQGNvZGVtaW5kZWQuYmU+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyLmg6IGRvbid0IGluY2x1ZGUgcHJpdmF0ZSBub2luc3QgaGVhZGVyIGdzdHRyYWNlcnV0aWxzLmggaW4gYSBwdWJsaWMgaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3MzIKCjIwMTYtMDEtMTYgMjE6MjQ6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIGJlbmNobWFyazogaW1wcm92ZSBzY3JpcHQKCSAgVXNlIGEgdGVtcCBmaWxlIGZvciB0aGUgbG9nIGFuZCBmaXggb25lIGVudi12YXIuCgoyMDE2LTAxLTE2IDIxOjIzOjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlci9zdGF0czogdXNlIHRoZSByaWdodCBsb2cgdGVtcGxhdGUKCSAgV2hlbiBwb3J0aW5nIHdlIHVzZWQgdGhlIHdyb25nIHJlY29yZCAoY29weSBhbmQgcGFzdGUpLgoKMjAxNi0wMS0xNiAyMTowNDo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VyOiB1cGRhdGUgdGhlIGRvY3MKCSAgQWRkIHRoZSBuZXcgZW51bSBhbmQgZmxhZ3MuIFJlbW92ZSB0aGUgR3N0VHJhY2VyUmVjb3JkUHJpdmF0ZS4KCjIwMTYtMDEtMTYgMjE6MDI6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiB1cGRhdGUgdG8gbGF0ZXN0IHRhcmNlciBhcGkKCSAgVGhlIHRocmVhZC1pZHMgYXJlIHNlcmlhbGl6ZWQgYXMgdWludDY0LiBUaGUgJ2VsZW0taXgnIGdvdCBjaGFuZ2VkIHRvCgkgICdlbGVtZW50LWl4Jy4gTWFrZSB0aGUgY29kZSBhIGJpdCBtb3JlIHJvYnVzdC4KCjIwMTYtMDEtMTYgMTg6NTU6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIHRoZSBuZXcgZmxhZ3MgdG8gY3JlYXRlIHRoZSBvcHRpb25hbCBmaWVsZCBpbiB0aGUgZm9ybWF0IHN0cmluZwoJICBUaGlzIHNwYXJlcyB1cyBleHBsaWNpdGx5IGxpc3RpbmcgdGhlIGZpZWxkIGluIHRoZSBzcGVjLiBhbmQgdGh1cyBoaWRlIHRoaXMKCSAgaW1wbGVtZW50YXRpb24gZGV0YWlsLgoKMjAxNi0wMS0xNiAxODo1MjozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgYSBHc3RUcmFjZXJWYWx1ZUZsYWdzIGFuZCByZXBsYWNlIHN0cmluZ3MKCSAgVGhpcyBhbGxvd3MgdXMgdG8gZG9jdW1lbnQgdGhlIGZsYWdzIGFuZCBtYWtlcyB0aGUgbG9ncyBhIGJpdCBzbWFsbGVyLgoKMjAxNi0wMS0xNiAxNjowMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBmdW5jdGlvbiBndWFyZCB0byBnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDcwNAoKMjAxNi0wMS0xNiAxNDo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ3N0Lmg6IERvbid0IHNwZXcgd2FybmluZ3MgaWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkgaXMgbm90IGRlZmluZWQKCSAgT25seSBoaWRlIEdzdFRyYWNlciBhbmQgR3N0VHJhY2VyUmVjb3JkIEFQSSBiZWhpbmQgR1NUX1VTRV9VTlNUQUJMRV9BUEksCgkgIGJ1dCBkb24ndCBzcGV3IGFueSB3YXJuaW5ncywgb3RoZXJ3aXNlIGV2ZXJ5b25lIGhhcyB0byBkZWZpbmUgdGhpcwoJICB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCSAgVGhpcyByZXZlcnRzIHBhcnRzIG9mIGNvbW1pdCA4OWVlNWQ5NDhkZmY1NjAyMDRlNmVkZDIxMGM0NGVkMmI4NjU0YjhlLgoKMjAxNi0wMS0xNiAxMzozMDozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgYmVuY2htYXJrczogdXBkYXRlIHRoZSB0cmFjZXIgYmVuY2htYXJrIGFuZCBhZGQgYSBzaGVsbCBiZW5jaG1hcmsKCjIwMTYtMDEtMTYgMTM6Mjg6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzL2Rlc2lnbjogdXBkYXRlIHRyYWNlcnNwZWMgZXhhbXBsZXMKCjIwMTYtMDEtMTYgMTM6Mjc6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ246IHNwZWxsIGNoZWNraW5nCgoyMDE2LTAxLTE2IDEzOjI0OjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlcjogYWRkIGEgR0ZsYWcgZm9yIHRoZSB0cmFjZXIgc2NvcGUKCSAgUG9ydCBhbGwgdHJhY2Vycy4gQWRkIHRoZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBmbGFnIHRvIHRoZSBpbnRlcm5hbCBDRkxBR1Mgc28KCSAgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHNwZWNpZnkgdGhpcyBmb3IgZ2lyLCBkb2NzLCBta2VudW0sIC4uLgoKMjAxNi0wMS0xNiAxMDo0ODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBNYWtlIGFjY2VzcyB0byB0aGUgYWN0aXZlIHBhZCBhbmQgbGFzdCBidWZmZXIgdGhyZWFkLXNhZmUKCSAgQm90aCBjYW4gYmUgbW9kaWZpZWQgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLgoKMjAxNi0wMS0xNiAxMDo0NzozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgYWN0aXZlLXBhZCBwcm9wZXJ0eSBpcyBjaGFuZ2luZwoKMjAxNi0wMS0xMiAxNDo1OTowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2VycmVjb3JkOiBhZGQgYSBsb2cgcmVjb3JkIGNsYXNzCgkgIFdlIHVzZSB0aGlzIGNsYXNzIHRvIHJlZ2lzdGVyIHRyYWNlciBsb2cgZW50cnkgbWV0YWRhdGEgYW5kIGJ1aWxkIGEgbG9nCgkgIHRlbXBsYXRlLiBXaXRoIHRoZSBsb2cgdGVtcGxhdGUgd2UgY2FuIHNlcmlhbGl6ZSBsb2cgZGF0YSB2ZXJ5IGVmZmljaWVudGx5LgoJICBUaGlzIGFsc28gc2ltcGxpZmllcyB0aGUgbG9nZ2luZyBjb2RlLCBzaW5jZSB0aGF0IGlzIG5vdyBhIHNpbXBsZSB2YXJhcmdzCgkgIGZ1bmN0aW9uIHRoYXQgaXMgbm90IGV4cG9zaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgoJICBBZGQgZG9jcyBmb3IgdGhlIG5ldyBjbGFzcyBhbmQgYmFzaWMgdGVzdHMuCgkgIFJlbW92ZSB0aGUgcHJldmlvdXMgbG9nIGhhbmRsZXIuCgkgIEZpeGVzICM3NjAyNjcKCjIwMTYtMDEtMTUgMDk6NDg6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnX3NvY2tldF9jbG9zZSgpCgkgIENJRCAxMzQ4NDUyCgoyMDE2LTAxLTE1IDA5OjAyOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGcmVlIGRhdGEgYWZ0ZXIgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgbGlzdAoJICBEb2VzIG5vdCBtYXR0ZXIgaGVyZSBidXQgbWFrZXMgQ292ZXJpdHkgbW9yZSBoYXBweS4gSXQgY2FuJ3QKCSAga25vdyB0aGF0IGdfbGlzdF9yZW1vdmUoKSBvbmx5IGxvb2tzIGF0IHRoZSBwb2ludGVyIHZhbHVlIGJ1dAoJICBkb2VzIG5vdCBkZXJlZmVyZW5jZSBpdC4KCSAgQ0lEIDEzNDg0NTQKCjIwMTYtMDEtMTUgMDA6MzA6NTkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIEdzdERldmljZU1vbml0b3I6IENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBnc3RfZGV2aWNlX21vbml0b3JfYWRkX2ZpbHRlcgoKMjAxNi0wMS0xNSAwMDoyNTowNSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgR3N0RGV2aWNlTW9uaXRvcjogRG9uJ3QgcmVtb3ZlIHVubWF0Y2hlZCBjbGFzcyBmaWx0ZXJzCgkgIElmIG5vIHByb3ZpZGVycyBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIGNvdWxkIGJlIGZvdW5kLCB0aGVuIHJlbW92aW5nIHVubWF0Y2hlZAoJICBmaWx0ZXJzIHdvdWxkIGNhdXNlIGFsbCBkZXZpY2VzIHRvIGJlIHJldHVybmVkIGluc3RlYWQgd2hpY2ggaXMgbm90IGF0IGFsbCB3aGF0CgkgIHRoZSB1c2VyIGludGVuZGVkLiBXZSBzdGlsbCByZXR1cm4gMCBmb3IgdW5tYXRjaGVkIGZpbHRlcnMuCgoyMDE2LTAxLTEzIDIxOjMyOjIwICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRml4IEdFcnJvciBtZW1vcnkgbGVhayBpbiBoYW5kbGluZyBOVFAgcmVzcG9uc2UKCSAgRXJyb3Igd2FzIG5vdCByZWxlYXNlZCBpZiBnc3RfbnRwX3BhY2tldF9yZWNlaXZlIGZhaWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDU5OAoKMjAxNi0wMS0xMyAxMzoxMDoxMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgQVBJIGFkZGl0aW9ucwoKMjAxNi0wMS0xMSAxNjozMTozOSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZXhwb3NlIGRlYnVnZ2luZyBwcmludGYgZnVuY3Rpb25zCgkgIE90aGVyIGdzdCBsaWJyYXJpZXMgYW5kL29yIGVsZW1lbnRzIG1heSB3YW50IHRvIGFkZCBzb21lIGRlYnVnIGxvZ2dpbmcgdG8gYW4KCSAgZXh0ZXJuYWwgZGVidWcgc3lzdGVtIG9yIGltcGxlbWVudCBkZWxheWVkIGRlYnVnZ2luZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KCSAgRXhwb3NlcyB0aGUgaW50ZXJuYWwgX19nc3RfdmFzcHJpbnRmIGFzIGdzdF9pbmZvX3Zhc3ByaW50ZiB3aGljaCBoYXMgYSBmYWxsYmFjawoJICB0byBnX3Zhc3ByaW50ZiBpZiB0aGUgZGVidWcgc3lzdGVtIGlzIGRpc2FibGVkLgoJICBBUEk6IGdzdF9pbmZvX3Zhc3ByaW50ZgoJICBBUEk6IGdzdF9pbmZvX3N0cmR1cF92cHJpbnRmCgkgIEFQSTogZ3N0X2luZm9fc3RyZHVwX3ByaW50ZgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNDIxCgoyMDE2LTAxLTExIDIxOjE3OjI1ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBzZXQgZHVyYXRpb24vcG9zaXRpb24gcXVlcnkgdmFsdWVzIGluIGNhc2Ugb2YgcXVlcnkgc3VjY2VzcwoJICBDdXJyZW50bHksIHRoZSBxdWVyeSB2YWx1ZXMgYXJlIGJlaW5nIHNldCBldmVuIGlmIHRoZSBxdWVyeSBpdHNlbGYgd2FzCgkgIGRldGVybWluZWQgdG8gaGF2ZSBmYWlsZWQuIEZpeCB0aGlzIHRvIGVuc3VyZSB0aGUgdmFsdWVzIGFyZSBvbmx5IHNldCBpbgoJICBjYXNlIG9mIGEgcXVlcnkgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDQ3OQoKMjAxNi0wMS0xMCAxNDozMDowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBjb2RlIGNsZWFuIHVwcwoJICBEcm9wIHNvbWUgdHJhaWxpbmcgd2hpbGVzcGFjZS4gTWFrZSBmaWVsZCBvcmRlciBjb25zaXN0ZW50LgoKMjAxNi0wMS0wOCAyMzozNTo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogZml4IGNvcHknbidwYXN0IG9mIHRoZSBmaWxlLWRlc2NyaXB0aW9uIGNvbW1lbnQKCjIwMTYtMDEtMDggMjM6MDY6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogYWRkIGEgYmVuY2htYXJrIGZvciBiZ28vNzYwMjY3CgkgIEJpZyBzdXByaXNlIC0gR3N0U3RydWN0dXJlIGlzIGZhc3RlciB0aGFuIEdWYXJpYW50LgoKMjAxNS0wMy0xMCAxMzowNzoxOCArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IGltcHJvdmUgZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTM5CgoyMDE2LTAxLTA4IDE5OjI1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIGJ1ZmZlciBsaXN0IHN1cHBvcnQgdG8gR1NUX1BUUl9GT1JNQVQKCjIwMTUtMTEtMjUgMTc6MzY6MjUgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sc291cmNlOiBmaXggR2V0VmFsdWUgYW5kIEdldFZhbHVlQXJyYXkgZG9jdW1lbnRhdGlvbgoJICBHc3RDb250cm9sU291cmNlR2V0VmFsdWUoKSB2YWx1ZSBwYXJhbWF0ZXIgaXMgYSBnZG91YmxlLCBub3QgYSBHVmFsdWUKCSAgYW5kIEdzdENvbnRyb2xTb3VyY2VHZXRWYWx1ZUFycmF5IGRvZXNuJ3QgcmV0dXJuIGEgR3N0VmFsdWVBcnJheSBidXQKCSAgYW4gYXJyYXkgb2YgZG91YmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NjY4CgoyMDE2LTAxLTA3IDIzOjAzOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBoYXJtb25pemUgdGhlIHF1ZXJ5IGhvb2tzCgkgIEluIHBvc3QgaG9va3MgYWx3YXlzIHBhc3MgdGhlIHJldHVybiB2YWx1ZSBhcyB0aGUgbGFzdCBwYXJhbS4gUGFzcyB0aGUgcXVlcnkKCSAgYWxzbyB0byBwb3N0IGhvb2tzIHNpbmNlIGl0IGlzIHN0aWxsIGFsaXZlLgoKMjAxNi0wMS0wNyAyMjo0NzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzL3N0YXRzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXJzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucwoKMjAxNi0wMS0wNyAyMjo0Mzo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXJ1dGlsczogdXBkYXRlICNlbmRpZiBjb21tZW50CgkgIFdlIGNoYW5nZWQgdGhlIGRlZmluZSwgYnV0IGxlZnQgdGhlIGNvbW1lbnQgaW5jb25zaXN0ZW50LgoKMjAxNi0wMS0wNyAxOToxMzowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VydXRpbHM6IGRvY3VtZW50IHRoZSB0cmFjZXIgaG9vayBmdW5jdGlvbnMKCSAgRG9jdW1lbnQgYWxsIHRyYWNlciBob29rIGZ1bmN0aW9uIHBvaW50ZXIgdG9nZXRoZXIgd2l0aCB0aGUgZGV0YWlsIHN0cmluZyB0aGF0CgkgIG9uZSBuZWVkcyB0byB1c2Ugd2l0aCBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rKCkuCgoyMDE2LTAxLTA3IDE4OjQ2OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogVXNlIEdTVF9ESVNBQkxFX0dTVF9UUkFDRVJfSE9PS1MgaW5zdGVhZCBvZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgZXZlcnl3aGVyZQoJICBQcmV2aW91c2x5IHdlIHVzZWQgdGhlIGxhdHRlciBvbmUgc3RpbGwgZm9yIHRoZSB0cmFjZXIgdXRpbGl0eSBjb2RlLCBjYXVzaW5nCgkgIHVuZGVmaW5lZCByZWZlcmVuY2VzIGluIHRoZSByZXN1bHRpbmcgYmluYXJ5IGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIHdhcwoJICBkaXNhYmxlZCBidXQgdGhlIHRyYWNlciBzeXN0ZW0gbm90LgoKMjAxNi0wMS0wNyAxODo0MToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICBnc3Q6IFJlbmFtZSBfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHRvIF9wcml2X2dzdF9zdGFydF90aW1lIGFuZCBpbml0aWFsaXplIGl0IGNlbnRyYWxseQoJICBJdCdzIHVzZWQgYnkgdGhlIGRlYnVnZ2luZyBhbmQgdHJhY2VyIHN1YnN5c3RlbSBhbmQgaW4gdmFyaW91cyBmaWxlcywgbWFrZSBpdAoJICBhIGNlbnRyYWwgdGhpbmcgdGhhdCBpcyBpbml0aWFsaXplZCBpbmRlcGVuZCBvZiB0aGUgZXhpc3RlbmNlIG9mIHRob3NlCgkgIHN1YnN5c3RlbXMuCgoyMDE2LTAxLTA2IDIxOjQyOjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgd2luMzIgZXhwb3J0cwoJICBSZW1vdmUgdGhlIF9ob29rX2lkKCkgbWV0aG9kcyB3ZSBtYWRlIGludGVybmFsIGluIHRoZSBwcmV2IGNvbW1pdC4KCjIwMTYtMDEtMDYgMjE6MTc6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIGEgd2FybmluZyBpZiB3ZSBjYW4ndCBzZXJpYWxpemUgYSBmaWVsZAoJICBUaGUgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgVFJVRSByaWdodCBub3csIHNvIGF0bGVhc3QgbG9nIHNvbWV0aGluZy4KCjIwMTUtMTAtMDYgMTI6NDk6MDAgKzAwMDAgIEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IHF1ZXVlMjogYWRkIHRlc3QgZm9yIGZpbGwgbGV2ZWwgYXJpdGhtZXRpYyBvdmVyZmxvdwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTcxCgoyMDE2LTAxLTA2IDE5OjUxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjYWxjdWxhdGluZyBmaWxsIGxldmVscyBtdWx0aXBsZSB0aW1lcwoJICBNYWNybyBleHBhbnNpb24gbWVhbnMgd2UgbWlnaHQgY2FsY3VsYXRlIHRoZSBmaWxsIGxldmVsIG9uY2UKCSAgZm9yIHRoZSBjaGVjayBhbmQgdGhlbiBwb3NzaWJseSBhZ2FpbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4KCjIwMTYtMDEtMDYgMTk6NTA6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmaWxsIGxldmVsIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2l0aCBsYXJnZSB2YWx1ZXMKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU5NzEKCjIwMTYtMDEtMDYgMjA6NDE6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlcjogbWFrZSBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rX2lkIHN0YXRpYwoJICBXZSBkb24ndCBuZWVkIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkuIENoYW5nZSB0aGUgb25seSBwbHVnaW4gdGhhdCB3YXMKCSAgdXNpbmcgaXQuCgoyMDE2LTAxLTA2IDE4OjU2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRlc2lnbjogdXBkYXRlIGxpc3Qgb2YgZGlzdGVkIGZpbGVzIGFmdGVyIGZpbGUgcmVuYW1lCgoyMDE2LTAxLTA2IDE5OjQyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBIaWRlIE5UUCBwYWNrZXQgQVBJIGFuZCBhZGQgR1NUX1BUUF9TVEFUSVNUSUNTXyogZGVmaW5lcyB0byB0aGUgZG9jcwoKMjAxNi0wMS0wNiAxODoxNzoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBkb2NzOiByZW1vdmUgcGFyZW50IGRvY3MgZm9yIEdzdFB0cENsb2NrCgkgIEluc3RhbmNlIGRvY3MgZG9uJ3QgbmVlZCB0byBkb2N1ZW1udCB0aGUgcGFyZW50IChmaXJzdCBtZW1iZXIpLgoKMjAxNi0wMS0wNiAxODoxNDowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogY2xlYW51cCAtdW51c2VkLnR4dCByZXBvcnQgZm9yIGxpYnMKCSAgVGhlIElHTk9SRV9IX0ZJTEVTIGNhbiBvbmx5IGNvbnRhaW4gZmlsZXMgb3IgZGlycy4KCjIwMTYtMDEtMDYgMTc6NTg6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBjb3JlIGFwaSB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgQWRkIG5ldyBhbmQgZG9jdW1lbnRlZCBhcGkgcmVwb3J0ZWQgaW4gLXVudXNlZC50eHQgdG8gLXNlY3Rpb24udHh0LgoKMjAxNi0wMS0wNiAxNzo1NDo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb2NzOiBleGNsdWRlIG1vcmUgaGVhZGVyIGZyb20gZG9jLXNjYW4KCSAgRXhjbHVkZSBnc3QvcHJpbnRmLyouaCBhbmQgYSBmZXcgZ2VuZXJhdGVkIC5oIGZpbGVzIGZyb20gdGhlIGFwaS1zY2FuLiBUaGlzCgkgIG1ha2VzIC11bnVzZWQudHh0IHJlcG9ydCBmaWxlIGZyb20gZ3RrZG9jIHVzZWZ1bCBhZ2Fpbi4KCjIwMTYtMDEtMDYgMTY6MjE6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGFkanVzdC91bmFkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgaGF2ZSBhIGNsb2NrIHBhcmFtZXRlciBidXQgaXQncyB1c2VsZXNzCgkgIERvY3VtZW50IHRoaXMsIGZvciAyLjAgd2Ugc2hvdWxkIGp1c3QgcmVtb3ZlIHRoYXQgcGFyYW1ldGVyLgoKMjAxNi0wMS0wNiAxNjoxOToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKQoJICBXZSBhbHJlYWR5IGhhdmUgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgYW5kCgkgIGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpLCBoYXZpbmcgdGhlIG90aGVyIHZhcmlhbnQgaXMgdXNlZnVsLgoKMjAxNi0wMS0wNiAxMzozMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcGFkLWV2ZW50IGZ1bmN0aW9uIHRvIHRoZSBkb2NzCgoyMDE2LTAxLTA2IDEzOjI2OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogaGlkZSBpbnRlcm5hbCB0cmFjZXIgYXBpIGZyb20gZG9jcwoJICBBbHNvIGFkZHJlc3Mgd2FybmlnbnMgcmVnYXJkaW5nIHRoZSB1bnN0YWJsZSB0cmFjZXIgYXBpLgoKMjAxNi0wMS0wNiAxMjo0NzoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICBkb2NzOiBhZGQgdGhlIHRyYWNlciB0byB0aGUgZG9jcwoJICBBZGQgR3N0VHJhY2VyIGFuZCBHc3RUcmFjZXJGYWN0b3J5IHRvIHRoZSBjb3JlIGRvY3MuCgoyMDE2LTAxLTA2IDExOjUyOjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSAgZG9jczogcmVuYW1lIHRoZSB0cmFjZXIgZG9jIHRvIHBhcnQgc2luY2UgaXQgaXMgbm93IG1lcmdlZAoKMjAxNi0wMS0wNiAxMTozNTo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgdHJhY2VydXRpbHM6IG1vdmUgaGVhZGVyIHRvIG5vaW5zdCBzZWN0aW9uCgkgIFRoaXMgaXMgaW50ZXJuYWwgY29kZSwgdGhhdCBpcyBvbmx5IHRvIGJlIHVzZWQgaW4gY29yZS4KCjIwMTYtMDEtMDYgMTE6MzE6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICBjb25maWd1cmU6IGFkZCBhIG5ldyBvcHRpb24gdG8gZGlzYWJsZSB0aGUgdHJhY2VyIGhvb2tzCgkgIFRoaXMgd2FzIHByZXZpb3VzbHkgZG9uZSB2aWEge2VuYWJsZSxkaXNhYmxlfS1nc3QtZGVidWcuIFNpbmNlIGJvdGggc3Vic3lzdGVtcwoJICBhcmUgaW5kZXBlbmRlbnQgaGF2aW5nIHNlcGFyYXRlIG9wdGlvbnMgaXMgYmV0dGVyLgoKMjAxNi0wMS0wNSAxNjo0NDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgY2xvY2s6IEZpeCB0eXBvCgkgIGNsb2NrZWQgLT4gY2xvY2sKCjIwMTYtMDEtMDUgMTQ6NTk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IERpc2Nvbm5lY3QgdGhlICJzeW5jZWQiIHNpZ25hbCBoYW5kbGVyIGZyb20gdGhlIGludGVybmFsIGNsb2NrCgkgIE5vdCBmcm9tIHRoZSBleHRlcm5hbCBvbmUuCgoyMDE2LTAxLTA1IDEzOjU3OjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogcmVuYW1lIG5ldyBjdWJpYyBpbnRlcnBvbGF0aW9uIG1vZGUKCSAgRG9uJ3QgYWJicmV2aWF0ZSB0byAnbW9ubycgYW5kIHVzZSAnbW9ub3RvbmljJyBpbnN0ZWFkLgoKMjAxNi0wMS0wNSAxNDoyMzoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogRG9uJ3QgYWxsb3cgc2V0dGluZyBhbiB1bnN5bmNlZCBjbG9jayBhcyBtYXN0ZXIKCjIwMTYtMDEtMDUgMTQ6MjE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IERvbid0IHRyeSB0byBzbGF2ZSB1bnN5bmNlZCBjbG9ja3MKCSAgVGhleSB3aWxsIHJldHVybiB1c2VsZXNzIHZhbHVlcyBmcm9tIGdldF90aW1lKCkuCgoyMDE2LTAxLTA1IDEzOjQxOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG50cDogVGhlIGNsb2NrIGluaGVyaXRzIGZyb20gR3N0TmV0Q2xpZW50Q2xvY2ssIG5vdCBqdXN0IEdzdFN5c3RlbUNsb2NrCgoyMDE2LTAxLTA0IDE3OjE4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEZXN0cm95IGEgY2FjaGVkIGNsb2NrIDYwIHNlY29uZHMgYWZ0ZXIgaXRzIGxhc3QgdXNlCgkgIFRoZXJlJ3Mgbm90IG11Y2ggbG9zdCBieSBoYXZpbmcgdGhlIGNsb2NrIGlkbGUgYXJvdW5kIGEgYml0IGxvbmdlciBidXQgaXQgd2lsbAoJICBwb3RlbnRpYWxseSBhbGxvdyBhbnlib2R5IHdhbnRpbmcgdG8gdXNlIHRoZSBzYW1lIGNsb2NrIHNlcnZlciBhZ2FpbiB0byBzeW5jCgkgIG11Y2ggZmFzdGVyLgoKMjAxNi0wMS0wNCAxNjozMToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogT25seSBldmVyIHJ1biBvbmUgY2xvY2sgYWdhaW5zdCBhIHNwZWNpZmljIHNlcnZlcgoJICBJZiBtdWx0aXBsZSBuZXQvTlRQIGNsb2NrcyBhcmUgY3JlYXRlZCBmb3IgdGhlIHNhbWUgc2VydmVyLCByZXVzZSB0aGUgc2FtZQoJICBpbnRlcm5hbCBjbG9jayBmb3IgYWxsIG9mIHRoZW0uIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IGZsb29kIHRoZSBzZXJ2ZXIKCSAgd2l0aCB0b28gbWFueSByZXF1ZXN0cyBhbmQgYWxzbyBwb3NzaWJseSBhbGxvd3MgZmFzdGVyIHN5bmNocm9uaXphdGlvbiBpZgoJICB0aGVyZSBhbHJlYWR5IHdhcyBhbiBlYXJsaWVyIHN5bmNocm9uaXplZCBjbG9jayB3aGVuIGNyZWF0aW5nIGEgbmV3IG9uZS4KCjIwMTYtMDEtMDQgMTA6Mzk6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogVXNlIEdJbml0YWJsZSBpbnN0ZWFkIG9mIGhhdmluZyBhIG5ldygpIGZ1bmN0aW9uIHRoYXQgY2FuIHJldHVybiBOVUxMCgkgIEJpbmRpbmdzIGRvbid0IGxpa2UgdGhhdCBtdWNoIGFuZCBhcyB3ZSdyZSB1c2luZyBHSU8gaGVyZSBhbnl3YXkgd2UgY2FuIGFzCgkgIHdlbGwgdXNlIEdJbml0YWJsZSBmb3IgcG9zc2libHkgZmFpbGluZyBpbml0aWFsaXphdGlvbi4KCjIwMTYtMDEtMDMgMTQ6MDY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogTWFyayBhZGRyZXNzLCBwb3J0IGFuZCBjbG9jayBwcm9wZXJ0aWVzIENPTlNUUlVDVF9PTkxZCgkgIFRoZXkgY2FuJ3Qgc2Vuc2libHkgYmUgY2hhbmdlZCBhZnRlciBjb25zdHJ1Y3Rpb24uCgoyMDE2LTAxLTAzIDIyOjU1OjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VfbGF1bmNoOiBtYWtlIG5pY2VyIGxvZyBtZXNzYWdlcwoJICBBZGQgdHdvIG1hY3JvcyB0byBidWlsZCBuaWNlciBlbGVtZW50L3BhZCBuYW1lIHN0cmluZ3MuIFRoZSBtYWNyb3MgYXZvaWQKCSAgcHJpbnRpbmcgIihOVUxMKSIgYW5kIHByaW50IHRoZSBlbGVtZW50IHR5cGUgaW4gYWRkaXRpb24gdG8gdGhlIG5hbWUuCgoyMDE2LTAxLTAyIDE5OjQyOjE3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogd2FybiB3aGVuIHN0aWxsIHdhaXRpbmcgdG8gcGx1ZyBzdWItcGlwZWxpbmVzIGFmdGVyIG5vLW1vcmUtcGFkcwoJICBUaGUgcGFyc2UtbGF1bmNoIEFQSSBhdXRvbWFnaWNhbGx5IGhhbmRsZXMgZHluYW1pYyBwYWRzIGFuZCBwZXJmb3JtcyBkZWxheWVkCgkgIGxpbmtpbmcgYXMgbmVlZGVkLCB3aXRob3V0IGFueSBmZWVkYmFjayBhYm91dCB3aGV0aGVyIHRoZSBsaW5raW5nIHN1Y2NlZWRlZCBvcgoJICBub3QgaG93ZXZlci4gSWYgYSBkZWxheWVkIGR5bmFtaWMgbGluayBjYW4ndCBiZSBjb21wbGV0ZWQgZm9yIHdoYXRldmVyIHJlYXNvbiwKCSAgcGFyc2UtbGF1bmNoIHdpbGwgc2ltcGx5IHdhaXQgaW4gY2FzZSBhIHN1aXRhYmxlIHBhZCBhcHBlYXJzIGxhdGVyLiBUaGlzIG1heQoJICBuZXZlciBoYXBwZW4gdGhvdWdoLCBpbiB3aGljaCBjYXNlIHRoZSBwaXBlbGluZSBtYXkganVzdCBoYW5nIGZvcmV2ZXIuCgkgIFRyeSB0byBpbXByb3ZlIHRoaXMgYnkgY29ubmVjdGluZyB0byB0aGUgIm5vLW1vcmUtcGFkcyIgc2lnbmFsIG9mIGFueSBlbGVtZW50CgkgIHdpdGggZHluYW1pYyBwYWRzIGFuZCBwb3N0aW5nIGEgd2FybmluZyBtZXNzYWdlIGZvciB0aGUgcmVsYXRlZCBvdXRzdGFuZGluZwoJICBkeW5hbWljIGxpbmtzIHdoZW4gIm5vLW1vcmUtcGFkcyIgaXMgZW1pdHRlZC4KCSAgRml4ZXMgIzc2MDAwMwoKMjAxNS0xMi0zMSAxOToyNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSAgZG9jczogZml4IHNvbWUgd2FybmluZ3MgYW5kIGFkZCBzb21lIHNpbmNlIG1hcmtlcnMKCjIwMTYtMDEtMDMgMTE6Mzk6MjQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgdHJhY2luZzogYWRkIHNvbWUgcG9pbnRlcnMgYWJvdXQgbWVtb3J5IHRyYWNpbmcKCjIwMTYtMDEtMDMgMTE6Mzc6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBncmFtbWFyLnk6IHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDE1LTEyLTMxIDAwOjA0OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiB2YWx1ZTogdGVzdCBidWZmZXIgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gbW9yZSB0aG9yb3VnaGx5CgkgIFRlc3RzIGRhdGEvc3RyaW5ncyBhcyB3ZWxsLCBub3QganVzdCB0aGF0IHdlIHJlY2VpdmVkCgkgIHNvbWV0aGluZyBub24tTlVMTCBiYWNrLgoKMjAxNS0xMi0zMSAxMDo1NzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggdHlwbyBpbiBjb21tZW50CgoyMDE1LTEyLTMwIDE2OjU3OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBJbXBsZW1lbnQgcmVzb2x2YWwgb2YgaG9zdG5hbWVzCgkgIEp1c3QgYWxsb3dpbmcgSVBzIGhlcmUgaXMgbm90IGlkZWFsIGFuZCBpbXBsZW1lbnRpbmcgRE5TIHJlc29sdmFsIGlzIGVhc3kuCgoyMDE1LTEyLTI5IDE2OjI4OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBBZGQgcmVhZC1vbmx5IHByb3BlcnRpZXMgdG8gZ2V0IHRoZSBtYXN0ZXIgYW5kIGdyYW5kbWFzdGVyIGNsb2NrIGlkcwoKMjAxNS0xMi0yOSAxNDozMjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCAodHJhbnNmZXIgZnVsbCkgYW5ub3RhdGlvbiB0byBzaW1wbGlmeSgpIGFuZCBzdWJ0cmFjdCgpIHJldHVybiB2YWx1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5OTQ4CgoyMDE1LTEyLTI5IDExOjA2OjM5ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9uIHRvIGNhcHMgcmV0dXJuZWQgYnkgaW50ZXJzZXJjdGlvbiBmdW5jdGlvbnMKCSAgVG8gbWFrZSBjbGVhciBjYWxsZXIgaXMgcmVzcG9uc2libGUgdG8gdW5yZWYgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTk0OAoKMjAxNS0xMi0yOCAxOTo0MTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgbmV0OiBBZGQgTlRQIGFuZCBQVFAgY2xvY2sgdHlwZXMgdG8gdGhlIGRvY3MKCSAgVGhpcyBnaXZlcyB1cyB0aGUgcHJvcGVydHkgZG9jdW1lbnRhdGlvbiBmb3IgZXhhbXBsZS4KCjIwMTUtMTItMjcgMTk6NDI6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZG9uJ3QgbWVtY21wIHR3aWNlCgkgIFNpbXBseSBjYWxsIGZhaWwoKSBpbiB0aGUgY29uZGl0aW9uIGFmdGVyIHRoZSBmaXJzdCBtZW1jbXAuCgoyMDE1LTEyLTI0IDE1OjI3OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjcuMSA9PT0KCjIwMTUtMTItMjQgMTM6NTg6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuMQoKMjAxNS0xMi0yNCAxMjo1MDozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMTItMjQgMTI6MjE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0xMi0yMSAwMDo0Mzo0OSArMDEwMCAgS29vcCBNYXN0IDxrd21AcmFpbmJvdy1ydW5uZXIubmw+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogTWFrZSAtQnN5bWJvbGljIGNoZWNrIHdvcmsgd2l0aCBjbGFuZy4KCSAgVXBkYXRlIHRoZSAtQnN5bWJvbGljIGNoZWNrIHdpdGggdGhlIHZlcnNpb24gZ2xpYiBoYXMuIFRoaXMgdmVyc2lvbgoJICB3b3JrcyB3aXRoIGNsYW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NzEzCgoyMDE1LTEyLTE2IDA5OjM1OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIHRvIGdpdAoKMjAxNS0xMi0xNCAxMTowOTo0NiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBwbHVnaW5zLWJhZDogRml4IGV4YW1wbGUgcGlwZWxpbmVzCgkgIHJlbmFtZSBnc3QtbGF1bmNoIC0tPiBnc3QtbGF1bmNoLTEuMAoJICByZXBsYWNlIG9sZCBlbGVtZW50cyB3aXRoIG5ldyBlbGVtZW50cyhmZm1wZWdjb2xvcnNwYWNlIC0+IHZpZGVvY29udmVydCwgZmZlbmNfKiogLT4gYXZlbmNfKiopCgkgIGZpeCBjYXBzIGluIGV4YW1wbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0MzIKCjIwMTUtMTEtMTAgMTI6Mzg6NTkgLTA1MDAgIFhhdmllciBDbGFlc3NlbnMgPHhhdmllci5jbGFlc3NlbnNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGNvcmU6IEFkZCBnX2F1dG9wdHIoKSBzdXBwb3J0IHRvIGFsbCB0eXBlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NDY0CgoyMDE1LTEyLTE0IDEzOjA2OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBDaGVjayBpZiBwYXJzaW5nIHRoZSBuYW1lIHRlbXBsYXRlIHdpdGggc3NjYW5mKCkgd2FzIHN1Y2Nlc3NmdWwKCSAgSWYgbm90LCBnbyBiYWNrIHRvIHRoZSBhdXRvbWF0aWMgcGFkIG51bWJlcmluZy4KCSAgQ0lEIDExOTUxMjkKCjIwMTUtMTItMTQgMTE6MjA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZS9tdWx0aXF1ZXVlOiBEb24ndCBzcGVjaWFsLWNhc2UgQ0FQUyBldmVudHMgaW4gdGhlIGV2ZW50IGhhbmRsZXJzCgkgIEZvciBDQVBTIGV2ZW50cyB3ZSB3aWxsIG5ldmVyIGV2ZXIgaGF2ZSBhIEZBTFNFIHJldHVybiB2YWx1ZSBoZXJlLCBzbyBqdXN0CgkgIHJlbW92ZSB0aGUgZGVhZCBjb2RlIGluc3RlYWQgb2YgY2F1c2luZyBmdXR1cmUgY29uZnVzaW9uLgoKMjAxNS0xMi0xNCAxMToxNjo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTogSWxsZWdhbCBtZW1vcnkgYWNjZXNzIG9mIHNpbmsgZXZlbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzg2MTRjNTA1YTJhNzYxY2I0ZGNiN2Y0ZTVmM2U5Zjk3YzlhOGU4OC4KCSAgVGhlIGNvZGUgaXQgd2FzIGZpeGluZyBkb2VzIG5vdCBoYXZlIGFueSBlZmZlY3QgYW55d2F5IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4KCSAgdGhlIG5leHQgY29tbWl0LgoKMjAxNS0xMi0xNCAxMDozMjoxNCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IElsbGVnYWwgbWVtb3J5IGFjY2VzcyBvZiBzaW5rIGV2ZW50CgkgIE9uY2UgZXZlbnQgaXMgcHVzaGVkIHRvIHBhZCwgdGhlbiBxdWV1ZSBzaG91bGQgbm90IGFjY2VzcyB0aGUgZXZlbnQuCgkgIFRoaXMgaXMgbGVhZGluZyB0byBpbnZhbGlkIHJlYWQgdmFsZ3JpbmQgZXJyb3JzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0MzAKCjIwMTUtMTItMTQgMTA6MTA6MDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBVbnJlZiBldmVudCBpZiBHc3RFbGVtZW50OjpzZW5kX2V2ZW50KCkgaXMgbm90IGltcGxlbWVudGVkCgkgIE90aGVyd2lzZSB3ZSdsbCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQgb25seSBpZiBpdCdzIGltcGxlbWVudGVkLCBhbmQKCSAgbGVhayB0aGUgZXZlbnQgaW4gYWxsIG90aGVyIHNpdHVhdGlvbnMuCgoyMDE1LTEyLTE0IDEwOjA0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGR5bmFtaWMgcGlwZWxpbmUgZXhhbXBsZQoJICBVc2UgR1NUX1BBRF9QUk9CRV9QQVNTIHRvIHBhc3MgdGhyb3VnaCBhbGwgZXZlbnRzIG90aGVyIHRoYW4gRU9TIGluc3RlYWQgb2YKCSAgYmxvY2tpbmcgb24gdGhlIGZpcnN0IG5vbi1FT1MgZXZlbnQgZm9yZXZlci4gQWxzbyBmaXggYSB0eXBvIGluIGEgY29tbWVudCBpbgoJICB0aGF0IGZ1bmN0aW9uLgoJICBUaGFua3MgdG8gRGF2aWQgSmFnZ2FyZCBmb3IgcmVwb3J0aW5nIHRoaXMgb24gdGhlIG1haWxpbmcgbGlzdC4KCjIwMTUtMTItMTMgMDA6Mzc6MzkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiAgdHlwbyBpbiB0aGUgbG9jYXRpb24gb2YgbWFrZV9lbGVtZW50IHRvb2wKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTM1MgoKMjAxNS0xMi0xMiAwMToxMzo1OSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZHJvcCB1bm5lZWRlZCBtYWNyb3MgZm9yIEdfT1NfV0lOMzIKCjIwMTUtMTItMTIgMDE6MDk6MjAgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGRyb3AgdW5uZWVkZWQgbWFjcm9zIGZvciBHX09TX1dJTjMyCgoyMDE1LTEyLTEyIDAxOjA2OjQzIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAyMjoxNDozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAyMDo1Mjo1NyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggc29tZSB0eXBvcwoKMjAxNS0xMi0xMSAyMDo0MjowNSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAxOToxMTowMSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZml4IHNvbWUgdHlwb3MKCjIwMTUtMTItMTEgMTg6NTk6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDE0OjM2OjI5IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogZHJvcCBib2d1cyByZWZlcmVuY2UgdG8gZmlsZSBkZXNjcmlwdG9yCgkgICtmaXggdHlwbyBvbiByZXR1cm4gdmFsdWUgY29tbWVudAoKMjAxNS0xMi0xMSAxNDowNzoyNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTEwIDE0OjMyOjI3ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdW5yZWYgbWVzc2FnZSBpbiBfcG9zdF9tZXNzYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1wbGVtZW50YXRpb24KCSAgJ2dzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZScgdGFrZXMgdGhlIG93bmVyc2hpcCBvZiB0aGUgbWVzc2FnZSwgc28gaXQKCSAgc2hhbGwgdW5yZWYgaXQgd2hlbiB0aGVyZSBpcyBubyBwb3N0X21lc3NhZ2UgaW1wbGVtZW50YXRpb24uIE90aGVyd2lzZQoJICBtZXNzYWdlIGlzIGxlYWtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTMwMAoKMjAxNS0xMi0xMCAxMTozNTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IERvbid0IGhvbGQgc3RhdGUgbG9jayBhbGwgdGhlIHRpbWUgd2hpbGUgc2VuZGluZyBhbiBldmVudAoJICBUaGlzIGxvY2sgc2VlbXMgdG8gZXhpc3Qgb25seSB0byBwcmV2ZW50IGVsZW1lbnRzIGZyb20gY2hhbmdpbmcgc3RhdGVzIHdoaWxlCgkgIGV2ZW50cyBhcmUgYmVpbmcgcHJvY2Vzc2VkLiBIb3dldmVyIGV2ZW50cyBhcmUgZ29pbmcgdG8gYmUgcHJvY2Vzc2VkCgkgIG5vbmV0aGVsZXNzIGluIHRob3NlIGVsZW1lbnRzIGlmIHNlbnQgZGlyZWN0bHkgdmlhIHBhZHMsIHNvIHByb3RlY3Rpb24gbXVzdAoJICBhbHJlYWR5IGJlIGltcGxlbWVudGVkIGluc2lkZSB0aGUgZWxlbWVudHMgZm9yIGV2ZW50IGhhbmRsaW5nIGlmIGl0IGlzIG5lZWRlZC4KCSAgQXMgc3VjaCBoYXZpbmcgdGhlIGxvY2sgaGVyZSBpcyBub3QgdmVyeSB1c2VmdWwgYW5kIGlzIGFjdHVhbGx5IGNhdXNpbmcKCSAgdmFyaW91cyBkZWFkbG9ja3MgaW4gZGlmZmVyZW50IHNpdHVhdGlvbnMgYXMgZGVzY3JpYmVkIGluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQwNDAKCjIwMTUtMTItMDcgMjA6Mjc6NDUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0wMyAxNTowNDozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMDMgMTU6MDE6MjcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogaW5kZW50YXRpb24gZml4ZXMKCjIwMTUtMTItMDkgMTc6NDA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgdXNlIHJhbmRvbSBzZWdtZW50LnBvc2l0aW9uIGZyb20gdXBzdHJlYW0KCSAgc2VnbWVudC5wb3NpdGlvbiBpcyBtZWFudCBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seSwgYnV0IHRoZSB2YXJpb3VzCgkgIEdTVF9FVkVOVF9TRUdNRU5UIGNyZWF0aW9uZy9wYXJzaW5nIGZ1bmN0aW9ucyB3b24ndCBjbGVhciB0aGF0IGZpZWxkLgoJICBVc2UgdGhlIGFwcHJvcHJpYXRlIHNlZ21lbnQgYm91bmRhcnkgYXMgYW4gaW5pdGlhbCB2YWx1ZSBpbnN0ZWFkCgoyMDE1LTEyLTA3IDE3OjI1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFBvc3QgYSBMQVRFTkNZIG1lc3NhZ2Ugd2l0aCBhc3luYy1oYW5kbGluZz1UUlVFIGlmIHRoZSBQTEFZSU5HIHN0YXRlIGlzIHJlYWNoZWQKCSAgT3RoZXJ3aXNlIGVhY2ggYmluIG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgbGF0ZW5jeSBpbiB0aGUgZW5kLCBjYXVzaW5nCgkgIHN5bmNocm9uaXphdGlvbiBwcm9ibGVtcy4KCSAgVGhlIGJpbiB3aWxsIHN0aWxsIGZpcnN0IGhhbmRsZSBsYXRlbmN5IGludGVybmFsbHkgYXMgYmVmb3JlLCBidXQgZ2l2ZXMgdGhlCgkgIG92ZXJhbGwgcGlwZWxpbmUgdGhlIG9wcG9ydHVuaXR5IHRvIHVwZGF0ZSB0aGUgbGF0ZW5jeSBvZiB0aGUgd2hvbGUgcGlwZWxpbmUKCSAgYWZ0ZXJ3YXJkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTEyNQoKMjAxNS0xMi0wNyAxODoyMDozNSArMDIwMCAgQXRoYW5hc2lvcyBPaWtvbm9tb3UgPGF0aG9pa0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvc3QgdGFnIGxpc3Qgd2hlbiBhdmcgYml0cmF0ZSBjaGFuZ2VzIGF0IGxlYXN0IDIlCgkgIFdhdGNoaW5nIHZpZGVvcyB3aXRoIHZhcmlhbnQgYml0cmF0ZSBpcyBjb21tb24gdG8gaGF2ZSBkZWx0YQoJICBtb3JlIHRoYW4gMTAga2JwcywgcmVzdWx0aW5nIGluIHRhZyBsaXN0IHNwYW0uCgkgIEluc3RlYWQgb2YgcmVseWluZyBvbiBmaXhlZCAxMCBrcGJzIGRlbHRhLCBpdCBpcyBiZXR0ZXIgdG8KCSAgY2FsY3VsYWxlIHRoZSBkaWZmZXJlbmNlIGluIHBlcmNlbnRhZ2UgYW5kIHVwZGF0ZSB0YWcgbGlzdAoJICBvbmx5IHdoZW4gYml0cmF0ZSBjaGFuZ2VzIG1vcmUgdGhhbiAyJS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTA1NQoKMjAxNS0xMi0wNyAwOTowODowMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIzMTk5MDkgdG8gODZlNDY2MwoKMjAxNS0xMi0wNyAxMjo1OTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENoZWNrIGZvciBhbiBhY3RpdmF0ZWQgcGFkIGJlZm9yZSBhZGRpbmcsIG5vdCBhIG5vbi1mbHVzaGluZyBvbmUKCSAgVGhlIHBhZCBjb3VsZCBiZSBhY3RpdmF0ZWQgYnV0IGZsdXNoaW5nIGJlY2F1c2Ugb2YgYSBGTFVTSF9TVEFSVCBldmVudC4gVGhhdCdzCgkgIG5vdCB3aGF0IHdlJ3JlIGxvb2tpbmcgZm9yIGhlcmUsIHdlIHdhbnQgdG8gY2hlY2sgZm9yIGFjdGl2YXRlZCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTI4CgoyMDE1LTExLTE5IDE1OjMzOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IGZ1bm5lbDogcmVtb3ZlIHN0YXRlIGNoYW5nZSBmcm9tIHN0cmVzcyB0ZXN0cwoJICBDaGFuZ2luZyBzdGF0ZXMgdXAgYW5kIGRvd24gd2hpbGUgYnVmZmVycyBhcmUgYmVpbmcgcHVzaGVkIGlzIG5vdAoJICBhIHZhbGlkIHVzZSBjYXNlLiBJZiBhIHBhZCBpcyBkZWFjdGl2YXRlZCBhbmQgcmVhY3RpdmF0ZWQgZHVyaW5nCgkgIGEgYnVmZmVyIHB1c2ggaXQgaXMgcmFjeSB3aXRoIHRoZSBjaGVjayBvZiBwdXNoZWQgc3RpY2t5IGV2ZW50cwoJICBhbmQgdGhlIGFjdHVhbCBjaGFpbmZ1bmN0aW9uIGNhbGwuIEFzIGl0IG1pZ2h0IGNhbGwgdGhlIGNoYWluCgkgIHdpdGhvdXQgbm90aWNpbmcgdGhlIHBlZXIgcGFkIGxvc3QgaXRzIHByZXZpb3VzIHN0aWNreSBldmVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgzNDAKCjIwMTUtMTItMDQgMTA6MjI6NTYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXggcHJvY2VzcyByZXR1cm4gdmFsdWUgb24gZXJyb3IKCSAgSW4gY2FzZSBvZiBhIHJ1bi10aW1lIGVycm9yIG1lc3NhZ2UsIHRoZSBwcm9jZXNzIHJldHVybiB2YWx1ZSB3YXMgbGVmdAoJICB1bnNldC4gVGhpcyB3b3VsZCBsZWFkIHRvIGVycm9yIG5vdCBiZWluZyBjYXVnaHQgYXQgc2hlbGwgbGV2ZWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwMTkKCjIwMTUtMTItMDQgMTA6NDU6MjUgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBnc3QtbGF1bmNoOiByZXR1cm4gbm9uLTAgZXhpdCBjb2RlIG9uIGFzeW5jIGVycm9yIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJlZTRjYmEyNDg1ZDdmMTY0NmQ0OGU0NTU5NDI2YWVkNGJhOTljODUuCgoyMDE1LTEyLTA0IDE1OjA5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogcmV0dXJuIG5vbi0wIGV4aXQgY29kZSBvbiBhc3luYyBlcnJvcgoJICBXaGVuIGFuIGVycm9yIGhhcHBlbnMgaW4gcGxheWluZyBzdGF0ZSwgc3RpbGwgcmV0dXJuIGEKCSAgbm9uLTAgZXhpdCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDE5CgoyMDE1LTEyLTA0IDE0OjM5OjI5ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogcmVhbGx5IGZpeCBpbnN0YWxsIHJhY2UKCSAgTXkgcHJldmlvdXMgZml4IGZvciAjNzU4MDI5IHdhc24ndCBxdWl0ZSByaWdodCBhbmQgc2ltcGx5IG1hZGUgdGhlIHJhY2UgcmFyZXIuCgkgIFNvbWUgb2YgdGhlIGZpbGVzIGFyZSBpbnN0YWxsZWQgYnkgaW5zdGFsbC1leGVjIGFuZCBvdGhlcnMgYnkgaW5zdGFsbC1leGVjLCBzbwoJICB0aGUgaG9va3MgbmVlZCB0byBiZSBzcGxpdCB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMjkKCjIwMTUtMTItMDQgMTE6NTY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggZG9jcwoJICBUaGUgYWxsb2NhdGlvbiBxdWVyeSBoYXMgcGFyYW1ldGVycyB3aXRoIHRoZSBtZXRhIEFQSSwgbm90IGZsYWdzLgoKMjAxNS0xMi0wMiAxNTowMjoyNSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgRHJvcCB1c2FnZSBvZiBkZXByZWNhdGVkIGctaXItc2Nhbm5lciAtLXN0cmlwLXByZWZpeCBmbGFnCgoyMDE1LTEyLTAyIDE2OjI4OjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBzZXQvZ2V0IHByb3BlcnR5CgkgIEJsYW1lIGl0IG9uIHRoZSByZWJhc2luZyA6KQoKMjAxNS0xMS0xMiAxNzoxNTozNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBJbXBsZW1lbnQgR3N0UGFkRXZlbnRGdWxsRnVuY3Rpb24KCSAgQVBJOiBHc3RQYWRFdmVudEZ1bGxGdW5jdGlvbgoJICBSZXR1cm5zIGEgR3N0Rmxvd1JldHVybiwgYWxsb3dzIGFzeW5jaHJvbm91cyBlbGVtZW50cyB0byBwcm9wZXJseQoJICBwcm9wYWdhdGUgZmxvdyByZXR1cm5zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc4MjEKCjIwMTUtMTEtMzAgMTc6MDk6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFVzZSBzaWduZWQgY2xvY2sgdmFsdWVzIGZvciBydW5uaW5nIHRpbWUgY2FsY3VsYXRpb24KCSAgVGhpcyBpbXByb3ZlcyB0aGUgYWNjdXJhY3kgb2YgcXVldWUgbGV2ZWxzIGFuZCB3aGVuIHRvIHB1c2ggYnVmZmVycwoJICBmb3IgYnVmZmVycyBmYWxsaW5nIG91dHNpZGUgb2YgdGhlIHNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5MwoKMjAxNS0xMS0yNyAwOTo0NToyOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogQWRkIGFuIGV4dHJhIGNhY2hlIHRpbWUgZm9yIHVubGlua2VkIHN0cmVhbXMKCSAgV2hlbiBzeW5jaHJvbml6aW5nIHRoZSBvdXRwdXQgYnkgdGltZSwgdGhlcmUgYXJlIHNvbWUgdXNlLWNhc2VzIChsaWtlCgkgIGFsbG93aW5nIGdhcGxlc3MgcGxheWJhY2sgZG93bnN0cmVhbSkgd2hlcmUgd2Ugd2FudCB0aGUgdW5saW5rZWQgc3RyZWFtcwoJICB0byBzdGF5IHNsaWdodGx5IGJlaGluZCB0aGUgbGlua2VkIHN0cmVhbXMuCgkgIFRoZSAidW5saW5rZWQtY2FjaGUtdGltZSIgcHJvcGVydHkgYWxsb3dzIHRoZSB1c2VyIHRvIHNwZWNpZnkgYnkgaG93CgkgIG11Y2ggdGltZSB0aGUgdW5saW5rZWQgc3RyZWFtcyBzaG91bGQgd2FpdCBiZWZvcmUgcHVzaGluZyBhZ2Fpbi4KCjIwMTUtMTAtMjYgMDg6MDY6MDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IE9wdGltaXplIG11bHRpcXVldWUgc2l6ZXMgYmFzZWQgb24gaW50ZXJsZWF2ZQoJICBNdWx0aXF1ZXVlIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gY29wZSB3aXRoOgoJICAqIGRlY291cGxpbmcgdXBzdHJlYW0gYW5kIGRvd3N0cmVhbSB0aHJlYWRpbmcgKGkuZS4gaGF2aW5nIHNlcGFyYXRlIHRocmVhZHMKCSAgZm9yIGVsZW1lbnRhcnkgc3RyZWFtcykuCgkgICogRW5zdXJpbmcgaW5kaXZpZHVhbCBxdWV1ZXMgaGF2ZSBlbm91Z2ggc3BhY2UgdG8gY29wZSB3aXRoIHVwc3RyZWFtIGludGVybGVhdmUKCSAgKGRpc3RhbmNlIGluIHN0cmVhbSB0aW1lIGJldHdlZW4gY28tbG9jYXRlZCBzYW1wbGVzKS4gVGhpcyBpcyB0byBndWFyYW50ZWUKCSAgdGhhdCB3ZSBoYXZlIGVub3VnaCByb29tIGluIGVhY2ggaW5kaXZpZHVhbCBxdWV1ZXMgdG8gcHJvdmlkZSBuZXcgZGF0YSBpbgoJICBlYWNoLCB3aXRob3V0IGJlaW5nIGJsb2NrZWQuCgkgICogTGltaXQgdGhlIHF1ZXVlIHNpemVzIHRvIHRoYXQgaW50ZXJsZWF2ZSBkaXN0YW5jZSAoYW5kIGFuIGV4dHJhIG1pbmltYWwKCSAgYnVmZmVyaW5nIHNpemUpLiBUaGlzIGlzIHRvIGVuc3VyZSB3ZSBkb24ndCBjb25zdW1lIHRvbyBtdWNoIG1lbW9yeS4KCSAgQmFzZWQgb24gdGhhdCwgbXVsdGlxdWV1ZSBub3cgY29udGludW91c2x5IGNhbGN1bGF0ZXMgdGhlIGlucHV0IGludGVybGVhdmUKCSAgKHBlciBpbmNvbWluZyBzdHJlYW1pbmcgdGhyZWFkKS4gQmFzZWQgb24gdGhhdCwgaXQgY2FsY3VsYXRlcyBhIHRhcmdldAoJICBpbnRlcmxlYXZlIChjdXJyZW50bHkgMS41IHggcmVhbF9pbnRlcmxlYXZlICsgMjUwbXMgcGFkZGluZykuCgkgIElmIHRoZSB0YXJnZXQgaW50ZXJsZWF2ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgbWF4X3NpemUudGltZSwgaXQgd2lsbAoJICB1cGRhdGUgaXQgYWNjb3JkaW5nbHkgKHRvIGFsbG93IGVub3VnaCBtYXJnaW4gdG8gbm90IGJsb2NrKS4KCSAgSWYgdGhlIHRhcmdldCBpbnRlcmxlYXZlIGdvZXMgZG93biBieSBtb3JlIHRoYW4gNTAlLCB3ZSByZS1hZGp1c3QgaXQgb25jZQoJICB3ZSBrbm93IHdlIGhhdmUgZ29uZSBwYXN0IGEgc2FmZSBkaXN0YW5jZSAoMiB4IGN1cnJlbnQgbWF4X3NpemUudGltZSkuCgkgIFRoaXMgbW9kZSBjYW4gb25seSBiZSB1c2VkIGZvciBpbmNvbWluZyBzdHJlYW1zIHRoYXQgYXJlIGd1YXJhbnRlZWQgdG8gYmUKCSAgcHJvcGVybHkgdGltZXN0YW1wZWQuCgkgIEZ1cnRoZXJtb3JlLCB3ZSBpZ25vcmUgc3BhcnNlIHN0cmVhbXMgd2hlbiBjYWxjdWxhdGluZyBpbnRlcmxlYXZlIGFuZCBtYXhpbXVtCgkgIHNpemUgb2YgcXVldWVzLgoJICBGb3IgdGhlIHNpbXBsZXN0IG9mIHVzZS1jYXNlcyAoc2luZ2xlIHN0cmVhbSksIG11bHRpcXVldWUgYWN0cyBhcyBhIHNpbmdsZQoJICBxdWV1ZSB3aXRoIGEgdGltZSBsaW1pdCBvZiAyNTBtcy4KCSAgSWYgdGhlcmUgYXJlIG11bHRpcGxlIGlucHV0cywgYnV0IGVhY2ggY29tZSBmcm9tIGEgZGlmZmVyZW50IHN0cmVhbWluZyB0aHJlYWQsCgkgIHRoZSBtYXhpbXVtIHRpbWUgbGltaXQgd2lsbCBhbHNvIGVuZCB1cCBiZWluZyAyNTBtcy4KCSAgT24gcmVndWxhciBmaWxlcyAobW9yZSB0aGFuIG9uZSBpbnB1dCBzdHJlYW0gZnJvbSB0aGUgc2FtZSB1cHN0cmVhbSBzdHJlYW1pbmcKCSAgdGhyZWFkKSwgaXQgY2FuIHJlZHVjZSB0aGUgdG90YWwgbWVtb3J5IHVzZWQgYXMgbXVjaCBhcyAxMHgsIGVuZGluZyB1cCB3aXRoCgkgIG1heF9zaXplLnRpbWUgYXJvdW5kIDUwMG1zLgoJICBEdWUgdG8gdGhlIGFkYXB0aXZlIG5hdHVyZSwgaXQgY2FuIGFsc28gY29wZSB3aXRoIGNoYW5naW5nIGludGVybGVhdmUgKHdoaWNoCgkgIGNhbiBoYXBwZW4gY29tbW9ubHkgb24gc29tZSBmaWxlcyBhdCBzdGFydHVwL3ByZS1yb2xsIHRpbWUpCgoyMDEzLTAxLTA4IDIxOjE2OjQyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB1c2UgbmV3IHN0cmVhbS1zdGFydCBldmVudCBzcGFyc2UgZmxhZyB0byBhdm9pZCBvdmVycmVhZGluZyBzdWJ0aXRsZXMKCSAgVGhpcyB3aWxsIG1lYW4gYSBtdWNoIGxvd2VyIGRlbGF5IGJlZm9yZSBhIHN1YnRpdGxlcyB0cmFjayBjaGFuZ2VzIHRha2UKCSAgZWZmZWN0LiBBbHNvIGF2b2lkcyBleGNlc3NpdmUgbWVtb3J5IHVzYWdlIGluIG1hbnkgY2FzZXMuCgkgIFRoaXMgd2lsbCBhbHNvIGNvbnNpZGVyIHNwYXJzZSBzdHJlYW1zIGFzIChpbmRpdmlkdWFsbHkpIG5ldmVyIGZ1bGwsIHNvCgkgIGFzIHRvIGF2b2lkIGJsb2NraW5nIGFsbCBwbGF5YmFjayBkdWUgdG8gb25lIHNwYXJzZSBzdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2NDgKCjIwMTUtMTAtMzAgMTA6MjI6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhpZ2hfdGltZSBjb21wdXRhdGlvbgoJICAqIEF2b2lkIHRoZSBjb21wdXRhdGlvbiBjb21wbGV0ZWx5IGlmIHdlIGtub3cgd2UgZG9uJ3QgbmVlZCBpdCAobm90IGluCgkgIHN5bmMgdGltZSBtb2RlKQoJICAqIE1ha2Ugc3VyZSB3ZSBkb24ndCBvdmVycmlkZSBoaWdoZXN0IHRpbWUgd2l0aCBHU1RfQ0xPQ0tfVElNRV9OT05FIG9uCgkgIHVubGlua2VkIHBhZHMKCSAgKiBFbnN1cmUgdGhlIGhpZ2hfdGltZSBnZXRzIHByb3Blcmx5IHVwZGF0ZWQgaWYgYWxsIHBhZHMgYXJlIG5vdCBsaW5rZWQKCSAgKiBGaXggdGhlIGNvbXBhcmlzaW9uIGluIHRoZSBsb29wIHdoZXRoZXIgdGhlIHRhcmdldCBoaWdoIHRpbWUgaXMgdGhlIHNhbWUKCSAgYXMgdGhlIGN1cnJlbnQgdGltZQoJICAqIFNwbGl0IHdha2VfdXBfbmV4dF9ub25fbGlua2VkIG1ldGhvZCB0byBhdm9pZCB1c2VsZXNzIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTczNTMKCjIwMTUtMTEtMDYgMDM6MDI6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEb24ndCByZXBvcnQgMCUgdW5sZXNzIGVtcHR5CgkgIFdoZW4gcHJlcGFyaW5nIGEgYnVmZmVyaW5nIG1lc3NhZ2UsIGRvbid0IHJlcG9ydCAwJSBpZiB0aGVyZQoJICBpcyBhbnkgYnl0ZXMgbGVmdCBpbiB0aGUgcXVldWUgYXQgYWxsLiBXZSBzdGlsbCBoYXZlIHNvbWV0aGluZwoJICB0byBwdXNoLCBzbyBkb24ndCB0ZWxsIHRoZSBhcHAgdG8gc3RhcnQgYnVmZmVyaW5nIC0gbWF5YmUKCSAgd2UnbGwgZ2V0IG1vcmUgZGF0YSBiZWZvcmUgYWN0dWFsbHkgcnVubmluZyBkcnkuCgoyMDE1LTExLTMwIDE3OjExOjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdGNsb2NrOiBGaXggR1NUX1NUSU1FX0FSR1MKCSAgSXQgd2Fzbid0IHByb3Blcmx5IGhhbmRsaW5nIEdTVF9DTE9DS19TVElNRV9OT05FIGFuZCBhbHdheXMgdXNlIHRoZQoJICBzaWduIG1hcmtlciAoKy8tKSB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBzaWduZWQgdmFsdWVzIGluCgkgIGxvZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODg3MAoKMjAxNS0xMS0zMCAyMzowODo1MCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogQW5ub3RhdGUgZ2V0X3ZhbHVlW19hcnJheV0gYXMgKG1ldGhvZCkKCSAgQXMgdGhlIG5hbWVzIGNsYXNoIHdpdGggZ3N0X29iamVjdF9nZXRfdmFsdWVbX2FycmF5XQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2OTUwCgoyMDE1LTExLTEzIDE3OjMyOjU3IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBBZGQgcHJlZml4IHN1cHBvcnQgdG8gZGVwZW5kZW5jaWVzCgkgIFRoaXMgYWRkcyBhIG5ldyBmbGFncywgR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfRklMRV9OQU1FX0lTX1BSRUZJWCwKCSAgd2hpY2ggYWxsb3cgdXNpbmcgdGhlIG5hbWVzIGFzIHByZWZpeCBmb3IgcGx1Z2luIGRlcGVuY2llcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA4MwoKMjAxNS0xMS0xMyAxNjozMjozMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEFsbG93IGRldmljZSBub2RlcyBhcyBkZXBlbmRlbmN5CgkgIFRoaXMgaXMgdXNlZnVsIGZvciBmZWF0dXJlIHRoYXQgYXJlIHByb2R1Y2VkIGFmdGVyIHByb2JpbmcgYSBzcGVjaWZpYwoJICBub2RlLiBZb3Ugd2FudCB0byByZWxvYWQgdGhpcyBwbHVnaW4gaWYgdGhlIHNwZWNpZmljIG5vZGUocykgaGF2ZSBiZWVuCgkgIHJlbW92ZWQsIGFkZGVkLCBvciByZWxvYWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA4MAoKMjAxNS0xMS0xMyAxNjoyMDo0MiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IERvbid0IGRvIGxvc3N5IHNoaWZ0IG9uIGhhc2gKCSAgSW4gcGx1Z2luIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxjdWxhdGluZyBhIGhhc2ggb2YgdGhlIGRlcGVuZGVuY2llcwoJICBpbiBvcmRlciB0byBkZXRlcm1pbmUgaWYgdGhlIGNhY2hlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBvciBub3QuCgkgIEN1cnJlbnRseSwgdGhlIGhhc2ggY29tYmluaW5nIG1ldGhvZCByZW1vdmVzIGEgYml0IG9mIHRoZSBvcmlnaW5hbAoJICBoYXZlIGJlZm9yZSBjb21iaW5pbmcgd2l0aCBhbiBhZGRpdGlvbi4gQXMgd2UgdXNlIDMyYml0cyBmb3Igb3VyIGhhc2gKCSAgYW5kIHNoaWZ0IDEgYml0IGZvciBlYWNoIGZpbGUgYW5kIGRpcmVjdG9yeSwgdGhhdCByZXN1bHRpbmcgaGFzaCBvbmx5CgkgIGFjY291bnQgZm9yIHRoZSBsYXN0IDMyIGZpbGVzLiBBbmQgaXMgbW9yZSBhZmZlY3RlZCBieSB0aGUgbGFzdCBmaWxlLgoJICBSb3RhdGluZyB0ZWNobmlxdWUgKHNoaWZ0aW5nLCBhbmQgYWRkaW5nIGJhY2sgdGhlIGVuZGluZyBiaXQpLCBjYW4gYmUKCSAgdXNlIHRvIG1ha2UgdGhlIGFkZGl0aW9uIG5vbi1jb21tdXRhdGl2ZS4gSW4gYSB3YXkgdGhhdCBkaWZmZXJlbnQgb3JkZXIKCSAgZ2l2ZXMgZGlmZmVyZW50IGhhc2hlcy4gSW4gdGhpcyBjYXNlLCBJIGRvbid0IHByZXNlcnZlIHRoaXMgYmVoYXZpb3VyCgkgIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBmaWxlcyBhcmUgcHJvdmlkZWQgYnkgdGhlIE9TIGlzCgkgIGlycmVsZXZhbnQuCgkgIEluIG1vc3QgY2FzZXMsIHRoZSBYT1Igb3BlcmF0aW9uIGlzIHVzZWQgdG8gY29tYmluZSBoYXNoZXMuIEluIHRoaXMKCSAgY29kZSB3ZSB1c2UgdGhlIGFkZGl0aW9uLiBJIGRlY2lkZWQgdG8gcHJlc2VydmUgdGhlIGFkZGl0aW9uIGJlY2F1c2UKCSAgd2UgbWFrZSB1c2Ugb2Ygbm9uLXJhbmRvbSBoYXNoICgoZ3VpbnQpIC0xKSBpbiB0aGUgYWxnb3JpdGhtIGZvcgoJICBtYXRjaGluZyBmaWxlcyB0aGF0IGFyZSBub3QgcmVhbGx5IHBhcnQgb2YgdGhlIGhhc2ggKHN5bWxpbmtzLCBzcGVjaWFsCgkgIGZpbGVzKS4gRG9pbmcgc3VjY2Vzc2l2ZSBYT1Igb24gdGhpcyB2YWx1ZSwgd2lsbCBzaW1wbHkgc3dpdGNoIGZyb20KCSAgZnVsbCBvbmVzLCB0byBmdWxsIHplcm8uIFRoZSBYT1IgdXNlZCB3aXRoIHdoaXRlbGlzdCBoYXMgYmVlbiBwcmVzZXJ2ZWQKCSAgYXMgaXQncyBiYXNlZCBvbiBhIGZhaXJseSByYW5kb21pemVkIGhhc2ggKGdfc3RyX2hhc2gpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDc4CgoyMDE1LTExLTIzIDIxOjQwOjM0ICswMDAwICBMdWthc3ogRm9yeW5za2kgPGx1a2Fzei5mb3J5bnNraUB5b3V2aWV3LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZpeCBjb21waWxlciB3YXJuaW5nIHdpdGggLVdwZWRhbnRpYyBhbmQgZ2NjIDUKCSAgR3N0cmVhbWVyIGNvbXBpbGVkIHdpdGggZ2NjIDUuMiBhbmQgLVdwZWRhbnRpYyBwcm9kdWNlcyB0aGUKCSAgZm9sbG93aW5nIHdhcm5pbmc6CgkgICdJU08gQyBkb2VzIG5vdCBzdXBwb3J0ICdfX0ZVTkNUSU9OX18nIHByZWRlZmluZWQgaWRlbnRpZmllciBbLVdwZWRhbnRpY10KCSAgY29uc3QgY2hhciAqcyA9IF9fRlVOQ1RJT05fXzsnCgkgIFNpbmNlIGdjYyA1IGVuYWJsZXMgQzk5IGJ5IGRlZmF1bHQsIHVzZSBfX2Z1bmNfXyBpZiBpdCdzIGF2YWlsYWJsZQoJICBpbnN0ZWFkIG9mIHRoZSBub24tc3RhbmRhcmQgX19GVU5DVElPTl9fIChhcyBzdWdnZXN0ZWQgaW4gWzJdKS4KCSAgWzFdOiBodHRwczovL2djYy5nbnUub3JnL2djYy01L2NoYW5nZXMuaHRtbAoJICBbMl06IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2NjLTUvcG9ydGluZ190by5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg1NDEKCjIwMTUtMTEtMjAgMTk6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBjb250cm9sbGVyOiBmaXggYW5ub3RhdGlvbiB0byBtYWtlIGctaXItc2Nhbm5lciBoYXBweQoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOjU5OiBXYXJuaW5nOiBHc3RDb250cm9sbGVyOiBtaXNzaW5nICI6IiBhdCBjb2x1bW4gNTE6CgkgICogQEdTVF9JTlRFUlBPTEFUSU9OX01PREVfQ1VCSUNfTU9OTzogKFNpbmNlIDEuOCkgbW9ub3RvbmljIGN1YmljIGludGVycG9sYXRpb24sIHdpbGwgbm90CgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6NTk6IFdhcm5pbmc6IEdzdENvbnRyb2xsZXI6IHVua25vd24gYW5ub3RhdGlvbjogc2luY2UKCjIwMTQtMDktMjkgMTQ6MDM6MTMgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIEdTVF9UQUdfUFJJVkFURV9EQVRBCgkgIENhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBwcml2YXRlIGRhdGEgdGhhdCBtYXkgYmUKCSAgY29udGFpbmVkIGluIHRhZ3MsIHN1Y2ggYXMgSUQzdjIgUFJJViBmcmFtZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5MjYKCjIwMTUtMTEtMTkgMTc6MjQ6NTMgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGF0YXVyaXNyYy5jOgoJICBkb2NzOiB1cGRhdGUgZ3N0LWxhdW5jaC0wLjEwIGxpbmVzCgkgIFVwZGF0ZSByZWZlcmVuY2VzIHRvIGdzdC1sYXVuY2gtMC4xMCB0byBnc3QtbGF1bmNoLTEuMAoKMjAxNS0xMS0xOSAwMDo1MTo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IGRvIG5vdCBvdmVyd3JpdGUgaGVhZGVyIGJ1ZmZlciB0aW1lc3RhbXBzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJjNDc1YTAzNTU0M2VmYzAyMDJlY2RjNTIwNzAyOTVhNDIxZWQ0YjQuCgkgIFRoaXMgY2F1c2VzIGlzc3VlcyB3aXRoIGgyNjRwYXJzZS4gSXQgYnJlYWtzIHRpbWVzdGFtcHMgYXMKCSAgdGhlcmUgYXJlIGhlYWRlcnMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3RyZWFtIGFuZCB0aGlzIHBhdGNoCgkgIG1ha2VzIHRoZSB0aW1lc3RhbXBzIGZvciB0aG9zZSBkaWZmZXIgZnJvbSB0aGUgb25lcyB0aGF0CgkgIGFyZSBhZGp1c3RlZCwgY3JlYXRpbmcgYSBkaXNjb250aW51aXR5IGFuZCBsZWFkaW5nIHRvIHN5bmMKCSAgaXNzdWVzLgoKMjAxNS0xMS0xNyAxODo0Nzo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgUmV2ZXJ0ICJiYXNlcGFyc2U6IHNpbXBsaWZ5IGNvZGUgYSBiaXQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzk4NGY3MTU5YTcyYzJlZWJlMDE5MDVlZTUzNzE2ZTNiMmFiY2IzMC4KCjIwMTUtMTEtMTggMTE6NDY6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHByaW50IGNyaXRpY2FscyB3aGVuIHJlY2VpdmluZyBjdXN0b20gZXZlbnRzIGluIHJpbmcgYnVmZmVyIG1vZGUKCSAgRG93bmdyYWRlIGZyb20gZ193YXJuaW5nIHRvIEdTVF9XQVJOSU5HIGxvZyBtZXNzYWdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4Mjc2CgoyMDE1LTExLTE4IDA5OjIxOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBEaXNhYmxlIG11bHRpY2FzdCBsb29wYmFjawoJICBXZSdyZSBub3QgcmVhbGx5IGludGVyZXN0ZWQgaW4gb3VyIG93biBwYWNrZXRzIGFuZCBpZ25vcmUgdGhlbSBhbnl3YXkuCgoyMDE1LTExLTE3IDA5OjE3OjU4ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IHN0cmluZyBtZW1vcnkgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MjA3CgoyMDE1LTExLTE2IDA4OjIyOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNpbXBsaWZ5IGNvZGUgYSBiaXQKCSAgQXZvaWQgcmVwZWF0ZWQgY2hlY2tzIGZvciB0ZXN0aW5nIGlmIGEgYnVmZmVyIGlzIGEgaGVhZGVyCgoyMDE1LTExLTEzIDIwOjQ0OjU3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBoYW5kbGUgYnVmZmVyIHdpdGggZHRzLW9ubHkgd2hlbiBtYXBwaW5nIHRvIHJ1bm5pbmcgdGltZQoJICBPdGhlcndpc2UgdGhlIGJ1ZmZlciB3YXMgbGVmdCB3aXRoIHRoZSBvcmlnaW5hbCB2YWx1ZXMgYW5kIGxhdGVyIHdvdWxkCgkgIGJlIGNvbXBhcmVkIHdpdGggb3RoZXIgYnVmZmVycyB0aGF0IHdlcmUgY29udmVydGVkIHRvIHJ1bm5pbm4gdGltZSwKCSAgbGVhZGluZyB0byBiYWQgaW50ZXJsZWF2aW5nIG9mIG11bHRpcGxlIHN0cmVhbXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc5NjEKCjIwMTUtMTEtMTMgMTY6MzE6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IG92ZXJ3cml0ZSBoZWFkZXIgYnVmZmVyIHRpbWVzdGFtcHMKCSAgYmFzZXBhcnNlIHRyaWVzIHRvIHByZXNlcnZlIHRpbWVzdGFtcHMgZnJvbSB1cHN0cmVhbSBpZgoJICBpdCBpcyBydW5uaW5nIG9uIGEgdGltZSBzZWdtZW50IGFuZCB3cml0ZSB0aGF0IHRvCgkgIG91dHB1dCBidWZmZXJzLiBJdCBhc3N1bWVzIHRoZSBmaXJzdCBEVFMgaXMgZ29pbmcgdG8gYmUKCSAgc2VnbWVudC5zdGFydCBhbmQgc2V0cyB0aGF0IHRvIHRoZSBmaXJzdCBidWZmZXJzLiBJbiBjYXNlCgkgIHRoZSBidWZmZXIgaXMgYSBoZWFkZXIgYnVmZmVyLCBpdCBoYWQgbm8gdGltZXN0YW1wcyBhbmQKCSAgd2lsbCBoYXZlIG9ubHkgdGhlIERUUyBzZXQgZHVlIHRvIHRoaXMgbWVjaGFuaXNtLgoJICBUaGlzIHBhdGNoIHByZXZlbnRzIHRoaXMgYnkgc2tpcHBpbmcgdGhpcyBiZWhhdmlvciBmb3IKCSAgaGVhZGVyIGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc5NjEKCjIwMTUtMDYtMTggMTM6NTY6NTMgLTA3MDAgIEFsZWl4IENvbmNoaWxsbyBGbGFxdcOpIDxhbGVpeEBvYmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiBhZGQgZHJvcC1idWZmZXItZmxhZ3MgcHJvcGVydHkKCSAgTmV3IHByb3BlcnR5IGRyb3AtYnVmZmVyLWZsYWdzIHRoYXQgd2lsbCBkaXNjYXJkIGJ1ZmZlcnMgdGhhdCBoYXZlIHRoZQoJICBnaXZlbiBmbGFncyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTExODIKCjIwMTUtMTEtMTIgMTk6NDY6NDQgKzAwMDAgIFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBmaXggaW5zdGFsbCByYWNlCgkgIFRoZSBpbnN0YWxsIGhvb2sgbmVlZHMgdG8gYmUgYSBpbnN0YWxsLWRhdGEtaG9vayBub3QgYW4gaW5zdGFsbC1leGVjLWhvb2sgYXMgdGhlCgkgIGhlbHBlcnMgYXJlIGluc3RhbGxlZCBpbnRvIGhlbHBlcmRpciB3aGljaCBpcyBjb25zaWRlcmVkIGRhdGEgKG9ubHkgcGF0aAoJICB2YXJpYWJsZXMgd2l0aCAiZXhlYyIgaW4gYXJlIGNvbnNpZGVyZWQgZXhlY3V0YWJsZXMpLgoJICBUaGUgZXhwbGljaXQgZGVwZW5kZW5jeSBvbiBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUyB3YXMgYW4gYXR0ZW1wdCBhdCBzb2x2aW5nCgkgIHRoaXMsIGJ1dCB0aGlzIGNhdXNlcyBvY2Nhc2lvbmFsIHJhY2VzIHdoZXJlIGluc3RhbGwtaGVscGVyc1BST0dSQU1TIGNhbiBydW4KCSAgdHdpY2UgaW4gcGFyYWxsZWwgKG9uY2UgdmlhIGluc3RhbGwtYWxsLCBvbmNlIHZpYSB0aGUgaG9vaydzIGRlcGVuZGVuY3kpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDI5CgoyMDE1LTExLTEyIDE2OjE0OjE4ICswMTAwICBIZWlucmljaCBGaW5rIDxoZmlua0B0b29sc29uYWlyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQWRkIHRlc3QgZm9yIGdzdF9jbG9ja19nZXRfcmVzb2x1dGlvbgoJICBJbiBhIHNlcmllcyBvZiB0aW1lIG1lYXN1cmVtZW50cywgdGhlIGRpZmYgYmV0d2VlbiBub3cgYW5kIHByZXZpb3VzCgkgIHRpbWVzdGFtcHMgaXMgZWl0aGVyIDAgb3IgYXQgbGVhc3QgYXMgbG9uZyBhcyBnZXRfcmVzb2x1dGlvbiByZXR1cm5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAxMgoKMjAxNS0xMS0xMiAxMToyNjo1NiArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IFVzZSBtYWNoX3RpbWUgb24gQXBwbGUgcGxhdGZvcm1zCgkgIE9uIGlPUy9PU1ggZ19nZXRfY3VycmVudF90aW1lIHdhcyB1c2VkIGJ5IGRlZmF1bHQuIEhvd2V2ZXIsIG1hY2hfdGltZSBpcwoJICB0aGUgcHJlZmVycmVkIGhpZ2gtcmVzb2x1dGlvbiBtb25vdG9uaWMgY2xvY2sgdG8gYmUgdXNlZCBvbiBBcHBsZQoJICBwbGF0Zm9ybXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMTIKCjIwMTUtMTEtMTEgMTE6MTE6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyczogbG9nOiBhZGQgbWlzc2luZyBob29rcwoJICBMb2cgYWxsIHBvc3NpYmxlIGhvb2tzCgoyMDE1LTEwLTI5IDA4OjQwOjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogYWRkIGVsZW1lbnQtY2hhbmdlLXN0YXRlLXByZS9wb3N0IGhvb2sKCSAgSGVscHMgY2F0Y2hpbmcgd2hlbiBhIHN0YXRlIGNoYW5nZSBpcyBzdGFydGluZyBhbmQgZW5kaW5nLgoJICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHRyYWNrIHRoZSBlbmQgb2Ygc3RhdGUgY2hhbmdlcyBieSBjaGVja2luZyB0aGUKCSAgYXN5bmMtZG9uZSBvciBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgZWxlbWVudHMgdGhhdCBkbyBhc3luYyBzdGF0ZSBjaGFuZ2VzLgoKMjAxNS0xMS0xMSAxNDozMjo0NCArMDEwMCAgTWlndWVsIFBhcsOtcyBEw61heiA8bXBhcmlzZGlhekBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGVzdCBmb3IgY2hlY2tpbmcgdGhlIG9yZGVyIG9mIHRoZSBwcm9iZSBjYWxscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTExLTEwIDE0OjQxOjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBmaXggc29tZSBjb3B5IGFuZCBwYXN0ZSBsZWZ0b3ZlciBpbiBkb2NzCgoyMDE1LTExLTEwIDE0OjM3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBhZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24KCSAgQWRkIGEgc2hvcnQgcGFyYWdyYXBoIG9uIHdoYXQgbWVhbnMgZm9yIGEgY29udGV4dCB0byBiZSBwZXJzaXN0ZW50CgoyMDE1LTExLTA5IDE4OjAyOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiB1c2UgJ3N0YXRpYyBpbmxpbmUnIGluc3RlYWQgb2YgJ2lubGluZSBzdGF0aWMnIGZvciBndGstZG9jCgkgIGd0ay1kb2MgZG9lc24ndCBzZWVtIHRvIHJlY29nbmlzZSB0aGUgZm9ybWVyIHZhcmlhbnQuCgoyMDE1LTExLTA5IDE3OjU5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZG9jczogcmVtb3ZlIGR1bW15IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB3aXRoIEdfSU5MSU5FX0ZVTkNUSU9OIGZvciBndGstZG9jCgkgIGd0ay1kb2MgY2FuIGhhbmRsZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBqdXN0IGZpbmUgdGhlc2UgZGF5cywKCSAgdGhlcmUncyBubyBuZWVkIGZvciB0aGlzIHN0dWZmIGFueSBtb3JlLgoKMjAxNS0wMi0yMyAxMzoxNjoxOSArMTAwMCAgRHVuY2FuIFBhbG1lciA8ZHBhbG1lckBkaWdpc29mdC50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHRoZSBhdmctaW4tcmF0ZSBwcm9wZXJ0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk1OQoKMjAxNS0xMS0wNCAxMjowMjo1MSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBvdmVycnVuIHNpZ25hbAoJICBOb3RpZmllcyB0aGF0IHRoZSBxdWV1ZTIgaXMgZnVsbCwgc2FtZSBhcyBxdWV1ZSBkb2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NTkKCjIwMTUtMDktMjkgMjE6MTQ6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiB0ZXN0cyBmb3IgYWNjZXB0LWNhcHMgaGFuZGxpbmcgd2l0aCBwcm94eSBwYWRzCgkgIEFkZHMgMyBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgYWNjZXB0LWNhcHMgYmVoYXZpb3Igd2l0aAoJICBwcm94eS1jYXBzIHBhZHMuCgkgIDEpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgbm8gcHJveHkuIFRoZSBjYXBzIHNob3VsZCBiZSBjb21wYXJlZCB0byB0aGUKCSAgdGVtcGxhdGUgY2FwcyBvZiB0aGUgcGFkCgkgIDIpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgYSBjb21wYXRpYmxlIHBhZC4gVGhlIGNhcHMgc2hvdWxkIGJlIGNvbXBhcmVkCgkgIHRvIHRoZSBwcm94aWVkIHBhZCBjYXBzIChhbmQgYWxzbyB3aXRoIHRoZSB0ZW1wbGF0ZSkKCSAgMykgQSBzY2VuYXJpbyB3aGVyZSB0aGVyZSBpcyBhbiBpbmNvbXBhdGlibGUgcHJveHkgcGFkLiBObyBjYXBzIHNob3VsZCBiZQoJICBwb3NzaWJsZSBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMTEtMDUgMTY6MTU6MjIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayB0ZW1wbGF0ZSBjYXBzIGZvciBwcm94eSBwYWRzIGluIGFjY2VwdC1jYXBzCgkgIFZhbGlkYXRlIHRoYXQgdGhlIHByb3h5IHBhZCBpbmRlZWQgYWNjZXB0cyB0aGUgY2FwcyBieSBhbHNvCgkgIGNvbXBhcmluZyB3aXRoIHRoZSBwYWQgdGVtcGxhdGUgY2Fwcywgb3RoZXJ3aXNlIHdoZW4gdGhlIHBhZAoJICBoYWQgbm8gaW50ZXJuYWxseSBsaW5rZWQgcGFkcyBpdCB3b3VsZCBhbHdheXMgcmV0dXJuIHRydWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxMTIKCjIwMTUtMTEtMDYgMTI6NTg6NDIgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgRml4IGJ1aWxkIHdpdGggLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkCgoyMDE1LTExLTA2IDEyOjA1OjE4ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBwcmVzZXQ6IEFkZCBhIEdTVF9QUkVTRVRfUEFUSCBlbnYgdmFyaWFibGUgZm9yIHByZXNldHMgdG8gYmUgdXNhYmxlIHVuaW5zdGFsbGVkCgkgIEFuZCBzdGFydCBzZXR0aW5nIHRoZSB2YXJpb3VzIHVuaW5zdGFsbGVkIHByZXNldHMgcGF0aHMuCgoyMDE1LTExLTA1IDA4OjU2OjQzICswMTAwICBBbnRvbiBCb25kYXJlbmtvIDxhbnRvbmJvQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogY29udGludWUgZWxlbWVudCBjbGVhbnVwIGV2ZW4gaWYgZmNsb3NlIGZhaWxzCgkgIFNvbWV0aW1lcyBmaWxlc2luayBjbGVhbnVwIGR1cmluZyBzdG9wIG1heSBmYWlsIGR1ZSB0byBmY2xvc2UgZXJyb3IuCgkgIEluIHRoaXMgY2FzZSBvYmplY3QgbGVmdCBwYXJ0aWFsIGNsZWFudXAgd2l0aCBubyBmaWxlIG9wZW5lZAoJICBidXQgc3RpbGwgaG9sZGluZyBvbGQgZmlsZSBkZXNjcmlwdG9yLgoJICBJdCdzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgbG9jYXRpb24gcHJvcGVydHkgaW4gYSBzdWNoIHN0YXRlLAoJICBzbyBuZXh0IHN0YXJ0IHdpbGwgY2F1c2Ugb2xkIGZpbGUgb3ZlcndyaXRlIGlmICdhcHBlbmQnIGRvZXMgbm90IHNldC4KCSAgQWNjb3JkaW5nIHRvIG1hbiBwYWdlIGFuZCBQT1NJWCBzdGFuZGFyZCBhYm91dCBmY2xvc2UgYmVoYXZpb3IoZXh0cmFjdCk6CgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICBUaGUgZmNsb3NlKCkgZnVuY3Rpb24gc2hhbGwgY2F1c2UgdGhlIHN0cmVhbSBwb2ludGVkIHRvIGJ5IHN0cmVhbQoJICB0byBiZSBmbHVzaGVkIGFuZCB0aGUgYXNzb2NpYXRlZCBmaWxlIHRvIGJlIGNsb3NlZC4KCSAgLi4uCgkgIFdoZXRoZXIgb3Igbm90IHRoZSBjYWxsIHN1Y2NlZWRzLCB0aGUgc3RyZWFtIHNoYWxsIGJlIGRpc2Fzc29jaWF0ZWQKCSAgZnJvbSB0aGUgZmlsZSBhbmQgYW55IGJ1ZmZlciBzZXQgYnkgdGhlIHNldGJ1ZigpIG9yIHNldHZidWYoKQoJICBmdW5jdGlvbiBzaGFsbCBiZSBkaXNhc3NvY2lhdGVkIGZyb20gdGhlIHN0cmVhbS4KCSAgLi4uCgkgIFRoZSBmY2xvc2UoKSBmdW5jdGlvbiBzaGFsbCBwZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mIGEgY2xvc2UoKQoJICBvbiB0aGUgZmlsZSBkZXNjcmlwdG9yIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdHJlYW0KCSAgcG9pbnRlZCB0byBieSBzdHJlYW0uCgkgIEFmdGVyIHRoZSBjYWxsIHRvIGZjbG9zZSgpLCBhbnkgdXNlIG9mIHN0cmVhbSByZXN1bHRzCgkgIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgIFNvIGZpbGUgaXMgaW4gJ2Nsb3NlZCcgc3RhdGUgbm8gbWF0dGVyIGlmIGZjbG9zZSBzdWNjZWVkIG9yIG5vdC4KCSAgQW5kIGNsZWFudXAgY291bGQgYmUgY29udGludWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NTk2CgoyMDE1LTExLTAxIDAwOjA0OjI3ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYXJrIHN0aWNreSBldmVudHMgYXMgc2VudCBvbiBub3QtbGlua2VkCgkgIEluc3RlYWQgb2YgcmUtc2VuZGluZyBzdGlja3kgZXZlbnRzIG92ZXIgYW5kIG92ZXIgdG8gYSBub3QtbGlua2VkCgkgIHBhZCwgbWFyayB0aGVtIGFzIHNlbnQgdGhlIGZpcnN0IHRpbWUuIElmIHRoZSBub3QtbGlua2VkIGNhbWUgZnJvbQoJICBkb3duc3RyZWFtLCBpdCBhbHJlYWR5IHJlY2VpdmVkIHRoZSBldmVudHMuIElmIHRoZSBwYWQgaXMgYWN0dWFsbHkKCSAgbm90LWxpbmtlZCwgdGhlIHN0aWNreSBldmVudHMgd2lsbCBiZSByZXNjaGVkdWxlZCB3aGVuIHRoZQoJICBwYWQgaXMgbGlua2VkIGFueXdheS4KCjIwMTUtMTAtMjkgMTg6NTM6MjkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBbGxvdyBkZWFjdGl2YXRpb24gd2l0aCBubyBwZWVyLgoJICBBbGxvdyBkZWFjdGl2YXRpb24gaW4gcHVsbC1tb2RlLCBzaW5jZSB0aGF0IGltcGxpZXMgd2UKCSAgaGFkIGEgcGVlciwgYWN0aXZhdGVkIGluIHB1bGwgbW9kZSwgdGhlbiB0aGUgcGVlciBkaXNhLXBlZXItZWQgOykKCjIwMTUtMTAtMjggMTc6MzE6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50OiBlbWl0IHRyYWNlcidzIGVsZW1lbnQtbmV3IGhvb2sgZnJvbSAnY29uc3RydWN0ZWQnCgkgIEl0IGFsbG93cyB0byBwcm9wZXJseSBlbWl0dGluZyBpdCBmb3IgYWxsIG5ld2x5IGNyZWF0ZWQgZWxlbWVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA0NQoKMjAxNS0xMC0yOCAwNjowMzozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBsb2cgdGhlIGVsZW1lbnQtbmV3IGhvb2sgcHJvcGVybHkKCSAgVG8gYmUgYWJsZSB0byBnZXQgdGhlIHRpbWUgdGhlIGVsZW1lbnRzIHdlcmUgY3JlYXRlZCBpbnN0ZWFkIG9mCgkgIGp1c3QgbG9nZ2luZyB0aGVtIHdpdGhvdXQgYSB0aW1lCgoyMDE1LTEwLTI4IDE4OjA0OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFVuYmxvY2sgYmxvY2tpbmcgcGFkIHByb2JlcyB3aGVuIHJlY2VpdmluZyBGTFVTSF9TVEFSVCBpbiBzZW5kX2V2ZW50KCkgdG9vCgkgIFdpdGhvdXQgdGhpcywgZmx1c2hpbmcgbWlnaHQgbm90IHVuYmxvY2sgdGhlIHN0cmVhbWluZyB0aHJlYWQgYW5kIGNhdXNlIGRlYWRsb2Nrcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzI1NwoKMjAxNS0xMC0yOCAxMzowNDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb2N1bWVudCB0aGUgb3JkZXIgaW4gd2hpY2ggcGFkIHByb2JlcyBhcmUgY2FsbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcxOTcKCjIwMTUtMTAtMjcgMTg6MDU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQXBwZW5kIGhvb2tzIGluc3RlYWQgb2YgcHJlcGVuZGluZyB0byBjYWxsIHRoZW0gaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTEwLTI2IDEyOjUwOjEyICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIG5ldGFkZHJlc3NtZXRhOiBnc3RfYnVmZmVyX2dldF9uZXRfYWRkcmVzc19tZXRhKCkgYXMgZnVuY3Rpb24KCSAgSW1wbGVtZW50IGdzdF9idWZmZXJfZ2V0X25ldF9hZGRyZXNzX21ldGEoKSBhcyBhIGZ1bmN0aW9uIGluc3RlYWQKCSAgb2YgYSBtYWNybyBpbiBvcmRlciB0byBnZXQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRvIHdvcmsuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5MjEKCjIwMTUtMTAtMjYgMTg6MDc6MTEgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBmbGVzaCBvdXQgZG9jcyBmb3IgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgYSBsaXR0bGUKCSAgVGhlcmUgaXMgYSBzaW1pbGFyIGV4cGxhbmF0aW9uIGluIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUsIGJ1dCB0aGUgZXhpc3RpbmcKCSAgZG9jdW1lbnRhdGlvbiBjYW4gYmUgbWlzbGVhZGluZyBzaW5jZSBpdCBkb2VzIG5vdCBkZWZpbmUgd2hhdCAnaXMgYWxyZWFkeQoJICB3cml0YWJsZScgbWVhbnMuCgkgIEFsc28gbm90ZSB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZC4KCjIwMTUtMTAtMjYgMTc6MzU6MzQgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNsYXJpZnkgZG9jcyBmb3IgYSBmZXcgZnVuY3Rpb25zIHRoYXQgdGhleSBkb24ndCB1cGRhdGUgdGhpbmdzIGluLXBsYWNlCgkgIEl0IGlzIG5vdCBuZWNlc3NhcmlseSBjbGVhciBmcm9tIHRoZSBleGlzdGluZyBpbnRyb3NwZWN0aW9uIHRhZ3MgYW5kCgkgIGRvY3VtZW50YXRpb24gYWxvbmUuCgoyMDE1LTEwLTI3IDA4OjQ4OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZS9xdWV1ZTI6IFVzZSBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgVGhlIGlucHV0IG9mIHF1ZXVlL3F1ZXVlMiBtaWdodCBoYXZlIERUUyBzZXQsIGluIHdoaWNoIGNhcyB3ZSB3YW50CgkgIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQgKGluc3RlYWQgb2YgdGhlIFBUUykgdG8gY2FsY3VsYXRlIHBvc2l0aW9uCgkgIGFuZCBxdWV1ZSBsZXZlbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1MDcKCjIwMTUtMTAtMTMgMTc6MjA6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXNlIGJ1ZmZlciBEVFMgaWYgcHJlc2VudCwgZWxzZSBQVFMKCSAgSW4gb3JkZXIgdG8gYWNjdXJhdGVseSBkZXRlcm1pbmUgdGhlIGFtb3VudCAoaW4gdGltZSkgb2YgZGF0YQoJICB0cmF2ZWxsaW5nIGluIHF1ZXVlcywgd2Ugc2hvdWxkIHVzZSBhbiBpbmNyZWFzaW5nIHZhbHVlLgoJICBJZiBidWZmZXJzIGFyZSBlbmNvZGVkIGFuZCBwb3RlbnRpYWxseSByZW9yZGVyZWQsIHdlIHNob3VsZCBiZQoJICB1c2luZyB0aGVpciBEVFMgKGluY3JlYXNpbmcpIGFuZCBub3QgUFRTIChyZW9yZGVyZWQpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1MDcKCjIwMTUtMTAtMjcgMDg6MzM6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIFNpbXBsaWZpZXMgY29kZSBhIGJpdAoKMjAxNS0xMC0yNiAwNzo1OTo1NCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBBZGQgYSBHU1RfQlVGRkVSX0RUU19PUl9QVFMgbWFjcm8KCSAgQVBJOiBHU1RfQlVGRkVSX0RUU19PUl9QVFMKCSAgTWFueSBzY2VuYXJpb3MvZWxlbWVudHMgcmVxdWlyZSBkZWFsaW5nIHdpdGggc3RyZWFtcyBvZiBidWZmZXJzIHRoYXQKCSAgbWlnaHQgaGF2ZSBEVFMgc2V0IChpLmUuIGVuY29kZWQgZGF0YSwgcG90ZW50aWFsbHkgcmVvcmRlcmVkKQoJICBUbyBzaW1wbGlmeSBnZXR0aW5nIHRoZSBpbmNyZWFzaW5nICJ0aW1lc3RhbXAiIG9mIHRob3NlIGJ1ZmZlcnMsIGNyZWF0ZQoJICBhIG1hY3JvIHRoYXQgd2lsbCByZXR1cm4gdGhlIERUUyBpZiB2YWxpZCwgYW5kIGlmIG5vdCB0aGUgUFRTCgoyMDE1LTEwLTA2IDEyOjIxOjA0ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogYWRkIEdTVF97UFRSLFNFR01FTlR9X0ZPUk1BVAoJICBWZXJ5IHVzZWZ1bCBmb3JtYXRzIGluIGRlYnVnIG91dHB1dCBzbyBiZXN0IHRvIGhhdmUgdGhlbSBpbiB0aGUKCSAgZ2VuZXJhdGVkIGRvYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjExNQoKMjAxNS0xMC0yNiAxMDo1MzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFJldHVybiAtMSBpZiBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZV9mdWxsKCkgY29uc2lkZXJzIHRoZSBwb3NpdGlvbiBub3QgaW5zaWRlIHRoZSBzZWdtZW50CgkgIEZpeGVzIEdzdFBpcGVsaW5lIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjU2NAoKMjAxNS0xMC0yNCAxNjo1Mjo0NCArMDEwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogZml4IGJlaGF2aW91ciBmb3IgbWVyZ2luZyB1cmlzIGVuZGluZyBpbiAuLiB3aXRob3V0IGZvbGxvd2luZyAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNjUKCjIwMTUtMTAtMjQgMTY6NDM6NTkgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHRlc3RzOiBhZGRlZCB1bml0IHRlc3QgZm9yIHN0cmVhbXMgZW5kaW5nIGluIC4uIHdpdGhvdXQgZm9sbG93aW5nIC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzA2NQoKMjAxNS0wOC0yNyAxMjo0MzoyOCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWc6IER1bXAgcGFkIHByb3BlcnRpZXMgdmFsdWVzCgkgIEN1cnJlbnRseSB3ZSBvbmx5IHNob3cgZWxlbWVudCBwcm9wZXJ0aWVzIHZhbHVlcywgd2Ugc2hvdWxkIGFsc28gc2hvdwoJICBwYWQgcHJvcGVydGllcyB2YWx1ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDE2NgoKMjAxNS0xMC0yMyAyMDowNDo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IFJlbW92ZSBsZWZ0b3ZlciBkZWJ1ZyBnX3ByaW50KCkKCjIwMTUtMTAtMTUgMTQ6NDk6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogQWRkIF9mdWxsIHZhcmlhbnRzIG9mIGFsbCBzdHJlYW0vcnVubmluZ190aW1lIGZyb20vdG8gc2VnbWVudCBwb3NpdGlvbiBmdW5jdGlvbnMKCSAgU2VlIGZvcm11bGEgY2xhcmlmaWNhdGlvbnMgaW4gZGVzaWduIGRvY3MgZm9yIGNhbGN1bGF0aW9uIGRldGFpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1NjQKCjIwMTUtMDktMjYgMDE6Mjk6MDcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkZWQgZW52IHZhciBmb3IgdW5pbnN0YWxsZWQgUFRQIGhlbHBlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjUxCgoyMDE1LTEwLTIyIDEyOjAwOjQyICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IHJlbmFtZSBhcmd1bWVudCBvZiBQUkVST0xMX3tDT05ELExPQ0t9IG1hY3JvcwoJICBUaGV5IHRha2UgYSBHc3RCYXNlU2luayBpbnN0YW5jZSBhcyBhcmd1bWVudCBhdCBub3QgYSBHc3RQYWQuIFJlbmFtZSB0aGUKCSAgYXJndW1lbnQgdG8gJ29iaicgd2hpY2ggaXMgbm90IG1pc3MgbGVhZGluZyBhbmQgaW4gbGluZSB3aXRoCgkgIEdTVF9CQVNFX1NJTktfUEFEKG9iaikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY5NTQKCjIwMTUtMTAtMjIgMTA6MDU6MTQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGdzdGNvbnRyb2xzb3VyY2U6IEFkZCBtaXNzaW5nIChvdXQpIGFubm90YXRpb24KCjIwMTUtMTAtMjEgMTQ6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI5OTgwMGEgdG8gYjMxOTkwOQoKMjAxNS0xMC0yMSAxNDo0OTo0OSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggZG9jcy9hbm5vdGF0aW9uIG9mIGdzdF9wYWRfcHJvYmVfaW5mb19nZXRfYnVmZmVyX2xpc3QoKQoJICBJdCdzIG5vdCBnZXRfYnVmZmVybGlzdCgpLiBCZWNhdXNlIG9mIHRoYXQgaXQgd2FzIGlnbm9yZWQgYnkgdGhlIGRvY3MgYW5kCgkgIEctSSwgbGVhZGluZyB0byBjcmFzaGVzIGJlY2F1c2Ugb2YgYnJva2VuIG93bmVyc2hpcCB0cmFuc2Zlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg5OAoKMjAxNS0xMC0yMCAxNzoyOTo0MiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgVXNlIG5ldyBHU1RfRU5BQkxFX0VYVFJBX0NIRUNLUyAjZGVmaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4NzAKCjIwMTUtMTAtMjEgMTQ6MjU6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWFlZDFkNyB0byBiOTk4MDBhCgoyMDE1LTEwLTIwIDEzOjQ2OjI0ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBhbHdheXMgZnJlZSBsb2cKCSAgV2UgYWx3YXlzIHdhbnQgdG8gZnJlZSB0aGUgb3BlbiBmaWxlIGxvZyBpZiBmb3BlbigpIHN1Y2NlZWRlZC4gSW5kZXBlbmRlbnRseQoJICBvZiBpZiBmZ2V0cygpIHN1Y2NlZWRzIG9yIGZhaWxzLgoJICBDSUQgMTMyNjA1NQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODY0CgoyMDE1LTEwLTE5IDE2OjUwOjUxICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IENvcnJlY3Qgc3RyZWFtX3RpbWUgY2FsYyBmb3IgbmVnYXRpdmUgYXBwbGllZCByYXRlCgkgIFVwZGF0ZWQgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSBhbmQgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUgdG8gcmVmbGVjdCBjb3JyZWN0IGNhbGN1bGF0aW9ucyBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgYXBwbGllZCByYXRlIGlzIG5lZ2F0aXZlLgoJICBQYXN0aW5nIGZyb20gZGVzaWduIGRvY3M6CgkgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCSAgU3RyZWFtIHRpbWUgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgYnVmZmVyIHRpbWVzIGFuZCB0aGUgcHJlY2VkaW5nIFNFR01FTlQKCSAgZXZlbnQgYXMgZm9sbG93czoKCSAgc3RyZWFtX3RpbWUgPSAoQi50aW1lc3RhbXAgLSBTLnN0YXJ0KSAqIEFCUyAoUy5hcHBsaWVkX3JhdGUpICsgUy50aW1lCgkgIEZvciBuZWdhdGl2ZSByYXRlcywgQi50aW1lc3RhbXAgd2lsbCBnbyBiYWNrd2FyZHMgZnJvbSBTLnN0b3AgdG8gUy5zdGFydCwKCSAgbWFraW5nIHRoZSBzdHJlYW0gdGltZSBnbyBiYWNrd2FyZHMuCgkgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCSAgVGhlcmVmb3JlLCB0aGUgY2FsY3VsYXRpb24gZm9yIGFwcGxpZWRfcmF0ZSA8IDAgc2hvdWxkIGJlOgoJICBzdHJlYW1fdGltZSA9IChTLnN0b3AgLSBCLnRpbWVzdGFtcCkgKiBBQlMgKFMuYXBwbGllZF9yYXRlKSArIFMudGltZQoJICBhbmQgdGhlIHJldmVyc2U6CgkgIEIudGltZXN0YW1wID0gUy5zdG9wIC0gKHN0cmVhbV90aW1lIC0gUy50aW1lKSAvIEFCUyAoUy5hcHBsaWVkX3JhdGUpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4MTAKCjIwMTUtMTAtMTkgMjE6Mzk6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogcmVuYW1lIHRoZSBlbnZ2YXIgdG8gR1NUX1RSQUNFUl9QTFVHSU5TCgkgIFRoZSBzdWJzeXN0ZW0gcmV1c2VkIHRoZSBHU1RfVFJBQ0UgdmFyIHRoYXQgaXMgYWxscmVhZHkgaW4gdXNlIGJ5IHRoZSBhbGxvYyB0cmFjZXIuCgkgIEZpeGVzICM3NTY3NjAKCjIwMTUtMTAtMTUgMTY6MzI6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW1wcm92ZSBpbmNvbWluZyBTRUdNRU5UIGhhbmRsaW5nCgkgIFByZXZpb3VzbHkgdGhpcyBjb2RlIHdhcyBqdXN0IGJsaW5kbHkgc2V0dGluZyB0aGUgY2FjaGVkIGZsb3cgcmV0dXJuCgkgIG9mIGRvd25zdHJlYW0gdG8gR1NUX0ZMT1dfT0sgd2hlbiB3ZSBnZXQgYSBTRUdNRU5ULgoJICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoaXMgY2FuIG5vdCBiZSBkb25lIGJsaW5kbHkuIElmIGRvd25zdHJlYW0gd2FzCgkgIG5vdCBsaW5rZWQsIHRoZSBjb3JyZXNwb25kaW5nIHNpbnFsZXF1ZXVlIHNvdXJjZSBwYWQgdGhyZWFkIG1pZ2h0IGJlCgkgIHdhaXRpbmcgZm9yIHRoZSBuZXh0IElEIHRvIGJlIHdva2VuIHVwIHVwb24uCgkgIEJ5IGJsaW5kbHkgc2V0dGluZyB0aGUgY2FjaGVkIHJldHVybiB2YWx1ZSB0byBHU1RfRkxPV19PSywgYW5kIGlmIHRoYXQKCSAgc3RyZWFtIHdhcyB0aGUgb25seSBvbmUgdGhhdCB3YXMgTk9UX0xJTktFRCwgdGhlbiB0aGUgbmV4dCB0aW1lIHdlCgkgIGNoZWNrIChmcm9tIGFueSBvdGhlciB0aHJlYWQpIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHdha2UgdXAgYSBzb3VyY2UgcGFkCgkgIHRocmVhZCAuLi4gd2Ugd29uJ3QgZXZlbiB0cnksIGJlY2F1c2Ugbm9uZSBvZiB0aGUgY2FjaGVkIGZsb3cgcmV0dXJuCgkgIGFyZSBlcXVhbCB0byBHU1RfRkxPV19OT1RfTElOS0VELgoJICBUaGlzIHdvdWxkIHJlc3VsdCBpbiB0aGF0IHRocmVhZCBuZXZlciBiZWluZyB3b2tlbiB1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NjQ1CgoyMDE1LTA5LTI2IDE4OjE2OjA3ICswODAwICBUaW5nLVdlaSBMYW4gPGxhbnR3QHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEZpeCBidWlsZCB3aXRoIGNsYW5nIC1XZXJyb3I9Y2FzdC1hbGlnbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NjU3CgoyMDE1LTEwLTE3IDIyOjEzOjA4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB0byBmcmVlIGFsbCBjYWNoZWQgbWVzc2FnZXMgd2hlbiBnb2luZyB0byBOVUxMCgkgIEFuIEFTWU5DIFJFQURZLT5QQVVTRUQgbWlnaHQgaGF2ZSBmYWlsZWQgd2l0aG91dCB0aGUgYmluIGNvZGUgbm90aWNpbmcgZHVyaW5nCgkgIHRoZSBzdGF0ZSBjaGFuZ2UsIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBuZXZlciBnZXQgUEFVU0VELT5SRUFEWSBhbmQgd291bGQgbGVhawoJICBtZXNzYWdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjYxMQoKMjAxNS0xMC0xNiAxNTo1OTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IG1lbnRpb24geGRvdCB1dGlsaXR5IHRvIHZpZXcgLmRvdCBmaWxlcyBkaXJlY3RseQoKMjAxNS0xMC0xNiAxMjowMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICBhbGxvY3RyYWNlOiBzaG93IGRldGFpbHMgb2YgZXZlbnRzIGFuZCBtZXNzYWdlcyBsZWFrZWQKCSAgU28gaXQncyBjbGVhcmVyIHdoYXQgbGVha2VkLgoKMjAxNS0xMC0xNiAxMTo1NDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogbWFudWFsOiBpbXByb3ZlIGFkdmFuY2VkIG1ldGFkYXRhIGV4YW1wbGUgYSBiaXQKCSAgQWNjZXB0IGJvdGggZmlsZW5hbWUgYW5kIGEgVVJJIGFzIGFyZ3VtZW50LCBhbmQgcHJpbnQKCSAgdGhlIGVycm9yIGZyb20gdGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlcmUncyBhbiBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjYzMAoKMjAxNS0xMC0xNSAxOTowNToyMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGZpeCB0eXBvIGluIGRvY3VtZW50YXRpb24KCSAgSXQgc2hvdWxkIGJlIDEuMiB1bmxlc3MgdGhpcyBpcyBhIGZsYWcgZnJvbSB0aGUgZnV0dXJlCgoyMDE1LTA5LTE1IDE4OjA4OjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFjY2VwdCBTVFJFQU1fU1RBUlQgYWZ0ZXIgRU9TCgkgIEluIHRoZSBzYW1lIHdheSBjb3JlIG5vdyBhbGxvd3MgU1RSRUFNX1NUQVJUIHRvIHJlbW92ZSB0aGUgZmx1c2hpbmcKCSAgc3RhdGUgZnJvbSBwYWRzLCB3ZSBuZWVkIHRvIGRvIHRoZSBzYW1lIHRoaW5nIGluIG11bHRpcXVldWUKCjIwMTUtMTAtMTQgMTE6MDM6MjIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBDb252ZXJ0IGZ1bmN0aW9uIHRvIG1hY3JvIGluIHVuaXQgdGVzdCB0byBnZXQgcHJvcGVyIGxpbmUgbnVtYmVycyBvbiBmYWlsdXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzE2CgoyMDE1LTEwLTEyIDE3OjI5OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVcGRhdGUgaW50ZXJuYWwgcG9zaXRpb24gZXZlbiBpZiBub3QgbGlua2VkCgkgIE91ciBjdXJyZW50IHBvc2l0aW9uIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYmVpbmcgbGlua2VkIG9yIG5vdC4KCSAgQXZvaWRzIGhhdmluZyBzdHJheSBzZWdtZW50IHVwZGF0ZXMgZmlyZWQgZXZlcnkgMnMKCjIwMTUtMTAtMDcgMjI6NTU6NDQgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBtZW1vcnkgbGVhayB3aGVuIHNlbmRpbmcgZXZlbnRzIHRvIGFuIEVPUyBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjIwOAoKMjAxNS0xMC0wNyAxMjowMToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSAgdHJhY2VyczogT25seSBsaW5rIGFnYWluc3QgbGliZ3N0cHJpbnRmLmxhIGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQKCSAgSXQgZG9lcyBub3QgZXhpc3Qgb3RoZXJ3aXNlIGFuZCBsaW5raW5nIHdpbGwgZmFpbC4KCjIwMTUtMTAtMDcgMTE6MjU6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIGdzdC1wdHAtaGVscGVyOiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPiB0byBmaXggbmV0L2lmLmggaW5jbHVkZSBvbiBPU1ggMTAuNgoJICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZ3N0LXB0cC1oZWxwZXIuYzo0MDowOgoJICAvdXNyL2luY2x1ZGUvbmV0L2lmLmg6MjY1OjE5OiBlcnJvcjogZmllbGQgJ2lmcnVfYWRkcicgaGFzIGluY29tcGxldGUgdHlwZQoJICBzdHJ1Y3Qgc29ja2FkZHIgaWZydV9hZGRyOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MTM2CgoyMDE1LTEwLTA3IDEyOjIyOjM0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgUmV2ZXJ0ICJ0cmFjZXJzOiBPbmx5IGJ1aWxkIGdldHJ1c2FnZSgpIHRyYWNlciBpZiBSVVNBR0VfVEhSRUFEIGlzIGF2YWlsYWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZGRiZjc2NjI2YTQ4NDIwMzA2ODY5ZGIxZDE3MWY4NTRjYzI1MzEwLgoKMjAxNS0xMC0wNyAxMjoyMTo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgdHJhY2Vycy9ydXNhZ2U6IGlmZGVmIHRoZSBSVVNBR0VfVEhSRUFEIHVzYWdlCgkgIFNvbWUgdmVyc2lvbnMgb2YgYW5kb2lkIGRvbid0IHNlZW0gdG8gaGF2ZSBpdC4KCjIwMTUtMTAtMDcgMTE6MTE6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBPbmx5IGJ1aWxkIGdldHJ1c2FnZSgpIHRyYWNlciBpZiBSVVNBR0VfVEhSRUFEIGlzIGF2YWlsYWJsZQoKMjAxNS0xMC0wNiAyMTo0Njo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogcmVtb3ZlIGdzdF90cmFjZXJfcXVhcmtfaWRfZ2V0X3R5cGUKCSAgUmV2ZXJ0IGFkZGl0aW9uIGZyb20gNzc3YmJlZWE2MDUwNTFhZTNkMmZhN2UwMmFkODU4OTAwMWU3OGNlMC4KCjIwMTUtMTAtMDYgMTg6NTI6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IG1vdmUgcHJvdG90eXBlIHRvIHRoZSByaWdodCBoZWFkZXIKCSAgRml4ZXMgdGhlIGJ1aWxkIHdoZW4gdGhlIHRyYWNpbmcgc3Vic3lzdGVtIGlzIGRpc2FibGVkLgoKMjAxNS0xMC0wNiAxODo0OTo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogbWFyayBHc3RUcmFjZXJRdWFya0lkIGFzIG5vbiBHRW51bQoJICBUaGlzIHJldmVydHMgNzJjYTAyYjFkZTQwNjZlZWFlMzVjODkxZTI3NTM4Njc3MDExNzc3OCBhbmQgbWFya3MgdGhlIGVudW0KCSAgYWNjb3JkaW5nbHkuCgoyMDE1LTEwLTA2IDE4OjQ2OjI0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBkaXNhYmxlIHRoZSBsb2cgdHJhY2VyIGlmIGRlYnVnIGxvZ2dpbmcgaXMgZGlzYWJsZWQKCjIwMTUtMTAtMDYgMTg6NDU6NDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkgIG1ha2VmaWxlLmFtOiBSZW1vdmUgb2Jzb2xldGUgQW5kcm9pZCBidWlsZCBjcnVmdAoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTUtMTAtMDYgMTQ6MDE6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBmaXggdGhlIGJ1aWxkIHdpdGggZGVidWcgKHRyYWNlcikgZGlzYWJsZWQKCSAgU3luYyB0aGUgbWFjcm8gZGVmaW5pdGlvbnMuIFRoZSBkdW1teSBkZWZpbmVzIGhhcyBhcmd1bWVudCBtaXNtYXRjaGVzLgoKMjAxNS0xMC0wNiAxMTozOTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGZpeCB0aGUgYnVpbGQgd2l0aCBkZWJ1ZyAodHJhY2VyKSBkaXNhYmxlZAoJICBSZW1vdmUgY29tbWFzIGF0IHRoZSBlbmQgb2YgdGhlIG1hY3Jvcy4KCjIwMTUtMDktMDEgMTY6Mzk6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBzdGF0czogYWRkIG1lc3NhZ2Ugc3RydWN0dXJlIHRvIG91dHB1dAoJICBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBpcyBub3QgZW5vdWdoLiBGb3IgZXhhbXBsZSwgc3RhdGUtY2hhbmdlCgkgIGlzIG5vdCBlbm91Z2ggdG8ga25vdyB0aGUgdHJhbnNpdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDQ5NgoKMjAxNS0xMC0wNSAxOTowNTo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZGluZyB0cmFjZXIgcXVhcmsgaWQgdG8gZ3N0IGluaXQgYW5kIGRlaW5pdAoJICBGaXhlcyBpc3N1ZXMgYXQgbWFrZSBjaGVjawoKMjAxNS0xMC0wNSAxODo1MDo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBsaWJnc3RyZWFtZXI6IGFkZCB0cmFjZXIgZnVuY3Rpb25zCgoyMDE1LTEwLTA1IDIxOjI5OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogZml4IHRoZSB0YWcgdGVzdAoJICBUaGUgcHJldmlvdXMgY2hhbmdlIChzZWUgYmdvICM3NTYwNjkpIHdhcyBjYXVzaW5nIHVzIHRvIGZyZWUgdGhlIHNhbWUgcG9pbnRlcgoJICBtdWx0aXBsZSB0aW1lcy4gSWYgd2UgYWN0dWFsbHkgZ2V0IGEgc2FtcGxlIGJhY2ssIHRoZSB0ZXN0IGZhaWxzLCBubyBuZWVkIHRvCgkgIGZyZWUgYW55dGhpbmcgaW4gdGhhdCBjYXNlLgoKMjAxNS0wNi0wNCAwMTo1MDozNCArMDIwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGFkZCBtaXNzaW5nIGhvb2tzCgkgIEFkZCBmb2xsb3dpbmcgaG9va3M6IGVsZW1lbnQtbmV3LCBlbGVtZW50LWFkZC1wYWQsIGVsZW1lbnQtcmVtb3ZlLXBhZCwKCSAgYmluLWFkZC1wcmUsIGJpbi1hZGQtcG9zdCwgYmluLXJlbW92ZS1wcmUsIGJpbi1yZW1vdmUtcG9zdCwgcGFkLWxpbmstcHJlLAoJICBwYWQtbGluay1wb3N0LCBwYWQtdW5saW5rLXByZSwgcGFkLXVubGluay1wb3N0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTg3CgoyMDE1LTAzLTEzIDE4OjMxOjQwICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBnc3RzdGF0czogYWRkIHRocmVhZC1pZCB0byBsb2cgbGluZQoKMjAxNS0wMy0xMyAxMzoxMDo0MiArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGFkZCBwYWQgcXVlcnkgaG9va3MKCjIwMTUtMDEtMTUgMDY6MzI6NDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiBzdHJkdXAgdGhlIHBhc3NlZCBwYXJhbWV0ZXJzLgoKMjAxNS0wMS0xMyAyMjoxMTozNCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IFVzZSBHU1RfVElNRV9BUkdTIHdoZW4gcHJpbnRpbmcgd2l0aCBHU1RfVElNRV9GT1JNQVQuCgoyMDE0LTEwLTE2IDEwOjQyOjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIHRyYWNpbmc6IHVwZGF0ZSBkb2NzCgoyMDE0LTEwLTAyIDE5OjUyOjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogVElNRVNUQU1QIC0+IFBUUwoKMjAxNC0wOS0yMiAwOTo1NTo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2luZzogcmVuYW1lIHRoZSBnbG9iYWwgYXBpIHRvIGdzdF90cmFjaW5nCgkgIFRoaXMgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoYXQgaXMgdGhlIGFwaSBmb3IgdHJhY2VyIGVsZW1lbnRzIGFuZCB3aGF0IGlzIGFwaQoJICBmb3IgdGhlIGdsb2JhbCBzdGF0ZS4KCjIwMTQtMDktMTggMDg6Mjg6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGZpeCBjcHUgc3RhdHMgcHJpbnRpbmcKCSAgT25seSBwcmludCB0aGVtIGlmIHdlIGhhdmUgdGhlbS4gQWxzbyBzY2FsZSB0aGVtIGJ5IDEwLjAgYXMgdGhlIGFyZSBpbgoJICBwZXItbWlsbGUgbm93LgoKMjAxNC0wOS0xOCAwODoyNjoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGVsaW1pbmF0ZSB2YXJfYXJncwoJICBSZWdpc3RlciB0cmFjZXIgaG9va3MgYXMgR0NhbGxiYWNrLiBVc2UgbWFjcm9zIGZvciBob29rIGRpc3BhdGNoIGFuZCBjYXN0IHRoZQoJICBob29rIGZ1bmN0aW9ucyBiYWNrIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgoKMjAxNC0wOS0xNyAwOTo0MTo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogZG9uJ3Qgd2FybiBvbiAiLmNsYXNzIiBsb2cgbGluZXMKCjIwMTQtMDktMTcgMDg6Mzg6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJICB0cmFjZXJzOiBjb2RlIGNsZWFudXBzCgkgIE1vdmUgc3RhdGljIHZhcmlhYmxlcyB0byBpbnN0YW5jZSB2YXJpYWJsZXMuIEFkZCBmaW5hbGl6ZSBtZXRob2RzLiBSZW1vdmUgY29kZQoJICB0aGF0IGlzIGNvbW1lbnRlZCBvdXQuIENsZWFudXAgbG9ja2luZyBjb2RlLgoKMjAxNC0wOS0xNSAyMjoyNzoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIEdRdWFyayBvciBzdHJpbmdzIGZvciB0aGUgaG9vayBpZAoJICBUaGlzIHdheSBvbmUgY2FuIGRlZmluZSBuZXcgdHJhY2luZyBwcm9iZXMgd2l0aG91dCBjaGFuZ2luZyB0aGUgY29yZS4gV2UgYXJlCgkgIHVzaW5nIG91ciBvd24gcXVhcmsgdGFibGUsIGFzIDEpIHdlIG9ubHkgd2FudCB0byBpbml0aWFsaXplIHRoZW0gaWYgd2UncmUKCSAgdHJhY2luZywgMikgd2Ugd2FudCB0byBzaGFyZSB0aGVtIHdpdGggdGhlIHRyYWNlcnMuCgoyMDE0LTA5LTE1IDEzOjE1OjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHNpbXBsaWZ5IGhvb2sgYXBpCgkgIEluc3RlYWQgb2YgYSBzaW5nbGUgaW52b2tlKCkgZnVuY3Rpb24gYW5kIGEgJ21hc2snLCByZWdpc3RlciB0byBpbmRpdmlkdWFsCgkgIGhvb2tzLiBUaGlzIGF2b2lkcyBvbmUgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gYW5kIGFsbG93cyB1cyB0byByZW1vdmUgdGhlCgkgIGhvb2sgZW51bXMuIFRoZSBtZXNzYWdlIGVubXMgYXJlIG5vdyByZW5hbWVkIHRvIGhvb2sgZW51bXMuCgoyMDE0LTA5LTEyIDE4OjQzOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogZHJvcCB0aGUgSG9va0lkIGhpZCBmcm9tIHRoZSBpbnZva2UgbWV0aG9kCgkgIFRoZSBNZXNzYWdlSWQgaXMgbW9yZSBkZXRhaWxlZCBhbmQgYW55d2F5IG5lZWRlZCB0byBpbnRlcnByZXQgdGhlIHZhcmFyZ3MuCgoyMDE0LTA5LTEyIDExOjE3OjQxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHN0YXRzOiBmaXh1cCBkb2MgbmFtZSBhbmQgcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgoyMDE0LTA5LTEyIDA4OjQwOjAxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogYWRkIG1ldGFkYXRhIGZvciB0aGUgbG9nZ2VkIHZhbHVlcwoKMjAxNC0wOS0xMSAxMzowMjo1MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSAgcnVzYWdlOiBpbXByb3ZlIGNwdSBsb2FkIG1lYXNzdXJlbWVudHMKCSAgR2V0IHRoZSBudW1iZXIgb2YgY3B1cyBhbmQgc2NhbGUgcHJvY2VzcyBjcHUtbG9hZCBhY2NvcmRpbmdseS4gU3dpdGNoIHRoZQoJICBjcHVsb2FkIHRvIGJlIHBlci1taWxsZSB0byBnZXQgc21vb3RoZXIgZ3JhcGhzLiBBZGQgYSBiaXQgbW9yZSBsb2dnaW5nIGFuZCB1c2UKCSAgdGhlIF9PQkpFQ1QgdmFyaWFudC4KCjIwMTQtMDktMTEgMTM6MDA6NTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogcmVtb3ZlIGNvbW1lbnRlZCBjb2RlCgoyMDE0LTA5LTEwIDA4OjMzOjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRyYWNlciBkZXNpZ24KCSAgVXBkYXRlIHRoZSB0cmFjZXIgZXZlbnQgY2xhc3NlcyBzZWN0aW9uLiBBZGQgYSBwZXJmb3JtYW5jZSBzZWN0aW9uLgoKMjAxNC0wOS0xMCAwODozMjoxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSAgdHJhY2VyOiB1c2UgR1NUX1BUUl9GT1JNQVQgdG8gbG9nIHRoZSBzdHJ1Y3R1cmUKCSAgVGhpcyB3YXkgd2Ugb25seSBleHBhbmQgdGhlIHN0cnVjdHVyZSB3aGVuIHdlJ3JlIGxvZ2dpbmcuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIG1lYXNzdXJlIHRoZSBwdXJlIHRyYWNpbmcgc2VwZXJhdGVseSBmcm9tIHRoZSBsb2dnaW5nLgoJICBBbHNvIGFkZCBzb21lIGNvbW1lbnRzIG9uIGZ1cnRoZXIgaW1wcm92ZW1lbnRzLgoKMjAxNC0wOS0xMCAwNzo1NTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHJ1c2FnZTogaW1wbGVtZW50IHdpbmRvd2luZyBvZiBjcHVsb2FkCgkgIEFkZCBhIGxvY2FsIGhlbHAgdG8gdGhlIHJ1c2FnZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB3aW5kb3dpbmcgb2YgdmFsdWVzLiBXZSB3YW50CgkgIHRvIGdlbmVyYWxpemUgdGhpcyBmb3IgdXNlIGluIG90aGVyIHBsdWdpbnMuCgoyMDE0LTA5LTA0IDEwOjExOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgcnVzYWdlOiBhbm5vdW5jZSB0aGUgZGF0YSBmb3JtYXQKCSAgUnVzYWdlIHdpbGwgbm93IGFubm91bmNlIHdoYXQgaXMgbWVhc3N1cmVzIGFuZCBob3cgaXQgaXMgbG9nZ2VkLiBVc2UgdGhlIG5ldyBmb3JtYXQgaW4gc3RhdHMuCgkgIENsZWFudXAgdGhlIHRoZSBjb2RlIGFuZCBuYW1pbmcuCgoyMDE0LTA3LTI4IDIyOjA4OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGltcHJvdmUgY3B1IGxvYWQgbWVhc3N1cmVtZW50cwoJICBSZW5hbWUgdmFyaWFibGVzIGZvciBjbGFyaXR5LiBIYW5kbGUgdGhlIGluaXRpYWwgZGlzcGFyaXR5IGJldHdlZW4gZGVidWcgdGltZQoJICBhbmQgdGhlIHRpbWUgYWxyZWFkeSBzcGVudCBpbiB0aGUgcHJvYyBhbmQgbWFpbiB0aHJlYWQuCgoyMDE0LTA3LTE4IDA4OjA5OjMyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHRyYWNlciBkZXNpZ24KCjIwMTQtMDctMjggMDg6NDk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIHF1YXJrczogcmV2ZXJ0IHRoZSBxdWFyayBjaGFuZ2VzLCB3ZSBub3QgdXNpbmcgdGhlbSBhbnltb3JlCgoyMDE0LTA3LTE4IDA3OjQ5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5Lmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSAgdHJhY2VyOiBzcGxpdCBpbnRvIHRyYWNlciBhbmQgdHJhY2VydXRpbHMKCSAgS2VlcCB0cmFjZXIgYmFzZSBjbGFzcyBpbiB0cmFjZXIgYW5kIG1vdmUgY29yZSBzdXBwb3J0IGludG8gdGhlIHV0aWxzIG1vZHVsZS4KCSAgQWRkIGEgdW5zdGFibGUtYXBpIGd1YXJkIHRvIHRoZSB0cmFjZXIuaCBzbyB0aGF0IGV4dGVybmFsIG1vZHVsZXMgd291bGQgbmVlZCB0bwoJICBhY2tub3dsZWRnZSB0aGUgc3RhdHVzIGJ5IHNldHRpbmcgR1NUX1VTRV9VTlNUQUJMRV9BUEkuCgoyMDE0LTA3LTE2IDE4OjQ4OjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIGRvY3M6IGFkZCBndGstZG9jIGJsb2JzCgoyMDE0LTAyLTIwIDExOjE1OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSAgbGF0ZW5jeTogdGFrZSBzdG9wIHRpbWUgd2hlbiBidWZmZXIgaXMgaGFuZGxlZAoJICBOb3cgd2UgbWVhc3N1cmUgdGltZSBmcm9tICdiZWZvcmUgYnVmZmVyIHRyYW5zZmVyIG9uIHNyYycgdG8gd2hlbiB0aGUgJ2J1ZmZlciBpcyBwcm9jZXNzZWQgb24gc2luaycuCgoyMDE0LTA3LTE1IDA5OjQ5OjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGFkZCBhIGxvZ2dpbmcgaGVscGVyIHRvIHJlbW92ZSBpZGVudGljYWwgY29waWVzIGZyb20gdGhlIHRyYWNlcnMKCjIwMTQtMDItMTggMTY6MTU6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyczogdHdlYWsgdGhlIGdldF9yZWFsX3BhZF9wYXJlbnQoKQoJICBCeSB1c2luZyB0aGUgd2UgZW5kZWQgdXAgb24gdGhlIGFjdHVhbCBlbGVtZW50LCBub3QgdGhlIHBhcmVudC4KCjIwMTQtMDItMTggMTE6MDY6MTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5Lmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcnM6IGFkZCBhIG5ldyBsYXRlbmN5IHRyYWNlcgoJICBBZGQgYSBuZXcgdHJhY2VyIHdpdGggcHVzaGVzIGV4dHJhIGV2ZW50cyB0byBtZWFzc3VyZSBzcmMtdG8tc2luayBwcm9jZXNzaW5nIGxhdGVuY3kuCgoyMDE0LTAyLTE3IDE4OjMwOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbiBkb2NzCgkgIEFkZCBuZXcgdHJhY2VyIGlkZWEuCgoyMDEzLTExLTIyIDE5OjEwOjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIGdzdC1zdGF0czogdXNlIHRoZSBydXNhZ2Ugc3RhdHMKCSAgQWRkIGNwdWxvYWQgaW5mbyBmcm9tIHJ1c2FnZSB0cmFjZXMuCgoyMDEzLTExLTIwIDA4OjIyOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBydXNhZ2U6IGFkZCBhIG5ldyBydXNhZ2UgdHJhY2VyCgkgIFRoZSB0cmFjZXIgaG9va3MgdXAgdG8gYWxsIHByb2JlcyBhbmQgbG9ncyByZXNvdXJjZSB1c2FnZSBmaWd1cmVzLgoKMjAxNC0wNy0xNSAxMDoyMDoyMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBnc3Qtc3RhdHM6IGZpbHRlciBjb21wbGV0ZSB0aHJlYWQgc2VjdGlvbiBpZiB3ZSBoYXZlIG5vIHBhZHMKCjIwMTMtMTEtMTkgMDg6MDQ6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBpbXByb3ZlIHRoZSBoYW5kbGluZyBvZiBwYXJlbnRhZ2UKCSAgTG9nIG5ldyBvYmplY3QgYWZ0ZXIgd2UgZGlkIHRoZSBjaGVjayBmb3IgcGFyZW50cy4KCjIwMTMtMTEtMTcgMTE6Mzc6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IHByaW50IHRocmVhZCBrZXkgZm9yIHN0YXRzIGFuZCBmaWx0ZXIgZW1wdHkgcGFkLXNlY3Rpb25zCgoyMDEzLTExLTE3IDExOjE1OjM2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiB1cGRhdGUgYnVmZmVyIGZsYWdzCgkgIFJlbW92ZSBzb21lIGJ1ZmZlciBmbGFncyB0aGF0IHdlcmUgbGVmdG92ZXJzIGZyb20gMC4xMCBhbmQgaGFuZGxlIG5ldyAxLjAgYnVmZmVyCgkgIGZsYWdzLgoKMjAxMy0xMS0wNCAyMDoxMTowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogYWRkIGEgc3RhdHMgZnJvbnRlbmQKCSAgUGFyc2UgdGhlIGxvZyBhbmQgY29sbGVjdCBkYXRhIGZyb20gdHJhY2VyIG1lc3NhZ2VzLgoKMjAxMy0xMS0xNSAwOTozNjoyMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyOiB1c2UgdGhlIHNhbWUgdGltZWJhc2UgYXMgdGhlIGxvZ2dpbmcKCjIwMTQtMDctMTYgMDk6MjI6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgZGVzaWduCgoyMDE0LTA3LTE2IDA5OjQxOjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBsb2c6IGFkZCBxdWVyeSBsb2cgY2F0ZWdvcnkKCjIwMTMtMTEtMDIgMTg6MjQ6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogcGFyc2UgcGFyYW1ldGVycwoKMjAxNC0wNy0xNiAwOToyMjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogYWRkIG1vcmUgaG9va3MgYW5kIGhhbmRsZSBpdCBpbiB0aGUgcGx1Z2lucwoKMjAxMy0xMC0zMCAwODoxOTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogaGFuZGxlIGJ1ZmZlciBsaXN0cwoKMjAxMy0xMC0zMCAwODowNDoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIGxvZzogbWFrZSB0aGUgbG9nIHRyYWNlciBtb3JlIHZlcmJvc2UgYWdhaW4KCSAgRGVmaW5lIGxvZyBmb3JtYXRzIHBlciBtZXNzYWdlIHR5cGUgYW5kIHByaW50IGRldGFpbHMuCgoyMDEzLTEwLTI4IDIxOjU5OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIGEgbWFjcm9zIGZvciB0aGUgZW5hYmxlZCBjaGVjawoJICBBdm9pZCBhIGZ1bmN0aW9uIGNhbGwgYW5kIGNoZWNrIHRoZSB2YXJpYWJsZXMgZnJvbSB0aGUgbWFjcm8uCgoyMDEzLTEwLTI4IDIxOjM5OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogdXNlIG1hY3JvcyBmb3IgaG9va3MKCSAgV3JhcCB0aGUgaG9vayB3aXRoIGEgcHJlIGFuZCBwb3N0IG1hY3JvLiBUaGlzIGxvb2tzIGxlc3MgaW50cnVzaXZlIHRoYW4gdGhlCgkgIHByZXZpb3VzIHZlcnNpb24sIGFsdGhvdWdoIGl0IGlzIGEgbGl0dGxlIGxlc3Mgb3B0aW1pemVkLgoKMjAxMy0xMC0yOCAyMToyODoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHBhc3MgdGhlIHRpbWVzdGFtcCBkaXJlY3RseQoJICBBdm9pZCB0aGUgc3RydWN0dXJlIG1hc2hhbGxpbmcgKGFuZCB3ZWlyZCBmaWVsZCBuYW1pbmcpLgoKMjAxMy0xMC0yOCAwODowODoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICBzdGF0czogYWRkIGEgdHJhY2VyIHRoYXQgY29sbGVjdHMgcGlwZWxpbmUgc3RhdGlzdGljcwoJICBUaGlzIGlzIG1vcmUgb3IgbGVzcyBlcXVpdiB0byB0aGUgdGhlIHN0YXRpc3RpY3MgaW4gZ3N0LXRyYWNlbGliLgoKMjAxMy0xMC0yOCAwODowNzo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSAgbG9nOiBhZGQgY2FzdCBtYWNybwoKMjAxMy0xMC0yNyAyMDo0MzoyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcjogcGFzcyB0aGUgaW5zdGFuY2UgdG8gdGhlIHZtZXRob2QKCjIwMTMtMTAtMjcgMTc6MDU6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBkZXNpZ246IG1vcmUgcGxhbm5pbmcKCjIwMTMtMTAtMjcgMTc6MDQ6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogc3dpdGNoIHRvIHF1YXJrcyBhbmQgYWRkIGFub3RoZXIgaG9vayBmb3IgYnVmZmVyIGZsb3cKCSAgVXNlIHByZS1kZWZpbmVzIHF1YXJrcyBhcyB0aGlzIHdpbGwgYmUgY2FsbGVkIHF1aXRlIG9mdGVuLgoKMjAxMy0xMC0yNyAxMjo0NTo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IGFkZCB0aGUgaG9vay1pZCB0byB0aGUgaW52b2tlIHNpZ25hdHVyZQoJICBUcmFjZXJzIHRoYXQgc3Vic2NyaWJlIHRvIG11bHRpcGxlIGhvb2tzIGNhbiBrbm93IHdoYXQgaG9vayB3YXMgdXNlZC4KCjIwMTMtMTAtMjYgMjI6MDU6MTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBhZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBmYWN0b3J5CgkgIEhhbmRsZSB0cmFjZXIgbW9kdWxlcy4KCjIwMTMtMTAtMjQgMTQ6NDc6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyOiBpbml0aWFsIHByb3RvdHlwZSBmb3IgdGhlIHRyYWNpbmcgc3Vic3lzdGVtCgoyMDE1LTEwLTA1IDExOjEyOjQ3ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRlc3RzL2dzdC1sYXVuY2g6IEZpeCBzYW1wbGUgbWVtb3J5IGxlYWsKCSAgV2hlbiBzYW1wbGUgaXMgZ290IHVzaW5nIGdzdF90YWdfbGlzdF9nZXRfc2FtcGxlX2luZGV4LCBpdCBzaG91bGQKCSAgYmUgZnJlZSdkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2MDY5CgoyMDE1LTEwLTAyIDIyOjE3OjA0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIFVwZGF0ZSBHTGliIGRlcGVuZGVuY3kgdG8gMi40MC4wCgoyMDE1LTA4LTIwIDE2OjIxOjU5ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1jb21wbGV0aW9uLWhlbHBlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvZXhhbXBsZXMvcHRwL3B0cC1wcmludC10aW1lcy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICBnc3RyZWFtZXI6IEZpeCBtZW1vcnkgbGVha3Mgd2hlbiBjb250ZXh0IHBhcnNlIGZhaWxzCgkgIFdoZW4gZ19vcHRpb25fY29udGV4dF9wYXJzZSBmYWlscywgY29udGV4dCBhbmQgZXJyb3IgdmFyaWFibGVzIGFyZSBub3QgZ2V0dGluZyBmcmVlJ2QKCSAgd2hpY2ggcmVzdWx0cyBpbiBtZW1vcnkgbGVha3MuIEZyZWUnaW5nIHRoZSBzYW1lLgoJICBBbmQgcmVwbGFjaW5nIGdfZXJyb3JfZnJlZSB3aXRoIGdfY2xlYXJfZXJyb3IsIHdoaWNoIGNoZWNrcyBpZiB0aGUgZXJyb3IgYmVpbmcgcGFzc2VkCgkgIGlzIG5vdCBOVUxMIGFuZCBzZXRzIHRoZSB2YXJpYWJsZSB0byBOVUxMIG9uIGZyZWUnaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODUxCgoyMDE1LTA5LTIzIDIzOjAzOjI5ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogVXNlIGdfc2VxdWVuY2VfbG9va3VwIHdoZXJlIHBvc3NpYmxlCgkgIFdoZW4gbG9va2luZyBmb3IgZXhhY3QgbWF0Y2hlcyBpbiB0aGUgc2VxdWVuY2UsIHRoaXMgcmVzdWx0cwoJICBpbiBtdWNoIHNpbXBsZXIgY29kZSB0aGFuIHdoZW4gdXNpbmcgZ19zZXF1ZW5jZV9zZWFyY2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU0OTgKCjIwMTUtMTAtMDEgMjI6MDk6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBmaXggd3JpdGUgb3ZlciB0aGUgYXJyYXkgc2l6ZQoJICBUaGUgJysrJyBnb3QgaW5jaWRlbnRpYWxseSBhZGRlZCBkdXJpbmcgdGhlIHJlZmFjdG9yaW5nIGluCgkgIDJmZTM5MzljZTdlYTg0YzQ1ZGQ5MjJlN2YxMDk3ZGQwN2YxMWZjNWQuCgoyMDE1LTA5LTMwIDE3OjI5OjE2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBjb250cm9scG9pbnQ6IGNoYW5nZSB0aGUgcGFkZGluZyB0byBiZSBvZiBhcmNoLWluZGVwZW5kZW50IHNpemUKCSAgVGhlIGRlZmF1bHQgcGFkZGluZyBJIGludHJvZHVjZWQgaW4gZDRmODFmYjRlNjJkMzRhNGMxZGFiYzY1YjIzZWRlN2NlNzY5NGM2MyBpcwoJICBhY3R1YWxseSBvbmx5IDQgcG9pbnRlcnMgYW5kIG9uIDMyYml0IHBsYXRmb3JtcyBhbHJlYWR5IHNtYWxsZXIgdGhhbiB0aGUgdW5pb24uCgkgIFJlcGxhY2UgaXQgd2l0aCBhIGZpeGVkIDY0Ynl0ZSBwYWRkaW5nLiBEb24ndCBhZGQgdGhlIG5vcm1hbCBwYWRkaW5nIGZvciBub3cuCgkgIEZpeGVzICM3NTU4MjIKCjIwMTUtMDgtMjEgMTc6NDI6NTIgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0cmVhbWVyLXVuaW5zdGFsbGVkOiBhZGQgcGF0aCBmb3IgT3BlbkNWIGhhYXIgY2FzY2FkZSBmaWxlcwoJICBTb21lIE9wZW5DViBwbHVnaW5zIHVzZSBoYWFyIGNhc2NhZGUgZmlsZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlCgkgIEdTdHJlYW1lciBzb3VyY2VzLiBUbyBiZSBhYmxlIHRvIHVzZSB0aGVzZSBmcm9tIHVuaW5zdGFsbGVkLCB0aGV5IG5lZWQKCSAgdG8gYmUgZm91bmQgdGhyb3VnaCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCSAgQWRkaW5nIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgcG9pbnRpbmcgdG8gaGFhciBjYXNjYWRlIGZpbGVzIHRvCgkgIGdzdC11bmluc3RhbGxlZC4KCjIwMTUtMDktMjggMTY6MDE6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZml4ICdmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsJyB3YXJuaW5nIHdpdGggY2xhbmcKCSAgQnJva2UgdGhpcyB3aGVuIEkgcmVtb3ZlZCB0aGUgR19HTlVDX1BSSU5URiBpbiBhIHByZXZpb3VzCgkgIGNvbW1pdCB0byBmaXggaW5kZW50YXRpb24sIHNpbmNlIGl0IHdhcyBub3QgcmVhbGx5IG5lZWRlZC4KCSAgVHVybnMgb3V0IHVubGlrZSBnY2MgY2xhbmcgd2FybnMgdGhvdWdoIGlmIGEgbm9uLWxpdGVyYWwKCSAgZm9ybWF0IHN0cmluZyBpcyBwYXNzZWQgdGhlbi4gRml4IGluZGVudGF0aW9uIGRpZmZlcmVudGx5LgoJICBodHRwOi8vY2xhbmcubGx2bS5vcmcvZG9jcy9BdHRyaWJ1dGVSZWZlcmVuY2UuaHRtbCNmb3JtYXQtZ251LWZvcm1hdAoKMjAxNS0wOS0yOCAxNjo0NTo0NyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGZpeCB0aGUgbWFudWFsIHRlc3RzIGJ5IHNldHRpbmcgdGhlIHJpZ2h0IGVudi12YXJzCgoyMDE1LTA5LTI4IDE2OjIyOjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJICBkaXJlY3Rjb250cm9sYmluZGluZzogZml4IGZvcm1hdHRpbmcKCjIwMTUtMDktMjggMTY6MjE6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkgIGluZGV4OiBtYXJrIHR3byBzdHJ1Y3RzIHRoYXQgZG9uJ3QgaGF2ZSBhYmkgcGFkZGluZwoKMjAxNS0wOS0yOCAxNjoxOTo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgY29udHJvbGxlcjogYWRkIHRoZSBtaXNzaW5nIGFiaSBwYWRkaW5nCgkgIFdoaWxlIHRoaXMgdGVjaG5pY2FsbHkgaXMgYW4gYWJpIGJyZWFrLCB3ZSBkZWNpZGVkIHRvIGRvIHRoaXM6CgkgIDEpIHRoZSBzdHJ1Y3QgaXMgZG9jdW1lbnRlZCB0byBiZSBpbnRlcm5hbAoJICAyKSB0aGUgc3RydWN0IGlzIGFsbG9jZWQgYW5kIGZyZWVkIGluc2lkZSB0aGUgbGlicmFyeQoJICAzKSB0aGVyZSBhcmUgbm8gcHVibGljIG1ldGhvZHMgdGhhdCByZWNlaXZlIG9yIHJldHVybiBpbnN0YW5jZXMKCSAgNCkgdGhlIG9ubHkgY29kZSBrbm93biB0byB1c2UgdGhpcyBzdHJ1Y3QgYXJlIGNsYXNzZXMgY29udGFpbmQgaGVyZQoKMjAxNS0wOS0yNCAwMDowNDo0OCArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYmluOiBpbXBsZW1lbnQgY29udGV4dCBwcm9wYWdhdGlvbiB3aGVuIGFkZGluZyBlbGVtZW50cwoJICBXaGVuIGFkZGluZyBhbiBlbGVtZW50IHRvIGEgYmluIHdlIG5lZWQgdG8gcHJvcGFnYXRlIHRoZSBHc3RDb250ZXh0J3MKCSAgdG8vZnJvbSB0aGUgZWxlbWVudC4KCSAgVGhpcyBtb3ZlcyB0aGUgR3N0Q29udGV4dCBsaXN0IGZyb20gR3N0QmluIHRvIEdzdEVsZW1lbnQgYW5kIGFkZHMKCSAgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGdldCB0aGUgY3VycmVudGx5IHNldCBsaXN0IG9mIEdzdENvbnRleHQncy4KCSAgVGhpcyBkb2VzIG5vdCBkZWFsIHdpdGggdGhlIGNvbGxlY3Rpb24gb2YgR3N0Q29udGV4dCdzIHByb3BhZ2F0ZWQKCSAgdXNpbmcgR1NUX0NPTlRFWFRfUVVFUlkuICBFbGVtZW50IHN1YmNsYXNzZXMgYXJlIGFkdmlzZWQgdG8gY2FsbAoJICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCBpZiB0aGV5IG5lZWQgdG8gcHJvcGFnYXRlIEdzdENvbnRleHQncwoJICByZWNlaXZlZCBmcm9tIHRoZSBjb250ZXh0IHF1ZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTc5CgoyMDE1LTA5LTA3IDA5OjM5OjMyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGFkZCBjdWJpY19tb25vIGludGVycG9sYXRpb24KCSAgVGhpcyBuZXcgbW9kZSB3b24ndCBvdmVyc2hvb3QgdGhlIG1pbi9tYXggeSB2YWx1ZXMgc2V0IGJ5IHRoZSBjb250cm9sLXBvaW50cy4KCSAgRml4ZXMgIzc1NDY3OAoJICBBUEk6IEdTVF9JTlRFUlBPTEFUSU9OX01PREVfQ1VCSUNfTU9OTwoKMjAxNS0wOS0wNyAwOTozNzowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IHJlZmFjdG9yIGNvZGUKCSAgRXh0cmFjdCBjb21tb24gY29kZSB0aGF0IGxvb2tzIHVwIHRoZSBjb250cm9sLXBvaW50cyBhcm91bmQgdGhlIHRpbWVzdGFtcC4gQWRkCgkgIHNvbWUgY29tbWVudHMgZm9yIGZ1dHVyZSBpbnZlc3RpZ2F0aW9uLgoKMjAxNS0wOS0wNCAxNjozODozNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2xsZXItZ3JhcGguYzoKCSAgdGVzdHMvZXhhbXBsZXM6IGFkZCBhIGRlbW8gZm9yIHRoZSBpbnRlcnBvbGF0aW9uIGNvbnRyb2wgc291cmNlIG1vZGVzCgkgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIG5ldyBtb2RlcyB0byBiZSBhZGRlZC4gSW4gcGFydGljdWxsYXIgaXQgZGVtb25zdHJhdGVzCgkgIGhvdyB0aGUgY3ViaWMgc3BsaW5lcyBvdmVyc2hvb3QgdGhlIHJhbmdlLgoKMjAxNS0wOS0wOSAxMTo1NToyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IHJlbW92ZSBwcm94eWluZyBvZiBhY2NlcHQtY2FwcyBkb3duc3RyZWFtCgkgIFRoZSBkZXNpZ24gaXMgdG8gb25seSBkbyBhIGxvY2FsIGNoZWNrCgoyMDE1LTA4LTI1IDE5OjM3OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgZmFsbGJhY2sgdG8gY2FwcyBxdWVyaWVzIHdpdGggcHJveHkgcGFkcwoJICBBIHByb3h5LXBhZCBzaG91bGQgYWx3YXlzIHByb3h5IHRoZSBjYXBzIHJlbGF0ZWQgcXVlcmllcwoJICBhbmQgZXZlbnRzIHRvIGl0cyBkb3duIG9yIHVwc3RyZWFtIHBlZXJzIG9uIHRoZSBvdGhlciBzaWRlCgkgIG9mIHRoZSBlbGVtZW50LiBGYWxsaW5nIGJhY2sgdG8gYSBjYXBzIHF1ZXJ5IHNlZW1zIHdyb25nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTA5LTI2IDExOjAzOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtaW5vciBkb2MgZml4ZXMKCjIwMTUtMDktMDIgMTc6NTg6MzggKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogUmVwbGFjZWQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24gd2l0aCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3J1bm5pbmdfdGltZQoJICBnc3Rfc2VnbWVudF90b19wb3NpdGlvbiBtaWdodCBjYXVzZSBjb25mdXNpb24sIGVzcGVjaWFsbHkgd2l0aCB0aGUgYWRkaXRpb24gb2YKCSAgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSAuIERlcHJlY2F0ZWQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24KCSAgbm93LCBhbmQgcmVwbGFjZWQgaXQgd2l0aCBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3J1bm5pbmdfdGltZS4KCSAgQWxzbyBhZGRlZCB1bml0IHRlc3RzLgoKMjAxNS0wOS0wMiAxNzozODoyNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBBZGRlZCB1bml0IHRlc3RzIGZvciBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lCgoyMDE1LTA5LTI1IDE1OjU3OjE2ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lOiBSZW5hbWVkICdyZXN1bHQnIHRvICdzdHJlYW1fdGltZScKCSAgUmVuYW1lZCB0aGUgInJlc3VsdCIgdmFyaWFibGUgdG8gInN0cmVhbV90aW1lIiBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAxNS0wOS0yNSAxNTo1Njo0NSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogQWRkZWQgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZSgpCgkgIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUoKSB3aWxsIGNvbnZlcnQgc3RyZWFtIHRpbWUgaW50byBhCgkgIHBvc2l0aW9uIGluIHRoZSBzZWdtZW50IHNvIHRoYXQgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUoKSB3aXRoIHRoYXQKCSAgcG9zaXRpb24gcmV0dXJucyB0aGUgc2FtZSBzdHJlYW0gdGltZS4gSXQgd2lsbCByZXR1cm4gLTEgaWYgdGhlIHN0cmVhbSB0aW1lCgkgIGdpdmVuIGlzIG5vdCBpbnNpZGUgdGhlIHNlZ21lbnQuCgoyMDE1LTA5LTAyIDE2OjM2OjM1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogUmV3b3JkaW5nIG9mIHN0cnVjdCBmaWVsZCBkZXNjcmlwdGlvbnMKCSAgVGhlIG5ldyB3b3JkaW5nIG1ha2VzIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCBlYWNoIGZpZWxkIG9mIHRoZQoJICBHc3RTZWdtZW50IHN0cnVjdCByZXByZXNlbnRzLgoKMjAxNS0wOC0zMSAxNTozNToxMSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogTWFrZSBzdXJlIHRoYXQgdGltZXN0YW1wICsgZGlmZiBpbiBRb1MgZXZlbnRzIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiAwCgkgIFdoZW4gYSBydW5uaW5nLXRpbWUtb2Zmc2V0IGlzIHN0b3JlZCBpbiB0aGUgZXZlbnQsIGl0IGNvdWxkIGJlY29tZSBzbWFsbGVyCgkgIHRoYW4gMCBhbHRob3VnaCB0aGUgZXZlbnQgaXMgb3RoZXJ3aXNlIGNvcnJlY3QuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHBhZAoJICBvZmZzZXRzIGFyZSB1c2VkLgoJICBUbyBwcmV2ZW50IHRoaXMsIHdlIHNldCB0aGUgdGltZXN0YW1wIHRvIC1kaWZmLCBzbyB0aGF0IGluIHRoZSBlbmQgdGhlIHN1bSBvZgoJICBib3RoIGlzIGV4YWN0bHkgMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDM1NgoKMjAxNS0wOS0xNiAyMzo0MDo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgdGVzdCBmb3IgY29ycmVjdCBhYnNvbHV0ZSBVUkkgaGFuZGxpbmcgaW4gZ3N0X3VyaV9mcm9tX3N0cmluZ193aXRoX2Jhc2UoKQoJICBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyBhbiBhYnNvbHV0ZSBVUkksIHRoZSBiYXNlIHNob3VsZCBoYXZlIG5vIGVmZmVjdCBhbmQKCSAgdGhlIHNlY29uZCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJldHVybmVkIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MTM0CgoyMDE1LTA5LTI1IDIzOjUxOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjYuMCA9PT0KCjIwMTUtMDktMjUgMjM6MTQ6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS42LjAKCjIwMTUtMDktMjUgMjI6NDE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA5LTI1IDEwOjE4OjA3ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBGaXggZXJyb3IgbGVhayBkdXJpbmcgZmFpbHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTYwNwoKMjAxNS0wOS0yMSAxMzo1ODo1MSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggcmFjeSBzdGF0ZSBjaGFuZ2UKCSAgSXRlcmF0b3IgbWF5IG5lZWQgdG8gYmUgcmVzeW5jZWQsIGZvciBpbnN0YW5jZSBpZiBwYWRzIGFyZSByZWxlYXNlZAoJICBkdXJpbmcgc3RhdGUgY2hhbmdlLgoJICBnb3RfZW9zIHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgdGhlIG9iamVjdCBsb2NrIG9mIHRoZSBlbGVtZW50LCBub3Qgb2YKCSAgdGhlIHBhZCwgYXMgaXMgdGhlIGNhc2UgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGUgZnVubmVsIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUzNDMKCjIwMTUtMDktMjEgMTU6MjI6MTkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBiaW46IGVsZW1lbnQ6IElnbm9yZSBhY3RpdmF0ZSByZXN1bHQgZm9yIHJlbW92ZWQgcGFkcyBvbiBzdGF0ZSBjaGFuZ2UKCSAgVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUgYSBzdGF0ZSBjaGFuZ2UgbWF5IHJldHVybiBmYWlsdXJlIGlmIGl0IGhhcwoJICByZXF1ZXN0IHBhZHMgdGhhdCBhcmUgZGVhY3RpdmF0ZWQgYW5kIHJlbW92ZWQgKGFuZCB0aHVzIGhhdmUgbm8KCSAgcGFyZW50KSBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBlbGVtZW50IGNoYW5nZXMgc3RhdGUgYW5kIChkZSlhY3RpdmF0ZXMKCSAgaXRzIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUzNDIKCjIwMTUtMDktMjQgMTA6MjM6MTQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IGNyYXNoIHdoZW4gYWRkaW5nIGEgc2luay1oYXJuZXNzIHdpdGhvdXQgaC0+c2lua3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NTExCgoyMDE1LTA5LTIzIDIwOjMxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByaW50IGJ1ZmZlciBQVFMgd2hlbiBzdWJtaXR0aW5nIGFuIGlucHV0IGJ1ZmZlcgoKMjAxNS0wOS0yMSAxNDo1ODo0NiArMDkwMCAgRXVuaGFlIENob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggYnVmZmVyIGxlYWsgaW4gc3luY19zdHJlYW1zICYgY2FjaGVfYnVmZmVycyBtb2RlCgkgIEFmdGVyIGRvaW5nIGdzdF9wYWRfcHVzaCgpIGluIGNhc2Ugb2Ygc3luY19zdHJlYW1zIGFuZCBjYWNoZV9idWZmZXJzLAoJICBpZiB0aGUgYnVmZmVyIGNhbiBub3QgYmUga2VwdCBpbiBjYWNoZSwgaXQgc2hvdWxkIGJlIHVucmVmZmVkIHRvIGF2b2lkCgkgIG1lbW9yeSBsZWFja2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTE0MQoKMjAxNS0wOS0xOSAxNjo1NzoyNiArMDUzMCAgVmlrcmFtIEZ1Z3JvIDx2aWtyYW0uZnVncm9AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBnc3Q6IERvY3VtZW50YXRpb24gdHlwbyBmaXggaW4gY2FwcyAmIHBhZCBBUElzCgkgIGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKSAmIEdTVF9QQURfSVNfQUNDRVBUX0lOVEVSU0VDVCgpCgkgIGRvY3VtZW50YXRpb24gdHlwbyBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUyNTcKCj09PSByZWxlYXNlIDEuNS45MSA9PT0KCjIwMTUtMDktMTggMTk6MDc6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjkxCgoyMDE1LTA5LTE4IDE5OjA3OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOS0xOCAxMTo0OTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wOS0xNSAxMDo1Njo0MCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgZG93bmxvYWRidWZmZXIsIGJlbmNobWFya3M6IGZpeCBlcnJvciBsZWFrcyBpbiBmYWlsdXJlIGNvZGUgcGF0aHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTAxOQoKMjAxNS0wOS0xNSAxMDo1Mjo1NSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggaW5kZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTAxOQoKMjAxNS0wOS0xNSAxODowNToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHNwcmlua2xlIHNvbWUgYWxsb3ctbm9uZSBhbmQgb3V0IGFubm90YXRpb25zIGZvciBnLWkKCjIwMTUtMDktMTQgMTE6MDE6MTEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHR5cG8gaW4gbG9nIG1lc3NhZ2Ugd2hlbiB0aHJlYWRwb29sIGFsbG9jIGZhaWxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ5NzUKCjIwMTUtMDktMTEgMTc6NTg6NDggKzAzMDAgIElnb3IgUm9uZGFyZXYgPGlnb3Iucm9uZGFyZXZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogQ2hlY2sgZm9yIHNvY2tldHBhaXIoKSBpbiAtbHNvY2tldCB0b28KCSAgT24gZS5nLiBRTlggaXQgaXMgaW4gYW4gZXh0ZXJuYWwgbGlicmFyeSwgbm90IGxpYmMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ4NzUKCjIwMTUtMDktMDkgMTM6MTA6MDQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmV2ZXJ0ICJkb2NzOiBNYWtlIHN1cmUgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIGlzIGRvY3VtZW50ZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGRmZmViMDMwMThkMTJiZTUyMmMyZDk3YWFhZjgxMDIxNTNiZDdjMC4KCSAgVGhlIGNvbW1pdCBpcyBlcnJvbmVvdXMgYW5kIGRvY3VtZW50cyB0aGUgZnVuY3Rpb24gdHdpY2UuCgoyMDE1LTA3LTIzIDEyOjE4OjUxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IE1ha2Ugc3VyZSBnc3RfZGVidWdfYmluX3RvX2RvdF9kYXRhKCkgaXMgZG9jdW1lbnRlZAoJICBUaGFua3MgdG8gTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPiBmb3IgcG9pbnRpbmcgdGhpcwoJICBvdXQuCgoyMDE1LTA4LTA1IDEwOjA3OjUwICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZpeCByYWNlIGZvciBnc3RfaGFybmVzc19lbGVtZW50X3JlZgoJICBJbiBvcmRlciBmb3IgZ3N0X2hhcm5lc3NfbmV3X2Z1bGwgdG8gYmUgTVQtc2FmZSB0aGUgaW5jcmVhc2UgYW5kCgkgIGRlY3JlYXNlIG9mIEhBUk5FU1NfUkVGIG11c3QgYmUgTVQtc2FmZS4gVGhpcyBhbGxvd3MgZm9yIGNyZWF0aW5nCgkgIG11bHRpcGxlIGhhcm5lc3NlcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzIHdyYXBwaW5nIHRoZSBzYW1lIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ2NjEKCjIwMTUtMDgtMDUgMDk6NTk6MzkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBBbGxvdy1ub25lIGZvciBjdXN0b20gc3RyZXNzIGluaXQgZnVuYwoJICBJdCBzaG91bGQgYmUgYWxsb3dlZCB0byBub3QgaGF2ZSBhIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIHVzZXIgZGF0YQoJICBzaW5jZSBpdCdzIG9mdGVuIG5vdCBuZWNlc3Nhcnk7IGl0IG1heSBhbHJlYWR5IGJlIGluaXRpYWxpemVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NjYxCgoyMDE1LTA5LTA2IDA5OjU4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkgIGRvY3M6IHJlbW92ZSBzaWduYWwgdGhhdCBubyBsb25nZXIgZXhpc3RzIGZyb20gZG9jcwoKMjAxNS0wOS0wNSAxMToyMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIHRyYW5zbGF0ZWQgc3RyaW5nIGNoYW5nZXMKCjIwMTUtMDktMDUgMTE6MTg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBmaXggLS1leGNsdWRlIGNvbW1hbmQgbGluZSBvcHRpb24KCSAgVGhpcyBoYXMgbm90IHdvcmtlZCAoYXMgaW46IGNyYXNoZWQpIHNpbmNlIDIwMDUsIHNvCgkgIHBlcmhhcHMgaXQgc2hvdWxkIGp1c3QgYmUgcmVtb3ZlZCBpbnN0ZWFkLgoKMjAxNS0wOC0zMSAxMjowNzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIFJldmVydCAicXVldWUyOiBQcm9jZXNzIFNFRUtJTkcgcXVlcnkiCgkgIFRoaXMgY2F1c2VkIHByb2JsZW1zIHdpdGggb2dnZGVtdXggd2hlbiBxdWV1ZTIgd2FzCgkgIG9wZXJhdGluZyBpbiBxdWV1ZSBtb2RlIGFuZCB0aGUgc291cGh0dHBzcmMgdXBzdHJlYW0KCSAgaXMgbm90IHNlZWthYmxlIGJlY2F1c2UgdGhlIHNlcnZlciBkb2Vzbid0IHN1cHBvcnQKCSAgcmFuZ2UgcmVxdWVzdHMuIEl0IHdvdWxkIHRoZW4gc3RpbGwgY2xhaW0gc2Vla2FiaWxpdHkKCSAgYW5kIHRoZW4gdGhpbmdzIGdvIHdyb25nIGZyb20gdGhlcmUuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2IwYjkzZGFmZTRhYzU0NzU1MmNkYjY2YWRlNWQ4YWEwNDA1ZTdiNC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg4NwoKMjAxNS0wOC0yOSAyMDoxNDo0NCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBtaXNjIGJ1Z2ZpeGVzCgkgIDEuIEdldCBhIGxpc3Qgb2YgcGFkIHRlbXBsYXRlcyBmcm9tIHRoZSBlbGVtZW50IGNsYXNzLCBub3QgdGhlCgkgIGZhY3RvcnkuIFRoaXMgYWxsb3dzIHVzIHRvIGludGVyYWN0IHdpdGggdGVzdC1lbGVtZW50cyB0aGF0IGRvZXMKCSAgbm90IGhhdmUgYSBmYWN0b3J5LgoJICAyLiBVc2UgdGhlIHBhZF90ZW1wbGF0ZV9jYXBzIGluIGNhcHMtcXVlcmllcyB3aGVuIGNhcHMgaXMgbm90IHNldAoJICBleHBsaWNpdGx5IG9uIHRoZSBwYWQuIE5vdCBkb2luZyBzbyBpcyBzaW1wbHkgd3JvbmcsIGFuZCBwcm9oaWJpdHMKCSAgaW50ZXJhY3Rpb25zIHdpdGggc3BlY2lhbCB0ZW1wbGF0ZXMgdXNlZCBmb3IgdGVzdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDE5MwoKMjAxNS0wOC0yNiAwOToyOTowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHRlc3RzOiBldmVudDogZml4IGJ1aWxkIGZhaWx1cmUKCSAgZ3N0L2dzdGV2ZW50LmM6MjUwOjU6IGVycm9yOiDigJhmb3LigJkgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9ucyBhcmUgb25seQoJICBhbGxvd2VkIGluIEM5OSBvciBDMTEgbW9kZQoKMjAxNS0wOC0yNCAyMTowNDozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgd2UgZG9uJ3QgYWRkL3JlbW92ZSBhIGJpbiB0by9mcm9tIGl0c2VsZgoJICBEb2luZyBzbyB3b3VsZCBkZWFkbG9jayBmcm9tIHRyeWluZyB0byBhY3F1aXJlIHRoZSBvYmplY3QgbG9jayB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MDM2CgoyMDE1LTA4LTIxIDE0OjI4OjQ4IC0wNzAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUmVjb25maWd1cmUgYmVmb3JlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBUaGVyZSBleGlzdCBjYXNlcyB3aGVyZSBhIHJlY29uZmlndXJlIGV2ZW50IHdhcyBwcm9wYWdhdGVkIGZyb20KCSAgZG93bnN0cmVhbSwgYnV0IGNhcHMgZGlkbid0IGNoYW5nZS4gSW4gdGhpcyBjYXNlLCB3ZSB3b3VsZAoJICByZWNvbmZpZ3VyZSBvbmx5IHdoZW4gdGhlIG5leHQgYnVmZmVyIGFycml2ZXMuIFRoZSBwcm9ibGVtIGlzIHRoYXQKCSAgZHVlIHRvIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJlaW5nIGNhY2hlZCwgdGhlIHJldHVybiBxdWVyeSBwYXJhbWV0ZXJzCgkgIGVuZHVwIG91dGRhdGVkLgoJICBJbiB0aGlzIHBhdGNoIHdlIHJlZmFjdG9yIHRoZSByZWNvbmZpZ3VyYXRpbmcgY29kZSBpbnRvIGEgZnVuY3Rpb24sIGFuZAoJICBhbG9uZyB3aXRoIHJlY29uZmlndXJpbmcgd2hlbiBhIG5ldyBidWZmZXIgY29tZXMgaW4sIHdlIGFsc28gcmVjb25maWd1cmUKCSAgd2hlbiBhIHF1ZXJ5IGFsbG9jYXRpb24gYXJyaXZlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg1MAoKMjAxNS0wOC0wNyAxNTozOTo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmMtdGVzdDogRml4IHJhY2UgdGVzdGluZyBzZWdtZW50IHVwZGF0ZQoJICBBcyB0aGlzIHRlc3QgaXMgdXNpbmcgYSBzaG9ydCBzbGVlcCAoR1NUX1VTRUNPTkQsIHdoaWNoIGlzIDEwbXMKCSAgaW4gbWljcm9zZWNvbmQpLCBzb21ldGltZXMgdGhhdCBFT1MgZXZlbnQgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZQoJICBsb29wIGluIGJhc2VzcmMgaGF2ZSBydW4gX2RvX3NlZWsoKSBhbmQgcHVzaGVkIHRoZSB1cGRhdGUgc2VnbWVudC4KCSAgVG8gc29sdmUgdGhpcyBpc3N1ZSwgd2Ugd2FpdCBmb3IgdGhlIGluaXRpYWwgc2VnbWVudCAoYW5kIGZsdXNoIGl0KQoJICB0aGVuIHdlIHdhaXQgZm9yIHRoZSBzZWNvbmQgc2VnbWVudCBiZWZvcmUgc2VuZGluZyBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMzNjUKCjIwMTUtMDgtMTkgMTE6NDY6MDcgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBiaW46IEFkZCBOTEUgdG8gR1NUX1BMVUdJTl9QQVRICgo9PT0gcmVsZWFzZSAxLjUuOTAgPT09CgoyMDE1LTA4LTE5IDEyOjUwOjU2ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS45MAoKMjAxNS0wOC0xOSAxMjozMzo0MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDgtMTkgMTE6MTc6MjkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDgtMTggMTU6NDQ6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHRhZyBsaXN0IHNwYW0gaWYgdXBzdHJlYW0gcHJvdmlkZXMgYml0cmF0ZSB0YWdzIGFscmVhZHkKCSAgRXhwbGljaXRseSBrZWVwIHRyYWNrIGFnYWluIHdoZXRoZXIgdXBzdHJlYW0gdGFncyBvciBwYXJzZXIgdGFncwoJICBhbHJlYWR5IGNvbnRhaW4gYml0cmF0ZSBpbmZvcm1hdGlvbiwgYW5kIG9ubHkgZm9yY2UgYSB0YWcgdXBkYXRlCgkgIGZvciBhIGJpdHJhdGUgaWYgd2UgYXJlIGFjdHVhbGx5IGdvaW5nIHRvIGFkZCB0aGUgYml0cmF0ZSB0byB0aGUKCSAgdGFnbGlzdCBsYXRlci4gVGhpcyBmaXhlcyBjb25zdGFudCByZS1zZW5kaW5nIG9mIHRoZSBzYW1lIHRhZ2xpc3QsCgkgIGJlY2F1c2UgdXBzdHJlYW0gcHJvdmlkZWQgYSBiaXRyYXRlIGFscmVhZHkgYW5kIHdlIGRpZG4ndCBhZGQgaXQsCgkgIHNvIHdlIGRpZG4ndCBzYXZlIHRoZSAncG9zdGVkJyBiaXRyYXRlLCB3aGljaCB3b3VsZCB0aGVuIGluIHR1cm4KCSAgYWdhaW4gdHJpZ2dlciB0aGUgJ2JpdHJhdGUgaGFzIGNoYW5nZWQgdG9vIG11Y2gsIHVwZGF0ZSB0YWdzJwoJICBjb2RlIHBhdGguIEZpeGVzIHRhZyBzcGFtIHdpdGggbTRhIGZpbGVzIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE3IDIyOjA2OjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYnJpbmcgdGhlIGRvdCBzdHlsZSBhIGJpdCBjbG9zZXIgdG8gd2hhdCB3ZSB1c2UgaW4gdGhlIGRvY3MKCSAgVXNlIHJvdW5kIGNvcm5lcnMgZm9yIGJpbnMgYW5kIGVsZW1lbnRzLiBQdXQgc2luayBwYWRzIG9uIHRoZSBsZWZ0IGFuZCBzcmMgcGFkcwoJICBvbiB0aGUgcmlnaHQgb2YgZWxlbWVudHMuCgoyMDE1LTA4LTE1IDE4OjMwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdGFnIGhhbmRsaW5nCgkgIEluIDAuMTAgdGhlcmUgd2VyZSBubyBzdGlja3kgZXZlbnRzLCBhbmQgYWxsIHRhZyBldmVudHMKCSAgc2VudCB3b3VsZCBqdXN0IGJlIG1lcmdlZCB3aXRoIHRoZSBwcmV2aW91c2x5LXJlY2VpdmVkCgkgIHRhZ3MuIEluIDEueCB3ZSBoYXZlIHN0aWNreSBldmVudHMsIGFuZCB0aGUgdGFncyBpbiB0aGUKCSAgdGFnIGV2ZW50KHMpIHNob3VsZCBhdCBhbGwgdGltZXMgY2FycnkgdGhlIGNvbXBsZXRlIHRhZ3MsCgkgIHNvIHdlIGNhbid0IGp1c3QgcHVzaCBzb21lIHRhZ3MgYW5kIHRoZW4ganVzdCBwdXNoIHRhZ3MKCSAgd2l0aCBqdXN0IGJpdHJhdGVzIHRvIHVwZGF0ZSB0aGUgYml0cmF0ZXMsIGV0Yy4KCSAgSW5zdGVhZCB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHVwc3RyZWFtIHN0cmVhbSB0YWdzCgkgIHJlY2VpdmVkLCBvZiB0aGUgdGFncyBzZXQgYnkgdGhlIHZpZGVvIGRlY29kZXIgc3ViY2xhc3MsCgkgIGFuZCBzZW5kIGFuIHVwZGF0ZWQgdGFnIGV2ZW50IHdpdGggdGhlIGNvbWJpbmVkIHRhZ3MKCSAgaW5jbHVkaW5nIG91ciBvd24gYml0cmF0ZSB0YWdzIChpZiBhcHBsaWNhYmxlKSB3aGVuZXZlcgoJICB0aGUgdXBzdHJlYW0gdGFncywgdGhlIHN1YmNsYXNzIHRhZ3Mgb3IgYW55IG9mIG91ciBiaXRyYXRlcwoJICBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTYgMTA6MTU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogYWRkIEFQSSBmb3Igc3ViY2xhc3MgdG8gc2V0IHRhZ3MKCSAgVGhpcyBpcyBuZWVkZWQgc28gdGhhdCB3ZSBjYW4gZG8gcHJvcGVyIHRhZyBoYW5kbGluZwoJICBhbGwgYXJvdW5kLCBhbmQgY29tYmluZSB0aGUgdXBzdHJlYW0gdGFncyB3aXRoIHRoZQoJICB0YWdzIHNldCBieSB0aGUgc3ViY2xhc3MgYW5kIGFueSBleHRyYSB0YWdzIHRoZQoJICBiYXNlIGNsYXNzIG1heSB3YW50IHRvIGFkZC4KCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9tZXJnZV90YWdzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNSAxNjowMToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2F2ZSB1cHN0cmVhbSBzdHJlYW0gdGFncwoJICBXZSdsbCBuZWVkIHRob3NlIGxhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE1IDE2OjM5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciBjb2RlIHNpbXBsaWZpY2F0aW9uCgkgIFVzZSBnc3RfcGFkX3BlZXJfcXVlcnlfZHVyYXRpb24oKSBhbmQgcmVtb3ZlIGEgZmV3CgkgIHVubmVjZXNzYXJ5IGxldmVscyBvZiBpbmRlbnRhdGlvbi4gUmVzdCBvZiBjb2RlIG1pZ2h0CgkgIGxvb2tzIGEgYml0IHF1ZXN0aW9uYWJsZSwgYnV0IGxlYXZlIGl0IGFzIGlzIGZvciBub3cuCgoyMDE1LTA4LTE1IDE3OjU5OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEJyZWFrIHN0aWNreSBldmVudCBhcnJheSBpdGVyYXRpb25zIGlmIHRoZSB0eXBlIGlzIGJpZ2dlciB0aGFuIHRoZSBvbmUgd2UgbG9vayBmb3IKCSAgTWljcm9vcHRpbWl6YXRpb24gd2UgY2FuIGRvIGJlY2F1c2UgdGhlIGFycmF5IGlzIHNvcnRlZCBieSB0eXBlLgoKMjAxNS0wNC0yOSAxNTo0OToxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQWRkIGEgbmV3IEdTVF9QUk9CRV9IQU5ETEVEIHJldHVybiB2YWx1ZSBmb3IgcHJvYmVzCgkgIEluIHNvbWUgY2FzZXMsIHByb2JlcyBtaWdodCB3YW50IHRvIGhhbmRsZSB0aGUgYnVmZmVyL2V2ZW50L3F1ZXJ5CgkgIHRoZW1zZWx2ZXMgYW5kIHN0b3AgdGhlIGRhdGEgZnJvbSB0cmF2ZWxsaW5nIGZ1cnRoZXIgZG93bnN0cmVhbS4KCSAgV2hpbGUgdGhpcyB3YXMgc29tZXdoYXQgcG9zc2libGUgd2l0aCBidWZmZXIvZXZlbnRzIGFuZCB1c2luZwoJICBHU1RfUFJPQkVfRFJPUCwgaXQgd2FzIG5vdCBhcHBsaWNhYmxlIHRvIHF1ZXJpZXMsIGFuZCB3b3VsZCByZXN1bHQKCSAgaW4gdGhlIHF1ZXJ5IGZhaWxpbmcuCgkgIFdpdGggdGhpcyBuZXcgR1NUX1BST0JFX0hBTkRMRUQgdmFsdWUsIHRoZSBidWZmZXIvZXZlbnQvcXVlcnkgd2lsbAoJICBiZSBjb25zaWRlcmVkIGFzIHN1Y2Nlc3NmdWxseSBoYW5kbGVkLCB3aWxsIG5vdCBiZSBwdXNoZWQgZnVydGhlcgoJICBhbmQgdGhlIGFwcHJvcHJpYXRlIHJldHVybiB2YWx1ZSAoVFJVRSBvciBHU1RfRkxPV19PSykgd2lsbCBiZSByZXR1cm5lZAoJICBUaGlzIGFsc28gYWxsb3dzIHByb2JlcyB0byByZXR1cm4gYSBub24tZGVmYXVsdCBHc3RGbG93UmV0dXJuIHdoZW4gZGVhbGluZwoJICB3aXRoIGJ1ZmZlciBwdXNoLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHNldHRpbmcgdGhlCgkgIEdTVF9QQURfUFJPQkVfSU5GT19GTE9XX1JFVFVSTigpIGZpZWxkIGFjY29yZGluZ2x5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2NDMKCjIwMTUtMDgtMTUgMTM6MjU6MzUgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGdzdHZlcnNpb246IEFkZCBtaXNzaW5nIGluY2x1ZGUgaW4gLmluIGZpbGUuCgoyMDE1LTA4LTExIDAwOjM1OjIxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGVsZW1lbnRtZXRhZGF0YS5oOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgSGVhZGVyczogYWRkIG1pc3NpbmcgaW5jbHVkZXMuCgoyMDE1LTA4LTE1IDA2OjQxOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgdGhlIG5ldyBwYWQgYWNjZXB0LXRlbXBsYXRlIGZsYWcgdG8gdGhlIGRvY3MKCjIwMTUtMDgtMTQgMjI6NDQ6NTAgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHNlY3Rpb24gZW50cnkgbWlzc2luZyBmb3IgZ3N0X2RpcmVjdF9jb250cm9sX2JpbmRpbmdfbmV3X2Fic29sdXRlCgoyMDE1LTA4LTE0IDA4OjE0OjUyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IHRlc3RzIGZvciBhY2NlcHQtY2FwcyBkZWZhdWx0IGhhbmRsaW5nCgkgIENoZWNrIGlmIGFsbCB0aGUgZGVmYXVsdCA0IGFjY2VwdC1jYXBzIHBvc3NpYmlsaXRpZXMgYXJlIHdvcmtpbmc6CgkgIHN1YnNldCBvciBpbnRlcnNlY3QgY2hlY2sgYW5kIHF1ZXJ5LWNhcHMgb3IgdGVtcGxhdGUgY2FwcyBjb21wYXJpc29ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzYyMwoKMjAxNS0wOC0xNCAwNzo1MTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEdTVF9QQURfRkxBR19BQ0NFUFRfVEVNUExBVEUKCSAgSXQgd2lsbCBtYWtlIHRoZSBkZWZhdWx0IGFjY2VwdC1jYXBzIGhhbmRsZXIgdXNlIHRoZSBwYWQgdGVtcGxhdGUKCSAgY2FwcyBpbnN0ZWFkIG9mIHRoZSBxdWVyeS1jYXBzIHJlc3VsdCB0byBjaGVjayBpZiB0aGUgY2FwcyBpcwoJICBhY2NlcHRhYmxlLiBUaGlzIGlzIGFsaWduZWQgd2l0aCB3aGF0IHRoZSBkZXNpZ24gZG9jcyBzYXlzIHRoZQoJICBhY2NlcHQtY2FwcyBzaG91bGQgZG8gKGJlIG5vbi1yZWN1cnNpdmUpIGFuZCBzaG91bGQgYmUgZmFzdGVyLiBJdAoJICBpcyAqbm90KiBlbmFibGVkIGJ5IGRlZmF1bHQsIHRob3VnaC4KCSAgQVBJOiBHU1RfUEFEX0ZMQUdfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9JU19BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX1NFVF9BQ0NFUFRfVEVNUExBVEUKCSAgQVBJOiBHU1RfUEFEX1VOU0VUX0FDQ0VQVF9URU1QTEFURQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNjIzCgoyMDE1LTA4LTE0IDExOjEwOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgY2hlY2s6IFJlbmFtZSBzdGF0ZXMgdW5pdCB0ZXN0CgkgIE1ha2VzIGl0IGVhc2llciB0byBkaWZmZXJlbnRpYXRlIGZyb20gb3RoZXIgbW9kdWxlcyBzdGF0ZXMgdW5pdCB0ZXN0CgoyMDE1LTA4LTEzIDEzOjA4OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmV3b3JrIGFjY2VwdC1jYXBzCgkgIEFjY29yZGluZyB0byB0aGUgZGVzaWduIGRvY3M6CgkgIFRoZSBBQ0NFUFRfQ0FQUyBxdWVyeSBpcyBub3QgcmVxdWlyZWQgdG8gd29yayByZWN1cnNpdmVseSwgaXQgY2FuIHNpbXBseQoJICByZXR1cm4gVFJVRSBpZiBhIHN1YnNlcXVlbnQgQ0FQUyBldmVudCB3aXRoIHRob3NlIGNhcHMgd291bGQgcmV0dXJuCgkgIHN1Y2Nlc3MuCgkgIFNvIG1ha2UgaXQgYSBzaGFsbG93IGNoZWNrIGluc3RlYWQgb2YgcmVjdXJzaXZlbGx5IGNoZWNrIGRvd25zdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2MzUKCjIwMTUtMDgtMTMgMTI6NDQ6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSBkZWFkIGNvZGUKCSAgRG9lc24ndCBzZWVtIGxpa2UgaXQgaXMgZ29pbmcgdG8gZ2V0IGJhY2sgdG8gbGlmZSBhbnl0aW1lIHNvb24KCSAgQWxzbyByZW1vdmVzIGEge30gYmxvY2sgdGhhdCB3YXMgbGlrZWx5IHVzZWQgdG8ga2VlcCB0aGUgZGVhZAoJICBjb2RlIGFyb3VuZC4KCjIwMTUtMDgtMTEgMDg6MDc6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZXNwZWN0IGFjY2VwdC1jYXBzIGludGVyc2VjdCBmbGFnCgkgIEdzdFBhZCBoYXMgYSBmbGFnIGZvciBzdWdnZXN0aW5nIGlmIHRoZSBhY2NlcHQtY2FwcwoJICBxdWVyeSBzaG91bGQgdXNlIGludGVyc2VjdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CgkgIHN1YnNldCBjYXBzIG9wZXJhdGlvbiB0byB2ZXJpZnkgaWYgdGhlIGNhcHMgd291bGQgYmUKCSAgYWNjZXB0YWJsZS4KCSAgYmFzZXRyYW5zZm9ybSBjdXJyZW50bHkgYWx3YXlzIHVzZXMgdGhlIHN1YnNldCBjaGVjayBhbmQKCSAgdGhpcyBwYXRjaCBtYWtlcyBpdCBob25vciB0aGUgZmxhZyBmb3IgdXNpbmcgaW50ZXJzZWN0CgkgIGlmIGl0IGlzIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODYzNQoKMjAxNS0wOC0xMiAxMzoxMjozOCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgdW5yZWFjaGFibGUgcmV0dXJuIHN0YXRlbWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNTM4CgoyMDE1LTA4LTExIDExOjA5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBoYXJuZXNzIHRlc3QgYmluYXJ5CgoyMDE1LTA4LTEwIDE1OjMxOjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGFjY2VwdCBqdXN0IGEgdGltZSBhcyBJU08gODYwMSBzdHJpbmcgYW5kIHVzZSB0b2RheSdzIGRhdGUgdGhlbgoJICBJZiBubyBkYXRlIGFuZCBvbmx5IGEgdGltZSBpcyBnaXZlbiBpbiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2lzbzg2MDFfc3RyaW5nKCksCgkgIGFzc3VtZSB0aGF0IGl0IGlzICJ0b2RheSIgYW5kIHRyeSB0byBwYXJzZSB0aGUgdGltZS1vbmx5IHN0cmluZy4gIlRvZGF5IiBpcwoJICBhc3N1bWVkIHRvIGJlIGluIHRoZSB0aW1lem9uZSBwcm92aWRlZCBieSB0aGUgdXNlciAoaWYgYW55KSwgb3RoZXJ3aXNlIFogLQoJICBqdXN0IGxpa2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBleGlzdGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzNDU1CgoyMDE1LTA3LTI0IDAwOjQxOjU3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogYWRkIF9zZXRfZm9yd2FyZGluZyBmdW5jdGlvbgoJICBUbyBiZSBhYmxlIHRvIGRpc2FibGUgdGhlIHNsaWdodGx5ICJtYWdpYyIgZm9yd2FyZGluZyBvZiB0aGUKCSAgbmVjZXNzYXJ5IGV2ZW50cyBiZXR3ZWVuIHRoZSBoYXJuZXNzZXMuCgkgIEFsc28gaW50cm9kdWNlIGEgbmV3IHRlc3Qtc3VpdGUgZm9yIEdzdEhhcm5lc3MsIHRoYXQgZG9jdW1lbnRzIHRoZQoJICBmZWF0dXJlLCBhbmQgc2hvdWxkIGhvcGVmdWxseSBleHBhbmQgaW50byBkb2N1bWVudGluZyBtb3N0IG9mIHRoZQoJICBmZWF0dXJlcyB0aGUgaGFybmVzcyBwb3NzZXNzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI3NDYKCjIwMTUtMDgtMDggMTc6NTk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZml4IHByb3ZpZGVyIGxlYWsKCjIwMTUtMDgtMDggMTU6Mjg6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHByZXZpb3VzIGNvbW1pdAoJICBXZSB3YW50IHRvIGdldCB0aGUgY2FwcyBxdWVyeSAqcmVzdWx0KgoKMjAxNS0wNy0xNiAxODo1NjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vwcm92aWRlcjogQWRkIG1ldGhvZCB0byBoaWRlIGRldmljZXMgZnJvbSBhIHByb3ZpZGVyCgkgIEFkZCBtZXRob2RzIHRvIGFkZC9yZW1vdmUgdGhlIHByb3ZpZGVycyB0aGF0IHNob3VsZCBiZSBoaWRkZW4gYnkgdGhpcwoJICBwcm92aWRlci4gQWxzbyBtYWtlIGEgbWV0aG9kIHRvIGdldCBhIGxpc3Qgb2YgaGlkZGVuIHByb3ZpZGVycy4KCSAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIHN5c3RlbXMgbW9uaXRvciB0aGUgc2FtZSBkZXZpY2VzCgkgIGFuZCByZW1vdmUgZHVwbGljYXRlcy4KCSAgQWRkIGEgcHJvcGVydHkgdG8gc2VlIGFsbCBkZXZpY2VzLCBldmVuIGR1cGxpY2F0ZSBvbmVzIGZyb20gaGlkZGVuCgkgIHByb3ZpZGVycy4KCjIwMTUtMDgtMDggMTQ6NDI6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZ2V0X2FsbG93ZWRfY2FwcygpIHNob3VsZCBnbyB0aHJvdWdoIGJvdGggcGFkcwoJICBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gd2FzIGRvaW5nIGEgZGlyZWN0IGNhbGwgdG8gdGhlIHBlZXIgcGFkLAoJICB3aGljaCByZXN1bHRlZCBpbiBxdWVyeSBwcm9iZXMgbmV2ZXIgYmVpbmcgY2FsbGVkIG9uIHRoZSBvcmlnaW5hbCBwYWQuCgkgIEluc3RlYWQgb2YgdGhhdCwgZ2V0IHRoZSBwZWVyIHBhZCBjYXBzIGJ5IHVzaW5nIGdzdF9wYWRfcGVlcl9xdWVyeSgpCgkgIHdoaWNoIHdpbGwgY2FsbCBwcm9iZXMgaW4gdGhlIGV4cGVjdGVkIGZhc2hpb24uCgoyMDE1LTA4LTA3IDEwOjA4OjIxICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmcmVlIGNhcHMgZHVyaW5nIGZhaWx1cmUKCSAgV2hpbGUgY2FsbGluZyBnc3RfdmFsdWVfZGVzZXJpYWxpemVfc2FtcGxlLCBpZiB0aGVyZSBpcyBhIGZhaWx1cmUKCSAgYWZ0ZXIgY2FwcyBpcyByZWYnZWQsIHRoZW4gY2FwcyBpcyBnZXR0aW5nIGxlYWtlZC4gSGVuY2UgY2hlY2tpbmcgZm9yCgkgIGNhcHMgaW4gZmFpbDogZ290byBjb25kaXRpb24gYW5kIHVucmVmJ2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMzM4CgoyMDE1LTA3LTIxIDEzOjM1OjMzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEFkZCBwbHVnaW5zIHRvIHRoZSByZWdpc3RyeSB3ZSBhcmUgbG9hZGluZyBhbmQgbm90IGRlZmF1bHQgb25lCgkgIFdoZW4gcnVubmluZyBnc3RfcmVnaXN0cnlfc2Nhbl9wbHVnaW5fZmlsZSB3ZSB3ZXJlIGxvc2luZyB0aGUKCSAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlZ2lzdHJ5IGJlaW5nIGxvYWRlZCBhbmQgZW5kZWQgdXAgYWRkaW5nIHRoZQoJICBwbHVnaW4gdG8gdGhlIGRlZmF1bHQgcmVnaXN0cnkgd2hpY2ggd2FzIG5vdCBjb3JyZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjYyCgoyMDE1LTA4LTA1IDE1OjUxOjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IGRyb3AgYnVmZmVyIGlmIHRoZWlyIFBUUyBpcyBvdXQgb2Ygc2VnbWVudAoJICBBcyBvZiBub3csIGV2ZW4gZm9yIHN0cmVhbSBjb21wbGV0bHkgaW5zaWRlIHNlZ21lbnQsIHRoZXJlIGlzIG5vCgkgIGd1YXJhbnRpZWQgdGhhdCB0aGUgRFRTIHdpbGwgYmUgaW5zaWRlIHRoZSBzZWdtZW50LiBTcGVjaWZpY2FsbHkKCSAgZm9yIEguMjY0IHdpdGggQi1GcmFtZXMsIHRoZSBmaXJzdCBmZXcgZnJhbWVzIG9mdGVuIGhhdmUgRFRTIHRoYXQKCSAgYXJlIGJlZm9yZSB0aGUgc2VnbWVudC4KCSAgSW5zdGVhZCBvZiB1c2luZyB0aGUgc3luYyB0aW1lc3RhbXAgdG8gY2xpcCBvdXQgb2Ygc2VnbWVudCBidWZmZXIsCgkgIHRha2UgdGhlIGR1cmF0aW9uIGZyb20gdGhlIHN0YXJ0L3N0b3AgcHJvdmlkZWQgYnkgdGhlIHN1Yi1jbGFzcywgYW5kCgkgIGNoZWNrIGlmIHRoZSBwdHMgYW5kIHB0c19lbmQgaXMgb3V0IG9mIHNlZ21lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI3OTEKCjIwMTUtMDgtMDUgMTQ6MDU6MjUgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGRvbid0IHJ1biBjb2RlIGluc2lkZSBnX2Fzc2VydAoJICBFdmVuIHRob3VnaCBhc3NlcnRzIGNhbid0IGJlIGRpc2FibGVkIGluIEdzdEhhcm5lc3MsIENvdmVyaXR5IHN0aWxsCgkgIGNvbXBsYWlucyBhYm91dCBydW5uaW5nIGNvZGUgaW5zaWRlIHRoZW0uIE1vdmluZyB0aGUgY29kZSB0byBvdXRzaWRlIHRoZQoJICBnX2Fzc2VydHMoKS4KCSAgQ0lEICMxMzExMzI2LCAjMTMxMTMyNywgIzEzMTEzMjgKCjIwMTUtMDctMTcgMTA6MTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZW1vbml0b3I6IGdldCBhIGxpc3Qgb2YgY3VycmVudGx5IG1vbml0b3JlZCBwcm92aWRlcnMKCSAgR2V0IGEgbGlzdCBvZiB0aGUgY3VycmVudGx5IG1vbml0b3JlZCBwcm92aWRlcnMuCgoyMDE1LTA4LTAyIDE3OjM4OjE0ICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBpbnZhbGlkIHVucmVmIGFmdGVyIElETEUgcHJvYmUgb24gbm9uLU9LIGZsb3cgcmV0dXJuCgkgIEluIGNhc2UgdGhlcmUgaXMgYW4gSURMRSBwcm9iZSBmaXJlZCBmcm9tIGdzdF9wYWRfcHVzaF9kYXRhIGFuZCBpdAoJICBkb2Vzbid0IHJldHVybiBHU1RfRkxPV19PSywgdGhlIGNvZGUganVtcHMgdG8gdGhlIHByb2JlX3N0b3BwZWQKCSAgbGFiZWwgd2hpY2ggdHJpZXMgdG8gdW5yZWYgdGhlIGRhdGEgb2JqZWN0LiBIb3dldmVyLCBhdCB0aGlzIHBvaW50CgkgIHRoZSBkYXRhIG9iamVjdCBiZWxvbmdzIGRvd25zdHJlYW0gYW5kIG11c3Qgbm90IGJlIHRvdWNoZWQuCgkgIEJ5IHNldHRpbmcgZGF0YSA9IE5VTEwsIHRoZSBjb2RlIHNraXBzIHRoaXMgdW5yZWYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMTUxCgoyMDE1LTA4LTA0IDIwOjA4OjA0ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggdGhlIG5hbWUgb2YgdGhlIHBhcmVudGJ1ZmZlcm1ldGEgZGVidWcgY2F0ZWdvcnkuCgkgIERvbid0IHVzZSAnZ2xidWZmZXJyZWZtZXRhJyBhcyB0aGUgZGVidWcgY2F0ZWdvcnkgZm9yIHRoZQoJICBwYXJlbnQgYnVmZmVyIG1ldGEuCgoyMDE1LTA4LTA0IDEzOjQ1OjA5ICswOTAwICBFdW5oYWUgQ2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBub3QgdXBkYXRlIHVwc3RyZWFtIHNpemUgd2l0aCBuZWdhdGl2ZSB2YWx1ZQoJICB1cHN0cmVhbV9zaXplIGNhbiBiZSBuZWdhdGl2ZSBidXQgcXVldWUtPnVwc3RyZWFtX3NpemUgaXMgdW5zaWduZWQgdHlwZS4KCSAgdG8gZ2V0IGEgY2hhbmNlIHRvIHVwZGF0ZSBxdWV1ZS0+dXBzdHJlYW1fc2l6ZSBpbiBnc3RfcXVldWUyX2dldF9yYW5nZSgpCgkgIGl0IHNob3VsZCBrZWVwIHRoZSBkZWZhdWx0IHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDExCgoyMDE1LTA4LTA0IDE5OjU5OjI4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogUmVtb3ZlIGV4dHJhIGRlYnVnIHN5bWJvbCBmcm9tIGV4cG9ydHMKCSAgRG9uJ3QgZXhwb3J0IHRoZSBkZWJ1ZyB2YXJpYWJsZSBmb3IgdGhlIHBhcmVudF9idWZmZXJfbWV0YS4KCSAgVGhpcyB3YXMgYWNjaWRlbnRhbGx5IGV4cG9ydGVkIGFuZCBzaG91bGRuJ3QgYmUgcHVibGljCgoyMDE1LTA4LTA0IDAwOjExOjI0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogdXNlIEdTVF9JTkZPX09CSkVDVCBmb3IgbW9yZSBkZXRhaWwKCSAgSGVscHMgdG8gZGlzdGlndWlzaCBtdWx0aXBsZSBmaWxlc2lua3MuCgoyMDE1LTA3LTMwIDE3OjI5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogaW5mbzogcmVtb3ZlIDAuOCB0ZXJtaW5vbG9neSBmcm9tIGxvZyBsZXZlbCBkZXNjcmlwdGlvbgoJICBXZSBkb24ndCAiaXRlcmF0ZSIgYmlucyBvciBwaXBlbGluZXMgYW55IG1vcmUuCgoyMDE1LTA3LTMwIDEyOjE3OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogZml4IGJ1ZmZlciBsZWFrIGluIHVuaXQgdGVzdAoJICBGaXhlcyBtYWtlIGNoZWNrLXZhbGdyaW5kCgoyMDE1LTA3LTI4IDIxOjE0OjIyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIGRvYy9zZWVrZmxhZ3M6IEZpeCBjcm9zcyByZWZlcmVuY2VzCgkgIFRoaXMgZml4ZXMgbWlzcy11c2Ugb2YgQCBpbnN0ZWFkIG9mICUgdG8gcmVmZXIgdG8gZW51bWVyYXRpb24KCSAgdmFsdWVzLgoKMjAxNS0wNy0yOCAyMjozMDo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBhIGZldyBtb3JlIG5ldyBzeW1ib2xzIGFuZCBkZWZpbmVzCgoyMDE1LTA3LTI4IDE2OjU3OjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBkb2MvY2Fwc2ZpbHRlcjogRG9jdW1lbnQgZmlsdGVyaW5nIG1vZGVzCgkgIFRoaXMgaXMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEhUTUwgZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTY6NTA6NTUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGRvYy9maWxlc2luazogQWRkIEJ1ZmZlck1vZGUgZW51bWVyYXRpb24KCSAgVGhpcyBpcyBwdXJlbHkgZm9yIGRvY3VtZW50YXRpb24gcHVycG9zZS4gVGhpcyB3YXkgdGhlIHZhbHVlcyB3aWxsCgkgIHNob3cgdXAgaW4gdGhlIEhUTUwgZG9jdW1lbnRhdGlvbi4KCjIwMTUtMDctMjggMTU6NTA6NDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBkb2MvZ3N0aGFyZG5lc3M6IEZpeCB0eXBvIGluIEdzdEFsbG9jYXRpb25QYXJhbXMKCSAgSXQncyBub3QgR3N0QWxsb2NhdG9yUGFyYW1zIGJ1dCBHc3RBbGxvY2F0aW9uUGFyYW1zLgoKMjAxNS0wNy0yOCAxNTo0NjowOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGRvYy9nc3RoYXJuZXNzOiBSZW1vdmUgdW5rbm93biBwYXJhbWV0ZXIKCSAgc2lua19lbGVubWVudF9uYW1lIGlzIG5vdCBhIHBhcmFtZXRlciBvZiBnc3RfaGFybmVzc19hZGRfc2lua19oYXJuZXNzKCkKCSAgZnVuY3Rpb24sIGJ1dCBzdGlsbCBpdCBzaG93IHVwIGluIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDEyOjE5OjA0ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJICBjYXBzZmlsdGVyOiBPbmx5IHJlbWVtYmVyIHByZXZpb3VzIGZpbHRlciBjYXBzIGlmIHRoZXkgd2VyZSBhY3R1YWxseSB1c2VkIGZvciBzb21ldGhpbmcKCSAgSWYgbm9ib2R5IGV2ZXIgc2F3IHRoZSBwcmV2aW91cyBmaWx0ZXIgY2Fwcywgbm90aGluZyBjb3VsZCd2ZSBuZWdvdGlhdGVkIHdpdGgKCSAgdGhlbSBhbmQgd2UgY2FuIGp1c3QgcHJldGVuZCB0aGV5IG5ldmVyIGV4aXN0ZWQgYXQgYWxsLgoKMjAxNS0wNy0yOCAxMjoxNjoxMiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBXaGVuIHN3aXRjaGluZyBjYXBzIGNoYW5nZSBtb2RlcywgZm9yZ2V0IGFsbCBwcmV2aW91cyBjYXBzCgoyMDE1LTA3LTIzIDE4OjE1OjA1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldHVybiBGTE9XX0ZMVVNISU5HIGlmIG5lZ290aWF0aW9uIGZhaWxzIGR1cmluZyBzaHV0ZG93bgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyODAwCgoyMDE1LTA3LTIyIDE4OjU1OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggaW5kZW5kYXRpb24KCjIwMTUtMDctMjEgMTM6MTQ6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBdm9pZCBpbmNyZWFzaW5nIHF1ZXJ5IHJlZmVyZW5jZQoJICBnc3RfcXVlcnlfZmluZF9hbGxvY2F0aW9uX21ldGEoKSByZXF1aXJlcyB0aGUgcXVlcnkgdG8gYmUKCSAgd3JpdGFibGUgdG8gd29yay4gVGhpcyBwYXRjaCBlbnN1cmUgYXZvaWRzIHRha2luZyBhIHJlZmVyZW5jZQoJICBvbiB0aGUgcXVlcnksIHNvIHdlIGNhbiBub3cgY2hlY2sgaWYgYSBjZXJ0YWluIGFsbG9jYXRpb24gbWV0YQoJICBpcyBwcmVzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjYxCgoyMDE1LTA3LTIyIDE1OjM4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBmaXggZGVzY3JpcHRpb24gb2YgZ3N0X2J1ZmZlcl9leHRyYWN0X2R1cCgpCgkgIE5vIEdCeXRlcyBpbnZvbHZlZC4KCjIwMTUtMDctMjEgMDA6MTc6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogZG90IG5vdCByZXNldCBwYWQgc3RhdGVzIHRvbyBlYXJseQoJICBSZXNldHRpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9mIHRoZSBwYWRzIGF0IHRoZSBlbmQgb2YgdGhlCgkgIFBBVVNFRF9UT19SRUFEWSB0cmFuc2l0aW9uIHdpbGwgbWFrZSBwYWRzIGhhbmRsZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMgYWdhaW4gd2hpY2ggd2lsbCB3YWl0IGZvciBub24tYWN0aXZlIHBhZHMgYW5kIG1pZ2h0CgkgIGNhdXNlIGRlYWRsb2NrcyB3aGVuIHN0b3BwaW5nIHRoZSBwaXBlbGluZS4KCSAgTW92ZSB0aGUgcmVzZXQgdG8gdGhlIFJFQURZX1RPX1BBVVNFRCBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNjIzCgoyMDE1LTA3LTIwIDE2OjE4OjA2ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGhhcm5lc3M6IGFkZCBmdW5jdGlvbnMgZm9yIGFkZGluZyBzdWItaGFybmVzc2VzIGRpcmVjdGx5CgkgIEJ5IGludHJvZHVjaW5nIGdzdF9oYXJuZXNzX2FkZF9zcmNfaGFybmVzcyBhbmQgZ3N0X2hhcm5lc3NfYWRkX3NpbmtfaGFybmVzcwoJICB3ZSBjb2xsZWN0IGFsbCBzdWItaGFybmVzcyBzZXR1cCBpbiBvbmUgZnVuY3Rpb24sIG1ha2luZyB0aGUgcHJldmlvdXMKCSAgc3ViLWhhcm5lc3MgY3JlYXRpb24gZnVuY3Rpb25zIG5vdyBjYWxscyB0aGVzZSBkaXJlY3RseSwgYW5kIG1ha2luZyBpdAoJICBtdWNoIGVhc2llciAoYW5kIGxlc3MgZXJyb3ItcHJvbmUpIHRvIGFkZCB5b3VyIG93biBzcmMgb3Igc2luay1oYXJuZXNzCgkgIHVzaW5nIHRoZSBtb3JlIGdlbmVyaWMgaGFybmVzcy1jcmVhdGlvbiBmdW5jdGlvbnMuCgoyMDE1LTA3LTE3IDE3OjQ0OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IG92ZXJyaWRlIGdzdF9zZWdtZW50X2RvX3NlZWsoKQoJICBUaGlzIGxpbmUgaGFzIG5vIHB1cnBvc2UsIGNsZWFybHkgZ3N0X3NlZ21lbnRfZG9fc2VlaygpIGlzIGRvaW5nCgkgIHRoZSByaWdodCBqb2IsIGFsc28sIGhhdmluZyB0aGUgc3RhcnQgdGltZSAoYSB0aW1lc3RhbXApIGJlIHRoYXQKCSAgc2FtZSBhcyB0aW1lICh0aGUgc3RyZWFtIHRpbWUpIGlzIHF1aXRlIG9kZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0xNyAxNzo0MzoyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZXh0cmFwb2xhdGlvbiBvZiBzZWVrc2VnbWVudC5zdG9wCgkgIFRoZSBzdG9wIHNoYWxsIGJlIHJlbGF0aXZlIHRvIHN0YXJ0IGlmIGV4dHJhcG9sYXRlZCBmcm9tIHRoZQoJICBkdXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0xNiAxODo0NzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBkbyBzdGFydCBhbmQgc3RvcCBvdXRzaWRlIG9mIHRoZSBsb2NrCgkgIFJlbGVhc2UgdGhlIG1vbml0b3IgbG9jayB3aGVuIGNhbGxpbmcgdGhlIHByb3ZpZGVyIHN0YXJ0L3N0b3AgbWV0aG9kcy4KCSAgQmVjYXVzZSB3ZSByZWxlYXNlIHRoZSBsb2NrIG5vdywgV2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgY2hlY2sgdGhlCgkgIGNvb2tpZSBhZ2FpbiBhbmQga2VlcCB0cmFjayBvZiBzdGFydGVkIGFuZCByZW1vdmVkIHByb3ZpZGVycy4KCjIwMTUtMDctMTYgMTg6NDM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJICBkZXZpY2Vwcm92aWRlcjogc21hbGwgY2xlYW51cHMKCSAgUHJvdGVjdCBhZ2FpbnN0IHdyb25nIGFyZ3VtZW50cy4KCSAgQ2xlYW4gdXAgdGhlIGhlYWRlciBmaWxlIGluZGVudGF0aW9uLgoKMjAxNS0wNy0xNiAxNzoyNToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBrZWVwIG9yZGVyIG9mIHByb3ZpZGVycyBhbmQgZGV2aWNlcwoJICBUaGUgZGV2aWNlcHJvdmlkZXJzIGFyZSBhZGRlZCB0byB0aGUgYXJyYXkgc29ydGVkIGJ5IHRoZWlyIHJhbmsuIE1ha2UKCSAgc3VyZSB3ZSBrZWVwIHRoaXMgb3JkZXJpbmcgd2hlbiByZW1vdmluZyBhIHByb3ZpZGVyLgoJICBXZSB1c2UgX3ByZXBlbmQgdG8gY29sbGVjdCB0aGUgZGV2aWNlcywgdXNlIGdfbGlzdF9yZXZlcnNlIHRvIGdldCB0aGUKCSAgZGV2aWNlcyBpbiB0aGUgcmlnaHQgb3JkZXI7IHNvcnRlZCBieSByYW5rIGFuZCBpbiB0aGUgc2FtZSBvcmRlciBhcwoJICByZXR1cm5lZCBieSB0aGUgcHJvdmlkZXIuCgoyMDE1LTA3LTE2IDE3OjUwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggaW5kZW50YXRpb24KCjIwMTUtMDctMTYgMTc6NTA6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBwYWQgdGVtcGxhdGUgbGVhawoKMjAxNS0wNy0xNiAxNzoxMzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZG9jczogZHJvcCByZWZlcmVuY2UgdG8gc291cmNlZm9yZ2UgbWFpbGluZyBsaXN0IGFkcmVzcwoKMjAxNS0wNy0xNiAxNzo1Mzo0MCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCByZS1lc3RhYmxpc2ggdGhlIGhhcm5lc3Mgc2luayBhbmQgc3JjIHBhZHMKCSAgR2l2ZW4gdGhhdCB0aGUgZWxlbWVudCBoYXMgdGhlIHBvc3NpYmlsaXR5IHRvIGhhdmUgb25lLCB0aGV5IHNob3VsZAoJICBhbHJlYWR5IGJlIHRoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDk4CgoyMDE1LTA3LTEzIDExOjAzOjEzICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBJbXByb3ZlIGRldGVjdGlvbiBvZiBlbGVtZW50IHR5cGUKCSAgVGhlIGVsZW1lbnQgZmxhZyBkb2VzIG5vdCBpbmRpY2F0ZSB3ZXRoZXIgYSBiaW4gc2hvdWxkIGJlIHRlc3RlZCBhcyBhCgkgIHNvdXJjZSBvciBhcyBhIHNpbmssIGVnLiBhIGJpbiB3aXRoIHRoZSBzaW5rIGZsYWcgbWF5IHN0aWxsIGhhdmUgYQoJICBzb3VyY2UgcGFkIGFuZCBhIGJpbiB3aXRoIHRoZSBzb3VyY2UgZmxhZyBtYXkgaGF2ZSBhIHNpbmsgcGFkLiBJbiB0aGlzCgkgIGNhc2UgaXQgaXMgYmV0dGVyIHRvIGRldGVybWluZSB0aGUgZWxlbWVudCB0eXBlIGJ5IGxvb2tpbmcgYXQgdGhlCgkgIGF2YWlsYWJsZSBwYWRzIGFuZCBwYWQgdGVtcGxhdGVzLgoJICBBbHNvIHJlbmFtZSBzcmNwYWQgYW5kIHNpbmtwYWQgd2hlcmUgaXQgYWN0dWFsbHkgcmVwcmVzZW50cwoJICBlbGVtZW50X3NyY3BhZF9uYW1lIGFuZCBlbGVtZW50X3NpbmtwYWRfbmFtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5MwoKMjAxNS0wNy0xMyAxMToxMDo0OSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBzaW5rIGhhcm5lc3MKCSAgRml4ZXMgaXNzdWUgd2hlcmUgaWYgYSBzaW5rIGhhcm5lc3Mgd2FzIGFkZGVkIGxhdGUgdGhlIHN0aWNreSBldmVudHMKCSAgd291bGQgbm90IGJlIGZvcndhcmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDk0CgoyMDE1LTA3LTE2IDEyOjM2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBtYWtlIGhlYWRlciBuaWNlciB0byByZWFkCgoyMDE1LTA3LTE2IDEwOjM2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBmdW5jdGlvbiB0byBBUEkgZG9jcwoKMjAxNS0wNy0xNSAxODoyMToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZTogYWRkIGdlbmVyaWMgc3RydWN0IHdpdGggcHJvcGVydGllcwoJICBBZGQgYSBnZW5lcmljIHN0cnVjdHVyZSB0byBob2xkIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgYWJvdXQgdGhlCgkgIGRldmljZS4KCjIwMTUtMDctMTQgMTI6NDQ6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGZpeCB0eXBvIGluIGFsbG93LW5vdC1saW5rZWQgcHJvcGVydHkgZGVzY3JpcHRpb24KCjIwMTUtMDctMTMgMTQ6MjQ6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGJ1czogbWVudGlvbiBtYWluIGxvb3AgcmVxdWlyZW1lbnQgaW4gZ3N0X2J1c19hZGRfd2F0Y2goKSBkb2NzCgoyMDE1LTAzLTE4IDE2OjA1OjM0ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIGZ1bmN0aW9uIGd1YXJkIGZvciBfc2V0X2xvY2soKSBhbmQgZml4IGd1YXJkIGZvciBfam9pbigpCgkgIFNob3VsZCBvbmx5IGFjY2VzcyB0aGUgb2JqZWN0IHN0cnVjdHVyZSBhZnRlciBjaGVja2luZwoJICBpdCdzIHZhbGlkIGluIGdzdF90YXNrX2pvaW4oKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjM4NQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDMxCgoyMDE1LTA1LTE5IDE4OjU4OjExICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgcHJvdGVjdGlvbjogaW1wbGVtZW50IG1ldGEgdHJhbnNmb3JtIGZ1bmN0aW9uCgkgIENvcHkgdGhlIEdzdE1ldGEgY29udGVudHMgb3ZlciB0byB0aGUgbmV3IGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTU5MAoKMjAxNS0wNy0xMCAwOToxMjoxNSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZXN0aW1hdGUgZHVyYXRpb24gb24gRU9TCgkgIEZvciBmaWxlcyB3aGljaCBhcmUgc21hbGxlciB0aGFuIDEuNSBzZWNvbmRzLCB0aGUgZHVyYXRpb24KCSAgZXN0aW1hdGlvbiBkb2VzIG5vdCBoYXBwZW4uIFNvIHRoZSBkdXJhdGlvbiB3aWxsIGFsd2F5cyBiZQoJICBkaXNwbGF5ZWQgYXMgMC4gVXBkYXRpbmcgdGhlIGR1cmF0aW9uIG9uIEVPUyB3aGVuIHRoZSBlc3RpbWF0aW9uCgkgIGhhcyBub3QgaGFwcGVuZWQgYWxyZWFkeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTMxCgoyMDE1LTA3LTEwIDExOjAxOjIxICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBjaGFuZ2UgbG9nIG1lc3NhZ2UgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjExNgoKMjAxNS0wNy0wOSAwMDoxMjo1MSArMDkwMCAgSnVzdGluIEpveSA8anVzdGluLmpveS45dG81QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguaDoKCSAgZG9jczogYWRkIFN0cmVhbWlkRGVtdXggdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5ODczCgoyMDE1LTA3LTA5IDAwOjIxOjQyICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggdG8gZ2V0IHZhbGlkIChidWZmZXJfKWxpc3QKCSAgZ2V0X2xpc3QvZ2V0X2J1ZmZlcl9saXN0IHNob3VsZCBiZSBkb25lIHdpdGggYnVmZmVycyBpbiBhZGFwdGVyIHJlbWFpbmluZwoJICB3aGlsZSB0YWtlX2xpc3QvdGFrZV9idWZmZXJfbGlzdCBmbHVzaGVzIGVhY2ggYnVmZmVyIG9uZSBieSBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxMTYKCjIwMTUtMDctMDggMjA6MDY6MjcgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVuaXQgdGVzdCBmb3IgbmV3IGdldF8oYnVmZmVyXylsaXN0CgoyMDE1LTA3LTA4IDEyOjAwOjU2ICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHV0IGJ1ZmZlciBpbiBhIGNvcnJlY3Qgc3RhdGUgYWZ0ZXIgZ3N0X2FkYXB0ZXJfZ2V0X2J1ZmZlciBjYWxsCgkgIFdlIG11c3QgbWFrZSB0aGUgYnVmZmVyIHdyaXRhYmxlIHRvIHdyaXRlIGl0cyBQVFMgYW5kIERUUywgYW5kIGFsc28KCSAgcmVzZXQgaXRzIGR1cmF0aW9uLgoJICBUaGUgYmVoYXZpb3VyIGlzIG5vdyB0aGUgc2FtZSBhcyBiZWZvcmUgY29tbWl0IGMzYmNiYWRkLCBleGNlcHQgbWV0YXMKCSAgbWlnaHQgc3RpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIGJ1ZmZlciBleHRyYWN0ZWQgZnJvbSB0aGUgYWRhcHRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjA5MgoKMjAxNS0wNy0wNyAxNTowMjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGluZGVudGF0aW9uIGFuZCByZXBsYWNlIHN0cmVzcyB0ZXN0IGZ1bmN0aW9uIG1hY3JvcwoJICBUaGVzZSBzY3JldyB3aXRoIGluZGVudGF0aW9uIGFuZCBzZWVtIGEgYml0IHRyaXZpYWwuIEp1c3QgY29weSduJ3Bhc3RlLgoKMjAxNS0wNy0wNyAxMDo0Njo0OCArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IHRyYW5zZm9ybV9mdW5jOiByZXR1cm4gRkFMU0UgaWYgbm90IHN1cHBvcnRlZCBvciBmYWlsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTc3OAoKMjAxNS0wNy0wNyAxMTo1MzowNyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmVmYWN0b3IgYW5kIGFkZCB0ZXN0cyB1c2luZyBHc3RIYXJuZXNzCgkgIFdyaXRpbmcgYSB0ZXN0IGZvciB1bnNjaGVkdWxpbmcgdGhlIGdzdF9jbG9ja19pZF93YWl0IGluc2lkZSB0aGUKCSAgaWRlbnRpdHkgZWxlbWVudCwgZm91bmQgYW4gaW52YWxpZCByZWFkLCBjYXVzZWQgYnkgcmVtb3ZpbmcgdGhlIGNsb2NrLWlkCgkgIHdoZW4gY2FsbGluZyBfdW5zY2hlZHVsZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGNvZGUgY2FsbGluZyBfd2FpdCByZW1vdmUKCSAgdGhlIGNsb2NrLWlkIGFmdGVyIGJlaW5nIHVuc2NoZWR1bGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMDU1CgoyMDE0LTA0LTEyIDE5OjQ4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWFrZSBzdXJlIGdfYXNzZXJ0KCkgc3RhdGVtZW50cyBhcmUgYWx3YXlzIGFjdGl2ZQoJICBXZSBoYXZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgaW5zaWRlIGdfYXNzZXJ0KClzLCBzbyBtYWtlCgkgIHN1cmUgdGhvc2UgYXJlIGFsd2F5cyBlbmFibGVkIGhlcmUgKHRoZXkgbWlnaHQgb3RoZXJ3aXNlCgkgIGdldCBkaXNhYmxlZCBmb3IgcmVsZWFzZSBidWlsZHMpLgoKMjAxNS0wNy0wNyAwMDo1Njo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiByZW5hbWUgR3N0SGFybmVzc1ByZXBhcmVCdWZmZXIgLT4gR3N0SGFybmVzc1ByZXBhcmVCdWZmZXJGdW5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTUtMDctMDcgMDA6NTM6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgZG9jczogYWRkIEdzdEhhcm5lc3MgdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDEzLTEyLTE2IDEwOjQ3OjQ3ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGNoZWNrOiBBZGQgR3N0SGFybmVzcyBjb252ZW5pZW5jZSBBUEkgZm9yIHVuaXQgdGVzdHMKCSAgaHR0cDovL2dzdGNvbmYudWJpY2FzdC50di92aWRlb3MvZ3N0aGFybmVzcy1hZ2Fpbi1hLWZvbGxvdy11cC8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxNS0wNy0wNiAwOToyNjo1OCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJzZSBwbGF5YmFjayBpbiBwdWxsIG1vZGUKCSAgcmlnaHQgbm93IHJldmVyc2UgcGxheWJhY2sgaXMgZGlzYWJsZWQgaW4gcHVsbCBtb2RlLgoJICBlbmFibGluZyB0aGUgY29kZSBmb3IgdGhlIHNhbWUgYW5kIGNoYW5naW5nIGEgYml0IG9mIGxvZ2ljCgkgIHRvIG1ha2UgcmV2ZXJzZSBwbGF5YmFjayB3b3JrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA2LTIwIDA4OjMzOjI2ICswOTAwICBWaW5lZXRoIFQgTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHJldmVyc2UgcGxheWJhY2sgdGVzdCBpbiBwdWxsIG1vZGUKCSAgYWRkIHRlc3QgZm9yIHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlIGFuZCBjb21wYXJlCgkgIHRoZSBidWZmZXJzIGJlaW5nIHJlY2VpdmVkIGluIHNpbmsgY2hhaW4gdG8gbWFrZSBzdXJlCgkgIHRoZSBwbGF5YmFjayBpcyBhbGxyaWdodAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgzCgoyMDE1LTA3LTA2IDE0OjMxOjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgUmV2ZXJ0ICJzY3JpcHRzOiBBbGxvdyBwYXNzaW5nIG1ha2UgZmxhZ3MgdG8gZ2l0LXVwZGF0ZS5zaCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYjVmZGQ3MjEyOWVhNjFlOGRmZjUxY2RjMGFmY2NjYWMwM2ViYzJiLgoJICBXZSBjYW4gdXNlIHRoZSBNQUtFRkxBR1MgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcGFzcyBvcHRpb25zIHRvIG1ha2UsCgkgIHNvIGF2b2lkIGFkZGluZyBhbm90aGVyIG1lY2hhbmlzbSB0aGF0IGNvdWxkIGJlIGNvbmZ1c2luZy4KCjIwMTUtMDctMDYgMTE6MTY6MjcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IENsYXJpZnkgcGFkIHByb2JlIHJldHVybiB0eXBlIGRvY3VtZW50YXRpb24KCjIwMTUtMDctMDIgMTQ6MzI6MjEgKzA4MDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBTaG91bGRuJ3QgZHJvcCBidWZmZXIgd2hlbiBzeW5jPWZhbHNlCgkgIFNob3VsZG4ndCBkcm9wIGJ1ZmZlciB3aGVuIHN5bmM9ZmFsc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTgxOQoKMjAxNS0wNy0wNiAxMToyNTo1MCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IEFsbG93IHBhc3NpbmcgbWFrZSBmbGFncyB0byBnaXQtdXBkYXRlLnNoCgkgIE1vc3RseSBhZGRpbmcgdGhpcyBmb3IgYWRkIGEgLWpOIGFzIGFwcHJvcHJpYXRlIHdoaWxlIGJ1aWxkaW5nLgoKMjAxNS0wNS0zMCAxNDoyNzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGF2b2lkIHNsaWNlIGFsbG9jcy9mcmVlcyBmb3IgZWFjaCBpdGVtCgkgIE1pY3Jvb3B0aW1pc2F0aW9uOiBMZXQgR3N0UXVldWVBcnJheSBzdG9yZSBvdXIKCSAgaXRlbSBzdHJ1Y3QuIFRoYXQgd2F5IHdlIGRvbid0IGhhdmUgdG8gYWxsb2MvZnJlZQoJICB0ZW1wb3JhcnkgUXVldWVJdGVtIHNsaWNlcyBmb3IgZXZlcnkgaXRlbSB3ZSB3YW50CgkgIHRvIHB1dCBpbnRvIHRoZSBxdWV1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE0OQoKMjAxNS0wNS0zMCAxMzowNzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBxdWV1ZWFycmF5OiBhbGxvdyBzdG9yaW5nIG9mIHN0cnVjdHMgaW4gYWRkaXRpb24gdG8gcG9pbnRlcnMKCSAgVGhpcyB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBhbGxvY2F0ZS9mcmVlIHRlbXBvcmFyeSBzdHJ1Y3RzCgkgIGZvciBzdG9yaW5nIHRoaW5ncyBpbiB0aGUgcXVldWUgYXJyYXkuCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X25ld19mb3Jfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcHVzaF90YWlsX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3BlZWtfaGVhZF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wb3BfaGVhZF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9kcm9wX3N0cnVjdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNDkKCjIwMTUtMDctMDMgMjE6NTc6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY3NGIyZGYgdG8gOWFlZDFkNwoKMjAxNS0wNi0xOSAwMDowNTo0NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBwYWQ6IEVuZm9yY2UgTkVFRF9QQVJFTlQgZmxhZyBhbHNvIGZvciBjaGFpbgoJICBUaGUgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUgcGFyZW50IGluIHRoZSBwcmVzZW5jZSBvZgoJICB0aGUgTkVFRF9QQVJFTlQgZmxhZyB3YXMgbWlzc2luZyBmb3IgdGhlIGNoYWluIGZ1bmN0aW9uLiBBbHNvIGtlZXAKCSAgYSByZWYgb24gdGhlIHBhcmVudCBpbiBjYXNlIHRoZSBwYWQgaXMgcmVtb3ZlZCBtaWQtY2hhaW4uCgoyMDE1LTA3LTAzIDE1OjU1OjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiB1cGRhdGUgZm9yIHR3byBtaXNzaW5nIGVsZW1lbnRzCgkgIENvbmNhdCB3YXMgbm90IGxpbmtlZCBhbmQgc3RyZWFtaWRkZW11eCB3YXMgbWlzc2luZy4KCjIwMTUtMDctMDMgMTI6Mzc6NTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBkb2NzOiBhbm90aGVyIHN3ZWVwIGNhbm9uaWNhbGl6aW5nIHRoZSBwbHVnaW4gZG9jcyBzZWN0aW9ucyBmaWxlCgkgIFVzZSB1bmRlcnNjb3JlcyBmb3IgY2Fwc2ZpbHRlciBtYWNyb3MuIENvcnJlY3QgdGhlIHR5cGUtbmFtZSBmb3IgZmFrZXNyYwoJICBpZiB3ZSBldmVyIGltcGxlbWVudCB0aGUgZW51bS4KCjIwMTUtMDctMDMgMTE6NDU6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBkb2NzOiBvcmRlciBhbmQgY2Fub25pY2FsaXplIHRoZSAtc2VjdGlvbnMudHh0IGZpbGUKCSAgSGF2ZSBhbGwgc2VjdGlvbnMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLiBBbHNvIG1ha2UgdGhlIG1hY3JvIG9yZGVyIGNvbnNpc3RlbnQuCgkgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgZ2VuZXJhdGluZyB0aGUgZmlsZS4gUmVtb3ZlIEdFVF9DTEFTUyBtYWNybyBmb3IKCSAgdHlwZWZpbmUgZWxlbWVudCwgc2luY2UgaXQgaXMgbm90IHVzZWQgYW5kIHRoZSBoZWFkZXIgaXMgbm90IGluc3RhbGxlZC4KCjIwMTMtMTItMTYgMTE6MjQ6MTcgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBtaXNzaW5nIGZpZWxkIGluaXRpYWxpemVycyB0byBHc3RNYXBJbmZvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE4ODEKCjIwMTUtMDctMDIgMTU6MTA6NDMgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlIGFsd2F5cy10cnVlIGNoZWNrCgkgIGV2ZW50IGNhbid0IGJlIE5VTEwsIGl0IGhhcyBiZWVuIGRlcmVmZXJlbmNlZCBieSBHU1RfRVZFTlRfVFlQRSAoKSwgYW5kIG5vCgkgIGNhc2UgZnJlZXMgdGhlIHBvaW50ZXIuIFJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVjayB3aGljaCB3aWxsIGFsd2F5cyBiZSBUcnVlLgoJICBDSUQgIzEzMDg5NTUKCjIwMTUtMDctMDEgMTA6NTA6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBBbHNvIGNvcHkgUE9PTCBtZXRhcyBhbmQgbWFrZSBzdXJlIHRvIGNvcHkgb3ZlciBtZXRhcyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMKCSAgUE9PTCBtZXRhIGp1c3QgbWVhbnMgdGhhdCB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBtZXRhIGlzIHJlbGF0ZWQgdG8gYQoJICBwb29sLCBhIGNvcHkgc2hvdWxkIGJlIG1hZGUgd2hlbiByZWFzb25hYmxlIGFuZCB0aGUgZmxhZyBzaG91bGQganVzdCBub3QgYmUKCSAgc2V0IGluIHRoZSBjb3B5LgoKMjAxNS0wNy0wMSAxMDo0NTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBBbHNvIGNvcHkgUE9PTCBtZXRhcyBhbmQgbWFrZSBzdXJlIHRvIGNvcHkgb3ZlciBtZXRhcyB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMKCSAgUE9PTCBtZXRhIGp1c3QgbWVhbnMgdGhhdCB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9mIHRoZSBtZXRhIGlzIHJlbGF0ZWQgdG8gYQoJICBwb29sLCBhIGNvcHkgc2hvdWxkIGJlIG1hZGUgd2hlbiByZWFzb25hYmxlIGFuZCB0aGUgZmxhZyBzaG91bGQganVzdCBub3QgYmUKCSAgc2V0IGluIHRoZSBjb3B5LgoKMjAxNS0wNy0wMSAxMDozNjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb24ndCBjb3B5ICJtZW1vcnkiIG1ldGFzIHVuY29uZGl0aW9uYWxseQoJICBEb24ndCBjb3B5IG1lbW9yeSBtZXRhcyBpZiB3ZSBvbmx5IGNvcGllZCBwYXJ0IG9mIHRoZSBidWZmZXIsIGRpZG4ndAoJICBjb3B5IG1lbW9yaWVzIG9yIG1lcmdlZCBtZW1vcmllcy4gSW4gYWxsIHRoZXNlIGNhc2VzIHRoZSBtZW1vcnkKCSAgc3RydWN0dXJlIGhhcyBjaGFuZ2VkIGFuZCB0aGUgbWVtb3J5IG1ldGEgYmVjb21lcyBtZWFuaW5nbGVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTcxMgoKMjAxNS0wNy0wMSAxMDoyNToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgUmV2ZXJ0ICJidWZmZXI6IERvbid0IGNvcHkgUE9PTEVEIGFuZCBtZW1vcnkgbWV0YWRhdGEgdW5jb25kaXRpb25hbGx5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdhMDhmYTVlYzQ4MDRmMTA0ZTlhYTlmNDU4MzIyZjZlYjQ5YTdlNDkuCgoyMDE1LTA2LTMwIDEzOjM4OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IERvbid0IGNvcHkgUE9PTEVEIGFuZCBtZW1vcnkgbWV0YWRhdGEgdW5jb25kaXRpb25hbGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3MTIKCjIwMTUtMDYtMzAgMTE6MTg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFVzZSBuZXcgZ3N0X2FkYXB0ZXJfZ2V0X2J1ZmZlcigpIEFQSSBpbnN0ZWFkIG9mIGdzdF9hZGFwdGVyX21hcCgpCgkgIFRoaXMgcHJlc2VydmVzIEdzdE1ldGEgcHJvcGVybHkgdW5sZXNzIHRoZSBzdWJjbGFzcyBkb2VzIHNwZWNpYWwgdGhpbmdzLiBJdCdzCgkgIGVub3VnaCB0byBtYWtlIGgyNjRwYXJzZSdzIHN0cmVhbS1mb3JtYXQvYWxpZ25tZW50IGNvbnZlcnNpb24gcGFzcyB0aHJvdWdoCgkgIG1ldGFzIGFzIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0zMCAxMToxMToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgZ2V0IHZhcmlhbnRzIG9mIHRoZSBidWZmZXIgYmFzZWQgdGFrZSBmdW5jdGlvbnMKCSAgTWFpbiBkaWZmZXJlbmNlIHRvIGdzdF9hZGFwdGVyX21hcCgpIGZvciBhbGwgcHJhY3RpY2FsIHB1cnBvc2VzIGlzIHRoYXQKCSAgR3N0TWV0YSBvZiB0aGUgYnVmZmVycyB3aWxsIGJlIHByZXNlcnZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0yOSAxNzowMzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBDb3B5IG92ZXIgR3N0TWV0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXJzIHRvIHRoZSBvdXRwdXQKCSAgQWxsIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBhIEdzdEJ1ZmZlciBvciBhIGxpc3Qgb2YgdGhlbSB3aWxsIG5vdyBjb3B5CgkgIGFsbCBHc3RNZXRhIGZyb20gdGhlIGlucHV0IGJ1ZmZlcnMgZXhjZXB0IGZvciBtZXRhIHdpdGggR1NUX01FVEFfRkxBR19QT09MRUQKCSAgZmxhZyBvciAibWVtb3J5IiB0YWcuCgkgIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgZXhpc3RpbmcgYmVoYXZpb3VyIHRoYXQgdGhlIGNhbGxlciBjYW4ndCBhc3N1bWUKCSAgYW55dGhpbmcgYWJvdXQgdGhlIGJ1ZmZlciBmbGFncywgdGltZXN0YW1wcyBvciBvdGhlciBtZXRhZGF0YS4gQW5kIGl0J3MKCSAgYWxzbyB0aGUgc2FtZSB0aGF0IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2Zhc3QoKSBkaWQgYmVmb3JlLCBhbmQgd2hhdAoJICBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIGRpZCBpZiBwYXJ0IG9mIHRoZSBmaXJzdCBidWZmZXIgb3IgdGhlIGNvbXBsZXRlCgkgIGZpcnN0IGJ1ZmZlciB3YXMgcmVxdWVzdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMzg1CgoyMDE1LTA2LTI5IDIwOjI3OjEyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogSW5pdCBmdW5jdGlvbiBjYW4gdGFrZSBhIE5VTEwgaW50ZXJmYWNlcyBhcnJheQoKMjAxNS0wNi0yOSAxMzo1NzoxMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBmaXggdGVzdF9pbnRlcnNlY3RfZmxhZ3NldCBmYWlsdXJlCgkgIHRlc3RfaW50ZXJzZWN0X2ZsYWdzZXQgZmFpbHMgYmVjYXVzZSB3aGVuIGNhcHMgaXMgYmVpbmcKCSAgY3JlYXRlZCwgZmxhZ3MgYW5kIG1hc2sgYXJlIGJlaW5nIGNhc3QgdG8gdWludDY0IHdoaWxlCgkgIHRoZXkgc2hvdWxkIGJlIHVpbnQuIFRoaXMgcmVzdWx0cyBpbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKCSAgb3IgYSBzZWdmYXVsdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTYyOAoKMjAxNS0wNi0yOSAxNDoyMjo0NiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IEZpeCBHU1RfVkFMSURBVEVfUExVR0lOX1BBVEgKCSAgSXQgbW92ZWQgcmVjZW50bHkKCjIwMTUtMDYtMjkgMTM6NTg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogRml4IHVwIGRvY3VtZW50YXRpb24gb2YgdHJhbnNmb3JtX21ldGEgdmZ1bmMKCSAgQnkgZGVmYXVsdCB3ZSBjb3B5IGFsbCBtZXRhcyB0aGF0IGhhdmUgbm8gdGFncy4KCjIwMTUtMDYtMjkgMTA6NDE6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSAgZGlyZWN0Y29udHJvbGJpbmRpbmc6IGZpeCBBQkkgYnJlYWsKCSAgU3RydWN0dXJlIHNpemUgd2FzIGluY3JlYXNlZCB3aXRob3V0IGFkanVzdG1lbnQgb2YgdGhlIHBhZGRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE2MjIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDUwMgoKMjAxNS0wMy0xOSAxNTo1NToxNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGd1YXJkIGFnYWluc3QgTlVMTCB0YXNrIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0MzkKCjIwMTUtMDUtMTQgMTE6NDg6NDUgKzAyMDAgIE1pZ3VlbCBQYXLDrXMgRMOtYXogPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSAgZnVubmVsOiBhZGQgImZvcndhcmQtc3RpY2t5LWV2ZW50cyIgcHJvcGVydHkKCSAgSXQgaXMgdXNlZnVsIHRvIGF2b2lkIHNlbmRpbmcgc3RpY2t5IGV2ZW50IG9uIHN0cmVhbSBjaGFuZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzE1CgoyMDE1LTA2LTI1IDAwOjA0OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjUuMiA9PT0KCjIwMTUtMDYtMjQgMjI6NDk6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjIKCjIwMTUtMDYtMjQgMjI6NDU6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA2LTIyIDIzOjM3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IGdzdHV0aWxzOiBmaXggd3JvbmcgZGVzY3JpcHRpb24gb2YgdGVzdCBlbGVtZW50CgkgIEl0IGlzIGEgZmFrZXNpbmsgd2l0aCByZXF1ZXN0IHBhZHMsIG5vdCBhIHNvdXJjZQoKMjAxNS0wNi0yNCAxNTozNToxNiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBGaXhlZCBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBwb29sIHZhcmlhYmxlIHdhcyB1bnVzZWQgd2hlbiBidWlkbGluZyB3aXRoIGRlYnVnIGRpc2FibGVkLgoKMjAxNS0wNi0yNCAxMToxMzo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vaHUucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDYtMjQgMTE6MTI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTUtMDYtMjQgMTQ6MTk6MDQgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbmVlZCB0byBkZWVwLWNvcHkgbGFzdCBidWZmZXIgbGlzdCBpbiBkcmFpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDIwCgoyMDE1LTA2LTI0IDEwOjUyOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogV2FybiBpZiBjb3B5aW5nIGEgYnVmZmVyIGZhaWxzIGluIGdzdF9idWZmZXJfbGlzdF9jb3B5X2RlZXAoKQoKMjAxNS0wNi0yNCAxNDoxODo0NyArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIG5ldyBhcGkgZ3N0X2J1ZmZlcl9saXN0X2NvcHlfZGVlcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNDIwCgoyMDE1LTA2LTIzIDE2OjU4OjU2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0Y2hlY2s6IFByaW50IG5ld2xpbmUgaW4gbWVzc2FnZSBoYW5kbGVyCgkgIFRoZSBtZXNzYWdlIGhhbmRsZXIgaXMgc3VwcG9zZWQgdG8gcHJpbnQgYSBuZXdsaW5lIGFmdGVyIHRoZSBtZXNzYWdlCgkgIGp1c3QgbGlrZSB0aGUgZGVmYXVsdCBtZXNzYWdlIGhhbmRsZXIuCgoyMDE1LTA2LTEyIDE2OjU0OjMyICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEhhbmRsZSBkaWZmZXJlbnQgZHVyYXRpb24gdHJhY2sgc2VsZWN0aW9uCgkgIFN1cHBvcnQgdHJhY2sgc3dpdGNoIGZyb20gRU9TIHRyYWNrIHRvIG5vbi1FT1Mgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzYxCgoyMDE1LTA2LTEyIDE2OjUyOjQ2ICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENsZWFyIEVPUyBmbGFnIGFmdGVyIHJlY2VpdmVkIFNUUkVBTV9TVEFSVCBldmVudAoJICBDbGVhciBFT1MgZmxhZyBhZnRlciByZWNlaXZlZCBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc2MQoKMjAxNS0wNi0yMiAxNDozMDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBnc3R1dGlsczogYWRkIHRlc3RzIGZvciBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQKCSAgQWRkcyB0ZXN0cyBmb3IgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkIGZvciB3aGVuIGl0IGhhcyB0bwoJICByZXF1ZXN0IHBhZHMuCgkgIE5vdGUgdGhhdCB0aGVzZSB0ZXN0cyBkb24ndCBjb3ZlciB0aGUgY2FzZSB3aGVuIGl0IGhhcyB0byByZXF1ZXN0CgkgIGEgcGFkIHRoYXQgYWxyZWFkeSBleGlzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEyMzUKCjIwMTUtMDYtMTkgMTU6NDY6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIGNhcHMgd2hlbiBnZXR0aW5nIGEgY29tcGF0aWJsZSBwYWQgYnkgdGVtcGxhdGUKCSAgRG8gbm90IGlnbm9yZSB0aGUgY2FwcyBhcmd1bWVudCB3aGVuIHJlcXVlc3RpbmcgYSBwYWQgYnkgdGVtcGxhdGUuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGhhcm1mdWwgd2hlbiB0aGUgcGFkIGNhcHMgcXVlcnkgYnkgZGVmYXVsdAoJICByZXR1cm5zIEFOWSBzbyBpdCB3aWxsIG1hdGNoIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbnN0ZWFkIG9mIHRoZQoJICBvbmUgdGhhdCBhY3R1YWxseSBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEyMzUKCjIwMTUtMDYtMjMgMDA6MTQ6MzAgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBnc3RzYW1wbGUuaDogSW5jbHVkZSBnc3RidWZmZXJsaXN0Lmggbm93IHRoYXQgaXQgdXNlcyBHc3RCdWZmZXJMaXN0CgoyMDE1LTA2LTE3IDE2OjEyOjEzICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IHdoZW4gcmVsZWFzaW5nIHBhZCwgc2VuZCBFT1MgYXBwcm9wcmlhdGVseS4KCSAgUHJldmlvdXNseSwgY29uY2F0IHNlbnQgYW4gRU9TIGlmIHRoZXJlIHdhcyBhIG5leHQgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMTA3CgoyMDE1LTA2LTE2IDE2OjE0OjE4ICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5oOgoJICBjb25jYXQ6IEFkZCBhZGp1c3QtYmFzZSBwcm9wZXJ0eQoJICBUaGlzIGRpc2FibGVzIHRoZSBzZWdtZW50LmJhc2UgYWRqdXN0bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBpZiBkb3duc3RyZWFtCgkgIHRha2VzIGNhcmUgb2YgYmFzZSBhZGp1c3RtZW50cyBhbHJlYWR5IChleGFtcGxlOiBhIGNvbWJpbmF0aW9uIG9mIGNvbmNhdAoJICBhbmQgc3RyZWFtc3luY2hyb25pemVyKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMDQ3CgoyMDE1LTA2LTIyIDE0OjA0OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVW5zZXQgdGhlIGxhc3QgYnVmZmVyIGxpc3QgaWYgd2Ugb25seSBnb3QgYSBidWZmZXIKCSAgQWxzbyByZW1lbWJlciBhbnkgcHJlcm9sbCBidWZmZXIgbGlzdC4KCjIwMTUtMDYtMjIgMTM6MzM6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2FtcGxlOiBBZGQgbmV3IEFQSSB0byB0aGUgZG9jcwoKMjAxNS0wNi0yMiAyMDowMjo1NSArMDkwMCAgSHl1bmp1biA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBlbmFibGUgdG8gZ2V0IGxhc3Qgc2FtcGxlIGluY2x1ZGluZyBidWZmZXIgbGlzdCBpZiBuZWVkZWQKCSAgSW4gY2FzZSBvZiBhIGJ1ZmZlciBsaXN0IHJlbmRlcmluZywgbGFzdC1zYW1wbGUgaXMgbm90IHVwZGF0ZWQuCgkgIEl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgYW5kIGVuYWJsZSB0byBnZXQgYnVmZmVyIGxpc3QgZnJvbSBsYXN0LXNhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTAyNgoKMjAxNS0wNi0yMiAxOTozNTo0MCArMDkwMCAgSHl1bmp1biA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiBhZGQgZ3N0X3NhbXBsZV9zZXQvZ2V0X2J1ZmZlcl9saXN0IGFwaXMKCSAgQWxsb3dlZCB0byBzZXQvZ2V0IGJ1ZmZlciBsaXN0IHRvIHNhbXBsZSBpZiBuZWVkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTAyNgoKMjAxNS0wNi0xOSAxMDo1MjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3QucHk6CgkgIHRlc3QucHk6IHJlbW92ZSBhY2NpZGVudGFsbHkgY29tbWl0dGVkIGZpbGUKCjIwMTUtMDYtMTggMTE6NTE6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBkb2M6IFVuaWZ5IFNpbmNlIG1hcmsgZm9yIGF0dHJpYnV0ZSBhbmQgZW51bQoJICBBcyB0aGlzIHNob3cgdXAgYXMgcHJvc2UgaW4gdGhlIGRvYywgc2ltcGx5IG1ha2UgaXQgY29uc2lzdGVudAoJICBhbmQgImFyZ3VhYmxlIiBuaWNlciB0byByZWFkLgoKMjAxNS0wNi0xOCAxMTo0ODo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGRvYzogUmVtb3ZlIHBhcmVudGhlc2lzIGFyb3VuZCBTaW5jZToKCSAgVGhpcyBjb25mdXNlIHRoZSBwYXJzZXIsIGhlbmNlIGl0IGRvZXMgbm90IGVuZHVwIGluIHRoZSBkb2MgYW5kIHRoZQoJICBpbmRleCBwcm9wZXJseS4KCjIwMTUtMDUtMDYgMTY6NDQ6NDggKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgR3N0UGFyZW50QnVmZmVyTWV0YQoJICBBIGNvcmUgbWV0YSB3aGljaCBoZWxwcyBpbXBsZW1lbnQgdGhlIG9sZCBjb25jZXB0CgkgIG9mIHN1Yi1idWZmZXJpbmcgaW4gc29tZSBzaXR1YXRpb25zLCBieSBtYWtpbmcgaXQKCSAgcG9zc2libGUgZm9yIGEgYnVmZmVyIHRvIGtlZXAgYSByZWYgb24gYSBkaWZmZXJlbnQKCSAgcGFyZW50IGJ1ZmZlci4gVGhlIHBhcmVudCBidWZmZXIgaXMgdW5yZWZmZWQgd2hlbgoJICB0aGUgTWV0YSBpcyBmcmVlZC4KCSAgVGhpcyBtZXRhIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgYSBidWZmZXIgd2hvc2UKCSAgbWVtb3J5IGlzIGJlaW5nIHNoYXJlZCB0byBhIGNoaWxkIGJ1ZmZlciBpc24ndCBmcmVlZAoJICBhbmQgcmV0dXJuZWQgdG8gYSBidWZmZXIgcG9vbCB1bnRpbCB0aGUgbWVtb3J5CgkgIGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDM5CgoyMDE1LTA2LTE2IDE4OjA4OjI0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdGVzdC5weToKCSAgZ2k6IFVzZSBJTlRST1NQRUNUSU9OX0lOSVQgZm9yIC0tYWRkLWluaXQtc2VjdGlvbgoJICBUaGlzIG5ldyBkZWZpbmUgd2FzIGFkZGVkIHRvIGNvbW1vbi4gVGhlIG5ldyBpbml0IHNlY3Rpb24gZml4ZWQKCSAgY29tcGlsYXRpb24gd2FybmluZyBmb3VuZCBpbiB0aGUgaW5pdCBsaW5lIHRoYXQgd2FzIHNwcmVhZCBhY3Jvc3MKCSAgYWxsIGZpbGVzLgoKMjAxNS0wNi0xNiAxNzo0Njo0NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwMTVkMjYgdG8gZjc0YjJkZgoKMjAxNS0wNi0xNSAxMDowNjowMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IEZpeCBfU1RJTUVfRk9STUFUIG1hY3JvcwoJICBUaGlzIG1hY3JvIGRpZG4ndCB3b3JrIHdlbGwgYXMgaXQgcmVsaWVkIG9uIHRoZSBzaWduIG9uIHRoZSBsYXN0CgkgIGRpdmlkZWQgbnVtYmVyIChudW1iZXIgb2YgZGF5cykuIFRoaXMgdmFsdWUgaXMgbW9zdCBvZiB0aGUgdGltZQoJICB6ZXJvLCBhbmQgemVybyBpcyBjb25zaWRlcmVkIHBvc2l0aXZlIGluIHByaW50Zi4gSW5zdGVhZCwgZGVhbCB3aXRoCgkgIHRoZSBzaWduIG1hbnVhbGx5LCBhbmQgcmVzdXNlIHRoZSBvcmlnaW5hbCBtYWNyb3MgZm9yIHRoZSByZXN0LiBUaGlzCgkgIGFjdHVhbGx5IHNpbXBsaWZ5IHRoZSBtYWNybyBhIGxvdC4KCjIwMTUtMDYtMTQgMjA6NDg6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlc2V0IHNlZ21lbnQgb25seSBvbmNlIHN0cmVhbWluZyBoYXMgc3RvcHBlZAoJICBGaXhlcyB0aGUgb2NjYXNpb25hbCBjcml0aWNhbHMgaW4gdGhlIGRpc2NvdmVyZXIgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MDczCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA4MjMKCjIwMTUtMDYtMTQgMTE6MjM6MjIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMgaW4gbGliLXNlY3Rpb25zLnR4dAoJICBUaGVzZSB3aGVyZSBjYXVzaW5nIGJyb2tlbiBsaW5rcy4KCjIwMTUtMDYtMTQgMTE6MjI6NTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkgIGRvYzogRml4IHJlZmVyZW5jZSB0byB1bmtub3duIHR5cGUgR3N0TmV0QWRkcmVzcwoKMjAxNS0wNi0xNCAxMToyMjozNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGRvYzogSW5jbHVkZSBhbmQgZml4IEdzdENvbnRyb2xQb2ludAoKMjAxNS0wNi0xNCAxMToyMToyNiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2M6IEFkZCBHc3ROZXRDb250cm9sTWVzc2FnZU1ldGEgdG8gdGhlIGRvYwoJICBUaGlzIGlzIGJlaW5nIHJlZmVyZW5jZWQgZWxzZXdoZXJlLCBidXQgcmVzdWx0cyBpbiBicm9rZW4gbGlua3MuCgkgIEl0IHNlZW1zIHRvIGJlIHB1YmxpYyBBUEksIHNvIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGluIHRoZSBkb2MuCgoyMDE1LTA2LTE0IDEwOjU5OjUxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBkb2M6IERvY3VtZW50IEdzdFB1c2hTcmNDbGFzcwoKMjAxNS0wNi0xNCAxMDo1ODoxOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGRvYzogQmV0dGVyIGRvY3VtZW50IG5ldyBHc3RDb2xsZWN0RGF0YS5BQkkuYWJpLmR0cwoJICBUaGUgZG9jIGdlbmVyYXRvciBnZXQgY29uZnVzZWQgd2l0aCB0aGUgaW5saW5lIHN0cnVjdHVyZS4gU28KCSAgd29ya2Fyb3VuZCBieSB3cmFwcGluZyB0aGUgaW5uZXIgb2YgdGhlIHN0cnVjdHVyZSB3aXRoCgkgIHB1YmxpYy9wcml2YXRlIG1hcmssIGFuZCBkb2N1bWVudCB0aGF0IEdTVF9DT0xMRUNUX1BBRFNfRFRTIG1hY3JvCgkgIHNoYWxsIGJlIHVzZWQgdG8gYWNjZXNzIHRoaXMuCgoyMDE1LTA2LTE0IDEwOjU2OjI4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGRvYzogVmFyaW91cyBkb2MgZml4ZXMgZm9yIGxpYmdzdHJlYW1lci1iYXNlCgkgICogRml4IGZ1bmN0aW9uIG5hbWUgaW4gc2VjdGlvbnMudHh0CgkgICogQWRkIGZldyBtaXNzaW5nIG9yIGZpeCBtaXNzLW5hbWVkCgkgICogV29ya2Fyb3VuZCBndGstZG9jIGJlaW5nIGNvbmZ1c2VkIHdpdGggbm9uIHR5cGVkZWYKCSAgdHlwZXMgKGxvb3NlIHRyYWNrIG9mIHB1YmxpYy9wcml2YXRlCgoyMDE1LTA2LTE0IDEwOjI1OjUyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jOiBNb3JlIGRvYyB3YXJuaW5nIGZpeGVzCgkgIFNvIGZyb20gdGhpcyBwb2ludCwgdGhlIHJlbWFpbmluZyB3YXJuaW5nIGZvciBsaWJnc3RyZWFtZXIgYXJlIGFib3V0CgkgIHByb3RlY3RlZCBtZW1iZXIgbm90IHNob3dpbmcgaW4gdGhlIGRvYy4gVGhpcyBtYXkgbmVlZCBzb21lIGRpc2N1c3Npb24KCSAgd2l0aCB1cHN0cmVhbSBndGstZG9jIHBlb3BsZS4KCSAgKiBSZW1vdmUgJSBpbiBmcm9tIG9mIG5vbmUgbWFjcm8KCSAgKiBGaXhlZCBHU1RfVFlQRV9GQUdTIC0+IEdTVF9UWVBFX0ZBR19TRVQKCSAgKiBNaW5vciB3b3JkaW5nIGZpeAoJICAqIENhbid0IGxpbmsgdG8gR3N0VXJpLnBvcnQsIHNvIHNwbGl0IHRoZSAucG9ydCBwYXJ0CgoyMDE1LTA2LTE0IDA5OjE3OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jOiBJbiBHc3RVcmkgd2UgbWVhbnQgbnVsLXRlcm1pbmF0ZWQsIG5vdCAlTlVMTAoJICAlTlVMTCByZWZlcnMgdG8gdGhlIHBvaW50ZXIuIEkndmUgd3JpdHRlbiBpdCB0aGlzIHdheSBpbiBvbmUKCSAgd29yZCBhcyB0aGlzIGlzIHdoYXQgR0xpYiB1c2VzLgoKMjAxNS0wNi0xMyAyMTowMjoyMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvYzogQ2Fubm90IHJlZmVyZW5jZSBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FCgkgIFNvIHNpbXBseSByZW1vdmUgdGhlICUgc2lnbi4KCjIwMTUtMDYtMTMgMjA6NTI6MDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvYzogRml4IHR5cG8gaW4gcmVmIF9jbG9ja193YWl0X2Zvcl9zeW5jKCkKCjIwMTUtMDYtMTMgMjA6Mzc6MzQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2M6IEZpeCBHc3RVcmkgZG9jIHR5cG9zCgkgICogVXNlICZwZXJjdG47IGluc3RlYWQgb2YgcmVzZXJ2ZWQgY2hhcmFjdGVyICUKCSAgKiBOVUxMIHRha2UgdHdvIEwKCjIwMTUtMDYtMTMgMjA6MTk6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2M6IEZpeCBTaW5jZTogbWFya3MKCSAgVGhlcmUgd2FzIGZldyBTaW5jZTogbWFyayBtaXNzaW5nIHRoZWlyIGNvbHVtbi4gQWxzbyB1bmlmeSB0aGUgd2F5CgkgIHdlIHNldCB0aGUgU2luY2UgbWFyayBvbiBlbnVtIHZhbHVlIGFuZCBzdHJ1Y3R1cmUgbWVtYmVycy4gVGhlc2UKCSAgc2FkbHkgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgaW5kZXguCgoyMDE1LTA2LTEzIDIwOjAxOjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jOiBBZGQgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAoKQoKMjAxNS0wNi0xMyAxOTo0Nzo0NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgZ2k6IFNraXAgZ3N0X2NvbnNpdGVuY3lfY2hlY2tlcl9uZXcKCSAgVGhpcyBub24gYm94ZWQgdHlwZSBjYW5ub3QgYmUgYWxsb2NhdGVkIHNhZmVseS4KCjIwMTUtMDYtMTMgMTk6NDY6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jOiBBZGQgaW5kZXhlcyBvZiBhZGRlZCBBUElzCgkgIE9uZSBvZiB0aGUgbmljZSBmZWF0dXJlIGluIEdUSyBkb2MgaXMgdGhhdCBpdCBnZW5lcmF0ZSBpbmRleGVzCgkgIG9mIGFkZGVkIEFQSXMgYmFzZSBvbiB0aGUgc2luY2UgbWFya2VyLiBJbmNsdWRlIHRoYXQgaW4gb3VyIGRvYwoJICB3aGlsZSBmaXhpbmcgdGhlIGlzc3VlIG9mIGR1cGxpY2F0ZSBJRCAocHJvZHVjZSB4bWwgY29udGFpbnMgdGhhdAoJICBpZCBpdCBzZWVtcykKCjIwMTUtMDYtMTMgMTU6MTA6NTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2M6IE1ha2UgLi4uX3NvdXJjZV9maW5kX2NvbnRyb2xfcG9pbnRfaXRlciB0cmFuc2ZlciBub25lCgoyMDE1LTA2LTEzIDE0OjQwOjQzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgZG9jOiBTaWxlbmNlIHdhcm5pbmcgYWJvdXQgdW51c2VkIGdzdG50cHBhY2tldCBzZWN0aW9uCgkgIFRoaXMgQVBJIGlzIGludGVybmFsLgoKMjAxNS0wNi0xMyAxNDozNzo0MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIFJldmVydCAiZG9jOiBBZGQgR3N0TnRwUGFja2V0IHRvIHRoZSBkb2MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzRlYjg3Njk2MWFiYTEwOTJjNDgzMWE4ZmVhZjQ4ZDdiZTFlMzhhZS4KCSAgT29wcywgdGhpcyBpcyBub3QgYSBwdWJsaWMgQVBJCgoyMDE1LTA2LTEzIDE0OjIxOjQxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgZG9jOiBBZGQgR3N0TnRwUGFja2V0IHRvIHRoZSBkb2MKCjIwMTUtMDYtMTMgMTM6NTU6MjcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBkb2M6IFJlbW92ZSBnc3RpbmRleCBmcm9tIGRvYyBjb21tZW50CgkgIE1vdmluZyB0aGF0IHRvIG5vcm1hbCBjb21tZW50IHRvIHNpbGVuY2UgdGhlIGdlbmVyYXRvci4gR3N0SW5kZXgKCSAgaXMgbm90IGluIEdTdHJlYW1lciBsaWJyYXJ5IGF0IHRoZSBtb21lbnQgKHJlbW92ZWQgZnJvbSAwLjEwKS4KCjIwMTUtMDYtMTMgMTM6NDg6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBnaTogU2V0IGNvbGxlY3RwYWRzIGZ1bmN0aW9uIHBhcmFtIHNjb3BlCgoyMDE1LTA2LTEzIDEzOjQyOjU4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZ2k6IFNraXAgYWxsb2NhdG9yIG9mIG5vbi1ib3hlZCBzdHJ1Y3R1cmUKCSAgVGhlc2UgYXJlIG5vdCB1c2FibGUgYXMgdGhleSBhcmUsIGFuZCBjYW4gZWFzaWx5IGxlYWQgdG8gY3Jhc2gKCSAgb3IgbGVha3MuIFRoaXMgYWxzbyBzaWxlbmNlIHdhcm5pbmcgZnJvbSB0aGUgc2Nhbm5lci4gSWYgd2UgbWFuYWdlIHRvCgkgIG1ha2UgdGhpcyB1c2FibGUsIHdlIGNhbiB0aGVuIHJlbW92ZSB0aGF0IG1hcmssIGl0IHdpbGwgcmVxdWlyZQoJICB0byBtYWtlIHRoaXMgdHlwZSBib3hlZC4KCjIwMTUtMDYtMTMgMTM6MjQ6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBHaXZlIGdzdGNvbmZpZyBhIG5pY2UgbmFtZQoJICBBcyBhbGwgb3RoZXIgc2VjdGlvbiBkbyBoYXZlIGEgbmljZSBjYW1lIGNhc2UgbmFtZSwgaXQgc2VlbXMKCSAgbW9yZSBjb25zaXN0ZW50LgoKMjAxNS0wNi0xMyAxMzoxOToyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBtaXNzaW5nIGdzdF9ldmVudF9uZXcvcGFyc2VfcHJvdGVjdGlvbgoKMjAxNS0wNi0xMyAxMzoxOTowNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEdpdmUgZ3N0cHJvdGVjdGlvbiBzZWN0aW9uIGEgbmljZSB0aXRsZQoKMjAxNS0wNi0xMyAxMzoxNDozMCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jOiBSZW1vdmUgdW5lZWRlZCBwcm90ZWN0aW9uZXZlbnQgc2VjdGlvbgoJICBUaGVzZSBmdW5jdGlvbnMgYXJlIHBhcnQgb2YgZ3N0ZXZlbnQgc2VjdGlvbiBhbHJlYWR5LiBLZWVwIHRoZSBkb2MsCgkgIHNpbmNlIGl0J3MgZ29vZC4KCjIwMTUtMDYtMTMgMTI6MzI6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQWRkIG1pc3Npbmcgc2NvcGUgdG8gZnVuYyBwYXJhbQoJICBUaGlzIHRlbGwgR0kgaWYgdGhpcyBmdW5jdGlvbiBpcyBmb3IgYWN0aW9ucyAoY2FsbCkgb3IgaXMgdGhlCgkgIGFuc3dlciBvZiB0aGlzIG1ldGhvZCBiZWluZyBhc3luY2hyb25vdXMgKGFzeW5jKS4gSW4gdGhpcyBjYXNlCgkgIGl0J3MgYSBjYWxsLiBUaGlzIGFsc28gc2lsZW5jZSB3YXJuaW5nIGZyb20gdGhlIEdJIHNjYW5uZXIuCgoyMDE1LTA2LTEzIDEyOjI3OjMxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkgIGdzdHByb3RlY3Rpb246IEFkZCBtaXNzaW5nIFNpbmNlIDEuNiBtYXJrCgoyMDE1LTA2LTEzIDEyOjI2OjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGdzdHByZWN0aW9uOiBfYWRkX3Byb3RlY3Rpb25fbWV0YSgpIGlzIHRyYW5zZmVyIG5vbmUKCSAgSnVzdCBsaWtlIGdzdF9idWZmZXJfYWRkX21ldGEoKSB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHNvIGJlCgkgIHRyYW5zZmVyIG5vbmUuIFRoaXMgYWxzbyBzaWxlbmNlIGEgZ2kgd2FybmluZyBhYm91dCByZXR1cm5pbmcKCSAgYSBjb3B5IG9mIGEgbm9uIGJveGVkIGJhcmUgc3RydWN0dXJlLgoKMjAxNS0wNi0xMyAxMjoyNToxOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBnc3Rwcm90ZWN0aW9uOiBBZGQgbWlzc2luZyBuYW1lc3BhY2UgdG8gbWFjcm8KCSAgR1NUX1BST1RFQ1RJT05fU1lTVEVNX0lEX0NBUFNfRklFTEQgd2FzIG1pc3NpbmcgdGhlIEdTVF8gbmFtZXNwYWNlLgoJICBBZGQgaXQgYmVmb3JlIGl0cyB0b28gbGF0ZS4KCjIwMTUtMDYtMTMgMTE6NTU6MTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgZG9jOiBLZWVwIFNFQ1RJT046IGFmdGVyIHRoZSBpZmRlZgoJICBPdGhlcndpc2UgR1RLIGRvYyB3aWxsIHNlZSBpdCBhcyBvZnRlbiBhcyB3ZSBpbmNsdWRlIHRoYXQgZmlsZXMKCSAgYW5kIHdhcm4gYWJvdXQgZHVwbGljYXRlZCBTRUNUSU9OOgoKMjAxNS0wNi0xMyAxMDoyMzo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBnaTogU2tpcCBtaW5pIG9iamVjdCBtZXRob2QgdGhhdCBwbGF5IHdpdGggcmVmY291bnRpbmcKCSAgSXQgbWFrZSBubyBzZW5zZSB0byBhbGxvdyB1c2luZyB0aGF0LiBBbnkgdXNlIHdvdWxkIGxlYWQgdG8gbGVhawoJICBvZiBjcmFzaC4gTm90ZSB0aGF0IEdNaW5pT2JqZWN0IGlzIGVudGlyZWx5IHVudXNhYmxlIGFzIHlvdSBjYW5ub3QKCSAgY2FzdCBmcm9tIGxldCdzIHNheSBHc3RCdWZmZXIgdG8gR3N0TWluaU9iamVjdC4KCjIwMTUtMDYtMTMgMTU6MDU6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBsaWJzOiBtb3JlIGRvYyBzY2FubmVyIGZpeGVzCgkgIGdzdGJhc2V0cmFuc2Zvcm0uaDoxOTY6IFdhcm5pbmc6IEdzdEJhc2U6ICJAc3VibWl0X2lucHV0X2J1ZmZlciIgcGFyYW1ldGVyIHVuZXhwZWN0ZWQgYXQgdGhpcyBsb2NhdGlvbjoKCSAgKiBAc3VibWl0X2lucHV0X2J1ZmZlcjogRnVuY3Rpb24gd2hpY2ggYWNjZXB0cyBhIG5ldyBpbnB1dCBidWZmZXIgYW5kIHByZS1wcm9jZXNzZXMgaXQuCgkgIGdzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOjEwMzogV2FybmluZzogR3N0TmV0OiBnc3RfYnVmZmVyX2FkZF9uZXRfY29udHJvbF9tZXNzYWdlX21ldGE6IHVua25vd24gcGFyYW1ldGVyICdtZXNzYWdlJyBpbiBkb2N1bWVudGF0aW9uIGNvbW1lbnQsIHNob3VsZCBiZSAnYWRkcicKCjIwMTUtMDYtMTMgMDk6Mzc6NDYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgZG9jOiBGaXggYW5ub2F0aW9uIGZvciBHc3RNaW5pT2JqZWN0CgkgIFJlcGxhY2luZyByZXByZWNhdGVkICJSZWYgRnVuYzoiLCAiVW5yZWYgRnVuOiIgZXRjLiBjb21tZW50IGJsb2NrCgkgIHdpdGggYXBwcm9wcmlhdGUgKHJlZi1mdW5jIG5hbWUpIGV0Yy4gYW5ub3RhdGlvbi4KCjIwMTUtMDYtMTMgMDk6MzQ6MDYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGRvYzogRml4IHVuYmFsYW5jZWQgcGFyZW50aGVzaXMKCjIwMTUtMDYtMTMgMDk6MzA6MjQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYzogRml4IG1vcmUgdHlwbwoKMjAxNS0wNi0xMyAwOToyMjo0MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jOiBGaXggdHlwZSBpbiBwcmV2aW91cyBjb21taXQKCSAgTWFya2VyIGlzICh2YWx1ZSAuLiBub3QgKGFsdWUuCgoyMDE1LTA2LTEzIDA5OjE5OjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZG9jOiBEb24ndCB1c2UgZGVwcmVjYXRlZCBWYWx1ZTogYW5kIFR5cGU6IGNvbW1lbnQKCSAgSW5zdGVhZCB1c2UgYXBwcm9wcmlhdGUgYW5ub3RhdGlvbi4gQW5ub3RhdGlvbnMgY2FuIGJlIGFkZGVkCgkgIHRvIHRoZSByaWdodCBvZiB0aGUgY29uc3RhbnQgbmFtZSBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDE1LTA2LTEyIDE3OjA3OjM4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBjb2xsZWN0cGFkczogQWRkIG5ldyBtYWNybyB0byB0aGUgZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTIgMTc6MDc6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGNsb2NrOiBBZGQgbmV3IHNpZ25lZCB0aW1lIG1hY3JvIHRvIHRoZSBkb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMCAxNDoxNzowMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgaW5pdGlhbGx5IHNlbmQgYW4gaW52YWxpZCBEVFMKCSAgU2VuZGluZyBhIHBvc3NpYmx5IGludmFsaWQgRFRTIG1heSBjb25mdXNlIHRoZSBtdXhlcnMsIHdoaWNoIHdpbGwKCSAgdGhlbiB0aGluayB0aGUgRFRTIGlzIGdvaW5nIGJhY2t3YXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA0LTAzIDE3OjU0OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQWRkIG5lZ2F0aXZlIERUUyBzdXBwb3J0CgkgIE1ha2UgZ3N0X2NvbGxlY3RfcGFkc19jbGlwX3J1bm5pbmdfdGltZSgpIGZ1bmN0aW9uIGFsc28gc3RvcmUgdGhlCgkgIHNpZ25lZCBEVFMgaW4gdGhlIENvbGxlY3REYXRhLiBUaGlzIHNpZ25lZCBEVFMgdmFsdWUgY2FuIGJlIHVzZWQgYnkKCSAgbXV4ZXJzIHRvIHByb3Blcmx5IGhhbmRsZSBzdHJlYW1zIHdoZXJlIERUUyBjYW4gYmUgbmVnYXRpdmUgaW5pdGlhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEyIDEyOjA2OjA1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IEFkZCBzaWduZWQgdGltZSB1dGlsaXRpZXMKCSAgQWRkIHV0aWxpdHkgdG8gcHJpbnQgc2lnbmVkIHZhbHVlIG9mIHRpbWUuIFRoaXMgaXMgdXNlZnVsIHRvCgkgIHRyYWNlIHJ1bm5pbmcgdGltZSB2YWx1ZXMgaW4gZ2ludDY0IG9yIEdzdENsb2NrVGltZURpZmYgdmFsdWVzLgoJICBBZGRpdGlvbmFsbHksIGRlZmluZSBHU1RfQ0xPQ0tfU1RJTUVfTk9ORSB0byBpbmRpY2F0ZSBhbiBpbnZhbGlkCgkgIHNpZ25lZCB0aW1lIHZhbHVlIGFuZCB2YWxpZGF0aW9uIG1hY3JvLiBOZXcgbWFjcm9zIGFyZToKCSAgR1NUX0NMT0NLX1NUSU1FX05PTkUKCSAgR1NUX0NMT0NLX1NUSU1FX0lTX1ZBTElECgkgIEdTVF9TVElNRV9GT1JNQVQKCSAgR1NUX1NUSU1FX0FSR1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMCAyMDo0NDoyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIGFsbG93LW5vbmUgdG8gZ3N0X21lc3NhZ2VfbmV3XyBmdW5jdGlvbgoJICBObyByZXN0cmljdGlvbiBmb3IgY3JlYXRpbmcgbWVzc2FnZXMgd2l0aG91dCBhIHNvdXJjZQoKMjAxNS0wNi0xMiAxMzo0NTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTUtMDUtMjcgMTI6Mjk6NDEgKzAzMDAgIExhemFyIENsYXVkaXUgPGxhemFyLmNsYXVkaXUuZmxvcmluQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2Fic29sdXRlLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogQWRkZWQgYWJzb2x1dGUgZGlyZWN0IGNvbnRyb2wgYmluZGluZywgZXhhbXBsZSBhbmQgdGVzdAoJICBGaXhlczogNzQwNTAyCgkgIEFQSTogZ3N0X2RpcmVjdF9jb250cm9sX2JpbmRpbmdfbmV3X2Fic29sdXRlCgoyMDE1LTA2LTA0IDAwOjAzOjE2ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHByb3ZpZGUgYSBtZW1fbWFwX2Z1bGwgdGhhdCB0YWtlcyB0aGUgR3N0TWFwSW5mbwoJICBGb2xsb3cgdXAgb2YgNzEzMDIzMGRkYjM0OWQwY2E3OTQyYWJkYmEyNmI3NTU4ZGYwNTVkMQoJICBQcm92aWRlIHRoZSBtZW1vcnkgaW1wbGVtZW50YXRpb24gdGhlIEdzdE1hcEluZm8gdGhhdCB3aWxsIGJlIHVzZWQgdG8KCSAgbWFwL3VubWFwIHRoZSBtZW1vcnkuICBUaGlzIGFsbG93cyB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9uIHRvIHVzZQoJICBzb21lIHNjcmF0Y2ggc3BhY2UgaW4gR3N0TWFwSW5mbyB0byBlLmcuIHRyYWNrIGRpZmZlcmVudCBtYXAvdW5tYXAKCSAgYmVoYXZpb3VyIG9yIHN0b3JlIGV4dHJhIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZGF0YSBhYm91dCB0aGUgbWFwCgkgIGluIHVzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDMxOQoKMjAxNS0wNC0wOCAxNDoyMTo0MyAtMDcwMCAgQWxpc29uIENoYWlrZW4gPGFsaXNvbl9jaGFpa2VuQG1lbnRvci5jb20+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIGRvY3M6IG1hbnVhbDogZml4IG5hbWUgcmV2ZXJzYWwgaW4gYmFzaWNzLXBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzUzMgoKMjAxNS0wNi0xMSAyMzowNjoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBnc3Rfd3JpdGV2OiBkZWZpbmUgVUlPX01BWElPViBvbiBpT1MvT1NYCgkgIEFwcGFyZW50bHkgaXQncyBvbmx5IHNldG9uIGlPUy9PU1ggaWYgZGVmaW5lZChLRVJORUwpLgoKMjAxNS0wNi0xMiAwMToxNToxOSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZ3N0X3dyaXRldjogUmVzcGVjdCBVSU9fTUFYSU9WIGxpbWl0IGZvciB0aGUgaW92IGFycmF5CgkgIElmIHdlIHJlY2VpdmUgbW9yZSB0aGFuIFVJT19NQVhJT1YgKDEwMjQgdHlwaWNhbGx5KSBidWZmZXJzCgkgIGluIGEgc2luZ2xlIHdyaXRldiBjYWxsLCBmYWxsIGJhY2sgdG8gY29uc29saWRhdGluZyB0aGVtCgkgIGludG8gb25lIG91dHB1dCBidWZmZXIgb3IgbXVsdGlwbGUgd3JpdGUgY2FsbHMuCgkgIFRoaXMgY291bGQgYmUgbWFkZSBtb3JlIG9wdGltYWwsIGJ1dCBsZXQncyB3YWl0IHVudGlsIGl0J3MKCSAgZXZlciBhIGJvdHRsZW5lY2sgZm9yIHNvbWVvbmUKCjIwMTUtMDYtMTEgMTI6MzQ6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwaXBlbGluZTogQWRkIGdzdF9waXBlbGluZV9zZXRfbGF0ZW5jeSgpLCBnZXR0ZXIgYW5kIEdPYmplY3QgcHJvcGVydHkKCSAgVGhpcyBvdmVycmlkZXMgdGhlIGRlZmF1bHQgbGF0ZW5jeSBoYW5kbGluZyBhbmQgY29uZmlndXJlcyB0aGUgc3BlY2lmaWVkCgkgIGxhdGVuY3kgaW5zdGVhZCBvZiB0aGUgbWluaW11bSBsYXRlbmN5IHRoYXQgd2FzIHJldHVybmVkIGZyb20gdGhlIExBVEVOQ1kKCSAgcXVlcnkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODIKCjIwMTUtMDYtMTEgMTE6Mzc6MzAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIGFjdGl2ZS1wYWQgcHJvcGVydHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Njk0OQoKMjAxNS0wNi0xMSAxMTowNTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWxzbyByZXNldCB0aGUgY3VycmVudCBzdGFydCBvZmZzZXQgd2hlbiByZWNlaXZpbmcgYSBGTFVTSF9TVE9QIG9uIHRoZSBzcmNwYWQKCjIwMTUtMDYtMTEgMTE6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBzb21lIG5ld2xpbmVzIHRvIGV2ZW50IGhhbmRsaW5nIGNvZGUgdG8gbWFrZSB0aGUgY29kZSBsb29rIGEgYml0IGxlc3MgZGVuc2UKCjIwMTUtMDYtMTEgMTA6NTM6MzAgKzAyMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogUmVzZXQgc2VnbWVudCBiYXNlIG9mZnNldCBhZnRlciBGTFVTSF9TVE9QIHdpdGggcmVzZXRfdGltZSA9IFRSVUUKCSAgSWYgdGhlIHJlc2V0X3RpbWUgdmFsdWUgb2YgYSBGTFVTSF9TVE9QIGV2ZW50IGlzIHNldCB0byBUUlVFLCB0aGUgcGlwZWxpbmUKCSAgd2lsbCBoYXZlIHRoZSBiYXNlX3RpbWUgb2YgaXRzIGVsZW1lbnRzIHJlc2V0LiBUaGlzIG1lYW5zIHRoYXQgdGhlIGNvbmNhdAoJICBlbGVtZW50J3MgY3VycmVudF9zdGFydF9vZmZzZXQgaGFzIHRvIGJlIHJlc2V0IHRvIDAsIHNpbmNlIGl0IHdhcwoJICBjYWxjdWxhdGVkIHdpdGggdGhlIG9sZCBiYXNlLXRpbWUgaW4gbWluZC4KCSAgT25seSBGTFVTSF9TVE9QIGV2ZW50cyBjb21pbmcgZnJvbSB0aGUgYWN0aXZlIHBhZCBhcmUgbG9va2VkIGF0LgoJICBTaWduZWQtb2ZmLWJ5OiBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoyMDE1LTAzLTI4IDE2OjQ2OjMyICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEZvcndhcmQgRkxVU0hfU1RBUlQgYW5kIEZMVVNIX1NUT1AgZXZlbnRzCgkgIFdpdGhvdXQgdGhpcywgc2Vla2luZyBkZWFkbG9ja3MgaWYgcGVyZm9ybWVkIHdoaWxlIHRoZSBwaXBlbGluZSBpcyBwYXVzZWQuCgkgIE9ubHkgZmx1c2ggZXZlbnRzIGNvbWluZyBmcm9tIHRoZSBhY3RpdmUgcGFkIGFyZSBmb3J3YXJkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzNjYKCjIwMTUtMDYtMDkgMTQ6Mjg6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSAgY3J1ZnQ6IGFkZCB0aGUgb2Jzb2xldGUgdG1wbCBkaXIgdG8gY3J1ZnQtZGlycwoKMjAxNS0wNi0wOSAxMTozMDoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDlhMzM1MyB0byA2MDE1ZDI2CgoyMDE1LTA2LTA5IDExOjAxOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IGZzeW5jL19jb21taXQgdXNhZ2UKCSAgX01TQ19WRVIgd2lsbCBvbmx5IGJlIGRlZmluZWQgd2hlbiBidWlsZGluZyAqb24qIHdpbmRvd3MgYW5kIG5vdCBqdXN0CgkgICpmb3IqIHdpbmRvd3MuIEluc3RlYWQsIHVzZSB0aGUgR19PU19XSU4zMiBkZWZpbmUKCjIwMTUtMDYtMDkgMTA6NTk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBDaGVjayBmb3IgdGhlIGFjdHVhbCBBUEkgd2UgdXNlIGluc3RlYWQgb2YganVzdCBsb29raW5nIGZvciBfX0FQUExFX18KCSAgU2hvdWxkIGZpeCB0aGUgYnVpbGQgb24gRnJlZUJTRCwgRHJhZ29uRmx5IGFuZCBvdGhlciBCU0RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTMwCgoyMDE1LTA2LTA4IDE3OjEwOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBVc2UgdGhlIG5ldyBHU1RfQ0xPQ0tfRkxBR19ORUVEU19TVEFSVFVQX1NZTkMgZmxhZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTc0CgoyMDE1LTA2LTA4IDE3OjA0OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBNYWtlIHRoZSBjbG9jayBhIHdyYXBwZXIgY2xvY2sgYXJvdW5kIGFuIGludGVybmFsIGNsb2NrCgkgIFRoZSBpbnRlcm5hbCBjbG9jayBpcyBvbmx5IHVzZWQgZm9yIHNsYXZpbmcgYWdhaW5zdCB0aGUgcmVtb3RlIGNsb2NrLCB3aGlsZQoJICB0aGUgdXNlci1mYWNpbmcgR3N0Q2xvY2sgY2FuIGJlIGFkZGl0aW9uYWxseSBzbGF2ZWQgdG8gYW5vdGhlciBjbG9jayBpZgoJICBkZXNpcmVkLiBCeSBkZWZhdWx0LCBpZiBubyBtYXN0ZXIgY2xvY2sgaXMgc2V0LCB0aGlzIGhhcyBleGFjdGx5IHRoZSBzYW1lCgkgIGJlaGF2aW91ciBhcyBiZWZvcmUuIElmIGEgbWFzdGVyIGNsb2NrIGlzIHNldCAod2hpY2ggd2FzIG5vdCBhbGxvd2VkIGJlZm9yZSksCgkgIHRoZSB1c2VyLWZhY2luZyBjbG9jayBpcyByZXBvcnRpbmcgdGhlIHJlbW90ZSBjbG9jayBhcyBpbnRlcm5hbCB0aW1lIGFuZAoJICBzbGF2ZXMgdGhpcyB0byB0aGUgbWFzdGVyIGNsb2NrLgoJICBUaGlzIGFsc28gcmVtb3ZlcyB0aGUgd2VpcmRuZXNzIHRoYXQgdGhlIGludGVybmFsIHRpbWUgb2YgdGhlIG5ldGNsaWVudGNsb2NrCgkgIHdhcyBhbHdheXMgdGhlIHN5c3RlbSBjbG9jayB0aW1lLCBhbmQgbm90IHRoZSByZW1vdGUgY2xvY2sgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU3NAoKMjAxNS0wNi0wOCAyMzowNzo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDM3YWYzMiB0byBkOWEzMzUzCgoyMDE1LTA2LTA4IDIwOjAwOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHM6IGZha2VzaW5rOiBmaXggc3RyaW5nIGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE1LTA2LTA5IDAwOjUyOjM0ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBXaW5kb3dzIGJ1aWxkIGJ5IHVzaW5nIF9jb21taXQgaW5zdGVhZCBvZiBmc3luYy4KCjIwMTUtMDYtMDggMTI6MjI6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBNYWtlIHN1cmUgdG8gYWx3YXlzIGluaXRpYWxpemUgdGhlIHZhcmlhYmxlcyB3ZSBwdXQgaW50byB0aGUgc3RhdGlzdGljcyBzdHJ1Y3R1cmUgbGF0ZXIKCSAgQ0lEIDEzMDQ2NzYsIDEzMDQ2NzcsIDEzMDQ2NzgsIDEzMDQ2NzkuCgoyMDE1LTA2LTA4IDEyOjAyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IEVuc3VyZSB0aGF0IG5vdCB0b28gbXVjaCBpcyByZWFkIGZyb20gb3Igd3JpdHRlbiB0byBzdHJ1Y3QgaWZyZXEuaWZyX25hbWUKCjIwMTUtMDYtMDggMTk6MzM6MDMgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgdmZ1bmNzCgkgIEFkZCBTaW5jZTogMS42IG1hcmtlcnMgZm9yIHRoZSBuZXcgc3VibWl0X2lucHV0X2J1ZmZlcigpIGFuZAoJICBnZW5lcmF0ZV9vdXRwdXQoKSB2ZnVuY3MKCjIwMTUtMDUtMjMgMDE6MDg6MjkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMi5jOgoJICBiYXNldHJhbnNmb3JtOiBTcGxpdCBpbnB1dCBidWZmZXIgcHJvY2Vzc2luZyBmcm9tIG91dHB1dCBnZW5lcmF0aW9uCgkgIEFsbG93IGZvciBzdWItY2xhc3NlcyB3aGljaCB3YW50IHRvIGNvbGxhdGUgaW5jb21pbmcgYnVmZmVycyBvcgoJICBzcGxpdCB0aGVtIGludG8gbXVsdGlwbGUgb3V0cHV0IGJ1ZmZlcnMgYnkgc2VwYXJhdGluZyB0aGUgaW5wdXQKCSAgYnVmZmVyIHN1Ym1pc3Npb24gZnJvbSBvdXRwdXQgYnVmZmVyIGdlbmVyYXRpb24gYW5kIGFsbG93aW5nCgkgIGZvciBsb29waW5nIG9mIG9uZSBvZiB0aGUgcGhhc2VzIGRlcGVuZGluZyBvbiBwdWxsIG9yIHB1c2ggbW9kZQoJICBvcGVyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwMzMKCjIwMTUtMDQtMTYgMTA6MzI6MDIgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIEFkZCBHU1RfQlVGRkVSX0ZMQUdfU1lOQ19BRlRFUiBmbGFnLCBhbmQgaW1wbGVtZW50IGluIGZpbGVzaW5rLgoJICBNYWtlcyBpdCBwb3NzaWJsZSB0byBnZXQgZmlsZXNpbmsgdG8gZnN5bmMoKSBhZnRlciByZW5kZXJpbmcKCSAgYSBidWZmZXIuCgoyMDE1LTA2LTA4IDEwOjQ2OjI0ICswMjAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEZpeCBidWlsZCBvbiBXaW5kb3dzLCBhbmQgaW4gZ2VuZXJhbCB0aGUgR0kgYnVpbGQgd2hlbiBQVFAgc3VwcG9ydCB3YXMgbm90IGF2YWlsYWJsZQoJICBJdCdzIG5vdCBnb2luZyB0byB3b3JrIG9uIFdpbmRvd3Mgc3RpbGwsIHRoZSBoZWxwZXIgcHJvY2VzcyBuZWVkcyB0byBiZQoJICBwb3J0ZWQuCgoyMDE1LTA2LTA3IDIzOjA1OjUzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMWJhMmU1IHRvIGQzN2FmMzIKCjIwMTUtMDYtMDcgMTc6MzE6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0MDg1ODMgdG8gMjFiYTJlNQoKMjAxNS0wNi0wNyAxNjo1ODo0MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogcmVtb3ZlIHZhcmlhYmxlcyB0aGF0IHdlIGRlZmluZSBpbiB0aGUgc25pcHBldCBmcm9tIGNvbW1vbgoJICBUaGlzIGlzIHN5bmNpbmcgb3VyIE1ha2VmaWxlLmFtIHdpdGggdXBzdHJlYW0gZ3RrZG9jLgoKMjAxNS0wNi0wNyAxNzoxNjowNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDY3Njk5MyB0byBjNDA4NTgzCgoyMDE1LTA2LTA3IDE2OjQ0OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50CgoyMDE1LTA2LTA3IDEwOjUyOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBuZXRjbGllbnRjbG9jazogVGhlIE5UUCBwb2xsIGludGVydmFsIGlzIGEgc2lnbmVkIGludDgsIG5vdCB1bnNpZ25lZAoKPT09IHJlbGVhc2UgMS41LjEgPT09CgoyMDE1LTA2LTA3IDA5OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuMQoKMjAxNS0wNi0wNyAwOTozMzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZnIucG86CgkqIHBvL3RyLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNS0wNi0wNyAwOTozMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogQWRkIFNpbmNlIG1hcmtlciB0byB0aGUgZG9jcyBmb3IgZ3N0X250cF9jbG9ja19uZXcoKQoKMjAxNS0wNi0wNyAwOTozMjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDYtMDcgMDk6MDg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogRml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIHVuaXQgdGVzdAoJICBnc3QvZ3N0bWVtb3J5LmM6NTcwOjM4OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdE1hcEZsYWdzJyB0byBkaWZmZXJlbnQgZW51bWVyYXRpb24KCSAgdHlwZSAnR3N0TG9ja0ZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgZmFpbF91bmxlc3MgKGdzdF9tZW1vcnlfbG9jayAobWVtLCBHU1RfTUFQX1dSSVRFKSk7CgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5efn5+fn5+fn5+fn5+fgoKMjAxNS0wNi0wNyAwODo1OToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlIHRoZSBjdXJyZW50IHBhdGggZGVsYXkgZm9yIGNhbGN1bGF0aW9uIHRoZSBsb2NhbC9yZW1vdGUgY2xvY2sgdGltZXMKCSAgVGhlIG1lYW4gbWlnaHQgY3VycmVudGx5IGJlIGNoYW5naW5nLCBhbmQgdGhlIGN1cnJlbnQgcGF0aCBkZWxheSBpcyB0aGUKCSAgY2xvc2VzdCB3ZSBjYW4gZ2V0IHRvIHRoZSBhY3R1YWwgZGVsYXkgYXJvdW5kIHRoZSBjdXJyZW50IFNZTkMgbWVzc2FnZS4KCjIwMTUtMDYtMDYgMjM6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBzb21lIGNvcHlyaWdodCBzdHVmZgoKMjAxNS0wNi0wNiAyMTo0MzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgTlRQdjQgc3VwcG9ydAoJICBUaGlzIHVzZXMgYWxsIG9mIHRoZSBuZXRjbGllbnRjbG9jayBjb2RlLCBleGNlcHQgZm9yIHRoZSBnZW5lcmF0aW9uIGFuZAoJICBwYXJzaW5nIG9mIHBhY2tldHMuIFVuZm9ydHVuYXRlbHkgc29tZSBjb2RlIGR1cGxpY2F0aW9uIHdhcyBuZWNlc3NhcnkKCSAgYmVjYXVzZSBHc3ROZXRUaW1lUGFja2V0IGlzIHB1YmxpYyBBUEkgYW5kIGNvdWxkbid0IGJlIGV4dGVuZGVkIGVhc2lseQoJICB0byBzdXBwb3J0IE5UUHY0IHBhY2tldHMgd2l0aG91dCBicmVha2luZyBBUEkvQUJJLgoKMjAxNS0wNi0wNiAyMDozOTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogUHJlcGFyYXRpb24gZm9yIE5UUHY0IHN1cHBvcnQKCSAgV2UgZXh0ZW5kIG91ciBjYWxjdWxhdGlvbnMgdG8gd29yayB3aXRoIGxvY2FsIHNlbmQgdGltZSwgcmVtb3RlIHJlY2VpdmUgdGltZSwKCSAgcmVtb3RlIHNlbmQgdGltZSBhbmQgbG9jYWwgcmVjZWl2ZSB0aW1lLiBGb3IgdGhlIG5ldGNsaWVudGNsb2NrIHByb3RvY29sLAoJICByZW1vdGUgcmVjZWl2ZSBhbmQgc2VuZCB0aW1lIGFyZSBhc3N1bWVkIHRvIGJlIHRoZSBzYW1lIHZhbHVlLgoJICBGb3IgdGhlIHJlc3VsdHMsIHRoaXMgbW9kaWZpZWQgY2FsY3VsYXRpb24gbWFrZXMgYWJzb2x1dGVseSBubyBkaWZmZXJlbmNlCgkgIHVubGVzcyB0aGUgdHdvIHJlbW90ZSB0aW1lcyBhcmUgZGlmZmVyZW50LgoKMjAxNS0wNi0wNiAxOTowMTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jay4gRml4IGxhc3QgY29tbWl0CgkgIEFwcGFyZW50bHkgSSBmYWlsZWQgYXQgZ2l0IGFkZCAtaS4KCjIwMTUtMDYtMDYgMTg6NDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE1ha2UgZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KCkgYSB0aGluZyB3cmFwcGVyIGFyb3VuZCBnX29iamVjdF9uZXcoKQoJICBCaW5kaW5ncyB3aWxsIGxpa2UgdGhpcywgYW5kIGFsc28gaXQgZml4ZXMgYSBGSVhNRSBjb21tZW50LgoKMjAxNS0wNi0wNiAxNDozNDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlICNkZWZpbmUgZXZlcnl3aGVyZSBpbnN0ZWFkIG9mIEdfTl9FTEVNRU5UUygpCgoyMDE1LTA2LTA2IDE0OjMxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGaWx0ZXIgUlRUcyBiYXNlZCBvbiB0aGUgbWVkaWFuIG9mIHRoZSBsYXN0IFJUVHMgYmVmb3JlIGNvbnNpZGVyaW5nIHRoZW0gYXQgYWxsCgkgIFRoaXMgaW1wcm92ZXMgYWNjdXJhY3kgb24gd2lmaSBvciBzaW1pbGFyIG5ldHdvcmtzLCB3aGVyZSB0aGUgUlRUIGNhbiBnbyB2ZXJ5CgkgIGhpZ2ggdXAgZm9yIGEgc2luZ2xlIG9ic2VydmF0aW9uIGV2ZXJ5IG5vdyBhbmQgdGhlbi4gV2l0aG91dCBmaWx0ZXJpbmcgdGhlbQoJICBhd2F5IGNvbXBsZXRlbHksIHRoZXkgd291bGQgc3RpbGwgc3RpbGwgbW9kaWZ5IHRoZSBhdmVyYWdlIFJUVCwgYW5kIHRodXMgYWxsCgkgIGNsb2NrIGVzdGltYXRpb25zLgoKMjAxNS0wNi0wNiAxNDoxOToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogVXNlIGEgc3lzdGVtIGNsb2NrIGZvciB0aGUgdGltZSBvYnNlcnZhdGlvbnMgaW5zdGVhZCBvZiBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkKCSAgVGhleSBkb24ndCBuZWNlc3NhcmlseSB1c2UgdGhlIHNhbWUgdW5kZXJseWluZyBjbG9ja3MgKGUuZy4gb24gV2luZG93cyksIG9yCgkgIG1pZ2h0IGJlIGNvbmZpZ3VyZWQgdG8gYSBkaWZmZXJlbnQgY2xvY2sgdHlwZSAobW9ub3RvbmljIHZzLiByZWFsIHRpbWUgY2xvY2spLgoJICBXZSBuZWVkIHRoZSB2YWx1ZXMgYSBjbGVhbiBzeXN0ZW0gY2xvY2sgcmV0dXJucywgYXMgdGhvc2UgYXJlIHRoZSB2YWx1ZXMgdXNlZAoJICBieSB0aGUgaW50ZXJuYWwgY2xvY2tzLgoKMjAxNS0wNi0wNiAxMjozNTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogRml4IGRvY3VtZW50YXRpb24gYSBiaXQKCjIwMTUtMDYtMDUgMTk6MzU6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0czogZmFrZXNpbms6IHRlc3Qgbm90aWZ5OjpsYXN0LW1lc3NhZ2UgYW5kIGRlZXAtbm90aWZ5OjpsYXN0LW1lc3NhZ2UKCSAgZGVlcC1ub3RpZnk6Omxhc3QtbWVzc2FnZSBzZWVtcyB0byBjYXVzZSBzb21lIHByb2JsZW1zLCBzbyBkaXNhYmxlIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2NDIKCjIwMTUtMDYtMDUgMTA6MDI6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUG9zdCBhbiBlcnJvciBpZiB3ZSBjYW4ndCB0eXBlZmluZCB0aGUgZGF0YSB1bnRpbCBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDQzOQoKMjAxNS0wNi0wNCAxOTowNTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogTWFrZSBzdXJlIHRvIHVzZSBnX3BvbGwoKSBmb3IgdGhlIG1haW4gY29udGV4dAoJICBUaGUgbW9kaWZpZWQgbWFpbiBjb250ZXh0IGZyb20gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTA1NAoJICBzb21laG93IGNhbGxzIHNldHVnaWQoKSwgd2hpY2ggYWJvcnQoKXMgc2V0dWlkIHJvb3QgYXBwbGljYXRpb25zIG9uIE9TWC4KCjIwMTUtMDYtMDQgMTg6MzI6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IE1ha2Ugc3VyZSB0aGF0IHdlIGFyZSBydW5uaW5nIHNldHVpZCByb290IGlmIGNvbmZpZ3VyZWQgdGhhdCB3YXkKCjIwMTUtMDYtMDQgMTg6MDA6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IEZpeCBpbnRlcmZhY2UgbGlzdGluZyBhbmQgTUFDIHJldHJpZXZhbCBvbiBPU1gKCjIwMTUtMDYtMDMgMTk6MDQ6MTUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogQWRkIHN1cHBvcnQgZm9yIGdpbmRlbnQgYXMgZXhlY3V0YWJsZSBuYW1lCgkgIGdzdC1pbmRlbnQgdXNlZCB0byBzdXBwb3J0IGdudWluZGVudCBhbmQgaW5kZW50IGFzIGV4ZWN1dGFibGUgbmFtZXMuCgkgIEhvd2V2ZXIsIG9uIE9TWCBvbmUgY2FuICJicmV3IGluc3RhbGwgZ251LWluZGVudCIgYW5kIHRoZW4gdGhlCgkgIGV4ZWN1dGFibGUgbmFtZSB3aWxsIGJlIGdpbmRlbnQuIEFkZGVkIHN1cHBvcnQgZm9yIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzNTEKCjIwMTUtMDYtMDMgMTY6NDI6NTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogYWRkIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIKCjIwMTUtMDYtMDMgMTY6MzQ6NTggKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBwdHA6IGlnbm9yZSBwZXJtaXNzaW9uIGVycm9ycyBpbiBNYWtlZmlsZQoJICBUbyBzYXRpc2Z5IHRoZSBidWlsZHNsYXZlcyBpZ25vcmUgcGVybWlzc2lvbiBlcnJvcnMgaW4gY2hvd24sIGNobW9kIGFuZCBzZXRjYXAKCjIwMTUtMDYtMDMgMTc6MDY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogRG9uJ3QgdXNlIFNJT0NHSUZIV0FERFIgb24gQXBwbGUKCSAgSnVzdCAjaWZkZWYgdGhlIGNvZGUgZm9yIG5vdywgdGhpcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYXJvdW5kCgkgIElPS2l0IGxhdGVyIGluc3RlYWQgb2YgdXNpbmcgaW9jdGxzLgoKMjAxNS0wNi0wMyAxNjoyODo0NCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBtYWtlIGluc3RhbGwtZXhlYy1ob29rcyBkZXBlbmQgb24gaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMKCSAgVG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIHdoZXJlIG1ha2Ugd291bGQgdHJ5IHRvIGNoYW5nZSBvd25lcnNoaXAgYW5kCgkgIHBlcm1pc3Npb25zIG9mIHRoZSBub3QteWV0LWluc3RhbGxlZCBwdHAgaGVscGVyLgoKMjAxNS0wNi0wMyAxNjowODo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEZpeCBkZWJ1ZyBvdXRwdXQgdG8gcHJpbnQgdGhlIGRpZmZlcmVuY2UgaW5zdGVhZCBvZiBhYnNvbHV0ZSB2YWx1ZXMKCjIwMTUtMDYtMDMgMTU6MjI6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cGNsb2NrOiBmaXggY29tcGlsYXRpb24KCSAgRG9uJ3QgcHV0IGNvZGUgYmV0d2VlbiBkZWNsYXJhdGlvbnMuCgkgIEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKCjIwMTUtMDYtMDMgMTE6MDQ6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgbWVkaWFuIGJhc2VkIHByZS1maWx0ZXJpbmcgb2YgZGVsYXlzCgkgIElmIHRoZSBkZWxheSBtZWFzdXJlbWVudCBpcyB0b28gZmFyIGF3YXkgZnJvbSB0aGUgbWVkaWFuIG9mIHRoZSB3aW5kb3cgb2YgbGFzdAoJICBkZWxheSBtZWFzdXJlbWVudHMsIHdlIGRpc2NhcmQgaXQuIFRoaXMgaW5jcmVhc2VzIGFjY3VyYWN5IG9uIHdpZmkgYSBsb3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDIgMTU6MjQ6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgI2RlZmluZSB0byBvbmx5IHVzZSBTWU5DIG1lc3NhZ2VzIGZvciB3aGljaCB3ZSBjYW4gc2VuZCBERUxBWV9SRVEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNS0xNSAxNjo1ODo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEFkZCAjZGVmaW5lcyB0byBlbmFibGUvZGlzYWJsZSBpbXByb3ZlbWVudHMgZm9yIHVucmVsaWFibGUgbmV0d29ya3MKCSAgV2Ugc2hvdWxkIGRvIHNvbWUgbW9yZSBtZWFzdXJlbWVudHMgd2l0aCBhbGwgdGhlc2UgYW5kIGNoZWNrIGhvdyBtdWNoIHNlbnNlCgkgIHRoZXkgbWFrZSBmb3IgUFRQLiBBbHNvIGVuYWJsaW5nIHRoZW0gbWVhbnMgbm90IGZvbGxvd2luZyBJRUVFMTU4OC0yMDA4IGJ5IHRoZQoJICBsZXR0ZXIgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNS0xNCAxMjoxODoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBfcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9uZXQuaDoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9wdHAtcHJpbnQtdGltZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIHB0cDogSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIFBUUCBjbG9jawoJICBHc3RQdHBDbG9jayBpbXBsZW1lbnRzIGEgUFRQIChJRUVFMTU4ODoyMDA4KSBvcmRpbmFyeSBjbG9jayBpbgoJICBzbGF2ZS1vbmx5IG1vZGUsIHRoYXQgYWxsb3dzIGEgR1N0cmVhbWVyIHBpcGVsaW5lIHRvIHN5bmNocm9uaXplCgkgIHRvIGEgUFRQIG5ldHdvcmsgY2xvY2sgaW4gc29tZSBzcGVjaWZpYyBkb21haW4uCgkgIFRoZSBQVFAgc3Vic3lzdGVtIGNhbiBiZSBpbml0aWFsaXplZCB3aXRoIGdzdF9wdHBfaW5pdCgpLCB3aGljaCB0aGVuCgkgIHN0YXJ0cyBhIGhlbHBlciBwcm9jZXNzIHRvIGRvIHRoZSBhY3R1YWwgY29tbXVuaWNhdGlvbiB2aWEgdGhlIFBUUAoJICBwb3J0cy4gVGhpcyBpcyByZXF1aXJlZCBhcyBQVFAgbGlzdGVucyBvbiBwb3J0cyA8IDEwMjQgYW5kIHRodXMKCSAgcmVxdWlyZXMgc3BlY2lhbCBwcml2aWxlZ2VzLiBPbmNlIHRoaXMgaGVscGVyIHByb2Nlc3MgaXMgc3RhcnRlZCwgdGhlCgkgIG1haW4gcHJvY2VzcyB3aWxsIHN5bmNocm9uaXplIHRvIGFsbCBQVFAgZG9tYWlucyB0aGF0IGFyZSBkZXRlY3RlZCBvbgoJICB0aGUgc2VsZWN0ZWQgaW50ZXJmYWNlcy4KCSAgZ3N0X3B0cF9jbG9ja19uZXcoKSB0aGVuIGFsbG93cyB0byBjcmVhdGUgYSBHc3RDbG9jayB0aGF0IHByb3ZpZGVzIHRoZQoJICBQVFAgdGltZSBmcm9tIGEgbWFzdGVyIGNsb2NrIGluc2lkZSBhIHNwZWNpZmljIFBUUCBkb21haW4uIFRoaXMgY2xvY2sKCSAgd2lsbCBvbmx5IHJldHVybiB2YWxpZCB0aW1lc3RhbXBzIG9uY2UgdGhlIHRpbWVzdGFtcHMgaW4gdGhlIFBUUCBkb21haW4KCSAgYXJlIGtub3duLiBUbyBjaGVjayB0aGlzLCB0aGUgR3N0UHRwQ2xvY2s6OmludGVybmFsLWNsb2NrIHByb3BlcnR5IGFuZAoJICB0aGUgcmVsYXRlZCBub3RpZnk6OmNsb2NrIHNpZ25hbCBjYW4gYmUgdXNlZC4gT25jZSB0aGUgaW50ZXJuYWwgY2xvY2sKCSAgaXMgbm90IE5VTEwsIHRoZSBQVFAgZG9tYWluJ3MgdGltZSBpcyBrbm93bi4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHdhaXQKCSAgZm9yIHRoaXMgd2l0aCBnc3RfcHRwX2Nsb2NrX3dhaXRfcmVhZHkoKS4KCSAgVG8gZ2F0aGVyIHN0YXRpc3RpY3MgYWJvdXQgdGhlIFBUUCBjbG9jayBzeW5jaHJvbml6YXRpb24sCgkgIGdzdF9wdHBfc3RhdGlzdGljc19jYWxsYmFja19hZGQoKSBjYW4gYmUgdXNlZC4gVGhpcyBnaXZlcyB0aGUKCSAgYXBwbGljYXRpb24gdGhlIHBvc3NpYmlsaXR5IHRvIGNvbGxlY3QgYWxsIGtpbmRzIG9mIHN0YXRpc3RpY3MKCSAgZnJvbSB0aGUgY2xvY2sgc3luY2hyb25pemF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAzIDEzOjE2OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBHU1RfQ0xPQ0tfRkxBR19ORUVEU19TVEFSVFVQX1NZTkMgYW5kIHJlbGF0ZWQgQVBJCgkgIGdzdF9jbG9ja193YWl0X2Zvcl9zeW5jKCksIGdzdF9jbG9ja19pc19zeW5jZWQoKSBhbmQgZ3N0X2Nsb2NrX3NldF9zeW5jZWQoKQoJICBwbHVzIGEgc2lnbmFsIHRvIGFzeW5jaHJvbm91c2x5IHdhaXQgZm9yIHRoZSBjbG9jayB0byBiZSBzeW5jZWQuCgkgIFRoaXMgY2FuIGJlIHVzZWQgYnkgY2xvY2tzIHRvIHNpZ25hbCB0aGF0IHRoZXkgbmVlZCBpbml0aWFsIHN5bmNocm9uaXphdGlvbgoJICBiZWZvcmUgdGhleSBjYW4gcmVwb3J0IGFueSB0aW1lLCBhbmQgdGhhdCB0aGlzIHN5bmNocm9uaXphdGlvbiBjYW4gYWxzbyBnZXQKCSAgY29tcGxldGVseSBsb3N0IGF0IHNvbWUgcG9pbnQuIE5ldHdvcmsgY2xvY2tzLCBsaWtlIHRoZSBHU3RyZWFtZXIKCSAgbmV0Y2xpZW50Y2xvY2ssIE5UUCBvciBQVFAgY2xvY2tzIGFyZSBleGFtcGxlcyBmb3IgY2xvY2tzIHdoZXJlIHRoaXMgaXMgdXNlZnVsCgkgIHRvIGhhdmUgYXMgdGhleSBjYW4ndCByZXBvcnQgYW55IHRpbWUgYXQgYWxsIGJlZm9yZSB0aGV5J3JlIHN5bmNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMyAxODowMzozNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwcm92aWRlIGEgbWVtX3VubWFwIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIGZsYWdzIHRvIHVubWFwCgkgIFRoZXJlIGFyZSBnc3RtZW1vcnkncyBhdmFpbGFibGUgdGhhdCBvcGVyYXRlIGluIHR3byBtZW1vcnkgZG9tYWlucwoJICBhbmQgbmVlZCB0byBlbnN1cmUgY29uc2lzdGVudCBhY2Nlc3MgYmV0d2VlbiB0aGVzZSBkb21haW5zLgoJICBJbWFnaW5lIGEgc2NlbmFyaW8gd2hlcmUgZS5nLiB0aGUgR0xNZW1vcnkgaXMgbWFwcGVkIHR3aWNlIGluIGJvdGgKCSAgdGhlIEdQVSBhbmQgdGhlIENQVSBkb21haW4uICBPbiB1bm1hcCBvciBhIHN1YnNlcXVlbnQgbWFwLCBpdCB3b3VsZAoJICBsaWtlIHRvIGVuc3VyZSB0aGF0IHRoZSBtb3N0IHJlY2VudCBkYXRhIGlzIGF2YWlsYWJsZSBpbiB0aGUgbWVtb3J5CgkgIGRvbWFpbiByZXF1ZXN0ZWQuICBFaXRoZXIgYnkgZmx1c2hpbmcgdGhlIHdyaXRlcyBhbmQvb3IgaW5pdGlhdGluZyBhCgkgIERNQSB0cmFuc2Zlci4gIFdpdGhvdXQga25vd2luZyB3aGljaCBkb21haW4gaXMgYmVpbmcgdW5tYXBwZWQsIHRoZQoJICBtZW1vcnkgZG9lcyBub3Qga25vdyB3aGVyZSB0aGUgbW9zdCByZWNlbnQgZGF0YSBpcyB0byB0cmFuc2ZlciB0bwoJICB0aGUgb3RoZXIgbWVtb3J5IGRvbWFpbi4KCSAgTm90ZTogdGhpcyBzdGlsbCBkb2VzIG5vdCBhbGxvdyBkb3duZ3JhZGluZyBhIG1lbW9yeSBtYXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzMTkKCjIwMTUtMDYtMDIgMTY6MTQ6NTAgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGdzdF9tZW1vcnlfc2hhcmUgbWF5IGZhaWwgdG8gZXhjbHVzaXZlbHkgbG9jayB0aGUgcGFyZW50IG1lbW9yeQoJICBOb3cgdGhhdCBsb2NraW5nIGV4Y2x1c2l2ZWx5IGRvd3Mgbm90IGFsd2F5cyBzdWNjZWVkLCB3ZSBuZWVkIHRvIHNpZ25hbAoJICB0aGUgZmFpbHVyZSBjYXNlIGZyb20gZ3N0X21lbW9yeV9pbml0LgoJICBSYXRoZXIgdGhhbiBpbnRyb2R1Y2luZyBhbiBBUEkgb3IgZnVuY2lvbmFsaXR5IGNoYW5nZSB0byBnc3RfbWVtb3J5X2luaXQsCgkgIHdvcmthcm91bmQgYnkgY2hlY2tpbmcgZXhjbHVzaXZpdHkgaW4gdGhlIGNhbGxpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNi0wMiAwMDoyMzozNyArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbG9ja2luZyBtZW1vcnkgZXhjbHVzaXZlbHkgbWF5IGZhaWwKCSAgQXR0ZW1wdCB0byByZXR1cm4gYSBjb3B5IG9mIHRoZSBtZW1vcnkgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNS0zMSAyMToyNToyMyArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtaW5pb2JqZWN0OiBkaXNhbGxvdyBhIGRvdWJsZSB3cml0ZS9leGNsdXNpdmUgbG9jawoJICBnc3RfbWVtb3J5X2xvY2sgKG1lbSwgV1JJVEUgfCBFWENMVVNJVkUpOwoJICBnc3RfbWVtb3J5X2xvY2sgKG1lbSwgV1JJVEUgfCBFWENMVVNJVkUpOwoJICBTdWNjZWVkcyB3aGVuIHRoZSBwYXJ0LW1pbmlvYmplY3QudHh0IGRlc2lnbiBkb2Mgc3VnZ2VzdHMgdGhhdCB0aGlzIHNob3VsZCBmYWlsOgoJICAiQSBnc3RfbWluaV9vYmplY3RfbG9jaygpIGNhbiBmYWlsIHdoZW4gYSBXUklURSBsb2NrIGlzIHJlcXVlc3RlZCBhbmQKCSAgdGhlIGV4Y2x1c2l2ZSBjb3VudGVyIGlzID4gMS4gSW5kZWVkIGEgR3N0TWluaU9iamVjdCBvYmplY3Qgd2l0aCBhbgoJICBleGNsdXNpdmUgY291bnRlciAxIGlzIGxvY2tlZCBFWENMVVNJVkVMWSBieSBhdCBsZWFzdCAyIG9iamVjdHMgYW5kIGlzCgkgIHRoZXJlZm9yZSBub3Qgd3JpdGFibGUuIgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTcyCgoyMDE1LTA2LTAyIDIwOjMyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IG1hdGNoIHJldHVybiB0eXBlIG9mIGdldF91cmlfdHlwZSgpIGltcGxlbWVudGF0aW9uIHRvIGRlY2xhcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAyOTIKCjIwMTUtMDYtMDMgMDA6MTI6MzYgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEFkZCBhIG5vdGUgYWJvdXQgbWV0YXMgbmVlZGluZyB0byBiZSBjb3BpZWQgbGFzdAoKMjAxNS0wNS0yNyAyMjoyMzowMCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBJbXBsZW1lbnQgZ3N0X3ZhbHVlX2lzX3N1YnNldCgpIGZvciBmbGFnc2V0cwoKMjAxNS0wNi0wMiAxNjozMzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIGNoZWNrOiBVc2UgR1NUX0NIRUNLX01BSU4gbWFjcm8KCjIwMTUtMDUtMjAgMjE6MTg6MDggKzA5MDAgIGV1bmhhZSBjaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiByZWxlYXNlIGxvY2sgYmVmb3JlIHBvc3RpbmcgbXNnCgkgIHRvIGF2b2lkIHRoZSBkZWFkbG9jayBpbiBwbGF5YmluMiwKCSAgc2VuZCBtc2cgYWZ0ZXIgcmVsZWFzZSB0aGUgZG93bmxvYWQgYnVmZmVyIGxvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk1MzUKCjIwMTUtMDUtMzEgMjA6MjE6NDIgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBhZGQgbm90ZSBhYm91dCBtaXNzaW5nIGZpZWxkIGNyZWF0aW9uIG9uIF9zZXQoKQoKMjAxNS0wNS0zMCAxMzowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGZpeCBzb21lIGxlYWtzIGluIG5ldyBmbGFnc2V0IGNoZWNrcwoKMjAxNS0wNS0zMCAxMjozOToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiByZW1vdmUgZHVwbGljYXRlIGFzc2lnbm1lbnQKCSAgV2UndmUgYWxyZWFkeSBkb25lIHRoaXMgZWFybGllciBpbiB0aGUgZnVuY3Rpb24sCgkgIGFuZCBub3RoaW5nIGhhcyBjaGFuZ2VkIHNpbmNlIHdlIGZpcnN0IHJlYWQgaXQuCgoyMDE1LTA1LTI3IDE3OjIyOjI4ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdC9nc3QuYzogQWRkIGEgd2FybmluZyBhYm91dCBEbGxNYWluIHRvIHByZXZlbnQgbWlzdXNlCgkgIERsbE1haW4gc2hvdWxkIG5vdCBiZSByZWxpZWQgb24gZm9yIGFueXRoaW5nIGV4Y2VwdCBzdG9yaW5nIHRoZSBETEwgaGFuZGxlLgoJICBJdCBzaG91bGQgYWxzbyBub3QgYmUgZGVmaW5lZCBmb3Igc3RhdGljIGJ1aWxkcywgYnV0IGRvaW5nIHNvIGlzIG5vdAoJICBzdHJhaWdodGZvcndhcmQgYW5kIGlzIG1vc3RseSBoYXJtbGVzcywgc28gbGV0J3MganVzdCBhZGQgYSBjb21tZW50IGFib3V0IHRoYXQKCSAgZm9yIG5vdy4KCjIwMTUtMDUtMjcgMTM6NTQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEltcHJvdmUgZGVidWcgb3V0cHV0IGEgYml0CgoyMDE1LTA1LTI2IDE0OjQ2OjE2ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBkb2NzOiBmaXggdHlwbyBpbiBkcmFmdC1rbGFzcy50eHQKCjIwMTUtMDUtMjYgMTQ6MDM6MjUgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2NvZGUtcmV2aWV3cy9SRUFETUU6CgkqIGRvY3MvY29kZS1yZXZpZXdzL2dzdGJpbi5jLTEuNDE6CgkgIGNvZGUtcmV2aWV3czogcmVtb3ZlIG9ic29sZXRlIGNvZGUgcmV2aWV3cwoJICBUaGlzIG9ic29sZXRlIGZvbGRlciBoYXNuJ3QgYmVlbiB0b3VjaGVkIHNpbmNlIDIwMDEgYW5kIGhhcyBubyBwdXJwb3NlLiBJdAoJICBjb25mdXNlcyBuZXcgZGV2ZWxvcGVycy4KCjIwMTUtMDUtMjUgMjE6MDI6MjggKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSB0aGUgc2xpZ2h0bHkgbW9yZSBjb3JyZWN0IHRha2Vfc2FtcGxlIGZvciBsYXN0LXNhbXBsZQoJICBnc3RfdmFsdWVfdGFrZV9idWZmZXIoKSBhbmQgZ3N0X3ZhbHVlX3Rha2Vfc2FtcGxlKCkgYm90aCByZXNvbHZlIHRvCgkgIGdfdmFsdWVfdGFrZV9ib3hlZCgpLiAgVXNlIHRoZSBtZXRob2Qgd2l0aCB0aGUgY29ycmVjdCBuYW1lIGlmIHdlCgkgIGV2ZXIgY2hhbmdlIHRoYXQuCgoyMDE1LTA1LTI1IDE2OjIzOjMzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBHc3RGbGFnU2V0IHR5cGUKCSAgR3N0RmxhZ1NldCBpcyBhIG5ldyB0eXBlIGRlc2lnbmVkIGZvciBuZWdvdGlhdGluZyBzZXRzCgkgIG9mIGJvb2xlYW4gY2FwYWJpbGl0aWVzIGZsYWdzLCBjb25zaXN0aW5nIG9mIGEgMzItYml0CgkgIGZsYWdzIGJpdGZpZWxkIGFuZCAzMi1iaXQgbWFzayBmaWVsZC4gVGhlIG1hc2sgZmllbGQKCSAgaW5kaWNhdGVzIHdoaWNoIG9mIHRoZSBmbGFncyBiaXRzIGFuIGVsZW1lbnQgbmVlZHMgdG8gaGF2ZQoJICBhcyBzcGVjaWZpYyB2YWx1ZXMsIGFuZCB3aGljaCBpdCBkb2Vzbid0IGNhcmUgYWJvdXQuCgkgIFRoaXMgYWxsb3dzIGVmZmljaWVudCBuZWdvdGlhdGlvbiBvZiBhcnJheXMgb2YgYm9vbGVhbgoJICBjYXBhYmlsaXRpZXMuCgkgIFRoZSBzdGFuZGFyZCBzZXJpYWxpc2F0aW9uIGZvcm1hdCBpcyBGTEFHUzpNQVNLLCB3aXRoCgkgIGZsYWdzIGFuZCBtYXNrIGZpZWxkcyBleHByZXNzZWQgaW4gaGV4YWRlY2ltYWwsIGhvd2V2ZXIKCSAgR3N0RmxhZ1NldCBoYXMgYSBnc3RfcmVnaXN0ZXJfZmxhZ3NldCgpIGZ1bmN0aW9uLCB3aGljaAoJICBhc3NvY2lhdGVzIGEgbmV3IEdzdEZsYWdTZXQgZGVyaXZlZCB0eXBlIHdpdGggYW4gZXhpc3RpbmcKCSAgR0ZsYWdzIGd0eXBlLiBXaGVuIHNlcmlhbGl6aW5nIGEgR3N0RmxhZ1NldCB3aXRoIGFuCgkgIGFzc29jaWF0ZWQgc2V0IG9mIEdGbGFncywgaXQgYWxzbyBzZXJpYWxpemVzIGEgaHVtYW4tcmVhZGFibGUKCSAgZm9ybSBvZiB0aGUgZmxhZ3MgZm9yIGVhc2llciBkZWJ1Z2dpbmcuCgkgIEl0IGlzIHBvc3NpYmxlIHRvIHBhcnNlIGEgR0ZsYWdzIHN0eWxlIHNlcmlhbGlzYXRpb24gb2YgYQoJICBmbGFnc2V0LCB3aXRob3V0IHRoZSBoZXggcG9ydGlvbiBvbiB0aGUgZnJvbnQuIGllLAoJICArZmxhZzEvZmxhZzIvZmxhZzMrZmxhZzQsIHRvIGluZGljYXRlIHRoYXQKCSAgZmxhZzEgJiBmbGFnNCBtdXN0IGJlIHNldCwgYW5kIGZsYWcyL2ZsYWczIG11c3QgYmUgdW5zZXQsCgkgIGFuZCBhbnkgb3RoZXIgZmxhZ3MgYXJlIGRvbid0LWNhcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYzNzMKCjIwMTUtMDUtMjAgMjA6MTk6MjkgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkIGEgY29tcGFyaXNpb24gZnVuY3Rpb24gZm9yIEdzdFN0cnVjdHVyZXMKCjIwMTUtMDUtMTkgMTQ6MzQ6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IGtlZXAgR0NhbmNlbGxhYmxlIGZkIGFyb3VuZCBpbnN0ZWFkIG9mIHJlLWNyZWF0aW5nIGl0IGNvbnN0YW50bHkKCSAgSnVzdCBjcmVhdGUgdGhlIGNhbmNlbGxhYmxlIGZkIG9uY2UgYW5kIGtlZXAgaXQgYXJvdW5kIGluc3RlYWQKCSAgb2YgY3JlYXRpbmcvY2xvc2luZyBpdCBmb3IgZXZlcnkgc2luZ2xlIHBhY2tldC4gU2luY2Ugd2Ugc3BlbmQKCSAgbW9zdCB0aW1lIHdhaXRpbmcgZm9yIHBhY2tldHMsIGFuIGZkIGlzIGFsbG9jZWQgYW5kIGluIHVzZSBwcmV0dHkKCSAgbXVjaCBhbGwgdGhlIHRpbWUgYW55d2F5LgoKMjAxNS0wNS0xOCAxMjo1MjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgUmV2ZXJ0ICJkb2M6IFdvcmthcm91bmQgZ3RrZG9jIGlzc3VlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ2MGE3YmY2ODI5MmQwNTdjNzdlODRkMWVhODZiOGU3M2ZjMDgxZjMuCgkgIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGJ5IHRoZSBndGstZG9jIDEuMjMgcmVsZWFzZS4KCSAgPHBhcmE+IGNhbm5vdCBjb250YWluIDxyZWZzZWN0Mj46CgkgIGh0dHA6Ly93d3cuZG9jYm9vay5vcmcvdGRnL2VuL2h0bWwvcGFyYS5odG1sCgkgIGh0dHA6Ly93d3cuZG9jYm9vay5vcmcvdGRnL2VuL2h0bWwvcmVmc2VjdDIuaHRtbAoKMjAxNS0wNS0xMSAxMDo1MjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogc21hbGwgY2xlYW51cAoJICBUaGUgZXJyb3IgcGF0aCB1bnJlZnMgZmlsZS0+ZmlsZSBzbyBtYWtlIHN1cmUgd2Ugb25seSBnbyB0aGVyZSB3aGVuCgkgIHRoZXJlIGlzIGEgbm9uLU5VTEwgZmlsZS0+ZmlsZS4KCjIwMTUtMDUtMTYgMjM6Mjk6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBkb2M6IFdvcmthcm91bmQgZ3RrZG9jIGlzc3VlCgkgIFdpdGggZ3RrZG9jIDEuMjIsIHRoZSBYTUwgZ2VuZXJhdG9yIGZhaWxzIHdoZW4gYSBpdGVtaXplZGxpc3QgaXMKCSAgZm9sbG93ZWQgYnkgYSByZWZzZWN0Mi4gV29ya2Fyb3VuZCB0aGUgaXNzdWUgYnkgd3JhcHBpbmcgdGhlIHJlZnNlY3QyCgkgIGludG8gcGFyYS4KCjIwMTUtMDUtMTMgMTM6Mjg6MDUgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMTYgMTI6NTc6MTIgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IENoZWNrIHRoYXQgdGhlIG9ubHkgaXRlciBpcyB0aGUgZW5kIGl0ZXIgaW4gdGhlIEdTZXF1ZW5jZQoJICBQcmV2aW91cyBwYXRjaCB3YXMgYXNzdW1pbmcgdGhhdCBpZiB0aGUgcmV0dXJuZWQgaXRlciB3YXMgdGhlIGxhc3QgaXRlcgoJICB0aGUgR1NlcXVlbmNlIHdhcyBlbXB0eSwgd2hpY2ggaXMgb2J2aW91c2x5IHdyb25nLgoKMjAxNS0wNS0xNiAxMToxNzo0MCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogRml4IHJlbW92aW5nIGFsbCBrZXlmcmFtZXMsIGFuZCBhZGRpbmcgb25lIGJhY2sKCSAgV2Ugd2VyZSBzZWdmYXVsdGluZyBiZWNhdXNlIGdfc2VxdWVuY2Vfc2VhcmNoIHdhcyByZXR1cm5pbmcgdGhlIGl0ZXJfZW5kLAoJICBhbmQgdGhhdCBpdGVyYXRvciBkb2VzIG5vdCBjb250YWluIGFueXRoaW5nIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgdXNlZAoJICBkaXJlY3RseQoKMjAxNS0wNS0xNSAyMDo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBmaXggcHJvcGVydHkgZGVzY3JpcHRpb24KCSAgV2UncmUgZW50ZXJwcmlzZSBub3cgZm9sa3MuCgoyMDE1LTA1LTE1IDE0OjU3OjE0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBidW1wIGNoYWluIGZ1bmN0aW9uIGNhbGwgbG9ncyBmcm9tIExPRyB0byBERUJVRwoJICBUaGV5J3JlIHJlYWxseSB1c2VmdWwgY29tcGFyZWQgdG8gb3RoZXIgTE9HIHN0dWZmIGluIHRoZXJlLCBzbwoJICB0aGVyZSBpcyB2YWx1ZSBpcyBpbmNsdWRpbmcgdGhlbSBhbmQgbm90IHRoZSByZXN0LgoKMjAxNS0wNS0xNSAxMzo0MzoxMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IGFkZCBnc3Rfb2JqZWN0X2hhc19hc19hbmNlc3RvciBhbmQgZGVwcmVjYXRlIHByZXZpb3VzIGZ1bmN0aW9uCgkgIFRoZSBvbGQgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3Igd2lsbCBjYWxsIHRoZSBuZXcgY29kZS4gVGhpcyBlc3RhYmxpc2hlcyB0aGUKCSAgc3ltZXRyeSB3aXRoIHRoZSBuZXcgZ3N0X29iamVjdF9oYXNfYXNfcGFyZW50LgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX2FzX2FuY2VzdG9yKCkKCjIwMTUtMDUtMTUgMDg6MDU6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiByZW5hbWUgZ3N0X29iamVjdF9oYXNfcGFyZW50IHRvIGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudAoJICBUaGlzIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGEgcG90ZW50aWFsIHB1bmN0aW9uIHRoYXQgY2hlY2sgaWYgYSBnc3RvYmplY3QgaGFzLWEKCSAgcGFyZW50LgoJICBBUEk6IGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudCgpCgoyMDE1LTA1LTE0IDE1OjQ5OjQzICswODAwICBKaWFuIDxKaWFuLkxpQGZyZWVzY2FsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggUW9TL2xhdGVuZXNzIGNoZWNraW5nIGlmIHN1YmNsYXNzIGltcGxlbWVudHMgcHJlcGFyZS9wcmVwYXJlX2xpc3QgdmZ1bmNzCgkgIEluIGJhc2VzaW5rIGZ1bmN0aW9ucyBnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKCksIGJlbG93IGNvZGUgaXMgdXNlZCB0bwoJICBjaGVja2luZyBpZiBidWZmZXIgaXMgbGF0ZSBiZWZvcmUgZG9pbmcgcHJlcGFyZSBjYWxsIHRvIHNhdmUgc29tZSBlZmZvcnQ6CgkgIGlmIChzeW5jYWJsZSAmJiBkb19zeW5jKQoJICBsYXRlID0KCSAgZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSAoYmFzZXNpbmssIG9iaiwgcnN0YXJ0LCByc3RvcCwKCSAgR1NUX0NMT0NLX0VBUkxZLCAwLCBGQUxTRSk7CgkgIGlmIChHX1VOTElLRUxZIChsYXRlKSkKCSAgZ290byBkcm9wcGVkOwoJICBCdXQgdGhpcyBjb2RlIGhhcyBwcm9ibGVtLCBpdCBzaG91bGQgY2FsY3VsYXRlIGppdHRlciBiYXNlZCBvbiBjdXJyZW50IG1lZGlhCgkgIGNsb2NrLCByYXRoZXIgdGhhbiBqdXN0IHBhc3NpbmcgMC4gSSBmb3VuZCBpdCB3aWxsIGRyb3AgYWxsIHRoZSBmcmFtZXMgd2hlbgoJICByZXdpbmQgaW4gc2xvdyBzcGVlZCwgc3VjaCBhcyAtMlguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkyNTgKCjIwMTUtMDUtMTEgMTc6MTQ6NTAgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZG9jczogZml4IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoJICBVcGRhdGUgZXhhbXBsZSB0byB1c2UgZ3N0LWxhdW5jaC0xLjAgYW5kIGZpeCBhIHBhcmFncmFwaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTIzMwoKMjAxNS0wNS0wOSAxMTo1Mzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBBZGQgcmVtb3ZlZCBleGFtcGxlIGRpcmVjdG9yaWVzIHRvIENSVUZUX0RJUlMKCjIwMTUtMDUtMDggMTQ6MDg6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGRvY3M6IGdzdC1sYXVuY2ggLT4gZ3N0LWxhdW5jaC0xLjAgaW4gZXhhbXBsZSBwaXBlbGluZXMKCSAgQW5kIHNvbWUgc21hbGwgZXhhbXBsZSBwaXBlbGluZSBmaXgtdXBzLgoKMjAxNS0wNS0wOSAyMjoxMDozMCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wOSAyMjowNDo1MiAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDkgMjI6MDE6MDQgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wMiAxNzoxNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlcyB0byBtZW50aW9uIG5ldyBkZXZpY2UgcHJvYmluZyBBUEkKCjIwMTUtMDUtMDEgMjA6Mzc6MTggLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiBtaW5vciBjb3JyZWN0aW9ucwoKMjAxNS0wNS0wMSAxODozMjoyNiArMDkwMCAgSmltbXkgT2huIDx5b25namluLm9obkBsZ2UuY29tPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiByZW1vdmUgZHVwbGljYXRlZCBpbmNsdWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg3MzkKCjIwMTUtMDQtMjggMTk6NTk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICB0ZXN0czogcmVtb3ZlIHNvbWUgcG9pbnRsZXNzIGFuY2llbnQgY29kZSBleGFtcGxlcwoKMjAxNS0wNC0yOCAxNzo1NDo1MSArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IEdTVF9CQVNFX1BBUlNFX0ZMQUdfTE9TVF9TWU5DCgkgIFNpbmNlIGZyYW1lLT5wcml2LT5kaXNjb250IHdhcyBjbGVhcmVkIGVhcmxpZXIsCgkgIEdTVF9CQVNFX1BBUlNFX0ZMQUdfTE9TVF9TWU5DIHdhcyBuZXZlciBiZWluZyBzZXQuCgkgIFRha2UgdGhlIGNoYW5jZSB0byByZWZhY3RvciB0aGUgZnJhbWUgY3JlYXRpb24gYSBiaXQgdG8KCSAgb3JnYW5pemUgdGhlIGZsYWdzIHNldHRpbmcgYW5kIHJlc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjM3CgoyMDE1LTAzLTA5IDE5OjMxOjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc3BlY3QgRElTQ09OVCBmbGFnIG9uIGJ1ZmZlcnMKCSAgRHJhaW4gdGhlIHBhcnNlciB3aGVuIGEgRElTQ09OVCBidWZmZXIgaXMgcmVjZWl2ZWQgYW5kIHRoZW4gbWFyawoJICB0aGUgbmV4dCBidWZmZXIgdG8gYmUgcHVzaGVkIGFzIGEgRElTQ09OVCBvbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkyNwoKMjAxNS0wNC0yOCAxNTo1MDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IENvcHkgdGhlIHRhZyBzY29wZSB0b28gd2hlbiBjb3B5aW5nIHRhZyBsaXN0cwoKMjAxNS0wNC0yMCAyMDowMjo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IEFsc28gc3luY2hyb25pemUgR0FQIGV2ZW50cyBpbiBzeW5jPTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOTozMTozNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogV2l0aCBzeW5jPXRydWUsIGRvbid0IHByZS1yb2xsCgkgIFRvIGFjdCBsaWtlIGEgcmVhbCBsaXZlIGVsZW1lbnQsIGJsb2NrIHRoZSBzdHJlYW1pbmcgd2hlbiBwYXVzZWQsIGFuZAoJICByZXR1cm4gTk9fUFJFUk9MTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yMCAxOToyNDo0NSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogVGFrZSB1cHN0cmVhbSBsYXRlbmN5IGludG8gYWNjb3VudCBmb3Igc3luYz0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MDc6MjcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBIYW5kbGUgUFRTIGFuZCBEVFMgc2VwYXJhdGVseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTI2IDE3OjA1OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSogQW5kcm9pZC5tazoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgb2Jzb2xldGUgQW5kcm9pZCBidWlsZCBjcnVmdAoJICBUaGlzIGlzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTUtMDQtMjQgMTY6NTE6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogT25seSB0cnkgdG8gcHVzaCB0aGUgZmlyc3QgRU9TIHJlY2VpdmVkCgkgIFN1YnNlcXVlbnQgRU9TIHdpbGwgcHVzaCBvbiB0aGUgc291cmNlIHBhZCB0aGF0IGFscmVhZHkgcmVjZWl2ZWQKCSAgRU9TIGFuZCB0aGF0IHdpbGwgbWFrZSB0aGUgZXZlbnQgZnVuY3Rpb24gcmV0dXJuIEZBTFNFLiBJdCBuZWVkcwoJICBvbmx5IHRvIHB1c2ggdGhlIGZpcnN0IG9uZSBhbmQgb25seSByZXR1cm4gVFJVRSBmb3IgdGhlIHN1YnNlcXVlbnQKCSAgb25lcy4KCjIwMTUtMDQtMjQgMTU6MTk6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJpbnRmLmM6CgkgIHRlc3RzOiBwcmludGY6IGFkZCB1bml0IHRlc3QgZm9yICUlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg0MTQKCjIwMTUtMDQtMjQgMTU6MTY6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGNhc2Ugb2YgJSUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODQxNAoKMjAxNS0wNC0yMyAxNTo1NTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZGVmaW5lIEdTVF9DSEVDS19URVNUX0VOVklST05NRU5UX0JFQUNPTgoKMjAxNS0wNC0yMyAxNTo1NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBvcHRpb25hbGx5IGNoZWNrIGVudiB2YXIgZm9yIHVzIHRvIG1ha2Ugc3VyZSB0ZXN0IGVudiBpcyBzZXQgdXAKCSAgSWYgR1NUX0NIRUNLX1RFU1RfRU5WSVJPTk1FTlRfQkVBQ09OIGlzIGRlZmluZWQsIGNoZWNrIGlmIHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpdCBpcyBkZWZpbmVkIHRvIGlzIHNldCB1cCBhdCB0aGUgc3RhcnQKCSAgb2YgZWFjaCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMyAwOTowNjo0MiArMDkwMCAgQ2hhbmdib2sgQ2hlYSA8Y2hhbmdib2suY2hlYUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmVtb3ZlIHVudXNlZCBhc3NpZ25tZW50IGluIHBlcmZvcm1fc2VlaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzNDUKCjIwMTUtMDQtMjIgMTE6NDQ6MDAgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3Q6IG1lbW9yeTogQWRkZWQgdGVzdCB0byB2ZXJpZnkgdGhlIGFsbG9jYXRpb24gcGFyYW1zCgkgIE5ldyB0ZXN0IGFkZGVkIHRvIHZlcmlmeSB0aGUgYWxsb2NhdGlvbiBwYXJhbXMgZm9yIHRoZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODI3NwoKMjAxNS0wNC0yMiAxMTowNDowNiAtMDYwMCAgSmFzb24gTGl0emluZ2VyIDxqbGl0emluZ2VyQGNvbnRyb2w0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBhZGQgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpbmZpbml0ZSBsb29wCgkgIGdzdF9kZWJ1Z191bnNldF90aHJlc2hvbGRfZm9yX25hbWUoKSB1c2VkIHRvIGdvIGludG8gYW4KCSAgaW5maW5pdGUgbG9vcCB3aGVuIHRoZXJlIHdhcyBtb3JlIHRoYW4gb25lIGNhdGVnb3J5IGluCgkgIHRoZSBsaXN0LiAgVGhpcyB0ZXN0IGNhcHR1cmVzIHRoZSBwcm9ibGVtIGJ5IGZhaWxpbmcKCSAgdmlhIHRpbWVvdXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMjEKCjIwMTUtMDQtMjIgMTI6MDM6MzMgLTA2MDAgIEphc29uIExpdHppbmdlciA8amxpdHppbmdlckBjb250cm9sNC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggaW5maW5pdGUgbG9vcCBpbiBnc3RfZGVidWdfdW5zZXRfdGhyZXNob2xkX2Zvcl9uYW1lKCkKCSAgRW5zdXJlIGl0ZXJhdG9yIGlzIGFkdmFuY2VkLiBUaGUgY3VycmVudCBsaXN0IGl0ZXJhdGlvbiBjb2RlIG9ubHkKCSAgYWR2YW5jZXMgdGhlIGl0ZXJhdG9yICh3YWxrKSBpZiBhIG1hdGNoIGlzIGZvdW5kLCB3aGljaCByZXN1bHRzCgkgIGluIGFuIGluZmluaXRlIGxvb3Agd2hlbiBtb3JlIHRoYW4gb25lIGVudHJ5IGV4aXN0cyBpbiB0aGUgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMyMQoKMjAxNS0wNC0yMiAxMDoxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IG1pc2NlbGxhbmVvdXMgZml4ZXMKCSAgRXJyb3Igb3V0IGlmIHJlcXVpcmVkIGJ1aWxkIHRvb2xzIChmbGV4LCBiaXNvbiwgcGtnLWNvbmZpZykKCSAgYXJlIG5vdCBwcmVzZW50LCBpbnN0ZWFkIG9mIHByaW50aW5nIGEgbWVzc2FnZSBhbmQgdGhlbgoJICBjb250aW51aW5nLgoJICBDaGVjayBvdXQgc3VibW9kdWxlcyB3aGVuIGZldGNoaW5nIHRoZSByZXBvc2l0b3JpZXMsIHNvCgkgIHRoZXkncmUgYWxyZWFkeSB0aGVyZSBhbmQgcmVhZHkgbGF0ZXIuCgkgIFJlbW92ZSBzb21lIDAuMTAgY3J1ZnQuCgoyMDE1LTA0LTIyIDA5OjU5OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgQWRkIElOU1RBTEwgdG8gLmdpdGlnbm9yZQoKMjAxNS0wNC0yMiAwOTo1Njo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHRlc3RzOiBlcnJvciBvdXQgaWYgdGVzdCBlbnZpcm9ubWVudCBpcyBub3QgYWN0dWFsbHkgc2V0IHVwIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIyIDA5OjUyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGNhbiB1c2UgQU1fU0lMRU5UX1JVTEVTIHVuY29uZGl0aW9uYWxseSBub3cKCSAgaHR0cHM6Ly9hdXRvdG9vbHMuaW8vYXV0b21ha2Uvc2lsZW50Lmh0bWwKCjIwMTUtMDQtMjIgMDk6NDc6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBhdXRvbWFrZSByZXF1aXJlbWVudCB0byAxLjE0IGFuZCBhdXRvY29uZiB0byAyLjY5CgkgIFRoaXMgaXMgb25seSByZXF1aXJlZCBmb3IgYnVpbGRzIGZyb20gZ2l0LCBwZW9wbGUgY2FuIHN0aWxsCgkgIGJ1aWxkIHRhcmJhbGxzIGlmIHRoZXkgb25seSBoYXZlIG9sZGVyIGF1dG90b29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjIgMTA6MzI6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBJTlNUQUxMOgoJICBSZW1vdmUgSU5TVEFMTCBmaWxlCgkgIGF1dG90b29scyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoaXMsIGFuZCB3aGVuIHVzaW5nIGRpZmZlcmVudCB2ZXJzaW9ucwoJICBmb3IgYXV0b2dlbi5zaCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBjaGFuZ2VzIHRvIGEgZmlsZSB0cmFja2VkIGJ5IGdpdC4KCjIwMTUtMDQtMjAgMjI6MDc6MzQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3RyZWFtZXItdW5pbnN0YWxsZWQ6IFVwZGF0ZSBwYXRoIHRvIHRoZSBHc3RWYWxpZGF0ZSBzY2VuYXJpb3MKCjIwMTUtMDQtMjAgMDk6MjM6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIG1ldGEgdHJhbnNmb3JtIGZ1bmN0aW9uIGluIGdzdF9idWZmZXJfY29weV9pbnRvKCkKCSAgLi4uIGJ5IHByaW50aW5nIHNvbWUgZGVidWcgb3V0cHV0IHdoZW5ldmVyIGNvcHlpbmcgYSBHc3RNZXRhIGZhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MTE5CgoyMDE1LTA0LTE4IDEyOjMxOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBmaXggaGVhZGVyIGZvcm1hdHRpbmcKCjIwMTUtMDQtMTggMTI6Mjg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICB0ZXN0czogcHJvdGVjdGlvbjogZml4IGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE1LTA0LTE4IDEyOjI3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5oOgoJICBnc3QuaDogaW5jbHVkZSB0aGUgbmV3IGdzdHByb3RlY3Rpb24uaCBoZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xNSAxNTozMzozMSArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcHJvdGVjdGlvbjogYWRkIEdzdFByb3RlY3Rpb25NZXRhIHRvIHN1cHBvcnQgcHJvdGVjdGVkIGNvbnRlbnQKCSAgSW4gb3JkZXIgdG8gc3VwcG9ydCBzb21lIHR5cGVzIG9mIHByb3RlY3RlZCBzdHJlYW1zIChzdWNoIGFzIHRob3NlCgkgIHByb3RlY3RlZCB1c2luZyBEQVNIIENvbW1vbiBFbmNyeXB0aW9uKSBzb21lIHBlci1idWZmZXIgaW5mb3JtYXRpb24KCSAgbmVlZHMgdG8gYmUgcGFzc2VkIGJldHdlZW4gZWxlbWVudHMuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSBHc3RNZXRhIHR5cGUgY2FsbGVkIEdzdFByb3RlY3Rpb25NZXRhIHRoYXQgYWxsb3dzCgkgIHByb3RlY3Rpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8gYmUgYWRkZWQgdG8gYSBHc3RCdWZmZXIuIEFuIGV4YW1wbGUKCSAgb2YgaXRzIHVzYWdlIGlzIHF0ZGVtdXggcHJvdmlkaW5nIGluZm9ybWF0aW9uIHRvIGVhY2ggb3V0cHV0IHNhbXBsZQoJICB0aGF0IGVuYWJsZXMgYSBkb3duc3RyZWFtIGVsZW1lbnQgdG8gZGVjcnlwdCBpdC4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHV0aWxpdHkgZnVuY3Rpb24gdG8gc2VsZWN0IGEgc3VwcG9ydGVkIHByb3RlY3Rpb24KCSAgc3lzdGVtIGZyb20gdGhlIGluc3RhbGxlZCBEZWNyeXB0aW9uIGVsZW1lbnRzIGZvdW5kIGluIHRoZSByZWdpc3RyeS4KCSAgVGhlIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBhcnJheSBvZgoJICBpZGVudGlmaWVycyBhbmQgc2VhcmNoZXMgdGhlIHJlZ2lzdHJ5IGZvciBhIGVsZW1lbnQgb2Yga2xhc3MgRGVjcnlwdG9yIHRoYXQKCSAgc3VwcG9ydHMgb25lIG9yIG1vcmUgb2YgdGhlIHN1cHBsaWVkIGlkZW50aWZpZXJzLiBJZiBtdWx0aXBsZSBlbGVtZW50cwoJICBhcmUgZm91bmQsIHRoZSBvbmUgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGlzIHNlbGVjdGVkLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdW5pdCB0ZXN0IGZvciB0aGUgZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbQoJICBmdW5jdGlvbiB0aGF0IGFkZHMgYSBmYWtlIERlY3J5cHRvciBlbGVtZW50IHRvIHRoZSByZWdpc3RyeSBhbmQgdGhlbgoJICBjaGVja3MgdGhhdCBpdCBjYW4gY29ycmVjdGx5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1dGlsaXR5IGZ1bmN0aW9uLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgdW5pdCB0ZXN0IGZvciBHc3RQcm90ZWN0aW9uTWV0YSB0aGF0IGNyZWF0ZXMKCSAgR3N0UHJvdGVjdGlvbk1ldGEgYW5kIGFkZHMgJiByZW1vdmVzIGl0IGZyb20gYSBidWZmZXIgYW5kIHBlcmZvcm1zIHNvbWUKCSAgc2ltcGxlIHJlZmVyZW5jZSBjb3VudCBjaGVja3MuCgkgIEFQSTogZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhKCkKCSAgQVBJOiBnc3RfYnVmZmVyX2dldF9wcm90ZWN0aW9uX21ldGEoKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0oKQoJICBBUEk6IGdzdF9wcm90ZWN0aW9uX21ldGFfYXBpX2dldF90eXBlKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9tZXRhX2dldF9pbmZvKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wMy0xNiAxMjozNToyNyArMDAwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgbmV3IEdTVF9FVkVOVF9QUk9URUNUSU9OCgkgIEluIG9yZGVyIGZvciBhIGRlY3J5cHRlciBlbGVtZW50IHRvIGRlY3J5cHQgbWVkaWEgcHJvdGVjdGVkIHVzaW5nIGEKCSAgc3BlY2lmaWMgcHJvdGVjdGlvbiBzeXN0ZW0sIGl0IGZpcnN0IG5lZWRzIGFsbCB0aGUgcHJvdGVjdGlvbiBzeXN0ZW0KCSAgc3BlY2lmaWMgIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSAoRS5nLiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gYWNxdWlyZQoJICB0aGUgZGVjcnlwdGlvbiBrZXlzKSBmb3IgdGhhdCBzdHJlYW0uCgkgIFRoZSBHU1RfRVZFTlRfUFJPVEVDVElPTiBkZWZpbmVkIGluIHRoaXMgY29tbWl0IGVuYWJsZXMgdGhpcyBpbmZvcm1hdGlvbgoJICB0byBiZSBwYXNzZWQgZnJvbSBlbGVtZW50cyB0aGF0IGV4dHJhY3QgaXQgKGUuZy4gcXRkZW11eCwgZGFzaGRlbXV4KSB0bwoJICBlbGVtZW50cyB0aGF0IHVzZSBpdCAoRS5nLiBhIGRlY3J5cHRlciBlbGVtZW50KS4KCSAgQVBJOiBHU1RfRVZFTlRfUFJPVEVDVElPTgoJICBBUEk6IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbigpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTE4IDExOjQyOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggdXNlIG9mIHBvc3NpYmx5LWZyZWVkIHBhZCBpbiBkZWJ1ZyBzdGF0ZW1lbnQKCSAgVGhlIGdzdF9vYmplY3RfdW5yZWYoKSBpbiB0aGUgYmxvY2sgYWJvdmUgbWF5IGJlIGRyb3BwaW5nCgkgIHRoZSBsYXN0IHJlZiB0byB0aGUgcGFkIGFuZCBmcmVlIHRoZSBwYWQuIFNldCBwYWQgcG9pbnRlcgoJICB0byBOVUxMIGhlcmUsIHNvIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHVzZSBhCgkgIHBvc3NpYmx5LWZyZWVkIHBhZCBwb2ludGVyIGluIHRoZSBkZWJ1ZyBsb2cgc3RhdGVtZW50cwoJICBmdXJ0aGVyIGJlbG93LCBhbmQgYWxzbyB1c2UgdGhlIHRlZSBlbGVtZW50IGFzIGxvZyBvYmplY3QKCSAgc2luY2UgdGhhdCdzIG1vcmUgYXBwcm9wcmlhdGUgYW55d2F5LgoJICBGaXhlcyB2YWxncmluZCB3YXJuaW5ncyBhbmQgY3Jhc2hlcyBpbiB0ZWUgdGVzdF9zdHJlc3MKCSAgdW5pdCB0ZXN0IHdoZW4gZGVidWcgbG9nZ2luZyBpcyBlbmFibGVkLgoKMjAxNS0wNC0xOCAxMjowMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHRlc3RzOiBpbmZvOiBmaXggdW5pdCB0ZXN0IHdoZW4gcnVuIHdpdGggR1NUX0RFQlVHPSo6OQoJICBPbmx5IHNhdmUgdGhlIG1lc3NhZ2VzIHdlJ3JlIGludGVyZXN0ZWQgaW4gYW5kIGV4cGVjdGluZy4KCSAgV2hlbiBydW4gd2l0aCAqOjkgd2UgbWlnaHQgZ2V0IGFkZGl0aW9uYWwgVFJBQ0UgbGV2ZWwKCSAgbWVzc2FnZXMgZnJvbSBvdGhlciBjYXRlZ29yaWVzIGFuZCB0aGVuIHdlIGRvbid0IGVuZCB1cAoJICB3aXRoIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgd2UgZXhwZWN0LgoKMjAxNS0wNC0xOCAxMToyNToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogZml4IGJ1ZmZlciBsZWFrIGluIG5ldyBibG9ja2luZ193aXRoX3Byb2JlX3R5cGVfaWRsZSB0ZXN0CgoyMDE1LTA0LTE4IDExOjExOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBmaXggaW52YWxpZCBtZW1vcnkgYWNjZXNzIGluIGRlYnVnIGxvZyBtZXNzYWdlCgkgIFRoZSBzdHJpbmcgd2UgcHV0IGluIHRoZSBidWZmZXIgaXMgbm90IE5VTC10ZXJtaW5hdGVkLCBzbwoJICBkb24ndCB0cnkgdG8gcHJpbnQgdGhhdCB2aWEgJXMgaW4gYSBkZWJ1ZyBsb2cgbWVzc2FnZS4KCjIwMTUtMDQtMTcgMTU6MTk6MDcgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IG9uIE9TWCwgTUtESVJfUCBpcyBpbnN0YWxsLXNoIC1jIC1kCgkgIFNvIHdlIG5lZWQgdG8gY2FsbCBpdCBiZWZvcmUgY2RpbmcgdG8gdGhlIGJpbiBkaXJlY3RvcnkuCgoyMDE1LTA0LTE3IDEzOjAyOjEyICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBpbnN0YWxsIC1EIGlzbid0IHBvcnRhYmxlLCB1c2UgJChNS0RJUl9QKSBpbnN0ZWFkLgoKMjAxNS0wNC0xNCAxMDo0NzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiB0ZXN0IHRoYXQgaWRsZSBwcm9iZSB3aWxsIGJsb2NrCgkgIFRoaXMgdGVzdHMgYWRkIGFuIGlkbGUgcHJvYmUgb24gYW4gaWRsZSBwYWQgZnJvbSBhIHNlcGFyYXRlIHRocmVhZAoJICBzbyB0aGF0IHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgaW1tZWRpYXRlbGx5LiBUaGlzIGNhbGxiYWNrIHdpbGwgc2l0CgkgIHN0aWxsIGFuZCB0aGVuIHdlIHRyeSB0byBwdXNoIGEgYnVmZmVyIG9uIHRoaXMgc2FtZSBwYWQuIEl0IHZlcmlmaWVzCgkgIHRoYXQgdGhlIGlkbGUgcHJvYmUgYmxvY2tzIGRhdGEgcGFzc2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3ODUyCgoyMDE1LTA0LTE0IDE3OjA2OjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYmxvY2sgZGF0YSBmbG93IHdoZW4gaWRsZSBwcm9iZSBpcyBydW5uaW5nCgkgIFdoZW4gaWRsZSBwcm9iZSBydW5zIGRpcmVjdGx5IGZyb20gdGhlIGdzdF9wYWRfYWRkX3Byb2JlKCkgZnVuY3Rpb24KCSAgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBubyBkYXRhIGZsb3cgaGFwcGVucyBhcyBpZGxlIHByb2JlCgkgIGlzIGEgYmxvY2tpbmcgcHJvYmUuIFRoZSBpZGxlIHByb2JlIHdpbGwgcHJldmVudCB0aGF0IGFueQoJICBidWZmZXIsIGJ1ZmZlcmxpc3Qgb3Igc2VyaWFsaXplZCBldmVudHMgYW5kIHF1ZXJpZXMgYXJlIG5vdAoJICBmbG93aW5nIHdoaWxlIGl0IGlzIHJ1bm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc4NTIKCjIwMTUtMDQtMTYgMTM6NDE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvY3M6IGNsYXJpZnkgdGhhdCByZXR1cm4gdmFsdWUgb2YgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIG11c3QgYmUgZnJlZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzEwNAoKMjAxNS0wNC0xNSAxMTowMjo1NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGJpbjogdW5kbyB1cHdhcmQgc3RhdGUgY2hhbmdlcyBvbiBjaGlsZHJlbiB3aGVuIGEgY2hpbGQgZmFpbHMKCSAgV2hlbiBhIGJpbiBjaGFuZ2VzIHN0YXRlcyB1cHdhcmRzLCBhbmQgYSBjaGlsZCBmYWlscyB0byBjaGFuZ2UsCgkgIGFueSBjaGlsZCB0aGF0IHdhcyBhbHJlYWR5IHN3aXRjaGVkIHdpbGwgbm90IGJlIHJlc2V0IHRvIGl0cwoJICBvcmlnaW5hbCBzdGF0ZSwgbGVhdmluZyBpdHMgc3RhdGUgaW5jb25zaXN0ZW50IHdpdGggdGhlIGJpbiwKCSAgd2hpY2ggZG9lcyBub3QgY2hhbmdlIHN0YXRlIGR1ZSB0byB0aGUgZmFpbHVyZS4KCSAgSWYgdGhlIHN0YXRlIGNoYW5nZSB3YXMgZnJvbSBOVUxMIHRvIFJFQURZLCBpdCBtZWFucyB0aGF0IGRlbGV0aW5nCgkgIHRoaXMgYmluIHdpbGwgY2F1c2UgdGhvc2UgY2hpbGRyZW4gdG8gYmUgZGVsZXRlZCB3aGlsZSBub3QgaW4KCSAgTlVMTCBzdGF0ZSwgd2hpY2ggaXMgYSBCYWQgVGhpbmcuIEZvciBvdGhlciB1cHdhcmQgY2hhbmdlcywgaXQKCSAgaXMgbGVzcyBvZiBhIHByb2JsZW0sIGFzIGEgc3Vic2VxdWVudCBzd2l0Y2ggYmFjayB0byBOVUxMIHdpbGwKCSAgY2F1c2UgYW4gYWN0dWFsIGRvd253YXJkcyBjaGFuZ2Ugb24gdGhvc2UgaW5jb25zaXN0ZW50IGVsZW1lbnRzLAoJICBhbGJlaXQgZnJvbSB0aGUgIndyb25nIiBzdGF0ZS4KCSAgV2Ugbm93IHJlc2V0IHN0YXRlIHRvIHRoZSBvcmlnaW5hbCBvbmUgd2hlbiBhIGNoaWxkIGZhaWxzLgoJICBJbmNsdWRlcyB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2MTAKCjIwMTUtMDQtMTUgMTQ6NDU6MjEgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGhlbHBlcnM6IHVzZSAkKElOU1RBTEwpIHRvIC4uLiBpbnN0YWxsIHRoZSBoZWxwZXIuCgkgIEFzIGl0IHdpbGwgY3JlYXRlIHRoZSBmb2xkZXJzIGFuZCBzZXQgcGVybWlzc2lvbnMgYXBwcm9wcmlhdGVseSwKCSAgYmV0dGVyIHRoYW4gZG9pbmcgaXQgbWFudWFsbHkuCgoyMDE1LTA0LTE1IDEzOjAyOjM2ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBGaXggTWFrZWZpbGUuYW0gdG8gaW5zdGFsbCB0aGUgY29tcGxldGlvbi1oZWxwZXIgY29ycmVjdGx5LgoJICArIFRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZCBhdCBpbnN0YWxsLWV4ZWMgdGltZSwgd2UgdGh1cyBuZWVkCgkgIHRvIG1vdmUgaXQgaW4gaW5zdGFsbC1leGVjLWhvb2ssIG5vdCBpbnN0YWxsLWRhdGEtaG9vay4KCjIwMTUtMDQtMTUgMTE6Mzg6MzUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJldmVydCAiYmFzZXNyYzogZml4IHBvb2wgbGVhayBvbiBhbGxvY2F0aW9uIHF1ZXJ5IGVycm9yIHBhdGgiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODRmZGY1MGIyZjk4OTUxYTMyZmExNDgwMmI2MjYyMWYxMTA1Y2QzNS4KCSAgSXQgc2VlbXMgdGhlIGJ1ZyB3YXMgZml4ZWQgaW5kZXBlbmRlbnRseSwgYW5kIHRoZSBtZXJnZSB3YXMKCSAgYXV0b21hZ2ljLCB5aWVsZGluZyB0d28gZXh0cmEgZnJlZSBjYWxscy4KCjIwMTUtMDQtMTQgMTM6NDI6NTUgKzA5MDAgIFN1aHdhbmcgS2ltIDxzdWh3YW5nLmtpbUBsZ2UuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBjbG9jazogZml4IHRlc3QgY2xvY2sgbmFtZQoJICBEb24ndCBjYWxsIHRoZSBzbGF2ZSB0ZXN0IGNsb2NrICJNYXN0ZXIiLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDMwCgoyMDE1LTA0LTE0IDE3OjQ3OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIEVOQ1JZUFRPUiBjbGFzcyBkZWZpbmVzCgkgIHRvIGdvIHdpdGggREVDUllQVE9SLgoKMjAxNS0wMy0xNiAxMzoxMTo1OSArMDAwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIERFQ1JZUFRPUiBjbGFzcyBkZWZpbmVzCgkgIEFuIGVsZW1lbnQgdGhhdCBwZXJmb3JtcyBkZWNyeXB0aW9uIGRvZXMgbm90IG5hdHVyYWxseSBmaXQgd2l0aGluIGFueQoJICBvZiB0aGUgZXhpc3RpbmcgZWxlbWVudCBmYWN0b3J5IGNsYXNzIHR5cGVzLiBJdCBpcyB1c2VmdWwgdG8gYmUgYWJsZQoJICB0byBlYXNpbHkgZ2V0IGEgbGlzdCBvZiBhbGwgZWxlbWVudHMgdGhhdCBzdXBwb3J0IGRlY3J5cHRpb24gc28gdGhhdAoJICBhIHVuaW9uIGNhbiBiZSBjb21wdXRlZCBiZXR3ZWVuIHRoZSBwcm90ZWN0aW9uIHN5c3RlbXMgdGhhdCBoYXZlIGEKCSAgc3VwcG9ydGVkIGRlY3J5cHRvciBhbmQgdGhlIGFsbG93ZWQgcHJvdGVjdGlvbiBzeXN0ZW1zIGZvciBhIHBhcnRpY3VsYXIKCSAgc3RyZWFtLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgbmV3IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNSWVBUT1IgYW5kIGl0cwoJICBhc3NvY2lhdGVkIHN0cmluZyBpZGVudGlmaWVyICJEZWNyeXB0b3IiLiBJdCBhbHNvIGFkZHMKCSAgR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ1JZUFRPUiB0byBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RBQkxFCgkgIHNvIHRoYXQgdXJpZGVjb2RlYmluIGNhbiBhdXRvLXBsdWcgYSBkZWNyeXB0aW9uIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTMgMTc6MDE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFVzZSBnc3RfZXZlbnRfdW5yZWYoKSBpbnN0ZWFkIG9mIGdzdF9taW5pX29iamVjdF91bnJlZigpICsgY2FzdGluZwoKMjAxNS0wNC0xMyAxNDo0MDoyMiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGxlYWsgaW4gZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCgpCgkgIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQoKSBpcyBzdXBwb3NlZCB0byBjb25zdW1lIEBldmVudCBidXQgd2Fzbid0CgkgIGRvaW5nIHNvIHdoZW4gaXQgd2FzIGhhbmRsaW5nIHRoZSBldmVudCBpdHNlbGYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc3NzUKCSAgU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoyMDE1LTA0LTExIDIwOjQ0OjAyICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcmVzZXQgZXJybm8gYmVmb3JlIGdfYXNjaWlfc3RydG91bGwgY2FsbAoJICAiZXJybm8iIGFscmVhZHkgaGFzIG1lYW5pbmdsZXNzIHZhbHVlIGJlZm9yZSBnX2FzY2lpX3N0cnRvdWxsIGNhbGwuCgkgIFRoaXMgY2F1c2VzIGludmFsaWQgZXJyb3IgY2hlY2sgd2l0aG91dCByZXNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzY5MAoKMjAxNS0wNC0xMiAxMzoxMzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IHNldCBEVFMgdG8gc2VnbWVudC5zdGFydCBvbiB0aGUgZmlyc3QgYnVmZmVyIGlmIHN1YmNsYXNzIGRpZCBub3QgcHJvdmlkZSBQVFMKCSAgT3RoZXJ3aXNlIHdlJ3JlIGdvaW5nIHRvIHNldCBhIHJhdGhlciBhcmJpdHJhcnkgRFRTIG9mIHNlZ21lbnQuc3RhcnQgKHVzdWFsbHkKCSAgMCkgZm9yIGxpdmUgc291cmNlcywgd2hpY2ggY29uZnVzZXMgc3luY2hyb25pemF0aW9uIGlmIHRoZSBzb3VyY2Ugc3RhcnRlZAoJICBjYXB0dXJpbmcgYXQgYSBsYXRlciB0aW1lLiBBbmQgaXQncyBlc3BlY2lhbGx5IHdyb25nIGZvciByYXcgbWVkaWEsIGZvciB3aGljaAoJICB3ZSBzaG91bGQgbm90IHNldCBhbnkgRFRTIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzczMQoKMjAxNC0wOS0wMiAxNzo0MDoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSdW4gdGhlIGRlZmF1bHQgaGF2ZS10eXBlIGhhbmRsZXIgYWZ0ZXIgYWxsIGFwcGxpY2F0aW9uIGhhbmRsZXJzCgkgIE90aGVyd2lzZSB0aGUgQ0FQUyBldmVudCB3aWxsIGFscmVhZHkgYmUgZm9yd2FyZGVkIGRvd25zdHJlYW0gYW5kCgkgIHRoZSBhcHBsaWNhdGlvbiBoYXMgbm8gd2F5IHRvIGludGVydmVuZSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODk2CgoyMDE1LTAzLTEwIDEyOjU3OjQ0ICsxMDAwICBEdW5jYW4gUGFsbWVyIDxkcGFsbWVyQGRpZ2lzb2Z0LnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGF1dG9tYXRpY2FsbHkgZW50ZXIgdGhlIGJ1ZmZlcmluZyBzdGF0ZSB3aGVuIHVzZS1idWZmZXJpbmcgaXMgc2V0LgoJICBUaGVyZSBpcyBubyByZWFzb24gSSBjYW4gc2VlIHRvIHNldCBtcS0+YnVmZmVyaW5nID0gVFJVRSB3aGVuCgkgIHVzZV9idWZmZXJpbmcgaXMgc2V0OyB0aGUgY29kZSBoZXJlIGFsc28gY2FsbHMgdXBkYXRlX2J1ZmZlcmluZygpLCB3aGljaAoJICB3aWxsIHNldCBtcS0+YnVmZmVyaW5nID0gVFJVRSBpZiB0aGlzIGlzIHdhcnJhbnRlZCBiZWNhdXNlIG9mIGxvdyBidWZmZXIKCSAgbGV2ZWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTM3CgoyMDE1LTA0LTEwIDEyOjMyOjI3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2FjaGVkIGJ1ZmZlciBsZWFrIGluIGNoYWluIGZ1bmN0aW9uCgkgIGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4oKSB3YXMgcG9wcGluZyBjYWNoZWQgYnVmZmVycyBvdXQgb2YgdGhlIHF1ZXVlIHdpdGhvdXQKCSAgZnJlZWluZyB0aG9zZS4gTWFrZSBzdXJlIHdlIGRvbid0IHN0ZWFsIHRoZSBHc3RCdWZmZXIgYXMgdGhlIGNhY2hlZCBidWZmZXIgcmVmCgkgIGhhcyBiZWVuIHBhc3NlZCB0byB0aGUgcGFkIGNoYWluIGZ1bmN0aW9uLgoJICBUaGlzIGNhbiBiZSByZXByb2R1Y2VkIGJ5IHJ1bm5pbmcgdGhlCgkgIHZhbGlkYXRlLmZpbGUucGxheWJhY2suc3dpdGNoX3N1YnRpdGxlX3RyYWNrX3doaWxlX3BhdXNlZC50ZXN0NV9ta3Ygc2NlbmFyaW8KCSAgd2l0aCBWYWxncmluZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzYxMQoJICBTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCjIwMTUtMDQtMDggMTY6MDQ6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBVc2UgQU1fVEVTVFNfRU5WSVJPTk1FTlQKCSAgTmVlZGVkIGJ5IHRoZSBuZXcgYXV0b21ha2UgdGVzdCBydW5uZXIKCjIwMTUtMDQtMDcgMTU6MDA6NDYgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBtYWtlIHN1cmUgbGlzdCBpcyB3cml0YWJsZSBiZWZvcmUgYWRkaW5nIG9yIHJlbW92aW5nIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQzOQoKMjAxNS0wNC0wNyAxNDozNDo1OCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IG1pbm9yIGRvY3MgYWRkaXRpb24gZm9yIGdzdF9idWZmZXJfbGlzdF9nZXQoKQoJICBSZXR1cm4gYnVmZmVyIHJlbWFpbnMgdmFsaWQgYXMgbG9uZyBhcyBsaXN0IGlzIHZhbGlkCgkgIGFuZCBidWZmZXIgaXMgbm90IHJlbW92ZWQgZnJvbSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDM4CgoyMDE1LTA0LTA3IDExOjM4OjMxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcG9vbCBsZWFrIG9uIGFsbG9jYXRpb24gcXVlcnkgZXJyb3IgcGF0aAoJICBJdCBjb3VsZCBiZSB0cmlnZ2VyZWQgYnk6CgkgIGdzdC1sYXVuY2gtMS4wIHZpZGVvdGVzdHNyYyBudW0tYnVmZmVycz0yMCAhIHZpZGVjcm9wIGJvdHRvbT0yMTQ3NDgzNjQgISB2aWRlb2NvbnZlcnQgISBhdXRvdmlkZW9zaW5rCgkgIFNwb3R0ZWQgd2hpbGUgdGVzdGluZzoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzkxMAoKMjAxNS0wNC0wNiAxODo0NTozNyAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRm9yd2FyZCBTRUdNRU5UX0RPTkUgZXZlbnRzIGltbWVkaWF0ZWx5CgkgIFRoZXJlIG1pZ2h0IGJlIG5vIG1vcmUgZGF0YSBjb21pbmcgYWZ0ZXJ3YXJkcywgYW5kIHdlIGp1c3QgZHJhaW5lZCBldmVyeXRoaW5nCgkgIHRoYXQgd2FzIGxlZnQgdG8gYmUgcHVzaGVkIGFueXdheS4KCjIwMTUtMDQtMDYgMTg6NTY6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkb2NzOiBmaXggY3Jvc3MtcmVmZXJlbmNlIHRvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBHc3RJbmZvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MTYKCjIwMTUtMDQtMDYgMTA6MTg6MTUgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGNoZWNrIGZvciB3cml0YWJsaXR5IGluIHJlc2l6ZQoJICBBZGQgZ3VhcmQgdG8gZ3N0X21lbW9yeV9yZXNpemUoKSB0byBtYWtlIHN1cmUgdGhlCgkgIG1lbW9yeSB0byBiZSByZXNpemVkIGlzIGFjdHVhbGx5IHdyaXRhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MzkyCgoyMDE1LTA0LTA1IDE2OjQ3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogYWRkIHRlc3QgdG8gbWFrZSBzdXJlIGluaXRpYWwgZXZlbnRzIGdvIHRocm91Z2ggd2l0aG91dCBidWZmZXJzCgoyMDE1LTA0LTA1IDE2OjA2OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IHF1ZXVlOiBjaGVjayB0aGF0IHRoZSBpbml0aWFsIGV2ZW50cyBhcmUgc2VudCBvbiBpbW1lZGlhdGVseQoJICBBZGQgYSBjaGVjayB0aGF0IG1ha2VzIHN1cmUgc3RyZWFtLXN0YXJ0LCBjYXBzLCBhbmQgc2VnbWVudCBldmVudHMKCSAgYXJlIHBhc3NlZCBvbiBieSBxdWV1ZSB3aXRob3V0IGRlbGF5LCBpLmUuIGV2ZW4gaWYgbm8gYnVmZmVyIGlzCgkgIHNlbnQuCgoyMDE1LTA0LTA0IDE4OjMzOjE4IC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFByaW50IGRlYnVnIG91dHB1dCBmcm9tIGdzdF9wYWRfbGlua19mdWxsKCkgaWYgcHJlcGFyaW5nIGxpbmtpbmcgZmFpbGVkCgkgIE1ha2VzIGl0IGVhc2llciB0byBmaW5kIGxpbmtpbmcgZmFpbHVyZXMgaW4gZGVidWcgbG9ncy4KCjIwMTUtMDQtMDQgMTk6Mjk6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBzbWFsbCBkb2NzIGFkZGl0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NjQKCjIwMTUtMDQtMDQgMTg6MTg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IGRlc2lnbjogZml4IHNvbWUgMC4xMC1pc21zIGluIEdzdFNlZ21lbnQgZG9jcwoJICAxKSBzZWdtZW50LmFjY3VtIC0+IHNlZ21lbnQuYmFzZQoJICAyKSBSZWZlciB0byBHc3RTZWdtZW50IG1lbWJlcnMgYXMgUy5mb28gaW5zdGVhZCBvZgoJICBOUy5mb28sIHRoZSBldmVudCBpcyBub3cgY2FsbGVkIGEgc2VnbWVudCBldmVudAoJICByYXRoZXIgdGhhbiBuZXdzZWdtZW50IGV2ZW50LgoJICAzKSBUaGVyZSdzIG5vIG1vcmUgYWJzX3JhdGUgZmllbGQgaW4gR3N0U2VnbWVudCwKCSAgYW5kIHRoZXJlIG5ldmVyIHdhcyBhbiBhYnNfYXBwbGllZF9yYXRlIGZpZWxkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTY0CgoyMDE1LTA0LTA0IDA0OjE0OjUwICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBsZWFrIGJ1ZmZlciBwb29sIGluIGVycm9yIGNhc2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzMyMQoKMjAxNS0wNC0wMyAxOToxMjo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IFNpbGVuY2UgYSBjb21waWxlciB3YXJuaW5nCgkgIFRoaXMgaXMgYSBmYWxzZSBwb3NpdGl2ZSBmb3IgdXNlIGluaXRpYWxpemVkLiBUaGUgdmFyaWFibGUgaXMgc2V0IGFuZAoJICB1c2VkIGVuY2xvc2VkIGluIHRoZSBzYWZlIGlmIGNvbmRpdGlvbi4KCjIwMTUtMDQtMDMgMTY6MzI6MTYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsCgoyMDE1LTA0LTAzIDEzOjE5OjEzIC0wNzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBkb2N1bWVudGF0aW9uLCBidWZmZXIgcG9vbHMgYXJlIHVucmVmZmVkIGFuZCBub3QgZnJlZWQKCjIwMTUtMDQtMDMgMjA6NDM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBJTlNUQUxMOgoJICBVcGRhdGUgSU5TVEFMTCB0byB0aGUgYXV0b21ha2UgMS4xNCB2ZXJzaW9uCgoyMDE1LTA0LTAzIDE4OjU3OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiYzc2YThiIHRvIGM4ZmIzNzIKCjIwMTUtMDQtMDMgMTY6Mjc6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCBleHBvcnRzCgoyMDE1LTAzLTE5IDEwOjQ1OjU2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgZ3N0X3NlZ21lbnRfaXNfZXF1YWwKCSAgSXQgYmVhdHMgbWVtY21wIGR1ZSB0byB0aGUgJ3Jlc2VydmVkJyBmaWVsZHMuCgkgIEFQSTogZ3N0X3NlZ21lbnRfaXNfZXF1YWwoKQoJICBGb3VuZCB2aWEsIGJ1dCBwcm9iYWJseSBub3QgZGlyZWN0bHkgbGlua2VkIHRvLAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MjE2CgoyMDE1LTA0LTAzIDAwOjM2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIGV4cG9ydHMKCjIwMTQtMDgtMDYgMTA6MzI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBhbGxvdyBwcm9iZXMgdG8gcmVtb3ZlIHRoZSBkYXRhIGl0ZW0gd2hpbHN0IHJldHVybmluZyBQUk9CRV9PSwoJICBVc2UgY2FzZTogd2Ugd2FudCB0byBibG9jayB0aGUgc291cmNlIHBhZCBvZiBhIGxlYWt5IHF1ZXVlIGFuZAoJICBkcm9wIHRoZSBidWZmZXIgdGhhdCBjYXVzZXMgdGhlIGJsb2NrLiBJZiB3ZSByZXR1cm4gUFJPQkVfRFJPUAoJICB0aGVuIHRoZSBidWZmZXIgZ2V0cyBkcm9wcGVkLCBidXQgd2UgZ2V0IGNhbGxlZCBhZ2Fpbi4gSWYgd2UKCSAgcmV0dXJuIFBST0JFX09LIHdlIGNhbid0IGVhc2lseSBkcm9wIHRoZSBidWZmZXIuIElmIHdlIGp1c3QKCSAgcmVwbGFjZSB0aGUgaXRlbSBpbnRvIHRoZSBHc3RQYWRQcm9iZUluZm8gc3RydWN0dXJlIHdpdGggTlVMTCwKCSAgR1N0cmVhbWVyIHdpbGwgcHVzaCBhIE5VTEwgYnVmZmVyIHRvIHRoZSBuZXh0IGVsZW1lbnQgd2hlbiB3ZQoJICB1bmJsb2NrIHRoZSBwYWQgcHJvYmUuIFRoaXMgcGF0Y2ggZW5zdXJlcyBpdCBkb2Vzbid0IGRvIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNDIKCjIwMTUtMDItMTIgMTk6Mzk6NDQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBEb2N1bWVudCB3aGVuIGEgY2xvY2sgaXMgYXZhaWxhYmxlIGZyb20gZ3N0X2VsZW1lbnRfZ2V0X2Nsb2NrKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDQ0MgoKMjAxNS0wMi0xMiAxOTo0MDowNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgcGlwZWxpbmU6IEFkZCBiaW5kaW5nIGZyaWVuZGx5IGdzdF9waXBlbGluZV9nZXRfcGlwZWxpbmVfY2xvY2soKQoJICBBbHNvIHNraXAgZ3N0X3BpcGVsaW5lX2dldF9jbG9jaygpIGFuZCBnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrKCkgZnJvbSB0aGUKCSAgYmluZGluZ3MgYXMgdGhleSBhcmUgY29uZnVzZWQgd2l0aCBnc3RfZWxlbWVudF8qX2Nsb2NrKCkuCgkgIEFQSTogZ3N0X3BpcGVsaW5lX2dldF9waXBlbGluZV9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ0NDIKCjIwMTUtMDQtMDIgMTc6MzI6NDIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgU2luY2UgbWFyayBmb3IgbmV3IG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDI0CgoyMDE1LTAyLTIwIDE3OjUwOjQ4ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFkZCBhIG1ldGhvZCB0byBsZXQgc3ViY2xhc3NlcyBjbGVhbmx5IHVwZGF0ZSBzcmNwYWQgY2FwcwoJICBBUEk6CgkgIGdzdF9iYXNlX3RyYW5zZm9ybV91cGRhdGVfc3JjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MjQKCjIwMTUtMDQtMDIgMjE6MTg6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2NzOiBwd2c6IGZpeCBtaXNzaW5nIGNvbW1hIGFuZCAwLjEwLWlzbSBpbiBjb2RlIHNhbXBsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjY3CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcyNjYKCjIwMTUtMDQtMDIgMTk6Mjk6NDYgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaW1wcm92ZSBkb2NzIGZvciBfY29weSgpIGFuZCBfc2hhcmUoKQoKMjAxNS0wNC0wMiAxMTo0MjoyMCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3Q6IGZpbGVzaW5rOiBhZGQgdGVzdHMgZm9yIGJ1ZmZlcnMgd2l0aCBtdWx0aXBsZSBtZW1vcnkgYmxvY2tzCgkgIFVwZGF0ZSB0ZXN0X3NlZWtpbmcgdGVzdGNhc2UgdG8gdmVyaWZ5IHRoZSByZW5kZXIgYW5kIHJlbmRlcl9saXN0CgkgIHZpcnR1YWwgbWV0aG9kIGhhbmRsZSBidWZmZXJzIGFuZCBidWZmZXIgbGlzdCBjb250YWluaW5nIG11bHRpcGxlCgkgIG1lbW9yeSBibG9ja3MgY29ycmVjdGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjIzCgoyMDE1LTA0LTAyIDA5OjQ0OjMzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBZGQgYSBGSVhNRSBmb3IgMi4wIGFib3V0IHJlcXVlc3RfbmV3X3BhZCBWUyByZXF1ZXN0X3BhZCBuYW1pbmcKCjIwMTUtMDQtMDIgMDk6MzQ6MDAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCByZXF1ZXN0X25ld19wYWQgaW50cm9zcGVjdGlvbgoJICBNYXJraW5nIGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkIGFzIHRoZSBjYWxsZXIgb2YgdGhlIC0+cmVxdWVzdF9uZXdfcGFkCgkgIHZpcnR1YWwgbWV0aG9kLgoKMjAxNS0wNC0wMSAwOToyMDoyNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBmaWxlc2luazogYWRkIGNoZWNrIGZvciByZW5kZXJfbGlzdCB2aXJ0dWFsIG1ldGhvZAoJICBHc3RGaWxlU2luayBpbXBsZW1lbnRzIHRoZSByZW5kZXJfbGlzdCB2aXJ0dWFsIG1ldGhvZCB0byByZW5kZXIKCSAgYSBsaXN0IG9mIGJ1ZmZlcnMuIFVwZGF0ZSB0aGUgdGVzdF9zZWVraW5nIHRlc3QgY2FzZSB0byBhbHNvCgkgIGNoZWNrIHRoZSByZW5kZXJfbGlzdCBtZXRob2QgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMDAKCjIwMTUtMDQtMDEgMTI6MTM6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogbmljZXIgcHJpbnRpbmcgb2YgY2FwcyBmZWF0dXJlcwoJICBPbmx5IHByaW50IGludGVyZXN0aW5nIGNhcHMgZmVhdHVyZXMsIGRvbid0CgkgIGFwcGVuZCAobWVtb3J5OlN5c3RlbU1lbW9yeSkgdG8gYWxsIGNhcHMsCgkgIHdoaWNoIG1ha2VzIHRoZW0gbXVjaCBtb3JlIHVud2llbGR5IGFuZAoJICBoYXJkZXIgdG8gcmVhZC4gQWxzbyB1c2UgaW50ZXJuYWwgZnVuY3Rpb24KCSAgdG8gZ2V0IGNhcHMgZmVhdHVyZXMgc28gdGhhdCBvdXIgcHJpbnRpbmcKCSAgaGFzIG5vIHNpZGUgZWZmZWN0cyBvbiB0aGUgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjgwOQoKMjAxNS0wMy0yNiAxMzowNTo1NyArMDEwMCAgTHVib3N6IFNhcm5lY2tpIDxsdWJvc3ouc2FybmVja2lAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogcGxvdCBjYXBzIGZlYXR1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4MDkKCjIwMTUtMDMtMzEgMjM6NDg6MjIgKzA5MDAgIFdvbmNodWwgTGVlIDxjaHVsMDgxMkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGEgdHlwbyBpbiBhIGRvY3N0cmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTE5CgoyMDE1LTAzLTMxIDExOjE1OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBEb24ndCB1c2UgZy1pci1zY2FubmVyIGNhY2hlIGF0IGNvbXBpbGUgdGltZQoJICBJdCBwb2xsdXRlcyB1c2VyIGRpcmVjdG9yaWVzIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGNhY2hlIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcwOTUKCjIwMTUtMDMtMjggMTQ6NDU6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IG91dGRhdGVkIGRlYnVnIG1lc3NhZ2UKCSAgQnVmZmVyIGxpc3RzIGRvbid0IGhhdmUgZ3JvdXBzIGFueSBtb3JlIGluIDEuMAoKMjAxNS0wMy0yNyAxODoyMDozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZsdXNoLXN0b3Agc3RhcnRzIGxpdmUgdGFzayBpbiBwYXVzZWQKCSAgVGhlIGZsdXNoLXN0b3AgZXZlbnQgc2hvdWxkIG5vdCByZXN0YXJ0IHRoZSB0YXNrIGZvciBsaXZlIHNvdXJjZXMgdW5sZXNzCgkgIHRoZSBlbGVtZW50IGlzIHBsYXlpbmcuIFRoaXMgd2FzIGJyZWFraW5nIHNlZWtzIGluIHBhdXNlIHdpdGggdGhlIHJ0cHNyYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTcwMQoKMjAxNS0wMy0yNyAxNjoyMzo0MCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBjaGVjayBsb2NhdGlvbiBpc24ndCB0cnVuY2F0ZWQKCSAgVGVzdCBjb3ZlcmluZyB0aGUgcmVjZW50IGNvbW1pdCB3aGVyZSBsb2NhdGlvbj0nIi5hYmMnIHdvbid0IGdldCB0cnVuY2F0ZWQKCSAgdG8gJy5hYicgYW55bW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI2IDE3OjAxOjA2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogb25seSB1bndyYXAgc3RyaW5nIGRlbGltaXRlZCB3aXRoICIKCSAgRG9uJ3QgdW53cmFwIHN0cmluZ3MgdGhhdCBzdGFydCBidXQgZG9uJ3QgZmluaXNoIHdpdGggYSBkb3VibGUgcXVvdGUuIElmIGEKCSAgc3RyaW5nIGlzIGRlbGltaXRlZCBieSB0d28gcXVvdGVzIHdlIHVuZXNjYXBlIHRoZW0gYW5kIGFueSBzcGVjaWFsIGNoYXJhY3RlcnMKCSAgaW4gdGhlIG1pZGRsZSAobGlrZSBcIiBvciBcXCkuIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3IgdGhlIGxhc3QgY2hhcmFjdGVyCgkgIGFyZW4ndCBhIHF1b3RlIHdlIGFzc3VtZSBpdCdzIHBhcnQgb2YgYW4gdW5lc2NhcGVkIHN0cmluZy4KCSAgTW92ZWQgc29tZSBkZXNlcmlhbGl6ZV9zdHJpbmcgdW5pdCB0ZXN0cyBiZWNhdXNlIHdlIGRvbid0IHRyeSB0byB1bndyYXAgc3RyaW5ncwoJICBtaXNzaW5nIHRoYXQgc2Vjb25kIHF1b3RlIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg2MjUKCjIwMTUtMDMtMjcgMTc6MTY6MDMgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogY2hlY2sgYmVmb3JlIHRydW5jYXRpbmcgc3RyaW5ncwoJICBEb24ndCB0cnVuY2F0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBzdHJpbmcgaWYgaXQgaXNuJ3QgbmVjZXNzYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI3IDEwOjE1OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIGFyZ3VtZW50cyB0byBzZXRfZmx1c2hpbmcoKSBhbmQgcG9sbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4NzEKCjIwMTUtMDMtMjUgMTA6NDk6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogb25seSBwb3N0ICdubyB2YWxpZCBmcmFtZXMnIGVycm9yIGlmIGJ1ZmZlcnMgd2VyZSByZWNlaXZlZAoJICBPdGhlcndpc2UgYmFzZXBhcnNlIHdpbGwgY29uc2lkZXIgZW1wdHkgc3RyZWFtcyB0byBiZSBhbiBlcnJvciB3aGlsZQoJICBhbiBlbXB0eSBzdHJlYW0gaXMgYSB2YWxpZCBzY2VuYXJpby4gV2l0aCB0aGlzIHBhdGNoLCBlcnJvcnMgd291bGQKCSAgb25seSBiZSBlbWl0dGVkIGlmIHRoZSBwYXJzZXIgcmVjZWl2ZWQgZGF0YSBidXQgd2Fzbid0IGFibGUgdG8KCSAgcHJvZHVjZSBhbnkgb3V0cHV0IGZyb20gaXQuCgkgIFRoaXMgY2hhbmdlIGlzIG9ubHkgZm9yIHB1c2gtbW9kZSBvcGVyYXRpb24gYXMgaW4gcHVsbCBtb2RlIGFuCgkgIGVtcHR5IGZpbGUgY2FuIGJlIGNvbnNpZGVyZWQgYW4gZXJyb3IgZm9yIHRoZSBvbmUgZHJpdmluZyB0aGUKCSAgcGlwZWxpbmUKCSAgSW5jbHVkZXMgYSB1bml0IHRlc3QgZm9yIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxNzEKCjIwMTUtMDMtMTkgMTA6MzY6MTEgKzAxMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBZGQgYWxsb3ctbm90LWxpbmtlZCBwcm9wZXJ0eQoJICBUaGlzIHByb3BlcnR5IGF2b2lkcyBub3QgbGlua2VkIGVycm9yIHdoZW4gYWxsIHRoZSBwYWRzIGFyZSB1bmxpbmtlZAoJICBvciB3aGVuIHRoZXJlIGFyZSBubyBzb3VyY2UgcGFkcy4gVGhpcyBpcyB1c2VmdWwgaW4gZHluYW1pYyBwaXBlbGluZXMKCSAgd2hlcmUgaXQgY2FuIGhhcHBlbiB0aGF0IGZvciBhIHNob3J0IHRpbWUgdGhlcmUgYXJlIG5vIHBhZHMgYXQgYWxsIG9yCgkgIGFsbCBkb3duc3RyZWFtIHBhZHMgYXJlIG5vdCBsaW5rZWQgeWV0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDM2CgoyMDE1LTAzLTIxIDE3OjEzOjE4IC0wNTAwICBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogRml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1ODUKCjIwMTUtMDMtMjEgMTU6NDY6NTAgLTA1MDAgIE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjU4NQoKMjAxNS0wMy0yNCAxNjowNDoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IGFkZCBkcmFpbiBoYW5kbGluZwoJICBSZWxlYXNlIHRoZSBsYXRlc3QgYnVmZmVyLCBpZiBhbnksIGFuZCB0aGVuIGp1c3QgbGV0CgkgIHRoZSBkcmFpbiBiZSBwdXNoZWQgZG93bnN0cmVhbQoKMjAxNS0wMy0yNCAxOTozMjo0OSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIFJldmVydCAiRml4IGRpc3RjaGVjayIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1NmRkMmQ4OWM0ZWFjNDYwY2JjMzdlMmE1MWMxZGQ5ZTc5Mjk5OWU4LgoJICBJbnN0YWxsaW5nIGNvbXBsZXRpb25zIHRvIGEgY3VzdG9tIHByZWZpeCBpcyBub3cgZml4ZWQuCgoyMDE1LTAzLTI0IDE5OjMwOjUyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiByZW1vdmUgY29tcGxldGlvbi1oZWxwZXIgb24gdW5pbnN0YWxsCgkgICsgQW5kIGFkZCBpdCB0byBDTEVBTkZJTEVTCgoyMDE1LTAzLTE4IDE5OjM4OjE1ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSogbGlicy9nc3QvaGVscGVycy9nc3Q6CgkgIGNvbXBsZXRpb25zOiByZW1vdmUgbGFzdCB1bm5hbWVzcGFjZWQgc3ltYm9scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNS0wMy0xOCAxNDo0NDoyMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkgIGNvbXBsZXRpb25zOiByZW1vdmUgZGVwcmVjYXRlZCBzaGVsbCBzeW50YXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTE4IDE0OjM3OjExICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSAgY29tcGxldGlvbnM6IHByZWZpeCBzaGVsbCBmdW5jdGlvbnMgd2l0aCBfZ3N0CgkgICsgVG8gbWFrZSBpdCBtb3JlIGRpZmZpY3VsdCBmb3IgdGhlbSB0byBjb25mbGljdCBpbiB0aGUKCSAgZ2xvYmFsIG5hbWVzcGFjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMjQgMTM6MTM6MjkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBiYXNoLWNvbXBsZXRpb246IFJlc3BlY3QgdGhlIHByZWZpeAoJICBEb24ndCB0cnkgYW5kIGluc3RhbGwgdGhlIGJhc2ggaGVscGVycyBvdXRzaWRlIHRoZSBkZWZpbmVkIHByZWZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNC0xMS0xOSAxMzowODo0NSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbmFtZSBfYWN0aXZhdGVfc2lua3BhZCB0byBfZ2V0X2FjdGl2ZV9zaW5rcGFkCgkgIFJlbW92ZXMgdGhlIG5vdyB1bnVzZWQgJ3BhZCcgcGFyYW1ldGVyIGFuZCByZW5hbWVzIHRoZSBmdW5jdGlvbgoJICB0byBzb21ldGhpbmcgbW9yZSBhcHByb3ByaWF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNC0xMS0xOSAxMzowMzoyMSArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBwYWQncyAnYWN0aXZlJyBmaWVsZAoJICBUaGlzIGlzIG5vdyBuZXZlciByZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE0LTExLTE5IDEyOjU5OjEyICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogVXNlIHNlZ21lbnQtcHJlc2VuY2UgZm9yIHJ1bm5pbmdfdGltZSBjaGVjawoJICBXaGVuIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIHJ1bm5pbmdfdGltZSBvZiBhIHBhZCBjYW4gYmUKCSAgY2FsY3VsYXRlZCwgY2hlY2sgaWYgdGhlIHNlZ21lbnQgaXMgaW4gVElNRSBmb3JtYXQgaW5zdGVhZAoJICBvZiB1c2luZyB0aGUgJ2FjdGl2ZScgZmllbGQuCgkgIFNpbmNlIHRoZSBsYXR0ZXIgaXMgc2V0IHRocm91Z2ggKmFueSogYWN0aXZpdHksIGl0J3Mgbm90IGEKCSAgcmVsaWFibGUgaW5kaWNhdG9yIG9mIHNlZ21lbnQgcHJlc2VuY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTUtMDMtMjMgMTM6MjA6MzQgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlICdibG9ja2VkJyBmbGFnCgkgIFdpdGggdGhlIGRpc2FwcGVhcmFuY2Ugb2YgdGhlICdibG9jaycgc2lnbmFsLCB0aGlzCgkgIGZsYWcgY2Fubm90IGJlIHNldCB0byBUUlVFLgoJICBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCBkaXNhcHBlYXJzIGFzIGl0IG5ldmVyIHdhaXRzCgkgIGFuZCBqdXN0IHJldHVybnMgc2VsZi0+Zmx1c2hpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4OTEKCjIwMTUtMDMtMjMgMTI6MTI6NTEgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIG9ic29sZXRlICdibG9jaycgc2lnbmFsCgkgIFRoaXMgc2lnbmFsIGJsb2NrcyB0aGUgaW5wdXQtc2VsZWN0b3Igd2l0aCBubyBtZWFucyBvZiB1bmJsb2NraW5nCgkgIG90aGVyIHRoYW4gYSBzdGF0ZSBjaGFuZ2UgYmFjayB0byBSRUFEWS4gSXQgc2VlbXMgdGhpcyBzaWduYWwgd2FzCgkgIHBhcnQgb2YgYW4gb2xkIHdheSBvZiBzeW5jaHJvbm91c2x5IHN3aXRjaGluZyB0aGUgc2VsZWN0b3IsCgkgIHRvZ2V0aGVyIHdpdGggdGhlIGFscmVhZHktcmVtb3ZlZCAnc3dpdGNoJyBzaWduYWwuCgkgIFJlbW92aW5nIHRoZSBzaWduYWwgaXMgc2FmZSwgYXMgYXR0ZW1wdGluZyB0byB1c2UgaXQgY291bGQgb25seQoJICBlbmQgaW4gZGVhZGxvY2tzLiBBdHRlbXB0aW5nIHRvIGVtaXQgYW4gdW5rbm93biBzaWduYWwganVzdCBjYXVzZXMKCSAgZ19jcml0aWNhbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4OTEKCjIwMTUtMDMtMjMgMTM6MDU6MzAgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGaXggd2FpdGluZyBvbiBFT1MKCSAgVGhpcyBhcHBhcmVudGx5IGdvdCBicm9rZW4gYnkgYmMxZWM0ZS4gU2luY2Ugc2VsZi0+YmxvY2tlZCBpcyBhbHdheXMKCSAgRkFMU0UsIGdzdF9pbnB1dF9zZWxlY3Rvcl93YWl0IG5ldmVyIGFjdHVhbGx5IHdhaXRzLgoJICBVc2luZyAoIXNlbGYtPmVvcyB8fCBzZWxmLT5ibG9ja2VkKSAmJiAuLi4gYXMgdGhlIGxvb3AgY29uZGl0aW9uIHdvdWxkCgkgIGJlIGluY29ycmVjdCBhcyB3ZWxsLCBiZWNhdXNlIHRoZW4gdGhlIG90aGVyIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIGluCgkgIF9jaGFpbiB3b3VsZCBibG9jayB1bnRpbCBFT1MsIHNvIHRoZSBmdW5jdGlvbnMgY2Fubm90IGJlIG1lcmdlZCB0cml2aWFsbHkuCgkgIFNpbmNlIGJsb2NraW5nIGlzIG9ic29sZXRlLCBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCB3aWxsIGdldCByZW1vdmVkIGFueXdheS4KCSAgQXMgc3VjaCwganVzdCBpbmxpbmUgdGhlIGxvb3AuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTUtMDMtMjAgMDc6MjM6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBpbnB1dC1zZWxlY3RvcjogbmV3IHRlc3RzIGZvciBFT1MgaGFuZGxpbmcKCSAgMyBuZXcgdGVzdHM6CgkgIDEpIFRlc3RzIHRoYXQgYSBzdHJlYW0gdGhhdCBpcyBlbXB0eSAoanVzdCBhbiBFT1MgZXZlbnQpCgkgIG9uIGluYWN0aXZlIHBhZCBkb2Vzbid0IGdldCB0aHJvdWdoIGFuZCB0YW1wZXIKCSAgd2l0aCB0aGUgYWN0aXZlIHBhZCB0aGF0IHN0aWxsIGhhcyBkYXRhCgkgIDIpIFRlc3RzIHRoYXQgYSBzdHJlYW0gdGhhdCBpcyBzaG9ydGVyIHRoYW4gdGhlIGFjdGl2ZSBvbmUKCSAgKHB1c2hlcyBFT1MgZWFybGllcikgZG9lc24ndCBoYXMgaXRzIEVPUyBwdXNoZWQKCSAgMykgVGVzdHMgdGhhdCBzd2l0Y2hpbmcgdG8gYW4gaW5hY3RpdmUgc3RyZWFtIHRoYXQgaGFzIHJlY2VpdmVkCgkgIEVPUyB3aWxsIG1ha2UgaW5wdXQtc2VsZWN0b3IgcHVzaCBFT1MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNS0wMy0xOSAxMjoxMToxOSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IHNlbGVjdG9yOiByZW1vdmUgd2VpcmQgc2VtaWNvbG9ucyBhdCB0aGUgZW5kIG9mIHRlc3QgZnVuY3Rpb25zCgkgIEV2ZW4gdGhvdWdoIGl0IHdvcmtzLCBpdCBpcyBub3QgbmVlZGVkIGFuZCBzZWVtcyBtb3JlIG5hdHVyYWwKCSAgdG8gbm90IGhhdmUgc2VtaWNvbG9ucyBhdCB0aGUgZW5kIG9mIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE0LTA3LTE3IDE2OjMzOjI5ICswMjAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQcm9jZXNzIFNFRUtJTkcgcXVlcnkKCSAgQWRkIFFVRVJZX1NFRUtJTkcgaGFuZGxpbmcgdG8gcXVldWUyLCBzbyBSVE1QIGxpdmUgc3RyZWFtcyBiZWNvbWUKCSAgc2Vla2FibGUgd2hlbiBhIHF1ZXVlMiBpbiBkb3dubG9hZCBvciByaW5nYnVmZmVyIG1vZGUgaXMgaW5zZXJ0ZWQ6CgkgIHJ0bXBzcmMgISBxdWV1ZTIgISBmbHZkZW11eAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMzUxCgoyMDE1LTAzLTIxIDE5OjM3OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nIHdpdGggZ2NjCgkgIGNoZWNrX3J1bi5jOiBJbiBmdW5jdGlvbiAnc2lnX2hhbmRsZXInOgoJICBjaGVja19ydW4uYzoxMjc6MTM6IHdhcm5pbmc6ICdjaGlsZF9zaWcnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoJICBraWxscGcoZ3JvdXBfcGlkLCBjaGlsZF9zaWcpOwoJICBeCgkgIGNoZWNrX3J1bi5jOjEzMDozMTogd2FybmluZzogJ2lkeCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIHNpZ2FjdGlvbihzaWdfbnIsICZvbGRfYWN0aW9uW2lkeF0sIE5VTEwpOwoJICBeCgoyMDE1LTAzLTIxIDE1OjE5OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBDYXRjaCBTSUdURVJNIGFuZCBTSUdJTlQgaW4gdGhlIHRlc3QgcnVubmVyIGFuZCBraWxsIGFsbCBjdXJyZW50bHkgcnVubmluZyB0ZXN0cwoJICBPdGhlcndpc2UgZS5nLiBjdHJsK2MgaW4gdGhlIHRlc3QgcnVubmVyIGV4aXRzIHRoZSB0ZXN0IHJ1bm5lciwgd2hpbGUgdGhlIHRlc3QKCSAgaXRzZWxmIGlzIHN0aWxsIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmQsIHVzZXMgQ1BVIGFuZCBtZW1vcnkgYW5kIHBvdGVudGlhbGx5CgkgIG5ldmVyIGV4aXRzIChlLmcuIGlmIHRoZSB0ZXN0IHJhbiBpbnRvIGEgZGVhZGxvY2sgb3IgaW5maW5pdGUgbG9vcCkuCgkgIFRoZSByZWFzb24gd2h5IHdlIGhhdmUgdG8gbWFudWFsbHkga2lsbCB0aGUgYWN0dWFsIHRlc3RzIGlzIHRoYXQgYWZ0ZXIKCSAgZm9ya2luZyB0aGV5IHdpbGwgYmUgbW92ZWQgdG8gdGhlaXIgb3duIHByb2Nlc3MgZ3JvdXAsIGFuZCBhcyBzdWNoIGFyZQoJICBub3QgcmVjZWl2aW5nIGFueSBzaWduYWxzIHNlbnQgdG8gdGhlIHRlc3QgcnVubmVyIGFueW1vcmUuIFRoaXMgaXMgc3VwcG9zZWQKCSAgdG8gYmUgZG9uZSB0byBtYWtlIGl0IGVhc2llciB0byBraWxsIGEgdGVzdCwgd2hpY2ggaXQgb25seSByZWFsbHkgZG9lcyBpZgoJICB0aGUgdGVzdCBpdHNlbGYgaXMgZm9ya2luZyBvZmYgbmV3IHByb2Nlc3Nlcy4KCSAgVGhpcyBmaXggaXMgbm90IGNvbXBsZXRlIHRob3VnaC4gU0lHS0lMTCBjYW4ndCBiZSBjYXVnaHQgYXQgYWxsLCBhbmQgZXJyb3IKCSAgc2lnbmFscyBsaWtlIFNJR1NFR1YsIFNJR0ZQRSBhcmUgY3VycmVudGx5IG5vdCBjYXVnaHQuIFRoZSBsYXR0ZXIgd2lsbCBvbmx5CgkgIGhhcHBlbiBpZiB0aGVyZSBpcyBhIGJ1ZyBpbiB0aGUgdGVzdCBydW5uZXIgaXRzZWxmLCBhbmQgYXMgc3VjaCBzZWVtIGxlc3MKCSAgaW1wb3J0YW50LgoKMjAxNS0wMy0xOSAxMzo1MTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IERvbid0IGRyb3Agbm9uLXNlcmlhbGl6ZWQgcXVlcmllcyB3aGVuIHRoZSB2YWx2ZSBpcyBkcm9wcGluZwoJICBPdGhlcndpc2Ugd2UgZW5kIHVwIGRyb3BwaW5nIGUuZy4gQ0FQUyBxdWVyaWVzLCBhbmQgdGhlbiB1cHN0cmVhbSBqdXN0CgkgIG5lZ290aWF0ZXMgdG8gd2hhdGV2ZXIgZm9ybWF0IGl0IHdhbnRzIHRvLiBPbmNlIHRoZSB2YWx2ZSBpcyBub3QtZHJvcHBpbmcKCSAgYW55bW9yZSB0aGlzIGNhbiBlYXNpbHkgcmVzdWx0IGluIG5lZ290aWF0aW9uIGZhaWxpbmcgY29tcGxldGVseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQ0OAoKMjAxNS0wMy0yMCAwOTowMDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiByZW1vdmUgdGhlIGJvdW5kcyBjaGVjayBmcm9tIF90b19ydW5uaW5nX3RpbWVfZnVsbCgpCgkgIERvIG5vdCBkbyBhbnkgY2hlY2tzIGZvciB0aGUgc3RhcnQvc3RvcCBpbiB0aGUgbmV3CgkgIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkgbWV0aG9kLCB3ZSBjYW4gbGV0IHRoaXMgYmUgZG9uZSBieQoJICB0aGUgbW9yZSBjYXBhYmxlIGdzdF9zZWdtZW50X2NsaXAoKSBtZXRob2QuIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUKCSAgZW51bSBvZiByZXN1bHRzIGFuZCBvbmx5IHJldHVybiB0aGUgc2lnbiBvZiB0aGUgY2FsY3VsYXRlZCBydW5uaW5nLXRpbWUuCgkgIFdlIG5lZWQgdG8gcHV0IHRoZSBvbGQgY2xpcHBpbmcgY2hlY2tzIGluIHRoZSBvbGQKCSAgZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgc3RpbGwgYmVjYXVzZSB0aGV5IHdvcmsgc2xpZ2h0bHkKCSAgZGlmZmVyZW50bHkgdGhhbiB0aGUgX2NsaXAgbWV0aG9kcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTkgMTc6MzY6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWRkIG9wdGlvbiB0byBkaXNhYmxlIGNsaXBwaW5nCgkgIEFkZCBhIGNsaXAgYXJndW1lbnQgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lX2Z1bGwoKSB0byBkaXNhYmxlCgkgIHRoZSBjaGVja3MgYWdhaW5zdCB0aGUgc2VnbWVudCBib3VuZGFyaWVzLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvCgkgIGdlbmVyYXRlIGFuIGV4dHJhcG9sYXRlZCBydW5uaW5nLXRpbWUgZm9yIHRpbWVzdGFtcHMgb3V0c2lkZSBvZiB0aGUKCSAgc2VnbWVudC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTggMTY6Mjc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQvZGVpbml0KCkKCjIwMTUtMDMtMTggMTQ6MTY6NDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzOiByZW1vdmUgb3V0ZGF0ZWQgY29tcGxldGlvbiBzY3JpcHQKCSAgKyBSZW1vdmUgdGhlIGFzc29jaWF0ZWQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0xOCAxMTozMTo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGhlbHBlciB0byBnZXQgbmVnYXRpdmUgcnVubmluZy10aW1lCgkgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8gZ2V0IGEgcnVubmluZy10aW1lIHdpdGggYSBsaXR0bGUgbW9yZSBmZWF0dXJlcwoJICBzdWNoIGFzIGRldGVjdGluZyBpZiB0aGUgdmFsdWUgd2FzIGJlZm9yZSBvciBhZnRlciB0aGUgc2VnbWVudCBhbmQKCSAgbmVnYXRpdmUgcnVubmluZy10aW1lLgoJICBBUEk6IGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wMy0xOCAxMDo1MzozMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBmaXggb2Zmc2V0IGhhbmRsaW5nIHdpdGggbm9uIDAgc3RhcnQKCSAgVGhlIHBvc2l0aW9uIGluIHRoZSBzZWdtZW50IGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBidXQgdGhlIG9mZnNldAoJICBpc24ndCwgc28gc3VidHJhY3QgdGhlIHN0YXJ0IGZyb20gdGhlIHBvc2l0aW9uIHdoZW4gc2V0dGluZyB0aGUgb2Zmc2V0LgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGlzIGFzIHdlbGwuCgoyMDE1LTAzLTE4IDA5OjM2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3RzCgoyMDEzLTExLTI5IDE2OjI4OjQxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgZHVwbGljYXRlIGNvZGUKCSAgVGhlc2UgYXJlIGFscmVhZHkgZnJlZWQgYnkgZ3N0X2Jhc2VfcGFyc2VfY2xlYXJfcXVldWVzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wMy0xNyAxNTo0MTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggaW5kZW50aW9uCgoyMDE1LTAzLTEzIDExOjA4OjI1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgc2tpcCBvbiBzZWdtZW50cyBhbmQgZGlzY29udGludWl0aWVzCgkgIExhcmdlIHNjYWxlIHNraXAgaXMgYW4gb3B0aW1pemF0aW9uLCBhbmQgdGh1cyBpdCBpcyBzYWZlciB0bwoJICBzdG9wIHNraXBwaW5nIHRoYW4gdG8gY29udGludWUuIENsZWFyIHNraXAgb24gc2VnbWVudHMgYW5kCgkgIGRpc2NvbnRpbnVpdGllcywgYXMgdGhlc2UgYXJlIHBvaW50cyB3aGVyZSBpdCBpcyBwb3NzaWJsZSB0aGF0CgkgIHRoZSBvcmlnaW5hbCBpZGVhIG9mICJieXRlcyB0byBza2lwIiBjaGFuZ2VzLgoKMjAxNS0wMy0xNSAxNDoxOToxNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBncm93IHF1ZXVlIGluZmluaXRlbHkgaWYgb25seSBvbmUgcGFkIGlzIGxpbmtlZAoJICBUaGlzIHdhcyBpbnRyb2R1Y2VkIGJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4OTMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjg5MQoJICBidXQgaXQgZG9lc24ndCBtYWtlIGFueSBzZW5zZSBhdCBhbGwgYW5kIGNhdXNlcyBodWdlIG1lbW9yeSBsZWFrcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI1MwoKMjAxNS0wMy0xNCAyMTowNzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBlbXB0eSBidWZmZXIgbGlzdCBtb3JlIGdyYWNlZnVsbHkKCSAgRG9uJ3QgYWJvcnQsIGp1c3QgaWdub3JlIGl0LiBJdCdzIGxpa2UgYSBidWZmZXIKCSAgd2l0aG91dCBtZW1vcmllcy4KCjIwMTUtMDMtMTQgMTc6Mzk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbWlub3Igb3B0aW1pc2F0aW9uIGZvciBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCSAgVHJ5IHRvIGFsbG9jYXRlIGJ1ZmZlciBsaXN0IHdpdGggYSBzdWl0YWJsZSBzaXplIGZyb20gdGhlCgkgIGJlZ2lubmluZyB0byBhdm9pZCBoYXZpbmcgdG8gcmUtYWxsb2MgdGhlIGJ1ZmZlciBsaXN0IGFycmF5LgoKMjAxNS0wMy0xNCAxNzoyMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgoyMDE1LTAzLTE0IDE3OjIwOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IGFkZCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCSAgQVBJOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9saXN0KCkKCjIwMTUtMDMtMTQgMTY6MDU6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBBZGQgbmV3IHN0cmVhbWlkZGVtdXggYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxNS0wMy0xNCAxNjowMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGF2b2lkIG11bHRpcGxlIGNhbGxzIHRvIGdzdF9idWZmZXJfZ2V0X3NpemUoKSBpbiBtYWNybwoKMjAxNS0wMy0xNCAxNTo1ODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBtdWx0aXBsZSBjYWxscyB0byBnc3RfYnVmZmVyX2dldF9zaXplKCkgaW4gbWFjcm8KCjIwMTUtMDMtMTMgMTg6MjI6MDEgKzAwMDAgIFJhbWlybyBQb2xsYSA8cmFtaXJvLnBvbGxhQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHByb3Blcmx5IGVzY2FwZSBwZXJjZW50IHNpZ24gaW4gZG9jdW1lbnRhdGlvbgoKMjAxNS0wMy0xNCAxMzozNzowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVc2UgdGhlIGNvcnJlY3QgZW51bSB0eXBlIHRvIGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0YnVmZmVyLmM6NTIyOjU4OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckZsYWdzJyB0bwoJICBkaWZmZXJlbnQgZW51bWVyYXRpb24gdHlwZSAnR3N0QnVmZmVyQ29weUZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgaWYgKCFnc3RfYnVmZmVyX2NvcHlfaW50byAoY29weSwgKEdzdEJ1ZmZlciAqKSBidWZmZXIsIGZsYWdzLCAwLCAtMSkpCgkgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KCSAgZ3N0YnVmZmVyLmM6NTM0OjQ2OiBlcnJvcjogaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckNvcHlGbGFncycgdG8KCSAgZGlmZmVyZW50IGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckZsYWdzJyBbLVdlcnJvciwtV2VudW0tY29udmVyc2lvbl0KCSAgcmV0dXJuIGdzdF9idWZmZXJfY29weV93aXRoX2ZsYWdzIChidWZmZXIsIEdTVF9CVUZGRVJfQ09QWV9BTEwpOwoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CgkgIC4vZ3N0YnVmZmVyLmg6NDMzOjMxOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdHU1RfQlVGRkVSX0NPUFlfQUxMJwoJICAuLi4oKEdzdEJ1ZmZlckNvcHlGbGFncykoR1NUX0JVRkZFUl9DT1BZX01FVEFEQVRBIHwgR1NUX0JVRkZFUl9DT1BZX01FTU9SWSkpCgkgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgoyMDE1LTAzLTE0IDE0OjA2OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxNC0xMC0zMCAxNTozOToyMSArMDAwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5oOgoJICBtZXRhOiBBZGQgYEdzdE5ldENvbnRyb2xNZXNzYWdlTWV0YWAKCSAgR3N0TmV0QWRkcmVzcyBjYW4gYmUgdXNlZCB0byBzdG9yZSBhbmNpbGxhcnkgZGF0YSB3aGljaCB3YXMgcmVjZWl2ZWQgd2l0aAoJICBvciBpcyB0byBiZSBzZW50IGFsb25nc2lkZSB0aGUgYnVmZmVyIGRhdGEuICBXaGVuIHVzZWQgd2l0aCBzb2NrZXQgc2lua3MKCSAgYW5kIHNvdXJjZXMgd2hpY2ggdW5kZXJzdGFuZCB0aGlzIG1ldGEgaXQgYWxsb3dzIHNlbmRpbmcgYW5kIHJlY2VpdmluZwoJICBhbmNpbGxhcnkgZGF0YSBzdWNoIGFzIHVuaXggY3JlZGVudGlhbHMgKFNlZSBgR1VuaXhDcmVkZW50aWFsc01lc3NhZ2VgKQoJICBhbmQgVW5peCBmaWxlIGRlc2NyaXB0aW9ucyAoU2VlIGBHVW5peEZETWVzc2FnZWApLgoJICBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcHJvdG9jb2xzIHdoaWNoIHVzZSBmaWxlLWRlc2NyaXB0b3IKCSAgcGFzc2luZyBpbiBwYXlsb2FkZXJzL2RlcGF5bG9hZGVycyB3aXRob3V0IGhhdmluZyB0byByZS1pbXBsZW1lbnQgYWxsIHRoZQoJICBzb2NrZXQgaGFuZGxpbmcgY29kZSBhbHJlYWR5IHByZXNlbnQgaW4gZWxlbWVudHMgc3VjaCBhcyBtdWx0aXNvY2tldHNpbmssCgkgIGV0Yy4gIFRoaXMsIGluIHR1cm4sIHdpbGwgYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgemVyby1jb3B5IHZpZGVvIElQQy4KCSAgVGhpcyBtZXRhIHVzZXMgdGhlIHBsYXRmb3JtIGluZGVwZW5kZW50IGBHU29ja2V0Q29udHJvbE1lc3NhZ2VgIEFQSQoJICBwcm92aWRlZCBieSBHTGliIGFzIGEgcGFydCBvZiBHSU8uICBBcyBhIHJlc3VsdCB0aGlzIG5ldyBtZXRhIGRvZXMgbm90CgkgIHJlcXVpcmUgYW55IG5ldyBkZXBlbmRlbmNpZXMgb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBsaWF0aW9uIGZvcgoJICBwb3J0YWJsaWxpdHksIGFsdGhvdWdoIGl0IGlzIHVubGlrZWx5IHRvIGRvIGFueXRoaW5nIHVzZWZ1bCBvbiBub24tVU5JWAoJICBwbGF0Zm9ybXMuCgoyMDE1LTAzLTE0IDExOjU3OjMzICswMDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgYWxsb2NhdGlvbjogQWxsb3cgYWxsb2NhdGlvbiBwb29sIHdpdGhvdXQgc2l6ZQoJICBUaGlzIGFsbG93IHByb3Bvc2luZyBhIG51bWJlciBvZiBidWZmZXJzIHJlcXVpcmVkIGV2ZW4gaWYgdGhlIHNpemUKCSAgb2YgYnVmZmVyIGlzIHVuZml4ZWQuIFRoaXMgaXMgb2Z0ZW4gdGhlIGNhc2UgZm9yIGVuY29kZWQgZm9ybWF0cy4KCjIwMTUtMDMtMDEgMTM6MTU6NDAgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRG9uJ3Qgc3RvcCB0aGUgcG9vbCBpbiBzZXRfY29uZmlnKCkKCSAgRG9uJ3Qgc3RvcCB0aGUgcG9vbCBpbiBzZXRfY29uZmlnKCkuIEluc3RlYWQsIGxldCB0aGUgY29udHJvbGxpbmcKCSAgZWxlbWVudCBtYW5hZ2UgaXQuIE1vc3Qgb2YgdGhlIHRpbWUsIHdoZW4gYW4gYWN0aXZlIHBvb2wgaXMgYmVpbmcKCSAgY29uZmlndXJlZCBpcyBiZWNhdXNlIHRoZSBjYXBzIGRpZG4ndCBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzNzcKCjIwMTUtMDMtMTMgMTg6NTM6MTEgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRyYWluIG9uIGFsbG9jYXRpb24gcXVlcnkKCSAgQWxsb3dzIGJ1ZmZlcnMgdG8gYmUgcmVjbGFpbWVkIHdoZW4gY2FwcyBpcyB0byBiZSByZW5lZ290aWF0ZWQgc28KCSAgdGhhdCBidWZmZXJwb29scyBjYW4gYmUgc3RvcHBlZC4gQXMgdGhlIGFsbG9jYXRpb24gcXVlcnkgaXMKCSAgc2VyaWFsaXplZCBhbGwgYnVmZmVycyBoYXZlIGJlZW4gYWxyZWFkeSBkcmFpbmVkIGZyb20gdGhlIHBpcGVsaW5lLAoJICBleGNlcHQgdGhpcyBsYXN0X3NhbXBsZSBvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI3NzAKCjIwMTUtMDMtMTMgMTg6MzU6MTQgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHdoZW4gZHJhaW5pbmcsIGRlZXAgY29weSB0aGUgbGFzdCBidWZmZXIgdG8gdW5yZWYgb2xkIG1lbW9yeQoJICBVc2UgZ3N0X2J1ZmZlcl9jb3B5X2RlZXAoKSB0byBmb3JjZSB0aGUgY29weSBvZiB0aGUgdW5kZXJseWluZwoJICBtZW1vcnkgaW5zdGVhZCBvZiBwb3NzaWJseSBkb2luZyBhIHNoYWxsb3cgY29weSBvZiB0aGUgYnVmZmVyCgkgIGFuZCBqdXN0IHJlZmVyZW5jaW5nIHRoZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTI4NwoKMjAxNS0wMy0xMyAxODozNTowMSArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGJ1ZmZlcjogYWRkIGdzdF9idWZmZXJfY29weV9kZWVwCgkgIEEgdmFyaWFudCBvZiBnc3RfYnVmZmVyX2NvcHkgdGhhdCBmb3JjZXMgdGhlIHVuZGVybHlpbmcgbWVtb3J5CgkgIHRvIGJlIGNvcGllZC4KCSAgVGhpcyBpcyBhZGRlZCB0byBhdm9pZCBhZGRpbmcgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIGEgR3N0TWVtb3J5CgkgIHRoYXQgbWlnaHQgYmVsb25nIHRvIGEgYnVmZmVycG9vbCB0aGF0IGlzIHRyeWluZyB0byBiZSBkcmFpbmVkLgoJICBUaGUgdXNlIGNhc2UgaXMgd2hlbiB0aGUgYnVmZmVyIGNvcHlpbmcgaXMgZG9uZSB0byByZWxlYXNlIHRoZQoJICBvbGQgYnVmZmVyIGFuZCBhbGwgaXRzIHJlc291cmNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTI4NwoKMjAxNS0wMy0xMyAxNTozMTozMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVc2UgZ19saXN0X2ZyZWVfZnVsbCgpIGluc3RlYWQgb2YgbWFudWFsbHkgdW5yZWZmaW5nIGFuZCBmcmVlaW5nCgkgIEFsc28gdW5yZWYgdGhlIG1lc3NhZ2VzLCBub3QgdGhlIEdMaXN0IG5vZGVzLgoKMjAxNS0wMy0xMyAxMzo0Mjo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBGaXggYW5vdGhlciBjYXNlIHdoZXJlIHdlIGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoaWxlIHVucmVmZmluZyBhIG1lc3NhZ2UKCjIwMTUtMDMtMTMgMTU6Mjg6NDIgKzAyMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVucmVmZXJlbmNpbmcgbWVzc2FnZXMgb3V0c2lkZSB0aGUgbG9jawoJICBTaG91bGRuJ3QgdGFrZSB0aGUgbG9jayB3aGlsZSB1bnJlZmVyZW5jaW5nIG1lc3NhZ2VzLCBiZWNhdXNlIHRoYXQgbWF5IGNhdXNlCgkgIG1vcmUgbWVzc2FnZXMgdG8gYmUgc2VudCwgd2hpY2ggd2lsbCB0cnkgdG8gdGFrZSB0aGUgbG9jayBhbmQgY2F1c2UgdGhlIGFwcCB0bwoJICBoYW5nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4Nzc3CgoyMDE1LTAyLTIzIDIwOjI3OjMyICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBZGQgZ3N0X2Jpbl9zeW5jX2NoaWxkcmVuX3N0YXRlcygpCgkgIGdzdF9iaW5fc3luY19jaGlsZHJlbl9zdGF0ZXMoKSB3aWxsIGl0ZXJhdGUgb3ZlciBhbGwgdGhlIGVsZW1lbnRzIG9mIGEgYmluIGFuZAoJICBzeW5jIHRoZWlyIHN0YXRlcyB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUgYmluLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGFkZGluZyBtYW55CgkgIGVsZW1lbnRzIHRvIGEgYmluIGFuZCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBjYWxsCgkgIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoKSBvbiBlYWNoIGFuZCBldmVyeSBvbmUgb2YgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA0MgoKMjAxNS0wMi0wMyAxNjoxMjozMiArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGhhbmRsZSB1bnNpZ25lZCBtb2RpZmllciBmb3IgbG9uZyBsb25nCgkgIE90aGVyd2lzZSwgYW4gdW5zaWduZWQgaW50ZWdlciB3aWxsIGJlIGRpc3BsYXllZCBhcyBhIHNpZ25lZCBvbmUgaWYgd2UKCSAgdXNlIGludGVybmFsIHByaW50LCBpZSBIQVZFX0xPTkdfTE9OR19GT1JNQVQgaXMgbm90IGRlZmluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYwOTYKCjIwMTUtMDMtMTIgMTQ6Mzk6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSAgc3RyZWFtaWRkZW11eDogUmVzZXQgcGFkIGNvdW50ZXIgYWZ0ZXIgcmVtb3ZpbmcgYWxsIHBhZHMKCjIwMTQtMDMtMDQgMTk6NDA6MDUgKzA5MDAgIEhvb25IZWUgTGVlIDxob29uaGVlLmxlZUBsZ2UuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RyZWFtaWRkZW11eC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3N0cmVhbWlkZGVtdXguYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbWlkZGVtdXgvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbWlkZGVtdXgvc3RyZWFtaWRkZW11eC1zdHJlYW0uYzoKCSAgc3RyZWFtaWRkZW11eDogQWRkIHN0cmVhbWlkZGVtdXggZWxlbWVudAoJICBEZW11bHRpcGxleCBhIHN0cmVhbSB0byBtdWx0aXBsZSBzb3VyY2UgcGFkcyBiYXNlZCBvbiB0aGUgc3RyZWFtIGlkcyBmcm9tIHRoZQoJICBzdHJlYW0tc3RhcnQgZXZlbnRzLiBUaGlzIGJhc2ljYWxseSByZXZlcnNlcyB0aGUgYmVoYXZpb3VyIG9mIGZ1bm5lbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzYwNQoKMjAxNS0wMy0xMiAxMzoyOTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlCgoyMDE1LTAzLTEyIDEzOjI2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJpbnRmLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBvdXIgcHJpbnRmIHN0dWZmCgkgIFRvIHRlc3QgbmV3ICVJMzIgc3VwcG9ydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI4MQoKMjAxNS0wMi0xMCAxNzo0MDo0OCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50ZjogYWRkIHN1cHBvcnQgZm9yICVJMzIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDI4MQoKMjAxNS0wMy0xMiAxMzoxNDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgY2F0ZWdvcnkgbGV2ZWwgdGhyZXNob2xkIGNoZWNrIGludG8gbG9nIGZ1bmN0aW9uIGRpc3BhdGNoZXIKCSAgTWlub3Igb3B0aW1pc2F0aW9uOiBjaGVjayBjYXRlZ29yeSBsb2cgbGV2ZWwgZWFybGllciBpbiB0aGUKCSAgbG9nIGZ1bmN0aW9uIGRpc3BhdGNoZXIgYW5kIG5vdCBvbmx5IGluIHRoZSBkZWZhdWx0IGxvZwoJICBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMy0xMiAxMjo1OTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZXNldCBzZWdtZW50IHdoZW4gZGVhY3RpdmF0aW5nIHB1bGwgbW9kZSBvciBub3QgcnVubmluZyBpbiBwdWxsIG1vZGUKCSAgV2UgdXNlIHRoZSBzZWdtZW50IGZvcm1hdCB0byBkZXRlY3QgaWYgd2UgcnVuIHRoZSBzdHJlYW1pbmcgdGhyZWFkIG9yIG5vdC4KCSAgV2l0aG91dCByZXNldHRpbmcgd2UgbWlnaHQgYmVsaWV2ZSB3ZSBkbyBzbywgYWx0aG91Z2ggd2Ugb25seSBkaWQgaW4gdGhlIHBhc3QKCSAgYW5kIGFyZSBub3cgcnVubmluZyBpbiBlLmcuIHB1c2ggbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA3MwoKMjAxNS0wMy0wOCAyMDo0MjozOCArMDEwMCAgTWljaGHFgiBExJlic2tpIDxkZWJza2kubWkuemRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IFVzZSBta3N0ZW1wIGluc3RlYWQgb2YgdGVtcG5hbSBpZiBwb3NzaWJsZQoJICBVc2luZyB0ZW1wbmFtKCkgaXMgZGVwcmVjYXRlZCwgdGhpcyBnaXZlcyB3YXJuaW5nIGFuZCBmYWlscyB0aGUgYnVpbGQKCSAgd2l0aCAtV2Vycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1ODU4CgoyMDE1LTAzLTExIDE2OjM2OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFuIHVwIHRoZSBuZWVkX3ByZXJvbGwgdmFyaWFibGUKCSAgQmFzZWQgb24gcGF0Y2ggZnJvbSBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoJICBEb24ndCBqdXN0IHNldCB0aGUgbmVlZF9wcmVyb2xsIGZsYWcgdG8gVFJVRSBpbiBhbGwgY2FzZXMuIFdoZW4gd2UKCSAgYXJlIGFscmVhZHkgcHJlcm9sbGVkIGl0IG5lZWRzIHRvIGJlIHNldCB0byBGQUxTRSBhbmQgd2hlbiB3ZSBnbyB0bwoJICBSRUFEWSB3ZSBzaG91bGQgbm90IHRvdWNoIGl0LiBXZSBzaG91bGQgb25seSBzZXQgaXQgdG8gVFJVRSBpbiBvdGhlcgoJICBjYXNlcywgbGlrZSB3aGF0IHRoZSBjb2RlIGFib3ZlIGRvZXMuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NjU1CgoyMDE0LTEyLTA1IDE0OjE2OjUyICswOTAwICBob29uaGVlLmxlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IGhhbmRsZSBHQVAgZXZlbnQgdG8gZm9yd2FyZHMgc3RpY2t5IGV2ZW50cyBpbnRvIGRvd25zdHJlYW0KCSAgSWYgbm8gZGF0YSBpcyBjb21pbmcgYW5kIGZ1bm5lbCByZWNlaXZlIEdBUCBldmVudCwgbmVlZCB0byBmb3J3YXJkcyBzdGlja3kgZXZlbnRzCgkgIGludG8gZG93bnN0cmVhbSBpZiBpdCBuZWVkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIwMgoKMjAxNS0wMy0xMCAxNjo0Mjo0NCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogZHVwbGljYXRlIGNvZGUgYnJhbmNoZXMKCSAgQ0lEICMxMjI2NDQ2CgoyMDE1LTAzLTEwIDA5OjIxOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIEZpeCBkb3VibGUgc2VtaWNvbG9ucwoKMjAxNS0wMi0yMiAxMDoxMjowMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTUtMDItMjEgMjA6MTM6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfdXBkYXRlX3BhZF9mbG93KCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1NzIKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl91cGRhdGVfcGFkX2Zsb3coKQoKMjAxNS0wMi0xNSAyMDo1MjoxMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYSBnc3RfZmxvd19jb21iaW5lcl9yZXNldCgpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcyCgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKQoKMjAxNS0wMy0wNiAxMDo1OTo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDE1LTAzLTA1IDE4OjMwOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgbWFsbG9jL2ZyZWUgaWYgbG9nIG9iamVjdCBpcyBOVUxMCgoyMDE1LTAzLTA1IDE3OjU0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBfX0ZJTEVfXyBwYXRoIHNob3J0ZW5pbmcgaW50byBkZWZhdWx0IGxvZyBoYW5kbGVyCgkgIEluc3RlYWQgb2YgYWx3YXlzIHNob3J0ZW5pbmcgdGhlIF9fRklMRV9fIHBhdGgsIGV2ZW4gaWYgdGhlCgkgIGxvZyBtZXNzYWdlIGlzIG5vdCBhY3R1YWxseSBwcmludGVkLCB3aGljaCBtaWdodCBoYXBwZW4gaWYKCSAgdGhlIGxvZyBsZXZlbCBpcyBhY3RpdmF0ZWQgYnV0IHRoZSBjYXRlZ29yeSBpcyBub3QsIG9ubHkKCSAgc2hvcnRlbiB0aGUgcGF0aCBpZiB3ZSdyZSBhY3R1YWxseSBnb2luZyB0byBvdXRwdXQgaXQgYW5kCgkgIGlmIGl0IGxvb2tzIGxpa2UgaXQgbmVlZHMgc2hvcnRlbmluZy4gTG9nIGhhbmRsZXJzIGhhZCBubwoJICBndWFyYW50ZWUgdGhhdCB0aGV5IHdvdWxkIGdldCBhIG5hbWUgaW5zdGVhZCBvZiBhIHBhdGgKCSAgYW55d2F5IG9uIGFueSBhcmNoaXRlY3R1cmUsIHNvIGl0IHNob3VsZG4ndCBiZSBhIHByb2JsZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDItMjcgMDE6MTY6NTggKzExMDAgIFBldGVyIFVyYmFuZWMgPGdpdC51c2VyQHVyYmFuZWMubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogc2hvcnRlbiBfX0ZJTEVfXyBvbiBhbGwgcGxhdGZvcm1zCgkgIFRoaXMgaXMgdXNlZnVsIG5vdCBvbmx5IGZvciBNU1ZDLCBidXQgYWxzbyB3aXRoIGdjYy9MaW51eAoJICB3aGVuIGRvaW5nIGNyb3NzLWNvbXBpbGF0aW9uIGJ1aWxkcyBhbmQgb3V0LW9mLXRyZWUgYnVpbGRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAzLTA0IDExOjAyOjQxICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgbWluLWxhdGVuY3kgd29yZGluZyBpbiBwYXJ0LWxhdGVuY3kudHh0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQzMzgKCjIwMTUtMDItMjYgMTQ6NDM6MjUgKzAxMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOiByZW1vdmVkIGxpYnhtbCBpbmNsdWRlIGRpcmVjdGl2ZQoJICBUaGlzIGlzIGEgbGVmdG92ZXIgZnJvbSAwLjEwIGFuZCBub3QgbmVlZGVkIGFueW1vcmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTAKCjIwMTUtMDMtMDMgMTI6NTM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFNpZ25hbCB0aGUgc2lua3BhZCB0aHJlYWQgaWYgYSBmbG93IGVycm9yIGhhcHBlbmVkCgkgIEl0IG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgZm9yIGEgcXVlcnkgdG8gYmUgaGFuZGxlZCwgb3IgdGhlIHF1ZXVlIHRvIGJlY29tZQoJICBlbXB0eSBhZ2FpbiBmb3IgdGhlIG5leHQgaXRlbS4gQWxzbyBpZiBkb3duc3RyZWFtIHJldHVybnMgRkxVU0hJTkcsIGZsdXNoIHRoZQoJICBxdWV1ZSBsaWtlIHdlIGRvIGluIHF1ZXVlIGFuZCBtdWx0aXF1ZXVlLgoKMjAxNS0wMy0wMyAxMjo0ODozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFdha2UgdXAgdGhlIHF1ZXJ5IGZ1bmN0aW9uIG9uIGVycm9ycyBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uCgkgIE90aGVyd2lzZSB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcyB0byBiZSBoYW5kbGVkIGFzIHRoZQoJICBsb29wIGZ1bmN0aW9uIGlzIHN0b3BwZWQgYW5kIGFzIHN1Y2ggd2Ugd2lsbCBuZXZlciBldmVyIGRlcXVldWUgdGhlIHF1ZXJ5IGFuZAoJICBoYW5kbGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUzMTkKCjIwMTUtMDMtMDIgMjA6MzE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGltcHJvdmUgd2FybmluZyB3aGVuIGxpbmtpbmcgIGVsZW1lbnRzIHdpdGhvdXQgY29tbW9uIGFuY2VzdG9yCgkgIFRoaXMgY29tZXMgdXAgcXVpdGUgYSBsb3QgYW5kIGl0J3MgYSBjb21tb24gbWlzdGFrZSwgc28gbGV0J3MKCSAgdHJ5IHRvIGltcHJvdmUgdGhlIHdhcm5pbmcgbWVzc2FnZSBhIGxpdHRsZS4KCjIwMTUtMDItMjcgMDA6MzM6MjcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBEcm9wIGN1c3RvbSBsYXRlbmN5IHF1ZXJ5IGhhbmRsaW5nCgkgIFRoZSBkZWZhdWx0IGxhdGVuY3kgcXVlcnkgaGFuZGxlciBub3cgaW1wbGVtZW50cyB0aGlzIGxvZ2ljCgoyMDE1LTAyLTI2IDE1OjU3OjIwICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuc2luc3RhbGxlZDogQWRkIGdlcy1sYXVuY2ggbWFudWFscyBwYXRoIHRvIE1BTlBBVEguCgoyMDE1LTAyLTI2IDEzOjA4OjQ4ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmYWlsIGxhdGVuY3kgcXVlcnkgb24gdW5saW5rZWQgcGFkcwoJICBBIHNpbmdsZSB1bmxpbmtlZCBwYWQgY2FuIG1ha2UgdGhlIGxhdGVuY3kgcXVlcnkgZmFpbCBhY3Jvc3MgdGhlCgkgIHBpcGVsaW5lLCB3aGljaCBpcyBwcm9iYWJseSBub3QgZGVzaXJhYmxlLiBJbnN0ZWFkLCB3ZSByZXR1cm4gYSBkZWZhdWx0CgkgIGFueXRoaW5nIGdvZXMgdmFsdWUuCgkgIFBlcmhhcHMgd2Ugc2hvdWxkIGFsc28gYmUgZW1pdHRpbmcgYSBnc3RfbWVzc2FnZV9uZXdfbGF0ZW5jeSgpIHdoZW4gYQoJICBQTEFZSU5HIGVsZW1lbnQgaGFzIG9uZSBvZiBpdHMgcGFkcyBsaW5rZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxOTcKCjIwMTQtMTAtMjIgMTY6NDM6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGVtaXQgZXJyb3JzIG9uIEVPUyBpZiB3ZSBzYXcgR0FQIGV2ZW50cwoJICBJZiB3ZSBzYXcgR0FQIGV2ZW50cyAobWVhbmluZyB0aGUgc3RyZWFtcyBpcyBhZHZhbmNpbmcpIGJlZm9yZSB3ZSBnZXQKCSAgRU9TLCB3ZSBzaG91bGQgbm90IHBvc3QgYW4gRVJST1IsIHNpbmNlIGl0IGlzIG5vdCBmYXRhbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE0MwoKMjAxNS0wMi0yNSAwODoyNjoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBnc3R2YWx1ZTogTWFrZSBzdXJlIEdTVF9GT1VSQ0NfQVJHUyBwcm9kdWNlcyBwcmludGFibGUgY2hhcmFjdGVycwoJICBTb21lIHN5c3RlbXMgd2lsbCBjcmFzaCBpZiB3ZSB1c2Ugbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGluIHByaW50L2RlYnVnCgkgIHN0YXRlbWVudHMuCgkgIE1ha2Ugc3VyZSB0aGF0IEdTVF9GT1VSQ0NfQVJHUyBuZXZlciBkb2VzIHRoYXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTE0NAoKMjAxNS0wMi0yNSAxNjoxMTowNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogcmVtb3ZlIGluY29ycmVjdCBGaXhtZSBjb21tZW50CgkgIElmIHRoZSBjaGVja3Mgd2VyZSBjaGFuZ2VkIHRvIHVzaW5nIGdfcmV0dXJuX2lmX2ZhaWwoKSB0aGUgR1NUX0RFQlVHIGxpbmVzCgkgIGFib3V0IHRoZSBzcGVjaWZpYyBmYWlsdXJlIHdvdWxkIGJlIGxvc3QuCgoyMDE1LTAyLTI1IDE2OjAyOjM5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiByZW1vdmUgb2Jzb2xldGUgRml4bWUgY29tbWVudAoJICBnc3RfcGFkX2xpbmtfZmlsdGVyZWQoKSBpcyB2ZXJ5IGxvbmcgZ29uZSBhbmQgY3VycmVudAoJICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQoKSBkb2Vzbid0IGFwcGx5IHRvIHRoaXMgRml4bWUgY29tbWVudC4KCjIwMTUtMDItMjQgMjE6NTg6MDAgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgYWRhcHRpdmVkZW11eCBwYXRocyBmcm9tIC1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTEyMgoKMjAxNS0wMi0yNCAxODoxNDo0NyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiByZW1vdmUgZGVhZCBsaW5rCgkgIFJlbW92ZSBkZWFkIGxpbmsgdG8gd2lraSBwYWdlIGZvciBTdWJtaXR0aW5nUGF0Y2hlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMzExCgoyMDE1LTAyLTI0IDE0OjA3OjU0ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBGaXggaW5zdGFsbCBvZiBjb21wbGV0aW9uLWhlbHBlci4KCSAgQnkgYXBwbHlpbmcgdGhlIHN1cHBsaWVkIHRyYW5zZm9ybWF0aW9uIHRvIHRoZSBwcm9ncmFtIG5hbWUsCgkgIGZvciBleGFtcGxlIC0tcHJvZ3JhbS1wcmVmaXguCgoyMDE1LTAyLTIzIDE2OjM5OjQzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQWRkIG1pc3NpbmcgREVTVERJUgoJICBPdGhlcndpc2UgZG9pbmcgIm1ha2UgaW5zdGFsbCBERVNURElSIiB3aWxsIHRyeSB0byB3cml0ZSB0bwoJICAvdXNyL3NoYXJlLy4uLgoKMjAxNS0wMi0yMyAyMToxNzoxNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFkZCBmaWx0ZXJpbmcgYnkga2xhc3MgYW5kIHNpbmsgY2Fwcy4KCjIwMTUtMDItMjEgMTc6MTM6MjYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCByZXR1cm5pbmcgZG93bnN0cmVhbSBHU1RfRkxPV19FT1MgZnJvbSBwcmV2aW91cyBzZWdtZW50IHRvIGN1cnJlbnQgdXBzdHJlYW0gc2VnbWVudAoKMjAxNS0wMi0yMiAxMDowMjoyNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZG9jdW1lbnRhdGlvbiBjb21tZW50IHR5cG8KCjIwMTUtMDItMjIgMTA6MDE6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZHJhaW4gc2VnbWVudCB1cG9uIFNFR01FTlRfRE9ORSB0byBlbnN1cmUgcHJvcGVyIGV2ZW50IG9yZGVyCgoyMDE1LTAyLTIyIDEwOjAxOjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFuIHVwIHNvbWUgYm9ndXMgY29tbWVudGVkIGNvZGUKCjIwMTUtMDItMjMgMTk6MTA6MDggKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkgIGNvbXBsZXRpb24taGVscGVyOiBBcHBlbmQgJChFWEVFWFQpIHRvIHRoZSBuYW1lIG9mIHRoZSBtb3ZlZCBmaWxlLgoJICBGaXhlcyB0aGUgYnVpbGQgb24gV2luZG93cwoJICAoaHR0cHM6Ly9jaS5nc3RyZWFtZXIubmV0L2pvYi9jZXJiZXJvLWNyb3NzLW1pbmd3MzIvMTc0Mi9jb25zb2xlKQoKMjAxNS0wMi0yMyAxNzoyMzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBGaXggZGlzdGNoZWNrCgkgIERpc2FibGUgYmFzaCBjb21wbGV0aW9uIGR1cmluZyBkaXN0Y2hlY2tpbmcgb3RoZXJ3aXNlCgkgIGl0IG1heSB0cnkgdG8gaW5zdGFsbCBpbnRvIGEgc3lzdGVtIHBhdGggYW5kIGZhaWwuCgoyMDE1LTAyLTIzIDE3OjE2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIERpc3QgbmV3IGRhdGEgZGlyZWN0b3J5CgkgIEZpeGVzICdtYWtlIGRpc3QnCgoyMDE1LTAyLTIwIDIyOjA0OjIyICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkYXRhL01ha2VmaWxlLmFtOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1pbnNwZWN0LTEuMDoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtbGF1bmNoLTEuMDoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYmFzaC1jb21wbGV0aW9uOiBJbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQgd2F5LgoJICArIEdldHMgaW5zdGFsbGVkCgkgICsgVXNlcyBhIGhlbHBlciB0b29sLCBnc3QtY29tcGxldGlvbi1oZWxwZXIsIGluc3RhbGxlZCBpbgoJICBiYXNoLWNvbXBsZXRpb25zL2hlbHBlcnMuCgkgICsgQWRkcyBhIGNvbW1vbiBzY3JpcHQgdGhhdCBvdGhlciB0b29scyBjYW4gc291cmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3CgoyMDE1LTAyLTIzIDEyOjA4OjQ5ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkgIEdzdERldmljZU1vbml0b3I6IGtlZXAgYWxwaGFiZXRpY2FsIG9yZGVyCgoyMDE1LTAyLTIwIDE2OjIyOjIzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBzZXQgcGFkcyBuZWVkLXBhcmVudCBmbGFnIHRvIGZhbHNlIHdoZW4gcmVtb3ZpbmciCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTkxMTU1NGNmZjJjNGExMTc3MmI1NDFhODIxNWE4MGM3MjhiMTA5Ny4KCSAgVGhpcyBicmVha3MgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgR1NUX1BBRF9GTEFHX05FRURfUEFSRU5ULCB0aGUgcmVhc29uIGZvciB0aGlzCgkgIGZsYWcgaXMgdGhhdCBpZiBhIHBhZCBpcyByZW1vdmVkIGZyb20gYSBydW5uaW5nIGVsZW1lbnQsIHlvdSBkb24ndCB3YW50CgkgIGZ1bmN0aW9ucyAoc3VjaCBhcyBjaGFpbiBvciBldmVudCkgdG8gYmUgY2FsbGVkIG9uIHRoZSBwYWQgd2l0aG91dCBhIHBhcmVudCBzZXQuCgkgIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcmVtb3ZlIGEgcmVxdWVzdCBvciBzb21ldGltZXMgcGFkIGZyb20gYSBydW5uaW5nIGVsZW1lbnQuCgkgIEkgZG9uJ3Qgc2VlIHRoZSBjb2RlIHRoYXQgY2F1c2VkIHRoaXMgaW4gdHNkZW11eCwgYnV0IGlmIGl0IG5lZWRzIHRvIHVuc2V0CgkgIHRoZSBmbGFnIG9uIHJlbW92ZSwgaXQgc2hvdWxkIGRvIGl0IGl0c2VsZiBhbmQgdGhlbiBtYWtlIHN1cmUgdGhhdCB0aGUgcGFyZW50CgkgIGV4aXN0cyBpbiBhbnkgcGFkIGZ1bmN0aW9uLgoKMjAxNS0wMi0xOSAxMjoxNzoxNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGNhc3QgZWxlbWVudCBpbiBBU1NFUlRfU0VUX1NUQVRFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0Nzc3CgoyMDE1LTAyLTE5IDAxOjE2OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBhIHNlcGFyYXRlIHF1ZXJ5IGZvciB1cHN0cmVhbSBwYWRzIGFuZCBsZXQgaXQgZmFpbCBpZiBvbmUgdXBzdHJlYW0gcXVlcnkgZmFpbHMKCjIwMTUtMDItMTkgMDE6MTI6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSWYgdGhlIGxhdGVuY3kgcXVlcnkgZmFpbHMgZm9yIG9uZSBvZiB0aGUgcGFkcywgaXQgZmFpbHMgb3ZlcmFsbAoKMjAxNS0wMi0xOCAxMTowNToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1bnVzZWQgYm9vbGVhbiBwYXJhbWV0ZXIgZnJvbSBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMTUtMDItMTcgMTI6MTE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogQWRkIHVuaXQgdGVzdCBmb3IgYnVmZmVyIGxpc3QgYW5kIHRpbWUgbGV2ZWwgaGFuZGxpbmcKCjIwMTUtMDItMTcgMTE6NDQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3RzCgoyMDE1LTAyLTE3IDExOjQxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDb3VudCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaW4gYSBidWZmZXIgbGlzdCBmb3IgdXBkYXRpbmcgdGhlIGN1cnJlbnQgbGV2ZWxzCgkgIGluc3RlYWQgb2YganVzdCBhc3N1bWluZyBvbmUgYnVmZmVyLgoKMjAxNS0wMi0xNyAyMDo0NzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHJldml2ZSBhc3luYyBkZWxpdmVyeSBtZXNzYWdlIGJlZm9yZSBidXMgdGhyZWFkIGNhbiBydW4gdW5yZWYKCSAgUmV2aXZlIG1lc3NhZ2UgaW4gZGlzcG9zZSBoYW5kbGVyIGJlZm9yZSB3ZSBzaWduYWwgdGhlIGJ1cyB0aHJlYWQsCgkgIG90aGVyd2lzZSB0aGUgYnVzIHRocmVhZCBtaWdodCBiZSB3b2tlbiB1cCBhbmQgdW5yZWYgdGhlIG1lc3NhZ2UKCSAgYmVmb3JlIHdlIGhhZCBhIGNoYW5jZSB0byByZXZpdmUgaXQgeWV0LgoKMjAxNS0wMi0xNiAyMzowMjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGJ1czogYWRkIHVuaXQgdGVzdCBmb3IgYXN5bmMgbWVzc2FnZSBkZWxpdmVyeQoKMjAxNS0wMi0xNiAyMjozOTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2UsIGJ1czogZml4IGFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkKCSAgQXN5bmMgbWVzc2FnZSBkZWxpdmVyeSAod2hlcmUgdGhlIHBvc3RpbmcgdGhyZWFkIGdldHMgYmxvY2tlZAoJICB1bnRpbCB0aGUgbWVzc2FnZSBoYXMgYmVlbiBwcm9jZXNzZWQgYW5kL29yIGZyZWVkKSB3YXMgcHJldHR5CgkgIG11Y2ggY29tcGxldGVseSBicm9rZW4uCgkgIEZvciBvbmUsIGRvbid0IHVzZSBHTXV0ZXggaW1wbGVtZW50YXRpb24gZGV0YWlscyB0byBjaGVjawoJICB3aGV0aGVyIGEgbXV0ZXggaGFzIGJlZW4gaW5pdGlhbGl6ZWQgb3Igbm90LCBlc3AuIG5vdAoJICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHRoYXQgZG9uJ3QgaG9sZCB0cnVlIGFueSBtb3JlIHdpdGgKCSAgbmV3ZXIgR0xpYiB2ZXJzaW9ucyB3aGVyZSBhdG9taWMgb3BzIGFuZCBmdXRleGVzIGFyZSB1c2VkCgkgIChzcG90dGVkIGJ5IEpvc2VwIFRvcnJhcykuIFRoaXMgbGVkIHRvIGFzeW5jIG1lc3NhZ2UKCSAgZGVsaXZlcnkgbm8gbG9uZ2VyIGJsb2NraW5nIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucyBvbgoJICBMaW51eC4KCSAgU2Vjb25kbHksIGFmdGVyIGFzeW5jIGRlbGl2ZXJ5IGRvbid0IGZyZWUgbXV0ZXgvR0NvbmQKCSAgZW1iZWRkZWQgaW5zaWRlIHRoZSBqdXN0LWZyZWVkIG1lc3NhZ2Ugc3RydWN0dXJlLgoJICBVc2UgYSBuZXcgKHByaXZhdGUpIG1pbmkgb2JqZWN0IGZsYWcgdG8gc2lnbmFsIEdzdE1lc3NhZ2UKCSAgdGhhdCB0aGUgbWVzc2FnZSBiZWluZyBmcmVlZCBpcyBwYXJ0IG9mIGFuIGFzeW5jIGRlbGl2ZXJ5CgkgIG9uIHRoZSBidXMgc28gdGhhdCB0aGUgZGlzcG9zZSBoYW5kbGVyIGNhbiBrZWVwIHRoZSBtZXNzYWdlCgkgIGFsaXZlIGFuZCB0aGUgYnVzIGNhbiBmcmVlIGl0IG9uY2UgaXQncyBkb25lIGNsZWFuaW5nIHVwCgkgIHN0dWZmLgoKMjAxNS0wMi0xNiAxOToyNDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG5pY2VyIGJ1ZmZlciBvZmZzZXQgcHJpbnRpbmcgd2hlbiBvZmZzZXRzIGFyZSBub3Qgc2V0CgkgIFByaW50IHVuc2V0IG9mZnNldHMgYXMgJ25vbmUnIGluc3RlYWQgb2YgaHVtb25nb3VzIG51bWJlcnMsCgkgIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDE1LTAyLTE2IDExOjM1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgaW5pdGlhbGl6ZSBHVmFsdWUgdG8gYSB0eXBlIG9uY2UsIG5vdCBvbiBldmVyeSByZXRyeQoJICBPdGhlcndpc2Ugd2UnbGwgZ2V0IHdhcm5pbmdzIGxpa2UgdGhpczoKCSAgY2Fubm90IGluaXRpYWxpemUgR1ZhbHVlIHdpdGggdHlwZSAnZ2Jvb2xlYW4nLCB0aGUgdmFsdWUgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCBhcyAnZ2Jvb2xlYW4nCgoyMDE1LTAyLTE0IDEyOjE1OjAzICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBjaGVjayB1cmkgYmVmb3JlIHVzaW5nIGl0IGluIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9pbnRlcm5hbAoJICBJZiBhbiBlbGVtZW50IGltcGxlbWVudHMgd3JvbmdseSB0aGUgVVJJIHF1ZXJ5IGFuZCBzZXQgdGhlIHVyaSB0byBOVUxMIGFuZCBpZgoJICB0aGUgZWxlbWVudCBjYWxscyBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWQgYXQgc29tZSBwb2ludCwgaXQgd2lsbCBsZWFkIHRvIGNyYXNoCgkgIGFzIHRoZSB1cmkgaXMgbm90IHN1cHBvc2VkIHRvIGJlIE5VTEwgaW4gdGhlIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9pbnRlcm5hbAoJICBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDUyMAoKMjAxNS0wMi0xMyAxOTo0MzoyNCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogRG8gbm90IHdyb25nbHkgc2VuZCB2YWx1ZS1yZW1vdmVkCgkgIEFuZCBhdm9pZCBmcmVlaW5nIHNvbWV0aGluZyB3ZSBkbyBub3Qgb3duCgoyMDE1LTAyLTA0IDE1OjA2OjE3ICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBTZXQgR1NUX1ZBTElEQVRFX1BMVUdJTl9QQVRICgoyMDE1LTAyLTEyIDEzOjM0OjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRvY3VtZW50YXRpb24gYW5kIGRlYnVnIG1lc3NhZ2UgYWZ0ZXIgbGF0ZW5jeSB1cGRhdGVzCgkgIENoYW5nZXMgZG9jcyBhbmQgbWVzc2FnZSBhY2NvcmRpbmcgdG8gbGF0ZW5jeSBoYW5kbGluZyBmaXgKCjIwMTUtMDItMTIgMTQ6NTA6MTUgKzAwMDAgIEZyw6lkw6lyaWMgV2FuZyA8ZnJlZC53YW5nQGZyZWUuZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiB1c2UgZ19hc2NpaV9zdHJ0b3VsbCgpIHRvIGNvbnZlcnQgc2l6ZSBzdHJpbmcgaW4gdXJpCgkgIHNzY2FuZigpIGRvZXNuJ3QgaGFuZGxlIEdfR1VJTlQ2NF9GT1JNQVQgd2VsbCBvbiBtaW5ndzY0IGl0CgkgIGFwcGVhcnMsIGxlYWRpbmcgdG8gY29tcGlsZXIgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQwMzQKCjIwMTUtMDItMTIgMTQ6MDM6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKCkgY2FuIHJldHVybiBOVUxMIGlmIHRoZXJlIGFyZSBub25lCgoyMDE1LTAyLTEyIDE0OjAzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJldHVybiBOVUxMIGluc3RlYWQgb2YgRkFMU0UgZm9yIHBvaW50ZXJzCgoyMDE1LTAyLTEyIDEzOjU1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcGxlbWVudCBtb3JlIHVzZWZ1bCBkZWZhdWx0IGhhbmRsaW5nIGZvciB0aGUgTEFURU5DWSBxdWVyeQoJICBCZWZvcmUgd2UganVzdCB0b29rIHRoZSB2YWx1ZXMgZnJvbSB0aGUgZmlyc3QgcGFkIHRoYXQgc3VjY2VkZWQgdGhlIHF1ZXJ5LAoJICBub3cgd2UgYWNjdW11bGF0ZSB0aGUgcmVzdWx0cyBvZiBldmVyeSBzaW5rcGFkIHByb3Blcmx5IGFuZCByZXR1cm4gdGhhdAoJICByZXN1bHQuCgoyMDE1LTAyLTEyIDExOjI2OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSAgZGVzaWduL3BhcnQtbGF0ZW5jeTogTWlub3IgbG9naWMgZml4CgkgIFRoZSBtYXhpbXVtIGxhdGVuY3kgd2lsbCBiZSB0aGUgZWxlbWVudCdzIG1pbmltdW0gbGF0ZW5jeSBvciBiaWdnZXIsCgkgIG5vdCBiaWdnZXIgdGhhbiB0aGUgZWxlbWVudCdzIG1pbmltdW0gbGF0ZW5jeSBvciBiaWdnZXIuCgoyMDE1LTAyLTExIDEzOjQxOjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgSW1wcm92ZSBhbmQgZml4IExBVEVOQ1kgcXVlcnkgaGFuZGxpbmcKCSAgVGhpcyBub3cgZm9sbG93cyB0aGUgZGVzaWduIGRvY3MgZXZlcnl3aGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDEwNgoKMjAxNS0wMi0xMSAxMjoyMDozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRlc2lnbi9wYXJ0LWxhdGVuY3k6IEFkZCBtb3JlIGRldGFpbHMgYWJvdXQgbWluL21heCBsYXRlbmN5IGhhbmRsaW5nCgkgIFRoZXNlIGRvY3MgbWlzc2VkIG1hbnkgZGV0YWlscyB0aGF0IHdlcmUgbm90IG9idmlvdXMgYW5kIGJlY2F1c2Ugb2YgdGhhdAoJICBoYW5kbGVkIGluIGEgZmV3IGRpZmZlcmVudCwgaW5jb21wYXRpYmxlIHdheXMgaW4gZGlmZmVyZW50IGVsZW1lbnRzIGFuZCBiYXNlCgkgIGNsYXNzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxMDYKCjIwMTUtMDItMDcgMDU6MTY6MjMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBGaXggY2xvY2sgcmVncmVzc2lvbiB0ZXN0CgkgIEZpeCB1cCB0aGUgdmFsdWVzIHRoZSB0ZXN0IGlzIGNoZWNraW5nIGZvciBub3cgdGhhdAoJICB0aGUgY2xvY2sgcmVncmVzc2lvbiByZXR1cm5zIHBhcmFtZXRlcnMgc3RhcnRpbmcgZnJvbQoJICB0aGUgZW5kIG9mIHRoZSByZWdyZXNzaW9uIHJhbmdlLgoKMjAxNS0wMi0wNyAwNDoyMjoyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IERvbid0IHVwZGF0ZSB0aGUgY2xvY2sgd2hlbiBpdCBkZXN5bmNoCgkgIEFkZCBhIGhvbGQgb2ZmIHdoZW4gdGhlIGNsb2NrIGNhbGlicmF0aW9uIHN1ZGRlbmx5IGxvc2VzIHN5bmNoLAoJICBhcyBpdCBtYXkgYmUgYSBnbGl0Y2gsIGJ1dCBhbHNvIG1ha2Ugc3VyZSB3ZSB1cGRhdGUgaWYgaXQgc3RheXMKCSAgZGVzeW5jaGVkIGZvciBtb3JlIHRoYW4gYSBmZXcgc2Vjb25kcwoKMjAxNS0wMi0wNiAwNjowNzo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IE1ha2UgdGhlIFJUVCBhdmVyYWdlIGlnbm9yZSBsYXJnZSB2YWx1ZXMgbW9yZSBmb3JjZWZ1bGx5LgoJICBTbW9vdGggbGFyZ2VyIFJUVHMgYSBsaXR0bGUgaGFyZGVyLCBzbyBleGNlc3NpdmVseSBsYXJnZSB2YWx1ZXMKCSAgcGVydHVyYiB0aGUgYXZlcmFnZSBhIGJpdCBsZXNzLCBhbmQgdGhlcmVmb3JlIGdldCBmaWx0ZXJlZCBvdXQKCSAgbW9yZSBzdHJvbmdseQoKMjAxNS0wMi0wNSAyMjo1NTozOSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkgIGNsb2NrOiBNYWtlIGxpbmVhciByZWdyZXNzaW9uIHgveSBiYXNlIHN0YXJ0IGZyb20gbWF4aW11bSBvYnNlcnZhdGlvbi4KCSAgUHJvamVjdCB0aGUgcmVzdWx0cyBvZiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gdG8gdGhlIGVuZCBvZiB0aGUKCSAgcmVncmVzc2lvbiByYW5nZSwgc28gdGhleSdyZSBtb3JlIGRpcmVjdGx5IGNvbXBhcmFibGUgdG8gcmVzdWx0cwoJICBnb2luZyBmb3J3YXJkCgoyMDE1LTAyLTA1IDEzOjQ5OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCAib2Zmc2V0IiBwcm9wZXJ0eSB0byBnbyB3aXRoIGdzdF9wYWRfc2V0X29mZnNldCgpCgkgIFNvIHdlIGNhbiBzZXQgdGhlIG9mZnNldCB2aWEgZ3N0LWxhdW5jaC4KCjIwMTUtMDItMDIgMDg6MjI6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIG1vcmUgZGV0YWlsIHRvIGxvZ2dpbmcgd2hlbiBub3QgbG9hZGluZyBhIHBsdWdpbgoJICBJbXByb3ZlIHRoZSBsb2cgbWVzc2FnZXMgYW5kIGFkZCBlLmcgdGhlIHZlcnNpb24gbnVtYmVyIHdlIGNoZWNrZWQuCgoyMDE1LTAyLTAyIDE3OjM3OjQ0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggYSB0eXBvIGluIGEgZG9jc3RyaW5nLgoKMjAxNS0wMi0wMSAxNDoyMzoyNiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBidWlsZDogQ2hlY2sgdGhhdCBfTVNDX1ZFUiBtYWNybyBpcyBkZWZpbmVkCgoyMDE1LTAyLTAxIDAzOjM5OjAzICswMjAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBBZGQgdGhyZWFkIG5hbWUgc3VwcG9ydCBvbiBPUyBYIGFuZCBpT1MKCjIwMTUtMDEtMjkgMTY6Mzc6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2stbGlucmVnLmM6CgkgIGNsb2NrOiBEb24ndCB1c2UgaW52YWxpZCBvYmplY3RzIGZvciBHU1RfREVCVUdfT0JKRUNUKCkKCSAgTm90IHN1cmUgd2hhdCAiY2xvY2siIGFjdHVhbGx5IGlzIGhlcmUsIGl0IG11c3QgYmUgc29tZXRoaW5nIGRlZmluZWQgYnkgb25lIG9mCgkgIHRoZSBoZWFkZXJzIHRoYXQgYXJlIGluY2x1ZGVkLgoKMjAxNS0wMS0yOSAxMjoxMDoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb2N1bWVudCB0aGF0IGdzdF9idWZmZXJfY29weV9yZWdpb24oKSBhY2NlcHRzIC0xIGFzIHNpemUgdG8gY29weSB1bnRpbCB0aGUgZW5kCgkgIEl0J3MganVzdCBhIHdyYXBwZXIgYXJvdW5kIGdzdF9idWZmZXJfY29weV9pbnRvKCkgYWZ0ZXIgYWxsLgoKMjAxNC0xMi0wOSAxNjoyODo1NiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBBZGQgbmV3IHNraXAgZmxhZ3MgZm9yIGNsYXJpZnlpbmcgdHJpY2sgbW9kZSBwbGF5YmFjay4KCSAgQWRkIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFX0tFWV9VTklUUyBhbmQKCSAgR1NUX1NFRUtfRkxBR19UUklDS01PREVfTk9fQVVESU8sIGFuZCByZW5hbWUgR1NUX1NFRUtfRkxBR19TS0lQCgkgIHRvIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFICh3aXRoIGJhY2t3YXJkcyBjb21wYXQgZGVmaW5lKS4KCSAgRG8gdGhlIHNhbWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIFNFR01FTlQgZmxhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU2NjYKCjIwMTUtMDEtMjMgMDg6NTk6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZml4IGFub3RoZXIgdHlwbyBpbiB0aGUgZG9jcwoKMjAxNS0wMS0yMiAyMzoxMDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBpbmRlbnRpb24KCjIwMTUtMDEtMjEgMTQ6MTA6MDIgKzAwMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggbmV3IFVSSSBwYXJzaW5nIHRlc3RzIGJhc2VkIG9uIEdOZXQncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMTk1CgoyMDE1LTAxLTIxIDE0OjA5OjQ1ICswMDAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IHBhcnNpbmcgaXNzdWVzCgkgIE1ha2UgaG9zdCBJUHMgaW4gc3F1YXJlIGJyYWNrZXRzIHN0b3JlIG9ubHkgdGhlIElQLCBpLmUuIHN0cmlwIHRoZSBicmFja2V0cy4KCSAgU3RyaXAgbGVhZGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gVVJJcy4KCSAgRmFpbCBwYXJzaW5nIHdoZW4gaG9zdCBwYXJ0IGRvZXMgbm90IG1hdGNoIGFueSB2YWxpZCBmb3JtYXRzIGZyb20gUkZDMzk4Ni4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0xOSAxOToxNTozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBBZGQgcGFyc2luZyB1bml0IHRlc3QgYmFzZWQgb24gR05ldCdzCgkgIFBsdXMgc29tZSBuZXcgVVJJcyB0byBwYXJzZS4KCSAgaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9hcmNoaXZlL2duZXQvcGxhaW4vdGVzdHMvY2hlY2svZ25ldC9nbmV0dXJpLmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0yMiAxMToyOToxOCArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGRvYyBvZiBHU1RfQ0hFQ0tTIGFuZCBHU1RfQ0hFQ0tTX0lHTk9SRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMzM1CgoyMDE1LTAxLTIxIDE4OjA3OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBZGQgX2ZhaWxfdW5sZXNzKCkgY29tcGF0aWJpbGl0eSBmdW5jdGlvbiBhcm91bmQgX2NrX2Fzc2VydF9mYWlsZWQoKQoJICBXZSBleHBvcnRlZCB0aGlzIGluIDwgMS41IGFuZCBpdCB3YXMgYXV0b21hdGljYWxseSB1c2VkIGJ5IG1hbnkgbWFjcm9zCgkgIGZyb20gdGhlIGhlYWRlci4gS2VlcCBpdCBleHBvcnRlZCBmb3Igbm93LgoKMjAxNS0wMS0yMSAxNDoxMjoyMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBJbmxpbmUgYXBwbHlfcGFkX29mZnNldCgpCgkgIEF2b2lkIGRvaW5nIGEgZnVuY3Rpb24gY2FsbCBmb3Igc29tZXRoaW5nIHdoaWNoIHdpbGwgbW9zdGx5IGJlIHVudXNlZAoKMjAxNS0wMS0yMSAxNDoxMDowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggZGVidWcgbWVzc2FnZQoKMjAxNS0wMS0yMSAxMTo0NTo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBGaXggUFJPQkVfTk9fREFUQSBtYWNybwoJICBUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgbWFjcm8gd2FzIGFsd2F5cyB1c2VkIHdpdGggJ3JldCcgYXMgdGhlIGRlZmF1bHR2YWwKCSAgYXJndW1lbnQuCgkgIFRoaXMgd291bGQgcmVzdWx0IGluIHRoZSBtYWNybyBldmVudHVhbGx5IGV4cGFuZGluZyB0bwoJICBpZiAoR19VTkxJS0VMWSAocmV0ICE9IHJldCAmJiByZXQgIT0gR1NUX0ZMT1dfT0spKQoJICAuLi4gcmV0ICE9IHJldCB3aWxsIGFsd2F5cyBmYWlsLCBhbmQgdGhlcmVmb3JlIHdlJ2QgbmV2ZXIgY2FsbCB0aGUKCSAgZm9sbG93aW5nIGxpbmUuCgkgIEluc3RlYWQgb2YgdGhhdCwgc3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIGxvY2FsbHkgZm9yIGNvbXBhcmlzaW9uCgoyMDE1LTAxLTIxIDIyOjQ0OjU5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IGRvY3MgdHlwby4gQ2xvY2sgYnVzIG1lc3NhZ2VzIGFyZSBHU1RfTUVTU0FHRV9FTEVNRU5UCgoyMDE1LTAxLTE1IDIyOjMyOjI4ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHJhdGUgbGltaXRzIGZvciBwb2xsaW5nIGFuZCBmaXggdXAgc2tldyBsaW1pdHMKCSAgQWRkIHRoZSBtaW5pbXVtLXVwZGF0ZS1pbnRlcnZhbCBwcm9wZXJ0eSB0byB0aGUgY2xvY2ssIHdpdGggYSBkZWZhdWx0CgkgIG9mIDUwbXMgYW5kIGRvbid0IHNlbmQgcG9sbGluZyByZXF1ZXN0cyBmYXN0ZXIgdGhhbiB0aGF0LiBUaGF0IGhlbHBzIHRvCgkgIGVuc3VyZSB3ZSBzcHJlYWQgdGhlIGluaXRpYWwgb2JzZXJ2YXRpb25zIG91dCBhIGxpdHRsZSAtIHN0YXJ0dXAgdGFrZXMKCSAgYSBsaXR0bGUgbG9uZ2VyLCBidXQgdHJhY2tpbmcgaXMgbW9yZSBzdGFibGUuCgkgIE1vdmUgdGhlIGRpc2NvbnQgc2tldyBsaW1pdGluZyBjb2RlIGluc2lkZSBhbiBpZiBzdGF0ZW1lbnQsIHNvIHRoYXQKCSAgaXQncyBvbmx5IGRvbmUgd2hlbiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gc3VjY2VlZHMgYW5kIHRoZSBjbG9jawoJICBwYXJhbWV0ZXJzIG1pZ2h0IGFjdHVhbGx5IGNoYW5nZS4KCjIwMTUtMDEtMTUgMTA6MDU6MzIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBJbXByb3ZlIHNsYXZpbmcgcmVncmVzc2lvbi4KCSAgQWRkIGRvbWFpbiBjaGVja3MgZm9yIHRoZSBpbnB1dCB2YWx1ZXMsIGFuZCBhIHZhcmlhYmxlIHByZWNpc2lvbgoJICBjYWxjdWxhdGlvbiB0aGF0IGxvb3BzIGlmIG5lY2Vzc2FyeSB0byBlbnN1cmUgd2UgbmV2ZXIgb3ZlcmZsb3cKCSAgYWNjdW11bGF0b3JzIGFuZCB0aGVuIHNpbGVudGx5IHByb2R1Y2UgZ2FyYmFnZSByZXN1bHRzLgoJICBNYWtlIHRoZSAobm9uLXB1YmxpYykgbGluZWFyIHJlZ3Jlc3Npb24gZnVuY3Rpb24gYXZhaWxhYmxlIGZvcgoJICB1bml0IHRlc3RpbmcgYnkgcHV0dGluZyBpdCBpbiBhIHNlcGFyYXRlIHNvdXJjZSBmaWxlIHRoZSB0ZXN0CgkgIGNhbiBpbmNsdWRlLiBBZGQgYSB1bml0IHRlc3QgdGhhdCB0aGUgbmV3IHJlZ3Jlc3Npb24gZnVuY3Rpb24KCSAgcHJvZHVjZXMgc2Vuc2libGUgcmVzdWx0cyBmb3Igc2V2ZXJhbCBpbnB1dHMgdGFrZW4gZnJvbSByZWFsLXdvcmxkCgkgIGNhcHR1cmVzLgoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svbmV0Y2xvY2stY2xpZW50LmM6CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL25ldGNsb2NrLXNlcnZlci5jOgoJICBuZXRjbG9jazogQWRkIHNpbXBsZSBuZXR3b3JrIGNsb2NrIHNlcnZlciBhbmQgY2xpZW50IGV4YW1wbGVzCgoyMDE1LTAxLTEwIDIxOjQyOjAwICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHNlbmRpbmcgc3RhdGlzdGljIGJ1cyBtZXNzYWdlcyBhbmQgZGlzY29udCBsaW1pdHMKCSAgQWxsb3cgc2V0dGluZyBhIEdzdEJ1cyBvbiB0aGUgbmV0d29yayBjbG9jayBjbGllbnQKCSAgdmlhIGEgbmV3ICdidXMnIG9iamVjdCBwcm9wZXJ0eS4gSWYgYSBidXMgaXMgc2V0LCB0aGUKCSAgY2xvY2sgd2lsbCBvdXRwdXQgYW4gZWxlbWVudCBtZXNzYWdlIGNvbnRhaW5pbmcgc3RhdGlzdGljcwoJICBhYm91dCBuZXcgY2xvY2sgb2JzZXJ2YXRpb25zIGFuZCB0aGUgY2xvY2sgY29ycmVsYXRpb24uCgkgIFdoZW4gdGhlIGxvY2FsIGNsb2NrIGlzIHN5bmNocm9uaXNlZCB3aXRoIHRoZSByZW1vdGUsIGxpbWl0IHRoZQoJICBtYXhpbXVtIGp1bXAgaW4gdGhlIGNsb2NrIGF0IGFueSBwb2ludCB0byBiZSBvbmUgYXZlcmFnZSBSVFQgdG8KCSAgdGhlIHNlcnZlci4gQWxzbywgcHVibGlzaCBpbiB0aGUgYnVzIG1lc3NhZ2Ugd2hldGhlciB3ZSBhcmUKCSAgc3luY2hlZCB3aXRoIHRoZSByZW1vdGUgb3Igbm90LgoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkKCSAgZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbl91bmFwcGxpZWQoKSBhZGRzIGEgbmV3IG1hc3Rlci9zbGF2ZSBjbG9jawoJICBvYnNlcnZhdGlvbiBhbmQgcnVucyB0aGUgcmVncmVzc2lvbiB3aXRob3V0IGFjdGl2YXRpbmcgdGhlIG5ldwoJICBjYWxpYnJhdGlvbiByZXN1bHRzLgoKMjAxNC0xMi0xNiAyMjo1MToyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQWRkIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpCgkgIGdzdF9jbG9ja19hZGp1c3Rfd2l0aF9jYWxpYnJhdGlvbigpIHVzZXMgZGlyZWN0bHkgcGFzc2VkIGNhbGlicmF0aW9uCgkgIHBhcmFtZXRlcnMsIGluc3RlYWQgb2YgdXNpbmcgdGhlIGNsb2NrJ3MgY3VycmVudCBjYWxpYnJhdGlvbiwKCSAgYWxsb3dpbmcgZm9yIGNhbGN1bGF0aW9ucyB1c2luZyBwZW5kaW5nIG9yIG9sZCBjYWxpYnJhdGlvbiBwYXJhbXMKCjIwMTUtMDEtMjEgMDk6NDU6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogQ29uc3RpZnkgbmVnb3RpYXRpb24gbW9kZSBHRW51bVZhbHVlIHRhYmxlCgoyMDE1LTAxLTIwIDEwOjM1OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gR3N0RXZlbnQgZG9jcwoJICBzZW5kIC0+IHNlbnQKCjIwMTUtMDEtMjAgMDk6MTk6MTAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IFJlbW92ZSBnbm9ubGluIGZyb20gdGhlIHNjcmlwdHMKCSAgSXQgaXMgbm90IG1haW50YWluIGFueW1vcmUgYW5kIGl0cyBmZWF0dXJlIGFyZSBub3cgaW5zaWRlIHRoZSBHU3RyZWFtZXIKCSAgRWRpdGluZyBTZXJ2aWNlcyAoZm9yIHRoZSB0aW1lIGJlaW5nKS4KCjIwMTUtMDEtMTYgMTk6MTc6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUGFzcyBzdHJ1Y3RzIHdlIHBsYW4gdG8gbW9kaWZ5IGFyb3VuZCBieSBwb2ludGVyLCBub3QgdmFsdWUKCSAgT3RoZXJ3aXNlIHRoZSBzdHJ1Y3QgaXMgZ29pbmcgdG8gYmUgY29waWVkLCB3aGljaCBpcyBub3QgdmVyeSBlZmZpY2llbnQuIEFuZAoJICBhbHNvIGhhcyB0aGUgbmljZSBzaWRlIGVmZmVjdCB0aGF0IG1vZGlmaWNhdGlvbnMgb2YgdGhlIHN0cnVjdCBtaWdodCBiZQoJICBkb25lIGluIGEgY29weSwgYW5kIHdlIGxhdGVyIHVzZSB0aGUgb3JpZ2luYWwgc3RydWN0IHdpdGhvdXQgdGhlIGNoYW5nZXMuCgkgIENhdXNlZCBMQVRFTkNZIHF1ZXJpZXMgdG8gYWx3YXlzIHJldHVybiB0aGUgaW5pdGlhbGl6YXRpb24gdmFsdWVzIGluIG9uZSBvZiBteQoJICB0ZXN0cywgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHZhbHVlcyByZXBvcnRlZCBieSBjaGlsZCBlbGVtZW50cy4KCjIwMTUtMDEtMTQgMTA6NTI6MTEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogc2VuZCBnYXAgZXZlbnRzIHdoZW4gZHJvcHBpbmcgYnVmZmVycwoKMjAxNS0wMS0xMyAxODoxMTozOSArMDAwMCAgUGhpbGxpcCBXb29kIDxwaGlsbGlwLndvb2RAZHVuZWxtLm9yZy51az4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggaW5jb3JyZWN0IHByZXNldCB2ZXJzaW9uIGNvbXBhcmlzb24KCSAgVXNlIGFwcF92ZXJzaW9uIGlmIHRoZXJlIGFyZSBubyBzeXN0ZW0gcHJlc2V0cywgc28gdGhhdCBpZiB0aGUKCSAgYXBwbGljYXRpb24gcHJlc2V0cyBhcmUgbmV3ZXIgdGhhbiB0aGUgdXNlciBwcmVzZXRzIHRoZXkgYXJlIG1lcmdlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Mjg3NwoKMjAxNS0wMS0xMiAxNjowMzowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHBvaW50ZXIKCSAgQ0lEIDEyNjIyODYKCjIwMTUtMDEtMTIgMTU6NTU6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYyYzZiOTUgdG8gYmM3NmE4YgoKMjAxNS0wMS0xMSAyMzowMDoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggc29ydGluZyBwcmVzZXRzCgkgIFRoZSBnbGliIGRvY3MgYXJlIG5vdCBjbGVhciBvbiB0aGlzLCBidXQgdGhlIHFzb3J0IG1hbi1wYWdlIGlzIC0gdGhlCgkgIEdDb21wYXJlRGF0YUZ1bmMgZG9lcyBub3QgZ2V0IHRoZSBzdHJpbmdzLCBidXQgcG9pbnRlcnMgdG8gdGhlbS4KCjIwMTQtMTItMzEgMTg6NTI6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IHNpbGx5IEdRdWV1ZSBpdGVyYXRpb24gY29kZQoJICBOb3QgYWN0aXZlIGJ5IGRlZmF1bHQgdGhvdWdoLgoKMjAxNS0wMS0wNCAyMzoyNDo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBkb24ndCByZXR1cm4gZW1wdHkgcHJlc2V0IGxpc3RzCgkgIEFkZCBhIHNob3J0Y3V0IGZvciB0aGUgY2FzZXMgd2hlcmUgYW4gZWxlbWVudCBpbXBsZW1lbnRzIHRoZSBwcmVzZXQgaWZhY2UgYnV0CgkgIGhhcyBubyBwcmVzZXRzIGFuZCByZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIGFuIGVtcHR5IGxpc3QgaW4gdGhhdCBjYXNlLgoKMjAxNS0wMS0wNCAyMzowODo0NyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBvbmx5IHByaW50IHByZXNldHMgbGluZSBpZiBudW0tcHJlc2V0cyA+IDAKCSAgQWxzbyBjaGVjayBmb3IgYW4gZW1wdHkgc3Rydi4KCjIwMTUtMDEtMDQgMjI6NTE6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IG91dHB1dCBmb3IgLWEKCSAgVXNlIG5fcHJpbnQgdG8gZW5zdXJlIGFsbCBsaW5lcyBhcmUgcHJlZml4ZWQgd2l0aCB0aGUgZWxlbWVudCBuYW1lLgoKMjAxNC0xMi0yOSAxMTo1NDowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogaWdub3JlIGxpYmNoZWNrIGhlYWRlcnMgdGhhdCB1c2UgZG94eWdlbiBjb21tZW50cwoKMjAxNC0xMi0yOSAxMTo1MjoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGZpeCB0d28gZ3RrLWRvYyB3YXJuaW5ncwoJICBPbmUgYnkgY29ycmVjdGluZyB0aGUgZW5kLW9mLWNvbW1lbnQgbWFya2VyIGFuZCBvbmUgYnkgbWFraW5nIHN1cmUgdGhlIGZ1bmN0aW9uCgkgIHByb3RvdHlwZSBpbiB0aGUgaGVhZGVyIGlzIGluIHN5bmMgd2l0aCB0aGUgYyBmaWxlIGFuZCBkb2MtYmxvYi4KCjIwMTQtMTItMjYgMjM6MjI6MzAgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBtaXNzaW5nIGludGVyZmFjZXMgdG8gZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQyMDU3CgoyMDE0LTEyLTI3IDE1OjE1OjMwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBvdXRkYXRlZCBleGFtcGxlIGNvZGUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uCgkgIEdzdEl0ZXJhdG9yIG5vIGxvbmdlciByZXR1cm5zIGEgcmVmY291bnRlZCBncG9pbnRlcgoKMjAxNC0xMi0yNCAxMzo0NjoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHNhbWUgd2FpdGluZyBmdW5jdGlvbiBmb3IgRU9TIGFuZCBub24tRU9TIHdhaXRpbmcKCjIwMTQtMTItMjQgMTM6NDQ6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogV2FrZSB1cCBhbGwgd2FpdGluZ3MgcGFkcyBkaXJlY3RseSBpZiB3ZSBmb3J3YXJkIHRoZSBFT1MgZXZlbnQKCSAgT3RoZXJ3aXNlIHRoZXkgbWlnaHQgd2FpdCBhIGJpdCBsb25nZXIgdW5uZWNlc3NhcmlseS4KCSAgQWxzbyBkbyBzb21lIG1pbm9yIGNsZWFudXAuCgoyMDE0LTEyLTI0IDEwOjEzOjUxICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBCbG9jayB3aGVuIHJlY2VpdmluZyBhbiBFT1MgZXZlbnQgb24gYSBkZWFjdGl2YXRlZCBwYWQKCSAgLi4uIGFuZCBvbmx5IHVuYmxvY2sgd2hlbiBlaXRoZXIgYSkgdGhlIHBhZCBiZWNvbWVzIGFjdGl2ZSBhbmQgdGhlIGV2ZW50CgkgIHNob3VsZCBiZSBmb3J3YXJkZWQgb3IgYikgdGhlIGFjdGl2ZSBwYWQgd2VudCBFT1MgaXRzZWxmLgoJICBPdGhlcndpc2UgaXQgY2FuIGhhcHBlbiB0aGF0IHdlIHN3aXRjaCBmcm9tIGEgbG9uZ2VyIHRyYWNrIHRoYXQgaXMgbm90IEVPUyB5ZXQKCSAgdG8gYSBzaG9ydGVyIHRyYWNrIHRoYXQgYWxyZWFkeSBpcyBFT1MsIGJ1dCB0aGUgc2hvcnRlciB0cmFjayB3b24ndCBoYXZlIGFueQoJICBwb3NzaWJpbGl0eSB0byBzZW5kIGl0cyBFT1MgZXZlbnQgZG93bnN0cmVhbSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwOTQ5CgoyMDE0LTEyLTIzIDEyOjU0OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEtlZXAgYSByZWYgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgc2lua3BhZCBhcm91bmQKCSAgT3RoZXJ3aXNlIHdlIGNhbid0IGJlIHN1cmUgdGhhdCB0aGUgcG9pbnRlciBwb2ludHMgdG8gYSBzdGlsbCBleGlzdGluZwoJICBwYWQgaW5zdGFuY2UgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBsb2NrLgoKMjAxNC0xMi0yMyAxMjo1Mzo1OCArMDEwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBHZXQgdGhlIGFjdGl2ZSBzaW5rcGFkIGFnYWluIGFmdGVyIHRha2luZyB0aGUgbG9jayB3aGVuIGhhbmRsaW5nIGV2ZW50cwoJICBJdCBtaWdodCBoYXZlIGNoYW5nZWQgaW4gdGhlIG1lYW50aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxODkzCgoyMDE0LTEyLTIyIDEzOjA4OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFNob3J0LWNpcmN1aXQgQ0FQUyBxdWVyeSBoYW5kbGluZyBpZiB0cmFuc2Zvcm1fY2FwcyByZXR1cm5zIEVNUFRZIGNhcHMKCSAgQm90aCBmb3IgdGhlIHBlZXIgZmlsdGVyIGNhcHMgYW5kIHRoZSBjb252ZXJ0ZWQgY2FwcyBiYXNlZCBvbiB0aGUgcGVlciBjYXBzLgoJICBJZiB0aGUgcGVlciBmaWx0ZXIgY2FwcyBhcmUgRU1QVFksIHRoZSBwZWVyIGNhcHMgcXVlcnkgd2lsbCBhbHNvIHJldHVybgoJICBFTVBUWS4gVGhlcmUncyBubyBuZWQgdG8gYm90aCBkb3duc3RyZWFtL3Vwc3RyZWFtIHdpdGggdGhpcyBxdWVyeS4KCjIwMTQtMTItMjIgMTE6NDU6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBNQUlOVEFJTkVSUzoKCSAgTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBtYWlsIGFkZHJlc3MKCjIwMTQtMTItMjEgMTQ6MTI6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiB1c2UgYSBjb25zdGFudCBmb3IgdGhlIG1heCBwYXJhbSBsZW5ndGgKCSAgSW1wcm92ZSByZWFkYWJpbGl0eSBieSB1c2luZyBhIGRlZmluZSBmb3IgdGhlIG1heC1jaGFycy4gQWxzbyB1c2UgdGhlIHVuaWNvZGUKCSAgZWxsaXBzaXMgYXMgZG90IGZpbGVzIGFyZSB1dGYtOC4KCjIwMTQtMTItMTUgMTQ6MDM6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgcHJlc2V0IG5hbWVzCgkgIElmIHRoZSBlbGVtZW50IHN1cHBvcnRzIHByZXNldHMgYW5kIHNoaXBzIHNvbWUsIHByaW50IHRoZW0uCgkgIEZpeGVzICM3NDE0MjcKCjIwMTQtMTItMTkgMTE6MzU6MjQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBZGQgbmV3IG1heGltdW0gbGV2ZWwgZGVidWdnaW5nCgkgIEFQSTogR1NUX0xFVkVMX01BWAoJICBCeSBjb21waWxpbmcgZ3N0cmVhbWVyIChvciBwbHVnaW5zKSB3aXRoIEdTVF9MRVZFTF9NQVggZGVmaW5lZCwgb25seQoJICB0aGUgZGVidWdnaW5nIHN0YXRlbWVudHMgYXQgb3IgYmVsb3cgdGhhdCBsZXZlbCB3aWxsIGJlIGNvbXBpbGVkIGluLgoJICBUaGlzIGFsbG93cyBjb21waWxpbmcgaW4gc29tZSBkZWJ1Z2dpbmcgKGxpa2UgZXJyb3JzIGFuZCB3YXJuaW5ncykgd2hpY2gKCSAgaGVscHMgaW4gZGVidWdnaW5nLCBidXQgd2l0aG91dCB0aGUgZnVsbCBjcHUvbWVtb3J5IG92ZXJoZWFkIG9mIGFsbCBkZWJ1Z2dpbmcKCSAgZW5hYmxlZC4KCjIwMTQtMTItMTggMTI6MDQ6MjIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBmaXggR0kgYW5ub3RhdGlvbgoJICBBZGQgbWlzc2luZyA6IHRvIGFubm90YXRpb24KCjIwMTQtMTEtMTMgMTQ6NTM6NTkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBqdW1wIG92ZXIgbGFyZ2Ugc2tpcHMgaW4gcHVsbCBtb2RlCgkgIFRoaXMgYnlwYXNzZXMgdGhlIGR1bXBpbmcgb2YgYnVmZmVycyB3ZSBzdGlsbCBoYXZlIHRvIGRvIGluIHB1c2ggbW9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDA1MwoKMjAxNC0xMC0yNSAxNzoxNjoyNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBkZWJ1Z3V0aWxzOiBUcnVuY2F0ZSBwYXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIHRvbyBsb25nCgkgIFRoaXMgcmVtb3ZlcyBzb21lIGluZm9ybWF0aW9uIGZyb20gdGhlIGR1bXBzLCBidXQgaW1wcm92ZXMgcmVhZGFiaWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxNjUKCjIwMTQtMTItMTggMTA6NTM6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGVmMWZmZGMgdG8gZjJjNmI5NQoKMjAxNC0xMi0xNiAxNjozMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmUvY2FwczogQWRkIGdzdF97c3RydWN0dXJlLGNhcHN9X2ZpbHRlcl9hbmRfbWFwX2luX3BsYWNlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NQoKMjAxNC0xMi0xNiAxODoxNDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgc2ltcGxlIHVuaXQgdGVzdCBmb3IgZm9yZWFjaCgpIGFuZCBtYXBfaW5fcGxhY2UoKQoKMjAxNC0xMS0wNyAxMToxNTowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19mb3JlYWNoKCkgYW5kIGdzdF9jYXBzX21hcF9pbl9wbGFjZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjUKCjIwMTQtMTItMTYgMTU6NTM6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTQtMTItMTQgMTI6NTQ6MzIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBjaGVjazogSGF2ZSBhdXRvdG9vbHMgZ2VuZXJhdGUgaW50ZXJuYWwtY2hlY2suaAoJICBQcmV2aW91c2x5IEdTdHJlYW1lciBnb3QgYWNjZXNzIHRvIHRoZSBsaWJjaGVjayBpbnRlcmZhY2UgYnkgaW5jbHVkaW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2NoZWNrLmggd2hpY2ggaW4gdHVybiBpbmNsdWRlZCBpbnRlcm5hbC1jaGVjay5oIGluIHRoZQoJICBzYW1lIGRpcmVjdG9yeS4gaW50ZXJuYWwtY2hlY2suaCB3YXMgZ2VuZXJhdGVkIGJ5IGNvcHlpbmcKCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaCB3aGljaCBpbiB0dXJuIHdhcyBnZW5lcmF0ZWQgZnJvbQoJICBjaGVjay5oLmluIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4gSW4gdGhpcyBjYXNlIGdlbmVyYXRpbmcKCSAgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaCBpcyB1bm5lY2Vzc2FyeSwgaW4gYWRkaXRpb24gdGhpcyBmaWxlCgkgIHdhcyBhY2NpZGVudGFsbHkgZGlzdHJpYnV0ZWQgaW4gZ2VuZXJhdGVkIHByb2plY3QgdGFyYmFsbHMuCgkgIE5vdyBsaWJzL2dzdC9jaGVjay9pbnRlcm5hbC1jaGVjay5oIGlzIGdlbmVyYXRlZCBkaXJlY3RseSBmcm9tCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW4gYnkgY29uZmlndXJlLiBUaGlzIG1lYW5zIHRoYXQgdGhlCgkgIGxpYmNoZWNrIHNvdXJjZSBtdXN0IGluY2x1ZGUgaW50ZXJuYWwtY2hlY2suaCBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91c2x5CgkgIGdlbmVyYXRlZCBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLiBIb3dldmVyIHRoZSB1bm5lY2Vzc2FyeQoJICBpbnRlcm1lZGlhdGUgc3RlcCBpcyBub3cgc2tpcHBlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTM1OQoKMjAxNC0xMi0xNiAxMDoxMzowMyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBEb24ndCBjaGVjayBzaXplIGluIGNvbmZpZyB2YWxpZGF0aW9uCgkgIFBvb2xzIGFyZSBhbGxvd2VkIHRvIGNoYW5nZSB0aGUgc2l6ZSBpbiBvcmRlciB0byBhZGFwdCBwYWRkaW5nLiBTbwoJICBkb24ndCBjaGVjayB0aGUgc2l6ZS4gTm9ybWFsbHkgcG9vbCB3aWxsIGNoYW5nZSB0aGUgc2l6ZSB3aXRob3V0CgkgIGZhaWxpbmcgc2V0X2NvbmZpZygpLCBidXQgaXQgdGhleSBlbmR1cCBjaGFuZ2luZyB0aGUgc2l6ZSBiZWZvcmUKCSAgdGhlIHZhbGlkYXRlIG1ldGhvZCBtYXkgZmFpbCBvbiBhIGZhbHNlIHBvc2l0aXZlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNDIwCgoyMDE0LTEyLTE2IDEyOjIxOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGxvZyByZWFzb24gZm9yIGRpc2NhcmRlZCBidWZmZXJzCgkgIFBFUkZPUk1BTkNFIGxvZyB0aGUgcmVhc29uIHdoeSBhIGJ1ZmZlciBjb3VsZCBub3QgYmUgcmVjeWNsZWQgaW4gdGhlCgkgIGJ1ZmZlcnBvb2wuCgoyMDE0LTEyLTE1IDE0OjUzOjI4ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIgb2YgaW5jbHVkZWQgbGliY2hlY2sKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTU1MAoKMjAxNC0xMi0xMiAyMTowMjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTQtMTItMTIgMjE6NTQ6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHByZXNldCBhcGkKCjIwMTQtMTItMTIgMjE6Mzg6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgcHJlc2V0OiBhZGQgZ3N0X3ByZXNldF9pc19lZGl0YWJsZSgpCgkgIEFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBwcmVzZXQgaWZhY2UgaW1wbGVtZW50YXRpb24gaXMgZWRpdGFibGUgYW5kCgkgIGRvY3VtZW50IHRoaXMgZnJvbSB0aGUgaW1wbGVtZW50ZXJzIHBlcnNwZWN0aXZlLgoJICBBUEk6IGdzdF9wcmVzZXRfaXNfZWRpdGFibGUoKQoKMjAxNC0xMi0xMiAxNDoyMzoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlCgoyMDE0LTEyLTEyIDEzOjU3OjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0ZGVidWd1dGlscy5jOiBJbiBmdW5jdGlvbiAnZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSc6CgkgIGdzdGRlYnVndXRpbHMuYzo2ODM6NTMwOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkIFstV2Vycm9yXQoJICBnX3JldHVybl9pZl9mYWlsIChHU1RfSVNfQklOIChiaW4pKTsKCjIwMTQtMTItMTIgMTM6MTU6MDIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgZGVidWd1dGlsczogQWRkIGEgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIG1ldGhvZAoJICBUaGlzIHByb3ZpZGVzIHRoZSBkb3QgZmlsZSBhcyBhIHN0cmluZywgcmF0aGVyIHRoYW4gZHVtcGluZyB0byBhIGZpbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE0MjUKCjIwMTQtMTItMTAgMTE6MTc6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogbWlub3IgY29zbWV0aWMgY2hhbmdlCgkgIE5vIG5lZSB0byBhYmJyZXYgdmFyaWFiIG5hbSBoZXJlLCBuaWNlciB0byByZWFkIGlmIGZ1bGwuCgoyMDE0LTEyLTEwIDExOjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHVzZSBHU1RfQlVGRkVSX09GRlNFVF9OT05FIGZvciBidWZmZXIgb2Zmc2V0CgoyMDE0LTEyLTA3IDEyOjU1OjI2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBjaGVjazogQXZvaWQgcmVxdXJpbmcgKHUpaW50bWF4X3QgaW4gbWFjcm9zCgkgIFByZXZpb3VzbHkgZW1iZWRkZWQgbGliY2hlY2sgdmVyc2lvbnMgZGlkIG5vdCBkZXBlbmQgb24gKHUpaW50bWF4X3QgYW5kCgkgIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUgcHJvamVjdHMgdXNpbmcgR1N0cmVhbWVyJ3MgY2hlY2sgZnJhbWV3b3JrIHRvIGFkZAoJICBBWF9DUkVBVEVfU1RESU5UX0ggdG8gdGhlaXIgY29uZmlndXJlLmFjLiBBIHdvcmthcm91bmQgaXMgdG8gZmFsbGJhY2sgdG8KCSAgZ2xpYiB0eXBlcy4gVGhpcyBwYXRjaCBhc3N1bWVzIHRoYXQgZ2xpYi5oIGlzIGFsd2F5cyBpbmNsdWRlZCBiZWZvcmUKCSAgaW50ZXJuYWwtY2hlY2suaCB3aGljaCBpcyBvayBzaW5jZSBldmVyeXRoaW5nIEdzdHJlYW1lciB3b3VsZCBpbmNsdWRlCgkgIGdzdC9nc3RjaGVjay5oIGluc3RlYWQgb2YgZGlyZWN0bHkgaW5jbHVkaW5nIGludGVybmFsLWNoZWNrLmguCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTItMDYgMTk6MDM6MDQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2Nsb2NrX2dldHRpbWUuYzoKCSAgY2hlY2s6IEZpeCBjb21waWxhdGlvbiBlcnJvciBmb3IgaU9TCgkgIGxpYmNoZWNrIGluY2x1ZGVzIENvcmVTZXJ2aWNlcyBmb3IgaXRzIGNvbXBhdCBmb3IgY2xvY2tfZ2V0dGltZSgpLAoJICBldmVuIHRob3VnaCBpdCBuZXZlciB1c2VzIGFueXRoaW5nIGl0IGRlY2xhcmVzLiBMZXQncyByZW1vdmUgaXQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMTUgMTM6MjY6NDcgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0Lmg6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgY2hlY2s6IEFwcGx5IEdTdHJlYW1lci1zcGVjaWZpYyBwYXRjaGVzCgkgIFJlaW50cm9kdWNlZCBwYXRjaGVzOgoJICAqIE1ha2Ugc3VyZSB0aGF0IGZhaWxfaWYoMSkgYWN0dWFsbHkgZmFpbHMKCSAgZnJvbSBjb21taXQgOWY5OWQwNTZhMjYzZTcxYTVlNjE4MTIyNDgyOWRlZjkwNmNmMDIyNgoJICBOZXcgcGF0Y2hlcyBkdWUgdG8gdXBkYXRlZCBsaWJjaGVjayAoYmFzZWQgb24gMC45LjE0KToKCSAgKiBDaGVja3MgaW4gbTQvY2hlY2stY2hlY2tzLm00IHRvIGNhdGVyIGZvciBuZXcgZGVwZW5kZW5jaWVzCgkgICogQ29uZGl0aW9uYWwgY29tcGlsZS10aW1lIGNvbXBhdCBQT1NJWCBmYWxsYmFja3MgZm9yIGxpYmNoZWNrCgkgICogQXZvaWQgcmVsYXRpdmUgcGF0aHMgZm9yIGxpYmNoZWNrIGhlYWRlciBmaWxlcwoJICAqIE1ha2UgdGltZXJfY3JlYXRlKCkgdXNhZ2UgZGVwZW5kIG9uIHBvc2l4IHRpbWVycywgbm90IGxpYnJ0CgkgICogUmVseSBvbiBkZWZhdWx0IEFYX1BUSFJFQUQgYmVoYXZpb3IgdG8gYWxsb3cgSEFWRV9QVEhSRUFEIHRvIGJlIHVzZWQKCSAgd2hlbiBjaGVja2luZyBmb3IgdHlwZXMgYW5kIGZ1bmN0aW9ucyAobGlrZSBjbG9ja19nZXR0aW1lKCkpCgkgICogQXZvaWQgZG91YmxlIGRlY2xhcmF0aW9uIG9mIGNsb2NrX2dldHRpbWUoKSB3aGVuIGF2YWlsYWJlIG91dHNpZGUgb2YKCSAgbGlicnQgYnkgbWFraW5nIGNvbXBhdCBjbG9ja19nZXR0aW1lKCkgZGVjbGFyYXRpb24gY29uZGl0aW9uYWwKCSAgKiBjaGVjayAwLjkuOSByZW5hbWVkIF9mYWlsX3VubGVzcygpIGFuZCAwLjkuMTIgbGF0ZXIgcmVuYW1lZCBpdCBhZ2FpbgoJICB0byBfY2tfYXNzZXJ0X2ZhaWxlZCgpLCBzbyBBU1NFUlRfe0NSSVRJQ0FMLFdBUk5JTkd9KCkgbm93IGNhbGxzIHRoaXMKCSAgZnVuY3Rpb24KCSAgKiBSZW1vdmUgbGliY2hlY2sgZmFsbGJhY2sgaW5mcmFzdHJ1Y3R1cmUgZm9yIG1hbGxvYygpLCByZWFsbG9jKCksCgkgIGdldHRpbWVvZmRheSgpIGFuZCBzbnByaW50ZigpIHNpbmNlIGVpdGhlciB0aGV5IGFwcGVhciB0byBiZQoJICBhdmFpbGFibGUgb3IgdGhleSBpbnRyb2R1Y2UgZXZlbiBtb3JlIGRlcGVuZGVuY2llcy4KCSAgVGhlIHJlc3VsdCBpcyBhbiBlbWJlZGRlZCBjaGVjayBpbiBnc3RyZWFtZXIgdGhhdCBoYXMgYmVlbiB0ZXN0ZWQgYnkKCSAgcnVubmluZyBjaGVjayB0ZXN0cyBpbiBjb3JlLCAtYmFzZSwgLWdvb2QsIC1iYWQsIC11Z2x5IGFuZCBydHNwLXNlcnZlcgoJICBvbiBMaW51eCwgT1NYIGFuZCBXaW5kb3dzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTE1IDEyOjUzOjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9hbGFybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2Nsb2NrX2dldHRpbWUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbGliY29tcGF0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9sb2NhbHRpbWVfci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9zdHJzaWduYWwuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfY3JlYXRlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX2RlbGV0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9zZXR0aW1lLmM6CgkgIGNoZWNrOiBJbXBvcnQgdmVyc2lvbiAwLjkuMTQKCSAgVGhpcyBsaWZ0cyB0aGUgZmlsZXMgYWxtb3N0IHZlcmJhdGltICh0aGUgY2hhbmdlcyBiZWluZyBydW5uaW5nIHRob3VnaAoJICBnc3QtaW5kZW50IGFuZCBmaXhpbmcgdGhlIEZTRiBhZGRyZXNzKSBmcm9tIHRoZSB1cHN0cmVhbSByZXNwb3NpdG9yeS4KCSAgVGhlcmVmb3JlIHRoaXMgY29tbWl0IHJldmVydHMgc29tZSBHU3RyZWFtZXItc3BlY2lmaWMgcGF0Y2hlcyB0byBjaGVjawoJICB0aGF0IHdpbGwgYmUgcmVpbnRyb2R1Y2VkIG5leHQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4MjYKCjIwMTQtMTEtMDQgMTk6MTE6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogUHJvcGFnYXRlIGlucHV0IGJ1ZmZlciBvZmZzZXQKCSAgVGhlIGluaXRpYWwgYnVmZmVycyBtaWdodCBoYXZlIG5vbi1kZWZhdWx0IG9mZnNldHMsIG1ha2Ugc3VyZSB0aGV5IGdldAoJICBwcm9wYWdhdGVkIGlmIHByZXNlbnQuCgoyMDE0LTEwLTA3IDE2OjQ0OjQ1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xhbXAgcmVwb3J0ZWQgcG9zaXRpb24gYmFzZWQgb24gZGlyZWN0aW9uCgkgIFdoZW4gdXNpbmcgYSBuZWdhdGl2ZSByYXRlIChyYXRlIGJlaW5nIHNlZ21lbnQucmF0ZSAqIHNlZ21lbnQuYXBwbGllZF9yYXRlKSwKCSAgd2Ugd2lsbCBlbmQgdXAgcmVwb3J0aW5nIGRlY3JlYXNpbmcgcG9zaXRpb25zLCB0aGVyZWZvcmUgYWRqdXN0IHRoZSBjbGFtcGluZwoJICBhZ2FpbnN0IGxhc3QgcmVwb3J0ZWQgdmFsdWUgYWNjb3JkaW5nbHkuCgkgIEZpeGVzIHBvc2l0aW9ucyBnZXR0aW5nIHByb3Blcmx5IHJlcG9ydGVkIHdpdGggYXBwbGllZF9yYXRlIDwgMC4wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgwOTIKCjIwMTQtMTEtMjggMTQ6MTc6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgRG9uJ3QgY29tcGFyZSBib29sZWFucyBmb3IgZXF1YWxpdHkgdG8gVFJVRSBhbmQgRkFMU0UKCSAgVFJVRSBpcyAxLCBidXQgZXZlcnkgb3RoZXIgbm9uLXplcm8gdmFsdWUgaXMgYWxzbyBjb25zaWRlcmVkIHRydWUuIENvbXBhcmluZwoJICBmb3IgZXF1YWxpdHkgd2l0aCBUUlVFIHdvdWxkIG9ubHkgY29uc2lkZXIgMSBidXQgbm90IHRoZSBvdGhlcnMuCgkgIEFsc28gbm9ybWFsaXplIGJvb2xlYW5zIGluIGEgZmV3IHBsYWNlcy4KCjIwMTQtMTEtMzAgMjM6NTA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgcGx1Z2luczogZml4IGJ1aWxkIG9uIHdpbmRvd3MKCSAgZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOiBJbiBmdW5jdGlvbiAnZ3N0X3dyaXRldl9idWZmZXJzJzoKCSAgZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOjIzNjo1MTogZXJyb3I6ICdFV09VTERCTE9DSycgdW5kZWNsYXJlZAoKMjAxNC0xMS0yOCAxNTowOToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSB3cml0ZXYoKSBpbiA6OnJlbmRlcigpIHRvIHdyaXRlIG91dCBtZW1vcmllcyB3aXRob3V0IG1lcmdpbmcgdGhlbQoKMjAxNC0xMS0yOCAxNTowNDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogaW1wbGVtZW50IDo6cmVuZGVyX2xpc3QoKSBmdW5jdGlvbiB0aGF0IHVzZXMgd3JpdGV2KCkKCjIwMTQtMTEtMjggMTQ6NDc6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IHVzZSB3cml0ZXYoKSBpbiA6OnJlbmRlcigpIHRvIHdyaXRlIG91dCBtZW1vcmllcyB3aXRob3V0IG1lcmdpbmcgdGhlbQoKMjAxNC0xMS0yOCAxNDozOTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogaW1wbGVtZW50IDo6cmVuZGVyX2xpc3QoKSB1c2luZyB3cml0ZXYoKQoJICBXcml0ZSBvdXQgbXVsdGlwbGUgYnVmZmVycyBwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlCgkgIG1lbW9yaWVzIHdpdGggb25lIHdyaXRldigpIGNhbGwsIHdpdGhvdXQgbWVyZ2luZyB0aGUKCSAgYnVmZmVyIG1lbW9yaWVzIGZpcnN0LCBsaWtlIDo6cmVuZGVyKCkgZG9lcyBjdXJyZW50bHkuCgoyMDE0LTExLTI4IDE0OjM4OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkgIHBsdWdpbnM6IGFkZCBoZWxwZXIgZnVuY3Rpb24gZm9yIHdyaXRpbmcgYnVmZmVycyBvdXQgd2l0aCB3cml0ZXYoKQoKMjAxNC0xMS0yOCAxNDoxNTozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgdGhlIGR1cmF0aW9uIHZhcmlhYmxlIGJlZm9yZSBlbWl0dGluZyB0aGUgYnVzCgkgIE90aGVyd2lzZSB0aGUgYXBwbGljYXRpb24gbWlnaHQgc3RpbGwgZ2V0IHRoZSBvbGQgdmFsdWUgaWYgaXQgYXNrcwoJICBiZXR3ZWVuIHRoZSBtZXNzYWdlIGFuZCB0aGUgcmVhbCB1cGRhdGUuCgoyMDE0LTExLTI4IDE2OjI1OjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRml4IGRvYyBhbmQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBzZW5kX2V2ZW50CgkgIFRoZSBkb2N1bWVudGF0aW9uIHN0YXRlcyB0aGF0IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQgaXMgdG8gInNlbmQgYW4gZXZlbnQKCSAgdG8gYW4gZWxlbWVudCIuCgkgIFRoZXJlZm9yZSB3ZSAqc2VuZCogdXBzdHJlYW0gZXZlbnRzIHRvIGEgc291cmNlIHBhZCBhbmQgZG93bnN0cmVhbSBldmVudHMKCSAgdG8gYSBzaW5rIHBhZAoKMjAxNC0xMS0yOCAxMToxNjowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpZ3VyZSBkZWZhdWx0IHNlbmRfZXZlbnQgZGlyZWN0aW9uIGhhbmRsaW5nCgkgIElmIHdlIGdldCBhIGRvd25zdHJlYW0gZXZlbnQgd2Ugd2FudCB0byBzZW5kIGl0IHRvIGEgcmFuZG9tIFNJTksgcGFkCgkgIChhbmQgdmljZS12ZXJzYSkuCgoyMDE0LTExLTI3IDE4OjAwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENvbXBhcmUgY29ycmVjdCBjYXBzIHZhcmlhYmxlIGFnYWluc3QgTlVMTCBiZWZvcmUgY29tcGFyaW5nIGNhcHMKCjIwMTQtMTEtMjcgMTc6MTA6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYzMmNmY2QgdG8gZWYxZmZkYwoKMjAxNC0xMS0xMCAwOTo1ODo0NyArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6dW5pbnN0YWxsZWQ6IE1ha2Ugc3VyIHRoZSBHRVMgVGVzdE1hbmFnZXIgaXMgcmVnaXN0ZXJlZAoJICBTbyB0aGF0IHdoZW5ldmVyIHVzZXIgd29yayB3aXRoIEdzdFZhbGlkYXRlIHRoZXkgY2FuIHJ1biBHRVMgdGVzdHMKCSAgd2l0aGluIHRoZSBnc3QtdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQKCjIwMTQtMTEtMjYgMjE6NDg6MDUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogY29tbW9uOgoJKiBtNC9heF9wdGhyZWFkLm00OgoJICBidWlsZDogVXBkYXRlIGF4X3B0aHJlYWQubTQgYW5kIG1vdmUgaXQgdG8gY29tbW9uCgkgIEhhcyBzb21lIHVwZGF0ZXMgZm9yIENsYW5nIHN1cHBvcnQgKG1pZ2h0IG5vdCB3b3JrIHdpdGggbmV3ZXIgQ2xhbmcKCSAgcHJvcGVybHksIHlldCksIEFJWCBzdXBwb3J0LCBhbmQgc29tZSBtaXNjIGZpeGVzLgoKMjAxNC0xMS0yNSAxNzo0NjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IEZpeCBzaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIGRvY3MKCjIwMTQtMTEtMjUgMDk6Mzk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogYWRkIEdTVF9HTF8qIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byAnUnVubmluZyBHU3RyZWFtZXInIHNlY3Rpb24KCjIwMTQtMTEtMjMgMDU6NDU6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcGVyY2VudGFnZSBpcyByZWxhdGl2ZSB0byBoaWdoLXBlcmNlbnQKCSAgV2hlbiBjb21wYXJpbmcgcGVyY2VudGFnZSB2YWx1ZXMsIGNvbXBhcmUgd2l0aCAwLTEwMCBzY2FsZSBhcyBpdAoJICBoYXMgYWxyZWFkeSBiZWVuIG1hZGUgcmVsYXRpdmUgdG8gMC1oaWdoX3BlcmNlbnQsIG90aGVyd2lzZSB3ZSBtYXJrCgkgIHRoZSBxdWV1ZSBhcyBub3QgYnVmZmVyaW5nIGFuZCByZXBvcnQgYSA1MCUgdG8gdGhlIHVzZXIuIFRoaXMgbGVhZHMgdG8KCSAgYSBidWZmZXJpbmcgc3RhbGwgYXMgdGhlIHVzZXIgYXNzdW1lcyB0aGUgcXVldWUgaXMgc3RpbGwgYnVmZmVyaW5nIGJ1dAoJICBpdCB0aGlua3MgaXQgaXNuJ3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY5NjkKCjIwMTQtMTEtMjMgMDU6NDI6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwZXJjZW50YWdlIGlzIGFuIGFic29sdXRlIHZhbHVlCgkgIG11bHRpcXVldWUncyBxdWV1ZXMgc3RvcmVkIHBlcmNlbnQgdmFsdWUgaXMgdGhlIHBlcmNlbnRhZ2UgZnJvbSAwCgkgIHRvIDEwMCAobWF4LXNpemUtKikgYW5kIHNob3VsZCBiZSBjb21wYXJlZCB3aXRoIHRoZSByZXF1ZXN0ZWQgbGltaXQKCSAgKGhpZ2hfcGVyY2VudGFnZSkgc2V0IGJ5IHRoZSB1c2VyIGFuZCBub3Qgd2l0aCAxMDAlIHRvIGNoZWNrIGlmCgkgIGJ1ZmZlcmluZyBzaG91bGQgc3RvcC4gT3RoZXJ3aXNlIHdlIGFyZSBvbmx5IHN0b3BwaW5nIGJ1ZmZlcmluZyB3aGVuIHRoZQoJICBxdWV1ZSBnZXRzIGNvbXBsZXRlbHkgZnVsbC4KCjIwMTQtMTEtMjAgMjE6MzM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGNhcHMgZXF1YWxpdHkgY2hlY2sKCSAgSW5zdGVhZCBvZiBjaGVja2luZyBpZiBvdXIgb3V0Y2FwcyBhcmUgZXF1aXZhbGVudCB0byB0aGUgcHJldmlvdXMgaW5jYXBzLCBhbmQKCSAgaWYgdGhhdCBpcyB0aGUgY2FzZSBub3Qgc2V0dGluZyBhbnkgY2FwcyBvbiB0aGUgcGFkLi4uIGNvbXBhcmUgYWdhaW5zdCBvdXIKCSAgcHJldmlvdXMgb3V0Y2FwcyBiZWNhdXNlIHRoYXQncyB3aGF0IHdlIGNhcmUgYWJvdXQuCgkgIEZpeGVzIHNvbWUgY2FzZXMgd2hlcmUgdGhlIG91dGNhcHMgYmVjYW1lIGVxdWl2YWxlbnQgdG8gdGhlIHByZXZpb3VzIGluY2FwcywKCSAgYnV0IHRoZSBwcmV2aW91cyBvdXRjYXBzIHdlcmUgZGlmZmVyZW50IGFuZCB3ZSB3ZXJlIHRoZW4gc2VuZGluZyBidWZmZXJzCgkgIGRvd25zdHJlYW0gdGhhdCB3ZXJlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNhcHMgd2UgZm9yZ290IHRvIHNldCBvbiB0aGUgcGFkLgoJICBSZXN1bHRpbmcgaW4gY3Jhc2hlcyBvciBpbWFnZSBjb3JydXB0aW9uLgoKMjAxNC0xMS0yMCAxMzozMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIGJpc29uIHZlcnNpb24gY2hlY2sgcGF0Y2gKCSAgRml4IGNvbmZpZ3VyZSBjaGVjayB3aXRoIGJpc29uIGRldmVsb3BtZW50IHZlcnNpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg5NDYKCjIwMTQtMTEtMjAgMTM6MzQ6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZG9uJ3Qgb3ZlcnJlYWQgaW5wdXQgd2hlbiBzZWFyY2hpbmcgZm9yICIKCSAgV2hlbiBzZWFyY2hpbmcgZm9yIHRoZSBzdHJpbmcgdGVybWluYXRvciBkb24ndCByZWFkIHBhc3QgdGhlIGVuZGluZwoJICAwLWJ5dGUgd2hlbiBlc2NhcGluZyBjaGFyYWN0ZXJzLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB2YXJpb3VzIGVzY2FwaW5nIGNhc2VzLgoKMjAxNC0xMS0wMyAxNzo0Njo1NyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMKCSAgUHJldmlvdXNseSwgZHJvcHBpbmcgYSBxdWVyeSBmcm9tIGEgcGFkIHByb2JlIHdvdWxkIGRlZW0gdGhlCgkgIHF1ZXJ5IHN1Y2NlZWRlZCwgYW5kIHRoZSBjYWxsZXIgbWlnaHQgdGhlbiBhc3N1bWUgdGhlIHF1ZXJ5J3MKCSAgcmVzdWx0cyBhcmUgdmFsaWQsIGFuZCB0aHVzIGRlcmVmZXJlbmNlIGFuIGludmFsaWQgb2JqZWN0CgkgIHN1Y2ggYXMgYSBHc3RDYXBzLgoJICBXZSBub3cgYXNzdW1lIGRyb3BwZWQgcXVlcmllcyBkaWQgbm90IHN1Y2NlZWQuIERyb3BwZWQgZXZlbnRzCgkgIGFuZCBidWZmZXJzIGFyZSBzdGlsbCBkZWVtZWQgYSBzdWNjZXNzLgoJICBBZGRlZCBiYWNrIGFmdGVyIHByZXZpb3VzIHJldmVydCwgYXMgaXQncyBiZWVuIGRvdWJsZSBjaGVja2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMDAzCgoyMDE0LTExLTEyIDEzOjU1OjIzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzIgoJICBUaGlzIHdhcyBwdXNoZWQgYnkgbWlzdGFrZSBhbG9uZyB3aXRoIGFuIHVucmVsYXRlZCBwYXRjaC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNzEwM2NlNGI4YzFkYTdkY2ZiY2YyZWM4M2E0MmEzNzZmYjg5NmUxLgoKMjAxNC0wNS0xMyAxMToxODowOCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsbG93IHNraXBwaW5nIG1vcmUgZGF0YSB0aGFuIHdlIGN1cnJlbnRseSBoYXZlCgkgIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc2tpcHBpbmcgbGFyZ2UgdW53YW50ZWQgZGF0YSwgc3VjaCBhcwoJICBsYXJnZSBhbGJ1bSBhcnQsIHdoZW4gd2Uga25vdyB0aGUgc2l6ZSBvZiBpdCBmcm9tIGEgbWV0YWRhdGEKCSAgaGVhZGVyLgoKMjAxNC0xMS0wMyAxNzo0Njo1NyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZmFpbCBkcm9wcGVkIHF1ZXJpZXMKCSAgUHJldmlvdXNseSwgZHJvcHBpbmcgYSBxdWVyeSBmcm9tIGEgcGFkIHByb2JlIHdvdWxkIGRlZW0gdGhlCgkgIHF1ZXJ5IHN1Y2NlZWRlZCwgYW5kIHRoZSBjYWxsZXIgbWlnaHQgdGhlbiBhc3N1bWUgdGhlIHF1ZXJ5J3MKCSAgcmVzdWx0cyBhcmUgdmFsaWQsIGFuZCB0aHVzIGRlcmVmZXJlbmNlIGFuIGludmFsaWQgb2JqZWN0CgkgIHN1Y2ggYXMgYSBHc3RDYXBzLgoJICBXZSBub3cgYXNzdW1lIGRyb3BwZWQgcXVlcmllcyBkaWQgbm90IHN1Y2NlZWQuIERyb3BwZWQgZXZlbnRzCgkgIGFuZCBidWZmZXJzIGFyZSBzdGlsbCBkZWVtZWQgYSBzdWNjZXNzLgoKMjAxNC0xMS0xMiAxMTozMDo1MSArMDEwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBGaXggcGF1c2Uvc3RvcCByYWNlIGNvbmRpdGlvbgoJICBJZiBhIHRhc2sgdGhyZWFkIGlzIGNhbGxpbmcgcGF1c2Ugb24gaXQgc2VsZiBhbmQgdGhlCgkgIGNvbnRyb2xsaW5nLyJtYWluIiB0aHJlYWQgc3RvcHMgdGhlIHRhc2ssIGl0IGNvdWxkIGVuZCBpbiBhIHJhY2UKCSAgd2hlcmUgZ3N0X3Rhc2tfZnVuYyBsb29wcyBhbmQgdGhlbiBjaGVja3MgZm9yIHBhdXNlZCBhZnRlciB0aGUKCSAgY29udHJvbGxpbmcgdGhyZWFkIGp1c3QgY2hhbmdlZCB0aGUgdGFzayBzdGF0ZSB0byBzdG9wcGVkLgoJICBIZW5jZSB0aGUgdGFzayB3b3VsZCBhY3R1YWxseSBjYWxsIGZ1bmMgYWdhaW4gZXZlbiB0aG91Z2ggaXQgd2FzCgkgIGJvdGggcGF1c2VkIGFuZCBzdG9wcGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwMDAxCgoyMDE0LTExLTEwIDEwOjAxOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IERvbid0IGNoZWNrIGJvb2xlYW5zIGZvciBlcXVhbGl0eSBpbiB0aGUgdW5pdCB0ZXN0CgkgIEV2ZXJ5IHZhbHVlIG90aGVyIHRoYW4gMC9GQUxTRSBpcyBUUlVFLCA9PSBUUlVFIHdpbGwgb25seSBjaGVjayBmb3IgMS4KCjIwMTQtMTEtMDUgMTE6NTA6NDcgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogQWRkIGdzdF9vYmplY3RfaGFzX3BhcmVudCgpCgkgIEFkZHMgZ3N0X29iamVjdF9oYXNfcGFyZW50LCB3aGljaCB3b3JrcyBsaWtlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yCgkgIGJ1dCBkb2VzIG5vdCBhc2NlbmQgZnVydGhlci4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19wYXJlbnQoKQoKMjAxNC0xMS0wOSAxMDozNzo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA5IDEwOjMyOjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wOSAxMDoyOTo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBib3RoZXIgdGhlIHN1YmNsYXNzIHdpdGggc2V0dGluZyB0aGUgc2FtZSBjYXBzIG11bHRpcGxlIHRpbWVzCgoyMDE0LTExLTA3IDA4OjIyOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBjb25kaXRpb25hbCBmb3IgR19WQUxVRV9DT0xMRUNUX0lOSVQKCSAgVGhpcyBBUEkgaXMgaW4gZ2xpYiBzaW5jZSAyLjI0IGFuZCB3ZSBjdXJyZW50bHkgcmVxdWlyZSAyLjMyIGFuZCBhbHJlYWR5IHVzZQoJICB0aGlzIHVuY29uZGl0aW9uYWxseSBlbHNld2hlcmUuCgoyMDE0LTExLTA1IDE5OjA5OjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHJlbW92ZSBjb21tZW50ZWQgY29kZQoJICBUaGUgR1F1YXJrIHdhcyBuZXZlciB1c2VkLgoKMjAxNC0xMS0wNyAxMTozNDowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0Y29uZmlnOiBQdXQgZ3N0Y29uZmlnLmggaW50byAkKGxpYmRpcikvZ3N0cmVhbWVyLTEuMC9pbmNsdWRlCgkgIEl0J3MgYXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBhbmQgc2hvdWxkIG5vdCBiZSBwbGFjZWQgaW50byB0aGUgaW5jbHVkZQoJICBkaXJlY3RvcnkgYXMgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBhbGwgdGhvc2UgaGVhZGVycyBhcmUgYXJjaGl0ZWN0dXJlCgkgIGluZGVwZW5kZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY3CgoyMDE0LTExLTA3IDEwOjU2OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBnb2JqZWN0LWludHJvc3BlY3Rpb24gd2FybmluZ3MKCSAgZ3N0dXJpLmM6OTk3OiBFcnJvcjogR3N0OiBTa2lwcGluZyBpbnZhbGlkIEdUSy1Eb2MgY29tbWVudCBibG9jazoKCSAgLyoqIHByaXZhdGUgR3N0VXJpIGZ1bmN0aW9ucyAqKi8KCSAgXgoJICBnc3R1cmkuYzoxMTc5OiBFcnJvcjogR3N0OiBTa2lwcGluZyBpbnZhbGlkIEdUSy1Eb2MgY29tbWVudCBibG9jazoKCSAgLyoqIFJGQyAzOTg2IGZ1bmN0aW9ucyAqKi8KCSAgXgoKMjAxNC0xMC0yNCAyMToyNTo1NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IEZpeCBnc3RfZGF0YV9xdWV1ZV9uZXcoKSBkZXNjcmlwdGlvbi4KCSAgUmV3b3JkIHRoZSBmdW5jdGlvbiBkb2NzLCB3aGljaCBoYXZlbid0IG1hZGUgYW55IHNlbnNlIHNpbmNlCgkgIGdzdF9kYXRhX3F1ZXVlX25ld19mdWxsKCkgd2FzIHJlbW92ZWQgYSBmZXcgeWVhcnMgYWdvLgoKMjAxNC0xMS0wMyAxODoyNzoyMSArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQW5zd2VyIHRoZSBxdWVyeSBwb3NpdGlvbiB3aGVuIHJlY2VpdmluZyBpdCBmcm9tIHVwc3RyZWFtCgkgIEN1cnJlbnRseSB3ZSBhcmUganVzdCByZXR1cm5pbmcgRkFMU0UsIGJ1dCB3ZSBkbyBoYXZlIHRoZSBpbmZvcm1hdGlvbgoJICB3ZSBzaG91bGQganVzdCBhbnN3ZXIgdGhlIHF1ZXJ5IHRoZSBzYW1lIHdheSBhcyB3aGVuIGFuc3dlcmluZyB0aHJvdWdoCgkgIHRoZSBHc3RFbGVtZW50LnF1ZXJ5IHZtZXRob2QgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTU4MAoKMjAxNC0xMC0yMiAxNDowNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgYW4gb3B0aW9uYWwgZGVsYXllZCBjYXBzIGNoYW5nZSBtb2RlCgkgIEluIHRoaXMgbW9kZSB3ZSBhY2NlcHQgcHJldmlvdXNseSBzZXQgZmlsdGVyIGNhcHMgdW50aWwKCSAgdXBzdHJlYW0gcmVuZWdvdGlhdGVzIHRvIHNvbWV0aGluZyB0aGF0IGlzIGNvbXBhdGlibGUKCSAgdG8gdGhlIGN1cnJlbnQgZmlsdGVyIGNhcHMuCgkgIFRoaXMgYWxsb3dzIGR5bmFtaWMgY2FwcyBjaGFuZ2VzIGluIHRoZSBwaXBlbGluZSBldmVuCgkgIGlmIHRoZXJlIGlzIGEgcXVldWUgYmV0d2VlbiBhbnkgY29udmVyc2lvbiBlbGVtZW50CgkgIGFuZCB0aGUgY2Fwc2ZpbHRlci4gV2l0aG91dCB0aGlzIHdlIHdvdWxkIGdldCBub3QtbmVnb3RpYXRlZAoJICBlcnJvcnMgaWYgdGltaW5nIGlzIGJhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTAwMgoKMjAxNC0xMS0wMiAyMDoxNjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBtaW5vciBjb2RlIGNsZWFuLXVwCgkgIEFuZCBnZXQgcmlkIG9mIGdfbGlzdF9wcmVwZW5kL2dfbGlzdF9yZXZlcnNlCgkgIGFudGktcGF0dGVybiB3aGlsZSB3ZSdyZSBhdCBpdC4KCjIwMTQtMTEtMDIgMTg6NTE6MDggKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZW5zdXJlIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbiBkZWJ1ZyBtZXNzYWdlIGlzIGRpc3BsYXllZAoJICBUaGUgR1NUX0lORk8gKCJpbml0aWFsaXplZCBHU3RyZWFtZXIgc3VjY2VzZnVsbHkiKSBpcyBjdXJyZW50bHkgYXQgdGhlIGVuZCBvZgoJICBnc3RfaW5pdF9jaGVjayB3aGljaCBpc24ndCBndWFyYW50ZWVkIHRvIGJlIHJ1biBzaW5jZSBHU3RyZWFtZXIgY2FuIGJlCgkgIGluaXRpYWxpemVkIGJ5IHVzaW5nIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgZGlyZWN0bHkgZnJvbSBHT3B0aW9uQ29udGV4dCBsaWtlCgkgIGdzdC1sYXVuY2ggZG9lcy4gRW5zdXJlIHRoaXMgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgYnkgbW92aW5nIGl0IHRvIGluaXRfcG9zdC4KCjIwMTQtMTEtMDEgMTk6NTY6NDEgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2M6IERvIG5vdCB1c2UgZGVwcmVjYXRlZCBndGstZG9jICdSZW5hbWUgdG8nIHRhZwoJICBHT2JqZWN0IGludHJvc3BlY3Rpb24gR1RLLURvYyB0YWcgIlJlbmFtZSB0byIgaGFzIGJlZW4gZGVwcmVjYXRlZCwgY2hhbmdpbmcgdG8KCSAgcmVuYW1lLXRvIGFubm90YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1MTQKCjIwMTQtMTEtMDEgMjI6MzA6MzAgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQGRhcmtvc3BoZXJlLmZyPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGFkZCBHX1BBUkFNX0RFUFJFQ0FURUQgdG8ga25vd24gZmxhZ3MKCSAgRGlzcGxheSAnZGVwcmVjYXRlZCcgaW5zdGVhZCBvZiBmbGFnIHZhbHVlIHdoZW4gdXNpbmcgR19QQVJBTV9ERVBSRUNBVEVECgkgIGluIGVsZW1lbnQgcHJvcGVydGllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTUxOAoKMjAxNC0xMC0zMSAxNjoxMDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IHJlZmFjdG9yIHRvb2xzIGNoZWNrIGEgbGl0dGxlCgkgIFVzZSBhbiBhcnJheSBvZiBjb25zdGFudCBzdHJpbmdzIHNvIGlmIGFyZ3VtZW50cyBnZXQKCSAgcmVtb3ZlZCBmcm9tIGl0IHRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGxlYWtlZCwgYW5kCgkgIHZhbGdyaW5kIGlzIGhhcHB5LiBTdGlsbCBzb21lIHN0dWZmIGxlYWtpbmcgaW4gR0xpYgoJICB0aG91Z2guCgoyMDE0LTEwLTMwIDIzOjE0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBmaXggb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzIGluIGJ5dGVyZWFkZXIgdW5pdCB0ZXN0CgkgIENhdWdodCBieSAtZnNhbml0aXplPWFkZHJlc3MgLyBsaWJhc2FuLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NDMxCgoyMDE0LTEwLTI4IDE5OjE2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IG1ha2UgZ3N0X2luaXQoKSB0aHJlYWQtc2FmZQoJICBCZWNhdXNlIHdlIGNhbiwgYW5kIHRoZXJlIGlzbid0IHJlYWxseSBhbnkKCSAgcmVhc29uIG5vdCB0byBkbyBzby4KCjIwMTQtMTAtMjggMDk6Mjg6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZmRzcmM6IGRvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgb2Ygd3JpdGUoKQoJICBDYXVzZXMgY29tcGlsZXIgd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zLgoKMjAxNC0xMC0yOCAwMDowNDowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkgIHRlc3RzOiBmaXggZmRzcmMgdGVzdCBjb3JuZXIgY2FzZQoJICBNYWtlIHBpcGUgc29ja2V0IG5vbi1ibG9ja2luZywgc28gd2UgZG9uJ3QKCSAgZW5kIHVwIGJlaW5nIGJsb2NrZWQgaW4gYSB3cml0ZSBvbiB0aGUgcGlwZQoJICB3aGlsZSB0aGUgc3JjIGlzIGVvcyBhbmQgbm90IHJlYWRpbmcgZGF0YQoJICBhbnkgbW9yZSwgYW5kIHRodXMgd2UgbmV2ZXIgdW5ibG9jayBhbmQgbmV2ZXIKCSAgbm90aWNlIHRoYXQgd2UncmUgZG9uZS4gVGhpcyB3b3VsZCBoYXBwZW4KCSAgcXVpdGUgcmVsaWFibHkgb24gdGhlIHJwaS4KCjIwMTQtMTAtMjcgMTc6NTY6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg0ZDA2Y2QgdG8gN2JiMmJjZQoKMjAxNC0xMC0yNSAxNzoxNTo0MiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBUcml2aWFsIHR5cG8gZml4CgoyMDE0LTEwLTI0IDEyOjUxOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgdW5sb2NrIG11dGV4IHRoYXQgaXMgbm90IGxvY2tlZAoJICBGaXhlcyAnQXR0ZW1wdCB0byB1bmxvY2sgbXV0ZXggdGhhdCB3YXMgbm90IGxvY2tlZCcKCSAgd2FybmluZyB3aXRoIG5ld2VyIEdMaWJzIHdoZW4gc2luayBpcyBzaHV0IGRvd24gaW4KCSAgY2VydGFpbiBzaXR1YXRpb25zLiBUcmlnZ2VyZWQgYnkgdGhlIGRlY29kZWJpbgoJICB0ZXN0X3JldXNlX3dpdGhvdXRfZGVjb2RlcnMgdW5pdCB0ZXN0IGluIC1iYXNlCgkgIHNvbWV0aW1lcywgZXNwLiBvbiBzbG93ZXIgbWFjaGluZXMuCgoyMDE0LTEwLTIyIDE4OjI1OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZm9yIG5ldyBfZ2V0X3R5cGUoKSBmdW5jdGlvbiBmb3IgR3N0Q29udHJvbFBvaW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2MTYKCjIwMTQtMDktMjkgMjE6MTA6MTQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBBZGQgc29tZSBzaWduYWxzIGFib3V0IHZhbHVlcyBjaGFuZ2VzCgkgIEluIG9yZGVyIGZvciB1c2VyIHRvIGJlIGFibGUgdG8gdHJhY2sgY2hhbmdlcyBpbiB0aGUgdmFsdWUgc2V0IGluCgkgIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlIHRoZSBmb2xsb3dpbmcgc2lnbmFscyBoYXZlIGJlZW4gYWRkZWQ6CgkgICogdmFsdWUtYWRkZWQKCSAgKiB2YWx1ZS1yZW1vdmVkCgkgICogdmFsdWUtY2hhbmdlZAoJICBUbyBiZSBhYmxlIHRvIHVzZSBhIEdzdENvbnRyb2xQb2ludCB0byBiZSBtYXJzaGFsbGVkIGludG8gdGhlIHNpZ25hbHMsCgkgIHRoZSBHc3RDb250cm9sUG9pbnQgc3RydWN0dXJlIGlzIG5vdyByZWdpc3RlcmQgYXMgYSBHQm94ZWQgdHlwZS4KCSAgTmV3IEFQSToKCSAgfn5+fn5+fgoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1hZGRlZAoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1yZW1vdmVkCgkgICogR3N0VGltZWRWYWx1ZUNvbnRyb2xTb3VyY2U6OnZhbHVlLWFkZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2MTYKCjIwMTQtMTAtMjEgMTM6MDE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE4Yzg5MzkgdG8gODRkMDZjZAoKMjAxNC0xMC0yMSAxMjoxODozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHJlbW92ZSBkdXBsaWNhdGUgZ3N0X21lc3NhZ2VfZ2V0X3R5cGUoKSBpbiBpbml0CgkgIFNwb3R0ZWQgYnk6IEphbiBTdGVmZmVucwoKMjAxNC0xMC0yMSAxMjo1Nzo0NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZTc1NDk4IHRvIGE4Yzg5MzkKCjIwMTQtMTAtMjAgMTY6Mzk6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBpbmNsdWRlIHRoZSBhY3R1YWwgZGVsdGEgaW4gdGhlIG1lc3NhZ2UKCSAgSW5jbHVkaW5nIHRoZSBhY3R1YWwgZGVsdGEgaW4gdGhlIG1lc3NhZ2UgbWFrZXMgaXQgZWFzeSB0byBzZWUsIGlmIHRoZSBuZXcKCSAgYnVmZmVyIGlzIGJlaGluZCBvciBhaGVhZCBhbmQgaG93IG11Y2guCgoyMDE0LTEwLTE4IDE4OjQzOjQzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogVGlkeSBpbml0aWFsaXNhdGlvbgoJICBVc2Ugc29tZSBtYWNyb3MgdG8gbWFrZSBvdXIgdmFsdWUgZnVuY3Rpb25zIHNldHVwIGEgYml0CgkgIHRpZGllciwgYW5kIG1pY3JvLW9wdGltaXNlIGEgZmV3IHJlYWxsb2NzIGJ5IHNldHRpbmcgYW4KCSAgaW5pdGlhbCBzaXplIGZvciB0aGUgZ2xvYmFsIHR5cGUgYXJyYXlzLgoKMjAxNC0xMC0xOCAxNzoyNzowNCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBSdW4gaW5kZW50IHR3aWNlLiBPbmNlIGlzIG5vdCBpZGVtcG90ZW50LCB0d2ljZSBzZWVtcyB0byBiZS4KCjIwMTQtMTAtMTYgMTA6MTM6MTQgKzA0MDAgIEFuZHJlaSBTYXJha2VldiA8c2FyYWt1c2hhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIGFueSB3YWl0aW5nIHN0cmVhbXMgaWYgdGhlIGN1cnJlbnQgb25lIGdvZXMgRU9TCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBoYXZlIHVubGlua2VkIHN0cmVhbXMgd2FpdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5OAoKMjAxNC0xMC0xNyAxMjo0MTowNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICB0eXBlZmluZDogc2ltcGxpZnkgcmVnaXN0cmF0aW9uIGNvZGUKCSAgUmVtb3ZlIGEgdXNlbGVzcyBhc3NlcnQgKHdlIGp1c3QgaW5zdGFudGlhdGVkIHRoaXMgdHlwZSkuIERyb3AgdGhlIGZyZWUnaW5nIG9mCgkgIHRoZSBleHRlbnNpb24gYXJyYXkuIEFzIHdlIGp1c3QgY3JlYXRlZCB0aGUgaW5zdGFuY2UgdGhpcyBpcyBhbHdheXMgTlVMTC4KCjIwMTQtMTAtMTYgMTA6NTU6MzYgKzAyMDAgIEZlbGl4IFNjaHdhcnogPGZlbGl4LnNjaHdhcnpAb3NzLnNjaHdhcnouZXU+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgZG9jczogcHdkOiBmaXggdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODYxMgoKMjAxNC0xMC0xMSAxOToyODoyMSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyBhIGJ1cyB3YXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTA4LTE5IDIzOjI4OjUyICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNwLnN2ZW5zc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidXM6IEFkZCBhIGZ1bmN0aW9uIHRvIHJlbW92ZSBhIGJ1cyB3YXRjaAoJICBJZiBhIGJ1cyB3YXRjaCBpcyBhZGRlZCB0byB0aGUgbm9uIGRlZmF1bHQgbWFpbiBjb250ZXh0IGl0J3Mgbm90CgkgIHBvc3NpYmxlIHRvIHJlbW92ZSBpdCB1c2luZyBnX3NvdXJjZV9yZW1vdmUoKS4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMTAtMDggMjI6NTE6NTYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IFVwZGF0ZSBHc3RRT1NUeXBlIGRvY3VtZW50YXRpb24gYSBiaXQKCSAgQ29ycmVjdGlvbiBmb3Igd2hvIGlzIHByb2R1Y2luZyBkYXRhIHRvbyBmYXN0LCBhbmQgc29tZSBvdGhlciBtaW5vcgoJICBjbGFyaWZpY2F0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODE2NgoKMjAxNC0xMC0wOCAxNjowMzoyMCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSAgZG9jczogcHdnOiBmaXggdHdvIHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNTMKCjIwMTQtMTAtMDggMTU6Mzc6MzcgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBkb2NzOiBwd2c6IGZpeCB0eXBvIGluICdEeW5hbWljIG5lZ290aWF0aW9uJyBzZWN0aW9uCgkgIFRoZSBwb2ludCBvZiB0aGlzIGV4YW1wbGUgaXMgdG8gc2hvdyBob3cgdG8gc2V0IGNhcHMKCSAgb24gdGhlIHNvdXJjZSBwYWQgb25jZSBpdCBoYXMgYmVlbiBzZXQgb24gdGhlIHNpbmsgcGFkLgoJICBTbywgaW4gcGFzc3Rocm91Z2ggbW9kZSwgdGhlIGNhcHMgaXMganVzdCBjb3BpZWQgdG8gdGhlCgkgIHNvdXJjZSBwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNTMKCjIwMTQtMTAtMDggMDk6Mzc6NDEgLTA3MDAgIEFsZWl4IENvbmNoaWxsbyBGbGFxdcOpIDxhbGVpeEBvYmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGRvbid0IGxvY2sgbXVsdGlxdWV1ZSB3aGVuIHB1c2hpbmcgc2VyaWFsaXplZCBxdWVyaWVzCgkgIElmIHdlIGFyZSBwdXNoaW5nIGEgc2VyaWFsaXplZCBxdWVyeSBpbnRvIGEgcXVldWUgYW5kIHRoZSBxdWV1ZSBpcwoJICBmaWxsZWQsIHdlIHdpbGwgZW5kIGluIGEgZGVhZGxvY2suIFdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgbG9jayBiZWZvcmUKCSAgcHVzaGluZyBhbmQgYWNxdWlyZSBpdCBhZ2FpbiBhZnRlcndhcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3OTQKCjIwMTQtMTAtMDggMDE6MzM6NTEgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIEdTVF9QVFJfRk9STUFUIGluIGRlYnVnIHRvIG91dHB1dCBidWZmZXIgZGV0YWlscwoJICBVc2UgJUdTVF9QVFJfRk9STUFUIGluc3RlYWQgb2YgJXAgaW4gZGVidWcgb3V0cHV0IHNvIGFsbCB0aGUgYnVmZmVyCgkgIGRldGFpbHMgYXJlIG91dHB1dAoKMjAxNC0xMC0wNiAxMzozODoyMSArMDIwMCAgTmljb2xhcyBIdWV0IDxuaWNvbGFzLmh1ZXRAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4IG11bHRpLXRocmVhZCBlbnRyeSBzdGF0dXMgaXNzdWUKCSAgUnVubmluZyB0d28gdGhyZWFkcywgb25lIGV4ZWN1dGluZyB0aGUgdGltZXIgYW5kIG9uZSB1bnNjaGVkdWxpbmcgaXQsIHRoZQoJICB1bnNjaGVkdWxlZCBzdGF0dXMgc2V0IGJ5IHRoZSBzZWNvbmQgdGhyZWFkIGlzIHNvbWV0aW1lcyBvdmVyd3JpdHRlbiBieSB0aGUKCSAgZmlyc3Qgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3OTk5CgoyMDE0LTEwLTAzIDE0OjA0OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjb21waWxhdGlvbgoKMjAxNC0xMC0wMyAxNDo0NDo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogZXh0cmFjdCBzb21lIGNvbW1vbiBjb2RlIGludG8gaGVscGVycwoKMjAxNC0xMC0wMyAxNDowMTo1OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3Rvcjogc21hbGwgY29kZSBjbGVhbnVwcwoJICBSZW5hbWUgVElNRVNUQU1QIC0+IFBUUy4gTW92ZSBhIHZhciBkb3duIHRvIHRoZSBzY29wZSB3aGVyZSBpdCBpcyB1c2VkLiBVc2UKCSAgZ19xdWV1ZV9mcmVlX2Z1bGwoKS4KCjIwMTQtMTAtMDMgMTM6NDc6NDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBwcmludGYgZm9ybWF0CgkgIFRoZSBwYWRjb3VudCBpcyB1aW50LiBBbHNvIGFkZCBjb21tZW50cyB0byB0aGUgaW5zdGFuY2UgdmFycy4KCjIwMTQtMTAtMDIgMDM6MzA6MjQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAzIDEzOjE0OjI1ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogc2V0X3NpbmtfY2FwcyB2ZnVuYyBzaG91bGQndCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAzIDA5OjU3OjM3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IG1hcmsgdGhlIHBhdHRlcm4gcHJvcGVydHkgYXMgdW51c2VkCgkgIFJldmVydCB0aGUgcHJldmlvdXMgY29tbWl0IHdoaWNoIHJlbW92ZXMgdGhlIHBhdHRlcm4gcHJvcGVydHkgb2YgZmFrZXNyYyBiZWNhdXNlCgkgIGRvaW5nIHNvIHdpbGwgYnJlYWsgQUJJLiBCcmluZ2luZyB0aGUgcHJvcGVydHkgYmFjayBidXQgbWFya2luZyBpdCBhcyB1bnVzZWQKCSAgaW4gdGhlIHByb3BlcnR5IHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzY4MwoKMjAxNC0xMC0wMyAwOTowMToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWU4YjRiZjA4NTE4MGY3YTRjN2FlNmVjMGY1MjViYWVhZWRkNGRmOC4KCSAgVGhpcyBjYXVzZXMgcmVmY291bnRpbmcgY3JpdGljYWxzIGluIHRoZSBiYXNlcGFyc2UgdW5pdCB0ZXN0LgoKMjAxNC0xMC0wMiAxMzo0NTozNCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgZmFrZXNyYzogcmVtb3ZpbmcgdW51c2VkIHBhdHRlcm4gb3B0aW9uCgkgIEV2ZW50aG91Z2ggdGhlICJwYXR0ZXJuIiBwcm9wZXJ0eSBvZiBmYWtlc3JjIGNhbiBiZSBzZXQsIGl0IGlzIG5ldmVyIHVzZWQuIFRoZQoJICBvbmx5IHBhdHRlcm4gc3VwcG9ydGVkIGlzIHRoZSBkZWZhdWx0IDB4MDAgLT4gMHhmZiwgYW5kIGlmIGEgcGF0dGVybiBpcyBzZXQgYnkKCSAgdGhlIHVzZXIgaXQgaXMgaWdub3JlZC4gUmVtb3ZpbmcgdGhlIHVudXNlZCBwcm9wZXJ0eSBhbmQgdmFyaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2ODMKCjIwMTQtMTAtMDIgMTQ6NTU6MjIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBZGQgbWlzc2luZyBicmVhayBpbiBzd2l0Y2gKCjIwMTQtMTAtMDIgMTE6MDA6MzIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiB1cGRhdGUgc2VnbWVudCBwb3NpdGlvbiBvbiBHQVAgZXZlbnRzIHRvIGNhbGN1bGF0ZSBsZXZlbHMgcHJvcGVybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ5OAoKMjAxNC0xMC0wMiAxMDo1Nzo0MyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMDktMjcgMjA6MTA6MzQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMTAtMDIgMDM6MzA6MjQgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgY2FwcyBpbiBnc3RfYmFzZV9wYXJzZV9wcm9jZXNzX3N0cmVhbWhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NzYyCgoyMDE0LTEwLTAyIDEwOjEzOjI4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIGEgYnVmZmVyIGFsc28gaWYgdXBzdHJlYW0gbmV2ZXIgY29uZmlndXJlZCBjYXBzIGJ1dCB3ZSBoYXZlIHNyY3BhZCBjYXBzIGFscmVhZHkKCSAgT3RoZXJ3aXNlIHdlIG5ldmVyIHNlbmQgcGVuZGluZyBldmVudHMgZG93bnN0cmVhbSB0aGF0IGFycml2ZSBhZnRlciB3ZQoJICBjb25maWd1cmVkIGNhcHMgb24gdGhlIHNyY3BhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzczNQoKMjAxNC0wOS0yOSAxNzo0ODoyOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBEb24ndCB1bmNvbmRpdGlvbmFsbHkgdXNlIGdfbGlzdF9jb3B5X2RlZXAoKQoJICBXZSBkb24ndCBkZXBlbmQgb24gR0xpYiAyLjM0IHlldCBhbmQganVzdCBmb3IgdGhpcyBzZWVtcyBhIGJpdCB1c2VsZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NTg0CgoyMDE0LTA5LTI5IDE2OjIyOjQ3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogSW5jbHVkZSBvdXIgb3duIEJTRCBsaWNlbnNlZCBjb3B5IG9mIHN0cmNhc2VzdHIoKSBmb3IgV2luZG93cyBhbmQgb3RoZXJzCgoyMDE0LTA5LTI5IDE1OjU0OjM3ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGdjYwoJICBUaGVzZSBhcmUgYWN0dWFsbHkgbm90IHRydWUuCgkgIGdzdHVyaS5jOiBJbiBmdW5jdGlvbiAnX2dzdF91cmlfc3RyaW5nX3RvX3RhYmxlLmNvbnN0cHJvcCc6CgkgIGdzdHVyaS5jOjEzMTY6Mjc6IGVycm9yOiAncGN0X2t2X3NlcCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIGZvciAobmV4dF9zZXAgPSBzdHJjYXNlc3RyICh2YWx1ZSwgcGN0X2t2X3NlcCk7IG5leHRfc2VwOwoJICBeCgkgIGdzdHVyaS5jOjEyODM6MjQ6IGVycm9yOiAncGN0X3BhcnRfc2VwJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KCSAgbmV4dF9zZXAgPSBzdHJjYXNlc3RyIChuZXh0X3NlcCArIDEsIHBjdF9wYXJ0X3NlcCkpIHsKCSAgXgoKMjAxNC0wOS0yOSAxMjoxOTozNSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggbWVtb3J5IGxlYWsgaW4gZ3N0X3VyaV9qb2luKCkKCSAgVGhlIG1lcmdlZCBwYXRoIHNlZ21lbnRzIGFyZSBhIGRlZXAtY29waWVkIGxpc3QgYW5kIHdlIG5lZWQgdG8gZnJlZSB0aGUKCSAgY29udGFpbmVkIHN0cmluZ3MgdG9vIGluc3RlYWQgb2YganVzdCB0aGUgbGlzdCBub2RlcyB0aGVtc2VsdmVzLgoKMjAxNC0wNy0zMSAyMjoxODo1MyArMDEwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFVyaTogQWRkIEdzdFVyaSBtaW5pb2JqZWN0IHRvIGhhbmRsZSBVUklzIGluIGFuIFJGQyAzOTg2IGNvbXBsaWFudCBmYXNoaW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjUyMjEKCjIwMTQtMDktMjcgMTM6NTc6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogYWRkIGdzdC1ycGljYW1zcmMgdG8gZ3N0LXVuaW5zdGFsbGVkCgoyMDE0LTA5LTI1IDIxOjIxOjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZml4bWU6IGJ1bXAgbGVmdG92ZXIgMC4xMSBmaXhtZSBjb21tZW50cwoKMjAxNC0wOS0yNSAyMTowNDoyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogJ25ld3NlZ21lbnQnIHRvICdzZWdtZW50JyBpbiB0aGUgZG9jcwoJICBCcmluZ3MgdGhlIGFwaS1kb2NzIGluIHN5bmMgd2l0aCB0aGUgMS4wIGFwaSByZW5hbWUuCgoyMDE0LTA5LTI1IDIwOjIzOjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1vdmUgdGhlIHF1aWNrIHJldHVybiB1cAoJICBEb24ndCBhc3NpZ24gbG9jYWwgdmFycyBpZiB3ZSBza2lwIGFueXdheS4gQWRkIGxvZ2dpbmcgZm9yIGZhaWx1cmUgY29uZGl0aW8KCjIwMTQtMDktMjUgMTk6MDE6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICB0ZXN0czogcGFyYWxsZWxpc2UgJ21ha2UgdmFsZ3JpbmQnCgkgIFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgJ21ha2UnIGluc2lkZSB0aGUgTWFrZWZpbGUsCgkgIG90aGVyd2lzZSB0aGUgbWFrZSB3aWxsIHJ1biBhcyBpZiAtajEgaGFkIGJlZW4KCSAgc3BlY2lmaWVkIGFuZCBjb21wbGFpbiBhYm91dCB0aGUgam9iIHNlcnZlciBub3QKCSAgYmVpbmcgYXZhaWxhYmxlLCBhbmQgd2l0aCAkKE1BS0UpIGluIGluaGVyaXRzIHRoZQoJICBwYXJlbnQgbWFrZSdzIHNldHRpbmdzIGl0IHNlZW1zLgoJICBVcGdyYWRlIGNvbW1vbiBzdWJtb2R1bGUgZm9yIHBhcmFsbGVsIGNoZWNrLXZhbGdyaW5kLgoJICBMZXQgdGhpcyBzZXR0bGUgYSBiaXQgYmVmb3JlIHVwZ3JhZGluZyB0aGUgb3RoZXIgbW9kdWxlcy4KCjIwMTQtMDktMjUgMTg6NTc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlCgkgIEl0J3Mgc29ydGVkLiBJZiBpdCdzIHVuc29ydGVkLCBtYWtlIGNoZWNrLWV4cG9ydHMgZmFpbHMuCgoyMDE0LTA5LTI1IDE4OjU1OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVtb3ZlIGNvbmZ1c2luZyB3YXJuaW5nIGFib3V0IHJ1bm5pbmcgdW5kZXIgdmFsZ3JpbmQKCSAgV2UncmUgbm90IGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nIGRpZmZlcmVudGx5IGFueXdoZXJlIHdoZW4KCSAgd2UgZGV0ZWN0IHRoYXQgd2UncmUgcnVubmluZyB1bmRlciB2YWxncmluZCwgc28gbGV0J3Mgbm90CgkgIHByaW50IHRoYXQgY29uZnVzaW5nIG1lc3NhZ2UgdGhhdCBtYWtlcyBwZW9wbGUgd29uZGVyIGhvdwoJICB0aGV5IGNhbiBzd2l0Y2ggaXQgb2ZmIHNvIHRoZXkgY2FuIHZhbGdyaW5kIHRoZSBub3JtYWwKCSAgY29kZSBwYXRocy4gU2VlaW5nIHRoYXQgd2UncmUgbm90IGRvaW5nIHRoYXQgbm9yIGhhdmUgZG9uZQoJICBzbyBpbiB0aGUgbGFzdCAxMCB5ZWFycyB3ZSBtaWdodCBqdXN0IGFzIHdlbGwgcmVtb3ZlIHRoZQoJICBlbnRpcmUgY2hlY2sgYWN0dWFsbHkuCgoyMDE0LTA5LTI1IDE2OjIxOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGZpeCBjYXBzIGxlYWsgaW4gYmFzZXBhcnNlIHVuaXQgdGVzdAoKMjAxNC0wOS0yNSAxNDo1NDoyMyArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Zsb3djb21iaW5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfY2xlYXIoKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzM1OQoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX2NsZWFyKCkKCjIwMTQtMDktMjQgMTA6MTE6NTQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBIYW5kbGUgZ3N0LXB5dGhvbiBpbiBnc3QtdW5pbnN0YWxsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTA4MgoKMjAxNC0wNi0wMyAxNDoyMzozMCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFJlbW92ZSBFT1MgZXZlbnQgZnJvbSBwZW5kaW5nX2V2ZW50IGxpc3Qgb24gRkxVU0hfU1RPUAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODY4CgoyMDE0LTA5LTIyIDE0OjI3OjA1ICswMTAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogRml4IEdzdEJ1ZmZlciB0eXBvICJtZW1vcnkgYm9jayIgLT4gIm1lbW9yeSBibG9jayIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzExNwoKMjAxNC0wOS0yMiAxNzoyNzozMSArMDEwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IEltcHJvdmUgZ3N0X2J1ZmZlcl9nZXRfbWV0YSgpIHRvIGNsZWFyIHVwIGNvbmZ1c2lvbgoJICBJIHdhcyBjb25mdXNlZCBieSB0aGUgZXhpc3RlbmNlIG9mIGBnc3RfYnVmZmVyX2dldF9tZXRhYCBhcyBpdCBzdWdnZXN0ZWQKCSAgdG8gbWUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgYXR0YWNoIG9uZSBvZiBhbnkgdHlwZSBvZiBHc3RNZXRhIHRvIGEgYnVmZmVyLgoJICBJdCdzIHBlcmZlY3RseSBmaW5lIHRvIGF0dGFjaCBtdWx0aXBsZSBmcm9tIGEgc2luZ2xlIEFQSSBzbyBJJ20KCSAgZG9jdW1lbnRpbmcgdGhhdCBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTI5CgoyMDE0LTA5LTIyIDE5OjA1OjMyICswMjAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IGFkZGVkIG1pc3NpbmcgaW5jbHVkZSBkaXJlY3RpdmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMzMKCjIwMTQtMDktMjMgMTQ6MzE6MjkgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvIG5vdCBmb3JnZXQgdG8gcmVsZWFzZSB0aGUgUVVFVUVfTE9DSyBpbiB0aGUgb3V0X2Zsb3dfZXJyb3IgcGF0aAoJICBBdm9pZGluZyBkZWFkbG9ja3MhCgoyMDE0LTA5LTIzIDEyOjUzOjE4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGZpeCBhIHNtYWxsIGNvbnRyYWRpdGlvbiBpbiB0aGUgZG9jcwoJICBUaGUgdm1ldGhvZCBnZXRfc2l6ZSgpIHNoYWxsIHJldHVybiB0aGUgc2l6ZSBpbiAnZm9ybWF0JyBhcyBjb25maWd1cmVkIGJ5CgkgIF9zZXRfZm9ybWF0KCkuCgoyMDE0LTA5LTIyIDA5OjMzOjA0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEbyBub3QgaG9sZCBHU1RfUVVFVUVfTE9DSyB3aGlsZSBwb3N0aW5nIEVSUk9SIG1lc3NhZ2VzCgkgIFRoaXMgbWlnaHQgY3JlYXRlIGRlYWRsb2NrcyBhbmQgd2UgbmVlZCB0byBhdm9pZCBob2xkaW5nIGVsZW1lbnQKCSAgc3BlY2lmaWMgbG9jayB3aGlsZSBwb3N0aW5nIG1lc3NhZ2VzCgkgIEZvciBleGFtcGxlIGEgZGVhZGxvY2sgd2lsbCBoYXBwZW4gaWYgd2hpbGUgcG9zdGluZyB0aGUgbWVzc2FnZSwKCSAgc29tZW9uZSBjb25uZWN0ZWQgb24gdGhlIGJ1cyAoc3luYykgdHJpZXMgdG8gRE9UIHRoZSBwaXBlbGluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEwMgoKMjAxNC0wOS0xOSAxMjowMjo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBkbyBub3QgcG9zdCBidWZmZXJpbmcgbWVzc2FnZXMgaG9sZGluZyB0aGUgbG9jawoJICBJdCBtaWdodCBjYXVzZSBkZWFkbG9ja3MgdG8gcG9zdCBtZXNzYWdlcyB3aGlsZSBob2xkaW5nIHRoZSBxdWV1ZTIKCSAgbG9jay4gVG8gYXZvaWQgdGhpcyBhIG5ldyBib29sZWFuIGZsYWcgaXMgc2V0IHdoZW5ldmVyIGEgbmV3CgkgIGJ1ZmZlcmluZyBwZXJjZW50IGlzIGZvdW5kLiBUaGUgbWVzc2FnZSBpcyBwb3N0ZWQgYWZ0ZXIgdGhlIGxvY2sKCSAgaXMgcmVsZWFzZWQuCgkgIFRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyaW5nIG1lc3NhZ2VzIGFyZSBwb3N0ZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLCBtZXNzYWdlcwoJICBhcmUgcG9zdGVkIGhvbGRpbmcgYW5vdGhlciBsb2NrLiBUaGlzIHByZXZlbnRzIDIgdGhyZWFkcyB0cnlpbmcgdG8gcG9zdAoJICBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2OTY5CgoyMDE0LTA5LTE5IDA5OjQyOjEwICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY29kZQoJICBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSgpIGZ1bmN0aW9uIGhhcyBuZXdfdXJpLCBsb2NhdGlvbiBhbmQgY29sb24KCSAgYXJlIG5vdCBuZWNlc3NhcnksIHRoZXkgY2FuIGJlIHJlbW92ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4NzcKCjIwMTQtMDktMTkgMDA6MzM6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogcHdnOiBmaXggc29tZSBsaW5rcyB0byB0aGUgQVBJIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjc2MgoKMjAxNC0wOS0xOCAxODo1NTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgRklYTUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg3OAoKMjAxNC0wOS0xNyAyMTo0OToxOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBGaXggc3BlbGxpbmcgZXJyb3IKCSAgVGhhbmsgdG8gQWRyaWFuIE93ZW4gZm9yIHJlcG9ydGluZyB0aGlzIGVycm9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODM5CgoyMDE0LTA5LTE3IDE3OjE3OjEwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBkbyBub3QgbGVhayBzdGlja3kgZXZlbnRzIGluIGZsdXNoX3N0b3AKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjgxMwoKMjAxNC0wOS0xMiAxNDo0MjoyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIGdsb2JhbCB2YXJpYWJsZSBmb3IgbG9nX2ZpbGUKCSAgVXNlIHVzZXJfZGF0YSB0byBwYXNzIHRoZSBsb2dfZmlsZSBoYW5kbGUgdG8gdGhlIGxvZ2dlci1mdW5jdGlvbi4KCSAgSWYgb25lIHdhbnRzIHRvIGNoYW5nZSB0aGUgbG9nIHRhcmdldCAoZS5nLiBHU1RfREVCVUdfRklMRSksIHNpbXBseSBjYWxsCgkgIGdzdF9kZWJ1Z19yZW1vdmVfbG9nX2Z1bmN0aW9uKCkgYW5kIHJlLWFkZCB0aGUgaGFuZGxlciB3aXRoIHRoZSBuZXcgbG9nLXRhcmdldAoJICB1c2luZyBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbiAoKS4KCjIwMTQtMDktMTYgMTM6NDg6MTggKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfZXZlbnRfcGFyc2VfdG9jX3NlbGVjdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3MzkKCjIwMTQtMDktMTEgMTg6MDE6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHBvc3QgbWVzc2FnZXMgaG9sZGluZyB0aGUgbG9jawoJICBJdCBtaWdodCBjYXVzZSBkZWFkbG9ja3MgdG8gcG9zdCBtZXNzYWdlcyB3aGlsZSBob2xkaW5nIHRoZSBtdWx0aXF1ZXVlCgkgIGxvY2suIFRvIGF2b2lkIHRoaXMgYSBuZXcgYm9vbGVhbiBmbGFnIGlzIHNldCB3aGVuZXZlciBhIG5ldyBidWZmZXJpbmcgcGVyY2VudAoJICBpcyBmb3VuZC4gVGhlIG1lc3NhZ2UgaXMgcG9zdGVkIGFmdGVyIHRoZSBsb2NrIGNhbiBiZSByZWxlYXNlZC4KCSAgVG8gbWFrZSBzdXJlIHRoZSBidWZmZXJpbmcgbWVzc2FnZXMgYXJlIHBvc3RlZCBpbiB0aGUgcmlnaHQgb3JkZXIsIG1lc3NhZ2VzCgkgIGFyZSBwb3N0ZWQgaG9sZGluZyBhbm90aGVyIGxvY2suIFRoaXMgcHJldmVudHMgMiB0aHJlYWRzIHRyeWluZyB0byBwb3N0CgkgIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyOTUKCjIwMTQtMDktMTYgMTY6MDc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDE0LTA5LTE2IDEyOjE3OjQ4ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBBZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X3F1ZXJ5X2FkZF9hbGxvY2F0aW9uX3Bvb2woKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzM2CgoyMDE0LTA5LTE1IDE2OjM4OjE3ICswMjAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSByZWZlcmVuY2UgaW4gc2V0X2FsbG9jYXRpb24gcmF0aGVyIHRoYW4gaW4gcHJlcGFyZV9hbGxvY2F0aW9uCgkgIE90aGVyd2lzZSB3ZSBjYW4gZm9yZ2V0IHRvIHVucmVmIG9iamVjdHMgaW4gZXJyb3IgY2FzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY2ODAKCjIwMTQtMDktMTUgMTM6MDY6NDAgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogVXNlIHRoZSBuYW1lIHBhcmFtZXRlciBvZiBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lKCkgYW5kIHRoZSBzaW5rIHZhcmlhbnQKCSAgVGhpcyB3YXMgaGFyZGNvZGVkIHRvICJzaW5rIiAvICJzcmMiIGJ5IGFjY2lkZW50IGluIHByZXZpb3VzIHJlZmFjdG9yaW5nLgoKMjAxNC0wOS0xMyAyMDoxMjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBjb3JlZWxlbWVudHM6IG1hcmsgcHJvcGVydGllcyB3aXRoIE1VVEFCTEVfUExBWUlORwoKMjAxNC0wOS0xMSAxNTo1MjozMiArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgYSBmdW5jdGlvbiB0byBjaGVjayBkZXN0cnVjdGlvbiBvZiBvYmplY3RzCgkgIEFkZCBhIG1ldGhvZCBsZXR0aW5nIHBlb3BsZSB0byBlbnN1cmUgdGhhdCB1bnJlZmZpbmcgb25lIG9iamVjdAoJICBsZWFkcyB0byBpdHMgZGVzdHJ1Y3Rpb24sIGFuZCBwb3NzaWJseSB0aGUgZGVzdHJ1Y3Rpb24gb2YgbW9yZSBvYmplY3QKCSAgKHRoaW5rIGRlc3RydWN0aW9uIG9mIGEgR3N0QmluIGV0Yy4uLikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY0NzcKCjIwMTQtMDktMTIgMTQ6MTA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZ3N0LWluc3BlY3Q6IGRvbid0IGxpc3QgcGFkIGZ1bmN0aW9ucwoJICBEb24ndCBwcmludCBhbGwgdGhlIGRpZmZlcmVudCBwYWQgZnVuY3Rpb25zLCBpdCdzIGp1c3QKCSAgY29uZnVzaW5nIGFuZCBubyBvbmUgaGFzIGV2ZXIgbmVlZGVkIHRvIGtub3cgdGhpcyBmb3IKCSAgYW55dGhpbmcgZXZlciBhbnl3YXksIGl0J3MganVzdCB1c2VsZXNzIGluZm9ybWF0aW9uLgoJICBCZXNpZGVzLCB3ZSBhbHNvIGxhYmVsIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBhcwoJICAnY3VzdG9tJyBpbXBsZW1lbnRhdGlvbnMgKHRoZSBjb2RlIHRoYXQgdHJpZXMgdG8KCSAgcHJldmVudCB0aGF0IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBpdCBzZWVtcykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYzNzcKCjIwMTQtMDktMTIgMTU6MjI6MTkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFrZSBzdXJlIHRoZSBidWZmZXIgdG8gZ2V0L3B1bGxfcmFuZ2UoKSBoYXMgYXQgbGVhc3QgdGhlIHJlcXVlc3RlZCBzaXplCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NjEKCjIwMTQtMDktMDUgMTg6MzY6MDIgKzAwMDAgIFRpYWdvIDx0aWFnb2thdGNpcGlzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBBZGRpbmcgZG9jdW1lbnRhdGlvbiB0byB0aGUgZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkX2J5X25hbWUgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDE5MAoKMjAxNC0wOS0xMCAxNDo1MzowMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIGFubm90YXRpb25zIHRvIGdzdF9xdWVyeV9zZXRfbnRoX2FsbG9jYXRpb25fcG9vbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDI0CgoyMDE0LTA5LTExIDA5OjM1OjE3ICswMjAwICBSw6ltaSBMZWbDqHZyZSA8cmVtaS5sZWZldnJlQHBhcnJvdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXggdHlwbyBpbiBkZXNjcmlwdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDU1CgoyMDE0LTA5LTA5IDIwOjQzOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtaW5vciBkb2NzIGZpeAoKMjAxNC0wOS0wNyAwMTozMDoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIFJldmVydCAiZGF0YXVyaXNyYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGVsc2UgaWYgY29uZGl0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMwMjRhZTljMzg0OTA4MTdhNzZjODNmZWFiM2M4NDcyOTg5Y2FmYWQuCgkgIFRoZSAqYnVmIGNhbiBiZSBOVUxMIG9yIG5vdCBkZXBlbmRpbmcgaWYgdGhlIGNhbGxlciBvZiBnc3RfcGFkX2dldF9yYW5nZQoJICBmdW5jdGlvbiBwcm92aWRlZCBvciBub3QgYSBidWZmZXIuCgoyMDE0LTA5LTA0IDEzOjM4OjIxICswNTMwICBWaW5lZXRoIFQgTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBSZW1vdmUgdW5uZWNlc3NhcnkgZWxzZSBpZiBjb25kaXRpb24KCSAgSW4gZ3N0X2RhdGFfdXJpX3NyY19jcmVhdGUoKSwgYnVmIGNhbm5vdCBiZSBOVUxMLCBoZW5jZQoJICBlbHNlIGlmICgqYnVmICE9IE5VTEwpIHdpbGwgYmUgaW52YWxpZCBzbyByZW1vdmluZyB0aGUKCSAgZWxzZSBpZiBjb25kaXRpb24gYW5kIGFkZGluZyBhIGNoZWNrIHRvIHVucmVmZXJlbmNlIGJ1ZgoJICBpbiBlbHNlIGNvbmRpdGlvbiwganVzdCBpbiBjYXNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NjEKCjIwMTQtMDktMDMgMTc6Mzg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBmaXggdHlwbyBpbiBzYW1wbGUgY29kZSBpbiBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU5NzUKCjIwMTQtMDgtMjUgMTE6MzQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogYWRkIGZsdXNoLXN0b3Agb24gaW5hY3RpdmUgcGFkIHRlc3QKCSAgQ2hlY2sgdGhhdCBwdXNoaW5nIGZsdXNoLXN0b3Agb24gYW4gaW5hY3RpdmUgcGFkIGRvZXMgbm90IGNsZWFyIHRoZQoJICBmbHVzaGluZyBmbGFnLgoKMjAxNC0wOC0yMSAxNTo0OToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgYWNjZXB0IGZsdXNoLXN0b3Agb24gaW5hY3RpdmUgcGFkcwoJICBJbmFjdGl2ZSBwYWRzIHNob3VsZCBhdCBhbGwgdGltZXMgaGF2ZSB0aGUgZmx1c2hpbmcgZmxhZyBzZXQuIFRoaXMgbWVhbnMKCSAgdGhhdCB3aGVuIHdlIGdldCBhIGZsdXNoLXN0b3Agb24gYW4gaW5hY3RpdmUgcGFkIHdlIG11c3QgaWdub3JlIGl0LgoJICBPbiBzaW5rcGFkcywgbWFrZSB0aGlzIG1vcmUgZXhwbGljaXQuIFdlIHVzZWQgdG8gbm90IGNsZWFyIHRoZSBmbHVzaAoJICBmbGFnIGJ1dCByZW1vdmUgdGhlIGV2ZW50cyBhbmQgdGhlbiByZXR1cm4gYW4gZXJyb3IgYmVjYXVzZSB0aGUgZmx1c2hpbmcKCSAgZmxhZyB3YXMgc2V0LiBOb3cganVzdCBzaW1wbHkgcmVmdXNlIHRoZSBldmVudCB3aXRob3V0IGRvaW5nIGFueXRoaW5nLgoJICBPbiBzcmNwYWRzLCBjaGVjayB0aGF0IHdlIGFyZSB0cnlpbmcgdG8gcHVzaCBhIGZsdXNoLXN0b3AgZXZlbnQgYW5kCgkgIHJlZnVzZSBpdC4gV2Ugd291bGQgYWxsb3cgdGhpcyBhbmQgbWFyayB0aGUgc3JjcGFkIGFzIG5vbi1mbHVzaGluZwoJICBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MzU3CgoyMDE0LTA4LTI3IDE3OjA2OjU3ICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBTZW5kIGFsbCBldmVudHMgdG8gYWN0aXZlIHNyYyBwYWQgYW5kIEVPUyB0byBhbGwgc3JjIHBhZHMKCSAgRml4ZXMgdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTgxMQoKMjAxNC0wOS0wMiAxMjoxMTo0NCArMDUzMCAgVmluZWV0aCBUIE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogTWFrZSBnZXRfdXJpKCkgdGhyZWFkc2FmZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODYxCgoyMDE0LTA4LTI4IDE3OjI0OjU2ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCB0eXBvIGluIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU2MDkKCjIwMTQtMDgtMjYgMjA6MTQ6NDAgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRvIG5vdCB0b3VjaCBtZW1vcnkgdGFnIGZsYWcgd2hlbiBjb3B5aW5nIGJ1ZmZlciBmbGFncwoJICBUaGUgdGFnIG1lbW9yeSBmbGFnIHdpbGwgYmUgc2V0IGxhdGVyIGlmIHRoZSBtZW1vcnkgaXMgYWxzbyBjb3BpZWQuIFRoaXMKCSAgcGF0Y2ggYXZvaWRzIGJ1ZmZlcnMgYmVpbmcgZnJlZWQgbmVlZGxlc3NseSBpbiBidWZmZXJwb29scy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTU3NAoKMjAxNC0wNy0xNSAxNjowNjo0OSArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZ3N0X2J1c19hZGRfd2F0Y2goKSBjYW4gcmV0dXJuIDAgb24gZXJyb3IKCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUxOTUKCjIwMTQtMDgtMjUgMTM6NDQ6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaGFuZGxlIHN0cmVhbWhlYWRlcnMgYnkgcHJlcGVuZGluZyB0aGVtIHRvIHRoZSBzdHJlYW0KCSAgQWRkIGEgZmlyc3RfYnVmZmVyIGJvb2xlYW4gc3RhdGUgZmxhZyB0byBoYXZlIGJhc2VwYXJzZSBkbyBhY3Rpb25zCgkgIGJlZm9yZSBwdXNoaW5nIGRhdGEuIFRoaXMgaXMgdXNlZCB0byBjaGVjayB0aGUgY2FwcyBmb3Igc3RyZWFtaGVhZGVyCgkgIGJ1ZmZlcnMgdGhhdCBhcmUgcHJlcGVuZGVkIHRvIHRoZSBzdHJlYW0sIGJ1dCBvbmx5IGlmIHRoZSBmaXJzdCBidWZmZXIKCSAgaXNuJ3QgYWxyZWFkeSBtYXJrZWQgd2l0aCB0aGUgX0hFQURFUiBmbGFnLiBJbiB0aGlzIGNhc2UsIGl0IGlzIGFzc3VtZWQKCSAgdGhhdCB0aGUgX0hFQURFUiBtYXJrZWQgYnVmZmVyIGlzIHRoZSBzYW1lIGFzIHRoZSBzdHJlYW1oZWFkZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUwNzAKCjIwMTQtMDgtMjcgMTE6MDE6MDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFsbG93IHNlZWtpbmcgb24gdGhlIGN1cnJlbnRseSBwbGF5aW5nIHN0cmVhbQoJICBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgc3RyZWFtIHRpbWUgcmVwb3J0aW5nLgoKMjAxNC0wOC0yMyAxMjoyNDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZy1pICd0cmFuc2ZlciBmdWxsJyBhbm5vdGF0aW9ucyB0byBjaGFpbiBhbmQgY2hhaW5fbGlzdCBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTIxMAoKMjAxNC0wOC0yMiAxMDozMjozOCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYW5ub3RhdGUgR3N0UGFkRXZlbnRGdW5jdGlvbiBldmVudCB3aXRoICd0cmFuc2ZlciBmdWxsJwoJICBUaGUgY2FsbGJhY2sgaXMgc3VwcG9zZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IHNvCgkgIGJlc3QgdG8gYmUgZXhwbGljaXQgYWJvdXQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUyMTAKCjIwMTQtMDgtMjAgMTI6NTU6NTEgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3NuQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IHRoYXQgdHJpZ2dlcnMgZGVhZGxvY2sgaW4gc3RhdGUgY2hhbmdlIG9mIHF1ZXVlCgkgIFdoZW4gcmVjZWl2aW5nIEZMQVNIX1NUT1AgaW4gYSBzdGF0ZSB0cmFuc2l0aW9uIHRvIFJFQURZLCBhIHF1ZXVlCgkgIGVsZW1lbnQgY2FuIGVuZCB1cCB3aXRoIGFuIGFjdGl2ZSB0YXNrIHRoYXQgd2lsbCBuZXZlciBlbmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ2ODgKCjIwMTQtMDgtMjEgMTQ6MDI6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggcmFjZSB3aGVuIGZsdXNoLXN0b3AgZXZlbnQgY29tZXMgaW4gd2hpbHN0IHNodXR0aW5nIGRvd24KCSAgRG9uJ3QgcmUtc3RhcnQgdGhlIHF1ZXVlIHB1c2ggdGFzayBvbiB0aGUgc291cmNlIHBhZCB3aGVuIGEKCSAgZmx1c2gtc3RvcCBldmVudCBjb21lcyBpbiBhbmQgd2UncmUgaW4gdGhlIHByb2Nlc3Mgb2Ygc2h1dHRpbmcKCSAgZG93biwgb3RoZXJ3aXNlIHRoYXQgdGFzayB3aWxsIG5ldmVyIGJlIHN0b3BwZWQgYWdhaW4uCgkgIFdoZW4gdGhlIGVsZW1lbnQgaXMgc2V0IHRvIFJFQURZIHN0YXRlLCB0aGUgcGFkcyBnZXQgZGUtYWN0aXZhdGVkLgoJICBUaGUgc291cmNlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIGJlZm9yZSB0aGUgcXVldWUncyBvd24gYWN0aXZhdGVfbW9kZQoJICBmdW5jdGlvbiBvbiB0aGUgc291cmNlIHBhZHMgZ2V0cyBjYWxsZWQgKHdoaWNoIHdpbGwgc3RvcCB0aGUgdGhyZWFkKSwKCSAgc28gY2hlY2tpbmcgd2hldGhlciB0aGUgcGFkIGlzIGFjdGl2ZSBiZWZvcmUgcmUtc3RhcnRpbmcgdGhlIHRhc2sgb24KCSAgcmVjZWl2aW5nIGZsdXNoLXN0b3Agc2hvdWxkIGJlIGZpbmUuIFRoZSBwcm9ibGVtIHdvdWxkIGhhcHBlbiB3aGVuIHRoZQoJICBmbHVzaC1zdG9wIGhhbmRsZXIgd2FzIGNhbGxlZCBqdXN0IGFmdGVyIHRoZSBxdWV1ZSdzIGFjdGl2YXRlIG1vZGUKCSAgZnVuY3Rpb24gaGFkIHN0b3BwZWQgdGhlIHRhc2suCgkgIFNwb3R0ZWQgYW5kIGRlYnVnZ2VkIGJ5IExpbnVzIFN2ZW5zc29uIDxsaW51eC5zdmVuc3NvbkBheGlzLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDY4OAoKMjAxNC0wOC0wNiAxNDowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYnl0ZXJlYWRlcjogYWRkIGdzdF9ieXRlX3JlYWRlcl9wZWVrX3N1Yl9yZWFkZXIoKSBhbmQgX2dldF9zdWJfcmVhZGVyKCkKCSAgQWRkcyBBUEkgdG8gZ2V0IG9yIHBlZWsgYSBzdWItcmVhZGVyIG9mIGEgY2VydGFpbiBzaXplIGZyb20KCSAgYSBnaXZlbiBieXRlIHJlYWRlci4gVGhpcyBpcyB1c2VmdWwgd2hlbiBwYXJzaW5nIG5lc3RlZCBjaHVua3MsCgkgIG9uZSBjYW4gZWFzaWx5IGdldCBhIGJ5dGUgcmVhZGVyIGZvciBhIHN1Yi1jaHVuayBhbmQgbWFrZQoJICBzdXJlIG9uZSBuZXZlciByZWFkcyBiZXlvbmQgdGhlIHN1Yi1jaHVuayBib3VuZGFyeS4KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVyKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N1Yl9yZWFkZXIoKQoKMjAxNC0wNy0yNSAxNjozOTo0MCArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBtYWtlIGV4cGxpY2l0IHRoYXQgdGhlIGNhcHMgcGFzc2VkIHRvIGdzdF9iYXNlX3NyY19zZXRfY2FwcygpIGFyZSAndHJhbmZlciBub25lJwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzQxCgoyMDE0LTA4LTE0IDE4OjUzOjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYWx3YXlzIHByb3h5IGNhcHMgcXVlcnkKCSAgT3RoZXJ3aXNlIGl0IHdvdWxkIG9ubHkgYmUgcHJveGllZCBmb3IgdGhlIGFjdGl2ZSBwYWQgd2hpY2ggY2FuIGxlYWQKCSAgdXBzdHJlYW0gdG8gdXNlIGFuIGluY29tcGF0aWJsZSBjYXBzIGZvciB0aGUgZG93bnN0cmVhbSBlbGVtZW50LgoJICBFdmVuIGlmIGEgcmVjb25maWd1cmUgZXZlbnQgaXMgc2VudCB1cHN0cmVhbSB3aGVuIHRoZSBwYWQgaXMgYWN0aXZhdGVkLCB0aGlzCgkgIHdpbGwgc2F2ZSB0aGUgY2FwcyByZWNvbmZpZ3VyYXRpb24gaWYgaXQgaXMgYWxyZWFkeSB1c2luZyBhbiBhY2NlcHRhYmxlIGNhcHMuCgoyMDE0LTA4LTE0IDE0OjM3OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgYmFzZTogYW5kIGZpeCBidWlsZCB3aXRoIG5ldyBnLWkgYWdhaW4KCjIwMTQtMDgtMTQgMTQ6MjU6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBiYXNlOiByZW1vdmUgZy1pIGFubm90YXRpb24gdGhhdCBtYWtlcyBvbGRlciBnLWlyLXNjYW5uZXIgY3Jhc2gKCSAgSnVzdCByZW1vdmUgb25lIHNraXAgYW5ub3RhdGlvbiB0aGF0IGNhdXNlcyB0aGlzOgoJICAqKiAoZy1pci1jb21waWxlcjoxMjQ1OCk6IEVSUk9SICoqOiBDYXVnaHQgTlVMTCBub2RlLCBwYXJlbnQ9ZW1wdHkKCSAgd2l0aCBvbGRlciBnLWkgdmVyc2lvbnMgc3VjaCBhcyAxLjMyLjEuCgoyMDE0LTA4LTEzIDE0OjEyOjAwICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGRlc3Ryb3kgc2lnbmFsIHdhdGNoIGZyb20gdGhlIGNvbnRleHQgaXQgd2FzIG1hcHBlZCB0bwoJICBEb24ndCByZWx5IG9uIGdfc291cmNlX3JlbW92ZSgpIGJlY2F1c2UgaXQgb3BlcmF0ZXMgb24gdGhlIG1haW4KCSAgY29udGV4dC4gSWYgYSBzaWduYWwgd2F0Y2ggd2FzIGFkZGVkIHRvIGEgbmV3IHRocmVhZC1kZWZhdWx0IGNvbnRleHQKCSAgZ19zb3VyY2VfcmVtb3ZlKCkgd291bGQgaGF2ZSBubyBlZmZlY3QuIFNvIHNpbXBseSB1c2UKCSAgZ19zb3VyY2VfZGVzdHJveSgpIHRvIGF2b2lkIHRoaXMgcHJvYmxlbS4KCSAgQWRkaXRpb25hbGx5IHRoZSBzb3VyY2VfaWQgd2FzIHJlbW92ZWQgZnJvbSBHc3RCdXNQcml2YXRlIGJlY2F1c2UgaXQKCSAgd2FzIHJlZHVuZGFudCB3aXRoIHRoZSBzaWduYWwgd2F0Y2ggR1NvdXJjZSBhbHNvIHN0b3JlZCBpbiB0aGF0CgkgIHN0cnVjdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDcxNgoKMjAxNC0wOC0wNyAxMjoxODowNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE5vdCBwb3N0IEJVRkZFUklORyBtZXNzYWdlIGlmIG9uZSBvZiB0aGUgc2luZ2xlcXVldWUgZG9lc24ndCBuZWVkIGl0CgkgIEltYWdpbmUgdGhlIGZvbGxvd2luZyAncGlwZWxpbmUnCgkgIC0tLS0tLS0tLS0tLS0tCgkgIHAxL3wgJ2Z1bGxxdWV1ZScgIHwtLS0gJ2xhZ2d5JyBkb3duc3RyZWFtCgkgIC0tLS0tLS0tLSAgLyB8ICAgICAgICAgICAgICB8CgkgIC18IGRlbXV4ZXIgfCAgIHwgbXVsdGlxdWV1ZSAgIHwKCSAgLS0tLS0tLS0tICBcIHwgICAgICAgICAgICAgIHwKCSAgcDJcfCAnZW1wdHlxdWV1ZScgfC0tLSAnZmFzdCcgZG93bnN0cmVhbQoJICAtLS0tLS0tLS0tLS0tLQoJICBJbiB0aGUgY2FzZSBkb3duc3RyZWFtIG9mIG9uZSBzaW5nbGUgcXVldWUgKGZ1bGxxdWV1ZSkgaGFzIChhIGxvdCBvZikgbGF0ZW5jeQoJICAoZm9yIGV4YW1wbGUgZm9yIHJldmVyc2UgcGxheWJhY2sgd2l0aCB2aWRlbyksIHdlIGNhbiBlbmQgdXAgaGF2aW5nIHRoZSBvdGhlcgoJICBTaW5nbGVRdWV1ZSAoZW1wdHlxdWV1ZSkgZW1wdGllZCwgYmVmb3JlIHRoYXQgZnVsbHF1ZXVlIGdldHMKCSAgdW5ibG9ja2VkLiBJbiB0aGUgbWVhbnRpbWUsIHRoZSBkZW11eGVyIHRyaWVzIHRvIHB1c2ggb24gZnVsbHF1ZXVlLCBhbmQKCSAgaXMgYmxvY2tpbmcgdGhlcmUuCgkgIEluIHRoYXQgY2FzZSB0aGUgY3VycmVudCBjb2RlIHdpbGwgcG9zdCBhIEJVRkZFUklORyBtZXNzYWdlIG9uIHRoZSBidXMgd2hlbgoJICBlbXB0eXF1ZXVlIGdldHMgZW1wdGllZCwgdGhhdCBsZWFkcyB0byB0aGUgYXBwbGljYXRpb24gc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgdG8KCSAgUEFVU0VELiBTbyBub3cgd2UgZW5kIHVwIGluIGEgc2l0dWF0aW9uIHdoZXJlICdsYWdneSBkb3duc3RyZWFtJyBpcwoJICBwcmVyb2xsZWQgYW5kIHdpbGwgbm90IHVuYmxvY2sgYW55bW9yZSBiZWNhdXNlIHRoZSBwaXBlbGluZSBpcyBzZXQgdG8KCSAgUEFVU0VELCB0aGUgZnVsbGVxdWV1ZSBkb2VzIG5vdCBoYXZlIGEgY2hhbmNlIHRvIGJlIGVtcHRpZWQgYW5kCgkgIHRoZSBlbXB0eXF1ZXVlIGNhbiBub3QgZ2V0IGZpbGxlZCBhbnltb3JlIHNvIG5vIG1vcmUgQlVGRVJSSU5HIG1lc3NhZ2UKCSAgd2lsbCBiZSBwb3N0ZWQgYW5kIHRoZSBwaXBlbGluZSBpcyBzdHVja2VkIGluIFBBVVNFRCBmb3IgdGhlIGV0ZXJuaXR5LgoJICBNYWtpbmcgc3VyZSB0aGF0IHdlIGRvIG5vdCB0cnkgdG8gImJ1ZmZlciIgaWYgb25lIG9mIHRoZSBzaW5nbGUgcXVldWUKCSAgZG9lcyBub3QgbmVlZCBidWZmZXJpbmcsIHByZXZlbnRzIHRoaXMgc2l0dXRhdGlvbiBmcm9tIGhhcHBlbmluZyB0aG91Z2ggaXQgbGV0cyB0aGUKCSAgb3BvcnR1bml0eSBmb3IgYnVmZmVyaW5nIGluIGFsbCBvdGhlciBjYXNlcy4KCSAgVGhhdCBpbXBsZW1lbnRzIGEgbmV3IGxvZ2ljIHdoZXJlIHdlIG5lZWQgYWxsIHNpbmdsZXF1ZXVlIHRvIG5lZWQKCSAgYnVmZmVyaW5nIGZvciB0aGUgbXVsdGlxdWV1ZSB0byBhY3R1YWxseSBzdGF0ZSBidWZmZXJpbmcgaXMgbmVlZGVkLAoJICB0YWtpbmcgdGhlIG1heGltdW0gYnVmZmVyaW5nIG9mIHRoZSBzaW5nbGUgcXVldWUgYXMgdGhlIHJlZmVyZW5jZSBwb2ludC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQxMgoKMjAxNC0wOC0xMyAxMzowMToyMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBPbmx5IGhhbmRsZSBmbG93IHJldHVybnMgPCBFT1MgYXMgZXJyb3JzLCBub3QgZS5nLiBmbHVzaGluZwoKMjAxNC0wOC0xMyAxMjo0MDozNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBVc2UgYWxsb3ctbm9uZSBpbnN0ZWFkIG9mIG51bGxhYmxlIHVudGlsIHdlIGRlcGVuZCBvbiBhIG5ldyBlbm91Z2ggR0kgdmVyc2lvbgoKMjAxNC0wOC0xMyAxMjozOTo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBnc3RfYmluX25ldygpIGNhbiBhY2NlcHQgTlVMTCBhcyBuYW1lCgoyMDE0LTA4LTEzIDEyOjM3OjA4ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2xhcmlmeSBkb2NzIGFib3V0IGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGFuZCByZW1vdmUgZGVwcmVjYXRpb24gcGFydAoJICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCByZWFsbHkgcGFkIG9yIHNsb3cgZm9yIHRoZSBjb21tb24gY2FzZSBvZiByZXF1ZXN0aW5nIGEKCSAgcGFkIHdpdGggdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlLiBJdCBpcyBvbmx5IHNsb3dlciBpZiB5b3UgdG8gbmFtZSB5b3VyIHBhZHMKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBlbGVtZW50IGhhbmRsZSBpdC4KCSAgQWxzbyB0aGVyZSdzIG5vIHJlYXNvbiB0byBkZXByZWNhdGUgaXQgaW4gZmF2b3Igb2YgYSBtb3JlIGNvbXBsaWNhdGVkIGZ1bmN0aW9uCgkgIGZvciB0aGUgY29tbW9uIGNhc2UuCgoyMDE0LTA4LTEzIDEyOjIwOjUxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBQb3N0IGVycm9ycyBpZiB3ZSByZWNlaXZlIEVPUyBhZnRlciBkb3duc3RyZWFtIHJlcG9ydGVkIGFuIGVycm9yCgkgIFRoZXJlIHdpbGwgYmUgbm8gZnVydGhlciBkYXRhIGZsb3cgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBwcm9wYWdhdGUgdGhlCgkgIGVycm9yIHVwc3RyZWFtLCBjYXVzaW5nIG5vYm9keSBhdCBhbGwgdG8gcG9zdCBhbiBlcnJvciBtZXNzYWdlLgoKMjAxNC0wOC0xMyAxMjoxNTowMyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFBvc3QgZXJyb3JzIHdoZW4gcmVjZWl2aW5nIEVPUyBhZnRlciBkb3duc3RyZWFtIHJldHVybmVkIGFuIGVycm9yCgkgIFRoZXJlIG1pZ2h0IGJlIG5vIGZ1cnRoZXIgZGF0YSBmbG93IHRoYXQgd291bGQgYWxsb3cgdXMgdG8gcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgY2F1c2luZyBub2JvZHkgdG8gcG9zdCBhbiBlcnJvciBhdCBhbGwuCgoyMDE0LTA4LTEzIDEyOjEwOjM5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFBvc3QgZXJyb3JzIG91cnNlbHZlcyBpZiB0aGV5IGFyZSByZWNlaXZlZCBhZnRlciBFT1MKCSAgQWZ0ZXIgRU9TIHRoZXJlIHdpbGwgYmUgbm8gZnVydGhlciBidWZmZXIgd2hpY2ggY291bGQgcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgc28gbm90aGluZyBpcyBnb2luZyB0byBwb3N0IGFuIGVycm9yIG1lc3NhZ2UgYW5kCgkgIHRoZSBwaXBlbGluZSBqdXN0IGlkbGVzIGFyb3VuZC4KCjIwMTQtMDgtMTIgMjA6MDM6MDYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb2NzOiBUcml2aWFsIHBhZCBkb2N1bWVudGF0aW9uIGZpeAoJICBQcmVzdW1hYmx5IGEgY29weS1wYXN0by4KCjIwMTQtMDgtMDggMDk6NTQ6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIHVuaXQgdGVzdHMgZm9yIGNvbmNhdCBlbGVtZW50CgoyMDE0LTA4LTA4IDA5OjEzOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y29uY2F0LmM6CgkgIGNvbmNhdDogQWRkIGRvY3VtZW50YXRpb24gYW5kIGludGVncmF0ZSBpbnRvIGRvY3VtZW50YXRpb24gYnVpbGQKCjIwMTQtMDgtMDcgMTQ6NDI6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGNvbmNhdDogQWRkIG5ldyBlbGVtZW50IHRoYXQgY29uY2F0ZW5hdGVzIG11bHRpcGxlIHN0cmVhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQ3MAoKMjAxNC0wOC0wOSAxMDo1Nzo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IGFkZCBjaGVjayBmb3IgY2FwcyB3aXRoIGZlYXR1cmVzIGludGVyc2VjdGlvbgoJICBDaGVja3MgdGhhdCBhIGNhcHMgd2l0aG91dCBmZWF0dXJlcyBkb2Vzbid0IGludGVyc2VjdCB3aXRoCgkgIG9uZSB0aGF0IGhhcyBmZWF0dXJlcwoKMjAxNC0wOC0wNyAxNDo1NDozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJICBleGFtcGxlczogY29udHJvbGxlcjogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMTQtMDgtMDYgMTM6NTg6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogdXNlIHVuY2hlY2tlZCBpbmxpbmUgdmFyaWFudCBmb3IgZ2V0X3JlbWFpbmluZyBpbiBtb3JlIHBsYWNlcwoJICBXZSd2ZSBhbHJlYWR5IGRvbmUgdGhlIGdfcmV0dXJuXypfaWZfZmFpbCAocmVhZGVyICE9IE5VTEwpCgkgIGRhbmNlIGluIHRob3NlIHBsYWNlcywgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2Fpbi4KCjIwMTQtMDgtMDYgMTQ6NDM6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEdob3N0cGFkcyBjYW4gYmUgcmVxdWVzdCBwYWRzIHRvbyBidXQgY2hlY2sgaWYgdGhlIHBhZCBoYXMgYSB0ZW1wbGF0ZQoJICBPdGhlcndpc2Ugd2UgZGVyZWZlcmVuY2UgTlVMTCBpbiBzb21lIGNhc2VzIGFuZCBjcmFzaC4KCjIwMTQtMDgtMDYgMTI6MzQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJICB0ZXN0czogQWRkIG1pc3NpbmcgdW5yZWZzIG9mIG9iamVjdHMgYWZ0ZXIgdXNlCgkgIFVucmVmZmluZyB0aGUgb2JqZWN0cyByZXR1cm5lZCBieSBnc3RfYmluX2dldF9ieV9uYW1lKCkgYW5kCgkgIGdzdF9waXBlbGluZV9nZXRfdXNlKCkgd2VyZSBtaXNzaW5nIGluIHNldmVyYWwgdGVzdHMsIHNvIGFkZCB0aGVzZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDM0NQoKMjAxNC0wOC0wNiAxMjo1NTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHVuaXRpdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxNC0wNy0xMyAxNTozMTowOCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBBZGQgdGVzdCB2ZXJpZnlpbmcgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTE5CgoyMDE0LTA3LTEzIDE1OjI4OjMyICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVucmVmL3JlbGVhc2UgcGFkcyBpbiBlcnJvciBjYXNlcyB3aGVuIGxpbmtpbmcgcGFkcwoJICBQcmV2aW91c2x5IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKCkgZm9yZ290IHRvIHVucmVmZXJlbmNlIG9yIHJlbGVhc2UKCSAgcmVxdWVzdCBwYWRzIGluIHNldmVyYWwgZXJyb3IgY2FzZXMuIEFsc28gY29tbWVudHMgd2VyZSBhZGRlZCBtZW50aW9uaW5nCgkgIHdoeSByZWxlYXNpbmcgaXMgbm90IG5lY2Vzc2FyeSBpbiBzb21lIHBsYWNlcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzExOQoKMjAxNC0wOC0wMSAxNzoyNzozOSAtMDMwMCAgVGlhZ28gQ2VzYXIgS2F0Y2lwaXMgPHRpYWdvLmthdGNpcGlzQGRpZ2l0cm8uY29tLmJyPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGFkZCBkb2NzIGZvciBnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZF9ieV9uYW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDE0MgoKMjAxNC0wNy0zMSAxODozMjowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICBNYWtlZmlsZTogQWRkIHVzYWdlIG9mIGJ1aWxkLWNoZWNrcyBzdGVwCgkgIEFsbG93cyBidWlsZGluZyBjaGVja3Mgd2l0aG91dCBydW5uaW5nIHRoZW0KCjIwMTQtMDctMzAgMTU6NDY6MjIgKzAzMDAgIE1vaGFtbWVkIFNhbWVlciA8bXNhbWVlckBmb29sYWIub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogQWRkIG1pc3NpbmcgZXJyb3IgY2hlY2tpbmcgdG8gZGVmYXVsdF9hbGxvY19idWZmZXIoKQoJICBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpIGNhbGxzIGdzdF9idWZmZXJfbmV3X2FsbG9jYXRlKCkgYnV0IGRvZXMgbm90IGNoZWNrIGZvcgoJICBmYWlsZWQgYWxsb2NhdGlvbi4KCSAgVGhpcyBwYXRjaCBtYWtlcyBkZWZhdWx0X2FsbG9jX2J1ZmZlcigpIHJldHVybiBhbiBlcnJvciAoR1NUX0ZMT1dfRVJST1IpIGlmCgkgIGJ1ZmZlciBhbGxvY2F0aW9uIGZhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTc0CgoyMDE0LTA3LTI5IDE0OjIxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAb3NnLnNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgdXNpbmcgaW5maW5pdGUgYnVmZmVycyBsaW1pdCBpZiBmaW5pdGUgaXMgcmVxdWVzdGVkCgkgIElmIHRoZSBjdXJyZW50IG1heC1idWZmZXJzIGxpbWl0IGl0IGluZmluaXRlIGFuZCBhIGZpbml0ZSB2YWx1ZSBpcwoJICByZXF1ZXN0ZWQsIHN3aXRjaCB0byB0aGUgTUFYIChyZXF1ZXN0ZWQsIGN1cnJlbnQtdmFsdWUpIHRvIHNldCBzb21lCgkgIGxpbWl0IGJ1dCBub3QgYmVsb3cgd2hhdCB3ZSBrbm93IHRoYXQgd2UndmUgbmVlZGVkIHNvIGZhci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzYzNwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODM3CgoyMDE0LTA3LTI0IDIyOjAyOjU4ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogVW5yZWYgcmVmZXJlbmNlIHRvIGVuY2xvc2luZyBiaW5zCgkgIFByZXZpb3VzbHkgYWxsIHJlZmVyZW5jZSB0byBlbmNsb3NpbmcgYmlucyBvZiBhbiBlbGVtZW50IHdlcmUgbGVha2VkCgkgIHdoZW4gZG9pbmcgZGVsYXlpbmcgc2V0dGluZyBhIHByb3BlcnR5LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNjk3CgoyMDE0LTA3LTI3IDAyOjM3OjA4ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogU3VwcG9ydCBTSUdJTlQgKEN0cmwrQykgb24gVzMyCgkgIFczMiBoYXMgbm8gU0lHSU5ULCBidXQgaXQgZG9lcyBoYXZlIFNldENvbnNvbGVDdHJsSGFuZGxlcigpLCB3aGljaCBzZXRzIHVwCgkgIGEgaGFuZGxlciBmb3IgQ3RybCtDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzODE0CgoyMDE0LTA3LTI3IDAzOjA2OjE2ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IFByZXZlbnQgZmFsc2UtbmVnYXRpdmUgZnJvbSBXQUtFX0VWRU5UKCkgb24gVzMyCgkgIFNldEV2ZW50KCkgc2VlbXMgdG8gbm90IGNhbGwgU2V0TGFzdEVycm9yKDApIGludGVybmFsbHksIHNvIGNoZWNraW5nIGxhc3QKCSAgZXJyb3IgYWZ0ZXIgY2FsbGluZyBTZXRFdmVudCgpIG1heSByZXR1cm4gdGhlIGVycm9yIGZyb20gYW4gZWFybGllciBXMzIgQVBJCgkgIGNhbGwuIEZpeCB0aGlzIGJ5IGNhbGxpbmcgU2V0bGFzdEVycm9yKDApIGV4cGxpY2l0bHkuCgkgIEN1cnJlbnRseSBXQUtFX0VWRU5UKCkgY29kZSBpcyBjcmFtcGVkIGludG8gYSBtYWNybyBhbmQgZG9lc24ndCBsb29rIHRvIGJlCgkgIGVudGlyZWx5IGNvcnJlY3QuIFBhcnRpY3VsYXJseSwgaXQgZG9lcyBub3QgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZgoJICBTZXRFdmVudCgpLCBvbmx5IHRoZSB0aHJlYWQtbG9jYWwgVzMyIGVycm9yIHZhbHVlLiBJdCBpcyBsaWtlbHkgdGhhdCBTZXRFdmVudCgpCgkgIGFjdHVhbGx5IGp1c3QgcmV0dXJucyBub24temVybyB2YWx1ZSwgYnV0IHRoZSBjb2RlIG1pc3Rha2VubHkgdGhpbmtzIHRoYXQgdGhlCgkgIGNhbGwgaGFzIGZhaWxlZCwgYmVjYXVzZSBHZXRMYXN0RXJyb3IoKSBzZWVtcyB0byBpbmRpY2F0ZSBzby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgwNQoKMjAxNC0wNy0yNiAxNDo0Mjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0OiBpbmNsdWRlIGF0b21pY3F1ZXVlLmggYWdhaW4gaW4gZ3N0LmgKCSAgSXQncyBhIHB1YmxpYyBoZWFkZXIgb2YgZ3N0cmVhbWVyIGNvcmUsIHNvICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CgkgIHNob3VsZCBtYWtlIHRoZSBBUEkgYXZhaWxhYmxlLgoKMjAxNC0wNy0yNSAxMTo0NTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogcmVtb3ZlIHByb3RvdHlwZSBmb3IgZnVuY3Rpb24gdGhhdCBubyBsb25nZXIgZXhpc3RzCgoyMDE0LTA3LTI0IDE0OjM5OjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAb3NnLnNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGVyZWFkZXI6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCSAgQWRkcyBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsganVzdCBsaWtlCgkgIEdzdEFkYXB0ZXIgaGFzIGEgX3BlZWsgYW5kIG5vbiBfcGVlayB2ZXJzaW9uCgkgIFVwZ3JhZGVkIHRlc3RzIHRvIGNoZWNrIHRoYXQgdGhlIHJldHVybmVkIHZhbHVlIGlzIGNvcnJlY3QgaW4gdGhlCgkgIF9wZWVrIHZlcnNpb24KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODM1NgoKMjAxNC0wNi0yNiAxNDowOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IHByZS1hbGxvY2F0ZSBidWZmZXIgYXJyYXkgaW4gb25lIGdvIHdpdGggdGhlIGJ1ZmZlciBsaXN0CgkgIFdlIGNhbiBub3cgY3JlYXRlIGFuZCBmcmVlIGEgYnVmZmVyIGxpc3Qgd2l0aCBvbmUgc2xpY2UgYWxsb2MvZnJlZQoJICBjYWxsIGluIG1vc3QgY2FzZXMsIGluc3RlYWQgb2Ygb25lIHNsaWNlIGFsbG9jL2ZyZWUgZm9yIHRoZSBsaXN0LAoJICBvbmUgc2xpY2UgYWxsb2MvZnJlZSBmb3IgdGhlIEdBcnJheSwgYW5kIG9uZSBtYWxsb2MvZnJlZSBmb3IgdGhlCgkgIEdBcnJheSBhcnJheS4gSW4gcHJhY3RpY2Ugd2Uga25vdyB0aGUgbWF4IHNpemUgb2Ygb3VyIGJ1ZmZlciBsaXN0CgkgIGZyb20gdGhlIHN0YXJ0LCBzbyBjYW4gYXZvaWQgcmVhbGxvY3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIyODQKCjIwMTQtMDctMjMgMjE6Mjc6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgcHJpdmF0ZTogYWxsb3cgaW50ZXJuYWwgYWNjZXNzIHRvIHRoZSBkZWJ1ZyBiYXNlLXRpbWUKCSAgTW92aW5nIHRoZSBleHRlcm4gdG8gdGhlIGhlYWQgbGV0cyB1cyBhY2Nlc3MgdGhpcyBmcm9tIG90aGVyIHBhcnRzIGFzIHdlbGwuIFRoaXMKCSAgaXMgbmVlZWQgaW4gdGhlIHRyYWNlciBicmFuY2guCgoyMDE0LTA3LTIzIDAwOjE1OjE3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgc2NyaXB0czogVXNlIGdpdCBwdWxsIC0tcmViYXNlCgkgIE5vIHBvaW50IGludHJvZHVjaW5nIHJlZHVuZGFudCBtZXJnZSBjb21taXRzLgoKMjAxNC0wNy0yMSAxMjo0MTowOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgUmV2ZXJ0ICJ0ZXN0czogdGFnbGlzdDogYWRkIGJhc2ljIHRlc3QgZm9yIHRhZ2xpc3RzIHNlcmlhbGl6YXRpb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODVkMjNkMTliN2RlNDA1NDFkNjNiMGJjNzZkOGI2NDZjMzIxYWYyNi4KCSAgVGhlcmUgd2FzIGFscmVhZHkgYSBnc3R0YWcuYyB0ZXN0cyBmaWxlLCB0aGlzIHRlc3QgaGFzIGJlZW4gbWVyZ2VkCgkgIGluIGl0IGluIHRoZSBwcmV2aW91cyBjb21taXQKCjIwMTQtMDctMjEgMTI6NDA6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogdGFnOiBhZGQgdGhlIGVtcHR5IHRhZ2xpc3Qgc2VyaWFsaXphdGlvbiB0ZXN0CgkgIEFkZHMgdGhlIHRlc3QgdG8gdGhlIGFwcHJvcHJpYXRlIGFuZCBhbHJlYWR5IGV4aXN0aW5nIGZpbGUuCgoyMDE0LTA3LTE0IDE4OjQ2OjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnbGlzdC5jOgoJICB0ZXN0czogdGFnbGlzdDogYWRkIGJhc2ljIHRlc3QgZm9yIHRhZ2xpc3RzIHNlcmlhbGl6YXRpb24KCSAgTWFrZSBzdXJlIGl0IHdvcmtzIHdpdGggZW1wdHkgdGFnbGlzdHMKCjIwMTQtMDctMTQgMTg6MjU6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogZ3N0c3RydWN0dXJlOiBzZXJpYWxpemF0aW9uIG9mIHRhZyBldmVudCBzdHJ1Y3R1cmUKCSAgQWRkcyBhIHRlc3QgdGhhdCBjaGVja3MgdGhhdCB0aGUgc2VyaWFsaXphdGlvbiBvZiBhIHRhZyBldmVudCBzdHJ1Y3R1cmUKCSAgd29ya3Mgd2l0aG91dCBwcm9ibGVtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTMxCgoyMDE0LTA3LTE0IDE4OjIzOjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIEdzdFRhZ0xpc3QgY29tcGFyZSBmdW5jdGlvbgoJICBXaGVuIHNlcmlhbGl6aW5nIEdzdFN0cnVjdHVyZXMgZnJvbSBldmVudHMgaW4gR0RQIGl0IHdpbGwgYWRkIGEgdGFnbGlzdAoJICBhcyBhIEdzdFN0cnVjdHVyZSBmaWVsZCwgaGF2aW5nIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGFsbG93cyBjb21wYXJpc29uIG9mCgkgIEdzdFN0cnVjdHVyZXMgdG8gY2hlY2sgaWYgdGhlIHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkIHZlcnNpb24gbWF0Y2hlcyB0aGUKCSAgb3JpZ2luYWwgb25lLCBhbW9uZyBvdGhlciBjYXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKMjAxNC0wNy0wOSAxNTo0ODoxMCArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggZm9yIHJhY3kgRU9TIGV2ZW50IGhhbmRsaW5nCgkgIFdoZW4gZW9zIGV2ZW50cyBhcmUgZm9yd2FyZGVkIHNpbXVsdGFuZW91bHkgZnJvbSB0d28gc2lua3BhZHMgb24KCSAgZnVubmVsLCBpdCBkb2Vzbm90IGZvcndhcmQgdGhlIGVvcyB0byBzb3VyY2VwYWQuIFRoZSByZWFzb24gaXMKCSAgc3RpY2t5IGV2ZW50cyBhcmUgc3RvcmVkIGFmdGVyIHRoZSBldmVudCBjYWxsYmFja3MgYXJlIHJldHVybmVkLgoJICBUaGVyZWZvcmUgd2hpbGUgb25lIGlzIGFib3V0IHRvIHN0b3JlIHRoZSBzdGlja3kgZXZlbnRzIG9uIHRoZSBpdHMKCSAgc2lua3BhZCwgb3RoZXIgc2lua3BhZCBzdGFydHMgY2hlY2tpbmcgZm9yIHRoZSBlb3MgZXZlbnRzIG9uIGFsbCBvdGhlcgoJICBzaW5rcGFkcyBhbmQgYXNzdW1lcyBlb3MgaXMgbm90IHByZXNlbnQgeWV0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyODUxCgoyMDE0LTA3LTE3IDE2OjA1OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBBZGQgdW5pdCB0ZXN0IGZvciByZXNldHRpbmcgb2YgdGhlIHN0YXJ0IHRpbWUKCSAgQWxzbyBjaGVjayBpZiB0aGlzIHByb3Blcmx5IGFmZmVjdHMgYmFzZXNpbmsgZWxlbWVudHMgdG8gbm90CgkgIHJlcG9ydCB0aGUgb2xkIHN0YXJ0IHRpbWUgYnV0IHRoZSByZWFsIGN1cnJlbnQgcG9zaXRpb24gd2hlbgoJICBzZXR0aW5nIHRvIFBBVVNFRCBhZ2Fpbi4KCjIwMTQtMDctMTUgMTg6MTk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFJlc2V0IHRoZSBzdGFydCB0aW1lIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8gUkVBRFkgdG9vCgoyMDE0LTA3LTE1IDE3OjE5OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBSZXNldCBzdGFydCB0aW1lIGluIFJFQURZLT5QQVVTRUQgYmVmb3JlIGNoYWluaW5nIHVwCgkgIE90aGVyd2lzZSBiaW4gd2lsbCBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBjaGlsZCBlbGVtZW50cyB3aXRob3V0CgkgIGRpc3RyaWJ1dGluZyB0aGUgbmV3IHN0YXJ0IHRpbWUuCgoyMDE0LTA2LTI4IDE3OjU4OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGVsZW1lbnRzOiBpbXByb3ZlIGJ1ZmZlciBmbGFncyB0byBzdHJpbmcgdXRpbGl0eSBmdW5jdGlvbgoJICBBdm9pZCByZWxvY2F0aW9ucyBhbmQgcmVmYWN0b3Igc28gdGhhdCB3ZSBkb24ndCBjYWxjdWxhdGUKCSAgdGhlIGZpeGVkIGFuZCBrbm93biBhdCBjb21waWxlIHRpbWUgbWF4aW11bSBzdHJpbmcgc2l6ZQoJICBldmVyeSB0aW1lLiBBbHNvIHNraXAgdGhlIG1pbmkgb2JqZWN0IGZsYWdzIHdoaWNoIHdlIGFyZQoJICBub3QgZ29pbmcgdG8gcHJpbnQgYW55d2F5LgoKMjAxNC0wNy0xOSAxODowNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS40LjAgPT09CgoyMDE0LTA3LTE5IDE2OjQ2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNC4wCgoyMDE0LTA3LTE5IDE2OjIxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNy0xOSAxMjoxNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RhLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDctMTcgMTU6NTM6NTMgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV0dXJuIEZMT1dfRkxVU0hJTkcgd2hlbiBwdXNoaW5nIGEgZnJhbWUgb24gYSBwYWQgdGhhdCBoYXMgYmVlbiBmbHVzaGVkCgkgIFdoZW4gZ29pbmcgdG8gUkVBRFksIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgYXJlIHN0aWxsIHB1c2luZyBhIGZyYW1lIGJ1dCB0aGF0CgkgIG91ciBzcmNwYWQgaGFzIGFscmVhZHkgYmVlbiBzZXQgdG8gZmx1c2hpbmcuIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgbm90CgkgIHBvc3QgYW55IGVycm9yIG9uIHRoZSBidXMgYnV0IGluc3RlYWQgY2xlYW5seSByZXR1cm4gRkxPV19GTFVTSElORy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzMyMAoKMjAxNC0wNy0xNyAwNzowNzozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IFByb3BhZ2F0ZSBpbnB1dCBidWZmZXIgUFRTIGFuZCBEVFMKCSAgVGhlIGluaXRpYWwgYnVmZmVycyAodGhhdCB3ZXJlIHVzZWQgZm9yIHRpbWVzdGFtcGluZykgbWlnaHQgaGF2ZSBQVFMKCSAgYW5kIERUUyBzZXQuIEluIG9yZGVyIHRvIGZvcndhcmQgdGhvc2UgcHJvcGVybHksIGdldCB0aGUgaW5pdGlhbAoJICBQVFMvRFRTIGZyb20gdGhlIGFkYXB0ZXIgYW5kIHNldCB0aGVtIG9uIHRoZSByZWNvbnN0cnVjdGVkIG91dHB1dAoJICBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMyOTEKCjIwMTQtMDctMTIgMTc6MDE6MjMgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFVucmVmIHBhZCB0ZW1wbGF0ZSBhZnRlciB1c2UKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEyMQoKMjAxNC0wNy0xNCAxODoxMDo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCB0YWdsaXN0IGd0eXBlIHRvIHVzZSBpdCBpbiBnc3R2YWx1ZQoJICBPdGhlcndpc2UgaXQgd2lsbCBoYXZlIGEgMCB2YWx1ZSBhbmQgR3N0VGFnTGlzdCB3b24ndCBiZSBmb3VuZAoJICBmb3IgR3N0VmFsdWUgZnVuY3Rpb25zIChzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKPT09IHJlbGVhc2UgMS4zLjkxID09PQoKMjAxNC0wNy0xMSAxMDo0NjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuOTEKCjIwMTQtMDctMTEgMTA6NDE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA3LTExIDA4OjUxOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vZGEucG86CgkqIHBvL3ZpLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNy0wNSAxODoyOToyOSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkgIGRvY3M6IEZpeCBkb2N1bWVudGF0aW9uIHR5cG9zIGFuZCBpbmNvbnNpc3RlbmNpZXMKCSAgKiBHc3RHbG9iYWxEZXZpY2VNb25pdG9yIHdhcyByZW5hbWVkIHRvIEdzdERldmljZU1vbml0b3IKCSAgKiBFeHBhbmQgR1NUX01FU1NBR0VfREVWSUNFIHRvIHRoZSBmdWxsIGVudW0gdmFsdWUgbmFtZXMKCSAgKiBDb3JyZWN0IHRoZSBpbmNvcnJlY3QgcmVmZXJlbmNlcyB0byB0aGUgR3N0RGV2aWNlUHJvdmlkZXIgaW50ZXJmYWNlcwoJICAqIERlc2NyaWJlIGNhcHMgYXJndW1lbnRzIGZvciBnc3RjaGVjayBpbnRlcmZhY2UKCSAgKiBBZGQgbWlzc2luZyBkb2NzIGZvciBHc3ROZXRBZGRyZXNzTWV0YSBhbmQgaXRzIGFkZCBmdW5jdGlvbgoJICAqIEFkZCBkb2NzIGZvciB0b2MgaGVscGVyIG1hY3JvcwoJICAqIEF2b2lkIHJlZmVyaW5nIHRvIEdzdFZhbHVlTGlzdCB0eXBlIGFzIGRvbmUgZWxzZXdoZXJlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3ODYKCjIwMTQtMDctMDUgMTc6MTM6MjEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IENsZWFudXAgaW50ZXJmYWNlIHJlZmVyZW5jZXMgaW4gZG9jcwoJICAqIERlbGV0ZSByZWZlcmVuY2VzIHRvIHJlbW92ZWQgaW50ZXJmYWNlcwoJICAqIEFkZCBtaXNzaW5nIGRvY3VtZW50YXRpb24gc2VjdGlvbnMKCSAgKiBGaXggZHVwbGljYXRlIGludGVyZmFjZSByZWZlcmVuY2VzIGZvciBHc3REZXZpY2UKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc4NgoKMjAxNC0wNy0wOCAxMToxNzo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IFRoZXJlIGlzIG5vIGRlY29kZWJpbjIgYW55bW9yZSwgZG9uJ3QgcHJldGVuZCBvdGhlcndpc2UKCjIwMTQtMDctMDcgMTY6MTQ6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogZml4IGVycm9yIHNldHRpbmcgd2hlbiB1cmkgaXMgaW52YWxpZAoJICBFbGVtZW50cyBzaG91bGQgYWx3YXlzIHNldCB0aGUgR0Vycm9yCgoyMDE0LTA3LTA2IDEyOjEzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgbGliczogZ3N0Y2hlY2s6IGNoZWNrIHRoYXQgbXV0ZXggaXMgbG9ja2VkIGJlZm9yZSBnX2NvbmRfd2FpdCooKSBpcyBjYWxsZWQKCSAgU2FuaXR5IGNoZWNrIHRvIGNhdGNoIHByb2JsZW1zIGluIHVuaXQgdGVzdC4KCjIwMTQtMDctMDYgMTI6MTI6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBsaWJzOiBnc3RjaGVjazogaW5pdCBhbmQgY2xlYXIgZ2xvYmFsIG11dGV4IGFuZCBjb25kIHZhcmlhYmxlcwoKMjAxNC0wNy0wNiAxMjowOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIHRlc3RzOiBmaXggbG9ja2luZyBpbiBnc3Rwb2xsIHVuaXQgdGVzdAoJICBUaGUgbXV0ZXggbmVlZHMgdG8gYmUgbG9ja2VkIHdoZW4gZ19jb25kX3dhaXQqKCkgaXMKCSAgY2FsbGVkLgoKMjAxNC0wNy0wNSAxNjoyNDoxOCArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB2aWRlbyBhbmQgYmFzZSBsaWJyYXJ5IHBhdGhzIGZyb20gLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzcwCgoyMDE0LTA3LTA0IDE5OjQwOjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHN1cHByZXNzIEdMaWIgd2FybmluZ3Mgd2hlbiBnc3QtaW5zcGVjdGluZyBkZXByZWNhdGVkIHByb3BlcnRpZXMKCSAgR0xpYiBpbiBnaXQgd2lsbCBzcGV3IGEgZ193YXJuaW5nKCkgd2hlbiBhIHByb3BlcnR5IG1hcmtlZCBhcwoJICBkZXByZWNhdGVkIHZpYSBwYXJhbSBzcGVjIGZsYWdzIGlzIGFjY2Vzc2VkLiBTdXBwcmVzcyB0aGlzIGJ5CgkgIHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAxNC0wNy0wMyAxMDoxMTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IFdvcmsgYXJvdW5kIGctaS9weWdvYmplY3QvZ2pzIGJ1ZyB3aXRoIH4wIGluIGVudW1zCgkgIEdTVF9NRVNTQUdFX0FOWSB3YXMgY29uc2lkZXJlZCBhIGxvbmcgYnkgcHlnb2JqZWN0IGFuZCBnanMsIGFuZCB0aHVzCgkgIGNvdWxkbid0IGJlIHVzZWQgaW4gZ3N0X2J1c19wb2xsKCkgYW5kIHNpbWlsYXIgQVBJcyBhcyB0aGV5IGV4cGVjdCBhbgoJICBpbnQtdHlwZWQgZW51bS4KCSAgSnVzdCB1c2UgMHhmZmZmZmZmZiBpbnN0ZWFkIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI2MzMKCjIwMTQtMDctMDIgMDg6NDE6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogZG9uJ3QgdXNlIHBvc3QtR0xpYiAyLjMyIEFQSSBpbiBidWZmZXJsaXN0IHRlc3QKCSAgZ19wdHJfYXJyYXlfaW5zZXJ0KCkgaXMgR0xpYiA+PSAyLjQwCgoyMDE0LTA3LTAxIDEyOjIyOjU2ICswMjAwICBHw7ZyYW4gSsO2bnNzb24gPGdvcmFuam5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgdW5sb2NrIHdoaWxlIGl0ZXJhdGluZyBvdmVyIGFsbCBzdGlja3kgZXZlbnRzIGZvciByZW1vdmFsCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBlbmQgdXAgZ2V0dGluZyB0aGUgZXZlbnQgcmVtb3ZlZCBmcm9tIGVsc2V3aGVyZQoJICBhdCB0aGUgc2FtZSB0aW1lIHdoaWxlIHdlJ3JlIHVubG9ja2VkIGZvciBnX29iamVjdF9ub3RpZnkoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjU1NgoKMjAxNC0wNy0wMSAxOToxNzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IFByb3h5IHRoZSBhY2NlcHQtY2FwcyBxdWVyeQoJICBXZSBhbHdheXMgd29yayBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZG9pbmcKCSAgc29tZXRoaW5nIG1vcmUgY2xldmVyIGluIGJhc2V0cmFuc2Zvcm0uIEFsc28gdGhlIGJhc2V0cmFuc2Zvcm0KCSAgY29kZSBsZWFkcyB0byBwcm9ibGVtcyB3aXRoIGluY29tcGxldGUgY2FwcyBhbmQgZG93bnN0cmVhbQoJICBlbGVtZW50cyB0aGF0IHVzZSBHU1RfUEFEX0ZMQUdfQUNDRVBUX0lOVEVSU0VDVC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjU1OQoKMjAxNC0wNy0wMSAxMToyMTo1MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZXNldCBRb1Mgb24gc2VnbWVudCBldmVudAoJICBUaGlzIGF2b2lkcyBzcHVyaW91cyB3YXJuaW5ncyBhYm91dCBzbG93IG1hY2hpbmUgd2hlbiB1cHN0cmVhbQoJICBzZW5kcyBuZXcgc2VnbWVudHMgd2l0aG91dCBmbHVzaGluZy4KCjIwMTQtMDYtMzAgMjM6Mzk6MTggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGludHJvc3BlY3Rpb246IEFzc29ydGVkIG1pbm9yIGludHJvc3BlY3Rpb24gYW5kIGRvY3VtZW50YXRpb24gZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzNAoKMjAxNC0wNi0zMCAwODo1OToxOCArMDAwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBTdG9wIHVzaW5nIGdfY2xlYXJfcG9pbnRlcigpCgkgIFdlIGRvbnQndCB3YW50IHRvIGRlcGVuZCBvbiBHTGliIDIuMzQgZm9yIG5vdy4KCjIwMTQtMDYtMjkgMTk6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3NwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogSW5pdGlhbGl6ZSBtZW1vcnkgaW4gdW5pdCB0ZXN0IHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkKCSAgV2Ugd2VyZSB3cml0aW5nIHVuaXRpYWxpemVkIHN0YWNrIG1lbW9yeSB0byB0aGUgZmlsZS4KCjIwMTQtMDYtMjggMDk6MzU6MjEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGZpeCBsZWFrIGFzIGdzdF9idWZmZXJfcmVwbGFjZSBhZGRzIGl0cyBvd24gcmVmCgkgIFNvIHVucmVmIHRoZSBidWZmZXIgYWZ0ZXIgdGhhdCBvdGhlcndpc2UgaXQgbGVha3MKCj09PSByZWxlYXNlIDEuMy45MCA9PT0KCjIwMTQtMDYtMjggMTA6NDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjkwCgoyMDE0LTA2LTI4IDEwOjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNi0yNyAxMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkZXZpY2UuYzoKCSAgZGV2aWNlbW9uaXRvcjogZG9uJ3QgZmFpbCB3aGVuIHN0YXJ0ZWQgd2l0aG91dCBhbnkgZmlsdGVycwoJICBKdXN0IHNob3cgYWxsIGRldmljZXMgdGhlbi4KCjIwMTQtMDYtMjcgMTA6NDQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5LmM6CgkgIGRldmljZXByb3ZpZGVyZmFjdG9yeTogaGFuZGxlIE5VTEwgY2xhc3NlcyBhcmd1bWVudCBhbmQgbWF0Y2ggYW55CgoyMDE0LTA2LTI2IDIxOjAwOjQwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHVuaXQgdGVzdHMKCjIwMTQtMDYtMjYgMTc6MjI6MjUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkZXZpY2Vtb25pdG9yOiBJbXByb3ZlIGRvY3VtZW50YXRpb24KCjIwMTQtMDYtMjYgMTc6MTM6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBtdWx0aXBsZSBmaWx0ZXJzCgkgIEVhY2ggZmlsdGVyIHdpbGwgaW5jbHVkZSBhIEdzdENhcHMgYW5kIGEgc2V0IG9mIGNsYXNzZXMgdG8gbWF0Y2gKCjIwMTQtMDYtMjYgMTY6MzE6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZTogQWRkIHByZS1jb25kaXRpb25zCgoyMDE0LTA2LTI2IDE1OjA4OjQ2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3REZXZpY2VNb25pdG9yOiBSZW5hbWUgZnJvbSBHc3RHbG9iYWxEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE0OjI4OjA5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIERldmljZVByb3ZpZGVyOiBSZW5hbWUgZnJvbSBEZXZpY2VNb25pdG9yCgoyMDE0LTA2LTI2IDE5OjMxOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZGF0YXF1ZXVlOiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8KCSAgdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAzCgoyMDE0LTA2LTI2IDE5OjMwOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJICBxdWV1ZWFycmF5OiBIaWRlIGZyb20gYmluZGluZ3MKCSAgT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgdGhlaXIgb3duIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzUwCgoyMDE0LTA1LTI4IDEwOjE0OjQ1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zCgkgIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkgY2FuIHRha2UgTlVMTCBtaW5pLW9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4NzMKCjIwMTQtMDYtMjYgMTk6MDI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBBcHBsaWNhdGlvbiBhbmQgZWxlbWVudCBtZXNzYWdlcyBzaG91bGQgbm90IGhhdmUgTlVMTCBzdHJ1Y3R1cmVzCgkgIEl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHRoZW0uCgoyMDE0LTA2LTExIDE2OjE5OjAxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgc29tZSBtaXNzaW5nIGFsbG93LW5vbmUgYW5ub3RhdGlvbnMgdG8gaW4gcGFyYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTY6MDY6MTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBudWxsYWJpbGl0eSBhbm5vdGF0aW9ucyB0byBvdXQgYW5kIGlub3V0IHBhcmFtcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE1OjIxOjM0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyB0byByZXR1cm4gdmFsdWVzCgkgIFN1cHBvcnQgZm9yIChudWxsYWJsZSkgd2FzIGFkZGVkIHRvIEctSSBhdCB0aGUgc2FtZSB0aW1lIGFzIG51bGxhYmxlCgkgIHJldHVybiB2YWx1ZXMuICBQcmV2aW91cyB2ZXJzaW9ucyBvZiBHLUkgd2lsbCBub3QgbWFyayByZXR1cm4gdmFsdWVzIGFzCgkgIG51bGxhYmxlLCBldmVuIHdoZW4gYW4gKGFsbG93LW5vbmUpIGFubm90YXRpb24gaXMgcHJlc2VudCwgc28gaXQgaXMKCSAgbm90IG5lY2Vzc2FyeSB0byBhZGQgKGFsbG93LW5vbmUpIGFubm90YXRpb25zIGZvciBjb21wYXRpYmlsaXR5IHdpdGgKCSAgb2xkZXIgdmVyc2lvbnMgb2YgRy1JLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTU3CgoyMDE0LTA2LTExIDE3OjE1OjM5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgYmFzZTogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBmaXhlcyBhbmQgYWRkaXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDIKCjIwMTQtMDYtMTEgMTc6MTI6MjAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgYmFzZTogYWRkIChudWxsYWJsZSkgYW5ub3RhdGlvbnMgdG8gcmV0dXJuIHZhbHVlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQyCgoyMDE0LTA2LTI2IDE0OjA4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIGJ1ZmZlciBsaXN0IHRlc3QgY2FzZQoKMjAxNC0wNi0yNiAxMzoyNDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBwb3J0IGFuZCByZS1lbmFibGUgYnVmZmVyIGxpc3QgdGVzdHMKCSAgQW5kIHJlbW92ZSBzb21lIHdoaWNoIGRvbid0IGFwcGx5IGFueSBtb3JlLgoKMjAxNC0wNi0yNiAxMTo1ODowNCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBlbmhhbmNlIHRoZSBnc3RjYXBzIHRlc3RfZmVhdHVyZXMgdG8gYWxzbyB0ZXN0IGdzdF9jYXBzX3NldF9mZWF0dXJlcygpCgkgIENvbXBsaW1lbnRzIG15IHByZXZpb3VzIHBhdGNoIGZvciBnc3RfY2Fwc19zZXRfZmVhdHVyZXMsIHdoaWNoIHdvdWxkCgkgIHByZXZpb3VzbHkgYXNzZXJ0IGFuZCBsZWFrIHRoZSBvbGQgR3N0Q2Fwc0ZlYXR1cmVzIGlmIHRoZSBjYXBzIGFscmVhZHkKCSAgaGFkIGEgR3N0Q2Fwc0ZlYXR1cmVzIGFuZCB5b3Ugd2VyZSB0cnlpbmcgdG8gcmVwbGFjZSBpdCB3aXRoIGEgbmV3IG9uZS4KCjIwMTQtMDYtMjYgMTE6MTY6MzQgKzAzMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1bnNldCB0aGUgcGFyZW50IHJlZmNvdW50IG9mIHRoZSBvbGQgZmVhdHVyZXMgYmVmb3JlIGZyZWVpbmcgdGhlbSBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKQoJICBPdGhlcndpc2UgZ3N0X2NhcHNfZmVhdHVyZXNfZnJlZSgpIGFzc2VydHMgYW5kIHRoZSBmZWF0dXJlcyBzdHJ1Y3R1cmUgaXMgbGVha2VkCgoyMDE0LTA2LTE2IDE5OjMwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgcmV0dXJuaW5nIF9PSyBmb3IgX05PVF9MSU5LRUQKCSAgV2hlbiB0aGUgcGFyc2VyIHJlY2VpdmVzIG5vbi1hbGlnbmVkIHBhY2tldHMgaXQgY2FuIHB1c2ggYSBidWZmZXIKCSAgYW5kIGdldCBhIG5vdC1saW5rZWQgcmV0dXJuIHdoaWxlIHN0aWxsIGxlYXZpbmcgc29tZSBkYXRhIHN0aWxsIHRvCgkgIGJlIHBhcnNlZC4gVGhpcyByZW1haW5pbmcgZGF0YSB3aWxsIG5vdCBmb3JtIGEgY29tcGxldGUgZnJhbWUgYW5kCgkgIHRoZSBzdWJjbGFzcyBsaWtlbHkgcmV0dXJucyBfT0sgYW5kIGJhc2VwYXJzZSB3b3VsZCB0YWtlIHRoYXQKCSAgYXMgdGhlIHJldHVybiwgd2hpbGUgaXQgdGhlIGVsZW1lbnQgaXMgYWN0dWFsbHkgbm90LWxpbmtlZC4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHN0b3JpbmcgdGhlIGxhc3QgZmxvdy1yZXR1cm4gZnJvbSBhIHB1c2gKCSAgYW5kIHVzaW5nIHRoYXQgaWYgYSBwYXJzaW5nIG9wZXJhdGlvbiBkb2Vzbid0IHJlc3VsdCBpbiBkYXRhIGJlaW5nCgkgIGZsdXNoZWQgb3Igc2tpcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTQ3NAoKMjAxNC0wNi0yNSAxMTo0MDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBlbGVtZW50czogZml4IGNvcHlyaWdodCBhbmQgcmVtb3ZlIGd0ay1kb2MgY2h1bmsKCSAgVHJpdmlhbCBhcyBpdCBtYXkgYmUsIHRoaXMgY29kZSB3YXMgbW9zdGx5IGNvcGllZCBmcm9tCgkgIHNvbWV3aGVyZSBlbHNlLiBUaGUgZ3RrLWRvYyBjaHVuayBpcyBub3QgbmVlZGVkLCBzaW5jZQoJICBpdCdzIG5vdCBwdWJsaWMgQVBJLgoKMjAxNC0wNi0wMiAyMjowNzo1MiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBJZ25vcmUgc2VlayBlcnJvciBvbiBub24tc2Vla2FibGUgZmlsZXMKCSAgVGhpcyBtYWtlIGl0IHdvcmtzIHdpdGggRklGT3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzExNzYKCjIwMTQtMDYtMjIgMTk6MzY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4zID09PQoKMjAxNC0wNi0yMiAxODowNzo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjMuMwoKMjAxNC0wNi0yMiAxNzoxNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDYtMjIgMTQ6MjM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL3NyLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDYtMjIgMTI6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2NhcHNfaXNfYW55KCkgYW5kIF9pc19lbXB0eSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzA0CgoyMDE0LTA2LTIyIDEyOjUwOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZ3N0X2NhcHNfaXNfYW55KCkgc2hvdWxkIHJldHVybiBUUlVFIG9yIEZBTFNFCgkgIE5vdCBzb21lIGZsYWcgdmFsdWUgaW5zdGVhZCBvZiBUUlVFLiBGaXhlcyBjb2RlIGxpa2UKCSAgZ3N0X2NhcHNfaXNfYW55KCkgPT0gVFJVRS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzE3MDQKCjIwMTQtMDYtMDEgMTY6NTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRldmljZTogcmVuYW1lICJrbGFzcyIgYW5kIGdldF9rbGFzcygpIHRvICJkZXZpY2UtY2xhc3MiIGFuZCBfZ2V0X2RldmljZV9jbGFzcygpCgkgIFRoZXJlJ3Mgc29tZSBwcmVjZWRlbnQgaW4gR3N0RWxlbWVudEZhY3RvcnksIGJ1dCBhCgkgICJrbGFzcyIgcHJvcGVydHkganVzdCBzZWVtcyB3ZWlyZC4KCjIwMTQtMDYtMjAgMTg6MzQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGJlbmNobWFya3M6IGNhcHNuZWdvOiBhZGQgLS1sb29wcyBjb21tYW5kIGxpbmUgb3B0aW9uCgkgIEFuZCBkZWZhdWx0IHRvIDUwIGxvb3BzLgoKMjAxNC0wNi0yMCAxNzoxNDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBjYXBzbmVnbzogdXNlIEdPcHRpb25Db250ZXh0IGZvciBvcHRpb24gcGFyc2luZwoKMjAxNC0wNi0xOSAxMjoxMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIGdzdHZhbHVlIHRlc3RzCgkgIENhbGxpbmcgR1NUX1ZBTFVFX0hPTERTXyooJnYpIG5vdyByZXN1bHRzIGluIGEgY29tcGlsZXIKCSAgd2FybmluZyBhYm91dCB2YWx1ZSE9TlVMTCBhbHdheXMgYmVpbmcgZmFsc2UsIHNvIGNoZWNrCgkgIHR5cGUgZGlyZWN0bHkgaW4gdGhvc2UgY2FzZXMuCgoyMDE0LTA2LTE3IDIyOjQ1OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogc2ltcGxpZnkgR1NUX1ZBTFVFX0hPTERTIGZvciBvdXIgYm94ZWQgYW5kIGZ1bmRhbWVudGFsIHR5cGVzCgkgIEJveGVkIHR5cGVzIGNhbid0IGJlIGRlcml2ZWQgZnJvbSwgYW5kIHdlIGRvbid0IHN1cHBvcnQKCSAgZGVyaXZpbmcgZnJvbSBvdXIgc3BlY2lhbCBmdW5kYW1lbnRhbCB0eXBlcyAodGhlIGNvZGUKCSAgY2hlY2tzIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBtb3N0IHBsYWNlcy4KCjIwMTQtMDYtMjAgMTY6NTU6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIEdzdERldmljZTogRG9jdW1lbnQgR3N0RGV2aWNlIGFuZCByZWxhdGVkIGNsYXNzZXMKCjIwMTQtMDYtMTYgMTM6NDc6NTUgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YS5wYW5kYUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBGaXggZnVubmVsIEVPUyBoYW5kbGluZyBhbmQgd3JvbmcgdW5pdHRlc3QKCSAgV2hlbiBubyBkYXRhIGlzIGNvbWluZyBmcm9tIHNpbmtwYWRzIGFuZCBlb3MgZXZlbnRzCgkgIGFycml2ZWQgYXQgb25lIG9mIHRoZSBzaW5rcGFkLCBmdW5uZWwgZm9yd2FyZHMgdGhlIEVPUwoJICBldmVudCB0byBkb3duc3RyZWFtLiBJdCBmb3J3YXJkcyB0aGUgRU9TIGJlY2F1c2UgbGFzdHNpbmsgcGFkCgkgIGlzIE5VTEwuIEFsc28gdGhlIHVuaXQgdGVzdGNhc2Ugb2YgdGhlIGZ1bm5lbCBpcyBub3QgY2hlY2tpbmcKCSAgdGhlIGNvcnJlY3QgYmVoYXZpb3IgYXMgaXQgc2hvdWxkLiBUaGUgdW5pdCB0ZXN0IGNhc2Ugc2hvdWxkCgkgIGZhaWwgaWYgb25lIG9mIHRoZSBzaW5rIHBhZCBoYXMgYWxyZWFkeSBFT1MgcHJlc2VudCBvbiBpdCBhbmQKCSAgd2UgYXJlIHRyeWluZyB0byBwdXNoIG9uZSBtb3JlIEVPUy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTcxNgoKMjAxNC0wNi0xOSAwODowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogb3B0aW1pc2UgY2hlY2tzIGZvciBsaXN0cwoJICBPdXIgZnVuZGFtZW50YWwgdHlwZXMgYXJlIG5vbi1kZXJpdmFibGUsIHNvIHdlIGNhbgoJICBqdXN0IGNoZWNrIGZvciBlcXVhbGl0eS4gQWxzbyBhdm9pZCBkb2luZyB0aGUgc2FtZQoJICBjaGVjayBtdWx0aXBsZSB0aW1lcyBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuCgoyMDE0LTA2LTE5IDA4OjA2OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiB1c2UgZ19hc3NlcnQoKSBpbiBpbnRlcm5hbCBmdW5jdGlvbiBmb3IgYWxyZWFkeS1jaGVja2VkIHRoaW5ncwoJICBTbyB0aGVzZSBnZXQgY29tcGlsZWQgb3V0IGZvciByZWxlYXNlcy4KCjIwMTQtMDYtMTkgMDg6MDU6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfY2FuX2NvbXBhcmVfdW5jaGVja2VkKCkKCjIwMTQtMDYtMTkgMDg6MDM6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBpbnRlcm5hbCBfbGlzdF9jb25jYXQoKSB0aGF0IHRha2VzIG93bmVyc2hpcCBvZiBpbnB1dCB2YWx1ZXMKCSAgQXZvaWRzIHVubmVjZXNzYXJ5IGNvcGllcy4KCjIwMTQtMDYtMTggMTk6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgdmFsdWUgdHlwZSBjaGVja3MgaW4gZ2V0dGVycwoJICBKdXN0IGNoZWNrIGZvciBHVHlwZSBlcXVhbGl0eSBpbiBjb21tb24gY2FzZXMuCgoyMDE0LTA2LTE5IDA5OjI5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgYSBGSVhNRSAyLjAgZm9yIGEgZnJhY3Rpb24gcmFuZ2VzIG9wdGltaXphdGlvbgoJICBDdXJyZW50bHkgd2UgbGVhayB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlbSBhcyB0d28gR1ZhbHVlcyB0aGF0CgkgIGNvbnRhaW4gYSBmcmFjdGlvbi4gV2l0aG91dCB0aGlzIHdlIGNvdWxkIHN0b3JlIGZyYWN0aW9uIHJhbmdlcyBhcwoJICBkYXRhWzBdID0gKG1pbl9uIDw8IDMyKSB8IChtaW5fZCkKCSAgZGF0YVsxXSA9IChtYXhfbiA8PCAzMikgfCAobWF4X2QpCgkgIGFuZCB3b3VsZG4ndCByZXF1aXJlIGFuIGFkZGl0aW9uYWwgYWxsb2NhdGlvbiBwZXIgcmFuZ2UuCgoyMDE0LTA2LTE5IDA5OjIzOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogTWFrZSBzdXJlIHRvIGNhc3QgaW50IHJhbmdlIHZhbHVlcyB0byBndWludHMgYmVmb3JlIHN0b3JpbmcgdGhlbQoJICBPdGhlcndpc2UgbmVnYXRpdmUgdmFsdWVzIHdpbGwgc2V0cyBhbGwgb2YgdGhlIDY0IGJpdHMgZHVlIHRvIHR3bydzCgkgIGNvbXBsZW1lbnQncyBkZWZpbml0aW9uIG9mIG5lZ2F0aXZlIHZhbHVlcy4KCSAgQWxzbyBhZGQgYSB0ZXN0IGZvciBuZWdhdGl2ZSBpbnQgcmFuZ2VzLgoKMjAxNC0wNi0xOSAwNzo1NzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMKCjIwMTQtMDYtMTkgMDk6MDU6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFN0b3JlIGludGVnZXIgcmFuZ2VzIGRpcmVjdGx5IGluIGEgR1ZhbHVlIHdpdGhvdXQgYWRkaXRpb25hbCBhbGxvY2F0aW9uCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBzYXZlIHNvbWUgYWxsb2NhdGlvbnMuIE5leHQgc3RlcCB0byBkbyB0aGlzCgkgIHdpdGggZnJhY3Rpb24gcmFuZ2VzIHRvby4KCjIwMTQtMDYtMTkgMDg6NDM6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGdzdF9wcml2YXRlOiBGaXggZHVwbGljYXRlIGRlZmluaXRpb24KCjIwMTQtMDYtMTkgMDg6MDU6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgZ3N0OiBTdG9yZSBtb3JlIGJhc2ljIHR5cGUgR1R5cGVzIGluIHZhcmlhYmxlcwoJICBNaWNybyBvcHRpbWl6YXRpb24gdG8gY2hhbmdlIGEgZnVuY3Rpb24gY2FsbCB0byBhIHZhcmlhYmxlIGFjY2VzcwoJICBmb3IgYWxsIG91ciBiYXNpYyB0eXBlcy4KCjIwMTQtMDYtMTkgMDg6MDQ6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBTdG9yZSBvdXIgZnVuZGFtZW50YWwgdHlwZSBHVHlwZXMgaW4gdmFyaWFibGVzCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBjaGFuZ2UgYSBmdW5jdGlvbiBjYWxsIHRvIGEgdmFyaWFibGUgYWNjZXNzCgkgIGZvciBhbGwgb3VyIGJhc2ljIHR5cGVzLgoKMjAxNC0wNi0xNyAwNzozMTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFNwZWVkIHVwIGdzdF92YWx1ZV9pbnRlcnNlY3QvX3N1YnRyYWN0CgkgIEJvdGggZ3N0X3ZhbHVlX2ludGVyc2VjdCBhbmQgZ3N0X3ZhbHVlX3N1YnRyYWN0IHdpbGwgY2FsbAoJICBnc3RfdmFsdWVfY29tcGFyZSBpZiBvbmUgb2YgdGhlaXIgYXJndW1lbnRzIGlzbid0IGEgbGlzdC4KCSAgZ3N0X3ZhbHVlX2NvbXBhcmUgd2lsbCB0aGVuIHJlLWRvIGEgY2hlY2sgdG8gc2VlIGlmIG9uZSBvZgoJICB0aGUgYXJndW1lbnRzIGlzIGEgbGlzdCAoZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgY29tcGFyaW5nIGEgdW5pdGFyeQoJICB2YWx1ZSB3aXRoIGEgbGlzdCBvZiBsZW5ndGggMSkuCgkgIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIHZhcmlvdXMgR19WQUxVRV9IT0xEUyByZXByZXNlbnQgYW4gZXhwZW5zaXZlCgkgIGFtb3VudCBvZiBjYWxsaW5nIGdzdF92YWx1ZV9jb21wYXJlIChhbG1vc3QgaGFsZiBvZiBpdCkgdG8gc2VlIGlmCgkgIHRoZSBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGxpc3QuIFRoZXNlIGNoZWNrcyBjYW4gYmUgZG9uZSB3aXRob3V0CgkgIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBhcmd1bWVudHMgYXJlbid0IGxpc3RzLgoJICAqIENyZWF0ZSBhIG5ldyAibm9saXN0IiBnc3RfdmFsdWVfY29tcGFyZSB3aGljaCBhdm9pZHMgdGhhdCBzcGVjaWFsCgkgIGNhc2UgY29tcGFyaXNpb24KCSAgQmVuY2htYXJrczoKCSAgdmFsZ3JpbmQvY2FsbGdyaW5kOiBhdmVyYWdlIHNwZWVkdXAgaW4gaW5zdHJ1Y3Rpb24gY2FsbHMgZm9yCgkgIGdzdF92YWx1ZV9pbnRlcnNlY3QgYW5kIGdzdF92YWx1ZV9zdWJ0cmFjdCBpcyBhcm91bmQgNTYlIChNYWtlcyA2MyUKCSAgb2YgdGhlIGNhbGxzIGl0IHVzZWQgdG8gdGFrZSBwcmV2aW91c2x5KQoJICB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvOiBXaXRoIGRlZmF1bHQgc2V0dGluZ3MgKGRlcHRoIDQsIGNoaWxkcmVuIDMKCSAgNjA3IGVsZW1lbnRzKSwgdGltZSB0YWtlbiBmb3IgdHJhbnNpdGlvbiBmcm9tIFJFQURZIHRvIFBBVVNFRDoKCSAgQmVmb3JlIDogMDAuMzkxNTE5MTUzCgkgIEFmdGVyICA6IDAwLjIyMDM5NzQ5MgoJICA1NiUgb2YgdGhlIHRpbWUgcHJldmlvdXNseSB1c2VkLCArNzclIHNwZWVkdXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTc1NgoKMjAxNC0wNi0xNyAxNDozOTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIHRoZSBidWZmZXJsaXN0IHRlc3QKCSAgQnVmZmVycyBubyBsb25nZXIgY2FycnkgY2FwcywgYW5kIGJ1ZmZlcmxpc3RzIGRvbid0IGhhdmUKCSAgZ3JvdXBzIHdoZXJlIGJ1ZmZlcnMgbWF5IG5lZWQgdG8gYmUgbWVyZ2VkIGludG8gb25lIGFueSBtb3JlLgoKMjAxNC0wNi0xNiAyMDozMDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgZ3N0X2J1ZmZlcl9saXN0X3JlbW92ZSgpCgoyMDE0LTA2LTE2IDIwOjI5OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGJ1ZmZlciBsZWFrIGluIF9yZW1vdmUoKQoKMjAxNC0wNi0xNiAwOToxODo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGctaSB0cmFuc2ZlciBhbm5vdGF0aW9ucwoKMjAxNC0wNi0xNiAwODo0MTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IEZpeGVkIEdCb3hlZENvcHlGdW5jCgkgIEknbGwganVzdCBxdW90ZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBtYW4gaW4gdGhlIHdvcmxkOgoJICAiSSBkb24ndCB1c3VhbGx5IHB1c2ggY29tbWl0cywgYnV0IHdoZW4gSSBkbyBJIGRvbid0IGNvbXBpbGUgaXQKCSAgZmlyc3QiCgoyMDE0LTA2LTE0IDE2OjMwOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogc29tZSBkb2NzIGFkZGl0aW9ucyBhbmQgZml4ZXMKCjIwMTQtMDYtMTQgMTY6Mjg6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgZXhwb3J0cyBmb3IgbmV3IGdldF90eXBlKCkgZnVuY3Rpb24KCjIwMTQtMDYtMTQgMTE6MzE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJICBmbG93Y29tYmluZXI6IGtlZXAgYSByZWYgdG8gdGhlIHBhZHMgd2UncmUgdXNpbmcKCSAgTmVlZGVkIGZvciB1c2UgdmlhIHRoZSBib3hlZCB0eXBlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzU1CgoyMDE0LTA2LTE0IDEwOjU0OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgYm94ZWQgdHlwZSBmb3IgYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM1NQoKMjAxNC0wNi0xMSAxNjoyODo1MSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgaW50cm9zcGVjdGlvbjogbWlub3IgYW5ub3RhdGlvbiBhZGRpdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MQoKMjAxNC0wNi0xMSAxOTowODowNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IGluY2x1ZGUgZ3N0dmVyc2lvbi5oIGluIEdJUiBnZW5lcmF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMwMjEKCjIwMTQtMDYtMTAgMTA6MjM6MTMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IFVzZSBjb25jaXN0YW50IGRlcmVmZW5jZSBtZXRob2QKCSAgVGhpcyBpcyBtaW5vciBzdHlsZSBmaXggdG8gbm90IG1peCAqdmFyIGFuZCB2YXJbTl0uCgoyMDE0LTA2LTEwIDA5OjM1OjM4IC0wNDAwICBTdW5naG8gQmFlIDxiYXZlci5iYWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBVc2UgcG9pbnRlciBpbnN0ZWFkIG9mIGluZGV4IGFjY2VzcwoJICBDdXJyZW50bHkgdGhlIHNjYW4gdXNlcyBCb3llci1tb29yZSBtZXRob2QgYW5kIGl0cyBwZXJmb3JtYW5jZSBpcyBnb29kLgoJICBidXQsIGl0IGNhbiBiZSBvcHRpbWl6ZWQgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB2aWV3LgoJICBUaGUgb3JpZ2luYWwgc2NhbiBjb2RlIGlzIGltcGxlbWVudGVkIGJ5IGJ5dGUgYXJyYXkgYW5kIGluZGV4LWJhc2VkIGFjY2Vzcy4KCSAgSW4gX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKSwgdGhlIGluZGV4IGlzIGluY3JlYXNpbmcgZnJvbSBzdGFydCB0byBlbmQgYW5kIHRoZQoJICBiYXNlIGFkZHJlc3Mgb2YgdGhlIGJ5dGUgYXJyYXkgaXMgcmVmZXJyZWQgdG8gYXMgcmV0dXJuIHZhbHVlLgoJICBJbiB0aGUgY2FzZSwgaW5kZXgtYmFzZWQgYWNjZXNzIGNhbiBiZSByZXBsYWNlZCBieSBwb2ludGVyIGFjY2Vzcywgd2hpY2gKCSAgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgYnkgcmVtb3ZpbmcgaW5kZXgtcmVsYXRlZCBvcGVyYXRpb25zLgoJICBJdHMgcGVyZm9ybWFjZSBpcyBlbmhhbmNlZCBieSBhcHByb3hpbWF0ZWx5IDglIG9uIGFybS1iYXNlZCBlbWJlZGRlZCBkZXZpY2VzLgoJICBBbHRob3VnaCBpdCBzZWVtcyB0cml2aWFsLCBpdCBjYW4gYWZmZWN0IHRoZSBvdmVyYWxsIHBlcmZvcm1hbmNlIGJlY2F1c2UgdGhlCgkgIF9zY2FuX2Zvcl9zdGFydF9jb2RlKCkgZnVuY3Rpb24gaXMgdmVyeSBvZnRlbiBjYWxsZWQgd2hlbiBILjI2NC9ILjI2NSB2aWRlbyBpcwoJICBwbGF5ZWQuCgkgIEluIGFkZGl0aW9uLCB0aGUgdGVjaG5pcXVlIGNhbiBhcHBseSBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgYW5kIGl0IGlzIGdvb2QgaW4KCSAgdmlldyBvZiByZWFkYWJpbGl0eSBhbmQgbWFpbnRhaW5hYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDQyCgoyMDE0LTA2LTA3IDEwOjEzOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogcHJldHRpZnkgaGVhZGVyCgoyMDE0LTA2LTA3IDA5OjQ2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBxdWV1ZWFycmF5IGV4cGFuc2lvbiBmcm9tIDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM0OQoKMjAxNC0wNi0wNiAxNjozNjowMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGV4cGFuZGluZyBzaXplIG9mIHF1ZXVlIGZyb20gMQoJICBXaXRob3V0IHdlIHdvdWxkIG5vdCBhY3R1YWxseSBleHBhbmQgYW5kIGFjY2VzcwoJICBtZW1vcnkgYmV5b25kIHRoZSBhbGxvY2F0ZWQgcmVnaW9uIGZvciB0aGUgYXJyYXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNDkKCjIwMTQtMDYtMDUgMTY6NTU6MTUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjbGVhciB1cCBkb2N1bWVudGF0aW9uIG9mIGdzdF9kYXRhX3F1ZXVlX25ldwoJICBUaGUgZ3BvaW50ZXIgYXJndW1lbnQgaXMgcGFzc2VkIHRvIGFsbCB0aHJlZSBjYWxsYmFja3MsIG5vdCBqdXN0IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTMwMgoKMjAxNC0wNS0zMCAwMDoxNzowNiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkgIGludHJvc3BlY3Rpb246IGZpeCBzb21lIG1pbm9yIGFubm90YXRpb24gYnVncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTgyCgoyMDE0LTA2LTA1IDEyOjM4OjIwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgYmFzZTogdXNlIGNvcnJlY3Qgc3ludGF4IGluIGRvY3VtZW50YXRpb24gbW9yZSBjb25zaXN0ZW50bHkKCSAgUHJldmlvdXNseSwgbWFueSBjb25zdGFudHMgd2VyZSBwcmVmaXhlZCB3aXRoICMgb3IgdW5wcmVmaXhlZCwKCSAgc29tZSBmdW5jdGlvbnMgYW5kIG1hY3JvcyB3ZXJlIHByZWZpeGVkIHdpdGggIyBpbnN0ZWFkIG9mIHN1ZmZpeGVkCgkgIHdpdGggKCksIGV0Yy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MwoKMjAxNC0wNS0wNyAxODoyNjozOCArMDgwMCAgemhvdW1pbmcgPHptYWZveEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFBhc3MgcmF0ZSBvZiBpbnB1dCBzZWdtZW50IHRvIG91dHB1dCBzZWdtZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk3MDEKCjIwMTQtMDQtMDcgMTQ6NDk6NTkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGdzdGJ1ZmZlcjogZmFjdG9yIHRocmVlIGZsYWdzLXRvLXN0cmluZyBsb29wcwoKMjAxNC0wNi0wMyAyMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgcHJpbnRpbmcgZGF0ZXRpbWVzIHdvcmsgd2l0aCBHU1RfUFRSX0ZPUk1BVAoKMjAxNC0wNi0wMyAyMzozODoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkYXRldGltZTogY2hhbmdlIGludGVybmFsIGltcGxlbWVudGF0aW9uIHRvIG1pbmkgb2JqZWN0CgkgIEFuZCBtb3ZlIHR5cGUgc3R1ZmYgZnJvbSBHc3RWYWx1ZSB0byBHc3REYXRlVGltZS4KCjIwMTQtMDYtMDMgMjI6MTk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTQtMDYtMDMgMjI6MTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBpbXByb3ZlIHN0YXJ0L3N0b3AgaW4gYnVmZmVyaW5nIHF1ZXJ5CgkgIFRoZSBzdGFydCBhbmQgc3RvcCBzaG91bGQgcmVwcmVzZW50IHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLgoJICBUaGUgZXN0aW1hdGVkLXRvdGFsIHNob3VsZCByZXByZXNlbnQgdGhlIHJlbWFpbmluZyB0aW1lIHRvIGRvd25sb2FkCgkgIHRoZSBjdXJyZW50bHkgZG93bmxvYWRpbmcgcmVnaW9uLiBUaGlzIG1ha2VzIGl0IGEgbG90IG1vcmUgdXNlZnVsCgkgIGZvciBhcHBsaWNhdGlvbnMgYmVjYXVzZSB0aGV5IGNhbiB0aGVuIHVzZSB0aG9zZSB2YWx1ZXMgdG8gdXBkYXRlCgkgIHRoZSBmaWxsIHJlZ2lvbiBhbmQgdXNlIHRoZSBlc3RpbWF0ZWQgdGltZSB0byBkZWxheSBwbGF5YmFjay4KCSAgVXBkYXRlIHRoZSBkb2NzIHdpdGggdGhpcyBjbGFyaWZpY2F0aW9uLgoKMjAxNC0wNC0wNyAxNDozNTowNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhZGQgc3RhdGljIGFuZCBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZQoKMjAxNC0wNC0wNyAxNDozMToxNyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBmaXggcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdwoJICBDb3Zlcml0eSAxMDM3MTU1CgoyMDE0LTA2LTAzIDE0OjQ5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHJlc2V0IHJlYWQgYW5kIHdyaXRlIHBvc2l0aW9ucwoJICBSZXNldCB0aGUgcmVhZCBhbmQgd3JpdGUgcG9zaXRpb25zIHJpZ2h0IGFmdGVyIHdlIG9wZW4gdGhlIGZpbGUgb3IgZmx1c2gKCSAgaXQuIFdlIGFyZSBhbHNvIGluIHRoZSBidWZmZXJpbmcgc3RhdGUgd2l0aCAwIHBlcmNlbnQgYnVmZmVyZWQgd2hlbiB3ZQoJICBzdGFydC4KCjIwMTQtMDYtMDMgMTQ6NDc6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZmlyc3QgaGFuZGxlIGFsbCBtaW5pb2JqZWN0cywgdGhlbiBHT2JqZWN0cwoJICBGaXJzdCBoYW5kbGUgYWxsIG1pbmlvYmplY3RzIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIHRoZSBmaXJzdAoJICBmaWVsZCBwb2ludGVyIGFuZCBsb29rIGF0IHRoZSBHVHlwZS4gV2l0aCB0aGUgcmVjZW50IGdsaWIgY2hhbmdlIHRvCgkgIHNwZWVkIHVwIEdfSVNfT0JKRUNULCB0aGlzIGNhdXNlcyBjcmFzaGVzIG9uIG1pbmlvYmplY3RzIG90aGVyd2lzZS4KCjIwMTQtMDYtMDMgMTQ6NDY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogR3N0RGF0ZVRpbWUgZG9lcyBub3QgaGF2ZSBhIEdUeXBlIGFzIGZpcnN0IGZpZWxkCgkgIEdzdERhdGVUaW1lIGRvZXMgbm90IGhhdmUgdGhlIEdUeXBlIGFzIHRoZSBmaXJzdCBmaWVsZCBzbyB3ZSBjYW4ndCB1c2UKCSAgaXQgdG8gZGV0ZWN0IGl0cyB0eXBlLgoKMjAxNC0wNi0wMyAxNDo0NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgbWFjcm9zIHRvIGNoZWNrIHR5cGVzCgkgIFVzZSB0aGUgbWFjcm9zIHRvIGNoZWNrIHRoZSB0eXBlIG9mIG9iamVjdHMgaW5zdGVhZCBvZiBkaXJlY3RseSBwb2tpbmcKCSAgYXQgdGhlIGZpcnN0IGZpZWxkLgoKMjAxNC0wNi0wMSAyMzo1MToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IGNvbm5lY3Qgc3luYy1tZXNzYWdlIHNpZ25hbCBvbiB0aGUgcmlnaHQgb2JqZWN0CgkgIEZpeGVzIGNyaXRpY2FscyBhdCBydW50aW1lIGFuZCBtYWtlcyBzdHVmZiBhY3R1YWxseSB3b3JrLgoKMjAxNC0wNS0zMSAxNzozNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBLZWVwIHN0aWxsIG1lYW5pbmdmdWxsIHBlbmRpbmcgZXZlbnRzIG9uIEZMVVNIX1NUT1AKCSAgT25seSBFT1MgYW5kIHNlZ21lbnQgc2hvdWxkIGJlIGRlbGV0ZWQgaW4gdGhhdCBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODY4CgoyMDE0LTA1LTMwIDA5OjEzOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgUmV2ZXJ0ICJtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk2MzYxZTliNWM1ZDAwZGM3NzEyZmYzYTlhY2ZiZTEwZGY3Y2Q5ZmUuCgkgIFRoaXMgd2FzIG5vdCBzdXBwb3NlZCB0byBiZSBwdXNoZWQgeWV0IQoKMjAxNC0wNS0zMCAwOToxMjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IEl0J3MgcG9vbCwgbm90IHBvby4uLiBldmVuIHdoZW4gdGFsa2luZyBhYm91dCBmbHVzaGluZwoKMjAxNC0wNS0yOCAxMDoxNDo0NSArMDEwMCAgUGhpbGlwIFdpdGhuYWxsIDxwaGlsaXAud2l0aG5hbGxAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIG1pc3NpbmcgKG51bGxhYmxlKSBhbm5vdGF0aW9ucwoJICBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpIGNhbiB0YWtlIE5VTEwgbWluaS1vYmplY3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwODczCgoyMDE0LTA1LTMwIDAxOjQyOjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGZpeCBsZWFrcwoKMjAxNC0wNS0yOSAxNDo1NDozNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBjb252ZXJ0IE5VTEwsIFRSVUUsIGFuZCBGQUxTRSB0byAlTlVMTCwgJVRSVUUsIGFuZCAlRkFMU0UKCSAgVGhpcyBzaG91bGQgaGVscCBpbXByb3ZlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGZvcgoJICBsYW5ndWFnZXMgb3RoZXIgdGhhbiBDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTYxCgoyMDE0LTA1LTMwIDAwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggdHlwZSBpbiBHc3RPYmplY3QgZG9jcwoKMjAxNC0wNS0yOSAxNTowNDo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZ3N0X2J1ZmZlcl9wb29sX2hhc19vcHRpb24oKSBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NjIKCjIwMTQtMDUtMjkgMTQ6MDc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc2V0IHBhZHMgbmVlZC1wYXJlbnQgZmxhZyB0byBmYWxzZSB3aGVuIHJlbW92aW5nCgkgIFdoZW4gYSBwYWQgaXMgYWRkZWQgdGhlIG5lZWQtcGFyZW50IGZsYWcgaXMgc2V0IHRvIHRydWUsIHNvIHdoZW4KCSAgdGhleSBhcmUgcmVtb3ZlZCB0aGUgZmxhZyBzaG91bGQgYmUgc2V0IGJhY2sgdG8gZmFsc2UKCSAgVGhpcyB3YXMgcHJldmVudGluZyBHc3RQYWRzIHRvIGJlIHJldXNlZCBpbiBlbGVtZW50cyAocmVtb3ZlZCBhbmQKCSAgbGF0ZXIgcmUtYWRkZWQpLiBBIHVuaXQgdGVzdHMgd2FzIGFkZGVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgaXMKCSAgd29ya2luZyBub3cuCgkgIFRoZSB1c2UgY2FzZSBpcyB0c2RlbXV4IHRoYXQgaGFzIGEgcHJvZ3JhbS1udW1iZXIgcHJvcGVydHkgYW5kCgkgIGFsbG93cyB0aGUgdXNlciB0byBzd2l0Y2ggcHJvZ3JhbXMuIEluIG9yZGVyIHRvIGRvIHRoYXQgdHNkZW11eAoJICB3aWxsIHJlbW92ZSB0aGUgcGFkcyBvZiB0aGUgY3VycmVudCBwcm9ncmFtIGFuZCBhZGQgZnJvbSB0aGUgbmV3CgkgIG9uZXMuIFRoZSByZW1vdmVkIHBhZHMgYXJlIGtlcHQgaW4gdGhlIGRlbXV4ZXIgZm9yIGxhdGVyIGlmIHRoZQoJICB1c2VyIHNlbGVjdHMgdGhlIG9sZCBwcm9ncmFtIGFnYWluLgoKMjAxNC0wNS0yNyAwODowOTozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcG9zdCBidWZmZXJpbmcgbWVzc2FnZSB3aGVuIHF1ZXVlcyBmbHVzaAoJICBUaGUgYnVmZmVyaW5nIHN0YXR1cyBnb2VzIGJhY2sgdG8gMCwgc28gaW5mb3JtIHRoZSBhcHBsaWNhdGlvbiBhYm91dCBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDIzCgoyMDE0LTA1LTI5IDE0OjM5OjM2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZTogSWdub3JlIFZJTSBzd2FwIGZpbGVzCgoyMDE0LTA1LTI3IDEzOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdHdvIG1pbm9yIGRvY3MgZml4ZXMKCjIwMTQtMDUtMjcgMTA6MDk6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGJlYXV0aWZ5IGhlYWRlcnMgYSBsaXR0bGUKCjIwMTQtMDUtMjcgMTA6MDU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBkb2NzOiBhZGQgR3N0Rmxvd0NvbWJpbmVyCgoyMDE0LTA1LTI3IDA5OjU1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkgIGJhc2U6IGluY2x1ZGUgZmxvd2NvbWJpbmVyIGhlYWRlciBmcm9tIGJhc2UuaAoKMjAxNC0wNS0yNiAxMjozMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Zsb3djb21iaW5lci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGZsb3djb21iaW5lcjogYWRkIEdzdEZsb3dDb21iaW5lcgoJICBBZGRzIGEgdXRpbGl0eSBzdHJ1Y3QgdGhhdCBpcyBjYXBhYmxlIG9mIHN0b3JpbmcgYW5kIGFnZ3JlZ2F0aW5nIGZsb3cgcmV0dXJucwoJICBhc3NvY2lhdGVkIHdpdGggcGFkcy4KCSAgVGhpcyB3YXkgYWxsIGRlbXV4ZXJzIHdpbGwgaGF2ZSBhIHN0YW5kYXJkIGZ1bmN0aW9uIHRvIHVzZSBhbmQgaGF2ZSB0aGUKCSAgc2FtZSBleHBlY3RlZCByZXN1bHRzLgoJICBJbmNsdWRlcyB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTIyNAoKMjAxNC0wNS0yMyAxMzoyNTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBzdG9yZSBsYXN0IGZsb3cgcmV0dXJuIGFuZCBwcm92aWRlIGFjZXNzb3IgZnVuY3Rpb24KCSAgU3RvcmVzIHRoZSBsYXN0IHJlc3VsdCBvZiBhIGdzdF9wYWRfcHVzaCBvciBhIHB1bGwgb24gdGhlIEdzdFBhZCBhbmQgcHJvdmlkZXMKCSAgYSBnZXR0ZXIgYW5kIGEgbWFjcm8gdG8gYWNjZXNzIHRoaXMgZmllbGQuCgkgIFdoZW5ldmVyIHRoZSBwYWQgaXMgaW5hY3RpdmUgaXQgaXMgc2V0IHRvIEZMVVNISU5HCgkgIEFQSTogZ3N0X3BhZF9nZXRfbGFzdF9mbG93X3JldHVybgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjI0CgoyMDE0LTA1LTIzIDE1OjI2OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogQWRkIG1ldGhvZCBhbmQgdmlydHVhbHMgdG8gc2V0IGZsdXNoaW5nIHN0YXRlCgkgIEN1cnJlbnRseSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gdW5sb2NrIGEgYnVmZmVyIHBvb2wgb3RoZXIgdGhlbgoJICBzdG9wcGluZyBpdC4gVGhpcyBtYXkgaGF2ZSB0aGUgZWZmZWN0IG9mIGZyZWVpbmcgYWxsIHRoZSBidWZmZXJzLAoJICB3aGljaCBpcyB0b28gaGVhdnkgZm9yIGEgc2Vlay4gVGhpcyBwYXRjaCBhZGQgYSBtZXRob2QgdG8gZW50ZXIgYW5kCgkgIGxlYXZlIGZsdXNoaW5nIHN0YXRlLiBBcyBhIGNvbnZlbmllbmNlLCBmbHVzaF9zdGFydC9mbHVzaF9zdG9wCgkgIHZpcnR1YWwgYXJlIGFkZGVkIHNvIHBvb2wgaW1wbGVtZW50YXRpb24gY2FuIGFsc28gdW5ibG9jayB0aGVpciBvd24KCSAgaW50ZXJuYWwgcG9sbCBhdG9taWNhbGx5IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHBvb2wuICBUaGlzIGlzIGZ1bGx5CgkgIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBkb2luZyBzdG9wL3N0YXJ0IHRvIGFjdHVhbGx5IGZsdXNoIHRoZSBwb29sCgkgIChhcyBiZWluZyBkb25lIGluIEdzdEJhc2VTcmMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NjExCgoyMDE0LTA1LTI2IDE0OjIzOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFBhc3N0aHJvdWdoIEFMTE9DQVRJT04gcXVlcmllcyBpbiBwYXNzdGhyb3VnaCBtb2RlIGV2ZW4gaWYgd2UgaGFkIG5vIGNhcHMgeWV0CgkgIE9yIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGNhcmUgYWJvdXQgY2FwcyBhdCBhbGwuCgkgIEFsc28gcmVtb3ZlIGFuIGFzc2lnbmVkIGJ1dCB1bnVzZWQgbG9jYWwgdmFyaWFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAyNjgKCjIwMTQtMDUtMjUgMTY6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlCgoyMDE0LTA1LTI1IDE2OjU3OjU5ICswMjAwICBQaW90ciBEcsSFZyA8cGlvdHJkcmFnQGdtYWlsLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogdXBkYXRlIFBPVEZJTEVTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3MTgKCjIwMTQtMDUtMjEgMTM6MjM6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4yID09PQoKMjAxNC0wNS0yMSAxMzowNjozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4yCgoyMDE0LTA1LTIxIDExOjM5OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNS0yMSAxMDo1MDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMTFmYTVmIHRvIDFmNWQzYzMKCjIwMTQtMDUtMTkgMTE6MDU6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzb21lIHBvc2l0aXZlIHRlc3RjYXNlIGZvciBzdHJpbmcgZGVzZXJpYWxpemF0aW9uCgoyMDE0LTA1LTE4IDEwOjQ5OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBNYW5kcmFrZSBhbmQgcGFja2FnZXMgd2Ugbm8gbG9uZ2VyIHByb3ZpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDMxMgoKMjAxNC0wNS0xNSAxNjo0MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoKMjAxNC0wNS0xNCAxMzo0MDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZyBvbiB3aW5kb3dzCgkgIGdzdHBsdWdpbmxvYWRlci5jOjU4NDoxOiBlcnJvcjogbGFiZWwgJ2JlYWNoJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMTI1CgoyMDE0LTA1LTEzIDE5OjUxOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmg6CgkgIGVsZW1lbnRzOiBkb24ndCBkZXBlbmQgb24gbGliZ2lvIGp1c3QgZm9yIGdfaW9fZXJyb3JfZnJvbV9lcnJubygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NDkKCjIwMTQtMDUtMTMgMTk6MzA6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgc3BhcnNlZmlsZToga2VlcCBpdCBwcml2YXRlIGFzIGhlbHBlciBBUEkgZm9yIGRvd25sb2FkYnVmZmVyCgkgIFRoZXJlJ3Mgbm8gZXhwZWN0YXRpb24gdGhhdCBhbnkgb3RoZXIgZWxlbWVudCBvciBhcHBsaWNhdGlvbnMKCSAgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBoZWxwZXIgQVBJIGFueSB0aW1lIHNvb24sIHNvIGtlZXAgaXQKCSAgcHJpdmF0ZSBmb3IgdGhlIHRpbWUgYmVpbmcuIFRoZXJlIHdlcmUgb3BlbiBxdWVzdGlvbnMgcmVnYXJkaW5nCgkgIHBvcnRhYmlsaXR5IGFuZCBiaW5kaW5nLWZyaWVuZGxpbmVzcyB0b28uCgkgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSBnaW8gZGVwZW5kZW5jeSBvZiAtYmFzZSBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk1MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5OTQ5CgoyMDE0LTA1LTEzIDE5OjE0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBkb2NzOiBwaWNrIHVwIEdzdEJhc2VQYXJzZSBoaWVyYXJjaHkgYW5kIHByb3BlcnRpZXMKCjIwMTQtMDUtMTMgMTk6MTA6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBleHBvc2UgR3N0UHVzaFNyY0NsYXNzIGluIGRvY3VtZW50YXRpb24KCSAgTWlnaHQgY29tZSBpbiBoYW5keSBpbiBjYXNlIHNvbWVvbmUgd2FudHMgdG8gZGVyaXZlIGZyb20gaXQuCgoyMDE0LTA1LTEyIDE3OjAzOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IERvbid0IGxlYWsgcGx1Z2lubG9hZGVyIGluIGVycm9yIGNhc2VzCgkgIENJRCAjMTIxMjE1NAoKMjAxNC0wNS0xMiAxNjo1OToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IERvbid0IGxlYWsgZmVhdHVyZXMgb24gZXJyb3IgY2FzZXMKCSAgSWYgd2UgZmFpbCB0byBwYXJzZSBmaWVsZHMsIHdlIHdvdWxkIGVuZCB1cCBsZWFraW5nIHRoZSBmZWF0dXJlcyB3ZQoJICBwYXJzZWQganVzdCBiZWZvcmUKCSAgQ0lEICMxMjEyMTUyCgoyMDE0LTA1LTA5IDE0OjI4OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ29ycmVjdGx5IHJlc2V0IGNvbmZpZ3VyYXRpb24KCSAgV2hlbiBwb29sIGNhbid0IHdlIHVzZSwgYW5kIHdlIGZhbGwgYmFjayB0byBkZWZhdWx0IHBvb2wsIHdlIG5lZWQgdG8KCSAgY29ycmVjdGx5IHJlc2V0IHRoYXQgcG9vbCBjb25maWd1cmF0aW9uLgoKMjAxNC0wNS0wOSAxNDo0Njo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBVc2Ugbm9uLWZyZWVkIHZhcmlhYmxlCgkgIGFkZHJlc3MgaXMgb25seSB1c2VkIHRlbXBvcmFyaWx5LiBVc2UgdGhlIHByb3BlciB2YXJpYWJsZSBpbnN0ZWFkLgoJICBDSUQgIzEyMTIxODkKCjIwMTQtMDUtMDggMTc6MzM6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogdGVzdCB0byBjaGVjayBxdWV1ZSBvdmVycnVuIHdpdGggcHRzPW5vbmUKCSAgQ2hlY2tzIGlmIGJ1ZmZlcnMgd2l0aCBwdHM9bm9uZSBjYW4gYnJlYWsgdGhlIHF1ZXVlIHRpbWUgc2l6ZSBsaW1pdAoJICBhbmQgYWxsb3cgbW9yZSBidWZmZXJzIHRoYW4gZXhwZWN0ZWQKCjIwMTQtMDUtMDggMTQ6NDg6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IEZpeCAzMmJpdCBidWlsZAoJICBmb3JtYXQgJyVsbGknIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIGludCcsIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlICdnc2l6ZScKCjIwMTQtMDUtMDggMTQ6MTI6MTYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBwb29sLW5lZ286IENvcnJlY3RseSByZXNldCB0aGUgY29uZmlndXJhdGlvbgoJICBXaGVuIHBvb2wgY2Fubm90IGJlIHVzZWQsIGNvcnJlY3RseSByZXNldCB0aGUgY29uZmlndXJhdGlvbiBiZWZvcmUKCSAgY29uZmlndXJhdGlvbiBhIGRlZmF1bHQgcG9vbC4KCjIwMTQtMDQtMTUgMTQ6MTc6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcG9vbC1uZWdvOiBSZXRyeSBzZXR0aW5nIGNvbmZpZ3VyYXRpb24gd2l0aCBtb2RpZmllZCBjb25maWcKCSAgQnVmZmVyIHBvb2wgc2V0X2NvbmZpZygpIG1heSByZXR1cm4gRkFMU0UgaWYgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24gbmVlZGVkCgkgIHNtYWxsIGNoYW5nZXMuIFJlZ2V0IHRoZSBjb25maWcgYW5kIHRyeSBzZXR0aW5nIGl0IGFnYWluICh2YWxpZGF0aW5nIHRoZQoJICBjaGFuZ2VzIGZpcnN0KS4gVGhpcyBlbnN1cmUgd2UgaGF2ZSBhIGNvbmZpZ3VyZWQgcG9vbCBpZiBwb3NzaWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNS0wOCAxMjo0Nzo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBhbiBoZWxwZXIgdG8gdmFsaWRhdGUgY29uZmlnCgkgIFdoZW4gd2UgY2FsbCBnc3RfYnVmZmVyX3Bvb2xfc2V0X2NvbmZpZygpIHRoZSBwb29sIG1heSByZXR1cm4gRkFMU0UgYW5kCgkgIHNsaWdodGx5IGNoYW5nZSB0aGUgcGFyYW1ldGVycy4gVGhpcyBoZWxwZXIgaXMgdXNlZnVsIHRvIGRvIHRoZSBtaW5pYWwgcmVxdWlyZWQKCSAgdmFsaWRhdGlvbiBiZWZvcmUgYWNjZXB0aW5nIHRoZSBtb2RpZmllZCBjb25maWd1cmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTE2CgoyMDE0LTA0LTA4IDE5OjI3OjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBVcGRhdGUgdGhlIGNvbmZpZ3VyZSBldmVuIGlmIHNldF9jb25maWcoKSByZXR1cm5lZCBmYWxzZQoJICBBY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24sIHdoZW4gc2V0X2NvbmZpZygpIHJldHVybiBmYWxzZSwgaXQgc2hvdWxkIGJlCgkgIHBvc3NpYmxlIHRvIHJlYWQgdGhlIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGNvbmZpZy4gVGhpcyBwYXRjaCBmaXhlcyB0aGUKCSAgaW1wbGVtZW50YXRpb24gc28gaXQgaXMgbm93IGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNS0wNiAxNTozNToxNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBBZGQgc3VwcG9ydCBmb3IgcmVjb25maWd1cmluZyBhIHBvb2wKCSAgSWYgYSBwb29sIGNvbmZpZyBpcyBiZWluZyBjb25maWd1cmVkIGFnYWluLCBjaGVjayBpZiB0aGUgY29uZmlndXJhdGlvbiBoYXZlIGNoYW5nZWQuCgkgIElmIG5vdCwgc2tpcCB0aGF0IHN0ZXAuIEZpbmFsbHksIGlmIHRoZSBwb29sIGlzIGFjdGl2ZSwgdHJ5IGRlYWN0aXZhdGluZyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wNiAxNjo1OTozNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgR3N0QWxsb2NhdGlvblBhcmFtcyBjb21wYXJpc2lvbgoJICBUaGlzIGlzIHVzZWZ1bCB0byBjb21wYXJlIGJ1ZmZlciBwb29sIGNvbmZpZ3VhcmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA2IDE2OjQ2OjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBzdXBwb3J0IGZvciBHT2JqZWN0IGNvbXBhcmlzaW5nIGluIHN0cnVjdHVyZXMKCSAgVGhpcyBpcyB1c2VmdWwgdG8gYWxsb3cgY29tcGFyaW5nIHBvb2wgY29uZmlndXJhdGlvbiB3aGVyZSBhIEdzdEFsbG9jYXRvcgoJICBpcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDggMTc6NTA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogZml4IGNhc2Ugd2hlcmUgZ3N0X3BsdWdpbl9sb2FkX2ZpbGUoKSBkaWRuJ3Qgc2V0IHRoZSBlcnJvciBvbiBmYWlsdXJlCgoyMDE0LTA1LTA4IDE2OjMwOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGFkZCBzb21lIFNpbmNlIG1hcmtlcnMgdG8gZG9jcwoKMjAxNC0wNS0wOCAxNjoyNTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuaDoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBzcGFyc2VmaWxlOiBzcHJpbmtsZSBHX0JFR0lOX0RFQ0xTIC8gR19FTkRfREVDTFMKCSAgZm9yIGMrKywgYW5kIHJlbW92ZSBvdXRkYXRlZCBjb21tZW50LCBhbmQgYWRkCgkgIG5ldyB1bml0IHRlc3QgdG8gLmdpdGlnbm9yZS4KCjIwMTQtMDUtMDggMTY6NDk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogc21hbGwgY2xlYW51cHMKCjIwMTQtMDUtMDggMTQ6NTE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHVwZGF0ZSBkb2NzCgoyMDE0LTA1LTA4IDE0OjUwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBkZWYKCjIwMTQtMDItMjEgMTY6MzI6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkgIEFkZCBuZXcgZG93bmxvYWRidWZmZXIgZWxlbWVudAoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDE4MwoKMjAxNC0wNS0wMiAxNzo0Mjo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBhZHM6IHVwZGF0ZSBkb2NzIGZvciByZXF1ZXN0IHBhZHMKCSAgV2Ugd291bGQgbGlrZSB0byBlbmNvdXJhZ2UgdGhlIHVzZSBvZiBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCgpCgoyMDE0LTA1LTAyIDE3OjAyOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSAgY2hlY2s6IHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIGZhaWxfdW5sZXNzKCkgc28gd2UgZXhpdCBpbW1lZGlhdGVseQoJICBleGl0KCkgd2lsbCBjYWxsIGF0ZXhpdCBoYW5kbGVycywgd2hpY2ggbWF5IHRyeSB0bwoJICBjbGVhbiB1cCB0aGluZ3Mgb3Igd2FpdCBmb3IgdGhpbmdzIHRvIGdldCBjbGVhbmVkIHVwLAoJICB3aGljaCB3ZSBkb24ndCB3YW50IG9yIG5lZWQuIFdlIGp1c3Qgd2FudCB0byBzdG9wCgkgIGFuZCBsZXQgdGhlIHBhcmVudCBrbm93IGFib3V0IHRoZSBmYWlsdXJlIGFzIHF1aWNrbHkKCSAgYXMgcG9zc2libGUgaW4gY2FzZSBmb3JrKCkgaXMgdXNlZC4KCSAgRml4ZXMgdGltZW91dHMgb24gYXNzZXJ0IGZhaWx1cmVzIGluIGNoZWNrcyB3aGVyZQoJICBhbiBleGl0IGhhbmRsZXIgd2FpdHMgZm9yIHRoaW5ncyB0byBzdG9wLCBidXQgdGhleQoJICBkb24ndCBzdG9wIGJlY2F1c2UgdGhleSBoYXZlbid0IGJlZW4gc2h1dCBkb3duLAoJICBhbmQgdGhleSBoYXZlbid0IGJlZW4gc2h1dCBkb3duIGJlY2F1c2UgdGhlcmUncyBubwoJICBzaW1wbGUgd2F5IHRvIGRvIHNvIG9uIGZhaWx1cmVzLgoJICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvY2hlY2svcGF0Y2hlcy81MC8KCjIwMTQtMDUtMDQgMTQ6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGluaXQgZmxhZyBtYXNrIG1vcmUgY29ycmVjdGx5CgoyMDE0LTA1LTA0IDEzOjMyOjQ2ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI4MTEKCjIwMTQtMDUtMDMgMjA6NDg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMy4xID09PQoKMjAxNC0wNS0wMyAxNzo0MTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjEKCjIwMTQtMDUtMDMgMTc6MzQ6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA1LTAzIDE3OjIwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDUtMDMgMTI6MTQ6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgbmV3IGRldmljZSBwcm9iaW5nIEFQSSB0byBkb2NzIHRhYmxlIG9mIGNvbnRlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk0NDAKCjIwMTQtMDUtMDIgMjI6MjI6MDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgR3N0RGV2aWNlKiB0byBnc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk0NDAKCjIwMTQtMDUtMDMgMTA6MTQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGJjYjE1MTggdG8gMjExZmE1ZgoKMjAxNC0wNS0wMSAxMDozNzoxOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBbHdheXMgcmVuZGVyIHByZXBhcmVkIGJ1ZmZlcgoJICBDdXJyZW50bHksIGlmIHByZXBhcmUoKSB0YWtlcyB0b28gbXVjaCB0aW1lLCB3ZSBza2lwIHRoZSBjYWxsIHRvIHJlbmRlcigpLgoJICBUaGUgc2lkZSBlZmZlY3Qgb2YgdGhpcywgaXMgdGhhdCB3ZSBlbmR1cCBzdGFydmluZyB0aGUgcmVuZGVyKCkuIFRoZSBzb2x1dGlvbgoJICBpbiB0aGlzIHBhdGNoIGlzIHRvIGFsd2F5cyByZW5kZXIgZnJhbWVzIHRoYXQgYXJlIG9uIHRpbWUgYmVmb3JlIHByZXBhcmUoKSBpcwoJICBleGVjdXRlZC4gVGhpcyB3aWxsIG1heGltaXplIHRoZSBudW1iZXIgb2YgZnJhbWVzIHdlIGRpc3BsYXkgYW5kIHNtb290aGx5CgkgIGRlZ3JhZGUgdGhlIHJlbmRlcmluZyBwZXJmb3JtYW5jZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTMzNQoKMjAxNC0wNS0wMSAxNDo1MjoyNCAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IGFkZCBtb3JlIG1vZHVsZXMKCSAgQWRkIG1vcmUgZ2l0IHJlcG9zaXRvcmllcyB0byBjaGVjayAoc28gZ2l0LXZlcnNpb24uc2ggaXMgY29uc2lzdGVudCB3aXRoCgkgIGdzdC11bmluc3RhbGxlZCkgYW5kIGRpc3BsYXkgdGhlIGRhdGUgb2YgdGhlIGxhc3QgY29tbWl0LCB3aGljaCBpcyBtb3JlIHZhbHVhYmxlCgkgIGluZm9ybWF0aW9uIHRoYW4gdGhlIGxhc3QgY29tbWl0J3MgaGFzaC4KCjIwMTQtMDUtMDEgMTg6NDI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogQWx3YXlzIGZpcnN0IHBvc3QgdGhlIHN0YXRlLWNoYW5nZWQgbWVzc2FnZSBmb3IgUEFVU0VELT5SRUFEWSBiZWZvcmUgcG9zdGluZyBhbnkgcGVuZGluZyBFT1MgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ5CgoyMDE0LTA0LTE3IDIxOjEwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJICBiYXNlc2luazogQWRkIHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRU9TIGFsd2F5cyBjb21lcyBhZnRlciB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0OQoKMjAxNC0wNC0xNSAxNTo1NToyNSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggbG9nIG1lc3NhZ2Ugb2YgYnVmZmVyIHBvaW50ZXIKCjIwMTQtMDQtMzAgMTg6MjA6MjggLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDE0LTA0LTMwIDEwOjQ3OjE5IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogZml4IG1pc3Rha2VuIGNvbW1lbnRzCgoyMDE0LTA0LTI4IDEzOjAyOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBzaWduYWxpbmcgb3ZlcnJ1biBvbiB0aGUgZmlyc3Qgc2VnbWVudAoJICBXaGVuIHRoZSBmaXJzdCBzZWdtZW50IGhhcyBwb3NpdGlvbiAhPSAwIGFuZCBwb3NpdGlvbiA+IG1heC1zaXplLXRpbWUKCSAgaXQgd2lsbCBpbW1lZGlhdGVsbHkgY2F1c2UgdGhlIG11bHRpcXVldWUgdG8gc2lnbmFsIG92ZXJydW4uCgkgIFRoaXMgY2FuIGhhcHBlbiBlYXNpbHkgd2l0aCBhZGFwdGl2ZSBzdHJlYW1zIHdoZW4gc3dpdGNoaW5nIGJpdHJhdGVzCgkgIGFuZCBzdGFydGluZyBhIG5ldyBncm91cC4gVGhlIHNlZ21lbnQgZm9yIHRoaXMgbmV3IGdyb3VwIHdpbGwgaGF2ZQoJICBhIHBvc2l0aW9uIHRoYXQgaXMgbXVjaCBncmVhdGVyIHRoYW4gMCBhbmQgd2lsbCBsZWFkIHRvIHRoaXMgaXNzdWUuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGhhcm1mdWwgd2hlbiB0aGUgYWRhcHRpdmUgc3RyZWFtIHVzZXMgbXBlZ3RzCgkgIHRoYXQgZG9lc24ndCBlbWl0IG5vLW1vcmUtcGFkcyBhbmQgaXQgbWlnaHQgaGFwcGVuIHRoYXQgb25seSBvbmUKCSAgb2YgdGhlIHN0cmVhbSBwYWRzIHdhcyBhZGRlZCB3aGVuIHRoZSBtdWx0aXF1ZXVlIG92ZXJydW5zIGFuZCBnZXRzCgkgIHRoZSBncm91cCByZWFkeSBmb3IgZXhwb3NpbmcuIFNvIHRoZSB1c2VyIHdpbGwgb25seSBnZXQgYXVkaW8gb3IKCSAgdmlkZW8uCgkgIFRoZSBzb2x1dGlvbiBpcyB0byBmYWxsYmFjayB0byB0aGUgc2luayBzZWdtZW50IHdoaWxlIHRoZSBzb3VyY2UgcGFkCgkgIGhhcyBubyBzZWdtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5MTI0CgoyMDE0LTA0LTI4IDEwOjE0OjUwICswMjAwICBYYXZpIEFydGlnYXMgPHhhcnRpZ2FzQGZsdWVuZG8uY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBlbmhhbmNlbWVudHMgdG8gcG9ydGluZyBndWlkZSBkb2N1bWVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc3NTQKCjIwMTQtMDQtMjggMDk6NDM6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgYm9vbGVhbiB0byBVUkkgcXVlcnkgdG8gc3BlY2lmeSBpZiBhIHJlZGlyZWN0IGlzIHBlcm1hbmVudCBvciBub3QKCjIwMTQtMDQtMjUgMDc6Mzg6MDAgKzAwMDAgIFNyaW1hbnRhIFBhbmRhIDxwYW5kYV9zcmltYW50YUB5YWhvby5jby5pbj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQ2hlY2sgaWYgdGhlIGxhc3QgcGFkIHdhcyBzZXQKCSAgSWYgbm8gZGF0YSBpcyBjb21pbmcgYnV0IG9ubHkgRU9TIGlzIHNlbnQgZnJvbSBhbGwgb2YgdGhlIHNpbmtwYWQsIGl0IGlzIG5vdAoJICBmb3J3YXJkaW5nIHRoZSBFT1MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDUKCjIwMTQtMDQtMjYgMTc6MDI6MTggKzAxMDAgIEZlbGlwZSBPcnRpeiA8ZmFvcnRpemNAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM2NTIKCjIwMTQtMDQtMjYgMjM6MTI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmg6CgkgIFJldmVydCAiZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkMTc0MzhkNWZkMzIxZGFlYzRhZGJlYjI4YThmYjVkNWUwNzI5OGRjLgoJICBUaGlzIGNvbW1pdCBmZWF0dXJlZCB0aGUgd3JvbmcgYXV0aG9yLCBzb3JyeS4KCjIwMTQtMDQtMjYgMjE6MjE6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL1JFQURNRToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZG9jczogcmVtb3ZlIG91dGRhdGVkIGFuZCBwb2ludGxlc3MgJ0xhc3QgcmV2aWV3ZWQnIGxpbmVzIGZyb20gZG9jcwoJICBUaGV5IGFyZSB2ZXJ5IGNvbmZ1c2luZyBmb3IgcGVvcGxlLCBhbmQgbW9yZSBvZnRlbiB0aGFuIG5vdAoJICBhbHNvIGp1c3Qgbm90IHZlcnkgYWNjdXJhdGUuIFNlZWluZyAnbGFzdCByZXZpZXdlZDogMjAwNScgaW4KCSAgeW91ciBkb2NzIGlzIG5vdCB2ZXJ5IGNvbmZpZGVuY2UtaW5zcGlyaW5nLiBMZXQncyBqdXN0IHJlbW92ZQoJICB0aG9zZSBjb21tZW50cy4KCjIwMTQtMDMtMjYgMTU6NTY6MDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVyOiBPbmx5IHNldCBUQUdfTUVNT1JZIGlmIHRoZSBtZW1vcnkgaGFzIGJlZW4gcmVwbGFjZWQKCSAgQ3VycmVudGx5IHdlIHNldCBUQUdfTUVNT1JZIGFzIHNvb24gYSByZXNpemUgY2hhbmdlcyB0aGUgc2l6ZSBvZiBvbmUKCSAgb2YgdGhlIG1lbW9yeS4gVGhpcyBoYXMgdGhlIHNpZGUgZWZmZWN0IHRoYXQgYnVmZmVyIHBvb2wgY2Fubm90IGtub3cgaWYKCSAgdGhlIG1lbW9yeSBoYXZlIHNpbXBseSBiZWVuIHJlc2l6ZWQsIG9yIGlmIHRoZSBtZW1vcnlzIGhhcyBiZWVuIHJlcGxhY2VkLgoJICBUaGlzIG1ha2UgaXQgaGFyZCB0byBhY3R1YWxseSBpbXBsZW1lbnQgX3Jlc2V0KCkuIEluc3RlYWQsIG9ubHkgc2V0IHRoZQoJICBUQUdfTUVNT1JZIGlmIG9uZSBvciBtb3JlIG1lbW9yeSBoYXMgYmVlbiByZXBsYWNlZCwgYW5kIGRvIGEgbGlnaHQKCSAgc2FuaXR5IGNoZWNrIG9mIHRoZSBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MTA5CgoyMDE0LTA0LTI2IDE3OjAyOjE4ICswMTAwICBTaG93YXliIFphaGRhIDxzaG93YXliLnphaGRhQGF4aXMuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBhZGQgZG9jcyBmb3IgdmFyaW91cyBHc3RQYWQgbWFjcm9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM2NTIKCjIwMTQtMDQtMjUgMTU6Mzg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogV2hlbiBnb2luZyB0byBSRUFEWSBtYWtlIHN1cmUgdG8gYWx3YXlzIGRlYWN0aXZhdGUgcGFkcwoJICBXZSBtaWdodCBub3QgaGF2ZSByZWFjaGVkIFBBVVNFRCB5ZXQgYmVjYXVzZSBvZiBhbiBhc3luYyBlcnJvciwKCSAgYnV0IG5vbmV0aGVsZXNzIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBhZHMgYXJlIGFsd2F5cwoJICBkZWFjdGl2YXRlZCBpbiBSRUFEWSBzdGF0ZS4KCjIwMTQtMDQtMjIgMTg6MjM6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRG9uJ3QgbGVmdC1zaGlmdCBpbnRvIHRoZSBzaWduIGJpdCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQKCjIwMTQtMDQtMjIgMTg6MTY6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFVzZSBhbiB1bnNpZ25lZCA2NCBiaXQgaW50ZWdlciBhcyBhIG1hc2sKCSAgV2Ugc2hpZnQgdGhlIG1hc2sgdG8gdGhlIHJpZ2h0IGxhdGVyIGFuZCBzaGlmdGluZyB0aGUgcmVzdWx0CgkgIG9mIHNoaWZ0aW5nIG92ZXIgdGhlIHNpZ24gYml0IGlzIHVuZGVmaW5lZC4KCjIwMTQtMDQtMjAgMTE6NTk6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzdXJlIHRvIGFsd2F5cyBob2xkIHRoZSBMSVZFX0xPQ0sgd2hlbiBnb2luZyB0byB0aGUgZmx1c2hpbmcgbGFiZWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODU5NgoKMjAxNC0wNC0xMSAxOTo1MjowMiArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSGFuZGxlIGVuZCBvZiBzdHJlYW0gZXZlbnQgb24gc2luayBwYWQKCSAgSGFuZGxlIGVuZCBvZiBzdHJlYW0gZXZlbnRzIG9uIHNpbmsgcGFkLiBDaGVjayBhbGwgdGhlIHNpbmsgcGFkCgkgIGhhcyByZWNlaXZlZCBlb3MgYmVmb3JlIGZvcndhcmRpbmcgdG8gc291cmNlIHBhZC4KCSAgRml4ZXMgOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ1CgoyMDE0LTA0LTA1IDExOjM3OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogUHJldmVudCBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVybwoJICBUaGUgc3RlcCBjYW4gZW5kIHVwIGJlaW5nIHplcm8gaWYgdGhlIHVuZGVybHlpbmcgdmFsdWUgaXNuJ3QgYSB2YWxpZAoJICByYW5nZSBHVmFsdWUuCgkgIEluIHRob3NlIGNhc2VzLCByZXR1cm4gRkFMU0UuCgkgIFdlIGRvbid0IHVzZSBnX3JldHVybipfaWZfZmFpbCBzaW5jZSBpdCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHRyaWdnZXJlZAoJICBieSB0aGUgYWJvdmUtbWVudGlvbm5lZCBfZ2V0X3N0ZXAoKSBmdW5jdGlvbnMuCgkgIENJRCAjMTAzNzEzMgoKMjAxNC0wNC0wOSAxNjo0NDowNyArMDIwMCAgQW50b2luZSBKYWNvdXRvdCA8YWphY291dG90QGdub21lLm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZy1pci1zY2FubmVyOiBkbyBub3QgaGFyZGNvZGUgbGlidG9vbCBwYXRoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY1NzEKCjIwMTQtMDQtMTYgMTk6NDk6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5L2J1ZmZlcjogSW5pdGlhbGlzZSBHc3RNYXBJbmZvIHRvIHplcm9lcyBpZiBtYXBwaW5nIGZhaWxzCgkgIFRoaXMgc2hvdWxkIGFsbG93IGZvciBtb3JlIG1lYW5pbmdmdWwgZXJyb3JzLiBEZXJlZmVyZW5jaW5nIE5VTEwKCSAgaXMgbW9yZSB1c2VmdWwgaW5mb3JtYXRpb24gdGhhbiBkZXJlZmVyZW5jaW5nIGEgcmFuZG9tIGFkZHJlc3MKCSAgaGFwcGVuZWQgdG8gYmUgb24gdGhlIHN0YWNrLgoKMjAxNC0wNC0xNiAxNzo0OTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBVbnJlZiByZXR1cm4gdmFsdWUgb2YgZ3N0X2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCgpIGluc3RlYWQgb2YgbGVha2luZyBpdAoKMjAxNC0wNC0xNiAxNzo0ODo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBBdXRvbWF0aWMgY29kZSBzdHlsZSBmaXhlcwoKMjAxNC0wNC0xNiAxNToxNzowNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGZpeCBldmVudC9wcmVyb2xsIGRlYWRsb2NrIGRpZmZlcmVudGx5CgkgIFRoZSBxbG9jayBpcyByZWxlYXNlZCBiZXR3ZWVuIHBvcHBpbmcgYSBidWZmZXIgZnJvbSB0aGUgcXVldWUKCSAgYW5kIHB1c2hpbmcgaXQuIFdoZW4gdGhpcyBidWZmZXIgY2F1c2VzIHRoZSBzaW5rIHRvIHdhaXQgaW4KCSAgcHJlcm9sbCwgdGhpcyBsZXRzIGEgcXVlcnkgc2VlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHR5LCBhbmQKCSAgcHVzaCB0aGUgcXVlcnkgdGhlbiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZC4gSG93ZXZlciwgdGhpcwoJICB3aWxsIG5vdCBiZSBkb25lIHRpbGwgYWZ0ZXIgcGVyb2xsLCBhbmQgdGhpcyB3aWxsIHRodXMgYmxvY2suCgkgIElmIHVwc3RyZWFtIHdhcyB3YWl0aW5nIG9uIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlIGJlZm9yZQoJICBzd2l0Y2hpbmcgdG8gUExBWUlORywgYSBkZWFkbG9jayB3b3VsZCBlbnN1ZS4KCSAgVGhpcyBoYWQgYmVlbiBmaXhlZCByZWNlbnRseSBieSBmYWlsaW5nIHF1ZXJpZXMgd2hlbiB0aGUKCSAgcXVldWUyIHdhcyBidWZmZXJpbmcsIGJ1dCB0aGlzIGhhcHBlbnMgdG8gYnJlYWsgc29tZSBvdGhlcgoJICBjYXNlIChwbGF5YmluIG9uIGEgbG9jYWwgaHR0cCBzZXJ2ZXIgYW5kIG1hdHJvc2thKSwgd2hpbGUKCSAgdGhpcyBwYXRjaCB3b3JrcyBmb3IgYm90aC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzNDUKCjIwMTQtMDQtMTYgMDc6NTk6MjcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBGaXggZXhwb3J0ZWQgc3ltYm9sIG5hbWUKCSAgaXQncyBfdGVtcGxhdGUgYW5kIG5vdCBfdGVtcGwKCjIwMTQtMDQtMTUgMjE6MTY6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIG1pc3Npbmcgc3BhY2UgaW4gZGVidWcgb3V0cHV0CgoyMDE0LTA0LTE1IDEyOjU4OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgbmV3IEFQSSB0byBzZXQgdXAgcGFkcyBmcm9tIG5vbi1zdGF0aWMgcGFkIHRlbXBsYXRlcwoKMjAxNC0wNC0xNCAyMTozNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEZpeCBtZW1vcnkgbGVhayBpbiB1bml0IHRlc3QKCjIwMTQtMDQtMTIgMTU6MjI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IHJlcGxhY2UgbmV3bHktYWRkZWQgR3N0VGVzdENsb2NrSURMaXN0IHN0cnVjdHVyZSB3aXRoIGEgc2ltcGxlIEdMaXN0CgkgIEtlZXAgaXQgc2ltcGxlLiBMaWtlbHkgYWxzbyBtYWtlcyB0aGluZ3MgZWFzaWVyIGZvciBiaW5kaW5ncywKCSAgYW5kIGVmZmljaWVuY3kgY2xlYXJseSBoYXMgbm90IGJlZW4gYSBjb25zaWRlcmF0aW9uIGdpdmVuIGhvdwoJICB0aGUgZXhpc3RpbmcgY29kZSBoYW5kbGVkIHRoZXNlIGxpc3RzLgoKMjAxNC0wNC0xMiAxNDozMDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgZG9jczogdGVzdGNsb2NrOiBmaXggdXAgU2luY2UgbWFya2VycwoKMjAxNC0wNC0xMiAwMDoyODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIHRlc3RjbG9jazogYWRkIGJhY2sgZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfcGVuZGluZ19pZF9jb3VudCgpCgkgIC4uIGJ1dCBkZXByZWNhdGUgaXQuIEFCSSBzdGFiaWxpdHkgYW5kIGFsbCB0aGF0LgoJICBJdCdzIGEgZGFuZ2Vyb3VzIGFuZCByYWN5IGZ1bmN0aW9uIHRvIHVzZS4KCjIwMTQtMDMtMjMgMTU6MDg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEzLTEyLTE2IDEwOjAxOjM3ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0Y2xvY2s6IGFkZCBzdXBwb3J0IGZvciB3YWl0aW5nIGFuZCByZWxlYXNpbmcgbXVsdGlwbGUgR3N0Q2xvY2tJRHMKCSAgSW4gb3JkZXIgdG8gYmUgZGV0ZXJtaW5pc3RpYywgbXVsdGlwbGUgd2FpdGluZyBHc3RDbG9ja0lEcyBuZWVkcyB0byBiZQoJICByZWxlYXNlZCBhdCB0aGUgc2FtZSB0aW1lLCBvciBlbHNlIG9uZSBjYW4gZ2V0IGludG8gdGhlIHNpdHVhdGlvbiB0aGF0CgkgIHRoZSBvbmUgYmVpbmcgcmVsZWFzZWQgZmlyc3QgY2FuIGFkZCBpdHNlbGYgYmFjayBhZ2FpbiBiZWZvcmUgdGhlIG5leHQKCSAgb25lIHdhaXRpbmcgaXMgcmVsZWFzZWQuCgkgIFRlc3QgYWRkZWQgZm9yIG5ldyBBUEkgYW5kIG9sZCB0ZXN0cyByZXdyaXR0ZW4gdG8gY29tcGx5LgoKMjAxNC0wNC0wMSAxNTozODo1NCArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzc25AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgYWNjZXNzIHVub3duZWQgYW5kIHBvc3NpYmx5IGFscmVhZHkgZnJlZWQgZXZlbnQKCSAgRG9uJ3QgcHJpbnQgdGhlIG5hbWUgb2YgdGhlIGV2ZW50IHdoZW4gb3duZXJzaGlwIGlzIGdpdmVuIGF3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc0ODQKCjIwMTQtMDQtMTIgMDc6MTM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogcHJpbnQgc3RydWN0dXJlIHZhbHVlcyBvZiBwcm9wZXJ0aWVzCgoyMDE0LTA0LTExIDIyOjM4OjI1ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogSG9sZCBwYWQgb2JqZWN0IGxvY2sgd2hlbiBjaGFuZ2luZyB0YWdzCgkgIEF2b2lkIHNwdXJpb3VzIGNyYXNoZXMgd2hlbiB0YWdzIGFyZSByZXRyaWV2ZWQganVzdCBhcwoJICBuZXcgb25lcyBhcnJpdmUuCgoyMDE0LTA0LTExIDEzOjQ1OjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCByYW5nZSBpdGVyYXRpb24KCSAgV2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgaXRlbXMgaWR4IHRvIGlkeCArIGxlbmd0aAoJICBXZSB1c2UgdGhlIGxlbiB2YXJpYWJsZSBhcyB0aGUgY29ycmVjdGVkIG51bWJlciBvZiBtZW1vcnkgdG8gaXRlcmF0ZQoJICBhbmQgdGhlbiBwcm9wZXJseSBnbyBvdmVyIGFsbCBpdGVtcy4KCSAgRml4ZXMgdGhlIGlzc3VlIHdoZXJlIHNwZWNpZnlpbmcgYW55IGlkeCBkaWZmZXJlbnQgZnJvbSAwIGhhZCBubyBlZmZlY3QKCSAgU3BvdHRlZCBieSBjbGFuZyBzdGF0aWMgYW5hbHl6ZXIKCjIwMTQtMDQtMDkgMTc6MDE6MDEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGVycm9yIG91dCB3aGVuIHRyeWluZyB0byBmaXhhdGUgYSBmcmFjdGlvbiBuZWFyIGFuIGludmFsaWQgdGFyZ2V0CgoyMDE0LTA0LTA0IDE3OjI4OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBVcGRhdGUgcnVubmluZyB0aW1lIGluIFFvUyBiYXNlZCBvbiB0aGUgcGFkIG9mZnNldHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjY5NwoKMjAxNC0wNC0wNCAxNzoxNToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBcHBseSBwYWQgb2Zmc2V0cyBvbiBhbGwgZXZlbnRzLCBub3QganVzdCBzZWdtZW50IGV2ZW50cwoKMjAxNC0wNC0wNCAxNzowNjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgcnVubmluZy10aW1lLW9mZnNldCBmaWVsZCB0byBhbGwgZXZlbnRzCgkgIEV2ZW50cyBwYXNzaW5nIHRocm91Z2ggI0dzdFBhZHMgdGhhdCBoYXZlIGEgcnVubmluZyB0aW1lCgkgIG9mZnNldCBzZXQgdmlhIGdzdF9wYWRfc2V0X29mZnNldCgpIHdpbGwgZ2V0IHRoZWlyIG9mZnNldAoJICBhZGp1c3RlZCBhY2NvcmRpbmcgdG8gdGhlIHBhZCdzIG9mZnNldC4KCSAgSWYgdGhlIGV2ZW50IGNvbnRhaW5zIGFueSBpbmZvcm1hdGlvbiB0aGF0IHJlbGF0ZWQgdG8gdGhlCgkgIHJ1bm5pbmcgdGltZSwgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZAoJICBiZWZvcmUgdXNhZ2Ugd2l0aCB0aGlzIG9mZnNldC4KCjIwMTQtMDQtMDkgMTY6NDA6MjcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBhdm9pZCBkaXZpZGluZyBieSB6ZXJvIHdoZW4gbXVsdGlwbHlpbmcgeS96IGJ5IDAveAoJICBUaGUgZ2NkIG9mIDAveCBpcyAwLCBhbmQgdGhpcyBpcyB0aGVuIHVzZWQgYXMgYSBkZW5vbWluYXRvci4KCjIwMTQtMDQtMDkgMTY6MDE6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFuZCBhY3R1YWxseSBydW4gdGhlIG90aGVyIHRlc3RzIGFnYWluCgoyMDE0LTA0LTA5IDE1OjU3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgdGhlIHF1ZXVlcyBpZiBsaW1pdHMgYXJlIGNoYW5naW5nIGluIGEgd2F5IHRoYXQgd291bGQgdW5ibG9jayB0aGUgcXVldWUKCjIwMTQtMDQtMDkgMTU6NDI6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCB0ZXN0IGZvciBjaGVja2luZyBpZiBwYWRzIGFyZSB3YWtlZCB1cCB3aGVuIGxpbWl0cyBhcmUgY2hhbmdlZAoKMjAxNC0wNC0wOSAxMDoxNTozMyArMDIwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IG1lbW9yeSBsZWFrCgkgIFF1ZXVlZCBmcmFtZXMgd2VyZSBub3QgcmVsZWFzZWQgYWZ0ZXIgYmVpbmcgcHVzaGVkLCB0aGlzCgkgIGNhdXNlZCBhIGxlYWsgb2YgdGhlIEdzdEJhc2VQYXJzZUZyYW1lIHN0cnVjdHVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzg4MwoKMjAxNC0wNC0wNyAxNzo0OToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkKCSAgTmVlZCBVVEYtOCBlbmNvZGluZy4KCjIwMTQtMDQtMDcgMTc6NDc6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgUmV2ZXJ0ICJjaGVjazogb25seSBjYWxsIHNldHBnaWQgb24gdmFsaWQgY2hpbGQgUElEcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiOTMxM2FmYzc1YjY4ZDk4NmU0NzNiNzZiNTU1NDM0NTY4NTc5MTJiLgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBpbiB1cHN0cmVhbSBsaWJjaGVjayBpbnN0ZWFkLiBXZSB3YW50CgkgIHRvIGtlZXAgZGlmZiBvZiBvdXIgbG9jYWwgY29weSB0byB1cHN0cmVhbSBsaWJjaGVjawoJICB0byBhIG1pbmltdW0uCgoyMDE0LTA0LTA3IDE3OjMzOjM0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogd2FybiBpZiB3ZSBjYW4ndCByZW1vdmUgb3VyIHRlbXBvcmFyeSBmaWxlCgkgIEl0J3Mgbm90IGZhdGFsIHRob3VnaCwgc28gZG8gbm90IGVycm9yIG91dC4KCSAgQ292ZXJpdHkgMTAzNzEyMQoKMjAxNC0wNC0wNyAxNTozODowOSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IG9ubHkgY2FsbCBzZXRwZ2lkIG9uIHZhbGlkIGNoaWxkIFBJRHMKCSAgQ292ZXJpdHkgMjA2MTg2CgoyMDE0LTA0LTA3IDE1OjM4OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IG5vIG5lZWQgZm9yIGEgdHJhbnNsYXRlZCBtZXNzYWdlIGZvciBpbXBvc3NpYmxlIGVycm9yIGNhc2VzCgkgIFRoZSBtZXNzYWdlIGlzIHRvbyB0ZWNobmljYWwgYW55d2F5LCB0aGUgZGVmYXVsdCBtZXNzYWdlIHdvcmtzCgkgIGp1c3QgZmluZSBoZXJlIGFzIHdlbGwuCgoyMDE0LTA0LTA3IDE1OjE4OjMyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBjYXRjaCBmYWlsdXJlIHRvIHNlZWsgYmFjayB0byB6ZXJvIGFmdGVyIHNlZWsgdGVzdAoJICBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gdGhlb3JldGljYWxseSwgYnV0IHNpbmNlIGEgdHJhbnNpZW50CgkgIGZhaWx1cmUgd291bGQgZ2V0IHVzIHRvIHNpbGVudGx5IHJlYWQgd3JvbmcgZGF0YSwgaXQncyB3b3J0aAoJICBlcnJvcmluZyBvdXQuIEFuZCBpdCBzaWxlbmNlIHRoaXM6CgkgIENvdmVyaXR5IDIwNjAzNAoKMjAxNC0wNC0wNyAxMTozNjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IERvbid0IGRpc3QgdGhlIGJpc29uIGFuZCBmbGV4IGdlbmVyYXRlZCBoZWFkZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcyNTMKCjIwMTQtMDQtMDYgMTE6MjM6MzQgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEhhbmRsZSBjYXBzIGZpZWxkIHZhbHVlcyBiZWluZyBOVUxMCgkgIEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUoKSB3b3VsZCBjYXVzZSBhIHNlZ2ZhdWx0IHdoZW5ldmVyIGl0IGVuY291bnRlcmVkIGFuCgkgIGVsZW1lbnQncyBjYXBzIHRoYXQgaGFkIGEgZmllbGQgdmFsdWUgYmVpbmcgTlVMTC4gU3VjaCBmaWVsZHMgYXJlIHN1Y2Nlc3NmdWxseQoJICBoYW5kbGVkIGUuZy4gYnkgR1NUXypfT0JKRUNUKCksIGFuZCB3aXRoIHRoaXMgcGF0Y2ggc28gZG9lcwoJICBHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKCkuIEV2ZW4gaWYgc3RyaW5nIGZpZWxkcyB3aXRoIGEgTlVMTCB2YWx1ZSBhcmUKCSAgbm90IHN1cHBvc2VkIHRvIGJlIHZhbGlkIGluIGNhcHMsIHN1Y2ggY2FwcyBjYW4gYmUgY3JlYXRlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzcwMQoKMjAxNC0wNC0wNSAxMTo0NDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSBhbHdheXMtdHJ1ZS1jaGVja3MKCSAgYSBnc2l6ZSBpcyBndWFyYW50ZWVkIHRvIGJlIHBvc2l0aXZlIG9uIGFsbCBzeXN0ZW1zIHNpbmNlIGl0J3MgYW4KCSAgdW5zaWduZWQgdmFsdWUuCgkgIENJRCAjMTAzNzE0NwoKMjAxNC0wNC0wNSAxMTo0NDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogUmVtb3ZlIGFsd2F5cy10cnVlLWNoZWNrcwoJICBhIGdzaXplIGlzIGd1YXJhbnRlZWQgdG8gYmUgcG9zaXRpdmUgb24gYWxsIHN5c3RlbXMgc2luY2UgaXQncyBhbgoJICB1bnNpZ25lZCB2YWx1ZS4KCSAgQ0lEICMxMDM3MTQ1CgkgIENJRCAjMTAzNzE0NgoKMjAxNC0wNC0wNSAxMTozNzo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFByZXZlbnQgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8KCSAgVGhlIHN0ZXAgY2FuIGVuZCB1cCBiZWluZyB6ZXJvIGlmIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGlzbid0IGEgdmFsaWQKCSAgcmFuZ2UgR1ZhbHVlLgoJICBJbiB0aG9zZSBjYXNlcywgcmV0dXJuIEZBTFNFLgoJICBXZSBkb24ndCB1c2UgZ19yZXR1cm4qX2lmX2ZhaWwgc2luY2UgaXQgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiB0cmlnZ2VyZWQKCSAgYnkgdGhlIGFib3ZlLW1lbnRpb25uZWQgX2dldF9zdGVwKCkgZnVuY3Rpb25zLgoJICBTcG90dGVkIGJ5IENvdmVyaXR5LgoKMjAxNC0wMy0yNSAxMjoyMzozMiArMDEwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uQHBleGlwLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogRml4IGNvbXBhcmlzb24gb2YgaW50L2ludDY0IHJhbmdlCgkgIENoZWNraW5nIHN0ZXAgdGhyZWUgdGltZXMgc2VlbXMgdW5uZWNlc3NhcnkuCgkgIEEgc2ltaWxhciBidWcgd2FzIGZpeGVkIGZvciBkb3VibGUgcmFuZ2UgaW4KCSAgY29tbWl0IDNlYTZiMDRjMTBiMTBmZGU5ZDYyMTkwMDY4ZjI3NGI5NDBlZGVmMDcKCjIwMTQtMDQtMDMgMTg6MTc6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBidWlsZCB3aXRoIGRlYnVnIGNhY2hlZCBidWZmZXJzIGVuYWJsZWQKCSAgZ3N0aW5wdXRzZWxlY3Rvci5jOjgxODo1OiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsCgkgIGFuZCBubyBmb3JtYXQgYXJndW1lbnRzIFstV2Vycm9yPWZvcm1hdC1zZWN1cml0eV0KCjIwMTQtMDQtMDMgMjA6MzE6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE1ha2Ugc3VyZSB0byBzZXQgdGhlIERJU0NPTlQgZmxhZyBvbiB0aGUgZmlyc3QgYnVmZmVyIG9mIGVhY2ggR09QIGluIHJldmVyc2UgcGxheWJhY2sgbW9kZQoKMjAxNC0wNC0wMyAxMzoyMDoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZpbmcgZHVwbGljYXRlZCBpbm5lciBpZgoJICBUaGUgaW5uZXIgaWYgcmVwbGljYXRlcyB0aGUgc2FtZSBjb2RlIG9mIHRoZSBvdXRlciBhbmQgaXMgdXNlbGVzcwoJICBhcyBmbGFnX3NlZ21lbnQgd2lsbCBhbHdheXMgYmUgdHJ1ZS4KCSAgRm91bmQgYnkgY292ZXJpdHkuCgoyMDE0LTA0LTAzIDA3OjM2OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZ3N0LWxhdW5jaC4xOiBQbGF5YmluMiBpcyBkZWFkLCBsb25nIGxpdmUgcGxheWJpbgoJICBMb29rcyBsaWtlIHRoYXQgd2FzIHRoZSBsYXN0IHJlbWFpbmluZyBtZW50aW9uIGluIGNvcmUgLi4uCgoyMDE0LTA0LTAyIDIzOjUyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEFkZCBtaXNzaW5nIFxuIGluIG91dHB1dAoKMjAxNC0wNC0wMSAxNTozNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBnc3QtdW5pbnN0YWxsZWQ6IGdzdC1wbHVnaW5zLWdsIGxpYnMgZ290IG1lcmdlZCBpbnRvIC1iYWQKCjIwMTQtMDMtMjkgMTA6MTg6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW5jbHVkZSBldmVudCB0eXBlIGluIGRlYnVnIG91dHB1dCB3aGVuIGRlbGF5aW5nIGEgc3RpY2t5IGV2ZW50IGJlY2F1c2Ugb2Ygbm90LWxpbmtlZAoKMjAxNC0wMy0yOSAxMDoxNjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNwbGl0dGluZyBhbmQgcmV2ZXJzaW5nIG9mIEdPUHMgaW4gcmV2ZXJzZSBwbGF5YmFjayBtb2RlCgkgIFdlIGl0ZXJhdGUgdGhlIGN1cnJlbnQgZGlzY29udCBncm91cCBiYWNrd2FyZHMgYW5kIHB1c2ggZWFjaCBHT1AgZm9yd2FyZHMsCgkgIHN0YXJ0aW5nIGZyb20gdGhlIGxhc3Qgb25lLiBIb3dldmVyIGlmIHRoZSBmaXJzdCBidWZmZXIgaW4gdGhlIGN1cnJlbnQKCSAgZGlzY29udCBncm91cCBpcyBhIGtleWZyYW1lLCB3ZSB3aWxsIGtlZXAgaXQgYXJvdW5kIHVudGlsIG5leHQgdGltZSwKCSAgd2hpY2ggaXMgZmFyIGZyb20gaWRlYWwuIEp1c3QgcHVzaCBpdC4KCjIwMTQtMDMtMjUgMTI6Mzg6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IHBsYWNlIHRoZSBkZWVwLW5vdGlmeSBvbiB0aGUgcmlnaHQgcGlwZWxpbmUKCSAgSWYgdGhlIHRvcGxldmVsIGJpbiBpcyBub3Qgbm90IGEgcGlwZWxpbmUsIHdlIHBsYWNlIHRoZSBiaW4gaW4gYQoJICBwaXBlbGluZS4gQWxzbyBtYWtlIHN1cmUgdGhhdCB3ZSBjb25uZWN0IHRvIHRoZSBkZWVwLW5vdGlmeSBvZiB0aGlzIG5ldwoJICBwaXBlbGluZSBiZWNhdXNlIHdlIHdpbGwgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KCkgZnJvbSBpdCBsYXRlci4KCjIwMTQtMDMtMjQgMTY6MzQ6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY29weSBsYXN0X3NhbXBsZSBvbiBEUkFJTgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgaG9sZCBhIHJlZiB0byBhIGJ1ZmZlciBmcm9tIGJlZm9yZSB0aGUgRFJBSU4gcXVlcnkgYnkKCSAgbWFraW5nIGEgY29weSBvZiB0aGUgbGFzdF9idWZmZXIuCgoyMDE0LTAzLTI0IDE2OjExOjMwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkb24ndCBjbGVhciBUQUcgb24gTlVMTCBidWZmZXIKCSAgV2hlbiB0aGUgYnVmZmVyIGZhaWxzIHRvIGNvcHksIGRvbid0IGNsZWFyIHRoZSBUQUcgb24gdGhlIE5VTEwgcG9pbnRlci4KCjIwMTQtMDMtMjAgMDY6MTQ6MzMgLTA0MDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZXZlbnQvcHJlcm9sbCBkZWFkbG9jawoJICBUaGUgcWxvY2sgaXMgcmVsZWFzZWQgYmV0d2VlbiBwb3BwaW5nIGEgYnVmZmVyIGZyb20gdGhlIHF1ZXVlCgkgIGFuZCBwdXNoaW5nIGl0LiBXaGVuIHRoaXMgYnVmZmVyIGNhdXNlcyB0aGUgc2luayB0byB3YWl0IGluCgkgIHByZXJvbGwsIHRoaXMgbGV0cyBhIHF1ZXJ5IHNlZSB0aGF0IHRoZSBxdWV1ZSBpcyBlbXB0eSwgYW5kCgkgIHB1c2ggdGhlIHF1ZXJ5IHRoZW4gd2FpdCBmb3IgaXQgdG8gYmUgc2VydmljZWQuIEhvd2V2ZXIsIHRoaXMKCSAgd2lsbCBub3QgYmUgZG9uZSB0aWxsIGFmdGVyIHBlcm9sbCwgYW5kIHRoaXMgd2lsbCB0aHVzIGJsb2NrLgoJICBJZiB1cHN0cmVhbSB3YXMgd2FpdGluZyBvbiBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJSBiZWZvcmUKCSAgc3dpdGNoaW5nIHRvIFBMQVlJTkcsIGEgZGVhZGxvY2sgd291bGQgZW5zdWUuCgkgIFdlIGZpeCBpdCBieSByZWZ1c2luZyB0aGUgcXVlcnkgd2hlbiBidWZmZXJpbmcsIGFzIHBlciBXaW0ncwoJICByZWNvbW1lbmRhdGlvbiBvbiBJUkMuCgoyMDE0LTAzLTIzIDEyOjUzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJICB0ZXN0czogbWFrZSBuZXRjbGllbnRjbG9jayB0ZXN0IGZhc3RlciBhbmQgbGVzcyBmbGFreQoKMjAxNC0wMy0yMSAxMjoxNjo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCBuZXcgZmxhZyB0eXBlcyB0byBwYXNzIG1ha2UgY2hlY2sKCjIwMTQtMDMtMTkgMDk6MzM6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzIGFuZCBtYXliZSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHJpZ2h0IHdoZW4gZW5hYmxpbmcgYnVmZmVyaW5nCgoyMDE0LTAzLTE5IDA5OjMyOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzIGFuZCBtYXliZSBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHJpZ2h0IHdoZW4gZW5hYmxpbmcgYnVmZmVyaW5nCgoyMDE0LTAzLTE4IDE4OjEyOjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IFVwZGF0ZSBwb3NpdGlvbnMgd2UncmUgY2hlY2tpbmcgZm9yIGFmdGVyIGEgc3RhdGUgaXMgbG9zdAoKMjAxNC0wMy0xOCAxODoxMToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVwZGF0ZSBzdGFydCB0aW1lIHdoZW4gd2UgbG9zZSBvdXIgc3RhdGUKCSAgT3RoZXJ3aXNlIHdlIHJlcG9ydCBub3QgdGhlIGNvcnJlY3QgcG9zaXRpb24gd2hpbGUgdGhlIHN0YXRlIGlzIGxvc3QuCgoyMDE0LTAzLTE4IDE2OjQ3OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgY2xpcCB0aGUgcmVwb3J0ZWQgcG9zaXRpb24gaW4gUEFVU0VEIHRvIGFmdGVyIHRoZSBsYXN0IGJ1ZmZlciBlbmQgdGltZXN0YW1wCgkgIE90aGVyd2lzZSB3ZSBqdW1wIGZvcndhcmQgd2hlbiBwYXVzaW5nLCBhbmQgZ28gYmFja3dhcmRzIGEgYml0IGFnYWluCgkgIHdoZW4gcmVzdW1pbmcgcGxheWJhY2suCgoyMDE0LTAzLTE3IDEwOjA1OjMxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0cyBmb3IgR3N0VG9jIGxvb3AKCjIwMTQtMDMtMTcgMTA6MDU6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBleHBvcnQgZm9yIGdzdCpkZXZpY2Ugc3ltYm9scwoKMjAxNC0wMy0xNyAwOTo1MTo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogVXNlIGxvY2FsIGluY2x1ZGVzIGFuZCB1c2UgZ3N0X3ByaXZhdGUgYmVmb3JlIGFueXRoaW5nCgkgIFNob3VsZCBmaXggYnVpbGQgaXNzdWVzIG9uIEJTRAoKMjAxNC0wMy0xNiAyMDo1MDo1MyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5wZWN0OiBQcmludCBkZXZpY2UgbW9uaXRvcgoKMjAxNC0wMy0xNiAxNTo1Njo1OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlOiBBZGQgImtsYXNzIiB0byBHc3REZXZpY2VzCgoyMDE0LTAzLTE2IDE4OjAyOjU2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSAgZGV2aWNlbW9uaXRvcjogTWFrZSBjbGFzc2VzIGludG8gcHVyZSBzdHJpbmdzCgkgIEluc3RlYWQgb2YgaGF2aW5nIHN0cmluZ3MgJiBmbGFncywgbWFrZSB0aGVtIGp1c3Qgc3RyaW5ncwoKMjAxNC0wMy0xNyAwNjoyOToyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgRml4IGV4dGVuZGVkIG1lc3NhZ2UgaGFuZGxpbmcgd2l0aCBnc3RfYnVzX3BvcF90aW1lZF9maWx0ZXJlZCgpCgkgIE1ha2Ugc3VyZSBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIGRvbid0IGdldCBhY2NpZGVudGFsbHkgbWF0Y2hlZAoJICB3aGVuIG5vdCBhc2tlZCBmb3IgaW4gdGhlIG1hc2sKCjIwMTQtMDMtMTcgMDU6MjQ6MTIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IEF2b2lkIHBvaW50bGVzcyBvYmplY3QgbG9jayBmb3J3YXJkaW5nIG1lc3NhZ2VzLgoJICBFdmVyeSBpbnN0YW5jZSBvZiBjYWxsaW5nIGJpbl9kb19tZXNzYWdlX2ZvcndhcmQoKSBmaXJzdCB0b29rIHRoZQoJICBvYmplY3QgbG9jaywgc28gdGhhdCBiaW5fZG9fbWVzc2FnZV9mb3J3YXJkKCkgY291bGQgZHJvcCBpdCBhbmQKCSAgdGhlbiByZWNsYWltLiBJbnN0ZWFkLCBvbmx5IHRha2UgdGhlIG9iamVjdCBsb2NrIGFmdGVyd2FyZCB3aGVyZQoJICBuZWVkZWQuCgoyMDE0LTAyLTE5IDAyOjI3OjM2ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtZHVwb25jaGVsbGUxQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFdoZW4gc2VlayBmbHVzaGVkLCBpbW1lZGlhdGVseSBzZXQgZW9zcGFkcyB0byAwCgkgIFRoaXMgcHJldmVudHMgc2l0dWF0aW9ucyB3aGVyZSBhIGZpcnN0IGJyYW5jaCB3b3VsZCBnZXQgc2Vla2VkIGFuZAoJICByZWNlaXZlIGEgYnVmZmVyIGJlZm9yZSBhbGwgYnJhbmNoZXMgZ290IHNlZWtlZCwgYW5kIHRodXMgY29sbGVjdGVkCgkgIHdvdWxkIGdldCBjYWxsZWQgYmFzZWQgb24gRU9TIGZyb20gdGhlIHByZXZpb3VzIHNlZ21lbnQuCgkgIEFzIGEgY29uc2VxdWVuY2UsIGR1cmluZyB0aGUgcHJvY2VzcyBvZiBzZWVraW5nLCBkb24ndCBkZWNyZWFzZQoJICB0aGUgZW9zcGFkcyBudW1iZXIgd2hlbiBhIEZMVVNIX1NUT1AgaXMgcmVjZWl2ZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ1NzEKCjIwMTQtMDMtMTYgMTc6NDc6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVbnJlZiBwZWVyIHBhZAoKMjAxNC0wMi0xNiAyMDozNTowOSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWR1cG9uY2hlbGxlMUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBGb3J3YXJkIHNlZWsgZXZlbnRzIHRvIHRoZSBwZWVyIGRpcmVjdGx5CgkgIFRha2VuIGZyb20gdGhlIGFkZGVyIHNlZWsgaGFuZGxpbmcgY29kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQ2MQoKMjAxNC0wMS0wMiAyMjozMDoxMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogZXhwYW5kIEdzdFRvY0VudHJ5IHdpdGggbG9vcCBmaWVsZHMKCSAgQWRkIGxvb3BfdHlwZSBhbmQgcmVwZWF0X2NvdW50IGZpZWxkcyB0byBHc3RUb2NFbnRyeSBwbHVzIHNldHRlcnMgYW5kIGdldHRlcnMuCgkgIFRoaXMgYWxsb3dzIHRvIHJlcHJlc2VudCBlZGl0LWxpc3RzIGluIGEgdG9jIGFzIHdlbGwgYXMgbG9vcHMgaW4gaW5zdHJ1ZW1udHMgKHdhdiwgeGkpLgoJICBBUEk6IGdzdF90b2NfZW50cnlfc2V0X2xvb3AKCSAgQVBJOiBnc3RfdG9jX2VudHJ5X2dldF9sb29wCgoyMDE0LTAzLTE2IDE1OjE5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogdXBkYXRlIGZvciBuZXcgbWVzc2FnZSBBUEkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxMy0wMS0wOCAyMTozMDo0NCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogQWRkIGRldmljZSBtb25pdG9yIGFnZ3JlZ2F0b3IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxNDowODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIGFuZCBnc3RfYnVzX3RpbWVkX3BvcF9maWx0ZXJlZAoKMjAxNC0wMy0xNiAxNDowODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlLCBidXM6IGRvIGV4dGVuZGVkIG1lc3NhZ2UgdHlwZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwMgoKMjAxNC0wMy0xNiAxNDowNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggaW5kZW50YXRpb24KCjIwMTItMTAtMTYgMTI6Mjc6MDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBBZGQgR3N0RGV2aWNlTW9uaXRvciBhbmQgcmVsYXRlZAoJICBBbHNvIGFkZCBHc3REZXZpY2UgYW5kIEdzdERldmljZU1vbml0b3JGYWN0b3J5CgkgIEFuZCBhZGQgY29kZSB0byB0aGUgcmVnaXN0cnkgdG8gc2F2ZSB0aGVtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTMtMDgtMTQgMTU6NTY6MTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogQWRkIEdTVF9NRVNTQUdFX0VYVEVOREVECgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTE6MDU6NTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBhY3R1YWxseSByZXR1cm4gZGF0YS5yZXQKCSAgVGhlIHJldHVybiB2YWx1ZSBmcm9tIGdzdF9wYWRfZm9yd2FyZCgpIGlzIHRoZSBhZ2dyZWdhdGVkIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBjYWxsYmFjayBhbmQgdGhlIGNhbGxiYWNrIHJldHVybnMgRkFMU0UgdG8gY29udGludWUgaXRlcmF0aW5nLgoKMjAxNC0wMy0xNSAxNTo1NDozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGZvcndhcmQgcmV0dXJuIHZhbHVlIGZyb20gZ3N0X3BhZF9mb3J3YXJkCgkgIEluc3RlYWQgb2YgaWdub3JpbmcgdGhlIHJldHVybiB2YWx1ZSBhbmQgYWx3YXlzIHJldHVybiBUUlVFIHBhc3MgdGhlIGFscmVhZHkgYWdyZWdhdGVkIHJlc3VsdCBiYWNrLgoKMjAxNC0wMy0xNSAxMzo1NzoxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCBtYWtlLWNoZWNrIGJ5IHJ1bm5pbmcgJ21ha2UgdXBkYXRlLWV4cG9ydHMnCgoyMDE0LTAzLTE0IDEzOjMyOjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGZpeCBlb3MgY291bnQgb24gdGVzdCBmb3Igbm90LWxpbmtlZCBjYXNlCgkgIEZyb20gdGhlIHRlc3QgY2FzZToKCSAgLyogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBtdWx0aXF1ZXVlIHdpdGggMiBzdHJlYW1zLiBPbmUgcmVjZWl2ZXMKCSAgKiBhIGNvbnN0YW50IGZsb3cgb2YgYnVmZmVycywgdGhlIG90aGVyIG9ubHkgZ2V0cyBvbmUgYnVmZmVyLCBhbmQgdGhlbgoJICAqIG5ldy1zZWdtZW50IGV2ZW50cywgYW5kIHJldHVybnMgbm90LWxpbmtlZC4gVGhlIG11bHRpcXVldWUgc2hvdWxkIG5vdCBmaWxsLgoJICAqLwoJICBJZiBvbmUgb2YgdGhlIHF1ZXVlcyBnb2VzIEVPUyBhbmQgdGhlIG90aGVyIHJldHVybnMgTk9UX0xJTktFRCB0aGUgc3RyZWFtCgkgIGNhbiBiZSBjb25zaWRlcmVyZWQgRU9TIGFzIGEgTk9UX0xJTktFRCBtZWFucyB0aGF0IG9uZSBvZiB0aGUgYnJhbmNoZXMgaGFzIG5vCgkgIHNpbmsgZG93bnN0cmVhbSB0aGF0IHdpbGwgYmxvY2sgdGhlIEVPUyBtZXNzYWdlIHBvc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMDEgMjM6MTg6NDQgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGFwdCBnc3RfYWRhcHRlcl9jb3B5KCkgZm9yIGJpbmRpbmdzCgkgIFRoaXMgaXMgZG9uZSBieSBpbnRyb2R1Y2luZyBhIG5ldyBnc3RfYWRhcHRlcl9jb3B5X2J5dGVzKCkgY2FsbCB0aGF0CgkgIHJldHVybnMgYSBHQnl0ZXMgc3RydWN0dXJlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NDc2CgoyMDE0LTAzLTE0IDE4OjQwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCBtdWx0aXF1ZXVlIGRvY3MgZm9yIG5ldyB0ZW1wbGF0ZSBuYW1lcyBmb29fJWQgLT4gZm9vXyV1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYzNTgKCjIwMTQtMDMtMTEgMjE6NTU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzCgoyMDE0LTAzLTExIDIxOjQ0OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IGdzdF9wYWRfbGlua19nZXRfbmFtZSgpIGFuZCBmaXggU2luY2UgbWFya2VyCgkgIEhhcyBhZGRlZCBiZW5lZml0IHRoYXQgY29tcGlsZXIgbWlnaHQgd2FybiBpZiBtb3JlIHZhbHVlcwoJICBhcmUgYWRkZWQgdG8gdGhlIGVudW0uCgoyMDE0LTAzLTExIDIxOjQ2OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZGVidWcgaGVscGVyIGZvciBHc3RQYWRMaW5rUmV0dXJuIG5hbWVzCgkgIEFkZCBhIGhlbHBlciBsaWtlIGdzdF9mbG93X2dldF9uYW1lKCkgZm9yIEdzdFBhZExpbmtSZXR1cm4uIFVzZSB0aGlzIGluIGNvcmUuCgkgIEFQSTogZ3N0X3BhZF9saW5rX2dldF9uYW1lKCkKCjIwMTQtMDMtMTEgMjE6MTI6MTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSBzdG9yZV9zdGlja3kgZXZlbnRzIGFkZCBhZGQgbW9yZSBsb2dnaW5nCgkgIFVzZSB0aGUgcGFkIGFzIG9iamVjdCBmb3IgbG9nZ2luZyB0byBnZXQgbW9yZSBjb250ZXh0LiBVc2UKCSAgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKSBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGV2ZW50LiBUaGlzIGF2b2lkcyBhIHdhcm5pbmcKCSAgYXMgaGVyZSB0aGUgcGFkIGlzIG5vdCB5ZXQgbGlua2VkIGFuZCB3ZSBhY3R1YWxseSBkb24ndCB3YW50IHRvIHNlbmQgYW55d2F5LgoKMjAxNC0wMy0xMCAxMDowMDoyOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGlmIGJ1ZmZlcmluZyBpcyBkaXNhYmxlZCB3aGlsZSBidWZmZXJpbmcsIHBvc3QgMTAwJSBtZXNzYWdlCgkgIEF2b2lkcyBzdGFsbCB3YWl0aW5nIGZvciBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJQoKMjAxNC0wMy0xMCAwOTo0OTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCSAgYnVmZmVyaW5nX2l0ZXJhdGlvbiB3YXMgbmV2ZXIgdXNlZAoKMjAxNC0wMy0xMCAwOTo0OTowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiBxdWV1ZTI6IHByZXNlcnZlIGxhc3QgZmxvdyByZXN1bHQgd2hlbiBwdXNoaW5nIGV2ZW50cwoJICBBdm9pZHMgbWlzdGFrZW5seSByZXR1cm5pbmcgX09LIHdoZW4gZG93bnN0cmVhbSBpcyBzdGlsbAoJICBfTk9UX0xJTktFRCBvbiBzdWJzZXF1ZW50IHJlY2VpdmVkIHBhZCBwdXNoZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0xMCAwOTo0OTowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaWYgYnVmZmVyaW5nIGlzIGRpc2FibGVkIHdoaWxlIGJ1ZmZlcmluZywgcG9zdCAxMDAlIG1lc3NhZ2UKCSAgQXZvaWRzIHN0YWxsIHdhaXRpbmcgZm9yIGJ1ZmZlcmluZyB0byByZWFjaCAxMDAlCgoyMDE0LTAzLTEwIDA5OjQ4OjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcmVzZXQgbGFzdCBwdXNoIHJlc3VsdCB3aGVuIHB1c2hpbmcgZXZlbnRzCgkgIFVzZSB0aGUgbGFzdCByZXN1bHQgYXMgYSBkZWZhdWx0IHdoZW4gcHVzaGluZyBhIGl0ZW0gZnJvbSBhIHNpbmdsZSBxdWV1ZSwKCSAgb3RoZXJ3aXNlIHRoZSBzdGF0dXMgZ2V0cyByZXNldCB0byBfT0sgd2hlbiBwdXNoaW5nIGV2ZW50cy4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBtaXN0YWtlbmx5IGFjdGl2YXRpbmcgYSBub3QtbGlua2VkIHN0cmVhbQoJICB0aGF0IGlzIGJlaW5nIGlnbm9yZWQgdXBzdHJlYW0gYXMgaXQgaXMgbm90IGJlaW5nIHVzZWQgKGFkYXB0aXZlCgkgIHNjZW5hcmlvcyksIGl0IHdpbGwgbWFrZSB0aGUgbXVsdGlxdWV1ZSBwb3N0IGEgYnVmZmVyaW5nIG1lc3NhZ2UKCSAgb24gYSBwYWQgdGhhdCB3b24ndCByZWNlaXZlIGJ1ZmZlcnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTkxNwoKMjAxNC0wMy0wNyAyMDo0Mzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXI6IGludmVydCBtZWFuaW5nIG9mIEdTVF9CVUZGRVJfRkxBR19UQUdfTUVNT1JZCgkgIEl0J3MgbmljZXIgdG8gb25seSBoYXZlIGl0IHNldCB3aGVuIHNvbWV0aGluZyBub3Rld29ydGh5CgkgIGhhcHBlbmVkIGFuZCBvdGhlcndpc2UgdW5zZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU4NjIKCjIwMTQtMDMtMDYgMjI6NTE6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGdzdF9wYWRfYWRkX3Byb2JlKCkgcmV0dXJuIHZhbHVlIGRvY3MKCSAgQWxzbyBmaXggY29tbWVudCB0eXBvcyBhbmQgYWRkIG1vcmUgZGV0YWlsIGluIHRoZSBsb2dzLgoKMjAxNC0wMy0wNiAyMDo0MDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZmFrZXNpbmssIGlkZW50aXR5LCBmYWtlc3JjOiBmaXggZGVidWcgcHJpbnRpbmcgaWYgVEFHX01FTU9SWSBidWZmZXIgZmxhZwoJICBUaGUgSU5fQ0FQUyBmbGFnIGRvZXMgbm90IGV4aXN0IGFueSBtb3JlLgoKMjAxNC0wMy0wNiAxMzowMTo0MCArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogdXNlIGdzdF9wYWRfZ2V0X3BlZXIgdG8gYWNxdWlyZSBhIHJlZmVyZW5jZSB0byB0aGUgdGFyZ2V0IHBhZAoJICBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbG9jayBvZiB0aGUgaW50ZXJuYWwgcGFkIGlzIGhlbGQgd2hpbGUgcmVmZXJlbmNpbmcKCSAgaXQncyBwZWVyICg9IHRoZSB0YXJnZXQgcGFkKSwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBwZWVyIGlzIG5vdAoJICBnb2luZyB0byBiZSB1bmxpbmtlZC9kZXN0cm95ZWQgaW4gdGhlIG1lYW50aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODA5CgoyMDE0LTAzLTA2IDEyOjQwOjIzICswMjAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgcGFkIHdoaWxlIHVubGlua2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODA5CgoyMDE0LTAzLTAyIDA1OjA4OjI0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBJZ25vcmUgZ2NvdiBpbnRlcm1lZGlhdGUgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTQ3OAoKMjAxNC0wMy0wMiAxNzo1NTo0NSArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgZG9jczogRml4IHR5cG9zIGFuZCByZW1vdmUgdW5rbm93biBhbm5vdGF0aW9ucwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1NTE3CgoyMDE0LTAyLTI4IDIwOjUzOjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgZG9jczogdXNlIHRoZSBuZXcgbWFya2Rvd24gZm9yIG9yZGVyZWQgbGlzdC4KCSAgVGhpcyB3YXMgcGxhaW4gdGV4dCB0aGF0IGhhZCBhbGwgbGlzdCBpdGVtcyBvbmUgYWZ0ZXIgdGhlIG90aGVyIChpbmNsdWRpbmcgYQoJICByZXBlYXRlZCBudW1iZXIpLiBOb3cgaXQgd2lsbCBhdGxlYXN0IGxvb2sgZ29vZCB3aGVuIHByb2Nlc3NlZCB3aXRoIGd0ay1kb2MKCSAgMS4yMC4KCjIwMTQtMDItMjggMDk6MzQ6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZlMTY3MmUgdG8gYmNiMTUxOAoKMjAxNC0wMi0yNyAyMjoyNjozMCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGRvY3M6IGZpeCBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IGMwNjhiMjI1ZmVmNWE5YmYwCgkgIC0gRml4IGZhaWxpbmcgYnVpbGQKCSAgLSBEcm9wIGFkZGVkIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTQtMDItMjcgMTg6Mjc6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIHJldHVybiB2YWx1ZXMgdG8gZ19yZXR1cm5faWZfZmFpbAoJICBGSXhlcyBwcmV2aW91cyBjb21taXQuCgoyMDE0LTAyLTI3IDE4OjA2OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBkb2NzOiBjb252ZXJ0IHRoZSBleGFtcGxlcyB0byB1c2UgZ3RrLWRvYyBtYXJrdXAsIGluc3RlYWQgb2YgZG9jYm9vawoJICBUaGUgZ3RrLWRvYyBtYXJrdXAgaXMgbGVzcyBpbnRydXNpdmUgYW5kIGJldHRlciBoYW5kbGVkIHdoZW4gY3JlYXRpbmcgZG9jcyBmb3IKCSAgbGFuZ3VhZ2UgYmluZGluZ3MuIFRoZSB0aXRsZXMgKHdoZXJlIHVzZWQpIHdoZXJlIG5vdCBhZGRpbmcgbXVjaC4KCjIwMTQtMDItMjcgMTY6NDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgbmV3IEFQSSBkbyBkb2NzCgoyMDE0LTAyLTI3IDE2OjQwOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IG9ubHkgcmVsZWFzZSBidWZmZXJzIHdpdGggd3JpdGFibGUgbWVtb3J5CgkgIENoZWNrIGlmIHRoZSBtZW1vcnkgaXMgd3JpdGFibGUgYmVmb3JlIHJlbGVhc2luZyB0aGUgYnVmZmVyIGludG8gdGhlCgkgIHBvb2wgYWdhaW4uCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMgc2NlbmFyaW8uCgoyMDE0LTAyLTI3IDE2OjM5OjUwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBmdW5jdGlvbiB0byBjaGVjayB3cml0YWJpbGl0eSBvZiBtZW1vcnkKCSAgQ2hlY2sgaWYgbWVtb3J5IGlzIHdyaXRhYmxlIGluIGEgYnVmZmVyIGFuZCB0aHVzIGlzIGV4Y2x1c2l2ZWx5IG93bmVkIGJ5CgkgIHRoaXMgYnVmZmVyLgoKMjAxNC0wMi0yNyAxNToxNDo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBVc2UgVEFHX01FTU9SWSB0byBjaGVjayBtZW1vcnkgYmVmb3JlIHJlbGVhc2luZwoJICBUYWcgYWxsb2NhdGVkIGJ1ZmZlcnMgd2l0aCBUQUdfTUVNT1JZLiBXaGVuIHRoZXkgYXJlIHJlbGVhc2VkIGxhdGVyLAoJICBvbmx5IGFkZCB0aGVtIGJhY2sgdG8gdGhlIHBvb2wgaWYgdGhlIHRhZyBpcyBzdGlsbCB0aGVyZSBhbmQgdGhlIG1lbW9yeQoJICBoYXMgbm90IGJlZW4gY2hhbmdlZCwgb3RoZXJ3aXNlIHRocm93IHRoZSBidWZmZXIgYXdheS4KCSAgQWRkIHVuaXQgdGVzdCB0byBjaGVjayB2YXJpb3VzIHNjZW5hcmlvcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDQ4MQoKMjAxNC0wMi0yNyAxNDozNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgYSBuZXcgZmxhZyB0byB0cmFjayBtZW1vcnkgY2hhbmdlcwoJICBBZGQgYSBmbGFnIHRvIGNoZWNrIGlmIHRoZSBtZW1vcnkgY2hhbmdlZCBpbiBhIGJ1ZmZlci4KCjIwMTQtMDItMjYgMTU6MzY6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSB3cm9uZyBjb21tZW50CgkgIFJlZmNvdW50IGFuZCB3cml0YWJpbGl0eSBhcmUgbm90IHJlbGF0ZWQgZm9yIG1lbW9yeSBvYmplY3RzLgoKMjAxNC0wMi0yNSAxNzo0Njo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiByZWZhY3RvciBmcmVlX2J1ZmZlcgoJICBNYWtlIGEgZG9fZnJlZV9idWZmZXIgbWV0aG9kIHRvIGFsc28gZGVjcmVtZW50cyB0aGUgbnVtYmVyIG9mIGFsbG9jYXRlZAoJICBidWZmZXJzLiBTdG9wIHdpbGwgbm93IGJlIHN1Y2Nlc3NmdWwgd2hlbiBhbGwgYnVmZmVycyBhcmUgZnJlZWQuCgoyMDE0LTAyLTI2IDIyOjEwOjI4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxYTA3ZGE5IHRvIGZlMTY3MmUKCjIwMTQtMDItMjYgMjA6MjQ6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBhZGQgYSBsZWdlbmQgdG8gcGlwZWxpbmUgZHVtcHMKCSAgV2UgdXNlIGEgY291cGxlIG9mIHN5bWJvbHMgdG8gcmVwcmVzZW50IHN0YXRlcy9mbGFncy4gQWRkIGEgc2hvcnQgZXhwbGFuYXRpb24gZm9yIHRoZW0uCgoyMDEzLTA3LTMxIDA5OjI2OjI2ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogUHJpbnQgaWYgdGhlcmUgaXMgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MTg5CgoyMDE0LTAyLTI1IDE2OjExOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IFVzZSBnZXRfdWludDY0KCkgaW4gZ3N0X3N0cnVjdHVyZV9nZXRfY2xvY2tfdGltZSgpCgkgIEl0cyBjb2RlIGlzIGlkZW50aWNhbC4KCjIwMTQtMDItMjUgMTU6NDE6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ2V0dGVycyBmb3IgaW50NjQgYW5kIHVpbnQ2NCB2YWx1ZXMKCjIwMTQtMDItMTkgMjE6MTc6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEbyBub3Qgc2VuZCBlb3Mgd2hlbiBzZWVraW5nIGFmdGVyIGxhc3QgYnVmZmVyCgkgIElmIHB1c2hpbmcgdGhlIGxhc3QgYnVmZmVyIHRyaWdnZXJzIGEgc2VlayBmcm9tIGRvd25zdHJlYW0sIGRvIG5vdAoJICBnbyBpbnRvIEVPUyBpZiBhIG5ldyBzZWdtZW50IHdhcyByZXF1ZXN0ZWQuCgkgIENvbnRhaW5zIHVuaXQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NzU3CgoyMDE0LTAyLTIxIDA5OjAzOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGluc2FuaXR5IGFuZCB0aGUgb2xkIGdzdC1vcGVubWF4CgoyMDE0LTAyLTIwIDE4OjQ3OjQyICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgcGF0aHMgdG8gZ3N0LWRldnRvb2xzL3ZhbGlkYXRlCgoyMDE0LTAyLTIwIDE1OjM0OjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IElmIHdlIG9ubHkgaGF2ZSBhIHNpbmdsZSBwYWQsIGRvbid0IGNvbnNpZGVyIGFsbCBwYWRzIG5vdCBsaW5rZWQgYW5kIGdyb3cgdGhlIHF1ZXVlIGluZGVmaW5pdGVseQoKMjAxNC0wMi0xOSAxMDo1NzozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhbHNvIHVzZSB0aGUgZ2xvYiBvbiBHU1RfQ0hFQ0tTIHdoZW4gZm9yY2luZyB0byBydW4gYnJva2VuIHRlc3RzCgkgIEdTVF9DSEVDS1MgY2FuIGJlIHNpbXBseSAidGVzdCoiIHRvIHJ1biBydW4gYWxsIHRlc3RzIChpbmNsdWRpbmcgdGhvc2UgdGhhdCBhcmUKCSAgbWFya2VkIGJyb2tlbikuIFVwZGF0ZSB0aGUgc3BhcnNlIGNvbW1lbnRzIGEgYml0IHRvIHRlbGwgaG93IHRoaXMgd29ya3MuCgoyMDE0LTAyLTE4IDE1OjQ2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdHJ1bmNhdGUgdGhlIHRlbXAgZmlsZSBvbiBzaHV0ZG93bgoJICBXZSB3YW50IHRvIGtlZXAgdGhlIGRvd25sb2FkZWQgZmlsZSB1bnRydW5jYXRlZCBzbyB0aGF0IHdlIGNhbiB1c2UgaXQKCSAgYWdhaW4gbGF0ZXIuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MzczCgoyMDE0LTAyLTE4IDE0OjIxOjIwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IG1lcmdpbmcgb2YgcmFuZ2VzCgkgIE1ha2UgYSBtZXRob2QgdG8gZ2V0IHRoZSBzZWVraW5nIHRocmVzaG9sZC4gSWYgZGF0YSBpcyBmdXJ0aGVyIGF3YXkgZnJvbQoJICB0aGlzIHRocmVzaG9sZCB3ZSB3YW50IHRvIHBlcmZvcm0gYSBzZWVrIHVwc3RyZWFtLgoJICBXaGVuIHRoZSBjdXJyZW50IGRvd25sb2FkZWQgcmFuZ2UgY2FuIG1lcmdlIHdpdGggdGhlIG5leHQgcmFuZ2UsCgkgIGFjdHVhbGx5IGluY2x1ZGUgdGhlIGRhdGEgb2YgdGhlIG5leHQgcmFuZ2UgaW50byB0aGUgY3VycmVudCByYW5nZQoJICBpbnN0ZWFkIG9mIGRpc2NhcmRpbmcgaXQuIEFsc28gZGVjaWRlIGlmIHdlIHNlZWsgdG8gdGhlIHdyaXRlIHBvc2l0aW9uCgkgIG9mIHRoZSBtZXJnZWQgcmFuZ2Ugb3IgY29udGludWUgcmVhZGluZy4KCjIwMTQtMDItMTggMTE6NDk6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGluIGF1dG9tYXRpY19lb3MgbW9kZSwgZG9uJ3QgbW9kaWZ5IHRoZSBzaXplCgkgIERvbid0IHNldCB0aGUgc2l6ZSB0byAtMSBpbiBhdXRvbWF0aWNfZW9zIG1vZGUgKHdoaWNoIGFsc28gdXBkYXRlcyB0aGUKCSAgZHVyYXRpb24gdG8gLTEpLiBXZSBvbmx5IHdhbnQgYXV0b21hdGljX2VvcyBtb2RlIGluZmx1ZW5jZSB0aGUgbWF4c2l6ZQoJICBjYWxjdWxhdGlvbnMgd2l0aG91dCBhbnkgc2lkZSBlZmZlY3RzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTY0CgoyMDE0LTAyLTE3IDExOjM3OjMwICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBwd2c6IFVwZGF0ZSByYXcgcHJvcGVydGllcwoJICBVc2luZyBpbmZvIGZyb20gZ3N0LXBsdWdpbnMtYmFzZS9kb2NzL2Rlc2lnbiAuCgkgIEVuY29kZWQgc3RyZWFtcyBtaWdodCBtYWtlIHVzZSBvZiB0aGUgcmF3IHByb3BlcnRpZXMsIHNvIGxpc3QgdGhlbSBhbGwgdW5kZXIgZm9vLyogLgoJICBGb3IgZm9vL3Jhdywgb25seSBub3RlIHdoaWNoIG9mIHRoZXNlIHByb3BlcnRpZXMgYXJlIG1hbmRhdG9yeS4KCSAgSSBkaWRuJ3QgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSByYXcgZm9ybWF0cyB5ZXQuIFRob3NlIG1pZ2h0IHN0aWxsIGJlIG91dC1vZi1kYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MTg3CgoyMDE0LTAyLTE3IDE3OjI4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cDogcmVtb3ZlIGRlYWQgaHR0cCBsaW5rcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTYxCgoyMDE0LTAyLTE1IDIyOjM0OjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBkb2NzOiBhZGQgdGhlIGJveGVkIHR5cGVzIHRvIHRoZSAudHlwZXMuaW4KCSAgVGhpcyBtYWtlcyB0aGVtIHNob3cgdXAgaW4gdGhlIG9iamVjdCBoaWVyYXJjaHkuCgoyMDE0LTAyLTE1IDIxOjIyOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IGd0a2RvYyBpcyBub3QgZ29vZCBhdCBwYXJzaW5nIGlubGluZSBmdW5jdGlvbnMgaW4gaGVhZGVycwoJICBNYXJrIHRoZSBpbmxpbmUgZnVuY3Rpb24sIHNvIHRoYXQgZ3RrZG9jIHNraXBzIHRoZW0uIEF2b2lkcyBzb21lIHdhcm5pbmdzIGFib3V0CgkgIHVucGFyc2FibGUgZGVjbGFyYXRpb25zLgoKMjAxNC0wMi0xMyAxMjowNzo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBBZGQgZ3N0X2Jhc2Vfc3JjX3NldF9hdXRvbWF0aWNfZW9zKCkgQVBJCgkgIFRoaXMgZGVmYXVsdHMgdG8gVFJVRSBhbmQgaWYgaXQgaXMgc2V0IHRvIEZBTFNFIGl0IGlzIHRoZSBzdWJjbGFzc2VzCgkgIHJlc3BvbnNpYmlsaXR5IHRvIHJldHVybiBHU1RfRkxPV19FT1MgZnJvbSB0aGUgY3JlYXRlKCkgdm1ldGhvZCBvbmNlCgkgIHRoZSBzdHJlYW0gaXMgZG9uZS4KCjIwMTQtMDItMTEgMTY6MzA6MzEgKzAwMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiBGaXggbG9jYXRpb24gb2YgcGx1Z2lucyBhbmQgcmVnaXN0cnkgaW4gaG9tZSBkaXJlY3RvcmllcwoJICBGaXhlcyBvdXQgb2YgZGF0ZSBkb2N1bWVudGF0aW9uIGxlZnQgb3ZlciBzaW5jZSAwLjEwLiAgSW4gMS4wIHBsdWdpbnMgYXJlCgkgIHN0b3JlZCBpbiAkWERHX0RBVEFfSE9NRSBhbmQgdGhlIHJlZ2lzdHJ5IGluICRYREdfQ0FDSEVfSE9NRSBjb25mb3JtYW50CgkgIHdpdGggdGhlIFhERyBCYXNlIERpcmVjdG9yeSBTcGVjaWZpY2F0aW9uWzFdLgoJICBbMV06IGh0dHA6Ly9zdGFuZGFyZHMuZnJlZWRlc2t0b3Aub3JnL2Jhc2VkaXItc3BlYy9iYXNlZGlyLXNwZWMtbGF0ZXN0Lmh0bWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDEzMgoKMjAxNC0wMi0xMSAxMzoyNzoyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlcnJvci5oOgoJICBlcnJvcjogR1NUX1JFU09VUkNFX0VSUk9SX05PVF9BVVRIT1JJWkVEIHdpbGwgYmUgYXZhaWxhYmxlIHNpbmNlIDEuMi40CgoyMDE0LTAyLTExIDEzOjA5OjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJICBlcnJvcjogQWRkIFJFU09VUkNFX05PVF9BVVRIT1JJWkVEIGVycm9yCgkgIFRoaXMgYWxsb3dzIHRvIGRpc3Rpbmd1aXNoIG5vcm1hbCByZWFkIGZhaWx1cmVzIGZyb20gcmVhZCBmYWlsdXJlcwoJICB3aGVyZSB3ZSBtaXNzIGF1dGhvcml6YXRpb24uCgoyMDE0LTAyLTEwIDE3OjA5OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCB5ZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQwNDUKCjIwMTQtMDItMTAgMDg6MDA6MzYgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkb2NzOiBhZGQgbWlzc2luZyBzZXFudW0gZmlsZSBmb3IgZGlzdHJpYnV0aW9uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM5OTcKCjIwMTQtMDItMDkgMTY6NTM6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZG9jdW1lbnQgR1NUX1RBR18qRU5DT0RJTkcgZW52aXJvbm1lbnQgdmFyaWFibGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE4NTAKCjIwMTQtMDItMDkgMTY6NDc6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBlbmFibGUgcGFyYWxsZWwgYnVpbGQgb2Ygc3ViZGlyZWN0b3JpZXMKCSAgV2UgY2FuIGJ1aWxkIGd0ayBkb2NzLCBBRE0sIFBXRyBhbmQgRkFRIGluIHBhcmFsbGVsLgoKMjAxNC0wMi0wOSAxNjozODoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBhZGQgc3VwcG9ydCBmb3IgYmxhY2tsaXN0aW5nIGNoZWNrcyB2aWEgR1NUX0NIRUNLU19JR05PUkUKCjIwMTQtMDItMDkgMDA6MjU6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gYmFzZXBhcnNlIHRlc3QKCSAgT3IgcmF0aGVyIG1ha2UgaXQgbm90IHNob3cgdXAgYW55IG1vcmUgYnkgbW92aW5nCgkgIGl0IGZyb20gJ2RlZmluaXRlbHkgbG9zdCcgaW50byAncG9zc2libHkgbG9zdCcuCgoyMDE0LTAyLTA4IDIzOjM5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBzeXN0ZW1jbG9jayB0ZXN0CgoyMDE0LTAyLTA4IDE2OjQyOjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IE1ha2UgY2xhbmcgaGFwcHkgd2l0aCBvdXIgZ192cHJpbnRmKCkgd3JhcHBlcgoKMjAxNC0wMi0wNiAxNDoxODozMSArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgd2luZG93czogTWFrZSBHU3RyZWFtZXIgaW5zdGFsbGF0aW9uIHJlbG9jYXRhYmxlCgkgIFVzZSB0aGUgdGVjaG5pcXVlIHRoYXQgaXMgbm93IGRvbmUgaW4gR1RLKyBzbyB0aGF0IHRoZSBwbHVnaW5zIGRvIG5vdCBoYXZlCgkgIHRvIGJlIGluc3RhbGxlZCBpbiBjOlxnc3RyZWFtZXJcbGliXDxkZWJ1Zz5cZ3N0cmVhbWVyLSQoR1NUQXBpVmVyc2lvbiksCgkgIGJ1dCBjYW4gYmUgaW5zdGFsbGVkIGluCgkgIDxwYXJlbnRfZm9sZGVyX29mX2dzdHJlYW1lcl9tYWluX2RsbD5cbGliXDxkZWJ1Zz5cZ3N0cmVhbWVyLSQoR1NUQXBpVmVyc2lvbiksCgkgIG9yIGFzIHBlciBnX3dpbjMyX2dldF9wYWNrYWdlX2luc3RhbGxhdGlvbl9kaXJlY3Rvcnlfb2ZfbW9kdWxlKCkgYWxsb3dzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTE1CgoyMDEzLTEwLTMwIDE3OjAyOjM1IC0wNTAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZ3N0OiBjbGVhciBmbG9hdGluZyByZWZlcmVuY2VzIGZvciBHc3RUYXNrLCBHc3RUYXNrUG9vbCBhbmQgR3N0Q29sbGVjdFBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM0MgoKMjAxMy0xMC0zMCAxNzowMjowMiAtMDUwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogZ3N0X3BhZF9uZXdfZnJvbV8qX3RlbXBsYXRlIGFuZCBnc3RfYnVmZmVyX3Bvb2xfbmV3IGNvbnN0cnVjdG9ycyByZXR1cm4gZmxvYXRpbmcgcmVmZXJlbmNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzQyCgoyMDE0LTAyLTA1IDEwOjExOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBjaGVjazogUmVtb3ZlIGEgbWlub3IgbGVhayBpbiB1bml0IHRlc3QKCSAgTWFrZXMgdmFsZ3JpbmQgaGFwcHkKCjIwMTQtMDItMDQgMjI6MjM6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggYnVpbGQgYnkgdXNpbmcgdGhlIGNvcnJlY3QgQyBmaWxlIG5hbWUKCjIwMTQtMDItMDQgMjE6MzY6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBDbGVhbiB1cCBjb2RlIGEgYml0IHRvIGJlIHN1aXRhYmxlIGZvciB0aGUgZG9jcwoKMjAxNC0wMS0wMyAwNzoyNTozNyAtMDgwMCAgVG9kZCBBZ3VsbmljayA8dG9kZEBhZ3Vsbmljay5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBSZXBsYWNlIG1hbnVhbCdzIGVmZmVjdHN3aXRjaC5jIHdpdGggbmV3ZXIgdGVzdC1lZmZlY3Qtc3dpdGNoLmMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTEwMAoKMjAxNC0wMS0yOSAxNDozOToxOSArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgY2FwcyBmZWF0dXJlcyB1bml0IHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDItMDQgMTg6NDI6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBXaGVuIGdldHRpbmcgY2Fwc2ZlYXR1cmVzIGFuZCBub25lIGFyZSB0aGVyZSwgc3RvcmUgc3lzbWVtIGNhcHNmZWF0dXJlcwoJICAuLi4gaW5zdGVhZCBvZiByZXR1cm5pbmcgYSByZWZlcmVuY2UgdG8gYSBnbG9iYWwgaW5zdGFuY2UuIFRoZSBjYWxsZXIgbWlnaHQKCSAgd2FudCB0byBjaGFuZ2UgdGhlIGdsb2JhbCBpbnN0YW5jZSBvdGhlcndpc2UsIHdoaWNoIGNhdXNlcyBmdW5ueSBlZmZlY3RzIGxpa2UKCSAgYWxsIGdsb2JhbCBpbnN0YW5jZXMgYmVpbmcgY2hhbmdlZCBhbmQgYXQgdGhlIHNhbWUgdGltZSBub3RoaW5nIGluIHRoZSBjYXBzCgkgIGJlaW5nIGNoYW5nZWQuCgkgIEFzIHRoZSBjYXBzIG1pZ2h0IGJlIGltbXV0YWJsZSB3aGlsZSB3ZSBkbyB0aGlzIHdlIGhhdmUgdG8gZG8gc29tZSBtYWdpYwoJICB3aXRoIGF0b21pYyBvcGVyYXRpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAyLTA0IDE4OjAzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRG9uJ3QgZ2V0IHVzIHN5c21lbSBjYXBzZmVhdHVyZXMgaWYgd2UganVzdCBjaGVjayBmb3IgZml4ZWQgY2FwcwoKMjAxNC0wMi0wNCAxNzo0ODo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBNYWtlIHN1cmUgdGhhdCB0aGUgc3RhdGljIEFOWS9FTVBUWSBjYXBzZmVhdHVyZXMgYXJlIG5ldmVyIG11dGFibGUKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMyMzYKCjIwMTQtMDEtMzEgMDk6MTQ6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGRvY3M6IGZpeCBtb3JlIGd0ay1kb2Mgd2FybmluZ3MKCjIwMTQtMDEtMzEgMDg6MzU6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJICBkb2NzOiB1bmhpZGUgZG9jcyBmb3IgYWxsb2NhdG9yCgkgIFVuaGluZGUgdGhlIGNsYXNzIGRvY3MuIFRlY2ggZ3RrLWRvYyBhYm91dCBHU1RfRVhQT1JUUy4KCjIwMTQtMDEtMzEgMDg6MDg6MzcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBtb3JlIHRlc3RzIGFuZCBzbWFsbCBkb2MgZml4ZXMKCjIwMTQtMDEtMzAgMjE6MjQ6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICB0b29sczogU3VwcG9ydCBub24tQVNDSUkgdGFncwoJICBCeSBjYWxsaW5nIHNldGxvY2FsZSgpIHRvIGdldCB1cyBtdWx0aS1ieXRlL1VURi04IHN1cHBvcnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjMxNjQKCjIwMTQtMDEtMzAgMDM6MjI6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogcmVzcGVjdCB0aGUgJ25lZ290aWF0aW9uLW1vZGUnIHByb3BlcnR5CgkgIElmIHRoZSBzZWdtZW50IGV2ZW50IGlzIGFsbG93ZWQgdG8gYmUgcHVzaGVkIHRvIGFsbCBwYWRzIGl0CgkgIHdpbGwgbGVhZCB0byBhbiBhc3NlcnRpb24gb2YgJ3N0aWNreSBldmVudCBtaXNvcmRlcmluZzoKCSAgc2VnbWVudCByZWNlaXZlZCBiZWZvcmUgY2FwcycgaW4gY2FzZSB0aGUgcGFkLW5lZ290aWF0aW9uLW1vZGUKCSAgaXMgc2V0IHRvICdhY3RpdmUnIG9yICdub25lJy4KCSAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IG1ha2luZyBhbGwgc3RpY2t5IGV2ZW50cyBmb2xsb3cgdGhlCgkgIHByb3BlcnR5IGxpa2UgdGhlIGNhcHMgZXZlbnQgdG8gcHJldmVudCBtaXNvcmRlcmluZyB3YXJuaW5ncy4KCSAgV2hlbiBhIG5ldyBwYWQgaXMgYWN0aXZhdGVkIHRoZSBjdXJyZW50IHN0aWNreSBldmVudHMgb24gdGhlCgkgIHNpbmtwYWQgYXJlIGZvcndhcmRlZCB0byBpdCBpbiB0aGUgcHJvcGVyIG9yZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjY2CgoyMDE0LTAxLTMwIDEyOjU0OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHBvb2xzdHJlc3M6IHByaW50IHNwZWVkdXAKCjIwMTQtMDEtMzAgMTI6NDI6MDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBtaXNjIGNsZWFudXBzCgkgIFJldmlldyB0aGUgZG9jdW1lbnRhdGlvbiwgY29tbWVudHMgYW5kIGxvZ2dpbmcuIFNldCB0aGUgaW5pdGlhbCBzaXplIHRvIDE2IGFzCgkgIHRoZSBzaXplIGlzIHJvdW5kZWQgdXAgdG8gdGhlIG5leHQgcG93ZXIgb2YgdHdvIGFueXdheS4KCjIwMTQtMDEtMzAgMDg6MTE6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBhIG5ldyB0ZXN0c3VpdGUgb3IgdGhlIHBvb2wKCSAgU3RhcnQgd2l0aCBzb21lIGJhc2ljIHRlc3RzLgoKMjAxNC0wMS0zMCAxMjoyNjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhdm9pZCBleGNlc3NpdmUgR3N0UG9sbCBhY3Rpdml0eQoJICBLZWVwIGFuIGV4dHJhIHdyaXRlIHJlZiBvbiB0aGUgY29udHJvbCBzb2NrZXQuIFRoaXMgZW5zdXJlcyB0aGF0IHdlCgkgIGF2b2lkIGEgcmVhZC93cml0ZSBvbiB0aGUgc29ja2V0IHdoZW4gZ29pbmcgZnJvbSBub24tZW1wdHktPmVtcHR5LT5ub3QtZW1wdHkuCgkgIFdlIHJlbW92ZSB0aGUgd3JpdGUgcmVmIG9ubHkgd2hlbiB3ZSBhY3R1YWxseSBhcmUgZW1wdHkgYW5kIHdlIG5lZWQgdG8KCSAgd2FpdCBmb3IgZmx1c2hpbmcgb3IgYSBuZXcgYnVmZmVyLgoJICBUaGlzIG1ha2VzIHRoZSBidWZmZXJwb29sIGJlbmNobWFyayBhYm91dCAzMCUgZmFzdGVyIHRoYW4gdGhlIHB1cmUKCSAgbWFsbG9jIGltcGxlbWVudGF0aW9uLgoKMjAxNC0wMS0zMCAxMjoyNTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnCgkgIEFkZCBvYmplY3QgcG9pbnRlciBpbiBkZWJ1ZyBsaW5lcy4KCjIwMTQtMDEtMzAgMTA6NDM6MzYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ0OGJlZDMgdG8gMWEwN2RhOQoKMjAxNC0wMS0yOSAyMjo0Njo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IGVtcGhhc2l6ZSB0aGF0IHRoZSBsYXRlciBjaGFwdGVycyBhcmUgZGVzaWduIGRyYWZ0IGlkZWFzCgoyMDE0LTAxLTI5IDIwOjIwOjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogYWRkIGZvcm1hdCBzcGVjaWZpYyBpbmZvcm1hdGlvbgoKMjAxNC0wMS0yOSAxODoyMTozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICBwb29sc3RyZXNzOiBjb2RlIGNsZWFudXBzCgkgIEFkZCBhIGZldyBjb21tZW50cy4gVGVsbCBpbiB0aGUgcmVzdWx0cywgd2hpY2ggbnVtYmVyIGFyZSBmcm9tIHdoaWNoIHRlc3QuCgoyMDE0LTAxLTI5IDEzOjIwOjE5ICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHVzZSBwcmludCBhcyBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjI5CgoyMDE0LTAxLTI4IDExOjU4OjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHM6IGNhcHNmaWx0ZXI6IGFkZCB0ZXN0IGZvciBwZW5kaW5nX2V2ZW50cyBwdXNoaW5nCgkgIG1ha2Ugc3VyZSB0aGF0IHBlbmRpbmcgZXZlbnRzIGFyZSBwdXNoZWQgd2hlbiBjYXBzIGFyZSBhbHJlYWR5CgkgIHNldCB3aGVuIGEgYnVmZmVyIGlzIHJlY2VpdmVkCgoyMDE0LTAxLTI4IDExOjEyOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkbyBub3QgZm9yZ2V0IHRvIHB1c2ggcGVuZGluZyBldmVudHMKCSAgUHVzaCBwZW5kaW5nIGV2ZW50cyBiZWZvcmUgYnVmZmVycyBpZiBjYXBzIGlzIGFscmVhZHkKCSAgc2V0CgoyMDE0LTAxLTI0IDE5OjE5OjA4ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkbyBub3QgcmVkdWNlIHNpbmdsZSBxdWV1ZSBiZWxvdyBjdXJyZW50IGxldmVsCgkgIFdoZW4gdGhlIHNpbmdsZSBxdWV1ZSBzaXplIHdhcyBqdXN0IGJ1bXBlZCBieSAxIHRvIGFsbG93IG1vcmUgYnVmZmVycyB0bwoJICBiZSBhZGRlZCwgdGhlIGJ1ZmZlcnMgbGltaXQgY291bGQgYmUgcmVkdWNlZCB0byB0aGUgY3VycmVudCBsZXZlbCB3aGVuCgkgIHNldHRpbmcgdGhlIG1heC1zaXplLWJ1ZmZlcnMgcHJvcGVydHkuIFRoaXMgd291bGQgcmVzdWx0IGluIGEgc3RhbGwKCSAgc2luY2UgdGhlIHF1ZXVlIHdvdWxkIG5vdCBncm93IGFueW1vcmUgYXQgdGhpcyBwb2ludC4KCSAgUHJldmVudCB0aGlzIGJ5IG5vdCByZWR1Y2luZyBhIHNpbmdsZSBxdWV1ZSBzaXplIGJlbG93IHRoZSBjdXJyZW50CgkgIG51bWJlciBvZiBidWZmZXJzICsgMS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjU5NwoKMjAxNC0wMS0yNCAxMzoyMDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IGZvcmdldCB0byBjbGVhciB0aGUgZm9yY2VkX2VvcyBmbGFnCgkgIG90aGVyd2lzZSBpdCB3aWxsIGFsd2F5cyB1c2UgdGhlIHNlcW51bSBvZiB0aGUgZXZlbnQKCSAgc2VudCBieSB0aGUgYXBwbGljYXRpb24KCjIwMTQtMDEtMjMgMTU6NTI6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmVzZXJ2ZSBzZXFudW0gb2YgZW9zIGV2ZW50cyBzZW50IGJ5IHRoZSB1c2VyCgkgIFN0b3JlIHRoZSBlb3MgZXZlbnQgc2VxbnVtIGFuZCB1c2UgaXQgd2hlbiBjcmVhdGluZyB0aGUKCSAgbmV3IGVvcyBldmVudCB0byBiZSBwdXNoZWQgZG93bnN0cmVhbS4gVG8ga25vdyBpZiB0aGUgZW9zCgkgIHdhcyBjYXVzZWQgYnkgdGhlIGVvcyBldmVudHMgcmVjZWl2ZWQgb24gc2VuZF9ldmVudCwgYQoJICAnZm9yY2VkX2VvcycgZmxhZyBpcyB1c2VkIHRvIHVzZSB0aGUgY29ycmVjdCBzZXFudW0gb24KCSAgdGhlIGV2ZW50IHB1c2hlZCBkb3duc3RyZWFtLgoJICBVc2VmdWwgaWYgdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGNoZWNrIGlmIHRoZSBFT1MgbWVzc2FnZQoJICB3YXMgZ2VuZXJhdGVkIGZyb20gaXRzIG93biBwdXNoZWQgRU9TIG9yIGZyb20gYW5vdGhlciBzb3VyY2UKCSAgKHN0cmVhbSByZWFsbHkgZmluaXNoZWQpLgoJICBBbHNvIGFkZHMgYSB0ZXN0IGZvciB0aGlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OTEKCjIwMTQtMDEtMjMgMTU6MzQ6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZXFudW1zLnR4dDoKCSAgZG9jczogZGVzaWduOiBhZGQgcGFydC1zZXFudW1zCgkgIEhvcGVmdWxseSBjbGFyaWZpZXMgaG93IHNlcW51bXMgc2hvdWxkIGJlIHVzZWQgYW5kIGNvcGllZCBmcm9tCgkgIGV2ZW50cyB0byBldmVudHMvbWVzc2FnZXMgd2hlbiB0aG9zZSBhcmUgaGFuZGxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjc5MQoKMjAxNC0wMS0yNCAwOToyODowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBCcmVhayB0aGUgbG9vcCBpbW1lZGlhdGVseSBpZiB3ZSBmb3VuZCBhbiBlbXB0eSBxdWV1ZQoJICBObyBuZWVkIHRvIGNvbnRpbnVlIGxvb2tpbmcgYXQgYWxsIHRoZSBvdGhlcnMKCjIwMTQtMDEtMjMgMTU6NDc6MjMgKzAxMDAgIFBlciB4IEpvaGFuc3NvbiA8cGVyeGpvaEBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbGxvdyBncm93aW5nIGEgcXVldWUgaWYgYWxsIG90aGVyIHF1ZXVlcyBhcmUgbm90IGxpbmtlZAoJICBJbiB0aGUgY2FzZSB3aGVyZSBvbmUgc2luZ2xlcXVldWUgaXMgZnVsbCBhbmQgYWxsIG90aGVyIGFyZSBub3QgbGlua2VkLCB0aGUKCSAgZ3Jvd2luZyBvZiB0aGUgZnVsbCBxdWV1ZSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseS4gVGhlIHJlc3VsdCBkZXBlbmRzIG9uIGlmCgkgIHRoZSBmdWxsIHF1ZXVlIGlzIGxhc3QgaW4gdGhlIHF1ZXVlIGxpc3Qgb3Igbm90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyODkxCgoyMDE0LTAxLTIyIDExOjEwOjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1pbm9yIGNvZGUgY2xlYW51cAoJICAhY2hlY2tfc3RpY2t5KCk9PUdTVF9GTE9XX09LIGlzIGEgYml0IGNvbmZ1c2luZywgY29tcGFyZWQgdG8KCSAgY2hlY2tfc3RpY2t5KCkhPUdTVF9GTE9XX09LLgoKMjAxNC0wMS0yMCAxNToyNjo1NCArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogQWRkaXRpb25hbCB0ZXN0cyBmb3IgcGFyc2VyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTggMTQ6NDg6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IFByb3Blcmx5IGNvcHkgbXV0ZXhlcyBhcm91bmQgd2hlbiBjcmVhdGluZyBhIGNvcHkgb2YgYSBmaWx0ZXIgaXRlcmF0b3IKCjIwMTQtMDEtMTggMTQ6MzQ6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCB1bml0IHRlc3RzIGZvciBmaWx0ZXJpbmcsIHJlY3Vyc2l2ZSBmaWx0ZXJpbmcgYW5kIGxvY2tpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTEzOAoKMjAxNC0wMS0xOCAxNDo0MzoyMCArMDEwMCAgU3Rld2FydCBCcm9kaWUgPHN0ZXdhcnRAZWgub3JnPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBQcmVzZXJ2ZSB0aGUgbWFzdGVyIGxvY2sgd2hlbiBjcmVhdGluZyByZWN1cnNpdmUgaXRlcmF0b3IgZmlsdGVycyB3aXRoIHRoZSBzYW1lIGxvY2sKCSAgVGhpcyB3YXkgd2UgbWFrZSBzdXJlIHRoYXQgYSkgdGhlIGxvY2sgaXMgYWx3YXlzIHRha2VuIHdoZW4gY2hlY2tpbmcKCSAgdGhlIGNvb2tpZSBhbmQgY2FsbGluZyB0aGUgaXRlcmF0b3IncyBuZXh0IGZ1bmN0aW9ucyBhbmQgYikgaXQgaXMKCSAgbm90IHRha2VuIHdoaWxlIGNhbGxpbmcgYW55IG9mIHRoZSBpdGVyYXRvciBmaWx0ZXIgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTM4CgoyMDE0LTAxLTE3IDIyOjUzOjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggc3RpY2t5IGV2ZW50IGxlYWsgYWZ0ZXIgc3RpY2t5X2V2ZW50c19mb3JlYWNoCgkgIGV2ZW50c19mb3JlYWNoIGFkZHMgYW4gZXh0cmEgcmVmIHdoZW4gZ2l2aW5nIHRoZSBldmVudCB0byB0aGUKCSAgdXNlciBmdW5jdGlvbi4gSW4gY2FzZSBpdCB3YXMgdW5yZWZlZCBieSB0aGUgdXNlciwgdGhpcyBleHRyYSByZWYKCSAgZGlzYXBwZWFyZWQsIGJ1dCBldmVudHNfZm9yZWFjaCBzdGlsbCBzaG91bGQgdW5yZWYgYWdhaW4gdG8KCSAgbG9zZSBpdHMgb3duIHJlZiBiZWZvcmUgcmVtb3ZpbmcgdGhlIGV2ZW50IGZyb20gdGhlIGFycmF5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNDY3CgoyMDE0LTAxLTE2IDIwOjExOjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIHNvbWUgZW52LXZhciBjaGVja3MgZnJvbSBnc3QgdG8gZ3N0aW5mbyBhcyB3ZWxsCgkgIFdlIHdlcmUgZG9pbmcgc29tZSBsb2cgcmVsYXRlZCBpbml0aWFsaXNhdGlvbiBpbiBnc3QuYyBhZnRlciBjYWxsaW5nCgkgIF9wcml2X2dzdF9kZWJ1Z19pbml0KCkuIEp1c3QgbW92ZSBpdCB0aGVyZSBmb3IgY29uc2lzdGVuY3kuCgoyMDE0LTAxLTE2IDE4OjE2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IE9ubHkgc2V0IGNhcHMgb24gdGhlIHNyY3BhZCBpZiBpdCdzIGFjdGl2YXRlZCBpbiBwdXNoIG1vZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjI4OQoKMjAxNC0wMS0xNiAxMjoyODo0NyArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFNvbWUgbWlub3IgZml4ZXMKCSAgRml4IGRlc3RydWN0b3Igc2VnZmF1bHRpbmcKCSAgRXhwZWN0IDAgZ3JhbW1hci1hbWJpZ3VpdGllcwoJICBGaXggb3JkZXIgb2YgYmluLXByb3BlcnRpZXMgYXNzaWdubWVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTE1IDE5OjI4OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmluZyBkdXBsaWNhdGUgZmllbGQgcG9zaXRpb24KCSAgSXQgaXMgYWxyZWFkeSBzdG9yZWQgaW5zaWRlIHRoZSBHc3RTZWdtZW50IHN0cnVjdCBhbmQKCSAgd2FzIG9ubHkgZHVwbGljYXRpbmcgaW5mb3JtYXRpb24uIEFsc28gcmVtb3ZlZCBzb21lCgkgIHdlaXJkIHBvc2l0b24gaWYvZWxzZSB0aGF0IHdvdWxkIHBvc3NpYmx5IGNoYW5nZSB0aGUKCSAgc2VnbWVudCB0aGF0IHdhcyBnb2luZyB0byBiZSBwdXNoZWQgZG93bnN0cmVhbQoKMjAxNC0wMS0xNSAwMDoxMjoyNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcHJldmVudCBidWZmZXJpbmcgZm9yZXZlciB3aXRoIHBsYXliaW4KCSAgV2hlbiBwcmVyb2xsaW5nL2J1ZmZlcmluZywgbXVsdGlxdWV1ZSBoYXMgaXRzIGJ1ZmZlcnMgbGltaXQgc2V0CgkgIHRvIDAsIHRoaXMgbWVhbnMgaXQgY2FuIHRha2UgYW4gaW5maW5pdGUgYW1vdW50IG9mIGJ1ZmZlcnMuCgkgIFdoZW4gcHJlcm9sbGluZy9idWZmZXJpbmcgZmluaXNoZXMsIGl0cyBsaW1pdCBpcyBzZXQgYmFjayB0byA1LCBidXQKCSAgb25seSBpZiB0aGUgY3VycmVudCBsZXZlbCBpcyBsb3dlciB0aGFuIDUuIEl0IHNob3VsZCAoYWxtb3N0KSBuZXZlciBiZQoJICBhbmQgdGhpcyB3aWxsIGNhdXNlIHByZXJvbGxpbmcvYnVmZmVyaW5nIHRvIG5lZWQgdG8gd2FpdCB0byByZWFjaCB0aGUKCSAgaGFyZCBieXRlcyBhbmQgdGltZSBsaW1pdHMsIHdoaWNoIGFyZSBtdWNoIGhpZ2hlci4KCSAgVGhpcyBjYW4gbGVhZCB0byBhIHZlcnkgbG9uZyBzdGFydHVwIHRpbWUuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcwoJICBieSBzZXR0aW5nIHRoZSBzaW5nbGUgcXVldWVzIHRvIHRoZSBtYXgoY3VycmVudCwgbmV3X3ZhbHVlKSBpbnN0ZWFkCgkgIG9mIHNpbXBseSBpZ25vcmluZyB0aGUgbmV3IHZhbHVlIGFuZCBsZXR0aW5nIGl0IGFzIGluZmluaXRlKDApCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI1OTcKCjIwMTQtMDEtMTUgMTE6MTI6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBnc3Rfc2VnbWVudF9vZmZzZXRfcnVubmluZ190aW1lKCkgd2lsbCBiZSBhdmFpbGFibGUgaW4gMS4yLjMKCjIwMTQtMDEtMTQgMTY6MTU6MjEgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogVXBkYXRlIHNlY3Rpb25zIHdpdGggdGhlIG5ldyByb3VuZGluZyBtYWNyb3MKCjIwMTQtMDEtMTQgMTY6MTU6MDIgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsOiBBZGQgR1NUX1JPVU5EX1VQX04gYW5kIEdTVF9ST1VORF9ET1dOX04KCSAgVGhlc2UgYXJlIGdlbmVyaWMgcm91bmRpbmcgbWFjcm8gdGhhdCB3b3JrcyBmb3IgYW55IHBvd2VyIG9mIHR3by4KCjIwMTQtMDEtMTQgMTY6NDc6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVlOiBBZGQgdW5pdCB0ZXN0IGZvciByZXF1ZXN0aW5nIHBhZCBuYW1lcwoKMjAxNC0wMS0xNCAxNjo0NTo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogTWFrZSBzdXJlIHRvIGdpdmUgcGFkcyB0aGUgbmFtZSB0aGF0IHdhcyByZXF1ZXN0ZWQKCSAgQWxzbyBjaGVjayBmb3IgdW5pcXVlbmVzcyBhbmQgbWFrZSBzdXJlIHdlIGNyZWF0ZSBhIG5ldwoJICBwYWQgaW5kZXggcHJvcGVybHkgaWYgc29tZSB3ZXJlIHJlcXVlc3RlZCB3aXRoIG5hbWVzIGJ1dAoJICB0aGUgbmV3IG9uZSBpcyBub3QuCgoyMDE0LTAxLTE0IDE1OjUyOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IE1ha2Ugc3VyZSB0byBjcmVhdGUgYW5kIGxpbmsgY2hhaW5zIGluIHRoZSBvcmRlciBhcyB3cml0dGVuCgkgIE1ha2UgdGhpcyB3b3JrIGFnYWluOgoJICBhdWRpb3Rlc3RzcmMgISB0ZWUgbmFtZT10ICB0LnNyY18wICEgcXVldWUgISBmYWtlc2luayAgdC5zcmNfMSAhIHF1ZXVlICEgZmFrZXNpbmsKCSAgYW5kIHRoaXMgZmFpbCBhZ2FpbjoKCSAgYXVkaW90ZXN0c3JjICEgdGVlIG5hbWU9dCAgdC5zcmNfMSAhIHF1ZXVlICEgZmFrZXNpbmsgIHQuc3JjXzAgISBxdWV1ZSAhIGZha2VzaW5rCgkgIGFzIHRlZSBqdXN0IGNvdW50cyBpdHNlbGYgYW5kIGRvZXMgbm90IGNhcmUgYWJvdXQgdGhlIHBhZCBuYW1lcyB3ZSByZXF1ZXN0CgkgIGZyb20gaXQuCgoyMDE0LTAxLTE0IDEzOjQ1OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFJlbW92ZSBzb21lIEM5OS1zdHlsZSBjb21tZW50cwoKMjAxNC0wMS0xNCAxMzo0NDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogVXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyBhbmQgZnJlZWluZyBsaW5rcyBhbmQgY2hhaW5zCgoyMDE0LTAxLTE0IDEzOjQyOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBBZGQgY29tbWVudCBhYm91dCB3aHkgd2UgZGlzYWJsZSB0aGUgInRyYWNpbmciCgkgIEl0IGRpZCBub3QgcHJpbnQgYW55dGhpbmcgdXNlZnVsIGJlZm9yZSBhbnl3YXksIGV2ZXJ5dGhpbmcKCSAgd2FzIGNvbW1lbnRlZCBvdXQuCgkgIEFsc28gcmVtb3ZlIHNvbWUgdW5uZWVkZWQgc3RydWN0IG1lbWJlcnMuCgoyMDE0LTAxLTE0IDEzOjM2OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZS1sYXVuY2g6IEFkZCBzb21lIG1vcmUgZmFpbGluZyBwaXBlbGluZXMKCSAgQWxzbyBjb252ZXJ0IHNvbWUgY29tbWVudHMgYWJvdXQgdmFsZ3JpbmQgd2FybmluZ3MgdG8KCSAgRklYTUUgY29tbWVudHMuIFRoZXNlIHdlcmUgbGVha2luZyBzaW5jZSBzb21lIHRpbWUgYWxyZWFkeS4KCjIwMTQtMDEtMTAgMjE6MTA6MTcgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogUmVmYWN0b3IgZ3JhbW1hciwgbWFrZSBpdCBtb3JlIGNvbnNpc3RlbnQgYW5kIGZpeCBjb25mbGljdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xMyAyMDo0ODozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogZW5zdXJlIEdzdEJ1ZmZlclBvb2xzIHNob3dzIHVwIGFzIHdpdGggR09iamVjdCBmZWF0dXJlcwoJICBHc3RCdWZmZXJQb29sIGlzIGEgR3N0T2JqZWN0LCBhZGQgdGhlIF9nZXRfdHlwZSBmdW5jdGlvbiB0byB0aGUgdHlwZXMgZmlsZS4KCjIwMTQtMDEtMTMgMDg6Mzc6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogYWRkIHRlc3QgZm9yIHJldmVyc2UgcGxheWJhY2sgb24gcGFzc3Rocm91Z2gKCSAgQmFzZXBhcnNlIHN0b3JlcyBidWZmZXJzIGZvciByZXZlcnNlIHBsYXliYWNrIHRvIHB1c2ggb24gdGhlIG5leHQKCSAgRElTQ09OVCwgdGhlIGlzc3VlIHdhcyB0aGF0IGl0IHdvdWxkbid0IGV2ZXIgY2hlY2sgZm9yIGEgZGlzY29udAoJICBvbiBwYXNzdGhyb3VnaCBtb2RlIGFzIGl0IHNraXBzIGFsbCByZWFsIHBhcnNpbmcuIFRoaXMgdGVzdAoJICB3YXMgY3JlYXRlIHRvIHZlcmlmeSB0aGlzIGlzc3VlIGFuZCBwcmV2ZW50IGl0IGZyb20gaGFwcGVuaW5nIGFnYWluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE5NDEKCjIwMTQtMDEtMTEgMTA6NDk6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGJhc2VwYXJzZTogYWRkIGJhc2ljIHRlc3QgZm9yIGJhc2VwYXJzZQoJICBKdXN0IGEgc21hbGwgdGVzdCB0byBjaGVjayB0aGF0IGJhc2ljIHBsYXliYWNrIHdvcmtzCgoyMDE0LTAxLTEwIDA5OjEwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IGFjY3VtdWxhdGUgYnVmZmVycyBvbiBwYXNzdGhyb3VnaCBtb2RlCgkgIElmIG9uIHBhc3N0aHJvdWdoIGR1cmluZyByZXZlcnNlIHBsYXliYWNrLCBkbyBub3QgYWNjdW11bGF0ZSBidWZmZXJzIGFzCgkgIGJhc2VwYXJzZSB3aWxsIG5ldmVyIGNoZWNrIGZvciBESVNDT05UIGZsYWcgdG8gcHVzaCB0aG9zZSBidWZmZXJzLgoJICBTbyBqdXN0IHB1c2ggYnVmZmVycyBkb3duc3RyZWFtIGFzIGlmIGl0IHdhcyBmb3J3YXJkIHBsYXliYWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxOTQxCgoyMDE0LTAxLTA2IDIxOjQ3OjIyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IGNvbmZ1c2UgR1NUX1BBRF9NT0RFX05PTkUgYW5kIFBVTEwKCSAgVXNlIGEgc3dpdGNoLWNhc2UgdG8gZXhwbGljaXRseSBoYW5kbGUgYWxsIHBhZC1tb2Rlcy4gVGhpcyB3YXkgd2UgZG9uJ3QgbG9nIGFuIGVycm9yIHdoZW4gdGhlIHBhZCBpcyBub3QgeWV0IGFjdGl2YXRlZC4KCjIwMTQtMDEtMDkgMDc6NTY6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWRkIEZJWE1FIGFuZCBkb2NzIGZvciB0aGUgZGlzYWJsZWQgbm90aWZ5IG9uIHBhcmVudAoJICBXZSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIHJlLWVuYWJsZSBlbWl0dGluZyBub3RpZnkgYW5kIGRlZXAtbm90aWZ5IGZvciBwYXJlbnQKCSAgY2hhbmdlcy4gQWRkIGEgRklYTUUtMi4wIGFuZCBhIGRvYyBibG9iIG9uIHRoZSBwcm9wZXJ0eS4gU2VlICM2OTMyODEuCgoyMDE0LTAxLTA4IDE2OjI4OjU0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG8gbm90IGlnbm9yZSBUSU1FIHNlZ21lbnRzCgkgIFRJTUUgc2VnbWVudHMgYXJlIGJlaW5nIGlnbm9yZWQgYW5kIGEgc3RhbmRhcmQgaW5pdGlhbGl6ZWQKCSAgc2VnbWVudCBpcyB1c2VkIGluc3RlYWQuIFRoaXMgY2F1c2VzIGlzc3VlcyBhcyBub3QgcHJvcGVybHkgZGV0ZWN0aW5nCgkgIHJldmVyc2UgcGxheWJhY2sgb3Igbm90IGNsaXBpbmcgb3V0cHV0IGJhc2VkIG9uIHRoZSBzZWdtZW50LgoJICBUaGlzIHNlZW1zIHRvIGJlIGEgcmVncmVzc2lvbiBmcm9tIG9uZSBvZiB0aGUgR3N0U2VnbWVudC9Hc3RFdmVudAoJICByZWRlc2lnbnMgb24gdGhlIDAuMTAgLT4gMS4wIHRyYW5zaXRpb24KCjIwMTQtMDEtMDggMTU6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGltcHJvdmUgY2hlY2ssIGFsc28gY2hlY2sgc3RyZWFtLXRpbWUKCjIwMTQtMDEtMDggMTU6MzE6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHNlZ21lbnQgX29mZnNldF9ydW5uaW5nX3RpbWUoKQoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgb2Zmc2V0cyBhcmUgYXBwbGllZAoJICBjb3JyZWN0bHkgaW4gdmFyaW91cyBjYXNlcy4KCjIwMTQtMDEtMDggMTU6MjM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50IGluIF90b19wb3NpdGlvbigpCgkgIFRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQgd2hlbiBjb252ZXJ0aW5nIGJldHdlZW4gcnVubmluZy10aW1lIGFuZAoJICBzZWdtZW50IHBvc2l0aW9ucy4KCjIwMTQtMDEtMDggMTQ6NTc6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgc2VnbWVudCBvZmZzZXQgbWV0aG9kIHRvIGFwcGx5IHRoZSBvZmZzZXQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTQyMgoKMjAxNC0wMS0wOCAxNDo1NDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIG1ldGhvZCB0byBvZmZzZXQgdGhlIHNlZ21lbnQgcnVubmluZy10aW1lCgkgIEFkZCBhIG1ldGhvZCB0aGF0IGNhbiBhcHBseSBhbiBvZmZzZXQgdG8gdGhlIGNhbGN1bGF0ZWQgcnVubmluZy10aW1lIG9mCgkgIGEgc2VnbWVudC4KCjIwMTQtMDEtMDggMTQ6NTI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50IGZvciBleHBlY3RlZCBzZWdtZW50IHBvc2l0aW9uCgkgIFRoZSBmaXJ0IHZhbGlkIHNlZ21lbnQgcG9zaXRpb24gaXMgc3RhcnQgKyBvZmZzZXQuCgkgIEFsc28gYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgYSBGSVhNRQoKMjAxNC0wMS0wOCAxNDo1MDoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkZWJ1ZyBzZWdtZW50IG9mZnNldCBmaWVsZCBhcyB3ZWxsCgoyMDE0LTAxLTA4IDA5OjUzOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFsbG93IGdyb3dpbmcgYSBxdWV1ZSBpZiBhbGwgb3RoZXIgcXVldWVzIGFyZSBub3QgbGlua2VkCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODkzCgoyMDE0LTAxLTA3IDE2OjE4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBkb24ndCB0cnkgdG8gc2VlayB0byAtMSBvZmZzZXQKCSAgVGhlIG9mZnNldCBjYW4gYmUgLTEgd2hlbiB3ZSBhcmUgY29uZmlndXJlZCBpbiBUSU1FIGZvcm1hdC4gSW5zdGVhZCBvZgoJICBmYWlsaW5nIHRoZSBzZWVrIGFuZCBlcnJvcmluZywgZG8gd2hhdCBhbmQgb2Zmc2V0IG9mIC0xIGlzIHN1cHBvc2VkIHRvCgkgIGRvIGFuZCBzaW1wbHkgcmVhZCBmcm9tIHRoZSBjdXJyZW50IG9mZnNldC4KCjIwMTQtMDEtMDYgMjE6MDQ6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZGVtb3RlIGVycm9yIHRvIHdhcm5pbmcKCSAgVGhpcyBpcyBub3QgYW4gZXJyb3IuIEEgc3ViY2xhc3MgcmV0dXJuaW5nIEZBTFNFIGZvciBpc19zZWVrYWJsZSgpIGlzIG9uZSB3YXkgb2YKCSAgc2F5aW5nIHRoYXQgd2UgY2FuJ3Qgb3BlcmF0ZSBpbiBwdWxsIG1vZGUuCgoyMDE0LTAxLTAzIDExOjQ3OjIzICswODAwICBZYW5waW5nWmhhbmcgPHpoYW5neWFucGluZzIxMEAxNjMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBoYW5naW5nIGlmIHNodXQgZG93biB3aGlsZSBoYW5kbGluZyBhIHNlcmlhbGl6ZWQgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI1MwoKMjAxNC0wMS0wMiAxNjoyMjozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBwZW5kaW5nX3NlZ21lbnQgYXMgaXQgd2FzIGJlaW5nIG1pc3VzZWQKCSAgSXQgd2Fzbid0IHJlcXVpcmVkLCBpbnN0ZWFkIGJhc2VwYXJzZSB3YXMgdXNpbmcgaXQgdG8gY2hlY2sgdGhlIG1lZGlhCgkgIGNhcHMgdG8gaWRlbnRpZnkgaWYgaXQgd2FzIGhhbmRsaW5nIGF1ZGlvIG9yIHZpZGVvLgoJICBUaGUgcGVuZGluZ19zZWdtZW50IHdhcyByZW1vdmVkIGFuZCBhIGNoZWNrZWRfbWVkaWEgYm9vbGVhbgoJICByZXBsYWNlZCBpdCBmb3IgYSBtb3JlIGFjY3VyYXRlIG5hbWluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAxMzo0Mzo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIEdBUCBldmVudAoJICBBIEdBUCBldmVudCBpcyBoYW5kbGVkIGFzIGFuIGVtcHR5IGJ1ZmZlciBieSBzaW5rcyBhbmQgdGhleSBleHBlY3QKCSAgdG8gcmVjZWl2ZSBzdGFydCB1cCBldmVudHMgYmVmb3JlIEdBUCBldmVudHMgKGxpa2UgYSBzZWdtZW50KS4KCSAgVGhpcyBpcyBpbXBvcnRhbnQgc3BlY2lhbGx5IGlmIHRoZXJlIGlzIGEgR0FQIGF0IHRoZSBiZWdpbm5pbmcgb2YKCSAgYSBzdHJlYW0gKGJlZm9yZSBhbnkgYnVmZmVycykgc28gdGhhdCB0aGUgc2VnbWVudCBldmVudCBjYW4gYmUKCSAgcHVzaGVkIGRvd25zdHJlYW0gYmVmb3JlIHRoZSBHQVAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTM1MAoKMjAxNC0wMS0wMiAxMzo0MToyNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHBlbmRpbmcgZXZlbnRzIHB1c2hpbmcKCSAgUmVmYWN0b3IgY29kZSByZXBlYXRlZCAzIHRpbWVzIHRvIGEgY29tbW9uIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMjA6MTc6NTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRlc2lnbi9wYXJ0LXRvYy50eHQ6IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxNC0wMS0wMiAxMzozNDo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBBZGQgdW5pdCB0ZXN0IGZvciBhZGRpbmcvcmVtb3ZpbmcgYmxvY2tpbmcgcHJvYmVzIHdoaWxlIGEgcGFkIGlzIGJsb2NrZWQKCSAgQW5kIG1ha2Ugc3VyZSB0aGF0IHRoZXNlIG5ldyBwcm9iZXMgYXJlIGFjdHVhbGx5IGNhbGxlZCBpZiB0aGV5IHNob3VsZAoJICBpbnN0ZWFkIG9mIHNpbGVudGx5IGJsb2NraW5nIHRoZSBwYWQgZm9yZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI4OQoKMjAxNC0wMS0wMiAxMzozMzoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDaGVjayBpZiBuZXcgcHJvYmVzIG5lZWQgdG8gYmUgY2FsbGVkIHdoZW4gYWRkaW5nL3JlbW92aW5nIHNvbWUKCSAgVGhpcyBhbGxvd3MgYmxvY2tpbmcgYSBwYWQsIGFkZCBhIG5ldyBibG9ja2luZyBwcm9iZSwgcmVtb3ZpbmcKCSAgdGhlIGZpcnN0IHByb2JlIGFuZCB0aGVuIGhhdmluZyB0aGUgc2Vjb25kIHByb2JlIGNhbGxlZC4gV2hpY2gKCSAgY291bGQgdGhlbiBkZWNpZGUgdGhhdCBkYXRhLWZsb3cgc2hvdWxkIGFjdHVhbGx5IGNvbnRpbnVlCgkgIGluc3RlYWQgb2YgYmxvY2tpbmcgbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMjg5CgoyMDE0LTAxLTAyIDExOjEzOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBSZW1vdmUgZHluIGxvY2sKCSAgSXQgd2FzIHVzZWQgZm9yIHBhZC1hbGxvYyBpbiAwLjEwIGJ1dCBjdXJyZW50bHkgaXMgY29tcGxldGVseSB1bnVzZWQKCSAgYW5kIG5vdCBuZWNlc3NhcnkuIEFsbCBwYWQgYWNjZXNzIGlzIHByb3RlY3RlZCBieSB0aGUgdGVlIG9iamVjdCBsb2NrCgkgIGFuZCBrZWVwaW5nIGFub3RoZXIgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHBhZC4KCjIwMTQtMDEtMDIgMTE6MDk6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEtlZXAgYW5vdGhlciByZWYgdG8gb3VyIG9uZSBhbmQgb25seSBzcmNwYWQgYXJvdW5kIHdoaWxlIHB1c2hpbmcKCSAgQSBwYWQgcHJvYmUgb24gdGhhdCBwYWQgbWlnaHQgb3RoZXJ3aXNlIGp1c3QgcmVsZWFzZSB0aGUgcGFkLCBkcm9wCgkgIHRoZSBsYXN0IHJlZmVyZW5jZSBhbmQgY2F1c2UgZ3JlYXQgbWlzZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzAwCgoyMDEzLTEyLTMwIDE5OjAzOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEtlZXAgYW4gZXh0cmEgcmVmIG9mIHRoZSBwYWQgd2hlbiBjYWxsaW5nIGFuIElETEUgcHJvYmUgaW1tZWRpYXRlbHkKCSAgVGhlIGNhbGxiYWNrIG1pZ2h0IGRlc3Ryb3kgdGhlIHBhZC4KCjIwMTMtMTItMzAgMTg6NDQ6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBjYWxsIElETEUgcHJvYmVzIGlmIHdlIGFyZSBhY3R1YWxseSBpZGxlCgkgIEFsc28gb25seSBjaGVjayB0aGUgZGF0YSB0eXBlcyBmb3Igbm9uLUlETEUgcHJvYmVzLiBXaGVuIHdlCgkgIGFyZSBpZGxlLCB3ZSBoYXZlIG5vIGRhdGEgdHlwZSBvYnZpb3VzbHkuCgkgIFByZXZpb3VzbHkgd2Ugd2VyZSBjYWxsaW5nIElETEUgcHJvYmVzIGR1cmluZyBkYXRhIGZsb3cgd2hlbmV2ZXIKCSAgYSBub24tYmxvY2tpbmcgcHJvYmUgd291bGQgYmUgY2FsbGVkLiBUaGUgcGFkIHdhcyB1c3VhbGx5IG5vdCBpZGxlCgkgIGF0IHRoYXQgdGltZS4KCjIwMTMtMTItMzAgMTY6MTA6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogcmVtb3ZlIHVubmVjZXNzYXJ5IE5VTEwgY2hlY2sKCSAgRXJyb3IgaXMgbmV2ZXIgTlVMTCB3aGVuIHdlIGJyZWFrIG91dCBvZiB0aGUgbG9vcC4KCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTEKCjIwMTMtMTItMzAgMTY6MDU6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIFJldmVydCAibmV0dGltZXByb3ZpZGVyOiBSZW1vdmUgZGVhZCBjb2RlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk2NDljZDRjYTE5YTc1ZDAzMTkxMTdhNzdhNzYwOWU0YjhjOTY1MzMuCgkgIFRoaXMgaXMgbm90IHJpZ2h0LCBhbmQgaXQncyBhbHNvIG5vdCB3aGF0IGNvdmVyaXR5CgkgIGlzIGNvbXBsYWluaW5nIGFib3V0LgoKMjAxMy0xMi0zMCAxNjo0NzozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlbW92ZSB1bm5lZWRlZCBjaGVja3MKCSAgaXRlbSBpcyBndWFyYW50ZWVkIHRvIGJlIG5vbi1udWxsLgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MgoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MwoKMjAxMy0xMi0zMCAxNjozNDowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBSZW1vdmUgZGVhZCBjb2RlCgkgIGVyciBpcyBhbHdheXMgTlVMTCBieSB0aGUgcG9pbnQgd2UgcmVhY2ggdGhpcyBsaW5lCgkgIENPVkVSSVRZIENJRCAxMDM3MTUxCgoyMDEzLTEyLTMwIDE0OjQ3OjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHNpbmNlIG1hcmtlciBhZ2FpbiAoMS4zIC0+IDEuNCkKCSAgU2luY2UgbWFya2VycyBzaG91bGQgcG9pbnQgdG8gdGhlIGFwcHJvcHJpYXRlIHN0YWJsZSB2ZXJzaW9uLgoKMjAxMy0xMi0zMCAxNDo0MDo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzaW5jZS1tYXJrZXIgaW4gZG9jcyAod2UncmUgaW4gMS4zLlgpCgoyMDEzLTEyLTMwIDE0OjIyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIGEgdGFnIGZvciBtaWRpIGJhc2Ugbm90ZSBudW1iZXJzCgkgIEF1ZGlvIGZpbGVzIGNvbnRhaW5pbmcgc2FtcGxlZCBpbnN0cnVtZW50cyBjYW4gaGF2ZSBtZXRhZGF0YSBkZXNjcmliaW5nIHRoZSBub3RlCgkgIHRoYXQgd2FzIHBsYXllZCBvbiB0aGUgaW5zdHJ1bWVudC4KCjIwMTMtMTItMzAgMTA6MDE6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgaWdub3JlIHByb2JlIGNhbGxiYWNrIHJldHVybiB2YWx1ZSB3aGVuIGltbWVkaWF0ZWx5IGNhbGxpbmcgSURMRSBwcm9iZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMDk2CgoyMDEzLTEyLTI5IDE0OjA2OjU1ICswMDAwICBQZWRybyBDw7RydGUtUmVhbCA8cGVkcm9AcGVkcm9jci5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGdpdC11cGRhdGUuc2g6IGZpeCBmb3Igbm9uLW1hc3RlciBicmFuY2hlcwoJICBQdWxsIGZyb20gdHJhY2tpbmcgYnJhbmNoIGluc3RlYWQgb2Ygb3JpZ2luL21hc3Rlciwgc28KCSAgdGhhdCB0aGlzIHdvcmtzIHdpdGggZS5nLiAxLjIgYXMgd2VsbC4KCjIwMTMtMTItMjcgMTI6NTU6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBwYXJzZTogVXNlIEdMaWIgbWFsbG9jL2ZyZWUvcmVhbGxvYyBmdW5jdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDEwMAoKMjAxMy0xMi0yNiAxMjoxNjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IHJlLXVzZSBleGlzdGluZyBtYXN0ZXIgYnJhbmNoIGlmIGl0IGV4aXN0cwoJICBXaGVuIGNyZWF0aW5nIHNlcGFyYXRlIGNoZWNrb3V0IGZvciBub24tbWFzdGVyIGJyYW5jaGVzLgoKMjAxMy0xMi0yNiAxMTozOToyNyArMDEwMCAgRXJpayBBbmRyZXNlbiA8ZXJpa0B2b250YWVuZS5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBkb2NzOiBmaXggbWVtb3J5IGxlYWsgb2YgYXBwc2luayBleGFtcGxlIGluIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMDc2CgoyMDEzLTEyLTIyIDIyOjMzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkYmVkYWEwIHRvIGQ0OGJlZDMKCjIwMTMtMTItMjIgMjI6MDQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBzdHJpbmcgY2hhbmdlcwoKMjAxMy0xMi0yMiAyMTo1NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL01ha2V2YXJzOgoJICBwbzogc2V0IGdldHRleHQgZG9tYWluIGluIE1ha2V2YXJzIHNvIHdlIGRvbid0IGhhdmUgdG8gcGF0Y2ggdGhlIGdlbmVyYXRlZCBNYWtlZmlsZS5pbi5pbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NDU1CgoyMDEzLTEyLTIwIDE0OjQxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHJvdW5kIGRvd24gMTI4IG1hY3JvIGZvciBjb21wbGV0ZW5lc3MKCjIwMTMtMTEtMTMgMTc6MDY6MjMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHJvdW5kIHVwIDEyOCBtYWNybwoKMjAxMy0xMi0yMCAxNDozMDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU2V0dGluZyB0aGUgUFJPWFlfQ0FQUyBmbGFnIG9uIHRoZSBzcmNwYWQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlCgkgIGZ1bm5lbCBvdXRwdXRzIHdoYXRldmVyIG9uZSBvZiB0aGUgdXBzdHJlYW1zIGN1cnJlbnRseSBvdXRwdXRzLCBhIGNhcHMKCSAgcXVlcnkgdG8gYSByYW5kb20gdXBzdHJlYW0gZG9lcyBub3QgZ2l2ZSB0aGUgcmlnaHQgYW5zd2VyIGhlcmUuCgoyMDEzLTEyLTIwIDExOjM3OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBQcm94eSBDQVBTIGFuZCBBTExPQ0FUSU9OIHF1ZXJpZXMKCjIwMTMtMTEtMTggMTA6NDY6MDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHBvc3QgMTAwJSBidWZmZXJpbmcgaWYgc2luZ2xlIHF1ZXVlIGlzIG5vdCBsaW5rZWQKCSAgVGhpcyBtYWtlcyBidWZmZXJpbmcgc3RvcCBpbiBjYXNlIGEgc3RyZWFtIHN3aXRjaCBoYXBwZW5zLiBUaGlzIGlzCgkgIGltcG9ydGFudCBmb3IgYWRhcHRpdmUgc3RyZWFtcyB0aGF0IGNhbiBkaXNhYmxlIG5vdC1saW5rZWQgc3RyZWFtcwoJICB0byBhdm9pZCBjb25zdW1pbmcgdGhlIG5ldHdvcmsgYmFuZHdpZHRoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NTc1CgoyMDEzLTEyLTE4IDA1OjE5OjQ2IC0wNTAwICBXaWxsaWFtIEpvbiBNY0Nhbm4gPHdpbGxpYW0uam9uLm1jY2FubkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IGZpeCBwcm9qZWN0IGxpbmtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA2NjUKCjIwMTMtMTItMTAgMTU6NTM6NTQgKzAxMDAgIERhdmlkIFN2ZW5zc29uIEZvcnMgPGRhdmlkc2ZAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdXNlIHNlZ21lbnQgc3RhcnQgaWYgRFRTIGZvciBmaXJzdCBidWZmZXIgaXMgdW5zZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDE5OQoKMjAxMy0xMi0xMiAxNzoxNzo0MCArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3RyZWFtZXItdmFhcGkgcGF0aHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDMzNwoKMjAxMy0xMi0xNCAyMToyMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLW5vaW5saW5lLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci1ub2lubGluZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGV3cml0ZXItbm9pbmxpbmUuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGJpdHJlYWRlciwgYnl0ZXJlYWRlciBhbmQgYnl0ZXdyaXRlciB3aXRoIG5vIGlubGluaW5nIHVzZWQKCjIwMTMtMTItMTQgMTg6Mzg6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2YXJpYW50IG9mIGdzdF9ieXRlX3JlYWRlcl9pbml0KCkKCjIwMTMtMTItMTQgMTg6MzE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgZG9jczogZml4IGRvY3MgZm9yIGdzdF9xdWV1ZV9hcnJheV9wZWVrX2hlYWQoKQoKMjAxMy0xMi0xNCAxOTowODozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBEb24ndCBkZWZpbmUgeXlzY2FuX3QgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDMxNgoKMjAxMy0xMi0xMyAyMjo1MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBtb3ZpbmcgcGx1Z2luczogbWlub3IgMC4xMCAtPiAxLjAgZml4CgkgIFNwb3R0ZWQgYnkgSmF5IEZlbmxhc29uCgoyMDEzLTEyLTExIDE0OjQyOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWU6IGRvbid0IGlnbm9yZSBldmVudCByZXR1cm4gdmFsdWUKCSAgUGFzcyB0aGUgZXZlbnQgcmV0dXJuIHZhbHVlIHVwc3RyZWFtLgoJICBSZW1vdmUgc3RyYW5nZSBnb3RvIGNvbnN0cnVjdC4KCjIwMTMtMTItMTAgMTg6MzA6MDMgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBIYW5kbGUgdGFnbGlzdCBjb3B5IGZhaWx1cmUKCSAgSWYgd2UgY291bGRuJ3QgY29weSB0aGUgdGFncywganVzdCByZXR1cm4gaW5zdGVhZCBvZiB0cnlpbmcgdG8gdXNlIGJvZ3VzCgkgIHZhbHVlcy4KCjIwMTMtMTItMTAgMTg6MjU6MjIgLTA1MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEluZGV4IGZlYXR1cmVzIGFyZSBubyBtb3JlCgkgIFNvIHJlbW92ZSBjb2RlIHRoYXQgd2lsbCBuZXZlciBiZSB1c2VkCgoyMDEzLTEyLTEwIDE3OjUzOjI0IC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBjb21wYXJpc2lvbiBvZiBkb3VibGUgcmFuZ2UKCSAgQ2hlY2tpbmcgdHdpY2UgdGhlIGxvd2VyIGJvdW5kIGlzIGdyZWF0ICh5b3UgbmV2ZXIga25vdywgaXQgbWlnaHQgY2hhbmdlCgkgIGJldHdlZW4gdGhlIHR3byBjYWxscyBieSBzb21lb25lIHVzaW5nIGVtYWNzIGJ1dHRlcmZseS1tb2RlKSwgYnV0IGl0J3MgYSBiaXQKCSAgbW9yZSB1c2VmdWwgdG8gY2hlY2sgdGhlIGhpZ2hlciBib3VuZCBhcmUgYWxzbyBpZGVudGljYWwuCgkgIERldGVjdGVkIGJ5IENvdmVyaXR5CgoyMDEzLTEyLTEwIDE3OjA5OjA3IC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IG91dC1vZi1ib3VuZHMgZGV0ZWN0aW9uCgkgIFdlIHdhbnQgdG8gYWJvcnQgaWYgd2UgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKk9SKiBsb3dlciB0aGFuIHRoZSBtaW5pbXVtCgkgIGFjY2VwdGVkIHZhbHVlLgoJICBEZXRlY3RlZCBieSBDb3Zlcml0eS4KCjIwMTMtMTItMDcgMTk6MDQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgcmVnaXN0ZXJpbmcgdGhlIHNhbWUgY2F0ZWdvcnkgdHdpY2UKCjIwMTMtMTItMDcgMTk6MzI6NTggKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmV0dXJuIGV4aXN0aW5nIGNhdGVnb3J5IGlmIGEgZGVidWcgY2F0ZWdvcnkgaXMgcmVnaXN0ZXJlZCB0d2ljZQoJICBJZiBhIGNhdGVnb3J5IHdpdGggdGhlIHNhbWUgbmFtZSBpcyBmb3VuZCB3aGVuIGNyZWF0aW5nIGEgbmV3CgkgIG9uZSwgdGhlIGZvdW5kIGNhdGVnb3J5IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gaW52YWxpZCBwb2ludGVyLgoJICBGaXhlcyBpc3N1ZSB3aXRoIGdzdC12YWFwaSAod2hpY2ggdXNlcyBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZQoJICBjb2RlYyBwYXJzZXJzKSBjYXVzZWQgYnkgY29tbWl0IGNjYmE5MTMwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDM2CgoyMDEzLTEyLTA3IDE1OjM4OjE5ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL291dGxpbmUudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBkb2NzOiBGaXggdHlwb3MgaW4gZnVuY3Rpb24vb2JqZWN0IGRlc2NyaXB0aW9ucwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDI5CgoyMDEzLTEyLTA3IDE1OjQwOjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBGaXggc29tZSB0eXBvcyBpbiBjb2RlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwMDI5CgoyMDEzLTEyLTA2IDIwOjUwOjE5ICswMDAwICBTdGV3YXJ0IEJyb2RpZSA8c3Rld2FydEBlaC5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGRvY3M6IGNsYXJpZnkgZW5jb2Rpbmcgb2Ygc3RyaW5ncyBpbiBHc3RTdHJ1Y3R1cmVzIGFuZCB0YWdsaXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjYyCgoyMDEzLTA3LTAyIDIwOjI3OjU5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNldCBmb3JtYXQgdG8gVElNRSBpZiBkby10aW1lc3RhbXAgaXMgVFJVRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyODQyCgoyMDEzLTEyLTA1IDAwOjI2OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhbHJlYWR5LXJlbW92ZWQgR1NvdXJjZSBmcm9tIG1haW4gbG9vcAoJICBJdCdzIGNvbnNpZGVyZWQgYSBwcm9ncmFtbWluZyBlcnJvciBpbiByZWNlbnQgR0xpYiB2ZXJzaW9ucyBub3cuCgkgIFdlIG1heSBhbHJlYWR5IGhhdmUgcmVtb3ZlZCB0aGUgc291cmNlIGJ5IHJldHVybmluZyBGQUxTRSBmcm9tCgkgIHRoZSBjYWxsYmFjayBpZiBpdCB3YXMgZmlyZWQuIEZpeGVzIHdhcm5pbmcgd2l0aCBuZXdlciBHTGlicwoJICB3aGVuIGludGVycnVwdGluZyBhIHBpcGVsaW5lIHdpdGggQ29udHJvbC1DLgoKMjAxMy0xMi0wNCAxNzozNToxOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IE1ha2Ugc3VyZSB0aGUgc2FtZSBjYXRlZ29yeSBpcyBub3QgYWRkZWQgdHdpY2UKCjIwMTMtMTItMDQgMTc6MzU6MDIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBQcm90ZWN0IF9fY2F0ZWdvcmllcyBsaXN0IGluIGdldF9jYXRlZ29yeSB3aXRoIGxvY2sgdG9vCgoyMDEzLTEyLTA0IDAwOjEwOjM2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogYWRkIG1pc3NpbmcgZmlsZXMgZm9yIGRpc3RyaWJ1dGlvbgoJICAqIGFkZCBzb21lIGRvY3VtZW50YXRpb24gZmlsZXMgaW4gZG9jcy9kZXNpZ24KCSAgKiBhZGQgZG9jcy9saXN0LXVsaW5rLnhzbCBzbyBjaGVjayBpbiBkb2NzL21hbnVhbCB3b3JrcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODE0CgoyMDEzLTEyLTAzIDIxOjQ2OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBBQ0NFUFRfSU5URVJDRVBUIGZsYWcKCSAgTWFrZSBhIG5ldyBmbGFnIG9uIHRoZSBwYWQgdGhhdCB0d2Vha3MgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZQoJICBhY2NlcHQtY2FwcyBmdW5jdGlvbi4gQnkgZGVmYXVsdCBpdCB3aWxsIGNoZWNrIGZvciBhIHN1YnNldCBvZiB0aGUKCSAgcXVlcnktY2FwcyByZXN1bHQgYnV0IHRoaXMgaXMgbm90IGFsd2F5cyBkZXNpcmFibGUuIFRoZSBxdWVyeS1jYXBzCgkgIHJlc3VsdCBjb250YWlucyBhbGwgdGhlIGNvbnN0cmFpbnRzIHRvIG1ha2UgYSBnb29kIGNhcHMgZGVjaXNpb24KCSAgdXBzdHJlYW0gYnV0IHNvbWV0aW1lcywgbGlrZSBmb3IgcGFyc2Vycywgbm90IGFsbCB0aGUgY29uc3RyYWluZWQgY2FwcwoJICBmaWVsZHMgYXJlIGtub3duIHVwc3RyZWFtIGFuZCB0aGVuIGEgc3Vic2V0IGNoZWNrIHdvdWxkIGZhaWwuIFN3aXRjaGluZwoJICB0byBhbiBpbnRlcnNlY3Rpb24gbWFrZXMgdGhpcyB3b3JrIGFnYWluLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTAyNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NDAxCgoyMDEzLTEyLTAyIDIyOjIyOjM2IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFdha2UgdXAgb24gcmVjb25maWd1cmUgZXZlbnQKCSAgQWZ0ZXIgcGF0Y2ggYmRhNDA2YzQsIHRoZSBzdGF0ZSBvZiB0aGUgc2luZ2xlcXVldWUgd2FzIHNldCB0byBPSywgYnV0IG5vdGhpbmcKCSAgd291bGQgdGhlbiB3YWtlIHVwIHRoZSB0aHJlYWQsIGFzIHRoZSBvdGhlciB3YWtldXAgZnVuY3Rpb25zIG9ubHkgbG9vayBhdAoJICBzaW5nbGVxdWV1ZXMgdGhhdCBhcmUgbWFya2VkIGFzIGhhdmluZyByZWNlaXZlZCBhcyBub3QtbGlua2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4MjAwCgoyMDEzLTExLTMwIDEyOjE1OjM3ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGRvY3MsIGZpeGluZyBkb2MgZXJyb3JzCgkgICogYWRkIG1hbnkgbWlzc2luZyBkZWNsYXJhdGlvbnMgdG8gc2VjdGlvbnMKCSAgKiBHc3RDb250cm9sbGVyIGhhcyBiZWVuIHJlbW92ZWQsIHVwZGF0ZSBkb2NzCgkgICogc2tpcCBHc3RJbmRleCB3aGVuIGdlbmVyYXRpbmcgZG9jdW1lbnRhdGlvbgoJICAqIHJlcGhyYXNlIHNvIGd0a2RvYyBkb2Vzbid0IGltYWdpbmUgcmV0dXJuIHZhbHVlCgkgICogYWRkIG1pc3NpbmcgYXJndW1lbnQgZGVzY3JpcHRpb24gZm9yIGdzdF9jb250ZXh0X25ldygpCgkgICogZG9jdW1lbnQgR3N0T3V0cHV0U2VsZWN0b3JQYWROZWdvdGlhdGlvbk1vZGUgYW5kIG1vdmUgdG8gaGVhZGVyLWZpbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTYxNAoKMjAxMy0xMS0zMCAxNDo1Mjo0MCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBkb2NzOiBjb3NtZXRpYyBjaGFuZ2VzIGluIHJlZmVyZW5jZXMvZGVjcmlwdGlvbnMKCSAgKiBmaXggdHlwbyBHc3RCdWZmZXJGbGFnIC0+IEdzdEJ1ZmZlckZsYWdzCgkgICogZml4IHR5cG8gR3N0RmVhdHVyZXMgLT4gR3N0Q2Fwc0ZlYXR1cmVzCgkgICogZml4IHR5cG8gR3N0QWxsb2NhdG9yUGFyYW1zIC0+IEdzdEFsbG9jYXRpb25QYXJhbXMKCSAgKiBmaXggdHlwbyBHc3RDb250cmxTb3VyY2VzIC0+IEdzdENvbnRyb2xTb3VyY2UKCSAgKiBkbyBub3QgcmVmZXIgdG8gZ3N0Y2hlY2sgYXMgYW4gb2JqZWN0CgkgICogbWFrZSByZWZlcmVuY2VzIGd0a19pbml0KCkgYW5kIHRjYXNlX3NldF90aW1lb3V0KCkgbm90IGJlIHJlZmVyZW5jZXMKCSAgKiBnc3RfZWxlbWVudF9nZXRfcGFkKCkgcmVuYW1lZCBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCgpCgkgICogZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCgpIHJlbmFtZWQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKQoJICAqIF9kcm9wX2VsZW1lbnQoKSBpcyByZWFsbHkgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgICogZ3N0X3BhZF9hY2NlcHRfY2FwcygpIHdhcyByZW1vdmVkLCBkbyBub3QgcmVmZXIgdG8gaXQKCSAgKiBzZXBhcmF0ZSBHU1RfTUVUQV9UQUdfTUVNT1JZX1NUUiBkZWNsYXJhdGlvbiBmcm9tIGRlc2NyaXB0aW9uCgkgICogZG8gbm90IGRlc2NyaWJlIHJlbW92ZWQgZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KCkKCSAgKiBjb3JyZWN0bHkgbGluayB0byBHc3RFbGVtZW50Q2xhc3MnIHZpcnR1YWwgc2V0X2NvbnRleHQoKQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5NjE0CgoyMDEzLTExLTI5IDE0OjAwOjM1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogTWFudWFsbHkgaW5zZXJ0IHByaXZfZ3N0X3BhcnNlX3l5Z2V0L3NldF9jb2x1bW4gcHJvdG90eXBlcyBmb3Igb2xkZXIgZmxleAoJICBPbGRlciB2ZXJzaW9ucyBvZiBmbGV4IChiZWZvcmUgMi41LjM2KSBkb24ndCBhZGQgdGhlIHByb3RvdHlwZSwgc28gaXQgbXVzdAoJICBiZSBhZGRlZCBtYW51YWxseS4gV2UgY2FuJ3QgY2hlY2sgYnkgdGhlIHZlcnNpb24gbnVtYmVyLCBiZWNhdXNlIERlYmlhbi9VYnVudHUKCSAgcGF0Y2hlZCBpdCBpbnRvIHRoZWlyIDIuNS4zNSBhdCBzb21lIHBvaW50LgoKMjAxMy0xMS0xOSAxMTo0MTo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0cGFkOiBkcm9wIGFzc2VydGlvbiBvbiBnc3RfcGFkX3BlZXJfcXVlcnlfcG9zaXRpb24KCSAgSXQgaXMgYSAnYm90aCcgcXVlcnksIHNvIGl0IGNhbiBiZSBzZW50IGJvdGggd2F5cwoKMjAxMy0xMS0xOCAxODoxMTo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaGFuZGxlIGdhcCBldmVudHMKCSAgVXNlIGdhcCBldmVudHMgdG8gYWR2YW5jZSB0aGUgc2VsZWN0b3IncyBwYWQgcG9zaXRpb24uCgkgIFRoaXMgaXMgcmVsZXZhbnQgdG8ga2VlcCBzeW5jX3N0cmVhbXMgbW9kZSB3b3JraW5nIHdoZW4gb25lIG9mIHRoZQoJICBzdHJlYW1zIGRvZXNuJ3QgaGF2ZSBkYXRhIGFsbCB0aGUgdGltZS4KCjIwMTMtMTEtMjkgMTc6MDI6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IGNvcHkgc3RpY2t5IGV2ZW50cyB0byBTUkMgZ2hvc3RwYWRzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgxNjJhNTgzYTRkZDY4NTgyYmYxODZlMmU0N2E4ZjBkNjhmYTE5ODAuCgkgIEF1dG9tYXRpY2FsbHkgY29weWluZyB0aGUgc3RpY2t5IGV2ZW50cyBtYWtlcyBpdCBpbXBvc3NpYmxlIGZvciBhcHBzCgkgIGFuZCBlbGVtZW50cyB0byBmaWx0ZXIgdGhlIGV2ZW50cyB3aXRoIGV2ZW50IHByb2Jlcy4gVGhpcyBjYXVzZXMKCSAgcmVncmVzc2lvbnMgKFNlZSAjNzE5NDM3KS4gVGhlIGJlc3Qgb3B0aW9uIGlzIHRvIGxldCB0aGUgYXBwL2VsZW1lbnQKCSAgY29weSBhbmQgZmlsdGVyIHRoZSBldmVudHMgdGhlbXNlbHZlcyBhZnRlciB0aGUgZ2hvc3RwYWQgdGFyZ2V0IGlzCgkgIHNldC4KCjIwMTMtMTEtMTkgMTU6MDM6MzUgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggc2VnZmF1bHRpbmcgcHJvdG90eXBlLW1pc21hdGNoCgkgIE5vdyBZWURFQlVHIGlzIGFsd2F5cyBzZXQsIHNvIGNoZWNrIGl0J3MgdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjY3OQoKMjAxMy0xMS0yNyAxODozMjoyMiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBkb2NzdHJpbmcgZm9yIHJvdW5kLXRyaXAtbGltaXQgYW5kIHVuaW5pdCBhY2Nlc3Mgd2FybmluZy4KCSAgRml4IGEgdHlwbyBpbiBhIGRvYyBzdHJpbmcgLSB0aGUgcHJvcGVydHkgaXMgcm91bmQtdHJpcC1saW1pdCwgbm90CgkgIHJvdW5kdHJpcC1saW1pdC4KCSAgUmVtb3ZlIGEgYm9ndXMgR1NUX1dBUk5JTkcgdGhhdCBjYW4gcHJpbnQgYW4gdW5pbml0aWFsaXNlZCB2YXJpYWJsZQoJICBhbmQgaXMgcmVkdW5kYW50IGFueXdheS4KCjIwMTMtMTEtMjYgMTE6NTY6NDYgKzAxMDAgIENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogQWRkIHJvdW5kLXRyaXAtbGltaXQgcGFyYW1ldGVyCgkgIFNvbWV0aW1lcywgcGFja2V0cyBtaWdodCB0YWtlIGEgdmVyeSBsb25nIHRpbWUgdG8gcmV0dXJuLiBTdWNoIHBhY2tldHMKCSAgdXN1YWxseSBhcmUgd2F5IHRvbyBsYXRlIGFuZCBkZXN0YWJpbGl6ZSB0aGUgcmVncmVzc2lvbiB3aXRoIHRoZWlyCgkgIG9ic29sZXRlIGRhdGEuIE9uIFdpLUZpLCByb3VuZC10cmlwcyBvZiBvdmVyIDcgc2Vjb25kcyBoYXZlIGJlZW4gb2JzZXJ2ZWQuCgkgIElmIHRoZSBsaW1pdCBpcyBzZXQgdG8gYSBub256ZXJvIHZhbHVlLCBwYWNrZXRzIHdpdGggYSByb3VuZC10cmlwIHBlcmlvZAoJICBsYXJnZXIgdGhhbiB0aGUgbGltaXQgYXJlIGlnbm9yZWQuCgkgIFNpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjM4NQoKMjAxMy0xMS0yNSAxOTowNDozOCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRml4IGdpIGFubm90YXRpb25zIG9mIGdzdF9zdHJ1Y3R1cmVfbmV3X2N1c3RvbSgpCgoyMDEzLTExLTI2IDAyOjQzOjU0ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogRml4IEM5OSBjb21tZW50CgoyMDEzLTExLTI2IDAyOjE3OjM2ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbG9jazogSW1wbGVtZW50IHJvbGxpbmctYXZlcmFnZSBmaWx0ZXIgb24gb2JzZXJ2YXRpb25zLgoJICBLZWVwIGEgcm9sbGluZyBhdmVyYWdlIG9mIHRoZSByb3VuZCB0cmlwIHRpbWUgZm9yIG5ldHdvcmsgY2xvY2sKCSAgb2JzZXJ2YXRpb25zLCBmYXZvdXJpbmcgc2hvcnRlciByb3VuZCB0cmlwcyBhcyBiZWluZyBtb3JlIGFjY3VyYXRlLgoJICBEb24ndCBwYXNzIGFueSBjbG9jayBvYnNlcnZhdGlvbiB0byB0aGUgY2xvY2sgc2xhdmluZyBpZiBpdCBoYXMgYQoJICByb3VuZC10cmlwIHRpbWUgZ3JlYXRlciB0aGFuIDIgdGltZXMgdGhlIGF2ZXJhZ2UuCgkgIEFjdHVhbCBzaGlmdHMgaW4gdGhlIG5ldHdvcmsgdG9wb2xvZ3kgd2lsbCBiZSBub3RpY2VkIGFmdGVyIHNvbWUKCSAgdGltZSwgYXMgdGhlIHJvbGxpbmcgYXZlcmFnZSBpbmNvcnBvcmF0ZXMgdGhlIG5ldyByb3VuZCB0cmlwIHRpbWVzLgoKMjAxMy0xMS0yNSAyMDozMzo0MiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBBZGQgZGVidWcgaW50byBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfcXVlcnkoKSBmb3IgYWNjZXB0X2NhcHMKCjIwMTMtMTEtMTQgMTU6MzI6NTkgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGV4aXQgd2l0aCBhbiBlcnJvciBjb2RlIHdoZW4gYW4gZXJyb3Igb2NjdXJlZAoJICBJZiB0aGUgcGlwZWxpbmUgZmFpbGVkIHRvIHByZS1yb2xsIG9yIHRoZSB1c2VyIGludGVycnVwdGVkIHRoZQoJICBleGVjdXRpb24gdGhlbiBzZXQgdGhlIGV4aXQgY29kZSB0byBhIHBvc2l0aXZlIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzAwCgoyMDEzLTExLTIyIDAxOjM1OjE4ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEVzY2FwZSBzdHJlYW0gaWQgZm9ybWF0IGluIGNvbW1lbnRzCgkgIFRoZXNlIG11c3QgYmUgZXNjYXBlZCBmb3IgZ3RrLWRvYyB0byBwYXJzZSB0aGUgY29tbWVudHMgd2l0aG91dCB3YXJuaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDk4OQoKMjAxMy0xMS0yMSAxNTowNDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3Q6IGdfbWVtbW92ZSgpIGlzIGRlcHJlY2F0ZWQKCSAgSnVzdCB1c2UgcGxhaW4gbWVtbW92ZSgpLCBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkIGluCgkgIHJlY2VudCBHTGliIHZlcnNpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyODExCgoyMDEzLTExLTIxIDE0OjEzOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogY29weSBzdGlja3kgZXZlbnRzIHRvIFNSQyBnaG9zdHBhZHMKCSAgVXBkYXRlIHRoZSBzdGlja3kgZXZlbnRzIG9uIFNSQyBnaG9zdHBhZHMgd2hlbiByZXRhcmdldGluZy4gVGhpcyBlbnN1cmVzCgkgIHRoYXQgdGhlIGdob3N0cGFkIGhhcyB0aGUgZXhlY3Qgc2FtZSBzdGlja3kgZXZlbnRzIGFzIHRoZSB0YXJnZXQgcGFkLiBXZQoJICBkb24ndCB3YW50IHRvIGRvIHRoaXMgZm9yIFNJTksgZ2hvc3RwYWRzLCB0aGV5IGdvdCB0aGUgZXZlbnRzIGZyb20KCSAgZG93bnN0cmVhbSBhbmQgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgdGhlbSB3aXRoIHRoZSB0YXJnZXQgcGFkCgkgIGV2ZW50cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzYyMQoKMjAxMy0xMS0yMSAxMjoyODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW92ZSBkZWJ1ZyBmdW5jdGlvbiBjbG9zZXIgdG8gdGhlIGVudW0gaXQgZGVidWdzCgoyMDEzLTExLTE4IDIxOjM5OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGNoZWNrIHJlYWQvd3JpdGUgYmVmb3JlIGNsb3NlZAoJICBmaXJzdCB0cnkgdG8gcmVhZCBvciB3cml0ZSBvbiB0aGUgc29ja2V0IGJlZm9yZSBjaGVja2luZyB0aGUgY2xvc2VkIHN0YXRlLiBUaGlzCgkgIG1ha2VzIHN1cmUgd2UgaGFuZGxlIGFsbCBkYXRhIG9uIHRoZSBzb2NrZXQgYmVmb3JlIGVycm9yaW5nIG91dC4KCjIwMTMtMTEtMTggMjE6Mzc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnCgkgIFNvIHRoYXQgd2UgY2FuIHNlZSB0aGUgcmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMgaW4gdGhlIGxvZy4KCjIwMTMtMTEtMTggMTU6Mjg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBmaXggR3N0QnVzIHVuaXQgdGVzdCB3aXRoIGxhdGVzdCBHTGliCgkgIGdfc291cmNlX3JlbW92ZSgpIHdvcmtzIG9uIHRoZSBkZWZhdWx0IG1haW4gY29udGV4dCwgYW5kCgkgIHdlJ3JlIGRvaW5nIHRoaW5ncyB3aXRoIGEgY3VzdG9tIGNvbnRleHQuIEZpeGVzIHdhcm5pbmcKCSAgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zLgoKMjAxMy0xMS0xNiAxMjoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIGRvY3M6IGNvc21ldGljIHNpbmNlIG1hcmtlciBmaXhlcwoKMjAxMy0xMS0xNiAxNToxNzo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgdG8gcHJlc2VydmUgdXBzdHJlYW0gdGltZXN0YW1wcwoJICAuLi4gcmF0aGVyIHRoYW4gaGF2ZSBzdWJjbGFzcyBjb21pbmcgdXAgd2l0aCBhbiBpbnRlcm5hbGx5IHBhcnNlZCBvbmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcyMzAKCjIwMTMtMTEtMTUgMDc6MzI6NDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogUmVzeW5jIGl0ZXJhdG9yIGlmIG5lY2Vzc2FyeQoKMjAxMy0xMS0xMyAxOTo1NTo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB2YWx1ZTogTGlzdHMgd2l0aCBhbGwgZXF1YWwgZWxlbWVudHMgYXJlIGVxdWFsIHRvIGEgc2luZ2xlIHZhbHVlCgkgIE90aGVyd2lzZSBjYXBzIGNvbnRhaW5pbmcgZj17WCwgWH0gYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggZj1YCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTEtMTEgMTY6NDc6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJCgoyMDEzLTExLTExIDE3OjI5OjQ4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogUmVhbGx5IHVwZGF0ZSB0aGUgZGVmIGZpbGVzCgoyMDEzLTExLTExIDE3OjAyOjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZXMKCjIwMTMtMTEtMTEgMTY6NTA6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBbHNvIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEggZm9yIGdzdC1wbHVnaW5zLWdsCgoyMDEzLTExLTA1IDEyOjIyOjUxICswMDAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogZXhwb3J0IGdzdC1wbHVnaW5zLWdsIERZTERfTElCUkFSWV9QQVRICgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE0ODgKCjIwMTMtMTEtMDYgMTg6NDY6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBBbHdheXMgc2VuZCBTRUVLIGV2ZW50cyB0byBhbGwgcGFkcywgZXZlbiBpZiBvbmUgZmFpbHMKCjIwMTMtMTEtMDYgMTg6NDE6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBmbHVzaGluZyBzZWVrIGhhbmRsaW5nCgoyMDEzLTExLTA2IDE4OjA1OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgbGVhayBzZWVrIGV2ZW50cwoKMjAxMy0wOS0xNiAwOTo1NTo1OCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGltcGxlbWVudCBmbHVzaGluZyBzZWVrIHN1cHBvcnQKCSAgSW1wbGVtZW50IGNvbW1vbiBmbHVzaGluZyBzZWVrIGxvZ2ljIGluIEdzdENvbGxlY3RQYWRzLiBBZGQgbmV3CgkgIEFQSSBzbyB0aGF0IGVsZW1lbnRzIGNhbiBvcHQtaW4gdG8gdXNpbmcgdGhlIG5ldyBsb2dpYwoJICAoZ3N0X2NvbGxlY3RfcGFkc19zcmNfZXZlbnRfZGVmYXVsdCkgYW5kIGNhbiBleHRlbmQgaXQKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoX2Z1bmN0aW9uKSB0byBmbHVzaCBhbnkgaW50ZXJuYWwKCSAgc3RhdGUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2Nzc5IGFuZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDQxIGZvciB0aGUKCSAgYmFja2dyb3VuZCBkaXNjdXNzaW9uLgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoX2Z1bmN0aW9uKCkKCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NyY19ldmVudF9kZWZhdWx0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODozNTozNyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogYWRkIGZsdXNoaW5nIHNlZWsgdGVzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQxNgoKMjAxMy0wOS0xNiAwODozMTo0NyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBjb2xsZWN0cGFkczogdHdlYWsgc3R1YiBfY29sbGVjdCB0byBwdXNoIGFsbCBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MjY6MjUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMTEtMTEgMTM6Mjc6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgdXNlIGdzdF9idWZmZXJfZ2V0X3NpemUoKSB3aGVuIHBvc3NpYmxlCgkgIE1ha2VzIHFzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSAyMCUgZmFzdGVyCgoyMDEzLTExLTExIDEyOjI1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN5c3RlbWNsb2NrOiBBZGQgZ3N0X3N5c3RlbV9jbG9ja19zZXRfZGVmYXVsdAoJICBVc2VkIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHN5c3RlbSBjbG9jayB0aGF0IGlzIG9idGFpbmVkIHRocm91Z2gKCSAgZ3N0X3N5c3RlbV9jbG9ja19vYnRhaW4oKSwgd2hpY2ggaXMgc29tZXRpbWVzIG5lZWRlZCBmb3IgdW5pdAoJICB0ZXN0aW5nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMjY5CgoyMDEzLTExLTA0IDE4OjU3OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHR5cGVmaW5kOiB1c2UgZ19nZXRfcHJnbmFtZSgpIGZvciBlcnJvciBtZXNzYWdlCgoyMDEzLTExLTA2IDEwOjE1OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogcHJveHkgY2FwcyBhbmQgYWxsb2NhdGlvbgoJICBQcm94eSB0aGUgY2FwcyBxdWVyaWVzIG9uIHRoZSBzcmNwYWQgYXMgd2VsbC4KCSAgUHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgb24gdGhlIHNpbmtwYWQuCgoyMDEzLTExLTA1IDExOjE3OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NjVhYTIwIHRvIGRiZWRhYTAKCjIwMTMtMTEtMDQgMTM6NTY6MzcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUmVtb3ZlIHNvbWUgZGVhZCBjb2RlCgoyMDEzLTExLTA0IDExOjQ4OjQ3ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBleHBsaWNpdGx5IGNhc3QgdG8gR3N0TG9ja0ZsYWdzIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEzLTExLTAyIDE1OjM2OjE5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiByZXN1cnJlY3Qgc2FuaXRpemluZyBzdGFydCBhbmQgc3RvcCBmb3Igc2Vla2luZwoKMjAxMy0xMS0wMiAxNTo0MjowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1pbmQgYm9nZ2xpbmcgd3JhcCB3aGVuIGNvbXBhcmluZyBvZmZzZXRzCgoyMDEzLTExLTAyIDE1OjM4OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyeSBmaXJzdCBmcmFtZSBwdHMgYW5kIGR0cyBmb3IgYSB2YWxpZCBzdGFydCB0aW1lc3RhbXAKCjIwMTMtMTEtMDIgMTU6Mzc6MzAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJpbnQgcHJvcGVyIHZhcmlhYmxlIGluIGRlYnVnIHN0YXRlbWVudAoKMjAxMy0xMS0wMSAxNjozNTo1OSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBNYWtlIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBhbHNvIHdvcmsgd2l0aG91dCBhIEdFcnJvcgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdHMKCjIwMTMtMTAtMjMgMTU6NTY6MjAgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGZpeCBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA3NTgKCjIwMTMtMTAtMzEgMTY6MTY6NDggLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkgIGRvY3M6IGZpeCBjb21tb24gdHlwb3MgZW1pdGVkL2VhY2hvdGhlci8uLi4KCjIwMTMtMTAtMzAgMjE6NTM6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBBZGQgc29tZSBhdHRyaWJ1dGVzIGFuZCByZW9yZ2FuaXplIGNvZGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdzdHV0aWxzLmM6MzY1OTo0MTogZXJyb3I6IGZvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwKCSAgWy1XZXJyb3IsLVdmb3JtYXQtbm9ubGl0ZXJhbF0KCSAgZ2NoYXIgKmV4cGFuZGVkID0gZ19zdHJkdXBfdnByaW50ZiAoc3RyZWFtX2lkLCB2YXJfYXJncyk7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA2MjEKCjIwMTMtMTAtMjUgMTQ6NTY6MTYgKzAyMDAgIEFudG9uaW8gT3NwaXRlIDxvc3BpdGVAc3R1ZGVudGkudW5pbmEuaXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogcmVuYW1lIHRoZSAic2FtcGxlcmF0ZSIgdmFyaWFibGUgdG8gbWFrZSBleGFtcGxlIGNvZGUgY29tcGlsYWJsZQoJICBJbiBvbmUgb2YgdGhlIGV4YW1wbGVzIGFib3V0IGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpIHRoZXJlIGlzIGEgdmFyaWFibGUKCSAgZGVjbGFyZWQgYXMgInJhdGUiLCBidXQgdGhlbiB0aGUgbmFtZSAic2FtcGxlcmF0ZSIgaXMgdXNlZCB3aGVuIHNldHRpbmcKCSAgdGhlIGNhcHMuCgkgIFVzZSB0aGUgbmFtZSAicmF0ZSIgZXZlcnl3aGVyZSBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDg3NgoKMjAxMy0xMC0yOSAxODowOTozMiArMDEwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgZG9jOiBmaXggZm9yd2FyZCByZWZlcmVuY2UgYWJvdXQgZ2hvc3QgcGFkcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMDg5CgoyMDEzLTEwLTI4IDEyOjU1OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgZG9jczogZGVzaWduOiBmaXggc29tZSBmaXhlcwoKMjAxMy0xMC0yNiAwOTo0ODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0LXVuaW5zdGFsbGVkIGVudHJ5IGluIGZhcSBzb21lIG1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTkxNgoKMjAxMy0xMC0xNiAxNTowMDo0MSArMDIwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGRvY3M6IEZBUSB1cGRhdGUgdG8gbWVudGlvbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTkxNgoKMjAxMy0xMC0yNSAyMToyOTowMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogc21hbGwgY2xlYW51cHMgYW5kIHVzZSBvYmplY3QgbG9nIHZhcmlhbnRzIG1vcmUKCjIwMTMtMTAtMjUgMjE6Mjg6MzAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgcHJpdmF0ZTogcmVtb3ZlIGxlZnQtb3ZlciBjb21tZW50CgkgIFRoZSBjYXBzIGFyZSBzYXZlZCBpbiB0aGUgcmVnaXN0cnkuCgoyMDEzLTEwLTI1IDE4OjUxOjUzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiB1c2UgZ19zbGljZV9mcmVlIGZvciBzbGljZSBtZW1vcnkKCSAgQXZvaWQgbWVtb3J5IGxpc3QgY29ycnVwdGlvbiwgYnV0IGdfZnJlZSdpbmcgc2xpY2UgbWVtb3J5LgoKMjAxMy0xMC0yMyAxODoxNjo1NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IGZsZXNoIG91dCB0aGUgdHJhY2luZyBkZXNpZ24gYSBsaXR0bGUgbW9yZQoKMjAxMy0xMC0yNSAxMTowMjoxOSAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IHR5cG9zIGluIGdzdG9iamVjdAoKMjAxMy0xMC0yMSAxODowMToyMSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWV0YS50eHQKCjIwMTMtMTAtMTQgMjI6MDM6NTAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1lbGVtZW50LXNvdXJjZS50eHQKCjIwMTMtMTAtMTQgMjE6NTQ6MzEgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtc2luay50eHQKCjIwMTMtMTAtMTQgMTg6NDM6NDAgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb252ZW50aW9ucy50eHQKCjIwMTMtMTAtMTQgMTg6MzQ6MDYgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LWNvbnRyb2xsZXIudHh0CgoyMDEzLTEwLTE0IDE4OjI0OjE4IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb250ZXh0LnR4dAoKMjAxMy0xMC0xNCAxODoxMzozNSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jbG9ja3MudHh0CgoyMDEzLTEwLTE0IDE4OjA1OjQzIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jYXBzLnR4dAoKMjAxMy0xMC0xNCAxNzo0NDoyNyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXIudHh0CgoyMDEzLTEwLTE0IDE3OjI5OjE5IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXJwb29sLnR4dAoKMjAxMy0xMC0xNCAwNTozOToxOSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1idWZmZXJpbmcudHh0CgoyMDEzLTEwLTEzIDIxOjE2OjQ3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtbWVzc2FnZXMudHh0CgoyMDEzLTEwLTEzIDIwOjQyOjQwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1lbW9yeS50eHQKCjIwMTMtMTAtMTggMDg6NTg6MDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgbmV0OiBDb25zdGlmeSBhIHBhcmFtZXRlciB0byBnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcoKQoJICBFdmVuIHRob3VnaCB0aGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZCwgaXQgc2hvdWxkIGJlIGNvbnN0IHRvIGZpdCBpbiB3aXRoIHRoZQoJICBjb2Rpbmcgc3RhbmRhcmRzIGZvciBvdGhlciBzaW1pbGFyIHBhcmFtZXRlcnMuIENsaWVudCBjb2RlIGFscmVhZHkgcGFzc2VzIGluCgkgIGNvbnN0IHN0cmluZ3MgdW5kZXIgdGhlIGV4cGVjdGF0aW9uIHRoYXQgdGhleSB3b27igJl0IGJlIG1vZGlmaWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDQyCgoyMDEzLTEwLTE1IDExOjQ0OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIGdzdF9wcml2YXRlLmggYmVmb3JlIGdsaWItY29tcGF0LXByaXZhdGUuaAoJICBXZSBuZWVkIHRvIGRlZmluZSB0aGUgR0xpYiBsb2cgZG9tYWluIGJlZm9yZSBpbmNsdWRpbmcgZ2xpYi5oLCB3aGljaCBpcwoJICBpbmNsdWRlZCBieSBnbGliLWNvbXBhdC1wcml2YXRlLmguCgoyMDEzLTEwLTE0IDE4OjA3OjE3IC0wMzAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQgdG8gc2VjdGlvbnMudHh0CgkgIFNvIGl0IGFwcGVhcnMgaW4gdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEzLTA5LTI5IDE3OjM1OjExICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0cy9maWxlc3JjOiBTZXQgbG9jYXRpb24gaW4gd3Jvbmcgc3RhdGUKCSAgQWxzbyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQgYWJvdXQgY29kZSBwb3NzaWJseSBub3QgYmVpbmcgcmVhY2hhYmxlCgkgIHRoYXQgaXMgbm93IGV4ZXJjaXNlZCBieSB0aGUgZmlsZXNyYyB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4MzEKCjIwMTMtMTAtMTIgMTY6MTY6MDkgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBGaXggdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIHBhcnNlX2xhdW5jaCBmdW5jdGlvbnMuCgkgIGdzdF9wYXJzZV9sYXVuY2h2LCBnc3RfcGFyc2VfbGF1bmNodl9mdWxsIGFuZCBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwKCSAgYWxsIHJldHVybiBmbG9hdGluZyByZWZzLCB0aGUgc2FtZSBhcyBnc3RfcGFyc2VfbGF1bmNoLCB3aGljaCBqdXN0CgkgIGNhbGxzIGdzdF9wYXJzZV9sYXVuY2hfZnVsbCBpbnRlcm5hbGx5IGFueXdheS4KCSAgQWRkIGEgdW5pdCB0ZXN0IGFzc2VydGlvbiB0byBjaGVjayBpdCdzIHRydWUuCgkgIFNwb3R0ZWQgYnkgbmVtZXF1IG9uIElSQy4KCjIwMTMtMTAtMTAgMDg6MzA6MjcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZ3N0L2dzdC5jOgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkgIGNvcmU6IEZpeCBtYXggREVCVUdfTEVWRUwgaW5jb25ncnVlbmNlIG9uIDUgdnMgOQoJICBJbiB0aGUgZG9jcyBhbmQgdGhlIGF1dG9jb21wbGV0aW9uIGxvZ2ljIHRoZSBtYXhpbXVtCgkgIHZhbHVlIGp1bXBlZCBpbmNvbmdydWVudGx5IGJldHdlZW4gNSBhbmQgOS4KCjIwMTMtMTAtMTAgMTM6MTk6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNraXAgdGVzdF9zdWJzZXRfZHVwbGljYXRpb24gdW50aWwgdGhlIGJ1ZyBpcyBmaXhlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTEwLTEwIDEyOjU2OjU0ICswMjAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBkb2NzOiBGaXggc29tZSByZWZlcmVuY2UgVVJJcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODA0CgoyMDEzLTEwLTAyIDEzOjAzOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgYSB0ZXN0Y2FzZSBmb3Igc3Vic2V0IGNoZWNrcyBvbiBsaXN0cyB3aXRoIGR1cGxpY2F0ZWQgaXRlbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMC0wOSAxNTozNjo0OCAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQ2FsbCB0aGUgY29sbGVjdGVkIGZ1bmN0aW9uIHdoaWxlIGl0IHJldHVybnMgRkxPV19PSwoJICBUaGlzIGFsbG93cyB1cyB0byBtYWtlIHN1cmUgdGhlIGVsZW1lbnRzIGlzIEVPUyBhbmQgZG9lcyBub3QgaGF2ZQoJICByZW1haW5pbmcgYnVmZmVycyB0byBiZSBkcmFpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5NjM3CgoyMDEzLTEwLTA1IDEwOjA4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBmaXggZnVuY3Rpb24gbmFtZSBpbiBxb3MgZGVzaWduIGRvY3MKCjIwMTMtMTAtMDIgMTI6MzA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiB1c2UgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIHRvIHNraXAgYnJva2VuIG11bHRpcXVldWUgdGVzdAoJICBTbyB0aGF0IHdlIGdldCBhIHdhcm5pbmcgaW4gdGhlIG91dHB1dCB0aGF0IHJlbWluZHMgdXMgdGhhdAoJICBzb21ldGhpbmcgbmVlZHMgdG8gYmUgZml4ZWQuCgoyMDEzLTEwLTAyIDExOjI0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgY2hlY2s6IERpc2FibGUgbXVsdGlxdWV1ZSB0ZXN0X291dHB1dF9vcmRlciBjaGVjawoJICBUaGUgY2hlY2sgaXRzZWxmIGlzIHJhY3kuCgkgIChDS19GT1JLPW5vIEdTVF9DSEVDSz10ZXN0X291dHB1dF9vcmRlciBtYWtlIGVsZW1lbnRzL211bHRpcXVldWUuZm9yZXZlcikuCgkgIFRoZSBwcm9ibGVtIGlzIGluZGVlZCB0aGUgdGVzdCBhbmQgbm90IHRoZSBhY3R1YWwgZWxlbWVudCBiZWhhdmlvdXIuCgkgIFRoZSBvYmplY3RzIHRvIHB1c2ggYXJlIGJlaW5nIHB1bGxlZCBvdXQgb2YgdGhlIHNpbmdsZSBpbnRlcm5hbCBxdWV1ZXMgaW4gdGhlCgkgIHJpZ2h0IG9yZGVyIGFuZCBhdCB0aGUgcmlnaHQgdGltZS4uLgoJICBCdXQgYmV0d2VlbjoKCSAgKiB0aGUgbW9tZW50IHRoZSBnbG9iYWwgbXVsdGlxdWV1ZSBsb2NrIGlzIHJlbGVhc2VkICh3aGljaCB3YXMgdXNlZCB0byBkZXRlY3QKCSAgaWYgd2Ugc2hvdWxkIHBvcCBhbmQgcHVzaCBkb3duc3RyZWFtIHRoZSBuZXh0IGJ1ZmZlcikKCSAgKiBhbmQgdGhlIG1vbWVudCBpdCBpcyByZWNlaXZlZCBieSB0aGUgc291cmNlIHBhZCAod2hpY2ggZG9lcyB0aGUgY2hlY2spCgkgID0+IGFub3RoZXIgc2luZ2xlIHF1ZXVlIChsaWtlIHRoZSB1bmxpbmtlZCBwYWQpIG1pZ2h0IHBvcCBhbmQgcHVzaCBhIGJ1ZmZlcgoJICBkb3duc3RyZWFtCgkgIFdoYXQgc2hvdWxkIHdlIGRvID8gUHV0dGluZyBhIGJpZ2dlciBtYXJnaW4gb2YgZXJyb3IgKHNheSA1IGJ1ZmZlcnMpIGRvZXNuJ3QKCSAgaGVscCwgaXQnbGwgZXZlbnR1YWxseSBmYWlsLgoJICBJIGNhbid0IHNlZSBob3cgd2UgY2FuIGRldGVjdCB0aGlzIHJlbGlhYmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjYxCgoyMDEzLTA5LTI1IDE5OjA2OjU1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNhcHMgc2VyaWFsaXphdGlvbiB3aGVuIHRoZXJlIGFyZSBjYXBzIGluc2lkZSBjYXBzCgkgIFdyYXAgY2FwcyBzdHJpbmdzIHNvIHRoYXQgaXQgY2FuIGhhbmRsZSBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24KCSAgb2YgY2FwcyBpbnNpZGUgY2Fwcy4gT3RoZXJ3aXNlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgaW50ZXJuYWwgY2FwcyBhcmUgcGFyc2VkCgkgIGFzIGlmIHRoZXkgd2VyZSBmcm9tIHRoZSB1cHBlciBvbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODc3MgoKMjAxMy0wOS0yOCAwODo0MDo0MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBDaGVjayBlcnJvcnMgb24gdGhlIHByb3BlciBmZAoJICBNb3N0IGxpa2VseSBhIGNvcHktcGFzdGUgZXJyb3IgZnJvbSB0aGUgYmxvY2sgYmVmb3JlLgoJICBJZiB3ZSdyZSBnb2luZyB0byBjaGVjayBmb3IgZXJyb3IvY2xvc2VkIG9uIHRoZSB3cml0ZSBmZC4uLiBkbyBpdAoJICBvbiB0aGUgd3JpdGUgZmQKCjIwMTMtMDktMjYgMTQ6MDk6MDIgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IHNwZWxsaW5nIG9mICJnZW5lcmljIiBpbiBHc3RCYXNlU3JjJ3MgZG9jdW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODg3MAoKMjAxMy0wOS0yNiAxMTozMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IGNoZWNrIGV2ZW50IG9yZGVyIHdoZW4gc29tZXRoaW5nIGNoYW5nZWQKCSAgQ2hlY2sgdGhlIGV2ZW50IG9yZGVyIGluIGRhdGFmbG93IG9ubHkgd2hlbiBzb21ldGhpbmcgY2hhbmdlZCBpbnN0ZWFkCgkgIG9mIGZvciBlYWNoIGJ1ZmZlci4KCjIwMTMtMDktMjQgMTg6Mjg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmIwM2JhNyB0byA4NjVhYTIwCgoyMDEzLTA5LTI0IDE1OjA1OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWN0dWFsbHkgdXNlIDEuMy4wLjEgYXMgdmVyc2lvbiB0byBtYWtlIGNvbmZpZ3VyZSBoYXBweQoKMjAxMy0wOS0yNCAxNTowMDoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjIuMCA9PT0KCjIwMTMtMDktMjQgMTQ6MDc6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjIuMAoKMjAxMy0wOS0yNCAxNDowNjoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOS0yNCAxMzoxMDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogQWRkIHRlc3QgZm9yIHRoZSBjb250ZXh0IGNhY2hpbmcgaW4gR3N0QmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2NjgKCjIwMTMtMDktMjQgMTI6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBSZXZlcnQgIlBvdGVudGlhbCBHc3RDb250ZXh0IHJlZ3Jlc3Npb24iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZTY1ODM3OTUzNGViNGE5MGI2NTRkOTBmMWQwYmRmODZmMzdjNmUzMS4KCSAgVGhpcyB0ZXN0IGNvbW1pdCBzaG91bGQndmUgbmV2ZXIgYmVlbiBwdXNoZWQuIE9vcHMuCgoyMDEzLTA5LTI0IDEyOjQ2OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHRvIGNhY2hlIGNvbnRleHQgdHlwZXMgdGhhdCB3ZSBkaWQgbm90IHN0b3JlIHlldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjY4CgoyMDEzLTA5LTI0IDEwOjI5OjA2ICswMTAwICBBbGV4IEFzaGxleSA8YnVnemlsbGFAYXNobGV5LWZhbWlseS5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgUG90ZW50aWFsIEdzdENvbnRleHQgcmVncmVzc2lvbgoJICBTaW5jZSB0aGUgcmVmYWN0b3Jpbmcgb2YgR3N0Q29udGV4dCAoY29tbWl0cwoJICBxYzlmYTI3NzFiNTA4ZTlhYWVlY2M3MDBlNjZlOTU4MTkwNDc2ZiwKCSAgYTdmNWRjOGI4YWY4MzdmMDE3ODJkMTU3MjM3OTk0OGZmNjJkYWFiNywKCSAgNjkwMzI2ZjkwNmRjODJlNDFlYTU4YjgxY2RiMmUzZTg4Yjc1NCwKCSAgZDM2N2RjMWIwZDRlY2IzN2Y0ZDI3MjY3ZTAzZDdiZjBjNmMwNmE2LCBhbmQKCSAgODJkMTU4YWVkM2YyZTg1NDVlMWU3ZDM1MDg1MDg1ZmY1OGYxOCkgSSBhbSBubyBsb25nZXIgYWJsZSB0byBnZXQKCSAgYSBzaGFyZWQgY29udGV4dCBmb3IgYW4gZWxlbWVudCB0aGF0IGlzIHVzZWQgdHdpY2UgaW4gYSBwaXBlbGluZS4KCSAgSSB1c2VkIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBlZ2xnbGVzc2luayBhcyBteSByZWZlcmVuY2UgZm9yCgkgIGltcGxlbWVudGluZyB0aGUgR3N0Q29udGV4dCBsb2dpYy4KCSAgQXMgdGhlIGNvZGUgd2FzIHRpZWQgdG8gYSBoYXJkd2FyZSBkZWNvZGVyLCBJIGhhdmUgcG9ydGVkIHRoZQoJICBHc3RDb250ZXh0IGNvZGUgdG8gZmFrZXNpbmsgdG8gc2hvdyB0aGUgcHJvYmxlbS4gVXNpbmcgdGhlIG9sZAoJICBBUEkgYSBzaW5nbGUgRXhhbXBsZU1nciBpbnN0YW5jZSBpcyBjcmVhdGVkLCBidXQgdXNpbmcgdGhlIG5ldwoJICBBUEkgZWFjaCBlbGVtZW50IGlzIGNyZWF0aW5nIGl0cyBvd24gaW5zdGFuY2UuCgoyMDEzLTA5LTI0IDEwOjQyOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBNYWtlIHN1cmUgdGhhdCB0aGUgb2JqZWN0IGxvY2sgaXMgYWx3YXlzIHRha2VuIHdoZW4gYWNjZXNzaW5nIHRoZSBwcml2YXRlIHBhZCBsaXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MzYKCjIwMTMtMDktMTcgMjM6MjM6MzQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBwcml2YXRlIHBhZCBsaXN0IGluIHNldF9mbHVzaGluZ191bmxvY2tlZAoJICBwYWRzLT5kYXRhIGlzIHRoZSBwdWJsaWMgbGlzdC4gSXQgaXMgZHluYW1pY2FsbHkgcmVidWlsdCBhdCBlYWNoIGNhbGwgdG8KCSAgY2hlY2tfY29sbGVjdGVkLCBpbiBjaGVja19wYWRzIHRvIGJlIHNwZWNpZmljLiBXaGVuIHlvdSBhZGQgYSBwYWQgYW5kCgkgIGNvbGxlY3RwYWRzIGhhdmUgYmVlbiBzdGFydGVkLCBpdCBpcyBub3QgYWRkZWQgdG8gdGhlIHB1YmxpYyBsaXN0LgoJICBUaHVzIHRoZXJlIGV4aXN0cyBhIHBvc3NpYmxlIHJhY2Ugd2hlcmUgOgoJICAxKSBZb3Ugd291bGQgYWRkIGEgcGFkIHRvIGNvbGxlY3RwYWRzIHdoaWxlIHJ1bm5pbmcuCgkgIDIpIFlvdSBzZXQgY29sbGVjdHBhZHMgdG8gZmx1c2hpbmcgYmVmb3JlIGNoZWNrX2NvbGxlY3RlZCBoYXMgYmVlbiBjYWxsZWQgYWdhaW4KCSAgLT4gdGhlIHBhZCBpcyBub3Qgc2V0IHRvIGZsdXNoaW5nCgkgIDMpIHRoZSBwYWQgc3RhcnRzIHB1c2hpbmcgZGF0YSBhcyBkb3duc3RyZWFtIG1pZ2h0IG5vdCBiZSBwcmVwYXJlZCwgaW4gdGhlIGNhc2UKCSAgb2YgYWRkZXIgaXQgdGhlbiByZXR1cm5zIEZMT1dfRkxVU0hJTkcuCgkgIDQpIGVsZW1lbnRzIGxpa2UgZGVtdXhlcnMsIHdoZW4gdGhleSBnZXQgYSBGTE9XX0ZMVVNISU5HLCBzdG9wIHRoZWlyIHRhc2tzLAoJICBuZXZlciB0byBiZSBzZWVuIGFnYWluLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjM2CgoyMDEzLTA5LTIzIDExOjQ3OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RzOiBoYW5kbGUgdW5zY2hlZHVsZWQgZW50cmllcyBjb3JyZWN0bHkKCSAgTWFrZSB0aGUgdGVzdGNsb2NrIHJldHVybiBHU1RfQ0xPQ0tfVU5TQ0hFRFVMRUQgd2hlbiBhbiB1bnNjaGVkdWxlZCBlbnRyeSBpcwoJICB1c2VkIGZvciBnc3RfY2xvY2tfd2FpdCgpIG9yIGdzdF9jbG9ja193YWl0X2FzeW5jKCkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg2MDUKCjIwMTMtMDktMjIgMTE6MDk6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBbGxvdyBzcGVjaWZ5aW5nIHRoZSBjaGVja291dCBkaXJlY3RvcnkgYnkgZW52IHZhcmlhYmxlCgkgIEZvciBzb21lIHJhcmUgY2FzZXMsIG9uZSBtaWdodCBub3QgYmUgYWJsZSB0byB1c2UgdGhlIGhhcmRjb2RlZCAkSE9NRS9nc3QKCSAgbG9jYXRpb24geWV0IHdvdWxkIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGFzLWlzICh3aGljaAoJICBoYXMgdGhlIGJlbmVmaXQgb2YgYmVpbmcgY29uc3RhbnRseSB1cGRhdGVkKS4KCSAgRm9yIHRoZXNlIGNhc2VzLCB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5IGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUKCSAgR1NUX1VOSU5TVEFMTEVEX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEV4OgoJICBleHBvcnQgR1NUX1VOSU5TVEFMTEVEX1JPT1Q9JEhPTUUvc29tZXdoZXJlL3dpdGgvY2hlY2tvdXRzCgkgIEFuZCB0aGVuIGp1c3QgY2FsbCBnc3QtdW5pbnN0YWxsZWQgZGlyZWN0bHk6CgkgICRHU1RfVU5JTlNUQUxMRURfUk9PVC9nc3RyZWFtZXIvZ3N0LXVuaW5zdGFsbGVkCgoyMDEzLTA5LTIwIDE2OjE2OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjYxMzY2MSB0byA2YjAzYmE3CgoyMDEzLTA5LTE5IDE4OjQyOjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3NGE2ODU3IHRvIGI2MTM2NjEKCjIwMTMtMDktMTkgMTc6MzQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDEyYWYxMDUgdG8gNzRhNjg1NwoKMjAxMy0wOS0xOSAxNzoxMjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogdGVzdGNsb2NrOiBmaXggZnVuY3Rpb24gZ3VhcmRzCgkgIFNob3VsZCBiZSBnX3JldHVybl8qKCkgbm90IGdfYXNzZXJ0KCksIGV2ZW4gaWYgaXQncyBmb3IgdGVzdHMgb25seS4KCjIwMTMtMDktMTkgMTY6NDM6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IHRlc3RjbG9jazogZG9uJ3QgcHV0IGNvZGUgd2l0aCBzaWRlLWVmZmVjdHMgaW4gZ19hc3NlcnQoKQoJICBGaXhlcyB1bml0IHRlc3QgZmFpbHVyZXMgd2hlbiAtREdfRElTQUJMRV9BU1NFUlQgaXMgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjU1MQoKMjAxMy0wOS0xOSAxMjowNzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBnc3Rjb250ZXh0OiBGaXggcmV0dXJuIHZhbHVlcyBzb21lIG1vcmUKCSAgUmV0dXJuIHZhbHVlIGlzIGEgYm9vbGVhbiBub3QgYSBwb2ludGVyCgoyMDEzLTA5LTE5IDExOjQ5OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBGaXggcmV0dXJuIHZhbHVlcyBmb3IgZ3N0X2NvbnRleHRfaGFzX2NvbnRleHRfdHlwZSgpIGluIGFzc2VydGlvbnMKCjIwMTMtMDktMTkgMTE6MzQ6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjkwID09PQoKMjAxMy0wOS0xOSAxMDo0ODoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjkwCgoyMDEzLTA5LTE5IDEwOjA1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA5LTE5IDA5OjQ5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUoKQoKMjAxMy0wOS0xOSAwOTo0MjoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDktMTggMjM6MDc6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEltcGxlbWVudCBnZXR0aW5nIHRoZSBuYW1lIG9mIHRoZSBjb250ZXh0IG1lc3NhZ2UgdHlwZXMKCjIwMTMtMDktMTcgMjE6MzY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBGaXggdW5pdCB0ZXN0IGZvciBHc3RDb250ZXh0IGNoYW5nZXMKCjIwMTMtMDktMTcgMTQ6MzQ6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXBkYXRlIGZvciBHc3RDb250ZXh0IGNoYW5nZXMKCjIwMTMtMDktMTcgMTQ6Mjk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBVcGRhdGUgZG9jcwoKMjAxMy0wOS0xNyAxNDoyNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEltcGxlbWVudCBjb250ZXh0IGNhY2hpbmcgYW5kIHByb3BhZ2F0aW9uIGFnYWluCgoyMDEzLTA5LTE3IDEzOjUwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWVzc2FnZS9xdWVyeTogU2ltcGxpZnkgQ09OVEVYVCBtZXNzYWdlcy9xdWVyaWVzIHRvIG9ubHkgY29udGFpbiBhIHNpbmdsZSB0eXBlCgoyMDEzLTA5LTE3IDEzOjMzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJICBjb250ZXh0OiBVcGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMy0wOS0xNyAxMzoyODo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgY29udGV4dDogQ2hhbmdlIEdzdENvbnRleHQgdG8gY29udGFpbiBvbmx5IGEgc2luZ2xlIGNvbnRleHQKCSAgSXQgd2FzIHVuaW50dWl0aXZlIHRoYXQgR3N0Q29udGV4dCB3YXMgYWN0dWFsbHkgYSBsaXN0IG9mIGRpZmZlcmVudAoJICBjb250ZXh0cy4gR3N0Q29udGV4dCBub3cgaXMgb25seSBhIHR5cGUgc3RyaW5nIGFuZCBhIHN0cnVjdHVyZSB0bwoJICBjb250YWluIHRoZSBhY3R1YWwgY29udGV4dC4KCjIwMTMtMDktMTcgMTM6MTI6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogUmVtb3ZlIEdzdENvbnRleHQgY2FjaGluZwoKMjAxMy0wOS0xNyAxMzoxMDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogQWRkIHBlcnNpc3RlbnQgcXVhbGlmaWVyIGZvciBhIGNvbnRleHQKCSAgTm9uLXBlcnNpc3RlbnQgY29udGV4dHMgYXJlIHJlbW92ZWQgd2hlbiBlbGVtZW50cyBnbyBiYWNrCgkgIHRvIE5VTEwgc3RhdGUsIHBlcnNpc3RlbnQgY29udGV4dHMgYXJlIG5vdC4gQXBwbGljYXRpb25zCgkgIG1vc3QgbGlrZWx5IHdhbnQgdG8gc2V0IHBlcnNpc3RlbnQgY29udGV4dHMuCgoyMDEzLTA5LTE3IDEzOjEwOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IE1ha2UgQ09OVEVYVCBxdWVyeSB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbQoKMjAxMy0wOS0xNyAxMzowOTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBSZW1vdmUgQ09OVEVYVCBkb3duc3RyZWFtIGV2ZW50CgkgIFRoaXMgaXMgZ29pbmcgdG8gYmUgaW1wbGVtZW50ZWQgd2l0aCBhbiB1cHN0cmVhbSBxdWVyeSBpbnN0ZWFkCgkgIGZvciBjb25zaXN0ZW5jeSBhbmQgc2ltcGxpY2l0eS4KCjIwMTMtMDktMTMgMTQ6NDE6NDUgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IFN0b3AgYWxsIHVudXNlZCB0aHJlYWRzIGluIEdUaHJlYWRQb29sIGluIGdzdF9kZWluaXQoKQoJICBTaW5jZSB0aGUgZGVmYXVsdCBudW1iZXIgb2YgbWF4IHVudXNlZCB0aHJlYWRzIGluIEdUaHJlYWRQb29sIGhhcyBiZWVuCgkgIGNoYW5nZWQgZnJvbSAwIHRvIDIgaXQgbmVlZHMgdG8gYmUgc2V0IHRvIDAgdG8gc3RvcCBhbGwgdGhyZWFkcyBvcgoJICB2YWxncmluZCB3aWxsIHJlcG9ydCB0aGVtIGFzIG1lbW9yeSBsZWFrcy4KCjIwMTMtMDktMTAgMTY6Mzk6MzAgKzAxMDAgIFJpY28gVHpzY2hpY2hob2x6IDxyaWNvdHpAdC1vbmxpbmUuZGU+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogZml4IHBzcGVjIHJlbGF4YXRpb24gZm9yIGNvbnRyb2wgc291cmNlIHByb3BlcnRpZXMKCSAgVGhlIGNoYW5nZSBzaG91bGQgaGF2ZSBiZWVuIGZyb20gUEFSQU1fQ09OU1RSVUNUX09OTFkgdG8KCSAgUEFSQU1fQ09OU1RSVUNULCBvdGhlcndpc2UgYmluZGluZ3MgYXJlIGFmZmVjdGVkLCBzaW5jZQoJICB0aGV5IGxvb2sgZm9yIHRoZSBDT05TVFJVQ1QgZmxhZy4KCSAgU2VlIGVjNTUzNjNkCgoyMDEzLTA5LTEwIDEwOjE1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE9ubHkgdXBkYXRlIGN1cnJlbnQgbGV2ZWwgaWYgd2UgYWxyZWFkeSBkb3dubG9hZGVkIGEgcmFuZ2UKCSAgT3RoZXJ3aXNlIHF1ZXVlLT5sZXZlbCBpcyBOVUxMIGFuZCBkZXJlZmVyZW5jaW5nIHRoYXQgaXMgbm90IGEgZ29vZAoJICBpZGVhIGluIGdlbmVyYWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2NDgKCjIwMTMtMDktMDkgMTU6NDA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IERlcHJlY2F0ZSBHU1RfTUVUQV9UQUdfTUVNT1JZCgkgIFRoZSBHUXVhcmtzIGFyZSBub3QgZXhwb3J0ZWQgYnkgYW55IHB1YmxpYyBBUEkKCjIwMTMtMDgtMjIgMDA6MDI6MjggKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBBZGQgYSAjZGVmaW5lIGZvciBtZW1vcnkgbWV0YWRhdGEKCjIwMTMtMDgtMjIgMDA6MDE6NDQgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXBsZW1lbnQgYSBkZWZhdWx0IHRyYW5zZm9ybV9tZXRhLiBJZiBhIG1ldGFkYXRhIGhhcyBubyBkZXBlbmRlbmN5IGFzIHNob3duIGJ5IHRoZSB0YWdzLCBjb3B5IGl0LgoKMjAxMy0wOC0yMiAyMTozMjozNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogQVBJOiBBZGQgZ3N0X21ldGFfYXBpX3R5cGVfZ2V0X3RhZ3MoKSB0byBnZXQgYWxsIG1ldGEgdGFncy4KCjIwMTMtMDktMDkgMTQ6MjE6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgdGVzdHMvY2Fwc2ZpbHRlcjogRml4IG1lbW9yeSBsZWFrIGFuZCBjb21wYXJlIGNhcHMgZGlyZWN0bHkgaW5zdGVhZCBvZiBzdHJjbXAoKQoKMjAxMy0wOS0wNiAyMzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzL2NhcHNmaWx0ZXI6IFRlc3QgY2Fwcy1yZWxhdGVkIHF1ZXJpZXMgYW5kIHByb3BlcnR5CgoyMDEzLTA5LTA2IDE1OjA5OjQ2IC0wMzAwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBVcGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0ZSBiZWZvcmUgc3RhbGxpbmcgZm9yIG1vcmUgZGF0YQoJICBJbiBzb21lIGNhc2VzIHRoZSB3YWl0IGZvciBtb3JlIGRhdGEgd2FzIGhhcHBlbmluZyB3aXRob3V0IHVwZGF0aW5nCgkgIHRoZSBidWZmZXJpbmcgc3RhdGUsIG1lYW5pbmcgdGhlIEFQSSB1c2VyIHdvdWxkIG5vdCBiZSBhYmxlIHRvIG5vdGljZQoJICBpdCBzaG91bGQgcGF1c2UgdGhlIHBpcGVsaW5lIGFuZCB1cGRhdGUgVUkgdG8gaW5kaWNhdGUgdGhhdCBpcyB0aGUKCSAgY2FzZSwgdGhlIHZpZGVvIHdvdWxkIGxpa2VseSBzdHV0dGVyIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2NDgKCjIwMTMtMDktMDQgMTU6Mjg6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBwcmVzZXJ2ZSBzZXFudW0gb24gc2VnbWVudHMgYWZ0ZXIgc2Vla3MKCSAgVGhlIHNlcW51bSBvZiB0aGUgc2VnbWVudCBhZnRlciBhIHNlZWsgc2hvdWxkIGJlIHRoZSBzYW1lIG9mCgkgIHRoZSBzZWVrIGV2ZW50LiBEb3duc3RyZWFtIGVsZW1lbnRzIG1pZ2h0IHJlbHkgb24gc2VxbnVtcyB0bwoJICBpZGVudGlmeSBldmVudHMgcmVsYXRlZCB0byBhIHNlZWsuCgkgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCB3aGVuIGEgZGVtdXhlciBtYXBzIGEgVElNRSBzZWVrCgkgIGludG8gYSBCWVRFUyBzZWVrIGZvciB1cHN0cmVhbSBhbmQgaXQgbmVlZHMgdG8gaWRlbnRpZnkgdGhlCgkgIGNvcnJlc3BvbmRpbmcgc2VnbWVudCBldmVudCBhbmQgbWFwIGl0IGJhY2sgaW50byBUSU1FIHRvIHB1c2gKCSAgZG93bnN0cmVhbSwgcG9zc2libHkgdXNpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBvcmlnaW5hbCBzZWVrCgkgIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NTMwCgoyMDEzLTA5LTA1IDE0OjE0OjQyICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJtZXJhbGlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgdW5yZWYgTlVMTCBHc3RDb2xsZWN0RGF0YQoJICBJZiBhIHBhZCBpcyByZW1vdmVkIHdoaWxlIGEgY29sbGVjdHBhZHMgZWxlbWVudCAoc2F5IGFkZGVyKSBpcyBpbiBhIGNoYWluCgkgIGZ1bmN0aW9uIHdhaXRpbmcgdG8gYmUgY29sbGVjdGVkLCB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgYW4gdW5yZWYgaGFwcGVucwoJICBvbiBhIE5VTEwgcG9pbnRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzUzNgoKMjAxMy0wOS0wNCAxNzoxMToyMCArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW5nLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBSZW1vdmUgUHlYTUwgZnJvbSBzcGVjIGZpbGUsIGl0IGlzIG5vdCBsb25nZXIgbmVlZGVkCgoyMDEzLTA5LTA0IDE0OjQwOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWRkIG1pc3NpbmcgYnJlYWsgYWZ0ZXIgaGFuZGxpbmcgdGhlIEdBUCBldmVudAoJICBUaGFua3MgdG8gRWR3YXJkIEhlcnZleSBmb3Igbm90aWNpbmcuCgoyMDEzLTA5LTA0IDA5OjE4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtcGxvdC10aW1lbGluZS5weToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIHRvb2xzOiBtb3ZlIGdzdC1wbG90LXRpbWVsaW5lLnB5IGludG8gc2NyaXB0cyBkaXJlY3RvcnkKCSAgU28gaXQncyBub3QgaW4gUEFUSCBpbiBhbiB1bmluc3RhbGxlZCBzZXR1cCAodGh3YXJ0aW5nCgkgIGdzdC1wbGF5IGF1dG9jb21wbGV0aW9uKS4KCjIwMTMtMDktMDMgMjM6NTk6MDUgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgcmVkdWNlIHNpbmdsZSBxdWV1ZSB2aXNpYmxlIHNpemUgYmVsb3cgaXRzIGN1cnJlbnQgbGV2ZWwKCSAgSWYgdGhlIG11bHRpcXVldWUgaGFzIGF1dG9tYXRpY2FsbHkgZ3Jvd24gY2hhbmNlcyBhcmUgZ29vZCB0aGF0CgkgIHdlIHdpbGwgY2F1c2UgdGhlIHBpcGVsaW5lIHRvIHN0YXJ2ZSBpZiB0aGUgbWF4aW11bSBsZXZlbCBpcyByZWR1Y2VkCgkgIGJlbG93IHRoYXQgYXV0b21hdGljYWxseSBncm93biBzaXplLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MTU2CgoyMDEzLTA5LTAyIDEzOjUzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBEb24ndCBhZGp1c3Qgc2VnbWVudC0+c3RhcnQgdG8gdGhlIGN1cnJlbnQgdGltZSB3aGVuIHN3aXRjaGluZyBwYWRzCgkgIFRoaXMgZG9lcyBub3QgbWFrZSBhbnkgc2Vuc2UgYXQgYWxsIGFuZCBicmVha3MgdGltZXN0YW1wLT5ydW5uaW5nX3RpbWUKCSAgY2FsY3VsYXRpb25zIGluIHVucHJlZGljdGFibGUgd2F5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzEzMAoKMjAxMy0wOC0yOSAyMzoxODozMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBlcGl0ZWNoLmV1PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERlbGV0ZSBsaW5rIGRpcmVjdGx5IGluIHBlbmRpbmdfZXZlbnRzLgoJICBXaGVuIHJlbW92aW5nIGEgc2VnbWVudCBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzA4OAoKMjAxMy0wOC0yOSAxMTowNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRlbW90ZSBsb2cgbWVzc2FnZSwgZG9uJ3Qgc3BhbSBJTkZPIGxldmVsIHdoZW4gaGFuZGxpbmcgYnVmZmVyIGxpc3RzCgoyMDEzLTA4LTI4IDEzOjI2OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS40ID09PQoKMjAxMy0wOC0yOCAxMjozNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjQKCjIwMTMtMDgtMjggMTI6MzY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDgtMjggMTI6MzA6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA4LTI3IDA5OjMxOjIyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHBsZWFzZSBnY2MgKGF2b2lkIGEgd2Fybl91bnVzZWRfcmVzdWx0IHdhcm5pbmcpCgoyMDEzLTA4LTI3IDA3OjUxOjM1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGZsdXNoIChkaXNjYXJkIGRhdGEpIG9uIEZMVVNIX1NUT1AKCSAgUmVzZXQgdGhlIHdyaXRlIHBvc2l0aW9uIHRvIDAgYW5kIHRydW5jYXRlIHRoZSBmaWxlIG9uIEZMVVNIX1NUT1AuCgoyMDEzLTA4LTI3IDA3OjA1OjExICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkgIHRlc3RzOiBmaWxlc2luazogc21hbGwgcmVmYWN0b3JpbmcKCjIwMTMtMDgtMjYgMTM6MTk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBnc3QtbGF1bmNoOiBkb24ndCBwcmludCBwcm9wZXJ0aWVzIGJlaW5nIHJlc2V0IHdoZW4gc2h1dHRpbmcgZG93bgoJICBJdCdzIGp1c3Qgbm9pc2UuCgoyMDEzLTA4LTIyIDE5OjAxOjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCBwdXNoIG91dCBpZGVudGljYWwgY2FwcwoJICBUaGlzIGF2b2lkcyB0cmlnZ2VyaW5nIHBsZW50eSBvZiBleHRyYSBjb2RlL21ldGhvZHMvb3ZlcmhlYWQgZG93bnN0cmVhbSB3aGVuCgkgIHdlIGNhbiBqdXN0IHF1aWNrbHkgY2hlY2sgd2hlbmV2ZXIgd2Ugd2FudCB0byBzZXQgY2FwcyB3aGV0aGVyIHRoZXkgYXJlCgkgIGlkZW50aWNhbCBvciBub3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjYwMAoKMjAxMy0wOC0yMSAxMjoyMTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgZG9jczogZmxlc2ggb3V0IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcigpIGEgbGl0dGxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY0NzgKCjIwMTMtMDgtMjAgMjM6NTk6MjkgLTA3MDAgIEtlcnJpY2sgU3RhbGV5IDxrZXJyaWNrQGtlcnJpY2tzdGFsZXkuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IG1ha2UgZ3JhbW1hci55IHdvcmsgd2l0aCBCaXNvbiAzCgkgIFlZTEVYX1BBUkFNIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgaW4gQmlzb24gMy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ2MgoKMjAxMy0wOC0yMCAxNzoxNTo0MSArMDkwMCAgV29uY2h1bCBMZWUgPGNodWwwODEyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgc2FtcGxlOiBBZGQgZ3N0X3NhbXBsZV9jb3B5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ1NAoKMjAxMy0wOC0xOSAxNDo1NToyMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBnc3RfYnVmZmVyX21lbWNtcCgpIHdoZXJlIHRoZSBidWZmZXIgaXMgc21hbGxlciB0aGFuIHNpemUKCSAgQWxzbyBhZGQgdW5pdCB0ZXN0cyBmb3IgZ3N0X2J1ZmZlcl9tZW1jbXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjE2MgoKMjAxMy0wOC0yMCAxNzowNjo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0X2VsZW1lbnRfcXVlcnlfe2R1cmF0aW9uLHBvc2l0aW9ufSBkb2NzIGEgYml0CgoyMDEzLTA4LTE0IDE2OjE4OjU5ICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogaGFuZGxlIHB1Ymxpc2hlciBhbmQgaW50ZXJwcmV0ZWQtYnkgdGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTk5CgoyMDEzLTA4LTIwIDEzOjU4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRG9uJ3QgY2FsbCBtZW1jcHkoKSB3aXRoIE5VTEwgc3JjIGFuZCAwIGxlbmd0aAoKMjAxMy0wOC0yMCAxMDoxNjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogUHJvcGVybHkgdW5sb2NrIHRoZSBzaW5rcGFkIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTIwIDEwOjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFByb3Blcmx5IHVubG9jayB0aGUgc2lua3BhZCBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjM2MAoKMjAxMy0wOC0xOSAxNjozODo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IENsZWFuIHVwIGFmdGVyIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBzdG9wcGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMTkgMTY6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0xOSAxNjozODoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wNy0wMSAxNDowNDo0NiAtMDYwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IEFkZCBHU1RfRkxBR19OT19TSU5HTEVfRUxFTUVOVF9CSU5TCgkgIFRoaXMgbWFrZXMgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgcmV0dXJuIGFuIGVsZW1lbnQgaW5zdGVhZCBvZgoJICBhIGJpbiBpZiB0aGVyZSdzIG9ubHkgb25lIGVsZW1lbnQuIEFsc28gY2hhbmdlZCBnc3RwYXJzZS5jIHRvIHVzZSB0aGlzLAoJICBzbyBnc3QtbGF1bmNoIHdvbid0IGNyZWF0ZSBzdXBlcmZsdW91cyBiaW5zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDA1CgoyMDEzLTA4LTE2IDIwOjM2OjUzICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcmV0dXJuIE5VTEwgd2hlbiBwYXJzaW5nIHVyaSByZWRpcmVjdGlvbiB0aGF0IHdhcyBub3Qgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYxNjAKCjIwMTMtMDgtMTggMTE6NDg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBVcGRhdGUgc2luY2UgbWFya2VyIGZvciBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkgdG8gMS4wLjEwCgoyMDEzLTA4LTE2IDE2OjQ1OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjcmFzaCBvbiBFT1MgaWYgcXVldWUgaXMgZW1wdHkKCSAgRml4ZXMgc3B1cmlvdXMgY3Jhc2ggaW4gdGVzdF9zaW1wbGVfc2h1dGRvd25fd2hpbGVfcnVubmluZwoJICB1bml0IHRlc3QuCgoyMDEzLTA4LTE2IDE2OjI4OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBjaGFuZ2UgZ2xvYmFsIGJ1ZmZlcmluZyBzdGF0ZSBmcm9tIHdpdGhpbiBxdWVyeSBoYW5kbGVyCgkgIFdoZW4gYSBidWZmZXJpbmcgcXVlcnkgaXMgaGFuZGxlZCBpdCB1c2VzIHRoZSBnZXRfYnVmZmVyaW5nX3BlcmNlbnQoKQoJICBmdW5jdGlvbiB0byBnZXQgc29tZSBzdGF0aXRpY3MuIFVuZm9ydHVuYXRlbHkgdGhpcyBmdW5jdGlvbiBhbHNvCgkgIGNhbGN1bGF0ZXMgd2hldGhlciB0aGUgcXVldWUgc2hvdWxkIGJlIGJ1ZmZlcmluZyBhbmQgYWRhcHRzIHRoZQoJICBnbG9iYWwgcXVldWUyIHN0YXRlIGluIGNhc2Ugb2Ygc3RhdGUgdHJhbnNpdGlvbnMgZnJvbS90byBidWZmZXJpbmcKCSAgKGluY2x1ZGluZyB3aGV0aGVyIGEgYnVmZmVyaW5nIG1lc3NhZ2Ugd2FzIHBvc3RlZCBvbiB0aGUgYnVzISkuCgkgIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSBpcyBhIHJhY2Ugd2hpY2ggY2FuIGNhdXNlIGJ1ZmZlcmluZyBtZXNzYWdlcwoJICB0byBuZXZlciBwb3N0ZWQgaWYgdGhlIGdsb2JhbCBzdGF0ZSBjaGFuZ2VzIGhhcHBlbiBhcyBhIHJlc3VsdCBvZiBhYQoJICBxdWVyeSBpbnN0ZWFkIG9mIHJlc3VsdGluZyBmcm9tIGJ5dGVzIGZsb3dpbmcgaW4vb3V0LgoJICBTcG90dGVkIGJ5IFNqb2VyZCBTaW1vbnMuCgkgIENoYW5nZSB0byBvbmx5IHF1ZXJ5IHN0YXRlIGluIGdldF9idWZmZXJpbmdfcGVyY2VudCgpIGFuZCB1cGRhdGUKCSAgc3RhdGUgb25seSBpbiB1cGRhdGVfYnVmZmVyaW5nKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUzMzIKCjIwMTMtMDgtMTYgMTI6NTQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBidWZmZXJpbmcgd2hlbiBjaGFuZ2luZyBjYXBhY2l0eQoJICBXaGVuIHRoZSBjYXBhY2l0eSBvZiB0aGUgcXVldWUgY2hhbmdlcywgbWFrZSBzdXJlIHdlIHBvc3QgYW4gdXBkYXRlZCBidWZmZXJpbmcKCSAgbWVzc2FnZSBiZWNhdXNlIHdlIG1pZ2h0IHN1ZGRlbmx5IGhhdmUgY29tcGxldGVkIHRoZSBidWZmZXJpbmcgc3RhZ2UuCgoyMDEzLTA4LTE1IDE1OjM1OjA4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgRnJlZSB0aHJlYWQgcG9vbHMgaW4gZ3N0X2RlaW5pdCgpCgoyMDEzLTA4LTE2IDExOjAzOjMwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBDYWxsIGdzdF9kZWluaXQoKSBhdCBleGl0IG9mIGFsbCBwcm9jZXNzZXMKCjIwMTMtMDgtMTQgMjE6NDE6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHNpbXBsaWZ5IGludGVybmFsIGdzdF9jbG9ja19yZXR1cm5fZ2V0X25hbWUoKSBoZWxwZXIKCjIwMTMtMDgtMTQgMTc6NDQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaW1wcm92ZSBmbHVzaC1zdGFydCBoYW5kbGluZwoJICBVc2UgY3VzdG9tIGNvZGUgdG8gaW1wbGVtZW50IGZsdXNoLXN0b3AsIHdlIGNhbid0IHJldXNlIHRoZSBzZXRfZmx1c2hpbmcgY29kZQoJICBiZWNhdXNlIHdlIGNhbid0IHRvdWNoIHRoZSBsaXZlX3BsYXlpbmcgZmxhZyBhbmQgd2UgbmVlZCB0byBzaWduYWwgdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuCgoyMDEzLTA4LTE0IDE3OjE0OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHN0b3AgZmx1c2hpbmcgaW4gZmx1c2gtc3RvcAoKMjAxMy0wOC0xNCAxNjo1ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgZmx1c2ggYmV0dGVyCgkgIFVubG9jayB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGZsdXNoaW5nIHNvIHRoYXQgd2UgY2FuCgkgIGluc2VydCB0aGUgZmx1c2gtc3RvcCBjb3JyZWN0bHkuCgoyMDEzLTA4LTE0IDE1OjQ2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSAuZGlyc3RhbXAKCjIwMTMtMDgtMTQgMDc6MjE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBEb24ndCB1c2Ugbm9kaXN0IGhlYWRlcnMgb24gZ2lyIHNjYW5uZXIKCSAgSnVzdCBjcmVhdGVzIG5vaXNlIGFuZCBib2d1cyBzeW1ib2xzCgoyMDEzLTA4LTA3IDE4OjIwOjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0OiBtaW5vciBkb2NzdHJpbmcgZml4dXBzIHRvIG1ha2UgZy1pIGhhcHB5CgkgIG5vdGU6IHRoZSAjaWZuZGVmIG1vdmUgaXMgYWN0dWFsbHkgYSBtb3ZlIG9mIHRoZSAiU0VDVElPTiIgZG9jc3RyaW5nCgoyMDEzLTA4LTEzIDE3OjE0OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSBmaWxlcyBmcm9tIGF1dG9tYWtlIHRlc3QtZHJpdmVyCgoyMDEzLTA4LTA3IDE4OjI0OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWRkIGEgcHJvcGVydHkgdG8gZGlzYWJsZSBwYXNzdGhyb3VnaAoJICBJbiBzb21lIHNwZWNpZmljIGNhc2VzIChsaWtlIHRyYW5zbXV4aW5nKSB3ZSB3YW50IHRvIGZvcmNlIHRoZSBlbGVtZW50CgkgIHRvIGFjdHVhbGx5IHBhcnNlIGFsbCBpbmNvbWluZyBkYXRhIGV2ZW4gaWYgdGhlIGVsZW1lbnQgZGVlbXMgaXQgaXMgbm90CgkgIG5lY2Vzc2FyeS4KCSAgVGhpcyBwcm9wZXJ0eSBzaW1wbHkgaWdub3JlcyByZXF1ZXN0cyBmcm9tIHRoZSBlbGVtZW50IHRvIGVuYWJsZSBwYXNzdGhyb3VnaAoJICBtb2RlIHdoaWNoIHJlc3VsdHMgaW4gcHJvY2Vzc2luZyBhbHdheXMgYmVpbmcgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTYyMQoKMjAxMy0wOC0wNyAyMToyNjowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIEFkZHMgYSB2YXJpYW50IG9mIHRoZSBfcHVzaCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgY2hlY2sgdGhlIHF1ZXVlIGxpbWl0cwoJICBiZWZvcmUgYWRkaW5nIHRoZSBuZXcgaXRlbS4gSXQgaXMgdXNlZnVsIHdoZW4gcHVzaGluZyBhbiBlbGVtZW50IHRvIHRoZQoJICBxdWV1ZSBzaG91bGRuJ3QgbG9jayB0aGUgdGhyZWFkLgoJICBPbmUgcGFydGljdWxhciBzY2VuYXJpbyBpcyB3aGVuIHRoZSBxdWV1ZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBidWZmZXJzCgkgIGFuZCBldmVudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgcHVzaGVkIGZyb20gYW5vdGhlciB0aHJlYWQuIFRoZQoJICBkYXRhcXVldWUgc2hvdWxkIGhhdmUgYSBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIGJ1ZmZlcnMgdG8gYmUgc3RvcmVkIHRvCgkgIGF2b2lkIGxhcmdlIG1lbW9yeSBjb25zdW1wdGlvbiwgYnV0IGV2ZW50cyBjYW4gYmUgY29uc2lkZXJlZCB0byBoYXZlCgkgIG5lZ2xpZ2libGUgaW1wYWN0IG9uIG1lbW9yeSBjb21wYXJlZCB0byBidWZmZXJzLiBTbyBpdCBpcyB1c2VmdWwgdG8gYmUKCSAgdXNlZCB0byBwdXNoIGl0ZW1zIGludG8gdGhlIHF1ZXVlIHRoYXQgY29udGFpbiBldmVudHMsIGV2ZW4gdGhvdWdoIHRoZQoJICBxdWV1ZSBpcyBhbHJlYWR5IGZ1bGwsIGl0IHNob3VsZG4ndCBtYXR0ZXIgaW5zZXJ0aW5nIGFuIGl0ZW0gdGhhdCBoYXMKCSAgbm8gc2lnbmlmaWNhdGl2ZSBzaXplLgoJICBUaGlzIHNjZW5hcmlvIGhhcHBlbnMgb24gYWRhcHRpdmUgZWxlbWVudHMgKGRhc2hkZW11eCAvIG1zc2RlbXV4KSBhcwoJICB0aGVyZSBpcyBhIHNpbmdsZSBkb3dubG9hZCB0aHJlYWQgZmV0Y2hpbmcgYnVmZmVycyBhbmQgcHV0dGluZyBpbnRvIHRoZQoJICBkYXRhcXVldWVzIGZvciB0aGUgc3RyZWFtcy4gVGhpcyBzYW1lIGRvd25sb2FkIHRocmVhZCBjYW4gYWxzIGdlbmVyYXRlCgkgIGV2ZW50cyBpbiBzb21lIHNpdHVhdGlvbnMgYXMgY2FwcyBjaGFuZ2VzLCBlb3Mgb3IgYSBpbnRlcm5hbCBjb250cm9sCgkgIGV2ZW50cy4gVGhlcmUgY2FuIGJlIGEgZGVhZGxvY2sgYXQgcHJlcm9sbCBpZiB0aGUgZmlyc3QgYnVmZmVyIGZldGNoZWQKCSAgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpbGwgdGhlIGRhdGFxdWV1ZSBhbmQgdGhlIGRvd25sb2FkIHRocmVhZCBhbmQgdGhlCgkgIG5leHQgaXRlcmF0aW9uIG9mIHRoZSBkb3dubG9hZCB0aHJlYWQgZGVjaWRlcyB0byBwdXNoIGFuIGV2ZW50IHRvIHRoaXMKCSAgc2FtZSBkYXRhcXVldWUgYmVmb3JlIGZldGNoaW5nIGJ1ZmZlcnMgdG8gb3RoZXIgc3RyZWFtcywgaWYgdGhpcyBwdXNoCgkgIGxvY2tzLCB0aGUgcGlwZWxpbmUgd2lsbCBiZSBzdHVjayBpbiBwcmVyb2xsIGFzIG5vIG1vcmUgYnVmZmVycyB3aWxsIGJlCgkgIGRvd25sb2FkZWQuCgkgIFRoZXJlIGlzIGEgc29tZXdoYXQgY29tbW9uIHByYWN0aWNlIGluIGRhc2ggc3RyZWFtcyB0byBoYXZlIGEgc2luZ2xlCgkgIHZlcnkgbGFyZ2UgYnVmZmVyIGZvciBhdWRpbyBhbmQgb25lIGZvciB2aWRlbywgc28gdGhpcyB3aWxsIGFsd2F5cwoJICBoYXBwZW4gYXMgdGhlIGRvd25sb2FkIHRocmVhZCB3aWxsIGhhdmUgdG8gcHVzaCBhbiBFT1MgcmlnaHQgYWZ0ZXIKCSAgZmV0Y2hpbmcgdGhlIGZpcnN0IGJ1ZmZlciBmb3IgYW55IHN0cmVhbS4KCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9wdXNoX2ZvcmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2OTQKCjIwMTMtMDgtMTMgMTM6MDY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgc3lzbWVtOiBPbmx5IGNvcHkgdGhlIHJlcXVlc3RlZCBwYXJ0IG9mIG1lbW9yeSBpbnN0ZWFkIG9mIHRoZSBjb21wbGV0ZSBzb3VyY2UgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU2NzgKCjIwMTMtMDgtMTMgMTI6MTE6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSSBhbmQgYWRkIHRvIGV4cG9ydHMgZmlsZQoKMjAxMy0wNy0yMyAxNjoyNToyNyArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGFubm90YXRpb24gZm9yIGdzdF9xdWVyeV9wYXJzZV91cmkKCjIwMTMtMDQtMTkgMTI6MTQ6NTQgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGFkZCBuZXcgcmVkaXJlY3Rpb24gdXJpIHRoZSBVUkkgcXVlcnkKCjIwMTMtMDgtMTIgMDk6MjU6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbWlzc2luZyAndHJhbnNmZXIgbm9uZScgZ2kgYW5ub3RhdGlvbnMKCSAgVGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBpcyBjb250cm92ZXJzZSwgd2hpbGUgaXQgc3RhdGVzIHRoYXQgdGhlCgkgIHJldHVybmVkIHZhbHVlIGlzIHZhbGlkIG9ubHkgd2hpbGUgdGhlIHF1ZXJ5IGlzIGlzIHZhbGlkLCB3aGljaCBwcmVzdW1lcwoJICBhICd0cmFuc2ZlciBub25lJyBwb2xpY3kuIEJ1dCB0aGUgdG9vbHRpcCBmb3IgdGhlICdvdXQnIGFubm90YXRpb24KCSAgc3RhdGVzIHRoZSBkZWZhdWx0IGlzICd0cmFuc2Zlci1mdWxsJy4KCSAgQWRkIHRoZSBtaXNzaW5nICd0cmFuc2ZlciBub25lJyBhbm5vdGF0aW9ucyB0byBmaXggdGhpcy4KCjIwMTMtMDgtMDggMTI6MDg6MzEgKzAyMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBBY2NlbGVyYXRlIE1QRUcvSDI2NCBzdGFydCBjb2RlIHNjYW5uaW5nCgkgIEFjY2VsZXJhdGUgTVBFRy9IMjY0IHN0YXJ0IGNvZGUgc2Nhbm5pbmcgdXNpbmcgQm95ZXItTW9vciBiYWQgY2hhcmFjdGVyCgkgIGhldXJpc3RpYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjM1NwoKMjAxMy0wOC0xMCAxMTozMToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogZy1pOiBhbGxvdyBjbG9jayB0byBiZSBOVUxMIGluIGdzdF9waXBlbGluZV91c2VfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NzUxCgoyMDEzLTA4LTA3IDE0OjE3OjI4IC0wMzAwICBBZHJpYW4gUGFyZGluaSA8cHVibGljb0B0YW5nb3BhcmRvLmNvbS5hcj4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZml4ZXMgaW50IG92ZXJmbG93IHdpdGggcHJvcGVydGllcyB0aGF0IHNwYW4gKy1JTlRfTUFYCgkgIFdoZW4gdGhlIHJhbmdlIGZvciBhIHByb3BlcnR5IGlzIGRlZmluZWQgYXMgLUlOVF9NQVgtMSAuLiBJTlRfTUFYLCBsaWtlCgkgIHRoZSB4cG9zIGluIGEgdmlkZW9taXhlciB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaW4gdGhlIG1hY3JvCgkgIGRlZmluaXRpb25zIG9mIGNvbnZlcnRfZ192YWx1ZV90b18jI3R5cGUgKGFuZCB0aGUgZXF1aXZhbGVudCBpbgoJICBjb252ZXJ0X3ZhbHVlX3RvXyMjdHlwZSkKCSAgdiA9IHBzcGVjLT5taW5pbXVtICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgocHNwZWMtPm1heGltdW0gLSBwc3BlYy0+bWluaW11bSkgKiBzKTsKCSAgYXJlIGNvbnZlcnRlZCB0bzoKCSAgdiA9IC0yMTQ3NDgzNjQ4ICsgKGcjI3R5cGUpIFJPVU5ESU5HX09QICgoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSAqIHMpOwoJICAoMjE0NzQ4MzY0NyAtIC0yMTQ3NDgzNjQ4KSBvdmVyZmxvd3MgdG8gLTEgYW5kIHRoZSBuZXQgcmVzdWx0IGlzOgoJICB2ID0gLTIxNDc0ODM2NDggKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKC0xICogcyk7CgkgIHNvIHYgb25seSB0YWtlcyB0aGUgdmFsdWVzIC0yMTQ3NDgzNjQ4IGZvciBzID09IDAgYW5kIDIxNDc0ODM2NDcKCSAgZm9yIHMgPT0gMS4KCSAgUmV3cml0aW5nIHRoZSBleHByZXNzaW9uIGFzIG1pbmltdW0qKDEtcykgKyBtYXhpbXVtKnMgZ2l2ZXMgdGhlIGNvcnJlY3QKCSAgcmVzdWx0IGluIHRoaXMgY2FzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MDU2MzAKCjIwMTMtMDgtMDIgMTM6MzE6NTkgKzAyMDAgIEx1Ym9zeiBTYXJuZWNraSA8bHVib3N6QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGFkZCBzdWJkaXItb2JqZWN0cyB0byBBTV9JTklUX0FVVE9NQUtFCgkgIEZpeGVzIHdhcm5pbmdzIHdpdGggYXV0b21ha2UgMS4xNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MzUwCgoyMDEzLTA4LTAyIDE2OjIxOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIGRlc2lnbjogZml4IHR5cG8KCjIwMTMtMDctMjkgMTU6NDg6MzIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYmFja3dhcmRzIHNlZWtzIGludG8gdW5kb3dsb2FkZWQgcmFuZ2VzCgkgIFdoZW4gaW4gZG93bmxvYWQgYnVmZmVyaW5nIG1vZGUgcXVldWUyIGRpZG4ndCBjaGVjayBpZiBhIHJhbmdlIG9mZnNldCBpcwoJICBpbiBhIHVuZG93bmxvYWRlZCByYW5nZSBiZWZvcmUgdGhlIGN1cnJlbnRseSBpbi1wcm9ncmVzcyByYW5nZS4gQ2F1c2luZwoJICBzZWVrcyB0byBhbiBlYXJsaWVyIG9mZnNldCB0bywgd2VsbCwgdGFrZSBhIHdoaWxlLgoKMjAxMy0wNy0zMCAxOToyNzoyMyArMDIwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBkb2NzOiBzb21lIHNtYWxsIGd0ay1kb2MgbWFya3VwIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDctMzAgMTk6Mjc6MjMgKzAyMDAgIEtqYXJ0YW4gTWFyYWFzIDxrbWFyYWFzQGdub21lLm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWdpc3RlciBuZXcgY29sb3IgbW9kZSBlbnVtLCBmaXhpbmcgJ21ha2UgY2hlY2snCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUxNTYKCjIwMTMtMDQtMTYgMTk6MDQ6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogQXZvaWQgdXNpbmcgYnVmZmVyX2dldF9zaXplIGluIHRpZ2h0IGxvb3BzCgkgIENhbGxpbmcgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSByZXByZXNlbnRlZCAyLzMgb2YgdGhlIGNvc3Qgb2YgaGVscGVyX2ZpbmRfcGVlawoJICB3aGljaCB3YXMgY2FsbGVkIHdoZW5ldmVyIGEgdHlwZWZpbmRmdW5jdGlvbiB3YW50ZWQgdG8gcGVlayBhdCBkYXRhLgoJICBXZSBhbHJlYWR5IGtub3cgdGhlIHNpemUgKGZyb20gdGhlIEdzdE1hcEluZm8pLCBzbyBqdXN0IHVzZSB0aGF0LgoKMjAxMy0wNy0yOSAxOTozODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDctMjkgMTk6MTM6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IGFjY2lkZW50YWwgcmUtd2luZGluZyBvZiBjb21tb24gc3VibW9kdWxlCgoyMDEzLTA3LTI2IDE2OjE1OjI0ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQ2xhcmlmeSB0aGUgZXN0aW1hdGVkLXRvdGFsIGRvY3VtZW50YXRpb24KCSAgVHdlYWsgdGhlIGRvY3VtZW50YXRpb24gc2xpZ2h0bHkgdG8gY2xhcmlmeSB0aGF0IHRoZSBlc3RpbWF0ZWQtdG90YWwgaW4KCSAgYSBhIEJ1ZmZlcmluZyBxdWVyeSB0aGUgdG90YWwgcmVtYWluaW5nIHRpbWUgb2YgYSBkb3dubG9hZCwgbm90IHRoZQoJICB0b3RhbCB0aW1lIGZvciB0aGUgY29tcGxldGUgZG93bmxvYWQuIEFsc28gaW5kaWNhdGUgdGhlIHVuaXQgdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkzNAoKMjAxMy0wNy0yNiAxNTowODoxMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZvcndhcmQgdGhlIHNjaGVkdWxlIHF1ZXJ5IHVwc3RyZWFtCgkgIFdoZW4gYXNrZWQgYWJvdXQgdGhlIHNjaGVkdWxpbmcgZmxhZ3MgZmlyc3QgY2hlY2sgd2l0aCB1cHN0cmVhbSBhbmQKCSAgc2ltcGx5IGFkZCB0aGUgX1NFRUtBQkxFIGZsYWcgd2hlbiB1c2luZyBhIHRlbXBvcmFyeSBmaWxlIGFzIHN0b3JhZ2UuCgkgIFRoaXMgZW5hYmxlcyB0aGUgZm9yd2FyZGluZyBvZiBfU0VRVUVOVElBTCBhbmQgX0JBTkRXSURUSF9MSU1JVEVEIGZyb20KCSAgc291cmNlcyBpZiBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5MjcKCjIwMTMtMDctMjkgMTQ6NDc6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjMgPT09CgoyMDEzLTA3LTI5IDEzOjM0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjMKCjIwMTMtMDctMjkgMTM6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNy0yOSAxMjoxMDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogRml4IGhhbmRsaW5nIG9mIFNFR01FTlQgcXVlcnkKCSAgVGhlIHZhbHVlcyBzaG91bGQgYmUgaW4gc3RyZWFtLXRpbWUsIGFuZCBzdGFydC9zdG9wIHNob3VsZCBub3QKCSAgYmUgc3dhcHBlZCBmb3IgbmVnYXRpdmUgcmF0ZXMuCgoyMDEzLTA3LTI5IDExOjA1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBhZHZhbmNlIG9mZnNldCBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIGFjdHVhbGx5IHJlYWQKCSAgVGhlcmUgbWlnaHQgYmUgYSBzaG9ydCByZWFkIGF0IEVPUy4KCjIwMTMtMDctMjkgMTA6NDg6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogSW1wbGVtZW50IFNFR01FTlQgcXVlcnkKCjIwMTMtMDctMjYgMTg6MzY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IFNpbmNlOiBtYXJrZXIgZm9yIG5ldyBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwKCkKCjIwMTMtMDctMjYgMTI6MTk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGRlYnVnIHRoZSBjbG9jayByZXR1cm4gdmFsdWVzCgoyMDEzLTA3LTI1IDEyOjIwOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZXFudW0gaGFuZGxpbmcgZm9yIHNlZWtzCgkgIFVzZSB0aGUgc2FtZSBzZXFudW0gYXMgdGhlIHNlZWsgZm9yIGZsdXNoZXMvc2VnbWVudHMgdGhhdCBhcmUKCSAgY2F1c2VkIGJ5IHRoZSBzZWVrLiBBbHNvIGRvIHRoZSBzYW1lIGZvciBzZWdtZW50IGV2ZW50cwoJICBGaXhlcyAjNjc2MjQyCgoyMDEzLTA3LTI0IDEwOjI5OjMwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHBhcnNlIGRlYnVnIGxldmVscyA+IDkKCjIwMTMtMDctMjQgMTY6NTc6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogRml4IGNvcHkmcGFzdGUgbWlzdGFrZXMgaW4gdGhlIGJpdG1hc2sgZnVuY3Rpb24gZG9jcwoKMjAxMy0wNy0yNCAxMToyMToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3Qgc2hhZG93IHZhcmlhYmxlcyB0aGF0IGFyZSBzZXQgaW5zaWRlIG91ciBzY29wZSBhbmQgdGhlbiB1c2VkIG91dHNpZGUgb3VyIHNjb3BlCgkgIEZpeGVzIHVuaW5pdGlhbGl6ZWQgdXNlIG9mIHRoZXNlIHZhcmlhYmxlcy4KCjIwMTMtMDctMjQgMTA6MzA6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogUmVtb3ZlIG90aGVyIGludGVyZmFjZSBzdHJ1Y3RzIGZyb20gdGhlIEFCSSB0ZXN0cyB0b28KCjIwMTAtMTAtMTUgMTM6MTY6NTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgR3N0VGFnU2V0dGVyIGZyb20gQUJJIGNoZWNrcwoJICBJbnRlcmZhY2VzIGNhbiBoYXZlIG5ldyBtZW1iZXJzIGFkZGVkIHdpdGhvdXQgYnJlYWtpbmcgQUJJLCBzbwoJICByZW1vdmUgaXQgZnJvbSB0aGUgY2hlY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM3OTkKCjIwMTMtMDctMjMgMTU6Mzk6NTMgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkgIGxpYmNoZWNrOiBFc2NhcGUgc3RyaW5ncyBpbiB0aGUgZ2VuZXJhdGVkIHhtbCBmaWxlcwoJICBUaGlzIGlzIGNvcHkgcGFzdGVkIGZyb20gdXBzdHJlYW0gbGliY2hlY2sKCjIwMTMtMDctMjMgMTg6NTM6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFByaW50IHNvbWUgZGVidWcgb3V0cHV0IGlmIGEgc3RyZWFtLXN0YXJ0IGV2ZW50IHdpdGhvdXQgZ3JvdXAtaWQgYXJyaXZlcwoJICBJZGVhbGx5IGFsbCBlbGVtZW50cyB3b3VsZCBpbXBsZW1lbnQgaGFuZGxpbmcgb2YgdGhhdCB0byBnZXQgcHJvcGVyCgkgIHN0cmVhbS1zdGFydCBtZXNzYWdlIGhhbmRsaW5nIGFuZCBvdGhlciB0aGluZ3MuCgoyMDEzLTA3LTIyIDE4OjAzOjAxICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRml4IG1pc3NpbmcgcGFkIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uCgkgIEEgbmV3IGFjdGl2ZSBwYWQgbWlnaHQgbm90IGJlIG5vdGlmaWVkIGluIHNvbWUgY2FzZXMsIHdoaWNoIHJlc3VsdHMKCSAgaW4gdGhlIGN1cnJlbnQgdHJhY2sgbnVtYmVyIG5vdCBiZWluZyBzZXQgaW4gcGxheWJpbi4KCSAgVGhlIGFjdGl2ZS1wYWQgbm90aWZpY2F0aW9uIGlzIG9ubHkgc2VudCBpbiB0aGUgY2hhaW4gYW5kIHNpbmtfZXZlbnQKCSAgZnVuY3Rpb25zLCBhbmQgb25seSB3aGVuIHRoZSBidWZmZXIgb3IgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGFjdGl2ZQoJICBwYWQgc2VsZWN0aW9uIGlzIGZyb20gdGhlIG5ld2x5IGFjdGl2YXRlZCBwYWQuIFNvIGluIHRoZSBvdGhlciBjYXNlCgkgIHRoZSBub3RpZmljYXRpb24gd2lsbCBuZXZlciBiZSBzZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0NjkxCgoyMDEzLTA3LTIyIDE3OjI1OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogaGFuZGxlIGRlc2VyaWFsaXNhdGlvbiBvZiBub25leGlzdGFudCBlbnVtIHZhbHVlIG1vcmUgZ3JhY2VmdWxseQoKMjAxMy0wNy0yMiAxNDoxMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBwdXNoIG5ldyBzdHJlYW0tc3RhcnQgZXZlbnRzIG9uIHN0cmVhbSBjaGFuZ2UgdW5sZXNzIHRoZXkgYWxsIGhhdmUgZ3JvdXAgaWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ0MDgKCjIwMTMtMDctMjIgMTI6MDY6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBVc2UgbmV3IGdyb3VwLWlkIGluIHN0cmVhbS1zdGFydCBldmVudAoKMjAxMy0wNy0yMiAxMjowNjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogVXNlIG5ldyBncm91cC1pZCBmaWVsZCBpbiBzdHJlYW0tc3RhcnQgZXZlbnQgYW5kIG1lc3NhZ2UKCjIwMTMtMDctMjIgMTE6NDI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBVc2UgdGhlIG5ldyBncm91cC1pZCBmaWVsZCBvZiB0aGUgc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgZm9yIHN0cmVhbS1zdGFydCBtZXNzYWdlIGFnZ3JlZ2F0aW9uCgkgIElmIGFsbCBzdHJlYW0tc3RhcnQgbWVzc2FnZXMgaGFkIGEgZ3JvdXAgaWQgKGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSksCgkgIHdlIG9ubHkgY29uc2lkZXIgYSBzdHJlYW0gc3RhcnRlZCBpZiBhbGwgaGFkIHRoZSBzYW1lIGdyb3VwIGlkLgoJICBJbiAyLjAgd2Ugc2hvdWxkIG1ha2UgdGhlIGdyb3VwIGlkIG1hbmRhdG9yeS4KCjIwMTMtMDctMjIgMTE6NDE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgZ3JvdXAtaWQgZmllbGQgdG8gdGhlIHN0cmVhbS1zdGFydCBldmVudAoJICBBbGwgc3RyZWFtcyB0aGF0IGhhdmUgdGhlIHNhbWUgZ3JvdXAgaWQgYXJlIHN1cHBvc2VkIHRvIGJlIHBsYXllZAoJICB0b2dldGhlciwgaS5lLiBhbGwgc3RyZWFtcyBpbnNpZGUgYSBjb250YWluZXIgZmlsZSBzaG91bGQgaGF2ZSB0aGUKCSAgc2FtZSBncm91cCBpZCBidXQgZGlmZmVyZW50IHN0cmVhbSBpZHMuIFRoZSBncm91cCBpZCBzaG91bGQgY2hhbmdlCgkgIGVhY2ggdGltZSB0aGUgc3RyZWFtIGlzIHN0YXJ0ZWQsIHJlc3VsdGluZyBpbiBkaWZmZXJlbnQgZ3JvdXAgaWRzCgkgIGVhY2ggdGltZSBhIGZpbGUgaXMgcGxheWVkIGZvciBleGFtcGxlLgoKMjAxMy0wNy0xOCAyMzoyOTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiByZXZlcnQgYWNjaWRlbnRhbCBjaGFuZ2Ugb2YgY29tbW9uIHN1Ym1vZHVsZQoKMjAxMy0wNy0xOCAxNDozOTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0OiBBZGQgc29tZSBtb3JlIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTQ6MzQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEFkZCBzb21lIFNpbmNlOiAxLjIKCjIwMTMtMDctMTggMTU6MTA6MTAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogQWRkIGRlYnVnIGNvbG9yIG1vZGUgb3B0aW9uCgkgIFRoaXMgYWxsb3dzIHRvIGV4cGxpY2l0ZWx5IHNldCB0aGUgZGVidWcgb3V0cHV0IGNvbG9yCgkgIG1vZGUgdG8gVU5JWCBvbiBldmVyeSBwbGF0Zm9ybSwgZW5hYmxlIGl0ICh1c2UgcGxhdGZvcm0KCSAgZGVmYXVsdCBjb2xvciBtb2RlKSBvciBlbmFibGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQzMjAKCjIwMTItMDQtMTggMTQ6MzU6MzIgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJsYWNrIGFuZCB1bmRlcmxpbmUgY29sb3Jpbmcgb24gVzMyCgkgIEZpeGVzICM2NzQzMjAKCjIwMTItMDQtMTggMTQ6MTI6MTYgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQ3V0IGRvd24gc3JjIGZpbGUgbmFtZXMgZm9yIE1pbkdXIHRvbwoJICBGaXhlcyAjNjc0MzIwCgoyMDEzLTA3LTE2IDE3OjQ3OjQ1ICswMjAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEZpeCBnc3QtcGx1Z2lucy1nbCBpbiB1bmluc3RhbGxlZCBzZXR1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNDk5CgoyMDEzLTA3LTE2IDE1OjM1OjA4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBUYWtlIGFjY291bnQgb2YgdGhlIHNraXAgaW4gZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfZmFzdCgpCgkgIEluY2x1ZGUgcmVncmVzc2lvbiB0ZXN0CgoyMDEzLTA3LTE1IDE1OjQxOjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBBZGQgZnVuY3Rpb24gdG8gcmV0dXJuIGJ1ZmZlciBjb21wb3NlZCBvZiBtdWx0aXBsZSBtZW1vcmllcwoJICBBUEk6IGdzdF9hZGFwdGVyX3Rha2VfZmFzdCgpCgoyMDEzLTA3LTE2IDE2OjI0OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IERvbid0IGFzc2VydCBpZiBubyBjb250ZXh0IGlzIHNldCBpbiB0aGUgcXVlcnkKCjIwMTMtMDctMTYgMTQ6NDc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGJlbmNobWFya3M6IGlnbm9yZSBuZXcgYmVuY2htYXJrIGJpbmFyeQoKMjAxMy0wNy0xNiAxNDo0NjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IHNwcmlua2xlIHNvbWUgU2luY2UgMS4yIG1hcmtlcnMgaW4gZG9jcwoKMjAxMy0wNy0xNiAxNDo0NDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgdGltZXByb3ZpZGVyOiBnLWk6IGFsbG93IE5vbmUgYXMgYWRkcmVzcyBmb3IgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldygpCgoyMDEzLTA3LTE2IDE1OjM0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBSZXR1cm4gYW4gZW1wdHkgR3N0Q29udGV4dCBpZiBub25lIHdhcyBzZXQgeWV0CgoyMDEzLTA3LTE2IDE1OjE2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIGdzdF9xdWVyeV9oYXNfY29udGV4dF90eXBlKCkKCjIwMTMtMDctMTYgMTE6MzY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDctMTUgMTE6MzY6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBIG5ld2x5IGFjdGl2YXRlZCBwYWQgc2hvdWxkIGJlIG1hcmtlZCBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbgoKMjAxMy0wNy0xNSAxMTozMjo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogRG9uJ3QgY29uc2lkZXIgZmx1c2hpbmcgcGFkcyBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NDhhOWQyZjJiNzI4ZjVmYjYwYmU0NWQ0N2E4MThjZWJlYjYwYzdkLgoJICBUaGlzIGlzIHJhY3kgYW5kIHRyeWluZyB0byByZWNvbmZpZ3VyZSBhbmQgZmFpbCBpcyBzdGlsbCBiZXR0ZXIKCSAgdGhhbiBub3QgdHJ5aW5nIHRvIHJlY29uZmlndXJlIGF0IGFsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDEwMAoKMjAxMy0wNy0xNSAxMTozMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IExlYXZlIHRoZSBsb29wIGZ1bmN0aW9uIGZhc3RlciBpZiB3ZSdyZSBmbHVzaGluZwoJICBFc3BlY2lhbGx5IGRvbid0IGV2ZW4gdHJ5IHRvIHNlbmQgc3RyZWFtLXN0YXJ0IGV2ZW50IG9yIHRyeQoJICB0byBuZWdvdGlhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQxMDAKCjIwMTMtMDctMTIgMTA6MDg6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEZWFjdGl2YXRlIGFuZCByZW1vdmUgcGFkIHdpdGhvdXQgdGhlIGlucHV0c2VsZWN0b3IgbG9jawoJICBPdGhlcndpc2Ugd2UgbWlnaHQgZ2V0IGRlYWRsb2NrcyBjYXVzZWQgYnkgbG9jayBvcmRlciBpbnZlcnNpb246CgkgIER1cmluZyB0aGUgY2hhaW4gZnVuY3Rpb24gdGhlIHN0cmVhbSBsb2NrIGlzIGZpcnN0IGxvY2tlZCBhbmQgdGhlbiB0aGUKCSAgaW5wdXRzZWxlY3RvciBsb2NrLiBEdXJpbmcgcGFkIHJlbGVhc2Ugd2UgZmlyc3QgbG9ja2VkIHRoZSBpbnB1dHNlbGVjdG9yCgkgIGxvY2sgYW5kIHRoZW4gZGVhY3RpdmF0aW5nIHRoZSBwYWQgd291bGQgbG9jayB0aGUgc3RyZWFtIGxvY2suCgkgIFRoZXJlJ3Mgbm8gcmVhc29uIHdoeSB0aGUgaW5wdXRzZWxlY3RvciBsb2NrIHNob3VsZCBiZSByZXF1aXJlZCB3aGlsZQoJICBkZWFjdGl2YXRpbmcgYW5kIHJlbW92aW5nIHRoZSBwYWQsIGl0J3Mgb25seSBuZWVkZWQgYmVmb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MDAyCgoyMDEzLTA3LTExIDE2OjU3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4yID09PQoKMjAxMy0wNy0xMSAxNToxMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4yCgoyMDEzLTA3LTExIDE1OjExOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDctMTAgMTU6NTI6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBBbHdheXMgZm9yd2FyZCBjbG9jay1sb3N0IG1lc3NhZ2UgaWYgd2UncmUgbm90IGEgdG9wLWxldmVsIGJpbgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBubyBiaW4gbWlzc2VzIHRoZSBjbG9jay1sb3N0IG1lc3NhZ2VzLCBpbmRlcGVuZGVudAoJICBvZiB0aGUgc3RhdGUsIGFuZCBjb3VsZCByZXR1cm4gYW4gb2xkLCBub24td29ya2luZyBjbG9jayBmcm9tCgkgIGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5OTcKCjIwMTMtMDctMTAgMTQ6MzA6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBLZWVwIHByZXZpb3VzIGFjdGl2ZSBzaW5rcGFkIGFyb3VuZCB1bnRpbCB3ZSdyZSBkb25lIHdpdGggaXQKCSAgT3RoZXJ3aXNlIHdlJ2xsIHNlbmQgYSBuZXcgc2VnbWVudCBldmVudCBkb3duc3RyZWFtIGZvciBlYWNoIGJ1ZmZlci4KCjIwMTMtMDctMDggMTU6MjY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCB0eXBlIG9mIGdzdF9tZW1vcnlfYWxpZ25tZW50IHRvIG1hdGNoIGRlY2xhcmF0aW9uCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIHN1Y2ggYXMKCSAgZ3N0YWxsb2NhdG9yLmM6NjE6ODogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAnZ3N0X21lbW9yeV9hbGlnbm1lbnQnCgkgIC4uL2dzdC9nc3RhbGxvY2F0b3IuaDo1MjoxODogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2dzdF9tZW1vcnlfYWxpZ25tZW50JyB3YXMgaGVyZQoKMjAxMy0wNy0wNSAyMTozNjoyNyArMDIwMCAgUGlvdHIgRHLEhWcgPHBpb3RyZHJhZ0BnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHVwZGF0ZSBQT1RGSUxFUy5pbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzNjgyCgoyMDEzLTA3LTA0IDIwOjM5OjI2IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG8gbm90IGxvY2sgYSBtdXRleCB0aGF0IGRvZXMgbm90IGV4aXN0CgkgIFRoZSBHU1RfTElWRV9MT0NLIGlzIG9uIEdzdEJhc2VTcmMsIG5vdCBvbiBpdHMgc291cmNlIHBhZC4KCjIwMTMtMDctMDMgMjE6MjM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IFBUUyBhZnRlciBzZWVrCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI3NzgKCjIwMTMtMDctMDMgMTM6MDM6NDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIEFkZCBmZXcgbWlzc2luZyBhbGxvdy1ub25lIGFubm90YXRpb24KCjIwMTMtMDctMDMgMDk6Mjc6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgbmV3IC1iYWQgbXBlZ3RzIGxpYgoJICBBbmQgcmVtb3ZlIHNpZ25hbHByb2Nlc3Nvci92aWRlbyBsaWJzIGZyb20gLWJhZCB3aGljaCBoYXZlIGdvbmUKCSAgYXdheSBvciB3ZXJlIG1lcmdlZCBpbnRvIC1iYXNlLgoKMjAxMy0wNy0wMSAyMDozNToyMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IFJlLXB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbiBidWZmZXJzIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBwYWQKCSAgRG9uJ3Qgc3BlY2lhbCBjYXNlIHNlZ21lbnQvY2FwcywganVzdCBwdXNoIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gdGhleSBhcmUKCSAgcmVjZWl2ZWQgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgcGFkIG9yIHdoZW4gdGhlIGFjdGl2ZSBwYWQgY2hhbmdlcy4KCjIwMTMtMDctMDEgMjA6MjE6MTAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBkZWZhdWx0IHBhZCBmdW5jdGlvbiBmb3IgdXBzdHJlYW0gZXZlbnQvcXVlcmllcwoJICBUaGUgZGVmYXVsdCBmdW5jdGlvbnMgaW4gMS54IGFscmVhZHkgZG8gdGhlIHJpZ2h0IHRoaW5nCgoyMDEzLTA3LTAxIDIwOjE4OjU4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBSZW1vdmUgZnVubmVsIHBhZF9hbGxvYyB0ZXN0CgoyMDEzLTA3LTAxIDIwOjA3OjAzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IENoYW5nZSBzdHJlYW1faWQgcGFyYW1ldGVyIG5hbWUgdG8gbWF0Y2ggR3RrRG9jCgoyMDEzLTA3LTAxIDExOjEwOjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgY2hlY2s6IEFkZGVkIGdzdF9jaGVja19zZXR1cF9ldmVudHNfd2l0aF9zdHJlYW1faWQoKQoJICBBZGRlZCBhIG5ldyBmdW5jdGlvbiBnc3RfY2hlY2tfc2V0dXBfZXZlbnRzX3dpdGhfc3RyZWFtX2lkKCksIHNpbmNlCgkgIGdzdF9jaGVja19zZXR1cF9ldmVudHMoKSBkb2VzIG5vdCB3b3JrIHdpdGggbXVsdGlwbGUgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzM3NwoKMjAxMy0wNi0zMCAxODozOTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGNvbnNpZGVyIGZsdXNoaW5nIHBhZHMgYXMgbmVlZGluZyByZWNvbmZpZ3VyYXRpb24KCSAgUmVuZWdvdGlhdGlvbiBhbmQgcmVjb25maWd1cmF0aW9uIHdpbGwgZmFpbCBiZWNhdXNlIGFsbCBxdWVyaWVzCgkgIGFuZCBldmVudHMgd29uJ3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHBhZCBpZiBpdCdzIGZsdXNoaW5nLiBJbiB0aGUKCSAgYmVzdCBjYXNlIHRoaXMganVzdCBjYXVzZXMgdW5uZWVkZWQgd29yayBhbmQgc3B1cmlvdXMgd2FybmluZ3MgaW4KCSAgdGhlIGRlYnVnIGxvZ3MsIGluIHRoZSB3b3JzdCBjYXNlIGl0IGNhdXNlcyBlbGVtZW50cyB0byBmYWlsIGNvbXBsZXRlbHkuCgoyMDEzLTA2LTI0IDIzOjI1OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBvbmx5IGJsb2NrIHNlcmlhbGl6ZWQgcXVlcnkgd2hlbiBpdCdzIHNhZmUKCSAgV2UgbXVzdCBiZSBjZXJ0YWluIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBkZWFkbG9jayB3aGVuIGJsb2NraW5nIHRoZSBzZXJpYWxpemVkCgkgIHF1ZXJpZXMuIE9uZSBzdWNoIGRlYWRsb2NrIGNhbiBoYXBwZW4gd2hlbiB3ZSBhcmUgYnVmZmVyaW5nIGFuZCBkb3duc3RyZWFtIGlzCgkgIGJsb2NrZWQgaW4gcHJlcm9sbCBhbmQgYSBzZXJpYWxpemVkIHF1ZXJ5IGFycml2ZXMuIERvd25zdHJlYW0gd2lsbCBub3QgdW5ibG9jawoJICAoYW5kIGFsbG93IG91ciBxdWVyeSB0byBleGVjdXRlKSB1bnRpbCB3ZSBjb21wbGV0ZSBidWZmZXJpbmcgYW5kIGJ1ZmZlcmluZyB3aWxsCgkgIG5vdCBjb21wbGV0ZSB1bnRpbCB3ZSBjYW4gYW5zd2VyIHRoZSBxdWVyeS4uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI4NDAKCjIwMTMtMDYtMTkgMTI6MzA6NDcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBhIGZpbHRlciB0byB0aGUgY2Fwc19xdWVyeSBkb25lIGJ5IGFjY2VwdGNhcHMKCSAgVXNlIHRoZSBjYXBzIHRoYXQgdGhlIHBhZCBpcyBhc2tlZCB0byBhY2NlcHQgYXMgZmlsdGVyIGZvciB0aGUgcXVlcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYzMgoKMjAxMy0wNi0xOSAxMjoxOTowMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb3B0aW1pemUgZGVmYXVsdCBhY2NlcHRjYXBzIGltcGxlbWVudGF0aW9uCgkgIFBhc3MgdGhlIGZpeGVkIGNhcHMgd2UncmUgYXNrZWQgdG8gYWNjZXB0IGFzIGEgZmlsdGVyIGZvciB0aGUgY2FwcwoJICBxdWVyeSwgc28gd2UgZG9uJ3QgZ2V0IGEgZnVsbHktZXhwYW5kZWQgc2V0IG9mIGNhcHMgYmFjayAod2hpY2ggd2UgZG9uJ3QKCSAgbmVlZCBhbmQgY2FuIHRha2UgYSBsb3Qgb2YgdGltZSBmb3IgaW50ZXJzZWN0aW9uKS4KCSAgVGhpcyByZWR1Y2VzIHRoZSB0aW1lIGZvciBjYW1lcmFiaW4gdG8gcHJvZHVjZSBhIHNlY29uZCBmcmFtZSBvbiBhCgkgIGxvZ2l0ZWNoIEM5MTAgY2FtZXJhIGZyb20gYXJvdW5kIDUyIHNlY29uZHMgdG8gYSBiaXQgbGVzcyB0aGVuIDE2CgkgIHNlY29uZHMgb24gbXkgc3lzdGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTE5IDA5OjE5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEF2b2lkIGNvbWJpbmF0b3JpYWwgZXhwbG9zaW9uIHdoZW4gbWVyZ2luZyB0YWdzCgkgIFdoZW4gYXBwZW5kaW5nL3ByZXBlbmRpbmcgdGFncywgYXZvaWQgcmUtY3JlYXRpbmcgKGFuZCBjb3B5aW5nKSBsaXN0cyBpZiB3ZSBhbHJlYWR5CgkgIGhhdmUgb25lIGFuZCBpbnN0ZWFkIGp1c3QgYXBwZW5kL3ByZXBlbmQgdGhlIEdWYWx1ZSB0byB0aGUgbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjU0NQoKMjAxMy0wNi0xOSAxMDo1MzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG9uJ3QgaG9sZCB0aGUgcXVldWUgbXV0ZXggd2hpbGUgZG9pbmcgc2VyaWFsaXplZCBxdWVyaWVzIGRvd25zdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjUyMAoKMjAxMy0wNi0xOSAxMDo0NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEFkZCB1bml0IHRlc3QgZm9yIG1hcF9yYW5nZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTkgMDg6MzY6MjIgKzAyMDAgIFBhdWwgSEVOUllTIDx2aXNlY2hlbGxlQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggd3Jvbmcgc2l6ZS9pbmRleCBoYW5kbGluZyB3aGVuIG1lcmdpbmcgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MTcKCjIwMTMtMDYtMTggMTE6Mzk6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpc3QtdWxpbmsueHNsOgoJICBkb2NzOiBhZGQgbWlzc2luZyBmaWxlIGZvciBkb2MtbGluayBjaGVjawoKMjAxMy0wNi0xNyAxMToxMjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICB0ZXN0czogYWRkIHN0cmVzcyB0ZXN0IGZvciBidWZmZXJzIGFuZCBwb29scwoKMjAxMy0wNi0xNyAxMDoyNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhbGwgc3RhdGUgY2hhbmdlIGluIGFsbCBjYXNlcwoJICBXaGVuIHdlIGFzeW5jaHJvbm91c2x5IGdvIGZyb20gUkVBRFkgdG8gUExBWUlORywgYWxzbyBjYWxsIHRoZQoJICBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gc28gdGhhdCBzdWJjbGFzc2VzIGNhbiB1cGRhdGUgdGhlaXIgc3RhdGUgZm9yIFBMQVlJTkcuCgkgIEJlY2F1c2UgdGhlIFBSRVJPTEwgbG9jayBpcyBub3QgcmVjdXJzaXZlLCB3ZSBjYW4ndCBtYWtlIHRoaXMgd2l0aG91dAoJICByYWNlcyBhbmQgd2UgbXVzdCBhc3N1bWUgZm9yIG5vdyB0aGF0IHRoZSBzdWJjbGFzcyBjYW4gaGFuZGxlIGNvbmN1cnJlbnQgY2FsbHMKCSAgdG8gUEFVU0VELT5QTEFZSU5HIGFuZCBQTEFZSU5HLT5QQVVTRUQuIFdlIGNhbiBtYWtlIHRoaXMgYXNzdW1wdGlvbiBiZWNhdXNlIG5vdAoJICBtYW55IGVsZW1lbnRzIGFjdHVhbGx5IGRvIHNvbWV0aGluZyBpbiB0aG9zZSBzdGF0ZSBjaGFuZ2VzIGFuZCB0aGUgb25lcyB0aGF0CgkgIGRpZCB3b3VsZCBiZSBicm9rZW4gZXZlbiBtb3JlIHdpdGhvdXQgdGhpcyBjaGFuZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIyODIKCjIwMTMtMDYtMTYgMTU6MDc6MzUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIGRvY3M6IGZpeCBzb21lIGV4dGVybmFsIGxpbmtzCgoyMDEzLTA2LTE2IDE0OjQ1OjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgZG9jczogY2hlY2sgZm9yIGJyb2tlbiBsaW5rcyBpbiBkb2NzCgkgIFRoZSBjaGVjayBpcyBkb25lIHVzaW5nIGN1cmwgKGlmIGF2YWlsYWJsZSkuIEl0IGxpc3RzIHRoZSBjdXJsIGV4aXQgY29kZSArIGh0dHAKCSAgc3RhdHVzIGNvZGUgKGZvciB0aG9zZSA+IDM5OSkgdG9nZXRoZXIgd2l0aCB0aGUgdXNlIG9mIHRoZSB1cmwgaW4gdGhlIGNvZGUuIFRoZQoJICBjaGVjayBpcyBub3QgZmF0YWwuCgoyMDEzLTA2LTE2IDEzOjA1OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IGNoYW5nZSBodHRwcyB0byBodHRwIHVybHMKCSAgVGhhbmsgeW91IGJyb3dzZXIgZm9yIG5lZWRsZXNzbHkgY2hhbmdpbmcgdG8gaHR0cHMgZm9yIHN0YXRpYyBkb2MgcGFnZXMuCgoyMDEzLTA2LTE2IDExOjQxOjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgIGRvY3M6IHVwZGF0ZSBsaW5rcyB0byBkZXZlbG9wZXIuZ25vbWUub3JnCgkgIFRoZSBVUkwgbGF5b3V0IGhhcyBjaGFuZ2VkLiBGaXggdGhlIGxpbmtzIGFuZCBjb21tZW50IG91dCBvbmUgcGFyYWdyYXBoIHdoZXJlCgkgIHRoZSBkb2MgaXMgZ29uZS4KCSAgRml4ZXMgIzcwMjEzNQoKMjAxMy0wNi0xNCAxMzowNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX25ld19mcm9tX3N0cmluZygpCgkgIENvbnZlbmllbmNlIEFQSSBmb3IgYmluZGluZ3MsIGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcoKSByZXR1cm5zCgkgIGEgdHVwbGUgKHN0cnVjdHVyZSwgZW5kX3B0cikgaW4gYmluZGluZ3MgYW5kIGlzIHVuaW50dWl0aXZlIHRvIHVzZQoJICBiZWNhdXNlIG9mIHRoYXQuCgoyMDEzLTA2LTEzIDA4OjM2OjIzICswMjAwICBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IERvbid0IGludGVyY2VwdCAtLWhlbHAgaW4gZ3N0X2luaXQoKQoJICBCZWZvcmUgdGhpcyBwYXRjaCBnc3RfaW5pdCB3b3VsZCBpbnRlcmNlcHQgLS1oZWxwLCBjYXVzaW5nIGZvciBleGFtcGxlCgkgIGNoZWVzZSdzIC0taGVscCB0byBsb29rIGxpa2UgdGhpczoKCSAgW2hhbnNAc2hhbGVtIGNoZWVzZV0kIGNoZWVzZSAtLWhlbHAKCSAgVXNhZ2U6CgkgIGNoZWVzZSBbT1BUSU9OLi4uXSAtIEdTdHJlYW1lciBpbml0aWFsaXphdGlvbgoJICBIZWxwIE9wdGlvbnM6CgkgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IGhlbHAgb3B0aW9ucwoJICAtLWhlbHAtYWxsICAgICAgICAgICAgICAgICAgICAgICAgU2hvdyBhbGwgaGVscCBvcHRpb25zCgkgIC0taGVscC1nc3QgICAgICAgICAgICAgICAgICAgICAgICBTaG93IEdTdHJlYW1lciBPcHRpb25zCgkgIGdzdF9pbml0IGlzIHRoZSBvbmx5IGdmb29faW5pdCBmdW5jdGlvbiB3aGljaCBkb2VzIHRoaXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIwODkKCjIwMTMtMDYtMTIgMDk6NDU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdXJpZG93bmxvYWRlciBsaWIgaW4gLWJhZCB0byBzZWFyY2ggcGF0aHMKCSAgRXZlbiBpZiBpdCBtaWdodCBub3QgYmUgYXJvdW5kIGZvciBsb25nLgoKMjAxMy0wNi0xMSAxMDoyNTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBSZW1vdmUgdW5yZWYgdGhhdCBzaG91bGQgbm90IGJlIHRoZXJlCgkgIFdlIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQgYXJvdW5kIGFsbCB0aGUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk4NQoKMjAxMy0wNi0wOSAxNzoyMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBJbXByb3ZlIEdzdENvbnRleHQgaGFuZGxpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk2NwoKMjAxMy0wNi0wNyAxMzowNzozNyArMDIwMCAgS2ltIExhbSA8a2ltQHJlZGdpYW50c29mdHdhcmUuY29tPgoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSAgd2luMzI6IERvbid0IGluY2x1ZGUgZ3N0Y29sbGVjdHBhZHMuYyB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjAzCgoyMDEzLTA1LTMxIDA5OjM5OjU1IC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBzZW5kIG5vdGlmeTo6YWN0aXZlIHNpZ25hbCBmb3IgaW5wdXQtc2VsZWN0b3IgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMxOQoKMjAxMy0wNi0wNiAxNjo0NjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBmb3JjZS11cGRhdGUgdGhlIGR1cmF0aW9uIGZvciBkeW5hbWljIHNvdXJjZXMgd2hlbiBkb2luZyB0aGUgRFVSQVRJT04gcXVlcnkKCSAgRG9pbmcgaXQgYWZ0ZXIgZXZlcnkgc2luZ2xlIGNyZWF0ZSgpIGlzIG5vdCB2ZXJ5IGVmZmljaWVudCBhbmQgbm90IG5lY2Vzc2FyeS4KCSAgRXNwZWNpYWxseSBvbiBuZXR3b3JrIGZpbGUgc3lzdGVtcyBmc3RhdCgpIGlzIG5vdCBjYWNoZWQgYW5kIGNhdXNlcyBuZXR3b3JrCgkgIHRyYWZmaWMsIG1ha2luZyB0aGUgc291cmNlIHBvc3NpYmx5IHVudXNhYmxlIHNsb3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIwMzcKCjIwMTMtMDYtMDUgMTg6MzY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMSA9PT0KCjIwMTMtMDYtMDUgMTc6NTg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMQoKMjAxMy0wNi0wNSAxNjowNjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDYtMDUgMTU6MTQ6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDk4YzBkNyB0byAwMWE3YTQ2CgoyMDEzLTA2LTA1IDExOjAyOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgX2FwcGVuZF9hbmRfdGFrZV92YWx1ZSgpIHB1YmxpYyB2YXJpYW50cwoJICBBUEk6IGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgQVBJOiBnc3RfdmFsdWVfbGlzdF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUKCSAgV2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoaXMgaW50ZXJuYWxseSwgdGhpcyBtYWtlcyBpdCBwdWJsaWMgZm9yIGNvZGUKCSAgd2hpY2ggZnJlcXVlbnRseSBhcHBlbmRzIHZhbHVlcyB3aGljaCBhcmUgZXhwZW5zaXZlIHRvIGNvcHkgKGxpa2UKCSAgc3RydWN0dXJlcywgYXJyYXlzLCBjYXBzLCAuLi4pLgoJICBBdm9pZHMgY29waWVzIG9mIHRoZSB2YWx1ZXMgZm9yIHVzZXJzLiBUaGUgcGFzc2VkIEdWYWx1ZSB3aWxsIGFsc28KCSAgYmUgMC1tZW1zZXQnZWQgZm9yIHJlLXVzZS4KCSAgTmV3IHVzZXJzIGNhbiByZXBsYWNlIHRoaXMga2luZCBvZiBjb2RlOgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgZ192YWx1ZV91bnNldCgmbXl2YWx1ZSk7CgkgIGJ5OgoJICBnc3RfdmFsdWVfKl9hcHBlbmRfYW5kX3Rha2VfdmFsdWUobXljb250YWluZXIsICZteXZhbHVlKTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTYzMgoKMjAxMy0wNS0yOSAxNzoyMDozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogVXNlIGludGVybmFsIGZ1bmN0aW9uIGZvciBidWZmZXJfbmV3X3dyYXBwZWQKCSAgU2hhdmVzIH4xMCUgaW5zdHJ1Y3Rpb24gY2FsbHMgZnJvbSB0aGUgdG90YWwgY29zdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjMzCgoyMDEzLTA1LTMwIDIyOjU3OjQ5IC0wNjAwICBCcmVuZGFuIExvbmcgPHNlbGZAYnJlbmRhbmxvbmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiByZXR1cm4gRkFMU0UgZm9yICJhY3RpdmUiIHByb3BlcnR5IGlmIHNlbGVjdG9yIGlzIE5VTEwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTMyMwoKMjAxMy0wNi0wMSAxNDowMDoyMiArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZWxlbWVudHMgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgIkJvb3N0IHByaW9yaXR5IG9mIGEgdGhyZWFkIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjU1OjUwICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBjb21tZW50IGluIGVmZmVjdHN3aXRjaCBleGFtcGxlCgoyMDEzLTA2LTAxIDEzOjQ5OjE4ICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IGZpeCBhIHR5cG8gaW4gIkluc2VydGluZyBkYXRhIHdpdGggYXBwc3JjIiBzZWN0aW9uCgoyMDEzLTA2LTAxIDEzOjIyOjIyICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJICBwd2c6IGZpeCBhIGZldyB0eXBvcwoKMjAxMy0wNS0zMSAyMzozNzowNyArMDEwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW1vdmUgZG91YmxlICJ0aGUiCgoyMDEzLTA1LTI4IDIzOjM0OjU0ICswMTAwICBLcnp5c3p0b2YgS29ub3BrbyA8a3J6eXN6dG9mLmtvbm9wa29AZ21haWwuY29tPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBpbXByb3ZlIGdpdC11cGRhdGUuc2ggc3RhdHVzIG1lc3NhZ2UKCSAgQnkgZGVmYXVsdCB3aGVuIHRoZSBzY3JpcHQgaXMgYWJvdXQgdG8gZXhpdCAobm9ybWFsbHkgb3IgZHVlIHRvIGFuIGVycm9yKSwKCSAgaXQgY2hlY2tzIHdoZXRoZXIgJEVSUk9SX0xPRyBmaWxlIGV4aXN0cy4gIElmIHRoZSBsb2cgZmlsZSBleGlzdHMsIHRoZQoJICBzY3JpcHQgcHJpbnRzIGEgIkZhaWx1cmVzOiAiIG1lc3NhZ2UgcHJlZml4IGFuZCBkdW1wcyB0aGUgbG9nIGZpbGUgdG8gdGhlCgkgIG91dHB1dC4KCSAgQXBwYXJlbnRseSB0aGUgbG9nIGZpbGUgaXMgYWx3YXlzIGNyZWF0ZWQgYW5kIGlmIHRoZSB1cGRhdGUvYnVpbGQgaXMKCSAgc3VjY2Vzc2Z1bCwgdGhlIHNjcmlwdCBmaW5pc2hlcyB3aXRoIGEgYml0IG1pc2xlYWRpbmcgIkZhaWx1cmVzOiAiIG1lc3NhZ2UuCgkgIEFuIGltcHJvdmVtZW50IHByb3ZpZGVkIHdpdGggdGhpcyBjaGFuZ2UgbGV0cyB0aGUgbG9nIGZpbGUgdG8gYmUgY3JlYXRlZCBhcwoJICBuZWVkZWQsIGkuZS4gaWYgdGhlcmUncyBhbiBlcnJvciBtZXNzYWdlIHRvIGJlIHByaW50ZWQuICBJZiB0aGUgZmlsZQoJICBkb2Vzbid0IGV4aXN0cywgdGhlIHNjcmlwdCBwcmludHMgYSAiVXBkYXRlIGRvbmUiIG1lc3NhZ2Ugd2hpY2ggY2xlYXJseQoJICBpbmRpY2F0ZXMgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTE3NwoKMjAxMy0wNS0zMCAwNzowMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgY2hlY2s6IGZpeCBwb3NpdGlvbiB1bml0IHRlc3QKCjIwMTMtMDUtMzAgMDY6NTE6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIHBvc2l0aW9uIHJlcG9ydGluZyB3aXRob3V0IGNsb2NrCgkgIFdoZW4gbm8gYmFzZSB0aW1lIG9yIHdoZW4gc3luYyBpcyBkaXNhYmxlZCwgdXNlIHRoZSBzYW1lIGxvZ2ljIGFzCgkgIGluIHBhdXNlZCB0byByZXBvcnQgcG9zaXRpb24uIFRoZSBsb2dpYyBpbiBQTEFZSU5HIGFzc3VtZXMgd2UgdXNlIHRoZQoJICBjbG9jay4KCjIwMTMtMDUtMjkgMTE6MzY6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEzLTA1LTI4IDEyOjQ0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogQWRkIHN1cHBvcnQgZm9yIGNoZWNraW5nIHN1YnRpdGxlL21ldGFkYXRhIGZhY3RvcnkgdHlwZXMKCjIwMTMtMDUtMjggMTI6NDE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgb25seSB0aGUgbWVkaWEgdHlwZSBvZiBhIGZhY3RvcnkKCSAgQW5kIHdoaWxlIGF0IGl0IGFsc28gYWRkIE1ldGFkYXRhIGFuZCBTdWJ0aXRsZSBtZWRpYSB0eXBlcy4KCjIwMTMtMDUtMjcgMTY6Mzg6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKG11bHRpKXF1ZXVlOiBEb24ndCBhY2Nlc3MgcXVlcnkgaXRlbXMgZHVyaW5nIGZsdXNoaW5nCgoyMDEzLTA1LTI3IDE2OjIyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBkbyBzZXJpYWxpemVkIHF1ZXJpZXMgd2hlbiB3ZSdyZSBmbHVzaGluZwoJICBKdXN0IGltbWVkaWF0ZWx5IGZhaWwgdGhlIHF1ZXJ5LCBvdGhlcndpc2Ugd2Ugd291bGQgd2FpdCBmb3JldmVyCgkgIGZvciB0aGUgcXVlcnkgdG8gYmUgYW5zd2VyZWQuCgoyMDEzLTA1LTI3IDE2OjA4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRmlyc3Qgc2V0IHF1ZXJ5IHJlc3VsdCwgdGhlbiBzaWduYWwgR0NvbmQKCjIwMTMtMDUtMjcgMTU6NTk6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBGaXggaGFuZGxpbmcgb2Ygc2VyaWFsaXplZCBxdWVyaWVzCgkgIER1cmluZyBGTFVTSF9TVEFSVCB0aGUgcXVlcnkgbmVlZHMgdG8gYmUgdW5ibG9ja2VkIGFscmVhZHksIG90aGVyd2lzZQoJICBpdCBjYW4gbGVhZCB0byBkZWFkbG9ja3MgaWYgdGhlIEZMVVNIX1NUQVJUIGlzIHRoZSByZXN1bHQgb2Ygc29tZXRoaW5nCgkgIGRvbmUgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBvZiB0aGUgc3JjcGFkICh0aGUgcXVldWUgd2lsbCBuZXZlciBiZQoJICBlbXB0aWVkISkuCgoyMDEzLTA1LTI3IDE1OjQxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVW5ibG9jayBhbnkgd2FpdGluZyBzZXJpYWxpemUgcXVlcmllcyBvbiBGTFVTSF9TVEFSVAoJICBGaXhlcyBzb21lIGRlYWRsb2NrcyBkdXJpbmcgZmx1c2hpbmcuCgkgIEFuZCBzdG9yZSBxdWV1ZSBpdGVtcyBkaWZmZXJlbnRseSB0byBub3QgYWNjaWRlbnRpYWxseSByZWFkCgkgIGFscmVhZHkgdW5yZWZmZWQgcXVlcmllcyB3aGVuIGZsdXNoaW5nLiBRdWVyaWVzIGFyZSBvd25lZCBieQoJICB1cHN0cmVhbSBhbmQgbm90IHVzLgoKMjAxMy0wNS0yNyAxMzowMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyL211bHRpcXVldWU6IFdoZW4gZmx1c2hpbmcsIG1ha2Ugc3VyZSB0byBub3QgbG9zZSBhbnkgc3RpY2t5IGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODI0CgoyMDEzLTA1LTI3IDEyOjQwOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU3RvcmUgc3RpY2t5IGV2ZW50cyBldmVuIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgQnV0IGRvIHRoaXMgb25seSBmb3IgZXZlbnRzIHRoYXQgYXJlIG5vdCBkcm9wcGVkIGJ5IGZsdXNoaW5nLAoJICBpLmUuIGRvIGl0IG9ubHkgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0IFNFR01FTlQgYW5kIEVPUy4KCSAgV2l0aG91dCB0aGlzIHdlIG1pZ2h0IGRyb3AgYSBDQVBTIGV2ZW50IGlmIGZsdXNoaW5nIGhhcHBlbnMKCSAgYXQgYW4gdW5mb3J0dW5hdGUgdGltZSBhbmQgbm9ib2R5IGlzIHJlc2VuZGluZyB0aGUgQ0FQUyBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDgwNgoKMjAxMy0wNS0yNSAyMjowMzo1MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBEb24ndCByZWFkIHN0aWNreSBmbGFnIGZyb20gdW5yZWZlZCBldmVudAoKMjAxMy0wNS0yNCAyMzoyODowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBub3ctdW51c2VkICJhbGxvYy1wYWQiIHByb3BlcnR5CgkgIFNob3VsZCBwcm9iYWJseSBwcm94eSBBTExPQ0FUSU9OIHF1ZXJpZXMgb24gdGhhdCB0aG91Z2gsIGlmIHNldC4KCSAgQnV0IHdoYXQgZWxzZT8gQ0FQUyBhbmQgQUNDRVBUX0NBUFMgdG9vPwoKMjAxMy0wNS0yNCAyMzowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgMC4xMC1pc20gZnJvbSBkb2NzCgkgIGdzdF9idWZmZXJfcGFkX2FsbG9jKCkgbmV2ZXIgZXhpc3RlZCwgYW5kIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkKCSAgZG9lc24ndCBleGlzdCBhbnkgbW9yZSBlaXRoZXIsIHNvIGRvbid0IG1lbnRpb24gaXQgaW4gdGhlIGRvY3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQ3MTQKCjIwMTMtMDUtMjQgMTk6MjI6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogQWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcyBpZiB1c2luZyBhIG1lbW9yeSBxdWV1ZQoKMjAxMy0wNS0yNCAxODo0NzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogU2V0IHRoZSBsYXN0IHNlcmlhbGl6ZWQgcXVlcnkgcmVzdWx0IHRvIEZBTFNFIHdoZW4gZmx1c2hpbmcKCjIwMTMtMDUtMjQgMTg6NDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbml0aWFsaXplIGFsbCBHc3RNdWx0aVF1ZXVlSXRlbSBmaWVsZHMgaW4gYm90aCBjb2RlIHBhdGhzCgoyMDEzLTA1LTI0IDE4OjM4OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgYWNjZXNzIHRoZSBxdWVyeSBhZnRlciBzaWduYWxsaW5nIHRoZSB3YWl0aW5nIHRocmVhZAoJICBJdCBtaWdodCd2ZSBmcmVlJ2QgdGhlIHF1ZXJ5IGFscmVhZHkuCgoyMDEzLTA1LTI0IDE4OjMwOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogTWFrZSBzdXJlIHRvIGFsd2F5cyBzaWduYWwgYW55IHBvc3NpYmxlIHBlbmRpbmcgc2VyaWFsaXplZCBxdWVyaWVzCgkgIEFuZCBkb24ndCB1bnJlZiB0aGVtIHdoZW4gZmx1c2hpbmcgdGhlIHF1ZXVlLCB0aGV5J3JlIG93bmVkIGJ5IHRoZSBjYWxsZXIhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAzNDIKCjIwMTMtMDUtMjQgMTQ6Mzc6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXR1cm4gR1NUX0ZMT1dfRVJST1IgaWYgdGhlIGFsbG9jYXRvciBkaWQgbm90IGFsbG93IHRvIGFsbG9jYXRlIGEgYnVmZmVyCgoyMDEzLTA1LTI0IDE2OjI0OjEwICswOTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBSZW1vdmUgbWVudGlvbiBvZiBnY29uZiogZWxlbWVudHMKCSAgSW5zdGVhZCByZWNvbW1lbmQgcHVsc2VzcmMvc2luayBmb3IgYXVkaW8sIHRoZXJlIGlzIG5vdGhpbmcgR05PTUUKCSAgc3BlY2lmaWMgZm9yIHZpZGVvLgoKMjAxMy0wNS0xNSAxMzoyMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogSGFuZGxlIHRoZSBmb3JjZS1jYXBzIHByb3BlcnR5IG1vcmUgc2ltaWxhciB0byBhbGwgdHlwZWZpbmRpbmcgY29kZSBmbG93CgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGV2ZW50cyBoYXBwZW4gaW4gb3JkZXIgYW5kIHNpbXBsaWZpZXMgdGhlIGNvZGUgYSBiaXQuCgoyMDEzLTA1LTE1IDExOjIxOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBGaXggZXZlbnQgaGFuZGxpbmcgaW4gZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEzLTA1LTE1IDEwOjUxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWVkY2Q4NSB0byAwOThjMGQ3CgoyMDEzLTA1LTEwIDE2OjAzOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGNoZWNrIGlmIHdlIGdldCBidWZmZXJzIGJlZm9yZSBzdHJlYW0tc3RhcnQvc2VnbWVudCBpZiBjb21waWxpbmcgd2l0aG91dCBHX0RJU0FCTEVfQVNTRVJUCgkgIEluIHJlbGVhc2VzIHRoaXMgaXMgc2V0IHVzdWFsbHkuCgoyMDEzLTA1LTA5IDE3OjE3OjE0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IEFkZCBoZWxwZXIgdGhhdCBzZW5kcyBpbml0aWFsIGV2ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwMDMzCgoyMDEzLTA1LTA5IDE3OjIyOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEzLTA1LTA5IDE3OjIxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNYWtlIHN1cmUgcGVuZGluZywgb2xkZXIgc3RpY2t5IGV2ZW50cyBhcmUgc2VudCBkb3duc3RyZWFtIGluIGR5bmFtaWMgbGlua2luZyBzY2VuYXJpb3MKCSAgSWYgYSBwYWQgYmxvY2sgd2FzIHRyaWdnZXJlZCBmcm9tIHNlbmRpbmcgYSBzdGlja3kgZXZlbnQgZG93bnN0cmVhbSwgaXQKCSAgY291bGQgaGFwcGVuIHRoYXQgdGhlIHBhZCBibG9jayBpcyByZWxpbmtpbmcgcGFkcywgd2hpY2ggdGhlbiByZXF1aXJlcwoJICB0byByZXNlbmQgcHJldmlvdXMgc3RpY2t5IGV2ZW50cy4KCjIwMTMtMDUtMDkgMTM6MzI6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IEZpeCBldmVudCBvcmRlciB3YXJuaW5ncyBhbmQgZGF0YWZsb3cgYmVmb3JlIHN0cmVhbS1zdGFydC9zZWdtZW50IGV2ZW50CgoyMDEzLTA1LTA5IDEzOjMxOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByb3Blcmx5IHBvcnQgdW5pdCB0ZXN0IHRvIGFjdHVhbGx5IHVzZSBjYXBzIGFuZCBjaGVjayByZXN1bHRzCgoyMDEzLTA1LTA5IDEyOjUwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFN0b3JlIHN0aWNreSBldmVudHMgb24gdGhlIHNyY3BhZCBpZiB3ZSdyZSBkcm9wcGluZyB0aGVtIGJlY2F1c2Ugb2YgbGVha2luZwoKMjAxMy0wNS0wOSAxMjoyNzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBBbHdheXMgZm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIGFsbCBwYWRzCgoyMDEzLTA1LTA5IDEyOjE1OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGb3J3YXJkIGFsbCBzdGlja3kgZXZlbnRzLCBpbmNsdWRpbmcgc3RyZWFtLXN0YXJ0CgoyMDEzLTA1LTA5IDExOjA1OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBXYXJuIGlmIGRhdGEgZmxvdyBoYXBwZW5zIGJlZm9yZSBzdHJlYW0tc3RhcnQgb3Igc2VnbWVudCBldmVudAoKMjAxMy0wNS0wOSAxMDo1OTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBsZXQgZ3N0X3BhZF9zdGlja3lfZXZlbnRzX2ZvcmVhY2goKSBpdGVyYXRlIG92ZXIgZXhpc3RpbmcgZXZlbnRzCgoyMDEzLTA1LTA5IDEwOjI5OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiB3ZSBwdXNoIHN0aWNreSBldmVudHMgYmVjYXVzZSBvZiBhbm90aGVyIHN0aWNreSBldmVudCwgb25seSBwdXNoIHRob3NlIHRoYXQgY29tZSBiZWZvcmUgdGhlIG5ldyBldmVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5OTM3CgoyMDEzLTA1LTA5IDA5OjUwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgbW9yZSBkZWJ1ZyBvdXRwdXQgYW5kIGZvcndhcmQgY2FwcyBldmVudHMgaW1tZWRpYXRlbHkgdG9vCgoyMDEzLTA1LTA5IDA5OjQyOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBObyBzdGlja3kgZXZlbnRzIG11c3QgYXJyaXZlIGFmdGVyIEVPUwoKMjAxMy0wNS0wOSAwOTozODozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRml4IHR5cG8gaW4gbGFzdCBjb21taXQKCjIwMTMtMDUtMDggMTk6NDQ6MDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEltcHJvdmUgd2FybmluZyBtZXNzYWdlIG5hbWluZyBldmVudHMgdHlwZSBuYW1lCgkgIFdpdGggdGhpcyBwYXRjaCwgbWVzc2FnZSBzaG91bGQgbG9vayBsaWtlIMKoU3RpY2t5IGV2ZW50IG1pc29yZGVyaW5nLCBnb3QKCSAgJ2NhcHMnIGJlZm9yZSAnc3RyZWFtLXN0YXJ0J8KoIG1ha2luZyBpdCBmYXN0ZXIgdG8gZGVidWcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTg6MTk6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgaW5mb3JjZSBTVFJFQU1fU1RBUlQsIENBUFMgYW5kIFNFR01FTlQgb3JkZXJpbmcKCSAgUHJldmlvdXMgcGF0Y2ggd2FzIGluZm9yY2luZyBhIGNvbXBsZXRlIG9yZGVyaW5nIG9mIHRoZSBzdGlja3kgZXZlbnRzLCB3aGlsZQoJICBpbiBmYWN0LCBvbmx5IFNUUkVBTV9TVEFSVCwgQ0FQUyBhbmQgU0VHTUVOVCBldmVudHMgbmVlZCBwcm9wZXIgb3JkZXJpbmcuCgkgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOSAwOTozMjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgYWxsIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgQ0FQUyBhZnRlciB0aGUgQ0FQUyBldmVudAoKMjAxMy0wNS0wOCAyMTo0NTowOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgIGNhcHNmaWx0ZXI6IFNlbmQgY2FwcyBiZWZvcmUgc2VnbWVudAoJICBJbiB0aGUgY2FzZSB0aGUgc291cmNlIGhhcyBubyBjYXBzLCBjYXBzIG11c3QgYmUgc2VudCBiZWZvcmUgc2VnbWVudC4gVGhpcwoJICBmaXhlcyBmZXcgdW5pdCB0ZXN0cyB0aGF0IHdoZXJlIGZhaWxpbmcgZHVlIHRvIHRoZSBuZXcgbWlzb3JkZXJpbmcgd2FybmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTk2OAoKMjAxMy0wNS0wNyAyMTo1MzozNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRGV0ZWN0LCBmaXggYW5kIHdhcm4gd2hlbiBzdGlja3kgZXZlbnRzIGFyZSBpbiB3cm9uZyBvcmRlcgoJICBXZSBjYW4gcHJldmVudCBidWdneSBlbGVtZW50IGZyb20gY2F1c2luZyBvdGhlciBlbGVtZW50cyB0byBmYWlsIG9yIGNyYXNoCgkgIGJ5IHNvcnRpbmcgc3RpY2t5IGV2ZW50IGF0IGluc2VydGlvbi4gSW4gdGhpcyBjYXNlLCB3ZSBhbHNvIHdhcm4gYXMgdGhpcwoJICBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuLgoJICBTZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxODgKCjIwMTMtMDUtMDggMTA6MjY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyBjaGVja3MgZm9yIGdzdF9idWZmZXJfZmlsbCgpCgoyMDEzLTA1LTA4IDEwOjI1OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFsbG93IGNhbGxpbmcgX2ZpbGwoKSB3aXRoIGEgTlVMTCBkYXRhIHBvaW50ZXIgaWYgc2l6ZSBpcyAwIGJ5dGVzCgoyMDEzLTA1LTA3IDE2OjQ2OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBBZGQgRklYTUUgY29tbWVudCBmb3IgdW51c2VkIGFzc2lnbm1lbnQgcmVzdWx0cwoKMjAxMy0wNS0wNyAxNToxODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gbWV0YWRhdGEgc2VjdGlvbiBpbiBhcHAgZGV2IG1hbnVhbAoJICBUaGVyZSdzIG5vIGdfdGFnX2xpc3RfZ2V0X3h5eigpLgoKMjAxMy0wNS0wNyAxNDo0NzowOSArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgYSBtaW5vciB0eXBvIGZpeAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5ODI3CgoyMDEzLTA1LTA2IDE4OjQ3OjQ0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2VuZCBzdHJlYW0tc3RhcnQgYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgVG8gZG8gc28sIHNlbmQgc3RyZWFtLXN0YXJ0IHdoZW4gdGhlIHN0cmVhbWluZyB0aHJlYWQgZ29lcyB1cCBmb3IgdGhlIGZpcnN0CgkgIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk3NjcKCjIwMTItMTItMjYgMTE6NTQ6NTEgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBBbGxvdyAxLjAgYW5kIDAuMTAgc2NyaXB0cyBpbnN0YWxsZWQgc2ltdWx0YW5lb3VzbHkKCSAgQXMgbG9uZyBhcyB0aGUgc2NyaXB0cycgZmlsZW5hbWVzIGFyZSBkaWZmZXJlbnQsIGFuZCB0aGUgX2dzdF9pbnNwZWN0CgkgIGFuZCBfZ3N0X2xhdW5jaCBmdW5jdGlvbnMgYXJlIG5hbWVkIGRpZmZlcmVudGx5LCB0aGUgY29tcGxldGlvbiBzY3JpcHRzCgkgIGZvciBHU3RyZWFtZXIgMS4wIGFuZCAwLjEwIGNhbiBiZSBpbnN0YWxsZWQgc2lkZS1ieS1zaWRlIGluCgkgIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQuCgkgIE9uIG15IDAuMTAgYnJhbmNo4oCgIHRoZSBjb21wbGV0aW9uIHNjcmlwdCBpcyByZW5hbWVkIHRvCgkgICJnc3RyZWFtZXItY29tcGxldGlvbi0wLjEwIiBhbmQgdGhlIGZ1bmN0aW9ucyBhcmUgcmVuYW1lZCB0bwoJICAiX2dzdF9pbnNwZWN0XzBfMTAiIGFuZCAiX2dzdF9sYXVuY2hfMF8xMCIuIFRoZSByZW1haW5pbmcgaGVscGVyCgkgIGZ1bmN0aW9ucyBzaG91bGQgcmVtYWluIGlkZW50aWNhbCAodGhlIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8KCSAgZ3N0LWluc3BlY3QgaGFzbid0IGNoYW5nZWQsIG5vciBoYXMgdGhlIGZvcm1hdCBvZiB0aGUgZ3N0LWxhdW5jaAoJICBwaXBlbGluZSksIHNvIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSAxLjAgc2NyaXB0IG92ZXJyaWRlcyB0aGUgMC4xMAoJICBzY3JpcHQncyBkZWZpbml0aW9ucy4KCSAgTm90ZSB0aGF0IEkgZG9uJ3QgZXhwZWN0IHRoZXJlIHRvIGJlIGFub3RoZXIgR1N0cmVhbWVyIDAuMTAgcmVsZWFzZSwgc28KCSAgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQgd2lsbCBwcm9iYWJseSBuZXZlciBiZSBvZmZpY2lhbGx5IHJlbGVhc2VkOwoJICBidXQgaXQgaXMgc3RpbGwgd29ydGh3aGlsZSBhbGxvd2luZyBib3RoIHNjcmlwdHMgdG8gYmUgaW5zdGFsbGVkCgkgIGFsb25nc2lkZSBlYWNoIG90aGVyLCBmb3IgdGhvc2Ugd2hvIGluc3RhbGwgdGhlIDAuMTAgY29tcGxldGlvbiBzY3JpcHQKCSAgbWFudWFsbHkuCgkgIEZpeGVzOiAjNjkwNTE1CgkgIOKAoCBodHRwczovL2dpdGh1Yi5jb20vZHJvdGhsaXMvZ3N0cmVhbWVyL2Jsb2IvYmFzaC1jb21wbGV0aW9uLTAuMTAvdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb24tMC4xMAoKMjAxMi0xMi0yMSAxODoxMzo1MyArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogQ29tcGxldGUgb3B0aW9uICYgcHJvcGVydHkgdmFsdWVzIG9uIGJhc2ggMy4yCgkgIEJhc2ggMydzIGNvbXBsZXRpb24gZG9lc24ndCBzcGxpdCB3b3JkcyBieSBjaGFyYWN0ZXJzIGluCgkgIENPTVBfV09SREJSRUFLUy4gSW4gcGFydGljdWxhciBpdCBkb2Vzbid0IHNwbGl0IGF0ICI9IiBzaWducy4gTm93CgkgIF9nc3RfbGF1bmNoX3BhcnNlIGhhbmRsZXMgYm90aCBiYXNoIDMgYW5kIDQgZm9ybWF0IG9mIENPTVBfV09SRFMuCgkgIE5vdGUgdGhhdCAiJHtjdXIlJT0qfSIgbWVhbnMgY3VyJ3MgdmFsdWUgd2l0aCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBtYXRjaAoJICBvZiAiPSoiIGRlbGV0ZWQgZnJvbSB0aGUgZW5kOyAiJHtjdXIjKj19IiBtZWFucyBjdXIncyB2YWx1ZSB3aXRoIHRoZQoJICBzaG9ydGVzdCBwb3NzaWJsZSBtYXRjaCBvZiAiKj0iIGRlbGV0ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9TaGVsbC1QYXJhbWV0ZXItRXhwYW5zaW9uLmh0bWwKCSAgUmVnYXJkbGVzcyBvZiB0aGUgdmVyc2lvbiBvZiBiYXNoIHJ1bm5pbmcgdGhlIHVuaXQgdGVzdHMsIEkgY2FuIHRlc3QgZm9yCgkgIGJvdGggYmVoYXZpb3VycyBiZWNhdXNlIHRoZSB1bml0IHRlc3QgcG9wdWxhdGVzIENPTVBfV09SRFMgbWFudWFsbHkuIFNvCgkgIHRoaXMgdGVzdHMgdGhlIGJhc2ggMyBiZWhhdmlvdXI6CgkgIHRlc3RfZ3N0X2luc3BlY3RfY29tcGxldGlvbiAtLWdzdC1kZWJ1Zy1sZXZlbD00CgkgIGFuZCB0aGlzIHRlc3RzIHRoZSBiYXNoIDQgYmVoYXZpb3VyOgoJICB0ZXN0X2dzdF9pbnNwZWN0X2NvbXBsZXRpb24gLS1nc3QtZGVidWctbGV2ZWwgPSA0CgoyMDEyLTEyLTIxIDA4OjU2OjI2ICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBCYXNoIDMuMiBjb21wYXRpYmlsaXR5IGZpeGVzCgkgIENvbXBhdGlibGUgd2l0aCBiYXNoIDMuMjsgZG9lc24ndCByZXF1aXJlIHRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBhdAoJICBhbGwgKHRob3VnaCB0aGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCB0aGlzIHNjcmlwdCBpcyBzdGlsbCB0byBpbnN0YWxsCgkgIGJhc2gtY29tcGxldGlvbiwgYW5kIHRoZW4gZHJvcCB0aGlzIHNjcmlwdCBpbnRvIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQpLgoJICBOb3RlIHRoYXQgYmFzaCAzIGRvZXNuJ3QgYnJlYWsgQ09NUF9XT1JEUyBhY2NvcmRpbmcgdG8gY2hhcmFjdGVycyBpbgoJICBDT01QX1dPUkRCUkVBS1MsIHNvICJwcm9wZXJ0eT12YWwiIGxvb2tzIGxpa2UgYSBzaW5nbGUgd29yZCwgc28gdGhpcwoJICB3b24ndCBjb21wbGV0ZSBwcm9wZXJ0eSB2YWx1ZXMgKG9uIGJhc2ggMykuIFNpbWlsYXJseSwKCSAgIi0tZ3N0LWRlYnVnLWxldmVsPTxUQUI+IiB3b24ndCBjb21wbGV0ZSBwcm9wZXJseSAob24gYmFzaCAzKSwgYnV0CgkgICItLWdzdC1kZWJ1Zy1sZXZlbCA8VEFCPiIgd2lsbC4KCSAgRm9yIHRoYXQgcmVhc29uLCBJIG5vdyBvZmZlciAiLS1nc3QtZGVidWctbGV2ZWwiIGV0YyBhcyBjb21wbGV0aW9ucwoJICBpbnN0ZWFkIG9mICItLWdzdC1kZWJ1Zy1sZXZlbD0iLgoJICBGdW5jdGlvbnMgIl9pbml0X2NvbXBsZXRpb24iIGFuZCAiX3BhcnNlX2hlbHAiIHdlcmUgcHJvdmlkZWQgYnkgdGhlCgkgIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlID49IDIuMDsgbm93IEkgcm9sbCBteSBvd24gZXF1aXZhbGVudCBvZgoJICAiX3BhcnNlX2hlbHAiLCBhbmQgaW5zdGVhZCBvZiAiX2luaXRfY29tcGxldGlvbiIgSSB1c2UKCSAgIl9nZXRfY29tcF93b3Jkc19ieV9yZWYiIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIGJhc2gtY29tcGxldGlvbiAxLjIKCSAgb253YXJkcy4gSWYgdGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIGlzbid0IGF2YWlsYWJsZSBhdCBhbGwgSSB1c2UKCSAgYmFzaCdzIHJhdyBmYWNpbGl0aWVzLCBhdCB0aGUgZXhwZW5zZSBvZiBub3QgY29tcGxldGluZyBwcm9wZXJseSB3aGVuCgkgIHRoZSBjdXJzb3IgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQuCgkgIFRoZSBidWlsdGluICJjb21wb3B0IiBkb2Vzbid0IGV4aXN0IGluIGJhc2ggMzsgdGhvc2UgdXNlcnMgd2lsbCBqdXN0CgkgIGhhdmUgdG8gbGl2ZSB3aXRoIHRoZSBpbmNvbnZlbmllbmNlIG9mICJwcm9wZXJ0eT0iIGNvbXBsZXRpbmcgdG8KCSAgInByb3BlcnR5PSAiIHdpdGggYSB0cmFpbGluZyBzcGFjZS4gUHJvcGVydHkgdmFsdWVzIGFyZW4ndCBjb21wbGV0ZWQKCSAgcHJvcGVybHkgYW55d2F5IG9uIGJhc2ggMyAoc2VlIGFib3ZlKS4KCSAgIltbIC12IHZhciBdXSIgdG8gdGVzdCB3aGV0aGVyIGEgdmFyaWFibGUgaXMgc2V0LCBhbHNvIGRvZXNuJ3QgZXhpc3QgaW4KCSAgYmFzaCAzLiBOZWl0aGVyIGRvZXMgIjs7JiIgdG8gZmFsbCB0aHJvdWdoIGluIGEgImNhc2UiIHN0YXRlbWVudC4KCSAgSW4gdGhlIHVuaXQgdGVzdHM6CgkgICogT24gbXkgc3lzdGVtIChPUyBYKSwgIiMhL2Jpbi9iYXNoIiBpcyBiYXNoIDMuMiwgd2hlcmVhcwoJICAiIyEvdXNyL2Jpbi9lbnYgYmFzaCIgaXMgdGhlIDQuMiB2ZXJzaW9uIEkgYnVpbHQgbXlzZWxmLgoJICAqIEkgaGF2ZSB0byBpbml0aWFsaXNlIGFycmF5IHZhcmlhYmxlcyBsaWtlICJleHBlY3RlZD0oKSIsIG9yIGJhc2ggMwoJICB0cmVhdHMgIis9IiBhcyBhcHBlbmRpbmcgdG8gYW4gYXJyYXkgYWxyZWFkeSBwb3B1bGF0ZWQgd2l0aCBvbmUgZW1wdHkKCSAgc3RyaW5nLgoKMjAxMi0xMi0xOSAxMDo0Njo1MCArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJICB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjogU3VwcG9ydCBnc3QtaW5zcGVjdCwgYW5kIGdzdC1sYXVuY2ggZWxlbWVudCBwcm9wZXJ0aWVzCgkgIENvbXBsZXRlcyBvcHRpb25zIGxpa2UgIi0tZ3N0LWRlYnVnLWxldmVsIiBhbmQgdGhlIHZhbHVlcyBvZiBzb21lIG9mCgkgIHRob3NlIG9wdGlvbnM7IGNvbXBsZXRlcyBnc3QtbGF1bmNoIHBpcGVsaW5lIGVsZW1lbnQgbmFtZXMsIHByb3BlcnR5CgkgIG5hbWVzLCBhbmQgZXZlbiBwcm9wZXJ0eSB2YWx1ZXMgKGZvciBlbnVtIG9yIGJvb2xlYW4gcHJvcGVydGllcyBvbmx5KS4KCSAgRG9lc24ndCBjb21wbGV0ZSBhbGwgY2FwcyBzcGVjaWZpY2F0aW9ucywgbm9yIGVsZW1lbnQgbmFtZXMgc3BlY2lmaWVkCgkgIGVhcmxpZXIgaW4gdGhlIHBpcGVsaW5lIHdpdGggIm5hbWU9Li4uIi4KCSAgVGhlIEdTdHJlYW1lciB2ZXJzaW9uIG51bWJlciBpcyBoYXJkLWNvZGVkIGludG8gdGhlIGNvbXBsZXRpb24gc2NyaXB0OgoJICBUaGlzIHBhdGNoIGlzIG9mZiB0aGUgbWFzdGVyIGJyYW5jaCBhbmQgaGFzIHRoZSB2ZXJzaW9uIGhhcmQtY29kZWQgYXMKCSAgIjEuMCI7IGl0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgaWYgYmFja3BvcnRlZCB0byB0aGUgMC4xMCBicmFuY2guIFlvdQoJICBjb3VsZCBhbHdheXMgY3JlYXRlIGEgImdzdHJlYW1lci1jb21wbGV0aW9uLmluIiB0aGF0IGhhcyB0aGUgYXBwcm9wcmlhdGUKCSAgdmVyc2lvbiBpbnNlcnRlZCBieSAiY29uZmlndXJlIiwgYnV0IEknZCByYXRoZXIgbm90IGRvIHRoYXQuIFRoZQoJICBoYXJkLWNvZGVkIHZlcnNpb24gaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZgoJICBnc3RyZWFtZXItY29tcGxldGlvbiwgd2hpY2ggaGFkIHRoZSByZWdpc3RyeSBwYXRoIGhhcmQtY29kZWQgYXMKCSAgfi8uZ3N0cmVhbWVyLTEuMC9yZWdpc3RyeS54bWwuCgkgIE5vdGUgdGhhdCBHU3RyZWFtZXIgMC4xMCBpbnN0YWxscyAiZ3N0LWluc3BlY3QiIGFuZCAiZ3N0LWluc3BlY3QtMC4xMCIuCgkgICJnc3QtaW5zcGVjdCAtLWhlbHAiIG9ubHkgcHJpbnRzIDQgZmxhZ3MgKC0taGVscCwgLS1wcmludCwgLS1nc3QtbW0sCgkgIGdzdC1saXN0LW1tKSB3aGVyZWFzICJnc3QtaW5zcGVjdC0wLjEwIC0taGVscC1hbGwiIHByaW50cyB0aGUgZnVsbCBsaXN0CgkgIG9mIGZsYWdzLiBUaGUgc2FtZSBhcHBsaWVzIHRvICJnc3QtbGF1bmNoIiBhbmQgImdzdC1sYXVuY2gtMC4xMCIuCgkgIEdTdHJlYW1lciAxLjAgb25seSBpbnN0YWxscyAiZ3N0LWluc3BlY3QtMS4wIiwgbm90ICJnc3QtaW5zcGVjdCIuCgkgIFJlcXVpcmVzIGJhc2ggNDsgb25seSB0ZXN0ZWQgd2l0aCBiYXNoIDQuMi4gUmVxdWlyZXMgImJhc2gtY29tcGxldGlvbiIKCSAgKHdoaWNoIHlvdSBpbnN0YWxsIHdpdGggeW91ciBzeXN0ZW0ncyBwYWNrYWdlIG1hbmFnZXIpLgoJICBQdXQgdGhpcyBpbiAvZXRjL2Jhc2hfY29tcGxldGlvbi5kLyBvciBpbiBgcGtnLWNvbmZpZwoJICAtLXZhcmlhYmxlPWNvbXBhdGRpciBiYXNoLWNvbXBsZXRpb25gLCB3aGVyZSBpdCB3aWxsIGJlIGxvYWRlZCBhdCB0aGUKCSAgYmVnaW5uaW5nIG9mIGV2ZXJ5IG5ldyB0ZXJtaW5hbCBzZXNzaW9uOwoJICBvciBpbiBgcGdrLWNvbmZpZyAtLXZhcmlhYmxlPWNvbXBsZXRpb25zZGlyIGJhc2gtY29tcGxldGlvbmAsIHJlbmFtZWQgdG8KCSAgbWF0Y2ggdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgaXQgY29tcGxldGVzIChlLmcuICJnc3QtbGF1bmNoLTEuMCIsIHdpdGgKCSAgYW4gYWRkaXRpb25hbCBzeW1saW5rIG5hbWVkICJnc3QtaW5zcGVjdC0xLjAiKSwgd2hlcmUgaXQgd2lsbCBiZQoJICBhdXRvbG9hZGVkIHdoZW4gbmVlZGVkLgoJICB0ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoIGlzIChmb3Igbm93KSBpbiB0ZXN0cy9taXNjIC0tIGl0IG1pZ2h0IGJlCgkgIHdvcnRoIGNyZWF0aW5nICJ0ZXN0cy9jaGVjay90b29scyIsIHdpdGggYWxsIHRoZSBuZWNlc3NhcnkgYXV0b21ha2UKCSAgYm9pbGVycGxhdGUsIGFuZCBtb3ZpbmcgdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaCB0aGVyZSwgYW5kIGhhdmUgaXQKCSAgcnVuIGF1dG9tYXRpY2FsbHkgd2l0aCAibWFrZSBjaGVjayIuCgkgIElGIFlPVSdSRSBORVcgVE8gQkFTSCBDT01QTEVUSU9OIFNDUklQVFMKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAiY29tcGxldGUgLUYgX2dzdF9sYXVuY2ggZ3N0LWxhdW5jaC0xLjAiIG1lYW5zIHRoYXQgYmFzaCB3aWxsIHJ1biB0aGUKCSAgZnVuY3Rpb24gIl9nc3RfbGF1bmNoIiB0byBnZW5lcmF0ZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBmb3IgdGhlIGNvbW1hbmQKCSAgImdzdC1sYXVuY2gtMS4wIi4KCSAgIl9nc3RfbGF1bmNoIiBtdXN0IHJldHVybiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgaW4gdGhlIGFycmF5IHZhcmlhYmxlCgkgIENPTVBSRVBMWS4gKE5vdGUgb24gYmFzaCBzeW50YXg6ICJWPShhIGIgYykiIGFzc2lnbnMgdGhyZWUgZWxlbWVudHMgdG8KCSAgdGhlIGFycmF5ICJWIikuCgkgICJjb21wZ2VuIiBwcmludHMgYSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIHRvIHN0YW5kYXJkIG91dHB1dC4gVHJ5CgkgIGl0OgoJICBjb21wZ2VuIC1XICJhYmMxIGFiYzIgZGVmIiAtLSAiYSIKCSAgY29tcGdlbiAtZiAtLSAiLyIKCSAgVGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZDsgY29tcGdlbiB1c2VzIGl0CgkgIHRvIGZpbHRlciBvdXQgdGhlIG5vbi1tYXRjaGluZyBjb21wbGV0aW9ucy4gV2UgcHV0ICItLSIgZmlyc3QsIGluIGNhc2UKCSAgdGhlIHdvcmQgY3VycmVudGx5IGJlaW5nIGNvbXBsZXRlZCBzdGFydHMgd2l0aCAiLSIgb3IgIi0tIiwgc28gdGhhdCBpdAoJICBpc24ndCB0cmVhdGVkIGFzIGEgZmxhZyB0byBjb21wZ2VuLgoJICBGb3IgdGhlIGRvY3VtZW50YXRpb24gb2YgQ09NUF9XT1JEUywgQ09NUF9DV09SRCwgZXRjIHNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL0Jhc2gtVmFyaWFibGVzLmh0bWwjaW5kZXgtQ09NUF8wMDVmQ1dPUkQtMTgwCgkgIFNlZSBhbHNvOgoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24uaHRtbAoJICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvUHJvZ3JhbW1hYmxlLUNvbXBsZXRpb24tQnVpbHRpbnMuaHRtbAoJICBUaGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgcHJvdmlkZXMgdGhlIGhlbHBlciBmdW5jdGlvbgoJICAiX2luaXRfY29tcGxldGlvbiIgd2hpY2ggcG9wdWxhdGVzIHZhcmlhYmxlcyAiY3VyIiwgInByZXYiLCBhbmQgIndvcmRzIi4KCSAgU2VlCgkgIGh0dHA6Ly9hbm9uc2NtLmRlYmlhbi5vcmcvZ2l0d2ViLz9wPWJhc2gtY29tcGxldGlvbi9iYXNoLWNvbXBsZXRpb24uZ2l0O2E9YmxvYjtmPWJhc2hfY29tcGxldGlvbjtoPTg3MDgxMWI0O2hiPUhFQUQjbDYzNAoJICBOb3RlIHRoYXQgYnkgZGVmYXVsdCwgYmFzaCBhcHBlbmRzIGEgc3BhY2UgdG8gdGhlIGNvbXBsZXRlZCB3b3JkLiBXaGVuCgkgIHRoZSBjb21wbGV0aW9uIGlzICJwcm9wZXJ0eT0iIHdlIGRvbid0IHdhbnQgYSB0cmFpbGluZyBzcGFjZTsgY2FsbGluZwoJICAiY29tcG9wdCAtbyBub3NwYWNlIiBtb2RpZmllcyB0aGUgY3VycmVudGx5LWV4ZWN1dGluZyBjb21wbGV0aW9uCgkgIGFjY29yZGluZ2x5LiBTZWUKCSAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi1CdWlsdGlucy5odG1sI2luZGV4LWNvbXBvcHQKCjIwMTItMTEtMTMgMTY6MzY6NDYgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBVcGRhdGVkIHRvIHdvcmsgd2l0aCB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFRoZSBvcmlnaW5hbCByZWdpc3RyeSB3YXMgaW4geG1sIGZvcm1hdCAofi8uZ3N0cmVhbWVyLSovcmVnaXN0cnkueG1sKS4gQQoJICBiaW5hcnkgcmVnaXN0cnkgZm9ybWF0IHdhcyBhZGRlZCBpbiAyMDA3IChjb21taXQgZWJmMGM5ZDMpIGFuZCBtYWRlIHRoZQoJICBkZWZhdWx0IGluIDIwMDggKGNvbW1pdCAzZjM5ZmQ3ZSkuIEluIDAuMTAgeW91IGNvdWxkIHN0aWxsIGNob29zZSBhdAoJICAiY29uZmlndXJlIiB0aW1lIHRvIHVzZSB0aGUgeG1sIHJlZ2lzdHJ5IGluc3RlYWQ7IGluIDEuMCB0aGUgYmluYXJ5CgkgIHJlZ2lzdHJ5IGlzIHlvdXIgb25seSBjaG9pY2UuCgkgIFRoaXMgY2hhbmdlIHRvIGdzdHJlYW1lci1jb21wbGV0aW9uIHNob3VsZCB3b3JrIHdpdGggZWl0aGVyIGZvcm1hdAoJICBiZWNhdXNlIGl0IHBhcnNlcyB0aGUgb3V0cHV0IG9mICJnc3QtaW5zcGVjdCIgaW5zdGVhZCBvZiByZWFkaW5nIHRoZQoJICByZWdpc3RyeSBmaWxlIGRpcmVjdGx5LgoJICBOb3RlIHRoYXQgX2dzdF9sYXVuY2ggbm8gbG9uZ2VyIG5lZWRzIGFuIGV4cGxpY2l0ICJyZXR1cm4gMCIgYmVjYXVzZSwKCSAgdW5saWtlIHRoZSBwcmV2aW91cyBncmVwIGNvbW1hbmQsIGNvbXBnZW4gYWx3YXlzIHJldHVybnMgMCAodW5sZXNzIGEKCSAgZ2VudWluZSBlcnJvciBvY2N1cnMpLgoJICBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIGJ5IERhdmlkIFNjaGxlZWYsIHRoaXMgIm9ubHkKCSAgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidXQgdGhhdCdzIDkwJSBvZiB3aGF0IEkgd2FudCBpdCBmb3IuIgoKMjAxMy0wNC0yOSAyMToxMTozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBuaXQgY2xhcmlmaWNhdGlvbgoJICBJdCBpcyB0aGUgcHJvY2VzcyBjb250ZXh0IHRoYXQgbWF0dGVycy4KCjIwMTMtMDQtMjkgMTM6MjA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFsd2F5cyBsZWF2ZSBUWVBFRklORCBtb2RlIHdoZW4gd2UncmUgc3RvcHBpbmcgdHlwZWZpbmRpbmcKCjIwMTMtMDQtMjkgMTM6MDM6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFNpbXBsaWZ5IGNvZGUKCSAgVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIGluIFRZUEVGSU5EIG1vZGUuCgoyMDEzLTA0LTI5IDEyOjU4OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBQdXNoIHBlbmRpbmcgZXZlbnRzIGluZGVwZW5kZW50IG9mIHRoZSBleGlzdGVuY2Ugb2YgYSBkb3duc3RyZWFtIGNoYWluIGZ1bmN0aW9uIGFuZCBwZWVyCgkgIERvd25zdHJlYW0gbWlnaHQgY3JlYXRlIGEgcGVlciBvbmx5IGFzIHJlc3VsdCBvZiB0aGUgZXZlbnRzIGluIHRoZW9yeS4KCjIwMTMtMDQtMjkgMTI6NTY6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBDQVBTIGV2ZW50IG9uY2UgaWYgd2UgZ2V0IG9uZSBmcm9tIHVwc3RyZWFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI3ODQKCjIwMTMtMDQtMjkgMTI6NTQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3AgdHlwZWZpbmRpbmcgaWYgd2UgZ2V0IGEgQ0FQUyBldmVudCBmcm9tIHVwc3RyZWFtCgoyMDEzLTA0LTI5IDEyOjUyOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBJbXByb3ZlIGhhbmRsaW5nIG9mIEdBUCBldmVudHMKCSAgVGhlcmUncyBzdGlsbCByb29tIGZvciBpbXByb3ZlbWVudCB0aG91Z2guCgoyMDEzLTA0LTI5IDEyOjQ4OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBGb3J3YXJkIGV2ZW50cyB0aGF0IHNob3VsZCBoYXBwZW4gYmVmb3JlIHRoZSBjYXBzIGV2ZW50IGRpcmVjdGx5CgkgIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gc3RvcmluZyB0aGVtIGFuZCBzZW5kaW5nIHRoZW0gbGF0ZXIsIGFuZCBkb2luZyBzbyB3b3VsZAoJICBsYXRlciByZXF1aXJlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZXZlbnRzIHRoYXQgc2hvdWxkIGNvbWUgYmVmb3JlIGNhcHMgYW5kCgkgIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNzg0CgoyMDEzLTA0LTI5IDEyOjQ4OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IHB1c2ggcGVuZGluZyBidWZmZXJzIGFuZCBldmVudHMgaWYgd2UgaGF2ZSBjYXBzCgoyMDEzLTA0LTI5IDEyOjM5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBSZW1vdmUgY29kZSB0aGF0IHdvdWxkIGNhdXNlIGNhcHMgdG8gYmUgc2VudCB0d2ljZQoJICBXaGVuZXZlciB3ZSBzZXQgdHlwZWZpbmQtPmNhcHMgd2Ugd2lsbCBhbHNvIHNlbmQgYSBjYXBzIGV2ZW50IGRvd25zdHJlYW0uCgoyMDEzLTA0LTI3IDIwOjMzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBhbGxvY2F0aW9uIGRvY3MKCjIwMTMtMDQtMjcgMTE6NDY6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogc2V0IENLX1RJTUVPVVRfTVVMVElQTElFUiBvbiBBUk0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTU5OQoKMjAxMy0wNC0yNyAwMDowNTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIHR5cGVmaW5kOiBmaXggY2FwcyBsZWFrIHdoZW4gdXNlZCBpbiBjb25uZWN0aW9uIHdpdGggdXJpZGVjb2RlYmluIGFuZCBwbGF5YmluCgkgIERvbid0IGxlYWsgZm9yY2VkIHNpbmsgY2Fwcy4KCjIwMTMtMDQtMjIgMTg6MDg6NDMgLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogRml4IGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMy0wNC0yNSAxNjozODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVHJ5IHRvIG5vdCBwdXNoIHJlYWQtb25seSBidWZmZXJzCgkgIFdlIHNob3VsZCBvbmx5IGluY3JlYXNlIHRoZSByZWZjb3VudCBiZWZvcmUgcHVzaGluZyBpZiB3ZSdyZQoJICByZWFsbHkgZ29pbmcgdG8gdXNlIHRoZSBidWZmZXIgYWZ0ZXJ3YXJkcy4KCjIwMTMtMDQtMjUgMDc6MTU6MzkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogYWRkIGNoZWNrIGZvciBGTFVTSCBwYWQgcHJvYmVzCgoyMDEzLTA0LTI0IDA4OjQwOjMyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBydW4gcHJvYmVzIGZvciBGTFVTSCBldmVudHMgc2VudCB3aXRoIGdzdF9wYWRfc2VuZF9ldmVudAoJICBNb3ZlIHByb2JlIGhhbmRsaW5nIGluIGdzdF9wYWRfc2VuZF9ldmVudF91bmNoZWNrZWQgc28gdGhhdCBwcm9iZXMgYXJlIHJ1biBmb3IKCSAgRkxVU0ggZXZlbnRzIHRvby4KCjIwMTMtMDQtMjQgMTU6NTg6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0Y2xvY2s6IEFkZCBzdXBwb3J0IGZvciBJUHY2CgoyMDEzLTA0LTI0IDEyOjMwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZy10by0xLjAudHh0OiBhZGQgdHJvdWJsZXNob290aW5nIHNlY3Rpb24KCSAgQWRkIG5vdGUgYWJvdXQgImNhbm5vdCByZWdpc3RlciBleGlzdGluZyB0eXBlIGBHc3RPYmplY3QnIiB3YXJuaW5nLgoKMjAxMy0wNC0yMyAxMTo0Nzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgaW5mZXIgVFMgaWYgUFRTIGludGVycG9sYXRpb24gaXMgZW5hYmxlZAoJICBPdGhlcndpc2UgdGhpcyBpcyBicmVha2luZyB0aW1lc3RhbXBzIG9mIGZvcm1hdHMgdGhhdAoJICBuZWVkIHJlb3JkZXJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc2NjIKCjIwMTMtMDQtMjMgMTE6MTc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90aWZ5IGNhcHMgcHJvcGVydHkgb24gTlVMTCBhcyB3ZWxsCgkgIEFsc28gbm90aWZ5IHRoZSBjYXBzIHByb3BlcnR5IHdoZW4gaXQgY2hhbmdlcyB0byBOVUxMCgoyMDEzLTA0LTIzIDExOjE2OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsYXJpZnkgbG9ja2luZwoKMjAxMy0wNC0yMiAyMzo1MDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIE1BSU5UQUlORVJTOgoJKiBSRUFETUU6CgkqIFJFQURNRS5zdGF0aWMtbGlua2luZzoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzY2IzZDNjIHRvIDVlZGNkODUKCjIwMTMtMDQtMTkgMTU6MDE6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIHBhcnQtY29udGV4dDogV3JpdGUgc29tZSBkZXNpZ24gZG9jdW1lbnRhdGlvbiBhYm91dCBHc3RDb250ZXh0CgoyMDEzLTA0LTE5IDEzOjIxOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIHBhcnQtY2FwczogQWRkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY2FwcyBmZWF0dXJlcywgY2FwcyBzZW1hbnRpY3MgYW5kIGhvdyB0byB1c2UgdGhlbQoKMjAxMy0wNC0xOSAxMToyMzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQWRkIGRvY3VtZW50YXRpb24gYWJvdXQgQU5ZIEdzdENhcHNGZWF0dXJlcwoKMjAxMy0wNC0xOSAxMDoyNDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBzZXQgbGFzdF9yZW5kZXJfdGltZSBpZiB3ZSdyZSBjaGVja2luZyBmb3IgYSBsYXRlIGJ1ZmZlciBiZWZvcmUgOjpwcmVwYXJlKCkKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIgc2Vjb25kIGlzIHJlbmRlcmVkIGlmIGJ1ZmZlcnMKCSAgYXJlIGRyb3BwZWQgYmVmb3JlIDo6cHJlcGFyZS4gV2l0aG91dCB0aGlzIGNoYW5nZSwgYXQgbGVhc3Qgb25lIGJ1ZmZlciBwZXIKCSAgc2Vjb25kIHdvdWxkbid0IGJlIHRvbyBsYXRlIGJlZm9yZSA6OnByZXBhcmUgYW55bW9yZSBidXQgd291bGQgYmUgZHJvcHBlZAoJICBiZWZvcmUgOjpyZW5kZXIgYmVjYXVzZSBvZiBsYXN0X3JlbmRlcl90aW1lIGJlaW5nIHNldCBiZWZvcmUgOjpwcmVwYXJlCgkgIGFscmVhZHkuCgoyMDEzLTAyLTA4IDAzOjU3OjQ0IC0wMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgY29tcGFyZSBmdW5jdGlvbiBmb3IgY2FwcwoKMjAxMy0wMS0xNSAxNjo1NzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWU6IGFkZCBnc3RfZGF0YV9xdWV1ZV9wZWVrCgkgIFRoaXMgZnVuY3Rpb24gd29ya3MganVzdCBsaWtlIGdzdF9kYXRhX3F1ZXVlX3BvcCwgYnV0IGl0IGRvZXNuJ3QKCSAgcmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgcXVldWUuCgkgIFVzZWZ1bCB3aGVuIGluc3BlY3RpbmcgbXVsdGlwbGUgR3N0RGF0YVF1ZXVlcyB0byBkZWNpZGUgZnJvbSB3aGljaAoJICB0byBwb3AgdGhlIGVsZW1lbnQgZnJvbS4KCSAgQWRkOiBnc3RfZGF0YV9xdWV1ZV9wZWVrCgoyMDEzLTA0LTE4IDEwOjE0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IHRlc3QgYmluYXJ5CgoyMDEzLTA0LTE4IDEwOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogdXBkYXRlIGZvciBsYXRlc3QgY29udGV4dCBBUEkgY2hhbmdlcwoKMjAxMy0wNC0xOCAxMDoxNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udGV4dC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogQWRkIGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZSgpIGFuZCBsZXQgZ2V0X3N0cnVjdHVyZSgpIHJldHVybiBjb25zdCBhZ2FpbgoKMjAxMy0wNC0xOCAwMDo0NDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIHByaW50ZjogZml4IGhhbmRsaW5nIG9mIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMgZm9yIEFCSSBjb21wYXRpYmlsaXR5CgkgIEZpeGVzIGFib3J0IHdoZW4gdGhlIG9sZCBzcGVjaWZpZXJzIGFyZSB1c2VkLiBGaXggdXAgdGhlIGNvbnZlcnNpb24KCSAgc3BlY2lmaWVyLCBpdCB3b3VsZCBnZXQgb3ZlcndyaXR0ZW4gd2l0aCAnYycgYmVsb3cgdG8gdGhlIGV4dGVuc2lvbgoJICBmb3JtYXQgY2hhciwgd2hpY2ggdGhlbiBsYXRlciBpcyB1bmhhbmRsZWQsIGxlYWRpbmcgdG8gdGhlIGFib3J0LgoJICBBbHNvIGZpeCB1cCBhbmQgZW5hYmxlIHVuaXQgdGVzdCBmb3IgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvcHJvY2Vzc19idWcuY2dpCgoyMDEzLTA0LTE4IDAwOjI4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIG9sZCBwcmludGYgZXh0ZW5zaW9uIHNwZWNpZmllcnMKCSAgVG8gbWFrZSBzdXJlIHdlIG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZAoJICBzcGVjaWZpZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MjQyCgoyMDEzLTA0LTE4IDAwOjE5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJ1biBza2lwcGVkIHRlc3RzIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHZpYSBHU1RfQ0hFQ0tTCgkgIElmIGEgdGVzdCB0aGF0J3MgZGlzYWJsZWQgd2l0aCB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgaXMgbGlzdGVkCgkgIGluIHRoZSBHU1RfQ0hFQ0tTIGVudmlyb25tZW50IHZhcmlhYmxlLCBydW4gaXQgYW55d2F5LgoKMjAxMy0wNC0xNyAxMzo0NzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEFkZCBHc3RDb250ZXh0IHN1cHBvcnQKCSAgZ3N0LWxhdW5jaCB3aWxsIGNvbGxlY3QgYWxsIHRoZSBjb250ZXh0cyBmcm9tIHRoZSBwaXBlbGluZSBlbGVtZW50cwoJICBhbmQgdXBkYXRlIHRoZSBvdmVyYWxsIHBpcGVsaW5lIGNvbnRleHQgd2l0aCBpdC4KCjIwMTMtMDQtMTcgMTI6NDQ6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEFkZCB1bml0IHRlc3QgZm9yIEdzdENvbnRleHQKCjIwMTMtMDQtMTcgMTI6MTc6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogUmV0dXJuIGEgbm9uLWNvbnN0IEdzdFN0cnVjdHVyZSB0byBtYWtlIGNvZGUgc2ltcGxlciBhbmQgdXBkYXRlIGRvY3MKCjIwMTMtMDMtMjkgMTQ6NTY6NTcgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBxdWVyeTogbmV3IF9CQU5EV0lEVEhfTElNSVRFRCBmbGFnCgkgIFNvdXJjZSBlbGVtZW50cyB3aXRoIGxpbWl0ZWQgYmFuZHdpZHRoIGNhcGFiaWxpdGllcyBhbmQgc3VwcG9ydGluZwoJICBidWZmZXJpbmcgZm9yIGRvd25zdHJlYW0gZWxlbWVudHMgc2hvdWxkIHNldCB0aGlzIGZsYWcgd2hlbiBhbnN3ZXJpbmcKCSAgYSBzY2hlZHVsaW5nIHF1ZXJ5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGhlIG9uLWRpc2sgYnVmZmVyaW5nIHNjZW5hcmlvCgkgIG9mIHVyaWRlY29kZWJpbiB0byBhdm9pZCBjaGVja2luZyB0aGUgVVJJIHByb3RvY29sIGFnYWluc3QgYSBsaXN0IG9mCgkgIGhhcmRjb2RlZCBwcm90b2NvbHMuCgkgIEJ1ZyA2OTM0ODQKCjIwMTMtMDQtMTYgMDk6NTU6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGZpeCBtaXNzaW5nIGZsYWNkZWMgaW4gcG9ydGluZy10by0xLjAgcGlwZWxpbmUgZXhhbXBsZQoKMjAxMy0wNC0xNiAwOTowMzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIG5vdGUgYWJvdXQgZGVjb2RlcnMgYW5kIHBhcnNlcnMgdG8gcG9ydGluZy10by0xLjAgZG9jCgoyMDEyLTEwLTI0IDExOjU4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBnc3Q6IEFkZCBiZXR0ZXIgc3VwcG9ydCBmb3Igc3RhdGljIHBsdWdpbnMKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19ERUNMQVJFKCkKCSAgQVBJOiBHU1RfUExVR0lOX1NUQVRJQ19SRUdJU1RFUigpCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4uCgkgIFRoaXMgbm93IGFsbG93cyBHU1RfUExVR0lOX0RFRklORSgpIHRvIGNyZWF0ZSBhIHN0YXRpYyBwbHVnaW4gaWYKCSAgR1NUX1BMVUdJTl9CVUlMRF9TVEFUSUMgaXMgZGVmaW5lZC4gVGhlIHJlc3VsdGluZyBwbHVnaW4gY2FuIGJlCgkgIHN0YXRpY2FsbHkgbGlua2VkIG9yIGR5bmFtaWNhbGx5IGxpbmtlZCBkdXJpbmcgY29tcGlsYXRpb24gYnV0CgkgIGNhbid0IGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBkdXJpbmcgcnVudGltZS4KCSAgQWxzbyBhZGRzIEdTVF9QTFVHSU5fU1RBVElDX0RFQ0xBUkUoKSBhbmQgR1NUX1BMVUdJTl9TVEFUSUNfUkVHSVNURVIoKSwKCSAgd2hpY2ggYWxsb3dzIHRvIHJlZ2lzdGVyIGEgc3RhdGljIGxpbmtlZCBwbHVnaW4gZWFzaWx5LgoJICBJdCBpcyBzdGlsbCByZXF1aXJlZCB0byBtYW51YWxseSByZWdpc3RlciBldmVyeSBzaW5nbGUgc3RhdGljYWxseSBsaW5rZWQKCSAgcGx1Z2luIGZyb20gaW5zaWRlIHRoZSBhcHBsaWNhdGlvbiBhcyB0aGlzIGNhbid0IGJlIGF1dG9tYXRlZCBpbiBhIHBvcnRhYmxlCgkgIHdheS4KCSAgQSBuZXcgY29uZmlndXJlIHBhcmFtZXRlciAtLWVuYWJsZS1zdGF0aWMtcGx1Z2lucyB3YXMgYWRkZWQgdGhhdCBhbGxvd3MKCSAgdG8gYnVpbGQgYWxsIHBsdWdpbnMgd2UgYnVpbGQgaGVyZSBhcyBzdGF0aWMgcGx1Z2lucy4KCSAgRml4ZXMgYnVnICM2NjczMDUuCgoyMDEzLTA0LTEyIDEzOjUwOjM5ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIG1hbnVhbDogUGF0Y2ggbWFudWFsIHRvIHJlZmVyIHRvIHBvcnRpbmcgZ3VpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg0NQoKMjAxMy0wNC0xMyAxOTo0MzoxMCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogRml4IHRoZSBHc3RQbHVnaW5GZWF0dXJlIG5hbWUgY29tcGFyaXNvbi4KCSAgVGhlIGdzdF9wbHVnaW5fZmVhdHVyZV9yYW5rX2NvbXBhcmVfZnVuYygpIHNob3VsZCByZXR1cm4KCSAgbmVnYXRpdmUgdmFsdWUsIGlmIHRoZSByYW5rIG9mIGJvdGggUGx1Z2luRmVhdHVyZXMgYXJlIGVxdWFsIGFuZAoJICB0aGUgbmFtZSBvZiBmaXJzdCBQbHVnaW5GZWF0dXJlIGNvbWVzIGJlZm9yZSB0aGUgc2Vjb25kIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzk5MAoKMjAxMy0wNC0xNCAxNzo1NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjczNjU5MiB0byAzY2IzZDNjCgoyMDEzLTA0LTE0IDE3OjI1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhZWQ4N2FlIHRvIDI3MzY1OTIKCjIwMTMtMDQtMTQgMTE6MzM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJICBwcmludGY6IGRpc2FibGUgc29tZSB1bnVzZWQgcHJpbnRmIHZhcmlhbnRzCgoyMDEzLTA0LTE0IDExOjIzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkgIHByaW50ZjogdXNlIHNwcmludGYoKSB0byB3b3JrIGFyb3VuZCBnbGliYyBjb21wbGFpbmluZyBhYm91dCAlbiBpbiBhIHdyaXRhYmxlIGZvcm1hdCBzdHJpbmcKCSAgRG9uJ3QgdXNlIHNucHJpbnRmKCksIGJ1dCB1c2Ugc3ByaW50ZiBpbnN0ZWFkIGFuZCBkbyBvdXIgb3duCgkgIGxlbmd0aCBjYWxjdWxhdGlvbnMsIGJlY2F1c2UgZ2xpYmMgbWF5IGNvbXBsYWluIGFib3V0IHVzIHBhc3NpbmcKCSAgJW4gaW4gYSBmb3JtYXQgc3RyaW5nIGlmIHRoZSBzdHJpbmcgaXMgaW4gd3JpdGFibGUgbWVtb3J5LCBhbmQKCSAgaGVyZSB0aGUgZm9ybWF0IHN0cmluZyBpcyBhbHdheXMgaW4gd3JpdGFibGUgbWVtb3J5IHNpbmNlIHdlCgkgIGNvbnN0cnVjdCBpdCBvbiB0aGUgZmx5LiBUaGlzIGhhcHBlbnMgaWYgZ2xpYmMgaGFzIGJlZW4gY29tcGlsZWQKCSAgd2l0aCBfRk9SVElGWV9TT1VSQ0U9Miwgd2hpY2ggc2VlbXMgdG8gYmUgdGhlIGNhc2Ugb24gc29tZQoJICBkaXN0cm9zL3N5c3RlbXMpLiBPbiB0aGUgdXBzaWRlLCB3ZSBub3cgdXNlIHRoZSBzcHJpbnRmIGNvZGUgcGF0aAoJICBvbiBhbGwgc3lzdGVtcyB3aGljaCBzaG91bGQgYmUgYmV0dGVyIGZyb20gYSBtYWludGVuYW5jZSBwb2ludAoJICBvZiB2aWV3LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTcwCgoyMDEzLTA0LTEzIDEyOjE4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgdGVzdHM6IHNraXAgYWxsIEdzdFBvbGwgdGVzdHMgb24gV2luZG93cwoJICBBcyB0aGV5IGRvbid0IHdvcmsgdGhlcmUsIGFuZCBpdCdzIG5vbi10cml2aWFsIHRvIGZpeC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzYwOQoKMjAxMy0wNC0xMyAxMjowMDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBvbmx5IGFkZCBhICcqJyBmb3Igbm9uLSdncG9pbnRlcicgcG9pbnRlcnMKCSAgU3BvdHRlZCBieSBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMiAxNDo0ODoyOSArMDIwMCAgR3dlbm9sZSBCZWF1Y2hlc25lIDxnd2Vub2xlLmJlYXVjaGVzbmVAaW50ZWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBwbHVnaW46IGZpeCBuYW1lIGV4cGFuc2lvbiBmb3IgR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm8KCSAgTWFrZSBHU1RfUExVR0lOX0RFRklORSB1c2UgR19TVFJJTkdJRlkoKSB0byBjb252ZXJ0IHRoZSBuYW1lIGFyZ3VtZW50CgkgIGludG8gYSBtZWFuaW5nZnVsIHN0cmluZy4gVGhlIGFkdmFudGFnZSBvZiB0aGlzIGlzIHRoYXQgYG5hbWUnIGNhbiBiZQoJICBleHBhbmRlZCBmcm9tIG90aGVyIG1hY3JvcyBkZWZpbmVkIGluIHRoZSBwbHVnLWluIGVsZW1lbnQuCgkgIFNpZ25lZC1vZmYtYnk6IEd3ZW5vbGUgQmVhdWNoZXNuZSA8Z3dlbm9sZS5iZWF1Y2hlc25lQGludGVsLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzg3MgoKMjAxMy0wNC0xMyAxMTozNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IGFkZCBuZXcgdHJhbnNsYXRhYmxlIHN0cmluZ3MKCjIwMTMtMDQtMTIgMjM6NTg6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBwcmludGY6IGRvbid0IGJ1aWxkIGlmIGRlYnVnZ2luZyBzdWJzeXN0ZW0gd2FzIGRpc2FibGVkCgoyMDEzLTA0LTEwIDExOjUxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBkZWFsIHdpdGggc29tZSBvZiB0aGUgSEFWRV9GT08gdXNlZCBpbiB0aGUgcHJpbnRmIGNvZGUKCSAgUHJvYmFibHkgbmVlZHMgc29tZSBtb3JlIHdvcmsgZm9yIE1TVkMuCgoyMDEzLTA0LTA4IDE5OjQyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBmaXggYWxsb2NhIHVzZSBmb3Igd2luZG93cyB3aXRoIG1pbmd3MzIKCSAgRG9uJ3QgdXNlIGp1c3QgR0xJQl9IQVZFX0FMTE9DQV9IIHRvIGNoZWNrIGlmIGFsbG9jYSBpcyBhdmFpbGFibGUsCgkgIHRoYXQncyBqdXN0IGZvciB0aGUgaGVhZGVyLiBHTGliIG1heSBkZWZpbmUgYWxsb2NhIGZvciB1cyBvdGhlcndpc2UKCSAgdG9vIGlycmVzcGVjdGl2ZSBvZiBHTElCX0hBVkVfQUxMT0NBX0guCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBtaW5ndzMyOgoJICBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzo3MzowOiB3YXJuaW5nOiAiYWxsb2NhIiByZWRlZmluZWQKCjIwMTMtMDQtMDcgMjA6MTE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGVuYWJsZSBhbmQgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIEJ1dCBzdXBwcmVzcyAtV2Zvcm1hdC1ub25saXRlcmFsIHdhcm5pbmdzIHNpbmNlIHNwcmludGYKCSAgaXMgdXNlZCB3aXRoIGEgcnVudGltZS1nZW5lcmF0ZWQgZm9ybWF0IHN0cmluZyBpbiBvdXIKCSAgdmFzbnByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCjIwMTMtMDQtMDcgMTg6MjE6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogZml4IHVwIGRvZGd5IHVzZSBvZiAjaWYgSEFWRV9GT08gYW5kICNpZiAhSEFWRV9GT08KCSAgU2hvdWxkIHVzZSAjaWZkZWYgYW5kICNpZm5kZWYuCgoyMDEzLTA0LTA3IDE3OjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSAgcHJpbnRmOiBtYXJrIGludGVybmFsIGZ1bmN0aW9ucyBhcyBpbnRlcm5hbAoKMjAxMy0wNC0wNyAxNzoyOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50Zjogc2tpcCBwb2ludGVyIGV4dGVuc2lvbiBzaWduaWZpZXIgY2hhcnMgYWZ0ZXIgJXAKCSAgU28gdGhleSBkb24ndCBnZXQgcHJpbnRlZCBhZnRlciB0aGUgc2VyaWFsaXNlZCBwb2ludGVyIHN0cmluZy4KCjIwMTMtMDQtMDcgMTc6MjE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBkb24ndCBsZWFrIHNlcmlhbGlzZWQgcG9pbnRlciBleHRlbnNpb24gc3RyaW5ncwoKMjAxMy0wNC0wNyAxNzowMjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkgIHByaW50ZjogaGFuZGxlIG9sZCBHU1RfUFRSX0ZPUk1BVCAlUCBhbmQgR1NUX1NFR01FTlRfRk9STUFUICVRIGRlZmluZXMgdG9vCgkgIEZvciBiaW5hcnkgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEzLTA0LTA3IDE2OjQxOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmg6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IG1ha2UgcHJpbnRmIHBhcnNlciByZWNvZ25pc2Ugb3VyIHBvaW50ZXIgZXh0ZW5zaW9uIGZvcm1hdAoJICBhbmQgY2FsbCB0aGUgaG9vayB0byBnZXQgYSBzdHJpbmcgZm9yIHRoZSBwb2ludGVyIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTg6Mjg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9wcmludGYtZXh0ZW5zaW9uLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWV4dGVuc2lvbi5oOgoJICBwcmludGY6IGFkZCBpbmZyYXN0cnVjdHVyZSBmb3IgcG9pbnRlciBleHRlbnNpb25zIGhvb2sKCSAgRG9lcyBub3QgZG8gYW55dGhpbmcgeWV0LiBPbiBhIHNpZGVub3RlLCB3ZSBjYW4ndCBqdXN0IHVzZQoJICAlcFwwMDEgb3Igc28gdG8gc2lnbmFsIHRoZSBleHRlbnNpb24gYmVjYXVzZSBnLWkgY29tcGxhaW5zCgkgIGFib3V0IGFuIGludmFsaWQgYXNjaWkgY2hhcmFjdGVyIHRoZW4sIHNvIGhhdmUgdG8gcmVzb3J0IHRvCgkgIHNvbWV0aGluZyBtb3JlIGVsYWJvcmF0ZSwgc3VjaCBhcyAlcFxhQSBldGMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDMtMzAgMTc6MjA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogdXNlIG5ldyBpbnRlcm5hbCBwcmludGYgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnRpbmcKCSAgYW5kIHJlbW92ZSBhbGwgdGhlIHByaW50ZiBleHRlbnNpb24vc3BlY2lmaWVyIHN0dWZmIGZvcgoJICB0aGUgc3lzdGVtIHByaW50Zi4gTmV4dCB3ZSBuZWVkIHRvIGFkZCBiYWNrIHRoZSBjdXN0b20KCSAgc3BlY2lmaWVycyB0byBvdXIgb3duIHByaW50ZiBpbXBsZW1lbnRhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxNToxMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJKiBnc3QvcHJpbnRmL1JFQURNRToKCSogZ3N0L3ByaW50Zi9hc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi9nc3QtcHJpbnRmLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5oOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi5oOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmg6CgkgIHByaW50ZjogYWRkIG91ciBvd24gcHJpbnRmIGltcGxlbWVudGF0aW9uIGZvciBkZWJ1ZyBsb2dnaW5nCgkgIFdlIHdpbGwgYWRkIHN1cHBvcnQgZm9yIG91ciBvd24gcHJpbnRmIG1vZGlmaWVycywgc28gd2UgY2FuCgkgIGdldCBuaWNlIGRlYnVnIGxvZyBvdXRwdXQgb24gYWxsIG9wZXJhdGluZyBzeXN0ZW1zIGlycmVzcGVjdGl2ZQoJICBvZiB0aGUgc3BlY2lmaWMgbGliYyB2ZXJzaW9uIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTMwODEKCjIwMTMtMDQtMTIgMTY6MTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCB0cmlnZ2VyaW5nIGFuIGFzc2VydGlvbgoJICBXaGVuIGRlc2VyaWFsaXphdGlvbiBvZiB0aGUgc3RydWN0dXJlIGZhaWxzLCByZXR1cm4gYSBOVUxMIHRhZ2xpc3QgaW5zdGVhZCBvZgoJICBhc3NlcnRpbmcuCgoyMDEzLTA0LTExIDE0OjU0OjMyICswMjAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGFkZCBwb2ludGVyIG1hcmsgdG8gc2lnbmFsIGFuZCBhY3Rpb24gcmV0dXJuIHR5cGVzIHRoYXQgYXJlIHBvaW50ZXJzCgkgIFdoZW4gdGhlIHJldHVybiB0eXBlIG9mIGEgc2lnbmFsIG9yIGFjdGlvbiBpcyBhIHBvaW50ZXIsIGl0CgkgIHNob3VsZCBoYXZlIGFuIGFzdGVyaXNrIHRvIG1hcmsgaXQgYXMgc3VjaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Nzc5MQoKMjAxMy0wNC0xMSAyMjozMjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZG9jdW1lbnQgdHlwZSBjaGFuZ2Ugb2YgcGxheWJpbidzIGNvbm5lY3Rpb24tc3BlZWQgcHJvcGVydHkgaW4gcG9ydGluZyBkb2NzCgoyMDEzLTA0LTExIDE0OjMxOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBfZ3N0X21heF9tZW1vcnkoKSBmdW5jdGlvbgoJICBBZGQgdGhlIGEgZnVuY3Rpb24gdG8gcXVlcnkgdGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBibG9ja3MgdGhhdCBjYW4gYmUKCSAgYWRkZWQgdG8gYSBidWZmZXIuIEFsc28gaW1wcm92ZSB0aGUgZG9jcyBmb3IgX2luc2VydF9tZW1vcnkoKS4KCjIwMTMtMDQtMTEgMTQ6MDQ6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogbm90aWZ5IG9mIGNoYW5nZWQgYm91bmQgYWRkcmVzcwoJICBOb3RpZnkgd2hlbiB0aGUgYm91bmQgYWRkcmVzcyBpcyBrbm93biwganVzdCBsaWtlIHRoZSBwb3J0LgoKMjAxMy0wNC0xMSAxMzo1NTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBoYW5kbGUgUFJPR1JFU1MgbWVzc2FnZXMKCSAgV2FpdCBmb3IgYWxsIFBST0dSRVNTIG1lc3NhZ2VzIChpZiBhbnkpIHRvIGNvbXBsZXRlIGJlZm9yZSBnb2luZyB0byB0aGUgUExBWUlORwoJICBzdGF0ZS4gVGhpcyBpcyB0aGUgb25seSB3YXkgd2UgY2FuIHdhaXQgZm9yIGxpdmUgZWxlbWVudHMgdG8gY29tcGxldGUgdGhlaXIKCSAgb3BlcmF0aW9ucy4KCSAgVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgZWxlbWVudHMgbGlrZSBydHNwc3JjIHRoYXQgZG8gc29tZSBhc3luY2hyb25vdXMgbmV0d29yawoJICByZXF1ZXN0cyBhcyBwYXJ0IG9mIGdvaW5nIHRvIHRoZSBQQVVTRUQgc3RhdGUuIEl0IGNvdWxkIGJlIHBvc3NpYmxlIHRoYXQgaXQsIGZvcgoJICBleGFtcGxlLCBwcm92aWRlcyBhIGNsb2NrIGFuZCB0aGVuIHdlIHdvdWxkIGxpa2UgdG8gd2FpdCB1bnRpbCBpdCBjb21wbGV0ZXMKCSAgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBwcm92aWRlZCBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDEzLTA0LTExIDE1OjA1OjA4ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBUb2dnbGUgdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0gaW4gUkVDT05GSUdVUkUgcGFyYWdyYXBoLgoKMjAxMy0wNC0xMSAxMDoxMToyNSArMTIwMCAgRG91Z2xhcyBCYWduYWxsIDxkb3VnbGFzQHBhcmFkaXNlLm5ldC5uej4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgR3N0Q29sbGVjdFBhZHMgZG9jdW1lbnRhdGlvbjogZ3N0X2NvbGxlY3RfcGFkc19yZWFkIGlzIGdvbmUuCgoyMDEzLTA0LTEwIDIxOjI0OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0aGUgcHJlY29uZGl0aW9uIGZvciBnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKCkKCSAgVXNlIHRoZSByaWdodCB2YXJpYWJsZSBhbmQgaW52ZXJ0IHRoZSB0ZXN0LiBUaGUgcHJlY29uZGl0aW9uIHNob3VsZCBjYXRjaAoJICBzb21lb25lIGNhbGxpbmcgdG8gb25jZSB0b28gb2Z0ZW4uCgoyMDEzLTA0LTA5IDE5OjM3OjA2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEluaXQgZGVidWcgY2F0ZWdvcnkgYmVmb3JlIGV2ZXIgdXNpbmcgaXQKCjIwMTMtMDQtMDkgMjA6NTk6MzYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA0YzdhMWUgdG8gYWVkODdhZQoKMjAxMy0wNC0wMyAyMTozMjo1NCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBVc2UgeGxzdHByb2MgaW5zdGVhZCBvZiBkb2Nib29rMmh0bWwKCjIwMTMtMDQtMDkgMTA6MTc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGJpbmQgc29ja2V0IGJlZm9yZSBxdWVyeWluZyBsb2NhbCBhZGRyZXNzCgkgIEZhaWxzIG9uIHdpbmRvd3Mgb3RoZXJ3aXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjA4CgoyMDEzLTA0LTA4IDEzOjE0OjM1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBbHNvIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lIGluIGxpYnB0aHJlYWQKCSAgbGlid2lucHRocmVhZHMgcHJvdmlkZXMgUE9TSVggdGltZSBBUEkuCgkgIEl0IGFsc28gcHJvdmlkZXMgbGlicHRocmVhZCBhbGlhcyBmb3IgaXRzZWxmLCBmb3IgY29tcGF0aWJpbGl0eSwgc28gdGhhdAoJICBpcyB3aGF0IHdlIHdpbGwgbGluayB3aXRoLgoJICBGaXhlcyAjNjk3NTUwCgoyMDEzLTA0LTA4IDE1OjMwOjA3ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgY2xvY2s6IERvIHVzZSBIQVZFX0NMT0NLX0dFVFRJTUUKCSAgRml4ZXMgIzY5NzU0OQoKMjAxMy0wNC0wOCAxNDo0MjoxNSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSAgbGlic2FiaTogU3BlY2lhbCBzdHJ1Y3Qgc2l6ZSB2YWx1ZXMgZm9yIFczMgoJICBUaGVzZSBhY2NvdW50IGZvciBib3RoIHBvc3NpYmxlIHR5cGUgc2l6ZSBtaXNtYXRjaCBBTkQgLW1tcy1iaXRmaWVsZHMKCSAgcGFja2luZy4gU2l6ZXMgYXJlIHRha2VuIGZyb20gYW4gaTY4Ni13NjQtbWluZ3czMi1idWlsdCBHU3RyZWFtZXIsCgkgIGdjYyA0LjguMCwgbWluZ3ctdzY0IHN2bi1yNTY4NS4KCSAgRml4ZXMgIzY5NzU1MQoKMjAxMy0wNC0wOSAwOToyMjozOSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggR3N0UGFkIHRlc3Qgb24gd2luZG93cyBhbmQgaW4gQ0tfRk9SSz1ubyBtb2RlCgkgIE5lZWQgdG8gY2xlYXIgYnVmZmVyIGxpc3RzIGF0IHRoZSBlbmQgb2YgZWFjaCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjEwCgoyMDEzLTA0LTA2IDE2OjA5OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRml4IHNwYWNlIGluIGZhdWx0IG1lc3NhZ2UKCjIwMTMtMDQtMDYgMjI6MTA6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IENvcHkgQU5ZIGZsYWcgd2hlbiBjb3B5aW5nIGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTA2IDIxOjQ5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGNhcHM6IEhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBwcm9wZXJseSBpbiBtb3JlIHBsYWNlcwoKMjAxMy0wNC0wNiAyMToyMTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgdGVzdCBmb3Igb3BlcmF0aW9ucyBvbiBjYXBzIHdpdGggQU5ZIGZlYXR1cmVzCgoyMDEzLTA0LTA2IDIxOjA5OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFByb3Blcmx5IGhhbmRsZSBBTlkgY2FwcyBmZWF0dXJlcyBpbiBjYXBzIG9wZXJhdGlvbnMKCjIwMTMtMDQtMDUgMjE6MTA6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogdXBkYXRlIHNpZ25hbCBkb2NzIGZvciBnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24oKQoKMjAxMy0wNC0wNSAxMDoxNTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBpZ25vcmUgZW1wdHkgbm90LWxpbmtlZCBxdWV1ZXMKCSAgV2UgbmVlZCB0byBpZ25vcmUgdGhlIG5vdC1saW5rZWQgcXVldWVzIGluIHRoZSB1bmRlcnJ1biBhbmQgb3ZlcnJ1biBjYWxsYmFja3MKCSAgYmVjYXVzZSB0aGV5IGFyZSBleHBlY3RlZCB0byBiZSBlbXB0eS4KCjIwMTMtMDQtMDQgMjM6MTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY2FwcyBmZWF0dXJlIGxlYWsKCSAgRml4ZXMgbGVha3MgaW4gMTQgY29yZSB1bml0IHRlc3RzIGluY2x1ZGluZwoJICBnc3QvZ3N0Y2Fwcy4KCjIwMTMtMDQtMDQgMTk6MTY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxOTowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHN0YXJ0IHB1c2hpbmcgYWdhaW4gb24gUkVDT05GSUdVUkUKCSAgV2hlbiB3ZSBnb3QgTk9UX0xJTktFRCBiZWZvcmUgYW5kIHdlIHJlY2VpdmUgYSBSRUNPTkZJR1VSRSBldmVudCwgc3RhcnQgcHVzaGluZwoJICBhZ2FpbiBvbiB0aGUgc291cmNlIHBhZC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDQKCjIwMTMtMDQtMDQgMTc6NTk6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogc2ltcGxpZnkgaXNfc3Vic2V0IGNoZWNrCgkgIEl0ZXJhdGUgb3ZlciB0aGUgZmllbGRzIG9mIHRoZSBzdXBlcnNldCBpbnN0ZWFkIG9mIHRob3NlIG9mIHRoZSBzdWJzZXQuCgkgIFRoaXMgd2F5IHdlIGNhbiBjaGVjayB0aGUgcHJlc2VuY2Ugb2YgdGhlIHN1YnNldCBmaWVsZCBhbmQgZG8gdGhlIHN1YnNldCBjaGVjawoJICBpbiBvbmUgaXRlcmF0aW9uLgoKMjAxMy0wNC0wNCAxNzo0NjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVwZGF0ZSBkb2NzLCBpc19zdWJzZXQoKSB3b3JrcyBub3cKCjIwMTMtMDQtMDQgMTY6Mzk6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggZG9jcwoKMjAxMy0wNC0wNCAxNjoyMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKQoJICBSZXdpcmUgc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgYW5kIGV4cG9zZSBhIG5ldwoJICBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpIGZ1bmN0aW9uLgoJICBBUEk6IGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkKCjIwMTMtMDQtMDQgMTU6NDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xhcmlmeSBkb2NzCgoyMDEzLTA0LTA0IDE1OjQ1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWcKCjIwMTMtMDQtMDQgMTA6MTc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCBXQVJOLCBqdXN0IERFQlVHCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY5MTEKCjIwMTMtMDMtMzAgMTE6MDY6NTkgKzAwMDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IEZpeCBzZWVraW5nIHdoZW4gcG9zaXRpb24gaXMgc2xpZ2h0bHkgb3V0c2lkZSB0aGUgc2VnbWVudAoJICBWZXJ5IG9mdGVuLCB3aGVuIHRoZSBlbmQgb2YgYSBzZWdtZW50IGlzIGRldGVjdGVkIGJ5IGRlbXV4ZXIsIHRoZSBwb3NpdGlvbgoJICBpcyBzbGlnaHRseSBvdXRzaWRlIHRoZSBzZWdtZW50IGJvdW5kYXJpZXMuIEN1cnJlbnRseSwgaWYgdGhhdCBpcyB0aGUgY2FzZQoJICB0aGUgYmFzZSB3aWxsIGJlIHNldCB0byBOT05FIGluc3RlYWQgb2Ygbm9ybWFsIGFjY3VtdWxhdGlvbi4gVGhpcyB3b3VsZAoJICBicmVhayBub24tZmx1c2hpbmcgc2Vla3MgaW4gb2dnZGVtdXggYW5kIG1vc3QgbGlrZWx5IG90aGVyIGRlbXV4ZXJzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2ODk5CgoyMDEzLTA0LTAzIDE3OjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMy0wNC0wMyAxNjowMjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgc3RyZWFtIGZsYWdzCgoyMDEzLTA0LTAyIDE4OjE3OjAwIC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IHN1YnRpdGxlIHRleHQgbWVkaWEgdHlwZXMgY2hhbmdlZCBhcyB3ZWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcxNTMKCjIwMTMtMDQtMDIgMjM6NTE6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBkb2NzOiBtb3JlIHNpbmNlIG1hcmtlcnMgYW5kIG90aGVyIGRvY3MgZml4ZXMKCjIwMTMtMDQtMDIgMjM6MjE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGRvY3M6IGFkZCBzaW5jZSBtYXJrZXJzIHRvIGNhcHNmZWF0dXJlcyBkb2NzCgoyMDEzLTA0LTAyIDIzOjE4OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBhZGQgc29tZSBtb3JlIG1vZHVsZXMgdG8gZ2l0LXVwZGF0ZS5zaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MDU4CgoyMDEzLTA0LTAyIDIzOjA0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHVuaW5zdGFsbGVkIG9yYy9vcmMtdGVzdC8ubGlicyB0byBsaWJyYXJ5IHBhdGhzCgkgIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSB1bml0IHRlc3RzIGluIGdzdC1wbHVnaW5zLWJhc2UsIC1nb29kIGV0Yy4KCSAgU3BvdHRlZCBieSBBbGV4IEtheWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcwOTMKCjIwMTMtMDQtMDIgMjI6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBBZGQgR1NUX0NBUFNfRkVBVFVSRVNfQU5ZCgkgIFRoaXMgaXMgZXF1YWwgdG8gYW55IG90aGVyIGNhcHMgZmVhdHVyZXMgYnV0IHJlc3VsdHMgaW4gdW5maXhlZCBjYXBzLiBJdAoJICB3b3VsZCBiZSB1c2VkIGJ5IGVsZW1lbnRzIHRoYXQgb25seSBsb29rIGF0IHRoZSBidWZmZXIgbWV0YWRhdGEgb3IgYXJlCgkgIGN1cnJlbnRseSB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUsIGFuZCBhcyBzdWNoIGRvbid0IGNhcmUgYWJvdXQgYW55CgkgIHNwZWNpZmljIGZlYXR1cmVzLgoKMjAxMy0wNC0wMSAyMjoxMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1pbm9yIGNvc21ldGljIGNoYW5nZXMKCSAgTGV0J3Mgbm90IHVzZSB1Z2x5IGxlYWRpbmcgdW5kZXJzY29yZXMgZm9yCgkgIHN0YXRpYyBmdW5jdGlvbnMuCgoyMDEzLTA0LTAxIDIxOjIzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IG9iamVjdCBwcmludGluZyBvZiBjYXBzIGZlYXR1cmVzIGluIGRlYnVnIGxvZwoKMjAxMy0wNC0wMSAxNjozODo0MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkcmFmdC10cmFjaW5nOiB1cGRhdGUgZHJhZnQgZGVzaWduIHdpdGggdGltZXIgaWRlYXMKCjIwMTMtMDMtMzAgMTc6MDM6NDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiByZWZhY3RvciBwcmV0dHkgcHJpbnRpbmcgb2JqZWN0cwoJICBFeHRyYWN0IGZvcm1hdHRlcnMgaW50byBsb2NhbCBmdW5jdGlvbnMuIENoYW5nZSB0aGUgc3RydWN0dXJlIGZpbHRlcmluZyBzbyB0aGF0CgkgIGl0IHdvcmtzIGZvciB0YWdsaXN0cyB0b28uCgoyMDEzLTAzLTMwIDE2OjM5OjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogbWFrZSBwb3N0X21lc3NhZ2UgYW5kIHF1ZXJ5IG1vcmUgYWxpa2UKCjIwMTMtMDQtMDEgMTA6MjA6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFByaW50IGNhcHMgZmVhdHVyZXMgdG9vCgoyMDEzLTA0LTAxIDEwOjE5OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBGb3IgY29weWluZyBmZWF0dXJlcyBpdCdzIG5vdCByZXF1aXJlZCB0byBoYXZlIG5vIHBhcmVudCByZWZjb3VudAoKMjAxMy0wNC0wMSAxMDoxOTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTZXQgZmVhdHVyZXMnIHBhcmVudCByZWZjb3VudCBpbiBnc3RfY2Fwc19zZXRfZmVhdHVyZXMoKSB0b28KCjIwMTMtMDQtMDEgMTA6MTg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogU2V0IHN5c21lbSBmZWF0dXJlcyBpZiBleHBsaWNpdGVseSByZXF1ZXN0ZWQKCjIwMTMtMDMtMzEgMTk6MDk6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgZGVzaWduOiBBZGQgdGhlIGNhcHMgZmVhdHVyZXMgYW5kIGRlc2NyaWJlIGhvdyB0aGUgY2FwcyBvcGVyYXRpb25zIGFjdHVhbGx5IHdvcmsKCjIwMTMtMDMtMzAgMTU6MzU6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IEFkZCBuZXcgZGF0YSB0eXBlIGZvciBoYW5kbGluZyBjYXBzIGZlYXR1cmVzIHRvIHRoZSBjYXBzCgkgIFRoZXNlIGFyZSBtZWFudCB0byBzcGVjaWZ5IGZlYXR1cmVzIGluIGNhcHMgdGhhdCBhcmUgcmVxdWlyZWQKCSAgZm9yIGEgc3BlY2lmaWMgc3RydWN0dXJlLCBmb3IgZXhhbXBsZSBhIHNwZWNpZmljIG1lbW9yeSB0eXBlCgkgIG9yIG1ldGEuCgkgIFNlbWFudGljYWxseSB0aGV5IGNvdWxkIGJlIHRob3VnaCBvZiBhcyBhbiBleHRlbnNpb24gb2YgdGhlIG1lZGlhCgkgIHR5cGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlcyBhbmQgYXJlIGhhbmRsZWQgZXhhY3RseSBsaWtlIHRoYXQuCgoyMDEzLTAzLTMxIDE1OjMwOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgU0VMRUNUIGFuZCBVTlNFTEVDVCBzdHJlYW0gZmxhZ3MgZm9yIHN0cmVhbS1zdGFydCBldmVudAoJICBTbyBkZW11eGVycyBjYW4gc2lnbmFsIHdoaWNoIGF1ZGlvL3ZpZGVvL3N1YnRpdGxlIHN0cmVhbXMgc2hvdWxkCgkgIGJlIHNlbGVjdGVkIGJ5IGRlZmF1bHQgYW5kIHdoaWNoIHNob3VsZCBub3QgYmUgc2VsZWN0ZWQKCSAgYXV0b21hdGljYWxseS4KCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU0VMRUNUCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX1VOU0VMRUNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5NjgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkxMQoKMjAxMy0wMS0wNiAyMDoyNzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIHN0cmVhbSBmbGFncyB0byBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgQVBJOiBnc3RfZXZlbnRfc2V0X3N0cmVhbV9mbGFncygpCgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9mbGFncygpCgkgIEFQSTogR1NUX1NUUkVBTV9GTEFHX05PTkUKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfU1BBUlNFCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2NDgKCjIwMTMtMDMtMzEgMTE6MjY6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogQWRkIEFQSSB0byBnZXQgdGhlIGxhc3Qgc2V0IGNvbnRleHQgZnJvbSBhbiBlbGVtZW50CgkgIEVsZW1lbnRzIHNob3VsZCBvdmVycmlkZSBHc3RFbGVtZW50OjpzZXRfY29udGV4dCgpIGFuZCBhbHNvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoKSB0byBrZWVwIHRoaXMgY29udGV4dCB1cC10by1kYXRlIHdpdGgKCSAgdGhlIHZlcnkgbGF0ZXN0IGNvbnRleHQgdGhleSBpbnRlcm5hbGx5IHVzZS4KCjIwMTMtMDMtMzAgMTQ6MDQ6MjggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiBhZGQgaW5pdGlhbCB0cmFjaW5nIGRlc2lnbiBkb2MKCjIwMTMtMDMtMzAgMTE6NDc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IExldCBnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMoKSBwYXNzIHRoZSBjYXBzIG93biBjYXBzIGFzIGZpbHRlcgoJICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FwcyBjcmVhdGVkIGRvd25zdHJlYW0gYW5kIHdlIGRvbid0CgkgIG5lZWQgdG8gaW50ZXJzZWN0IGluIHRoZSB2ZXJ5IGVuZCB3aXRoIHRoZSBwYWQncyBvd24gY2Fwcy4KCjIwMTMtMDMtMzAgMTA6MjQ6MjcgKzAxMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeGVzIGNvbXBpbGVyIHdhcm5pbmcKCSAgZ3N0YmFzZXNpbmsuYzogSW4gZnVuY3Rpb24gJ2dzdF9iYXNlX3NpbmtfY2hhaW5fdW5sb2NrZWQnOgoJICBnc3RiYXNlc2luay5jOjMyMDQ6IHdhcm5pbmc6ICdyZXQnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoKMjAxMy0wMy0yOSAxOTowMTo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBnaXIgd2FybmluZwoKMjAxMy0wMy0yOSAxODo0OToxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBSZXZlcnQgInB3ZzogRml4IGV4YW1wbGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWQ2NGYyN2Q4ODEyNzRhNDBmMDQ0MWJiOGM1YjM4MTZmZGZjNWI5ZS4KCSAgKnNpZ2gqCgoyMDEyLTExLTA2IDA5OjQxOjU4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogRml4IGV4YW1wbGUKCjIwMTItMTEtMTEgMTM6NTI6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSBTRUdNRU5UIHN0aWNreSBldmVudHMgd2hlbiBmbHVzaGluZwoJICBXaGVuIGZsdXNoaW5nLCBpdCBpcyBleHBlY3RlZCB0aGF0IHVwc3RyZWFtIHdpbGwgc2VuZCBhIFNFR01FTlQKCSAgZXZlbnQgYWZ0ZXJ3YXJkcy4KCSAgVGhpcyBhbHNvIGF2b2lkcyBzdHJheSBTRUdNRU5UIGV2ZW50cyBmcm9tIGNvbWluZyB0aHJvdWdoIGFmdGVyIGEKCSAgZmx1c2guCgoyMDEzLTAzLTI4IDE1OjM1OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3Q6IEFkZCBuZXcgR3N0Q29udGV4dCBtaW5pb2JqZWN0IGZvciBzaGFyaW5nIGNvbnRleHRzIGluIGEgcGlwZWxpbmUKCjIwMTMtMDMtMjggMTY6NDI6NTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJICBhcmdiLWNvbnRyb2xiaW5kaW5nOiBmaXggbWVzc2VkIHVwIHByb3BlcnR5IHNldHRlcgoJICBUaGlzIHdhcyBtaXNhc3NpZ25pbmcgdGhlIGNvbnRyb2wgc291cmNlcy4gSXQgd2FzIGFsc28gbGVha2luZyB0aGUgb2xkIHZhbHVlcyBpZgoJICBhIGNvbnRyb2wgc291cmNlIHdvdWxkIGJlIHJlcGxhY2VkLgoKMjAxMy0wMy0yNyAxODoyNTowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBuZXh0X3B0cyB1cG9uIFNFR01FTlQgZXZlbnQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4MQoKMjAxMy0wMi0yNiAxOTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb3JlIGludGVyLXRpbWVzdGFtcCB0cmFja2luZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAzLTI2IDE5OjIyOjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogQWRkIGFubm90YXRpb25zIGFuZCBweWdpIGZyaWVuZGx5IGV4dHJhY3Rpb24gZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnVmZmVyX2V4dHJhY3RfZHVwCgoyMDEzLTAzLTI3IDE3OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBob3BlZnVsbHkgY2xhcmlmeSBhIGxpdHRsZQoKMjAxMy0wMy0yNSAxODoxMTo1NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgVXBkYXRlIGRvY3MgZm9yIGdzdF9wYWRfY3JlYXRlX3N0cmVhbV9pZF9wcmludGYoKQoJICBUbyBpbmRpY2F0ZSB0aGF0IGZvcm1hdCBzdHJpbmdzIHNob3VsZCBiZSBhbHBoYSBzb3J0YWJsZS4KCjIwMTMtMDMtMjUgMDk6MTY6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIHVuaXQgdGVzdCBmb3IgR1NUX0NBUFNfe0FOWSxOT05FfSBhbmQgR1NUX1NUQVRJQ19DQVBTX3tBTlksTk9ORX0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yNSAwOToxOToyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggZ3N0X3N0YXRpY19jYXBzX2dldChHU1RfU1RBVElDX0NBUFNfTk9ORSkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjQzNQoKMjAxMy0wMy0yMSAyMTowMDo1NCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3Qgc2VuZCBlcnJvciBpZiBuZWdvdGlhdGUgZmFpbHMgYmVjYXVzZSB3ZSBhcmUgZmx1c2hpbmcKCSAgTmVnb3RpYXRpb24gbWF5IGJlIGFib3J0ZWQgYnkgYSBmbHVzaCBmcm9tIGFub3RoZXIgdGhyZWFkIHRoYXQgbmVlZCB0bwoJICBzdG9wIHRoZSB0YXNrIChpLmUuIHNlZWspLiBDaGVjayB0aGF0IGNhc2UgYW5kIHNpbGVudGx5IHBhdXNlIHRoZSB0YXNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzU3CgoyMDEzLTAzLTI0IDE3OjUzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogc29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMKCjIwMTMtMDMtMjIgMjA6MDI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIHF1ZXJ5IGZ1bmN0aW9uIGV4YW1wbGUgaW4gUGx1Z2luIFdyaXRlcidzIEd1aWRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYxNDIKCjIwMTMtMDMtMDcgMTI6MTE6MzAgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogZml4IHNwdXJpb3VzIGZhaWx1cmUgaW4gdGVzdF9jb2xsZWN0IGNvbGxlY3RwYWRzIHRlc3QKCSAgcG9wKCkgaW4gY29sbGVjdGVkIGNhbGxiYWNrLgoJICBUaGVyZSB3ZXJlIHRocmVlIHRocmVhZHMgaW4gdGhlIHRlc3QgY2FzZXMgdGhhdCBoYW5nZWQ6IHRoZSB0ZXN0IHRocmVhZCBhbmQgdHdvCgkgIHRocmVhZHMgdGhhdCBwdXNoIGJ1ZmZlcnMuIEVhY2ggdGhyZWFkIHB1c2ggb25lIGJ1ZmZlciBvbiBvbmUgcGFkLiBUaGVyZSBhcmUKCSAgdHdvIHBhZHMgaW4gdGhlIGNvbGxlY3RwYWRzIHNvIHRoZSBzZWNvbmQgYnVmZmVyIHdpbGwgdHJpZ2dlciB0aGUKCSAgY29sbGVjdC1jYWxsYmFjay4KCSAgVGhpcyBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgaGFuZyBvY2N1cnM6CgkgIFRoZSBmaXJzdCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBpbml0aWFsaXplcyBhIGNvb2tpZSB0byB0aGUgdmFsdWUgb2YgYQoJICBjb3VudGVyIGluIHRoZSBjb2xsZWN0cGFkcyBvYmplY3QgYW5kIHdhaXRzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlCgkgIGFuZCBmb3Igc29tZW9uZSB0byBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4KCSAgVGhlIHNlY29uZCB0aHJlYWQgcHVzaGVzIGEgYnVmZmVyIGFuZCBjYWxscyB0aGUgY29sbGVjdGVkIGNhbGxiYWNrLCB3aGljaAoJICBzaWduYWxzIHRoZSBjb25kIHRoYXQgdGhlIHRlc3QgdGhyZWFkIGlzIHdhaXRpbmcgZm9yLgoJICBUaGUgdGVzdCB0aHJlYWQgcG9wcyBib3RoIGJ1ZmZlcnMgKHdpdGhvdXQgaG9sZGluZyBhbnkgbG9jaykuIEVhY2ggY2FsbCB0bwoJICBfcG9wKCkgaW5jcmVhc2VzIHRoZSBjb3VudGVyIGJyb2FkY2FzdHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRoZSBmaXJzdCB0aHJlYWQgaXMKCSAgbm93IHdhaXRpbmcgZm9yLiBJdCB0aGVuIGpvaW5zIGJvdGggdGhyZWFkcyAoaGFuZ3MpLgoJICBUaGUgZmlyc3QgdGhyZWFkIHdha2VzIHVwIGFuZCByZXR1cm5zLCBzaW5jZSBpdHMgYnVmZmVyIGhhcyBiZWVuIGNvbnN1bWVkLgoJICBUaGUgc2Vjb25kIHRocmVhZCBzdGFydHMgZXhlY3V0aW5nIGFnYWluLiBXaGVuIHRoZSBjYWxsYmFjaywgY2FsbGVkIGJ5IHRoZQoJICBzZWNvbmQgdGhyZWFkLCBoYXMgcmV0dXJuZWQgaXQgaW5pdGlhbGl6ZXMgYSBjb29raWUgdG8gdGhlIHZhbHVlIG9mIGEgY291bnRlciwKCSAgd2hpY2ggaGFzIGFscmVhZHkgcHJlbWF0dXJlbHkgYmVlbiBpbmNyZWFzZWQgYnkgdGhlIHRlc3QgdGhyZWFkIHdoZW4gaXQgcG9wcGVkCgkgIHRoZSBidWZmZXJzLCBhbmQgd2FpdCdzIG9uIGEgY29uZCBmb3IgdGhlIGNvdW50ZXIgdG8gY2hhbmdlIGFuZCBmb3Igc29tZW9uZSB0bwoJICBjb25zdW1lIHRoZSBidWZmZXIgKGkuZS4gX3BvcCgpIGl0KS4gU2luY2UgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIHBvcGVkCgkgIGFuZCB0aGUgY291bnRlciBoYXMgYWxyZWFkeSBiZWVuIGluY3JlYXNlZCBpdCB3aWxsIGJlIHN0dWNrIGZvcmV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU1NTUKCjIwMTMtMDMtMTYgMTI6MDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgZmZtcGVnIGxpYnMgZnJvbSBkeW5hbWljIGxpbmtlciBwYXRocwoJICBXZSBsaW5rIHRob3NlIGxpYnMgaW50byB0aGUgcGx1Z2luIHN0YXRpY2FsbHksIG9yIHVzZSBleHRlcm5hbAoJICBzeXN0ZW0gbGlicywgYnV0IG5ldmVyIHRoZSBpbnRlcm5hbCBzbmFwc2hvdCBkeW5hbWljYWxseS4KCjIwMTMtMDMtMTYgMTI6MDA6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LWVkaXRpbmctc2VydmVzIHRvIEdJX1RZUEVMSUJfUEFUSAoJICBTbyBweWdpIGNhbiBmaW5kIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTM3CgoyMDEzLTAzLTEyIDEzOjUzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogbWFrZSBzdXJlIHNsb3cgR1NUX1JFQURfVUlOVCogdmFyaWFudHMgZG9uJ3QgaGF2ZSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cwoJICBGaXhlcyB1bml0IHRlc3Qgb24gc3lzdGVtcyB3aGVyZSB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyBpcyBub3QgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU1OTkKCjIwMTMtMDMtMDUgMTE6MTQ6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGxhdW5jaDogZG9uJ3QgZXhpdCB0aGUgbG9vcCBvbiBidWZmZXJpbmcgaW4gcGF1c2VkCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGJ1ZmZlcmluZyBtZXNzYWdlIG9mIDEwMCUgaW4gdGhlIHBhdXNlZCBzdGF0ZSwgd2UgZXhpdAoJICB0aGUgZXZlbnRfbG9vcCBhbmQgbW92ZSB0byB0aGUgUExBWUlORyBzdGF0ZS4gV2hhdCBzaG91bGQgaGFwcGVuIGlzIHRoYXQKCSAgd2Ugd2FpdCBmb3IgYm90aCBBU1lOQy1ET05FIGFuZCAxMDAlIGJ1ZmZlcmluZyBiZWZvcmUgY29udGludWVpbmcuCgoyMDEzLTAzLTA4IDEzOjE1OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250cm9sbGVyLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgY29udHJvbGxlciBkZXNpZ24gYW5kIGFkZCBzb21lIHRob3VnaHMgZm9yIGZ1dHVyZSBzdHVmZgoKMjAxMy0wMy0wOCAwODoxMzowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZG9jczogbWVudGlvbiBjbGlwcGluZyBvZiB2YWx1ZXMgaW4gY29udHJvbC1iaW5kaW5nIGRvY3MKCjIwMTMtMDMtMDggMDg6MTA6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBjb2RlIGNsZWFudXBzCgkgIFVzZSBhIHByb3BlcnR5IGZvciBhY2Nlc3NpbmcgdGhlIGNvbnRyb2wtc291cmNlIG9uIHRoZSBiaW5kaW5nLiBEcm9wIGJhc2VfaW5pdAoJICBvbiB0aGUgdGVzdCBvYmplY3QuCgoyMDEzLTAzLTA3IDExOjQ2OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZ3N0X3F1ZXJ5X2dldF9uX2FsbG9jYXRpb25fcGFyYW1zKCkgcmV0dXJucyBhIG5ldyByZWYgdG8gdGhlIGFsbG9jYXRvcgoKMjAxMy0wMy0wNyAxMTozNTowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgYSBib2d1cyB0ZXN0CgkgIFdlIHByZXZpb3VzbHkgZm9yZ290IHRvIGluaXRpbGl6ZSB0aGUgYW1wbGl0ZGUgcHJvcGVydHkgdG8gdGhlIGRlZmF1bHQgYW5kIHRodXMgaXQgd2FzIDAuMC4gVGhlcmVmb3JlIGEgZGVmYXVsdCBsZm8gY29udHJvbHNvdXJjZSByZXR1cm5lZCBhIHNlcmllcyBvZiAwLjAgYW5kIHRoZSB0ZXN0IHdhcyBhc3NlcnRpbmcgb24gdGhhdC4KCjIwMTMtMDMtMDcgMDk6MTU6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogcmVsYXggdGhlIHBzcGVjIGZvciB0aGUgY29udHJvbC1zb3VyY2UKCSAgV2UgY2FuIGNoYW5nZSBjb250cm9sIHNvdXJjZXMgb24gY29udHJvbGJpbmRpbmdzLgoKMjAxMy0wMy0wNyAwOToxMjo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm86IHNldCBhIHNlbnNpYmxlIGxvd2VyIGJvdW5kYXJ5IGZvciB0aGUgZnJlcXVlbmN5CgkgIFVzZSBEQkxfTUlOLCB3aGljaCBpcyBhIHRoZSBzbWFsbGVzIGRvdWJsZSBncmVhdGVyIHRoYW4gemVybyB0aGF0IGlzIG5vdCBpbgoJICBkZW5vcm1hbCBmb3JtYXQuIFRoaXMgZXhwb3NlcyB0aGUgbGltaXQgYmV0dGVyIHRoYW4gdGhlIHJ1bnRpbWUgY2hlY2suCgoyMDEzLTAzLTA2IDIzOjU5OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyZGUyMjFjIHRvIDA0YzdhMWUKCjIwMTMtMDMtMDYgMTY6NDA6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogaW5pdCB0aGUgYW1wbGl0dWRlIHRvIHRoZSBkZWZhdWx0IGFuZCB1cGRhdGUgdGhlIGRvY3MKCjIwMTMtMDMtMDUgMTE6MzA6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIGFsbCB0aGUgYmFzZS9iYWQgbGlicmFyaWVzIGFuZCByZW1vdmUgb2Jzb2xldGUgb25lcwoKMjAxMy0wMy0wMyAxNjowMDoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoJICBSdW5uaW5nIHN1aXRlKHMpOiBHc3RCYXNlU2luawoJICA9PTIyMDIzPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQoJICA9PTIyMDIzPT0gICAgYXQgMHg1MDVGRkNFOiBnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzIChnc3RiYXNlc2luay5jOjE5MzYpCgkgID09MjIwMjM9PSAgICBieSAweDUwNjhDODA6IGdzdF9iYXNlX3NpbmtfZG9fc3luYyAoZ3N0YmFzZXNpbmsuYzoyMzc5KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDZCQ0QyOiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfd2FpdF9ldmVudCAoZ3N0YmFzZXNpbmsuYzoyOTAzKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MDYzM0E0OiBnc3RfYmFzZV9zaW5rX2RlZmF1bHRfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MjkxOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NkY1QzIxNjogZ3N0X2Zha2Vfc2lua19ldmVudCAoZ3N0ZmFrZXNpbmsuYzozODMpCgkgID09MjIwMjM9PSAgICBieSAweDUwNUYxNjQ6IGdzdF9iYXNlX3NpbmtfZXZlbnQgKGdzdGJhc2VzaW5rLmM6MzEwOCkKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTJGQTA5MDogZ3N0X3BhZF9zZW5kX2V2ZW50X3VuY2hlY2tlZCAoZ3N0cGFkLmM6NDgyMikKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTMwMzc1NjogZ3N0X3BhZF9zZW5kX2V2ZW50IChnc3RwYWQuYzo0OTg0KQoJICA9PTIyMDIzPT0gICAgYnkgMHg0MDE2NUI6IGJhc2VzaW5rX3Rlc3RfZ2FwIChiYXNlc2luay5jOjE0OCkKCjIwMTMtMDMtMDMgMTI6MDY6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBtZW1vcnkgY29weWluZyBsb2dpYyBpbiBjb3B5X2ludG8oKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1MDM1CgoyMDEzLTAzLTAzIDExOjI4OjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogVXNlIGNvcnJlY3QgcHJpbnQgZm9ybWF0IHNwZWNpZmllcnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEzLTAyLTIyIDE0OjIyOjAxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgRml4IG1pc3NwZWxsaW5ncyBvZiAnY29udGludW91cycKCjIwMTMtMDItMjIgMTQ6NTY6NDkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogdGFrZSBEVFMgaW50byBhY2NvdW50CgkgIEltcG9ydGFudGx5LCB0aGlzIHBhdGNoIGNvbnZlcnRzIERUUyB0byBydW5uaW5nIHRpbWUuICBMZXNzIGltcG9ydGFudGx5LAoJICBhbmQgcG9zc2libHkgYSBwcm9ibGVtIGZvciBzb21lIG11eGVycywgaXMgdGhhdCBpdCBvcmRlcnMgYnVmZmVycyBieQoJICBEVFMgKGlmIGl0IGlzIHZhbGlkLCBvdGhlcndpc2UgUFRTKS4gIFRoaXMgaXMgZ2VuZXJhbGx5IGNvcnJlY3QsIGJ1dAoJICBtaWdodCBiZSBzb21ld2hhdCBzdXJwcmlzaW5nIHRvIG11eGVycy4KCSAgQWxzbyBub3RlIHRoYXQgb25jZSBjb252ZXJ0ZWQgdG8gcnVubmluZyB0aW1lLCBEVFMgY2FuIGVuZCB1cCBuZWdhdGl2ZS4KCjIwMTMtMDItMjggMjI6NTk6NDMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiBpbXByb3ZlIHRoZSBjb250cm9sbGVyIGRvY3MgYSBsaXR0bGUgbW9yZQoJICBSZXdvcmQgc29tZSBzZWN0aW9ucy4gRXhwbGFpbiB2YWx1ZSBtYXBwaW5ncyBiZXR0ZXIuCgoyMDEzLTAyLTI4IDE5OjQwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGdzdC1saWJhdiB0byBwa2ctY29uZmlnIHBhdGgKCjIwMTMtMDItMjcgMjI6MTU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBzZWVraW5nOiBhZGQgbW9yZSBsb2dnaW5nIGZvciBzZWVraW5nCgkgIEVzcGVjaWFsbHkgYWRkIGxvZ2dpbmcgdG8gZXJyb3IgY29kZSBwYXRocy4KCjIwMTMtMDItMjcgMTA6MDk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogR3JhY2VmdWxseSBoYW5kbGUgZ3N0X21lbW9yeV9jb3B5KCkgcmV0dXJuaW5nIE5VTEwgd2l0aG91dCBjcmFzaGluZwoJICBnc3RfYnVmZmVyX2NvcHlfaW50bygpIGFuZCBnc3RfYnVmZmVyX3Jlc2l6ZV9yYW5nZSgpIGNhbiBub3cgZmFpbC4KCjIwMTMtMDItMjYgMTc6MzM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhbGxvY2F0b3I6IHNtYWxsIGludGVybmFsIGNsZWFudXBzCgkgIFJlbmFtZSBTeXN0ZW0gbWVtb3J5IGFsbG9jYXRvciB0byBHc3RBbGxvY2F0b3JTeXNtZW0gYW5kIHRoZSBtZW1vcnkgdG8KCSAgR3N0TWVtb3J5U3lzdGVtLgoKMjAxMy0wMi0yNiAxNTozNzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBtZXRob2QgdG8gY2hlY2sgbWVtb3J5IHR5cGUKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgbWVtb3J5IHdhcyBhbGxvY2F0ZWQgZnJvbSBhbiBhbGxvY2F0b3Igb2YKCSAgYSBnaXZlbiB0eXBlLgoJICBBUEk6IGdzdF9tZW1vcnlfaXNfdHlwZSgpCgoyMDEzLTAyLTI2IDE1OjM2OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDEzLTAyLTI2IDE1OjMyOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJICB1c2UgR1NUX01FU1NBR0VfRFVSQVRJT05fQ0hBTkdFRCBpbiBkb2NzIGFuZCBjb2RlCgoyMDEzLTAyLTI2IDE0OjQwOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGRvbid0IHVucmVmIGFsbG9jYXRvciB0b28gc29vbgoJICBVbnJlZiB0aGUgYWxsb2NhdG9yICphZnRlciogd2UgaGF2ZSBmcmVlZCB0aGUgbWVtb3J5LiBXZSBhbHNvIG5lZWQgdG8ga2VlcAoJICBhIHJlZiB0byB0aGUgYWxsb2NhdG9yIGFyb3VuZCBiZWNhdXNlIGZvbGxvd2luZyB0aGUgbm93IGZyZWVkIG1lbW9yeSB3b3VsZAoJICBsZWFkIHRvIGNyYXNoZXMuCgoyMDEzLTAyLTI2IDA5OjA4OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBGaXggaW52ZXJ0ZWQgbG9naWMgZm9yIGRlY2lkaW5nIGlmIG1lbW9yeSBzaG91bGQgYmUgc2hhcmVkIG9yIGNvcGllZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk0NzE3CgoyMDEzLTAyLTI2IDA3OjUwOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBtZW50aW9uIHNlZ21lbnQgYWNjdW11bGF0aW9uIGluIHRoZSBwb3J0aW5nIGd1aWRlCgkgIFRoaXMgbmVlZHMgbW9yZSBkZXRhaWwsIGJ1dCBhdCBsZWFzdCBnaXZlcyBwZW9wbGUgYSBoaW50IG9uIHRoZSBpc3N1ZS4KCjIwMTMtMDItMjYgMDc6NDg6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBkb2NzOiBzL3N0YXJ0L2RvbmUvIGNvcHknbidwYXN0ZSBtaXN0YWtlCgoyMDEzLTAyLTI1IDEzOjU3OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgbmV3IEFQSSB0byByZW1vdmUgYWxsb2NhdGlvbiBwYXJhbXMgYW5kIHBvb2xzIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkKCjIwMTMtMDItMjUgMTM6MjQ6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBEb2N1bWVudCB0aGF0IHRoZSBmaXJzdCBhbGxvY2F0b3IgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnkgc2hvdWxkIGFsbG93IG1hcHBpbmcgdG8gc3lzdGVtIG1lbW9yeQoKMjAxMy0wMi0yNCAwOToyNDoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgYWxsb2NhdG9yCgkgIE90aGVyd2lzZSB0aGUgYWxsb2NhdG9yIG1pZ2h0IGdldCBmcmVlZCB3aGlsZSBpdCdzIHN0aWxsIHVzZWQKCSAgYnkgdGhlIG1lbW9yeQoKMjAxMy0wMi0yNCAwOTozMzowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogSWYgc2hhcmluZyBhIEdzdE1lbW9yeSBmYWlscywgZmFsbCBiYWNrIHRvIGNvcHlpbmcgaXQKCjIwMTMtMDItMjMgMTg6MzY6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHBvcnRpbmctdG8tMS4wLnR4dDogc29tZSBlbGVtZW50IG5hbWVzIGhhdmUgY2hhbmdlZAoKMjAxMy0wMi0yMyAwODoxOTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogSXQncyBjb250aWd1b3VzLCBub3QgY29udGlub3VzCgoyMDEzLTAyLTIyIDEyOjQxOjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbmV3IG1lbW9yeSBmbGFnIHRvIHNwZWNpZnkgdGhhdCBtZW1vcnkgY2FuJ3QgYmUgbWFwcGVkCgoyMDEzLTAyLTIyIDA5OjAyOjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbWVtb3J5IGZsYWcgdG8gbWFyayBwaHlzaWNhbGx5IGNvbnRpbm91cyBtZW1vcnkKCjIwMTMtMDItMTYgMjM6MDI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgcGFzcyBOVUxMIG91dGNhcHMgdG8gdHJhbnNmb3JtX3NpemUgb24gc2h1dGRvd24KCSAgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgb24gdGhlIHNvdXJjZSBwYWQgbWlnaHQgeWllbGQgTlVMTCBjYXBzCgkgIGlmIHdlJ3JlIGJlaW5nIHNodXQgZG93biBhbmQgdGhlIHNvdXJjZSBwYWQgaGFzIGFscmVhZHkgYmVlbgoJICBkZWFjdGl2YXRlZCBieSB0aGUgb3RoZXIgdGhyZWFkIHRoYXQncyBjaGFuZ2luZyBzdGF0ZS4gSnVzdCBiYWlsCgkgIG91dCBpbiB0aGF0IGNhc2UsIGluc3RlYWQgb2YgcGFzc2luZyBOVUxMIGNhcHMgdG8gdGhlIHRyYW5zZm9ybV9zaXplCgkgIGZ1bmN0aW9uLCB3aGljaCBpdCBtaWdodCBub3QgZXhwZWN0LgoJICBGaXhlcyBzcHVyaW91cyB3YXJuaW5ncyBpbiBhdWRpb3Jlc2FtcGxlIHNodXRkb3duIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mzk5NgoKMjAxMy0wMi0yMSAxMDoxODoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgT1JDCgoyMDEzLTAyLTE5IDE4OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIHVuZXhwZWN0ZWQgc2lkZS1lZmZlY3RzIG9mIEdTVF9XUklURV8qIG1hY3JvcwoJICBNYWtlIHN1cmUgdGhlIGRhdGEgYXJndW1lbnQgaXMgb25seSBldmFsdWF0ZWQgb25jZS4KCjIwMTMtMDItMTkgMTc6MzY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGNoZWNrOiBhZGQgc29tZSBtb3JlIGZhaWxfdW5sZXNzXyooKSBtYWNyb3MgZm9yIGNvbnZlbmllbmNlCgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX2ludF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfaW50NjRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc19pbnQ2NF9oZXgKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfdWludDY0X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19wb2ludGVyCgkgIEFQSTogYXNzZXJ0X2VxdWFsc19wb2ludGVyCgoyMDEzLTAyLTE5IDEyOjQyOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBhZGQgbmV3IC1iYXNlIGFsbG9jYXRvcnMgbGlicmFyeSB0byBnc3QtdW5pbnN0YWxsZWQgc2VhcmNoIHBhdGhzCgoyMDEzLTAyLTE4IDIwOjQ3OjA0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIHR3byBtb3JlIHRlc3RzIHVzaW5nIGNvbGxlY3RwYWRzIHdpdGhpbiBhbiBlbGVtZW50CgkgIEFkZCBhIHN0YXRpYyBwbHVnaW4gd2l0aCBhIHJ1ZGltZW50YXJ5IGVsZW1lbnQgdXNpbmcgY29sbGVjdHBhZHMgYW5kIGRvIHNvbWUKCSAgcGlwZWxpbmUgYmFzZWQgdGVzdHMuCgoyMDEzLTAyLTE3IDEyOjUwOjAzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBkb2NzOiBGaXggc29tZSBhbWJpZ3VvdXMgd29yZGluZwoKMjAxMy0wMi0xNyAxOTo1Mzo1NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgdHJpZ2dlcmNvbnRyb2xzb3VyY2U6IGFkZCBtaXNzaW5nIGVuZF9pdGVyIGNoZWNrIGZvciBzZXF1ZW5jZQoJICBBdm9pZCBhY2Nlc3NpbmcgdGhlIGVuZC1pdGVyLCB0aGlzIGlzIGEgbWFya2VyIHdpdGhvdXQgYSBkYXRhIGZpZWxkLgoKMjAxMy0wMi0xNyAxMzoyMDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGxpbmsgdG8gdGhlIGFwcHJvcHJpYXRlIG1lc3NhZ2VzIGZyb20gZ3N0X2VsZW1lbnRzX3NldF9zdGF0ZSgpIGRvY3MKCSAgRm9yIGFuIGFzeW5jIHN0YXRlIGNoYW5nZSByZXR1cm4gb25lIHdvdWxkIHdhaXQgZm9yIEFTWU5DX0RPTkUgb3IgU1RBVEVfQ0hBTkdFRC4KCjIwMTMtMDItMTYgMTQ6MjA6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIHNpbmNlIG1hcmtlciBmb3IgbmV3IENPUFlfREVFUCBidWZmZXIgZmxhZwoKMjAxMy0wMi0xNiAxNDo1OTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvcHRpb24gdG8gZGVlcCBjb3B5IGEgYnVmZmVyCgkgIEFkZCBhIGJ1ZmZlciBjb3B5IGZsYWcgdG8gZm9yY2UgYSBtZW1vcnkgY29weSBpbiBhbGwgY2FzZXMuCgoyMDEzLTAyLTE0IDE0OjA5OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgInV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWExYTllMTQzZmIwZTE1NWQ3NjI3YWE4ZTQ4OWNkNWQwNGJjMDkzYy4KCSAgVGhpcyBicmVha3MgdGhlIHBpcGVsaW5lcy90YWdzY2hlY2tpbmcgdW5pdCB0ZXN0IGZvciBzb21lIHJlYXNvbgoJICAoZmFrZXNyYyAhIGNhcHNmaWx0ZXIgISBxdG11eCBsaW5raW5nIGZhaWxzIG5vdykuIEl0IG1pZ2h0IGJlCgkgIGEgYnVnIGluIHRoZSB1bml0IHRlc3Qgb2YgY291cnNlLCBidXQgc29tZW9uZSB3aWxsIG5lZWQgdG8KCSAgaW52ZXN0aWdhdGUgdGhpcy4gUmV2ZXJ0aW5nIGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI1MDgKCjIwMTMtMDItMTUgMTM6MDg6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogaW1wcm92ZSBmYWxsYmFjayBjb3B5IGZ1bmN0aW9uCgkgIE9ubHkgdXNlIHRoZSBhbGxvY2F0b3Igb2YgdGhlIGNvcGllZCBtZW1vcnkgd2hlbiB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0CgkgIF9hbGxvYyBmdW5jdGlvbiBvbiBpdC4gT3RoZXJ3aXNlIHdlIHdpbGwgaGF2ZSB0byB1c2UgdGhlIGRlZmF1bHQKCSAgYWxsb2NhdG9yIGZvciB0aGUgY29weS4KCjIwMTMtMDItMTQgMTM6NTU6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGZpeCBsb2NhdGlvbiBpbiB1c2VyJ3MgaG9tZSBkaXJlY3Rvcnkgd2hlcmUgR1N0cmVhbWVyIGxvb2tzIGZvciBwbHVnaW5zCgkgIEl0J3MgYmFzZWQgb24gdGhlIHhkZyB1c2VyIGRhdGEgZGlyIG5vdyBpbiAxLjAuCgoyMDEzLTAxLTI1IDA2OjUwOjI3IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlKCkgaW4gZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKCkKCSAgbW90aXZhdGlvbiBjb21lcyBmcm9tOiAvKiBGSVhNRTogd2h5IG5vdCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgKHBhZCk7ICovCgkgIHRoaXMgY29kZSBwYXRoIGlzIHF1aXRlIG5pY2VyLCB3ZSBub3cgb25seSByZXZlcnQgdG8gY3JlYXRpbmcgdGhlIHRlbXBsYXRlCgkgIGlmIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSBmYWlscy4KCSAgd2l0aCB0aGlzIGZvcmssIHdlIGdhaW4gYSBub24tYWxsb2NhdGlvbiBvZiBHc3RDYXBzICp0ZW1wbGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjUwOAoKMjAxMy0wMi0xMyAwMDoyNzoyOCArMDAwMCAgS3J6eXN6dG9mIEtvbm9wa28gPGtyenlzenRvZi5rb25vcGtvQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogVXNlIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gaGFuZGxlIGtleWJvYXJkIGludGVycnVwdGlvbgoJICBDdXJyZW50IGltcGxlbWVudGF0aW9uIHVzZXMgYSB0cmFkaXRpb25hbCBzaWduYWwgaGFuZGxlciBhbmQgYSAyNTBtcwoJICB0aW1lb3V0IGNhbGxiYWNrIGluIHRoZSBldmVudCBsb29wLiAgQWRkaW5nIGEgR1NvdXJjZSB3aXRoCgkgIGdfdW5peF9zaWduYWxfYWRkKCkgdG8gdGhlIEdNYWluTG9vcCBpcyBhIG11Y2ggbW9yZSBlbGVnYW50IHNvbHV0aW9uLgoJICBUaGUgc2lnbmFsIGhhbmRsZXIgd2l0aCB0aGlzIGFwcHJvYWNoIGNhbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgYnVzCgkgIGRpcmVjdGx5IHJhdGhlciB0aGFuIHNldCBhIGZsYWcgYXMgYWxsIGRpc3BhdGNoaW5nIGludHJpY2FjaWVzIGFyZSBoYW5kbGVkCgkgIGJ5IEdMaWIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM0ODEKCjIwMTMtMDItMTQgMDA6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZmxlc2ggb3VyICdSdW5uaW5nIEdTdHJlYW1lcicgYml0cyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEzLTAyLTEzIDIzOjI3OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UgYSBsaXR0bGUKCSAgRml4IHVwIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIHJlZ2lzdHJ5LgoJICBNZW50aW9uIG1vcmUgb3B0aW9ucyBmb3IgR1NUX0RFQlVHICh3aWxkY2FyZHMgYW5kCgkgIG5hbWVkIGRlYnVnIGxldmVscykuCgkgIEV4cGxhaW4gd2hhdCB0byBkbyB3aXRoIHRoZSBkb3QgZmlsZXMgdGhhdCBjYW4gYmUKCSAgcHJvZHVjZWQgYnkgc2V0dGluZyBHU1RfREVCVUdfRFVNUF9ET1RfRElSLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNjA3CgoyMDEyLTEyLTI3IDAwOjAzOjA2ICswMTAwICBHZXJ0IE1pY2hhZWwgS3VseWsgPGdrdWx5a0B5YWhvby5kZT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSAgZG9jczogZml4IGFkdmFuY2VkLW1ldGFkYXRhIGNvZGUgZXhhbXBsZSBpbiBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDc1MQoKMjAxMy0wMi0xMyAxNjo1MjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhY2NlcHQgTlVMTCBlcnJvciBhcmd1bWVudCBpbiBnc3RfbWVzc2FnZV9wYXJzZV97ZXJyb3Isd2FybmluZyxpbmZvfQoJICBBbmQgc2ltcGxpZnkgY29kZSBhIGJpdCB3aGlsZSBhdCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzcwNAoKMjAxMy0wMi0xMyAxNzowMDoyMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBSZW1vdmUgc2V0LXN0eWxlIGJpdG1hc2sgaW50ZXJzZWN0aW9uL3VuaW9uL3N1YnRyYWN0aW9uIGZ1bmN0aW9ucwoJICBTZXQgb3BlcmF0aW9ucyBvbiB0aGUgYml0bWFza3MgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFuZCByZXN1bHQKCSAgaW4gaW52YWxpZCBjYXBzIHdoZW4gdXNlZCBhcyBhIGNoYW5uZWwtbWFzay4gVGhleSBhcmUgbm93IGhhbmRsZWQKCSAgZXhhY3RseSBsaWtlIGludGVnZXJzLgoJICBUaGlzIGZ1bmN0aW9uYWxpdHkgd2FzIG5vdCB1c2VkIGFueXdoZXJlIGV4Y2VwdCBmb3IgdGVzdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTEzNzAKCjIwMTMtMDItMTMgMTE6MTk6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFRoZSBsYXRlbmN5IHF1ZXJ5IHNob3VsZCByZXR1cm4gVFJVRSBieSBkZWZhdWx0LCBkaWZmZXJlbnQgdG8gb3RoZXIgcXVlcmllcwoJICBGaXhlcyB1bml0IHRlc3QgZmFpbHVyZXMgY2F1c2VkIGJ5IGYzZDI2OGRlN2Y3ZmIxMTYxNzc4YTlhOTVlMGQ1NGQ4Yzg5ZWY2MjYKCjIwMTMtMDItMTMgMTA6NDY6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBzdHJ1Y3R1cmU6IE1ha2Ugc3VyZSB0aGF0IHN1YnNldHMgaGF2ZSBhbGwgZmllbGRzIG9mIHRoZSBzdXBlcnNldAoJICAidmlkZW8veC1oMjY0LHBhcnNlZD0oYm9vbGVhbil0cnVlIiBpcyBub3QgYSBzdXBlcnNldCBvZgoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9KHN0cmluZylieXRlLXN0cmVhbSxhbGlnbm1lbnQ9KHN0cmluZyluYWwiCgkgIGZvciBleGFtcGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzMzY1CgoyMDEzLTAyLTEyIDEyOjMyOjIzIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdXBkYXRlIGV4cG9ydHMgZm9yIGJhc2VwYXJzZSBBUEkgY2hhbmdlcwoKMjAxMy0wMi0xMiAxMjozMTo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBkb2MgdHlwbwoKMjAxMy0wMi0xMSAxNjo1MTo0OCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCSAgU2V0cyB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgYmFzZWQgb24gbGFzdCBzZWVuIHRpbWVzdGFtcHMgYXQgYQoJICBwYXJ0aWN1bGFyIG9mZnNldCBpbnRvIHRoZSBmcmFtZS4KCSAgQVBJOiBnc3RfYmFzZV9wYXJzZV9zZXRfdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMTEgMTY6NDI6NDEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBBZGQgZ3N0X2FkYXB0ZXJfcHJldl9bcGRddHNfYXRfb2Zmc2V0KCkKCSAgT3JpZ2luYWwgcGF0Y2ggd3JpdHRlbiBieSBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+LgoJICBBUEk6IGdzdF9hZGFwdGVyX3ByZXZfcHRzX2F0X29mZnNldCgpCgkgIEFQSTogZ3N0X2FkYXB0ZXJfcHJldl9kdHNfYXRfb2Zmc2V0KCkKCjIwMTMtMDItMDkgMTg6MTQ6MDkgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcXVlcnkgc2luayBlbGVtZW50cyBhbmQgc291cmNlIHBhZHMgb2YgdGhlIGJpbgoJICBnc3RfYmluX3F1ZXJ5KCkgbm93IGZvcndhcmRzIHRoZSBxdWVyeSB0byB0aGUgc291cmNlIHBhZHMgYXMgd2VsbCBpZgoJICBub25lIG9mIHRoZSBzaW5rcyBvZiB0aGUgYmluIHNhdGlzZmllZCB0aGUgcXVlcnkuIFRoaXMgaGVscHMgaW4gdGhlCgkgIGNhc2Ugb2YgRFVSQVRJT04gcXVlcmllcyBkb25lIGEgYmluIGNvbnRhaW5pbmcgYSBzb3VyY2UgZWxlbWVudC4KCSAgRml4ZXMgYnVnIDYzODc0OQoKMjAxMy0wMi0wNyAxMjo0NzowMiArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IExldCBnc3RfYmluX3NlbmRfZXZlbnQoKSBzZW5kIGV2ZW50cyB0byBnaG9zdCBwYWRzIGFzIHdlbGwKCjIwMTMtMDItMTEgMjI6NTI6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGNvbXBhdDoga2lsbCBtb3JlIHVzZXMgb2YgZ3N0X3BhZF9zZXRfY2FwcygpCgoyMDEzLTAyLTEyIDAwOjA4OjUxICsxMTAwICBUaW0gJ21pdGhybycgQW5zZWxsIDxtaXRocm9AbWl0aGlzLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWRkaW5nIG9mZnNldCB0byBHc3RTZWdtZW50IHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzU4NwoKMjAxMy0wMi0wOSAxMjozMjowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXByb3ZlIFBUUyBpbnRlcnBvbGF0aW5nCgkgIC4uLiBhbmQgdHJhY2tpbmcgb2YgRFRTLiAgRml4ZXMgY2FzZXMgd2hlcmUgUFRTIGlzIGxvY2tlZCBvbiB0byB0aGUKCSAgRFRTIG9mIGFuIGluY29taW5nIGJ1ZmZlciB3aXRoIG5vIFBUUyB3aXRoIGludmFsaWQgZGF0YSwgbGVhZGluZyB0bwoJICBubyBvdXRnb2luZyBQVFMgKHNpbmNlIGl0IGlzIG5vdCBhbGxvd2VkIHNtYWxsZXIgdGhhbiBEVFMpLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAyLTA4IDIxOjI4OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBwb3J0aW5nIGRldGFpbHMKCjIwMTMtMDItMDggMjE6MjE6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBlcnJvciBoYW5kbGluZyBmb3IgYmluZGluZyBjb250cm9sc291cmNlcyB0byB3cm9uZyBwcm9wZXJ0aWVzCgkgIEFkZCB3YXJuaW5nIGlmIHByb3BlcnR5IGlzIG5vdCBzdWl0YWJsZSBmb3IgY29udHJvbGxpbmcuIFdoZW4gYWRkaW5nIGEgY29udHJvbC0KCSAgYmluZGluZyBjaGVjayB0aGF0IHBzcGVjIT1OVUxMLgoKMjAxMy0wMi0wNyAxMzowODo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSBvbGQgZG9jcyBhYm91dCBpdGVyYXRvcnMKCjIwMTMtMDItMDcgMTI6NTI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21tZW50CgkgIFRoZSBpdGVyYXRvcnMgbm93IHJldHVybiBhIEdWYWx1ZSBhbmQgbm90IHRoZSBvYmplY3QgZGlyZWN0bHkgYW55bW9yZS4KCjIwMTMtMDItMDcgMTI6NTA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVzZXQgR1ZhbHVlIGZyb20gaXRlcmF0b3IgYWZ0ZXIgdXNhZ2UKCjIwMTMtMDItMDUgMTc6MTU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkgIHRlc3RzOiBhZGQgYmFzZXNpbmsgdGVzdAoKMjAxMy0wMi0wNSAxNzoxOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBzeW5jIG9mIEVPUyBhZnRlciBpdGVtIHdpdGhvdXQgZHVyYXRpb24KCSAgQWZ0ZXIgYSBidWZmZXIgb3IgR0FQIHdpdGhvdXQgZHVyYXRpb24sIGFuIEVPUyBldmVudCBzaG91bGQgYmUgcmVuZGVyZWQKCSAgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIHRoZSBzZWdtZW50LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyODY4CgoyMDEzLTAyLTAyIDExOjU1OjUyIC0wODAwICBOYXRlIEJvZ2Rhbm93aWN6IDxuYXRlemJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdHBpcGVsaW5lOiBmaXggZmFpbGVkIGFzc2VydGlvbiBjYXVzZWQgYnkgc2Vla2luZyBwaXBlbGluZSB3aXRoIE5VTEwgY2xvY2sKCSAgVW5kZXIgY2VydGFpbiBHU1RfU1RBVEVfQ0hBTkdFRF9QQVVTRURfVE9fUExBWUlORyB0cmFuc2l0aW9ucywgYSBwaXBlbGluZSB3aXRoCgkgIGEgTlVMTCBjbG9jayB3aWxsIGZhaWwgYW4gYXNzZXJ0aW9uIGR1ZSB0byBhbiB1bmNoZWNrZWQgY2FsbCB0byBnc3Rfb2JqZWN0X3JlZigpLgoJICBUaGlzIGlzIGZpeGVkIGJ5IHNpbXBseSBhZGRpbmcgYSBjaGVjayBhbmQgb25seSByZWYtaW5nIGlmIHRoZSBjbG9jayBpcyBub3QgTlVMTC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzA2NQoKMjAxMy0wMi0wNSAxMzo0NDowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBjaGFuZ2UgYXJndW1lbnQgbmFtZSBmb3IgZG9jcwoKMjAxMy0wMi0wNCAxMDozMDozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGZpeCBvcmRlciBvZiBjYXBzIG9uIGFuIHVubmVnb3RpYXRlZCBsaW5rCgkgIGhlYWRsYWJlbCBpcyB0aGUgc2lua19wYWQgKHdoZXJlIHRoZSBsaW5rIHBvaW50cyB0bykgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTMtMDItMDEgMjE6NTk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGRvY3M6IHVwZGF0ZSB0aGUgY29udHJvbGxlciBkb2NzCgkgIEFkZCB0aGUgY29udHJvbCBiaW5kaW5ncyB0byB0aGUgZG9jcy4gQWRkIGEgbGl0dGxlIG1vcmUgZGV0YWlsLgoKMjAxMy0wMi0wMSAyMTo1Nzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgcG9ydGluZzogYSBmZXcgdXBkYXRlcyBmb3IgdGhlIHBvcnRpbmcgZ3VpZGUKCjIwMTMtMDEtMzAgMTM6MDY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBjYW4ndCBwYXNzIGEgR1R5cGUgdGhyb3VnaCBHSU5UX1RPX1BPSU5URVIKCSAgVXNlIEdTSVpFX1RPX1BPSU5URVIgaW5zdGVhZC4gc2l6ZW9mKEdUeXBlKSBtYXkgYmUgbGFyZ2VyCgkgIHRoYW4gc2l6ZW9mKGd1bG9uZykgYW5kIHNpemVvZihpbnQpLCBzbyB0aGUgY2FzdHMgbWF5CgkgIGNob3Agb2ZmIHNvbWUgYml0cyBmcm9tIHRoZSBHVHlwZSB2YWx1ZSBvbiBzb21lIGFyY2hpdGVjdHVyZXMuCgoyMDEzLTAxLTI5IDEyOjQwOjUyICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogdW5pdCB0ZXN0IHRvIHRyaWdnZXIgdGhlIHF1ZXVlL2ZsdXNoaW5nIHJhY2UgY29uZGl0aW9uIGJ1ZyBmb3IgYWxsb2NhdGlvbiBxdWVyaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHJlbW92ZSBxdWVyeSBmcm9tIHF1ZXVlIGlmIHF1ZXVlIGlzIGZsdXNoaW5nCgkgIFdoZW4gcXVlcnlpbmcgYSBxdWV1ZSB0aGF0IGlzIGZsdXNoaW5nIHdlIGVuZCB1cCBhZGRpbmcKCSAgYSBxdWVyeSB0byB0aGUgcXVldWVhcnJheSB3aXRob3V0IHRha2luZyBhIHJlZmVyZW5jZSB0bwoJICB0aGF0IHF1ZXJ5IChiZWNhdXNlIHRoZSBub3JtYWwgZnVuY3Rpb25hbGl0eSBpcyB0byBibG9jawoJICB1bnRpbCB0aGF0IHF1ZXJ5IGlzIGRvbmUgYW5kIGRpc2NhcmRlZCBmcm9tIHRoZSBxdWV1ZSkuCgkgIFRoaXMgbGF0ZXIgY2F1c2VzIHByb2JsZW0gaWYgdGhlIHF1ZXJ5IGlzIHVucmVmZmVkIG91dHNpZGUKCSAgb2YgdGhlIHF1ZXVlIGJlZm9yZSB3ZSBkaXNjYXJkIHRoZSBxdWV1ZS4gVGhlcmUgaXMgYSBjaGVjawoJICB0byBhdm9pZCB1bnJlZmZpbmcgYW55IGxpbmdlcmluZyBxdWVyeS1vYmplY3RzLCBidXQgc2luY2UKCSAgdGhlIHF1ZXJ5IGhhcyBiZWVuIGRlbGV0ZWQgdGhhdCBjaGVjayBmYWlscy4KCSAgVGhpcyBjb21taXQgZGVwZW5kcyBvbiBvdGhlciBmaXhlcyBkb25lIHRvIGdzdF9xdWV1ZV9hcnJheV9maW5kKCkKCSAgYW5kIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0zMCAxMTo1NToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogbWFrZSBfZmluZCgpIGZpbmQgdGhlIHZhbHVlIGlmIG5vIGNvbXBhcmUgZnVuY3Rpb24gaXMgcHJvdmlkZWQKCSAgQWxsb3cgTlVMTCBhcyBjb21wYXJlIGZ1bmN0aW9uIGZvciBkaXJlY3QgdmFsdWUgbG9va3VwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTMwIDExOjM0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogY2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKSB0b28KCSAgV2FzIGFkZGVkIHdoZW4gdGhlIEFQSSB3YXMgbWFkZSBwdWJsaWMgaW4gZ2l0IG1hc3Rlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOSAyMjo1NDoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICB0ZXN0czogb25lIG1vcmUgdGVzdCBmb3IgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBnc3RfcXVldWVfYXJyYXlfZmluZCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMjggMTE6MDU6MjggKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYwoKMjAxMy0wMS0yOSAxNjo1NToyMyArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJICBkb2NzOiBhbGlnbiB0aGUgY29tbWVudHMgY29ycmVjdGx5IHdpdGggdGhlIGRlY2xhcmF0aW9uIGluIGJpdHJlYWRlciBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI4MDkKCjIwMTMtMDEtMjkgMDk6NDU6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIHJlbmVnb3RpYXRpb24gY29ycmVjdGx5CgkgIERvbid0IHJldHJ5IHRvIG5lZ290aWF0ZSB3aGVuIHdlIGZhaWwgdG8gbmVnb3RpYXRlIGJ1dCBpbnN0ZWFkIHByb2R1Y2UgYQoJICBOT1RfTkVHT1RJQVRFRCBlcnJvci4gV2Ugb25seSB3YW50IHRvIHJldHJ5IG5lZ290aWF0aW9uIGlmIHRoZSByZXN1bHQgZnJvbQoJICBnc3RfcGFkX3B1c2goKSByZXR1cm5lZCBOT1RfTkVHT1RJQVRFRC4KCjIwMTMtMDEtMjggMjA6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE5NDIyOTMgdG8gMmRlMjIxYwoKMjAxMy0wMS0yOCAxMzowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICBleGFtcGxlOiBmaXggRklYTUUgaW4gZXhhbXBsZQoJICBVc2Ugc2V0cHJpb3JpdHkgdG8gcmFpc2UgcHJpb3JpdHkKCjIwMTMtMDEtMjcgMDY6MjA6NTEgLTA4MDAgIFNpbW9uIEZlbHRtYW4gPHNmZWx0bWFuQHNyYy5nbm9tZS5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGctaTogYWRkIGJ1aWx0IGVudW10eXBlcyBoZWFkZXJzIGFuZCBzb3VyY2VzIHRvIGdpciBjcmVhdGlvbgoJICBBZGQgZ3N0ZW51bXR5cGVzLmgvYyBmb3IgaW5jbHVzaW9uIHdpdGggZy1pci1zY2FubmVyLiBUaGlzIGZpeGVzCgkgIHByb2JsZW1zIHdoZXJlIGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgdGhpbmsgR3N0U3RhdGUgaXMKCSAgdHlwZWxlc3MgZHVlIHRvIHRoZSBHVHlwZSBub3QgYmVpbmcgaW5jbHVkZWQgYXMgYW4gYW5ub3RhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTE4NQoKMjAxMy0wMS0yNyAwOToxODowMCArMDUzMCAgQi5QcmF0aGliaGEgPHByYXRoaWJoYWJAY2RhYy5pbj4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgdGVzdHM6IHVzZSBnX3RpbWVvdXRfYWRkX3NlY29uZHMgaW4gcGlwZWxpbmUgc3RyZXNzIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjYxMgoKMjAxMy0wMS0yNCAxNzo1MDozMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IFB1dCB0aGUgcmlnaHQgcGF0aCBmb3IgdGhlIGdzdHR0ZXN0Y2xvY2sgaW5jbHVkZSBmaWxlCgoyMDEzLTAxLTI0IDE1OjUwOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHJlbmFtZSB2YXJpYWJsZQoJICBUaGUgZmlsdGVyIHZhcmlhYmxlIHdhcyB1c2VkIHR3aWNlIGZvciBkaWZmZXJlbnQgdGhpbmdzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNDMyCgoyMDEzLTAxLTE3IDIxOjM1OjQ4IC0wMzAwICBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RfcGFkX2NoZWNrX3JlY29uZmlndXJlOiBvbmx5IHJlbW92ZSBmbGFnIGlmIHNldC4KCSAgdGhlIGNvZGUgaWZlZCBhIGRlYnVnIHN0YXRlbWVudCwgdGhhdCBjYW4ndCBiZSByaWdodC4gYW55d2F5LCB0aGUgd2F5IGl0IGlzLAoJICB3ZSBkb24ndCByZWFsbHkgbmVlZCB0aGF0IGJyYW5jaCwgYXMgd2Ugc2V0IHRoZSBmbGFnIHRvIHVuc2V0IG9ubHkgaWYgc2V0CgkgIChhbmQgdGhhdCBjYW4ndCBmYWlsKSBoZW5jZSB0aGUgZW5kIHJlc3VsdCBpcyBhbHdheXMgdG8gdW5zZXQgdGhlIGZsYWcuCgkgIFNpZ25lZC1vZmYtYnk6IE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE5ODUKCjIwMTMtMDEtMTcgMjE6NDM6MjUgLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc2V0IE5FRURfUkVDT05GSUdVUkUgZmxhZyBpZiBuZWdvdGlhdGUgZmFpbHMKCSAgV2hlbiBuZWdvdGlhdGlvbiBmYWlscywgbWFyayB0aGUgcGFkIGFzIG5lZWRpbmcgYSByZWNvbmZpZ3VyZSBhZ2FpbiBzbwoJICB0aGF0IGl0IGdldHMgcGlja2VkIHVwIGFnYWluIG5leHQgdGltZS4KCSAgU2lnbmVkLW9mZi1ieTogTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTk4NgoKMjAxMy0wMS0xOSAxMjo1MTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgZ3N0X3BhZF9nZXRfc3RyZWFtX2lkKCkgdXRpbGl0eSBmdW5jdGlvbgoJICBBUEk6IGdzdF9wYWRfZ2V0X3N0cmVhbV9pZCgpCgoyMDEzLTAxLTE4IDE2OjA1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1pbm9yIGFkZGl0aW9uIHRvIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTggMTY6MDE6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogdXBkYXRlIGdzdC1sYXVuY2gtMS4wIG1hbiBwYWdlIGZvciBuZXcgZGVidWcgbGV2ZWxzCgkgIFRoZXJlIGFyZSBtb3JlIGRlYnVnIGxldmVscyB0aGVzZSBkYXlzLCBub3Qgb25seSAwLTUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIwMTUKCjIwMTMtMDEtMTcgMDA6Mzg6MTQgLTA2MDAgIERhbmllbCBEw61heiA8eW9zb3lAZGFuaWVsZGlhei5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGZpeCBBQkkgY2hlY2sgc3RydWN0IHNpemVzIGZvciBBUk0KCSAgYW5kIHJlLWVuYWJsZSBBQkkgY2hlY2sgZm9yIEFSTS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNiAxNzoyNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogYWRkIGEgbm90ZSB0byB0aGUgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBkb2NzIGFib3V0IGJ1ZmZlciBmbGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMTEwCgoyMDEzLTAxLTE2IDExOjI5OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiBkaXNhYmxlIEFCSSBjaGVja3MgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgdGhlIHN0cnVjdCBzaXplcyBhcmUgbm90IHVwLXRvLWRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTgyOAoKMjAxMy0wMS0xNSAxNTowMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJhMDY4Y2UgdG8gYTk0MjI5MwoKMjAxMy0wMS0xNSAxMzo0NzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBHU1RfKl8xXzAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGV2ZXJ5d2hlcmUKCSAgVGhlIF8xXzAgc3VmZml4ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZQoJICBub24tc3VmZml4ZWQgb25lcywgc28gaWYgd2UncmUgaW4gYW4gZW52aXJvbm1lbnQgdGhhdAoJICBzZXRzIHRoZSBfMV8wIHN1ZmZpeGVkIG9uZXMsIHN1Y2ggYXMgamhidWlsZCwgd2UgbmVlZAoJICB0byBzZXQgdGhvc2UgdG8gbWFrZSBzdXJlIG91cnMgYWN0dWFsbHkgYWx3YXlzIGdldAoJICB1c2VkLgoKMjAxMy0wMS0xNSAxMzo0NzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZwoKMjAxMy0wMS0xNSAwOTo0MjoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGFkZCBhbGxvdy1ub25lIGFubm90YXRpb24gZm9yIGdzdF9waXBlbGluZV9uZXcoKSdzIG5hbWUgcHJvcGVydHkKCjIwMTMtMDEtMTQgMjA6MDI6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgR3N0QmFzZVBhcnNlIGRvY3MgZml4ZXMKCSAgRXhwb3NlIGRvY3MgZm9yIGdzdF9iYXNlX3BhcnNlX2ZpbmlzaF9mcmFtZSgpLgoKMjAxMy0wMS0xNCAxNzowMToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xNCAxNzowMDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTQgMTc6MDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTEzIDE0OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdmZ1bmNzIHRvIGludGVyY2VwdCBxdWVyaWVzCgkgIFVzZWZ1bCBmb3IgdmlkZW8gcGFyc2VzIHRoYXQgd2FudCB0byBhdHRhY2ggbWF0dGVyIG9yCgkgIGZpbmQgb3V0IGlmIGRvd25zdHJlYW0gc3VwcG9ydHMgY2VydGFpbiBtZXRhcy4KCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c3JjX3F1ZXJ5KCkKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6c2lua19xdWVyeSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0NzUKCjIwMTMtMDEtMTIgMjA6NTQ6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB1cCBuYW1lIG9mIGRlZmF1bHQgZXZlbnQgdmZ1bmNzCgoyMDEzLTAxLTEwIDExOjM0OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGNvbnRyb2xiaW5kaW5nOiBoaWRlIG9uZSB1bnVzZWQgdHlwZWRlZgoJICBUaGlzIGlzIG5vdCB1c2VkIGludGVybmFsbHkuCgoyMDEzLTAxLTEwIDExOjMzOjQyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGRvY3M6IGltcHJvdmUgYXBpIGRvY3MgZm9yIGNvbnRyb2xzb3VyY2UgYW5kIC1iaW5kaW5nCgoyMDEzLTAxLTA1IDE2OjMwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBmaXggbGVhayBpbiBnaG9zdHBhZCB1bml0IHRlc3QKCSAgVGhlIGNyZWF0ZWQgcGFkIGlzIG5ldmVyIHVzZWQgYW5kIG92ZXJ3cml0dGVuIHdpdGgKCSAgYW5vdGhlciBuZXdseS1jcmVhdGVkIHBhZCBhIGZldyBsaW5lcyBiZWxvdy4KCjIwMTMtMDEtMDQgMTI6Mjc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IG1pbm9yIHN5c3RlbXNjbG9jayBkb2MgZml4CgoyMDEzLTAxLTAzIDEwOjE2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEluaXRpYWxpemUgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAxMi0xMi0zMCAyMzozNTo0OCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogcmV0dXJuIGdzc2l6ZSBmcm9tIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuXyogZnVuY3Rpb25zCgkgIEFzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyAtMSB3aGVuIHRoZSBtYXRjaCBpcyBub3QgZm91bmQKCjIwMTMtMDEtMDEgMTA6MjM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2hlY2sgaWYgYnVmZmVycyBhcmUgdG9vIGxhdGUgYmVmb3JlIGNhbGxpbmcgcHJlcGFyZS9wcmVwYXJlX2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDkzNgoKMjAxMi0xMi0zMCAyMzo0ODo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZXBsYWNlIGRlcHJlY2F0ZWQgQU1fQ09ORklHX0hFQURFUiB3aXRoIEFDX0NPTkZJR19IRUFERVJTCgkgIEFNX0NPTkZJR19IRUFERVIgaGFzIGJlZW4gcmVtb3ZlZCBpbiB0aGUganVzdC1yZWxlYXNlZCBhdXRvbWFrZSAxLjEzOgoJICBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2F1dG9tYWtlLzIwMTItMTIvbXNnMDAwMzguaHRtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwODgxCgoyMDEyLTEyLTIyIDE2OjUwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBjYXBzLCBzdHJ1Y3R1cmUsICB0YWdsaXN0OiBtaWNyby1vcHRpbWlzYXRpb25zCgkgIEF2b2lkIHNvbWUgdW5uZWNlc3NhcnkgR1ZhbHVlIGNvcHlpbmcgYnkgbWFraW5nIHVzZSBvZgoJICBnc3Rfc3RydWN0dXJlX2lkX3Rha2VfdmFsdWUoKSB3aGVyZSBwb3NzaWJsZS4KCjIwMTItMTItMjIgMTY6Mjk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHNvbWUgbWljcm8tb3B0aW1pc2F0aW9ucwoJICBBdm9pZCB1bm5lY2Vzc2FyeSB2YWx1ZSBjb3B5aW5nLCBhbmQgdW5uZWNlc3NhcnkgaW5pdC91bnNldAoJICBjeWNsZXMgd2hpY2ggYWxsIGdvIHRocm91Z2ggdGhlIHZhbHVlIHRhYmxlLiBUaGVyZSdzIGEgYnVuY2gKCSAgb2YgcGxhY2VzIHdoZXJlIHdlIGNvcHkgYSB2YWx1ZSBhbmQgdGhlbiB1bnNldCBpdCBpbiB0aGUgbmV4dAoJICBsaW5lLCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIG92ZXIgdGhlIHNvdXJjZSB2YWx1ZS4KCjIwMTItMTItMjIgMTY6NTM6NDcgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogZml4IGxvY2F0aW9uIG9mIHJlcG9zaXRvcnkgd2l0aCBzc2gKCjIwMTItMTItMjEgMTY6MzY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSAgYmluOiBhZGQgZmxhZyB0byBkaXNhYmxlIHJlc3luYyBzdGF0ZSBjaGFuZ2UKCSAgQWRkIGEgR1NUX0JJTl9GTEFHX05PX1JFU1lOQyB0aGF0IGRpc2FibGVzIGEgcmVzeW5jIHdoZW4gYW4gZWxlbWVudCBpcyBhZGRlZCwKCSAgcmVtb3ZlZCBvciBsaW5rZWQgaW4gdGhlIGJpbi4gVGhpcyBpcyBpbnRlcmVzdGluZyBmb3IgY29tcGxleCBiaW5zIHRoYXQKCSAgZHluYW1pY2FsbHkgYWRkIGVsZW1lbnRzIHRvIHRoZW1zZWx2ZXMgYW5kIHdhbnQgdG8gbWFuYWdlIHRoZSBzdGF0ZSBvZiB0aG9zZQoJICBlbGVtZW50cyB3aXRob3V0IGludGVyZmVyZW5jZSBmcm9tIHJlc3luY3MuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNDIwCgoyMDEyLTEyLTIxIDEwOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgc3luY2hyb25pemF0aW9uIGRvY3VtZW50IGEgbGl0dGxlCgoyMDEyLTEyLTIwIDE2OjQwOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIHN5c3RlbWNsb2NrOiBhZGQgT1RIRVIgY2xvY2sgdHlwZQoJICBBZGQgYW4gT1RIRVIgY2xvY2sgdHlwZSBzbyB0aGF0IHN1YmNsYXNzZXMgYXJlIGFibGUgdG8gbWFyayB0aGVtc2VsdmVzIGFzCgkgIHVzaW5nIHNvbWUgb3RoZXIgY2xvY2sgc291cmNlIHRoYW4gdGhlIHJlYWx0aW1lIG9yIG1vbm90b25pYyBjbG9jay4KCjIwMTItMTItMjAgMTM6MzE6MDIgKzAxMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua29AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY29ycmVjdCBvdmVycnVuIGhhbmRsaW5nCgkgIFRoZSBjb250cm9sIG9mIHdoZXRlaGVyIGEgU2luZ2xlUXVldWUgaXMgZnVsbCBpcyBub3QgY29ycmVjdC4KCSAgUmV3cm90ZSBzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYigpIHNvIGl0IGNoZWNrcyB0aGUgY29ycmVjdCB2YXJpYWJsZXMKCSAgd2hlbiBjaGVja2luZyBpZiB0aGUgcXVldWUgaGFzIHJlYWNoZWQgdGhlIGhhcmQgbGltaXRzLCBhbmQgdG8KCSAgaW5jcmVhc2UgdGhlIG1heCBidWZmZXIgbGltaXQgb25jZSBmb3IgZWFjaCBjYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTU3CgoyMDEyLTEyLTIwIDExOjU5OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpbXBsZW1lbnQgYnVmZmVyaW5nIHF1ZXJ5IGZvciBhbGwgbW9kZXMKCSAgQWxzbyBpbXBsZW1lbnQgdGhlIGJ1ZmZlcmluZyBxdWVyeSBmb3IgU1RSRUFNIG1vZGUuCgoyMDEyLTEyLTIwIDExOjMwOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvciBidWZmZXJpbmcgcGVyY2VudCBhbmQgc3RhdHMKCSAgTWFrZSBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCBidWZmZXJpbmcgcGVyY2VudCBhbmQgdGhlIHN0YXRzLiBXZSB3aWxsIHVzZQoJICB0aGlzIGluIHRoZSBxdWVyeSBsYXRlci4KCjIwMTItMTItMTMgMTM6NDc6MjkgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggaW52YWxpZCBvdXRwdXQgdGltZXN0YW1wcyBpbiBzb21lIGNhc2VzCgoyMDEyLTEyLTE0IDE1OjIyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBORVdTRUdNRU5UIC0+IFNFR01FTlQKCjIwMTItMTItMTQgMTQ6MDM6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MKCSAgVXBkYXRlIGFyZ3Mvc2lnbmFscyBldGMuCgoyMDEyLTEyLTE0IDExOjA5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBBZGRpbmcgYSBkZWJ1ZyBjYXRlZ29yeSBpcyBuaWNlciB0aGFuIGxvZ2dpbmcgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkKCjIwMTItMTItMTQgMTE6MDg6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEyLTEzIDE0OjQ4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNhbGwgX3N0b3Agd2hlbiBzdGFydCBmYWlsZWQKCSAgV2hlbiB3ZSBmYWlsZWQgdG8gY29tcGxldGUgdGhlIHN0YXJ0LCBjYWxsIHN0b3AgYWdhaW4uIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGFsbAoJICBzdWNjZXNzZnVsbCBjYWxscyB0byBfc3RhcnQgYXJlIHBhaXJlZCB3aXRoIGEgX3N0b3AuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4NDUKCjIwMTItMTItMTIgMTY6NDQ6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9iYXNlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkgIGxpYnM6IFVzZSBmb28vZm9vLmggYXMgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg3ODUKCjIwMTItMTItMTEgMTY6NDY6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBhc3MgRFRTIGFuZCBQVFMgdG8gaGFuZGxlX2J1ZmZlcgoJICBUaGlzIG1ha2VzIGl0IGhhbmRsZSB0aGUgdGltZXN0YW1wcyBjb3JyZWN0bHkgYW5kIGF2b2lkcyB1c2luZyBhIHdyb25nIHRpbWVzdGFtcAoJICBmb3IgdGhlIG91dHB1dC4KCjIwMTItMTItMTEgMTY6NDY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcHJvdmUgZGVidWcKCSAgQWRkIHB0cyBhbmQgZHRzIGluIGRlYnVnIGxvZwoKMjAxMi0xMS0wMyAxNjo1OTozOSArMDAwMCAgQW5kcnplaiBCaWVuaWVrIDxhbmR5aGVscEBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlcG9ydCBleGVjdXRpb24gdGltZSBpbiBHU1RfVElNRV9GT1JNQVQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMwoKMjAxMi0xMi0xMCAxMTo1NTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBwcm90ZWN0IGFnYWluc3QgTlVMTCBmaWxlbmFtZSBpbiBkZWJ1ZwoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTk0OAoKMjAxMi0xMi0wNiAwOTo0ODowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGNsYXJpZnkgZG9jcwoKMjAxMi0xMi0wNSAxNDo1Njo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBkb2NzCgoyMDEyLTEyLTA1IDE0OjI0OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCAwLjEwIGRvY3MgdG8gbWFrZSBtb3JlIHNlbnNlIGluIDEuMAoKMjAxMi0xMi0wNSAxNDowMzoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggZG9jcyBmb3IgMS4wCgkgIEFkZCBwYXJlbnQgdG8gY2hhaW4gZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB1c2UgaXQuCgoyMDEyLTExLTMwIDEwOjQxOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIHJlc2V0LXRpbWUgdHlwZSBzdHJpbmcKCjIwMTItMTEtMzAgMTA6NDE6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIHNvbWUgY2FzdHMKCjIwMTItMTEtMjggMTg6MDg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbGluayB0byBweXRob24gcG9ydGluZyBkb2MgYW5kIGFwcCBkZXYgbWFudWFsIHRvIHBvcnRpbmctdG8tMS4wLnR4dAoKMjAxMi0xMS0yOCAxNzozNjo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBVcGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgkgIEluIG9yZGVyIGZvciAxLnggYW5kIDEuKHgrMSkgdmVyc2lvbnMgdG8gbm90IGludmFkZSBvbiBlYWNoIG90aGVyCgkgIHdlIG5lZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbGliIHZlcnNpb25zLgoJICBTbyB3ZSBuZWVkIGEgY29uc2lzdGVudCBhbmQgcHJlZGljdGFibGUgc2NoZW1lOgoJICBsaWJyYXJ5IHZlcnNpb24gbnVtYmVyID0gTUlOT1IgKiAxMDAgKyBNSUNSTwoJICBFeDoKCSAgMS4wLjAgPT4gMCAoZHVoKQoJICAxLjAuMyA9PiAzCgkgIDEuMS4wID0+IDEwMAoJICAxLjEuMSA9PiAxMDEKCSAgMS4yLjAgPT4gMTIwCgkgIDEuMTAuNSA9PiAxMDA1CgkgIC4uLi4KCjIwMTItMTEtMjYgMTg6MTY6NTIgLTA1MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1lZGl0aW5nLXNlcnZpY2VzIHRvIFBLR19DT05GSUdfUEFUSAoKMjAxMi0xMS0yNiAwMDo1MTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGNsZWFuIHVwIHNlY3Rpb25zIGZpbGUgZm9yIHBhZCBwcm9iZSBkZWZpbmVzIHRoYXQgbW92ZWQgaW50byBlbnVtCgoyMDEyLTExLTI2IDAwOjIwOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdDogZG9uJ3QgcmVxdWlyZSBndGhyZWFkLTIuMAoJICBXZSBkb24ndCBuZWVkIHRvIGxpbmsgdG8gZ3RocmVhZC0yLjAgYW55IGxvbmdlciwgc2luY2UgYWxsCgkgIHRoZSBub3JtYWwgdGhyZWFkLXJlbGF0ZWQgc3R1ZmYgaXMgaW4gR0xpYiBwcm9wZXIsIGFuZCB3ZQoJICBkb24ndCB1c2UgZ190aHJlYWRfaW5pdCgpIGFueSBtb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MDQzCgoyMDEyLTExLTI1IDIzOjQyOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3RyZWFtZXItMS4wLnBjOiBtb3ZlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMCBkZXBlbmRlbmN5IHRvIFJlcXVpcmVzLnByaXZhdGUKCSAgVXNlcnMgb2YgR1N0cmVhbWVyIGFyZSBub3QgZ2VuZXJhbGx5IGV4cGVjdGVkIHRvIHVzZSB0aGUgR01vZHVsZSBBUEkKCSAgZGlyZWN0bHkuIHNvIGRvbid0IGZvcmNlIHRoZW0gYWxsIHRvIGxpbmsgYWdhaW5zdCBpdC4KCSAgV2hpbGUgd2UncmUgYXQgaXQsIG5vIG5lZWQgdG8gZGVmaW5lIHRoaXMgdmlhIGNvbmZpZ3VyZS5hYyByZWFsbHksIGp1c3QKCSAgcHV0IHRoZSBkZXBlbmRlbmNpZXMgZGlyZWN0bHkgaW50byB0aGUgLnBjLmluIGZpbGUuCgoyMDEyLTExLTI1IDIzOjI2OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGdzdC9nc3QuYzoKCSAgZG9jczogcmVtb3ZlIGFsbCBtZW50aW9uIG9mIGdfdGhyZWFkX2luaXQoKQoJICBJdCdzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSBHTGliIDIuMzIgYW5kIGlzbid0IG5lZWRlZCBhbnkKCSAgbG9uZ2VyLgoKMjAxMi0xMS0yNSAxODoxMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRhdGFxdWV1ZTogcmVkdWNlIGRlYnVnIGxvZyBzcGFtIGEgYml0CgkgIExvZyBsb2NraW5nL3VubG9ja2luZyB3aXRoIFRSQUNFIGRlYnVnIGxldmVsLgoKMjAxMi0xMS0yMyAyMTowOTo0NSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBhbm5vdGF0aW9uIGZvciBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX3N0YXJ0CgoyMDEyLTExLTIzIDEzOjM2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGRvY3VtZW50IG1vcmUgcGFkIHByb2JlIHZhbHVlcwoKMjAxMi0xMS0yMyAxMzozNDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICB0ZXN0Y2xvY2s6IHJlbW92ZSB1bm5lY2Vzc2FyeSBpbmNsdWRlCgoyMDEyLTExLTIzIDEzOjMyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIHRlc3RzOiBmaXggY2xvY2sgdW5pdCB0ZXN0IGJ1aWxkIGZhaWx1cmUgYWZ0ZXIgaGVhZGVyIGNoYW5nZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODc4NQoKMjAxMi0xMS0yMyAxMjo0NzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBkb24ndCB1c2UgcGFyZW50aGVzaXMgZm9yIE9SZWQgcGFkIHByb2JlIGZsYWcgZW51bXMKCSAgZ2xpYi1ta2VudW0gZG9lc24ndCBsaWtlIHRoZW0gZm9yIHNvbWUgcmVhc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODA0CgoyMDEyLTExLTIzIDEwOjU4OjI1ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IFB1dCBhbGwgb2YgdGhlIHByb2JlIHR5cGVzIGluIHRoZSBlbnVtIHNvIHRoZXkgd29yayB3aXRoIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MDQKCjIwMTItMTEtMjAgMjM6MTM6MzMgLTA4MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldC5oOgoJICBsaWJzOiBBZGQgbWlzc2luZyBzaW5nbGUgaW5jbHVkZSBoZWFkZXJzIGFuZCB1c2UgdGhlbSBpbiBHSVJzCgoyMDEyLTExLTIwIDE2OjM0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdHM6IGRvbid0IHVzZSBkZXByZWNhdGVkIHRocmVhZCBBUEkKCjIwMTItMTEtMjAgMTY6MTk6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBkZWJ1ZwoKMjAxMi0xMS0yMCAxNjoxOToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlc2V0IFNUQVJUX1RJTUUgd2hlbiBuZWVkZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTg3MAoKMjAxMi0xMS0yMCAxNTozNzoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IE1ha2UgRy1JIGhhcHB5IGJ5IGhpZGluZyBnc3RfZ190aHJlYWRfZ2V0X3R5cGUoKQoKMjAxMi0xMS0yMCAxNTowNzozNyArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFJlbW92ZSB4ZmlnIGZyb20gc3BlYyBmaWxlCgoyMDEyLTExLTIwIDE1OjA2OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogVXNlIHRoZSBHTGliIEdUeXBlIGZvciBHVGhyZWFkIGlmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWIgMi4zNS4zIG9yIG5ld2VyCgoyMDEyLTExLTIwIDEyOjU2OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBEb24ndCBzZXQgdGhlIGxvY2FsZSBpbiBnc3RfaW5pdCgpCgkgIFRoZSBmdW5jdGlvbiBpbml0X3ByZSgpIGluIGdzdHJlYW1lci9nc3QvZ3N0LmMgY2FsbHMgc2V0bG9jYWxlKExDX0FMTCwgIiIpLAoJICB3aGljaCBzZXRzIHRoZSBsb2NhbGUgdG8gdGhlIHZhbHVlcyBzcGVjaWZpZWQgaW4gdGhlIGVudmlyb25tZW50LiAgVGhpcyBpcwoJICB3cm9uZyBmb3IgdHdvIHJlYXNvbnM6CgkgIDEuIEl0IGlzIGFic29sdXRlbHkgbm90IHRoZSB0YXNrIG9mIGEgbGlicmFyeSB0byBkZWNpZGUgb24gdGhlIGNvcnJlY3QgbG9jYWxlCgkgIGZvciBhIHByb2dyYW0uICBTb21lIHByb2dyYW1zIGNoYW5nZSB0aGUgbG9jYWxlIGZvciB2YXJpb3VzIChnb29kIG9yIGJhZCkKCSAgcmVhc29ucywgYW5kIGxpYnJhcmllcyBzaG91bGQgcmVzcGVjdCB0aGF0LiAgUHJvZ3JhbXMgd2hlcmUgR1N0cmVhbWVyJ3MKCSAgb3ZlcndyaXRpbmcgb2YgdGhlIGxvY2FsZSBjYXVzZXMgYnVncyBpbmNsdWRlIEVtYWNzIFsxLCAyXSwgU3VibGltZSBUZXh0IFszXSwKCSAgYW5kIEx1YSBbNF0uCgkgIFsxXSBodHRwOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQuY2dpP2J1Zz0xMjM5MgoJICBbMl0gaHR0cDovL2J1Z3ppbGxhLm5vdmVsbC5jb20vc2hvd19idWcuY2dpP2lkPTc3OTQyNgoJICBbM10gaHR0cDovL3d3dy5zdWJsaW1ldGV4dC5jb20vZm9ydW0vdmlld3RvcGljLnBocD9mPTMmdD04NTQzCgkgIFs0XSBodHRwczovL2dpdGh1Yi5jb20vcGF2b3VrL2xnaS9pc3N1ZXMvMTkKCSAgTm90ZSB0aGF0IHNldHRpbmcgdGhlIGxvY2FsZSBjYW4gY2F1c2UgcHJvYmxlbXMgZm9yIHByb2dyYW1zIHRoYXQgYXJlIG5vdCBldmVuCgkgIGxpbmtlZCBhZ2FpbnN0IEdTdHJlYW1lci4gIEluIHRoZSBjYXNlIG9mIEVtYWNzLCBmb3IgZXhhbXBsZSwgR1N0cmVhbWVyIHNlZW1zCgkgIHRvIGJlIGluaXRpYWxpemVkIHRocm91Z2ggR1RLIHZpYSBsaWJjYW5iZXJyYS4KCSAgMi4gU2V0dGluZyB0aGUgbG9jYWxlIGlzIG5vdCB0aHJlYWQtc2FmZSwgYW5kIHRoZXJlZm9yZSBzaG91bGQgbm90IGJlIGRvbmUgaW4gYQoJICBsaWJyYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NjUwCgoyMDEyLTExLTE2IDE5OjQxOjQ4ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZm9yd2FyZCBzdHJlYW0tc3RhcnQgZXZlbnQgaW4gcHVzaCBtb2RlCgoyMDEyLTExLTE5IDEzOjM4OjMwICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9tYW51YWwvc3RhdGUtZGlhZ3JhbS5maWc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvcGxheWVyLmZpZzoKCSAgUmVtb3ZlIHR3byBsYXN0IC5maWcgZmlsZXMgZnJvbSBidWlsZCwgdGhleSBhcmUgbm93IHJlcGxhY2VkIHdpdGggLnN2ZyBmaWxlcy4gVGhhdCBzYWlkIEkgZG9uJ3QgdGhpbmsgZWl0aGVyIC5maWcgZmlsZSB3YXMgc3RpbGwgYmVpbmcgdXNlZCBhbnl3aGVyZS4gV2l0aCB0aGlzIGNoYW5nZSBhbmQgdGhlIG9uZSBpbiBjb21tb24gR1N0cmVhbWVyIG5vIGxvbmdlciBkZXBlbmRzIG9uIHhmaWcuCgoyMDEyLTExLTE5IDEzOjE2OjQ4ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAxMi0xMS0xOSAxMToyMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjQ5N2M0ZiB0byBhNzJmYWVhCgoyMDEyLTExLTE5IDExOjQ1OjA3ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBkb2NzL21hbnVhbC9zdGF0ZS1kaWFncmFtLnN2ZzoKCSogZG9jcy9yYW5kb20vd3RheS9wbGF5ZXIuc3ZnOgoJICBBZGQgU1ZHIHZlcnNpb25zIG9mIC5maWcgZmlsZQoKMjAxMi0xMS0xNyAxMDoyNzoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGRvbid0IGNvbXBpbGUgdGVzdHJ0cG9vbCBleGFtcGxlIGlmIHB0aHJlYWRzIGFyZSBub3QgYXZhaWxhYmxlIGxpa2Ugb24gd2luMzIKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IGl0YWxhcmFiQGdtYWlsLmNvbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NTExCgoyMDEyLTExLTEzIDIxOjEzOjAwICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2xvY2sgbGVhayBpbiB3YWl0X3J1bm5pbmdfdGltZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NDc3CgoyMDEyLTExLTE3IDAwOjEzOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBnc3Rjb21wYXQuaDogbW92ZSBtb3JlIGRlcHJlY2F0ZWQgQVBJIGludG8gdGhlIGRlcHJlY2F0ZWQgc2VjdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTk4CgoyMDEyLTExLTE0IDEyOjIwOjU0ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZG9jdW1lbnRhdGlvbiB1cGRhdGUKCSAgR1N0YXRpY1JlY011dGV4IHVzYWdlIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IEdSZWNNdXRleCwgcmVmbGVjdCB0aGlzCgkgIGNoYW5nZSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMTItMTEtMTQgMTA6NTU6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBwb3J0IHRvIG5ldyBHTGliIHRocmVhZGluZyBBUEkKCjIwMTItMTEtMTMgMjM6MTE6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGdzdF9hZGFwdGVyX3ByZXZfdGltZXN0YW1wIC0+IGdzdF9hZGFwdGVyX3ByZXZfcHRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1OTgKCjIwMTItMTEtMTMgMjI6NDI6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdGNsb2NrOiBtaW5vciBjbGVhbnVwcywgYWRkIHNpbmNlIG1hcmtlcnMgZm9yIGd0ay1kb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0wOC0zMCAwMTo1ODo0MSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICBjaGVjazogYWxsb3cgR3N0VGVzdENsb2NrIHRvIGhhbmRsZSBjbG9jayBub3RpZmljYXRpb25zCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcGVla19pZF9jb3VudCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfaGFzX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wZWVrX25leHRfcGVuZGluZ19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfbmV4dF9wZW5kaW5nX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja193YWl0X2Zvcl9wZW5kaW5nX2lkX2NvdW50KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19wcm9jZXNzX25leHRfY2xvY2tfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2dldF9uZXh0X2VudHJ5X3RpbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTExLTEzIDIxOjI5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBhZGQgZGVwZW5kZW5jeSBvbiBnc3RjaGVjayBoZWFkZXIgZmlsZXMgZm9yIGV4cG9ydHMuc3ltCgkgIFNvIGV4cG9ydHMuc3ltIGdldHMgdXBkYXRlZCBjb3JyZWN0bHksIGFuZCBvdXIgbmV3IHN5bWJvbHMgZ2V0CgkgIGV4cG9ydGVkIGNvcnJlY3RseSwgd2hpY2ggbWFrZXMgZy1pci1zY2FubmVyIG11Y2ggaGFwcGllciBpbgoJICB0ZXJtcyBvZiBsaW5raW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDEyCgoyMDEyLTA4LTI5IDE2OjExOjEwICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IGFkZCBHc3RUZXN0Q2xvY2sgYXMgYSBkZXRlcm1pbmlzdGljIGNsb2NrIGZvciB0ZXN0aW5nCgkgIEFQSTogR3N0VGVzdENsb2NrCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfbmV3KCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19uZXdfd2l0aF9zdGFydF90aW1lKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19zZXRfdGltZSgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfYWR2YW5jZV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0xMS0wOSAyMToxMDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZGVidWcgbWVzc2FnZQoKMjAxMi0xMS0wOCAyMDoyMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiByZS1pbmRlbnQgaGVhZGVyIGZpbGUKCSAgVGFicyB0byBzcGFjZXMuCgoyMDEyLTExLTEyIDExOjQwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IEFQSTogQWRkIGJveGVkIHR5cGUgZm9yIEdUaHJlYWQKCjIwMTItMTEtMTIgMTA6MzA6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCBpbmRlbnRpb24gZm9yIHByaW50aW5nIHR5cGVmaW5kZXIgZmVhdHVyZXMKCjIwMTItMTEtMTIgMDE6NDA6NDIgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2hlbiBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODEzMAoKMjAxMi0xMS0xMCAwOTo1MDo0OSArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgdW51c2VkIGxhYmVsLiBGaXhlcyBjb21waWxlciB3YXJuaW5nLgoKMjAxMi0xMC0yOSAxMjowODozMSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHF1ZXVlOiBkb24ndCBmYWlsIGluIF9zaW5rX2V2ZW50IGZvciBzdGlja3kgZXZlbnRzCgkgIEltcGxlbWVudCB0aGUgc2FtZSBiZWhhdmlvdXIgYXMgZ3N0X3BhZF9wdXNoX2V2ZW50IHdoZW4gcHVzaGluZyBzdGlja3kgZXZlbnRzCgkgIGZhaWxzLCB0aGF0IGlzIGRvbid0IGZhaWwgaW1tZWRpYXRlbHkgYnV0IGZhaWwgd2hlbiBkYXRhIGZsb3cgcmVzdW1lcyBhbmQgdXBzdHJlYW0KCSAgY2FuIGFnZ3JlZ2F0ZSBwcm9wZXJseS4KCSAgVGhpcyBmaXhlcyBzZWdtZW50IHNlZWtzIHdpdGggZGVjb2RlYmluIGFuZCB1bmxpbmtlZCBhdWRpbyBvciB2aWRlbyBicmFuY2hlcy4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc4OTkKCjIwMTItMTEtMDkgMTY6NTA6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBzaW1wbGUgcmF0ZSBjb250cm9sCgkgIEFkZCBhIG1heC1iaXRyYXRlIHByb3BlcnR5IHRoYXQgd2lsbCBzbGlnaHRseSBkZWxheSByZW5kZXJpbmcgb2YgYnVmZmVycyBpZiBpdAoJICB3b3VsZCBleGNlZWQgdGhlIG1heGltdW0gZGVmaW5lZCBiaXRyYXRlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRvCgkgIHJhdGUgY29udHJvbCBvbiBuZXR3b3JrIHNpbmtzLCBmb3IgZXhhbXBsZS4KCSAgQVBJOiBHc3RCYXNlU2luazo6bWF4LWJpdHJhdGUKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9tYXhfYml0cmF0ZSgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfbWF4X2JpdHJhdGUoKQoKMjAxMi0xMS0wOCAxNTozMzowMSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPHlzdHJlZXQwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBsb2NrIGJlZm9yZSB1bmxvY2sgaW4gX2dldF9jb25maWcKCSAgRml4ZXMgZGVhZGxvY2sgb24gV2luZG93cwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODk2CgoyMDEyLTExLTA3IDE4OjE1OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1cGRhdGUgY291cnRlc3kgb2YgYXV0b3VwZGF0ZQoKMjAxMi0xMS0wNyAxNzo1OTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBBR19HU1RfUExVR0lOX0RPQ1MgcHl0aG9uIGNoZWNrcwoKMjAxMi0xMS0wNiAxODoyOToyOCArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIERvY3VtZW50IEdTVF9ERUJVR19GSUxFCgoyMDEyLTExLTA2IDE3OjAzOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBhbGlnbm1lbnQgb2YgcmFuaywgZXRjLgoKMjAxMi0xMS0wNiAxNjo1ODowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZWxlbWVudHM6IGZpeCBsZWFkaW5nIHNwYWNlIGluIHBsdWdpbiBkZXNjcmlwdGlvbiBzdHJpbmcKCjIwMTItMTEtMDMgMjA6Mzg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgRml4IEZTRiBhZGRyZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc1MjAKCjIwMTItMTEtMDMgMjA6NDQ6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDT1BZSU5HOgoJKiBkb2NzL3JhbmRvbS9MSUNFTlNFOgoJKiBnc3QvZ2V0dGV4dC5oOgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHMuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvaW5pdC5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1kaXNhYmxlZC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2Vlay5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuaDoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbToKCSogdGVzdHMvbWlzYy9uZXR3b3JrLWNsb2NrLnNjbToKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBGaXggRlNGIGFkZHJlc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzUyMAoKMjAxMi0xMC0zMSAxOTozMzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGFkZCAiZmx1c2gtb24tZW9zIiBwcm9wZXJ0eQoJICBJbiBmbHVzaC1vbi1lb3M9dHJ1ZSBtb2RlIGFueSBkYXRhIHJlbWFpbmluZyBpbiB0aGUgcXVldWUgaXMKCSAgZGlzY2FyZGVkIHdoZW4gYW4gRU9TIGV2ZW50IGlzIHJlY2VpdmVkLCBhbmQgdGhlIEVPUyBwYXNzZWQKCSAgZG93bnN0cmVhbSBhcyBzb29uIGFzIHBvc3NpYmxlIChpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGFsbAoJICBidWZmZXJzIGluIHRoZSBxdWV1ZSB0byBnZXQgcHJvY2Vzc2VkIGJ5IGRvd25zdHJlYW0gZmlyc3QpLgoJICBNYXkgb3IgbWF5IG5vdCBiZSB1c2VmdWwgaW4gY2FwdHVyZS9lbmNvZGluZyBzY2VuYXJpb3MuCgoyMDEyLTEwLTMxIDE4OjMyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgcHl0aG9uIGRldGVjdGlvbgoJICBGaXhlcyBkb2NzIGJ1aWxkLgoKMjAxMi0xMC0zMSAxNzozNzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGxldCBBR19HU1RfUExVR0lOX0RPQ1MgY2hlY2sgZm9yIHB5dGhvbgoJICBBbmQgdXBkYXRlIGNvbW1vbiBmb3IgbW92ZSBmcm9tIEFTX1BBVEhfUFlUSE9OIHRvIEFNX1BBVEhfUFlUSE9OLAoJICB3aGljaCBhcyBhIHNpZGUtZWZmZWN0IHNob3VsZCBwaWNrIHVwIG5ld2VyIHB5dGhvbiB2ZXJzaW9ucyBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTAzCgoyMDEyLTEwLTMwIDEwOjA0OjQ0ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBDbGFyaWZ5IGRvY3MgYWJvdXQgdGhlIGJ1ZmZlciBoYW5kbGVyIGNhbGxiYWNrLgoJICBDbGFyaWZ5IHRoYXQgdGhlIGNhbGxiYWNrIG93bnMgYSByZWYgb24gYSBwYXNzZWQgYnVmZmVyLgoKMjAxMi0xMC0zMCAxMDowNDoxNCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBFT1Mgc3RhdHVzIHRvIGRlYnVnIG91dHB1dCBhYm91dCBmaWxsZWQvdW5maWxsZWQKCjIwMTItMTAtMjIgMDA6MzE6MDkgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY2hlY2s6IEFkZCBhIHNpbXBsZSB0ZXN0IGZvciB0aGUgQ29sbGVjdFBhZHMgYnVmZmVyIGNvbGxlY3QgY2FsbGJhY2sKCjIwMTItMTAtMjkgMTM6MjY6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZy1pOiBmaXggImNhbid0IHJlc29sdmUgbGlicmFyaWVzIHRvIHNoYXJlZCBsaWJyYXJpZXM6IGdzdGNoZWNrLTEuMCIgYnVpbGQgZXJyb3IKCSAgUmV2ZXJ0IC0tbGlicmFyeT1saWJmb28tMS4wLmxhIC0+IC0tbGlicmFyeT1mb28tMS4wIGNoYW5nZSBtYWRlCgkgIGluIHByZXZpb3VzIGNvbW1pdC4gVHVybnMgb3V0IHRoYXQgd2FzIHdyb25nLCBkZXNwaXRlIHdoYXQgdGhlCgkgIG1hbiBwYWdlIHNheXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM3MTAKCjIwMTItMTAtMjkgMTE6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBkb3duZ3JhZGUgJ2NyZWF0aW5nIHJhbmRvbSBzdHJlYW0taWQnIGRlYnVnIGxvZyBtZXNzYWdlCgkgIE5vIG5lZWQgZm9yIGl0IHRvIGJlIGEgd2FybmluZy4KCjIwMTItMDYtMTMgMTM6MDI6NDggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGV4Y2Vzc2l2ZWx5IGhpZ2ggbWVtb3J5IHVzYWdlIHdpdGggbG9uZyBzdHJlYW1zCgkgIExhcmdlIHN0cmVhbXMgd291bGQgaW5kZXggb25lIGZyYW1lIGV2ZXJ5IHNlY29uZCwgd2hpY2ggY2FuIGdldCBxdWl0ZQoJICBsYXJnZSB3aXRoIG11bHRpLWhvdXIgc3RyZWFtcywgc28gYWRkIGFuIGFkZGl0aW9uYWwgYnl0ZS1iYXNlZAoJICBtaW5pbXVtIGRpc3RhbmNlIGFzIHdlbGwsIHdoaWNoIHdpbGwga2ljayBpbiBmb3IgbG9uZyBzdHJlYW1zCgkgIGFuZCBtYWtlIHN1cmUgd2UgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gYSBjb3VwbGUgb2YgdGhvdXNhbmQgaW5kZXgKCSAgZW50cmllcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjA1MwoKMjAxMi0xMC0yOCAxNzoxNzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGctaTogYXZvaWQgbXVsdGlwbGUgbGlicmFyaWVzIGluIHRoZSBzaGFyZWQtbGlicmFyeSB0YWcKCSAgVXNpbmcgbXVsdGlwbGUgbGlicmFyaWVzIGNhdXNlcyBwcm9ibGVtcyBmb3IgdGhlIEMjIGJpbmRpbmdzIGFuZAoJICB3aWxsIGZvciBzaW1pbGlhciBsYW5ndWFnZXMgc3VjaCBhcyBKYXZhIHdoZW4gdGhlcmUgYXJlIGJpbmRpbmdzCgkgIGZvciB0aGVtLgoJICBBbHNvIGNoYW5nZSAtLWxpYnJhcnk9bGliZ3N0Zm9vLVgubGEgdG8gLS1saWJyYXJ5PWdzdGZvby1YIGFzCgkgIHRoZSBtYW4gcGFnZSBzdWdnZXN0cyBpdCBzaG91bGQgYmUgZG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxNQoKMjAxMi0xMC0yOCAxNTo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW5mZWF0dXJlOiBhZGQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW5fbmFtZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4MzIKCjIwMTItMTAtMjcgMTQ6NDA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbGxvdyBzZXR0aW5nIG9mIEdTVF9ERUJVRyBsZXZlbHMgYnkgbmFtZQoJICBlLmcuIEdTVF9ERUJVRz0qOklORk8sKnNyYzpMT0cKCjIwMTItMDYtMjkgMTI6Mzg6NTIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBtYWtlIHVzIG9mIHRoZSBuZXcgZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE1MgoKMjAxMi0wNi0yOSAxMjowNTozNiAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluZm86IGFkZCBhIGZ1bmN0aW9uIHRvIHNldCBkZWJ1ZyB0aHJlc2hvbGQgZnJvbSBhIEdTVF9ERUJVRy1zdHlsZSBzdHJpbmcKCSAgVXNlIHRoZSBzYW1lIGZvcm1hdCBhcyB3aXRoIHRoZSBHU1RfREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEFQSTogZ3N0X2RlYnVnX3NldF90aHJlc2hvbGRfZnJvbV9zdHJpbmcoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTUyCgoyMDEyLTEwLTI1IDE1OjI3OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBGaXggdW5pdCB0ZXN0CgoyMDEyLTEwLTIyIDEwOjEzOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGF0YXF1ZXVlL3F1ZXVlYXJyYXk6IE1ha2UgcHVibGljIEFQSSBhZ2FpbgoJICBUaGVzZSBhcmUgYWN0dWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmVlbGVtZW50cyBub3dhZGF5cy4KCSAgQWxzbyBoaWRlIGxvdHMgb2YgaW50ZXJuYWxzIGFuZCBhZGQgcGFkZGluZyBhbmQgZG9jdW1lbnRhdGlvbi4KCjIwMTItMTAtMjUgMTI6MTA6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZmVhdHVyZSBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4wLjIgPT09CgoyMDEyLTEwLTI1IDAwOjA0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMC4yCgoyMDEyLTEwLTI0IDE2OjEzOjM0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGxpbmsgdGVzdHJ0cG9vbCB0byBwdGhyZWFkcwoJICBGaXhlcyAjNjg2Nzg3CgoyMDEyLTEwLTI0IDExOjQ2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWxsb3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyBkdXJhdGlvbiBmb3IgR0FQIGV2ZW50cwoKMjAxMi0xMC0yNCAxMToxNjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgbmV3IEdDb25kIGZvciBhc3luYyBzdGF0ZSBjaGFuZ2UKCSAgVXNlIGEgbmV3IEdDb25kLCBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2ssIHRvIHNpZ25hbCBjb21wbGV0aW9uCgkgIG9mIHRoZSBhc3luYyBzdGF0ZSBjaGFuZ2UuIFdlIGNhbid0IHJldXNlIHRoZSBsaXZlIGxvY2sgYmVjYXVzZSB0aGF0CgkgIG9uZSBjYW4gYmUgbG9ja2VkIHdoZW4gdGhlIGNyZWF0ZSBmdW5jdGlvbiBibG9ja3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY3MjMKCjIwMTItMTAtMjIgMjA6MjU6NDMgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IGZpeCBtZW1vcnkgbGVhayBpbiBfZmFsbGJhY2tfbWVtX2NvcHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OAoKMjAxMi0xMC0yMiAyMDozMzowNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogcmVtb3ZlIHZhcmlhYmxlIG5vdCByZWFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NTkKCjIwMTItMTAtMjIgMTU6MDQ6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbTQvYXhfcHRocmVhZC5tNDoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBQcm9wZXJseSBjaGVjayBmb3IgcHRocmVhZAoJICBUaGUgb2xkIGNoZWNrIGZhaWxlZCBvbiBBbmRyb2lkIGZvciBleGFtcGxlLgoKMjAxMi0xMC0yMiAxMDoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBEb24ndCB1c2UgR1NUX0RFQlVHKCkgaW4gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5CgkgIElmIEdTdHJlYW1lciB3YXMgbm90IGluaXRpYWxpemVkIHlldCB0aGlzIHdpbGwgY2F1c2UgZ193YXJuaW5ncygpLgoKMjAxMi0xMC0yMCAxOTo0NDo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCBnLWkgYW5ub3RhdGlvbiBmb3IgR3N0Q29sbGVjdFBhZHNCdWZmZXJGdW5jdGlvbgoJICBXZSBwYXNzIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIHRvIHRoZSBmdW5jdGlvbi4KCjIwMTItMTAtMjAgMTI6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgZ190eXBlX2luaXQoKSBpcyBubyBsb25nZXIgcmVxdWlyZWQgYW5kIGRlcHJlY2F0ZWQgaW4gZ2xpYiA+PSAyLjM1LjAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjQ1NgoKMjAxMi0xMC0xOSAxMzozNjozMyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBHc3RTYW1wbGU6IGZpeCB0eXBvIGluIEctSSBhbm5vdGF0aW9ucywgYWxsb3dzIGNyZWF0aW5nIEdzdFNhbXBsZXMgZnJvbSBiaW5kaW5ncy4KCjIwMTItMTAtMTggMTU6MzE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY29uc3RuZXNzCgkgIHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnZ19tdXRleF9sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X3VubG9jaycgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCgoyMDEyLTEwLTE3IDE3OjM0OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBVc2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgkgIHdoZXJlIHBvc3NpYmxlLiBBdm9pZHMgc29tZSBzdHJpbmcgY29waWVzLiBBbHNvIHJlLWluZGVudAoJICBzb21lIHN0dWZmLiBBbHNvIHNvbWUgaW5kZW50IGZpeGVzIGhlcmUgYW5kIHRoZXJlLgoKMjAxMi0xMC0xNyAxNjo0OToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBiaW4sIHBpcGVsaW5lOiB1c2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgkgIFNvIHRoZSBzdHJpbmdzIGFyZW4ndCBjb3BpZWQuCgoyMDEyLTEwLTE2IDEyOjMxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFQSTogQWRkIEdzdEVsZW1lbnQ6OnBvc3RfbWVzc2FnZSgpIHZmdW5jCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGVsZW1lbnQuaAoKMjAxMi0xMC0xNiAxMTo1NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgIHB3ZzogbGluayB0byBjYXBzIGFuZCBxb3MgY2hhcHRlcnMKCjIwMTItMTAtMTYgMTE6MjA6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1xdWVyeWZuLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiBhZGQgc2VjdGlvbiBhYm91dCBxdWVyeSBmdW5jdGlvbgoKMjAxMi0xMC0xNiAxMToxMjozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWV2ZW50Zm4ueG1sOgoJICBwd2c6IGZpeCBldmVudCBmdW5jdGlvbgoKMjAxMi0xMC0xNSAxOTo1NjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IG1pbm9yIGRvY3MgZml4ZXMKCjIwMTItMTAtMTUgMTk6NTU6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZml4IGJ1ZmZlciBsZWFrIGluIGNsaXBfdGltZQoKMjAxMi0xMC0xNSAxODo0NDo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBjYWxsIGNsaXAgZnVuY3Rpb24gd2l0aCB1c2VyIGRhdGEKCjIwMTItMTAtMTUgMTQ6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IHJlb3JkZXIgc29tZSBjaGFwdGVycwoJICBSZW9yZGVyIHNvbWUgY2hhcHRlciBzbyB0aGF0IHRoZXkgbWF0Y2ggdGhlIHN0ZXBzIGRvbmUgaW4gdGhlCgkgIGVsZW1lbnQuCgoyMDEyLTEwLTE1IDEzOjU5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHNtYWxsIHR3ZWFrcyB0byBuZWdvdGlhdGlvbgoKMjAxMi0xMC0xNSAxMzo0NDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBpbXByb3ZlIG5lZ290aWF0aW9uIGRvY3VtZW50YXRpb24gc29tZSBtb3JlCgoyMDEyLTEwLTE1IDEyOjEwOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiB1cGRhdGUgbmVnb3RpYXRpb24gcGFydAoKMjAxMi0xMC0xNSAxMjoxMDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIHN5bmNocm9uaXphdGlvbiBkb2NzCgoyMDEyLTEwLTEyIDE2OjU4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHdvcmsgb24gcmV3cml0aW5nIGNhcHMgbmVnb3RpYXRpb24gZG9jcwoKMjAxMi0xMC0xMiAxNjowOToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkZXNpZ246IHJlbmFtZSBwYXNzdGhyb3VnaCBuZWdvdGlhdGlvbgoJICBSZW5hbWUgcGFzc3Rocm91Z2ggbmVnb3RpYXRpb24gdG8gdHJhbnNmb3JtIG5lZ290aWF0aW9uIHRvIGF2b2lkCgkgIGNvbmZ1c2lvbiB3aXRoIHBhc3N0aHJvdWdoIG9wZXJhdGlvbi4KCjIwMTItMTAtMTIgMTM6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIG1hbnVhbDogbm8gbW9yZSBuZXctZGVjb2RlZC1wYWQKCjIwMTItMTAtMTIgMTM6MTM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY29tcGlsaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgbWFudWFsOiBtb3ZlIGVtYmVkZGluZyBlbGVtZW50cyB0byBzZXBhcmF0ZSBjaGFwdGVyCgoyMDEyLTEwLTEyIDEzOjAxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSAgcHdnOiBzbWFsbCBleGFtcGxlIGZvciB0aHJvdHRsZQoKMjAxMi0xMC0xMiAxMjo1NTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogYWRkIGluZm8gYWJvdXQgUW9TCgoyMDEyLTEwLTEyIDEyOjU1OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgcHdnOiBhZGRzIHNvbWUgbW9yZSBsaW5rcwoKMjAxMi0xMC0xMiAxMjo1NTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgcW9zOiBtZXNzYWdlcyBhcmUgcG9zdGVkLCBub3QgZHJvcHBlZAoKMjAxMi0xMC0xMiAxMDozNTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2NvbW11bmljYXRpb24ucG5nOgoJKiBkb2NzL21hbnVhbC9kaWFncmFtcy1nZW5lcmFsLnN2ZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSogZG9jcy9tYW51YWwvZ3N0cmVhbWVyLW92ZXJ2aWV3LnBuZzoKCSogZG9jcy9tYW51YWwvbWltZS13b3JsZC5wbmc6CgkqIGRvY3MvbWFudWFsL3RocmVhZC1idWZmZXJpbmcucG5nOgoJICBtYW51YWw6IHVwZGF0ZSBncmFwaGljcwoKMjAxMi0xMC0xMSAxNzoxMDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGV4YW1wbGUgb2Ygbm8tcmVidWZmZXIgYnVmZmVyaW5nIHN0cmF0ZWd5CgoyMDEyLTEwLTExIDE3OjEwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIG1hbnVhbDogc21hbGwgdHdlYWtzCgoyMDEyLTEwLTExIDE3OjA5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBidWZmZXJpbmcgdGltZSBsZWZ0IGlzIGluIG1pbGxpc2Vjb25kcwoKMjAxMi0xMC0xMSAxNzowNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgbWFudWFsOiBhZGQgc29tZSB0ZXh0IGFib3V0IGJpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIKCjIwMTItMTAtMTAgMTY6NDM6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogdGFsayBhYm91dCBwbGF5c2luawoJICBUYWxrIGFib3V0IHBsYXlzaW5rIGFuZCBnaXZlIGFuIGV4YW1wbGUgb2YgaXRzIHVzYWdlLgoKMjAxMi0xMC0xMCAxNDoxMTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgcmVwbGFjZSBzb21lIHBsYXliaW4yIC0+IHBsYXliaW4KCjIwMTItMTAtMTAgMTM6MDg6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtcGxheWJhY2sueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHNvbWV0aGluZyBhYm91dCB1cmlkZWNvZGViaW4KCjIwMTItMTAtMTAgMTE6MzU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZW5zdXJlIGFsbCB0aW1lc3RhbXBzIGFyZSBpbiBzYW1lIHRpbWUgZG9tYWluCgkgIC4uLiBieSBub3Qgb25seSBwcm9jZXNzaW5nIGluY29taW5nIGJ1ZmZlcnMgdGhyb3VnaCBhIGNsaXAgZnVuY3Rpb24sCgkgIGJ1dCBhbHNvIG90aGVyIHRpbWVzdGFtcHMgc3VjaCBhcyB0aG9zZSBjb21pbmcgZnJvbSBHQVAgZXZlbnQuCgoyMDEyLTEwLTEwIDEwOjM2OjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBhZGp1c3Qgc29tZSBwYXJhbWV0ZXIgbWlzbWF0Y2hlcwoKMjAxMi0xMC0xMCAxMTozNDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG93bmdyYWRlIEdTVF9XQVJOSU5HIHRvIEdTVF9JTkZPCgkgIEl0J3MgdXN1YWxseSBub3QgYSBwcm9ibGVtIGlmIGEgcXVlcnkgZmFpbHMgaWYgdGhlcmUncyBubyBwZWVyLAoJICBlc3BlY2lhbGx5IGFzIGl0IHdpbGwgaGFwcGVuIGR1cmluZyBwYWQgbGlua2luZyAoY2FwcyBxdWVyeSkKCSAgcXVpdGUgb2Z0ZW4gYW5kIHNwYW1zIHRoZSBsb2dzLgoKMjAxMi0xMC0wOSAxNzowNjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcmVtb3ZlIG91dGRhdGVkIGF1dG9wbHVnZ2luZyBzZWN0aW9uCgkgIFJlbW92ZSBhdXRvcGx1Z2dpbmcgY2hhcHRlciBhbmQgcG9pbnQgdG8gZGVjb2RlYmluL3BsYXliaW4gZXhhbXBsZXMuCgoyMDEyLTEwLTA5IDE2OjEyOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogVGFsayBhYm91dCB0aHJlYWRpbmcKCSAgUmV3b3JrIHRoZSB0aHJlYWRpbmcgY2hhcHRlci4KCSAgVGFsayBhYm91dCBzdHJlYW0tc3RhdHVzIGFuZCBnaXZlIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIGNoYW5nZQoJICB0aGUgdGhyZWFkIHByaW9yaXRpZXMuCgoyMDEyLTEwLTA5IDE1OjU3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBpbXByb3ZlIHN0cmVhbS1zdGF0dXMgZG9jdW1lbnQKCjIwMTItMTAtMDkgMTU6MzE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIHN0YXJ0X2NvbXBsZXRlCgkgIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIGNhbiBmYWlsIHdoZW4gdGhlIHRocmVhZCBjb3VsZCBub3QgYmUKCSAgc3RhcnRlZCwgZm9yIGV4YW1wbGUuIE1ha2Ugc3VyZSBpdCBjYXVzZXMgdGhlIHN0YXRlIGNoYW5nZSB0byBmYWlsIGJ5CgkgIHJldHJpZXZpbmcgdGhlIHJlc3VsdCBmcm9tIF9zdGFydF9jb21wbGV0ZSgpLgoKMjAxMi0xMC0wOSAxNTozMTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTEwLTA5IDEwOjI0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHNtYWxsIGRvY3MgZml4ZXMgYW5kIHJlbW92ZSBhIDAuMTEgZml4bWUKCjIwMTItMTAtMDggMTY6NDI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWJ1ZmZlcmluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogdGFsayBhIGJpdCBhYm91dCBidWZmZXJpbmcKCjIwMTItMTAtMDggMTM6MjI6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgIGRvY3M6IGltcHJvdmUgY2xvY2sgY2hhcHRlcgoKMjAxMi0xMC0wOCAxMDozOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGV4YW1wbGUgZm9yIGVmZmVjdCBzd2l0Y2hpbmcKCjIwMTItMTAtMDggMDk6MTE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBkb2NzOiBzbWFsbCB1cGRhdGVzCgoyMDEyLTEwLTA3IDE2OjQ4OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWctZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjEgPT09CgoyMDEyLTEwLTA3IDEzOjEwOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjEKCjIwMTItMTAtMDcgMDA6MTU6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICB0ZXN0czogdXBkYXRlIHN0cnVjdF9pMzg2LmggZm9yIEFCSSBjaGVja3MKCSAgRml4ZXMgbWFrZSBjaGVjayBvbiAzMi1iaXQgeDg2LgoKMjAxMi0xMC0wNiAxNzoyNjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSAgdGVzdHM6IHVwZGF0ZSBzdHJ1Y3RfcHBjMzIuaCBmb3IgQUJJIGNoZWNrcwoJICBGaXhlcyBtYWtlIGNoZWNrIG9uIDMyLWJpdCBQb3dlclBDLgoKMjAxMi0xMC0wNiAxNDo1NTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmMwYjUyYyB0byA2YmI2OTUxCgoyMDEyLTEwLTA2IDEyOjA4OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkgIGV4YW1wbGVzOiAuZ2l0aWdub3JlIG1vcmUgYmluYXJpZXMgZnJvbSB0aGUgbWFudWFsCgoyMDEyLTEwLTA1IDE2OjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBvYnNvbGV0ZSBwYXJ0LWJsb2NrIGRvY3VtZW50CgkgIE1lcmdlIHRoZSBwYXJ0LWJsb2NrIGRvY3VtZW50IGludG8gcGFydC1wcm9iZXMKCjIwMTItMTAtMDUgMDk6NDI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVzZW5kIGRyb3BwZWQgZXZlbnRzCgkgIElmIHdlIHRyeSB0byBwdXNoIHN0aWNreSBldmVudHMgYnV0IGEgcHJvYmUgZHJvcHBlZCB0aGVtLCB3ZSBkb24ndCBtYXJrCgkgIHRoZSBldmVudCBhcyByZWNlaXZlZCBhbmQgbWFyayB0aGUgcGFkIGFzIFBFTkRJTkdfRVZFTlRTLiBUaGlzIGVuc3VyZXMKCSAgdGhhdCB3ZSByZXNlbmQgdGhlIGV2ZW50IHRoZSBuZXh0IHRpbWUuIEZvciB0aGlzIHdlIG5lZWQgdG8gbGV0IHRoZQoJICBjdXN0b20gZmxvdyByZXR1cm4gZnJvbSB0aGUgcHJvYmUgdHJpY2tsZSB1cCB0bwoJICBnc3RfcGFkX3B1c2hfZXZlbnRfdW5jaGVja2VkKCkgc28gdGhhdCB3ZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuCgkgIE9LIGFuZCBEUk9QUEVEIHByb2JlIHJldHVybnMuCgoyMDEyLTEwLTA1IDA3OjE0OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHN0b3JlIHN0aWNreSBldmVudHMgb24gZmx1c2hpbmcvRU9TIHBhZHMKCSAgRG9uJ3Qgc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZyBvciBFT1MgcGFkcy4gVGhpcyB3YXMgZG9uZQoJICBjb3JyZWN0bHkgZm9yIHNvdXJjZSBwYWRzIGJ1dCBub3QgZm9yIHNpbmsgcGFkcy4KCjIwMTItMTAtMDQgMTE6MjQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZG9jczogYWRkIFNpbmNlIG1hcmtlcnMgZm9yIG5ldyBBUEkgYW5kIGFkZCBpdCB0byBkb2NzIGFuZCAuZGVmIGZpbGUKCjIwMTItMTAtMDQgMTE6NTA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBkeW5hbWljIGNhcHNmaWx0ZXIgZXhhbXBsZQoKMjAxMi0xMC0wNCAxMToxODoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBkb24ndCBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBzaG91bGQgbm90IHRyeSB0byBuZWdvdGlhdGUgaW4gcGFzc3Rocm91Z2ggbW9kZSBidXQKCSAgcmVzcGVjdCB0aGUgb3JkZXIgb2Ygd2hhdCB3ZSByZXR1cm4gaW4gdGhlIHRyYW5zZm9ybV9jYXBzIG1ldGhvZC4KCSAgQSB0eXBpY2FsIGNhc2UgaXMgdGhhdCB5b3Ugc3BlY2lmeSBzb21lIHNwZWNpZmljIG5ldyBjYXBzIGluIHRoZQoJICBjYXBzIHByb3BlcnR5IGJ1dCBhbHNvIGFsbG93IHRoZSBjdXJyZW50IGNhcHMgdG8gcGFzcy4KCjIwMTItMTAtMDQgMTE6MTU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuczogYWRkIGFuIG9wdGlvbiB0byBwcmVmZXIgcGFzc3Rocm91Z2gKCSAgQmFzZXRyYW5zZm9ybSBhdHRlbXB0cyB0byBkbyBwYXNzdGhyb3VnaCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIG9mCgkgIHRoZSB0cmFuc2Zvcm1fY2FwcyBtZXRob2QuIEFkZCBhIG1ldGhvZCB0byBkaXNhYmxlIHRoaXMuCgkgIFRoaXMgaXMgbmVlZGVkIGZvciBlbGVtZW50cyBsaWtlIGNhcHNmaWx0ZXIgdGhhdCB3YW50IHRvIHRyYW5zZm9ybSBjYXBzCgkgIGJhc2VkIG9uIHRoZSBvcmRlciBvZiB0aGUgY2FwcyBwcm9wZXJ0eS4KCjIwMTItMTAtMDQgMTA6MDE6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIHNvbWUgY29tbWVudHMKCjIwMTItMTAtMDMgMTc6MTc6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB0YWxrIHNvbWUgbW9yZSBhYm91dCBkeW5hbWljIHBpcGVsaW5lcwoKMjAxMi0xMC0wMyAxMzo0OTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvbid0IHB1dCBlc3NlbnRpYWwgbG9naWMgaW4gZ19yZXR1cm5fdmFsXyoKCjIwMTItMTAtMDMgMTM6NDU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGRvIG1ldGFkYXRhIHJlZ2lzdHJhdGlvbiB0aHJlYWRzYWZlCgkgIFdlIG5lZWQgdG8gdXNlIGdfb25jZSB0byByZWdpc3RlciB0aGUgbWV0YWRhdGEgaW1wbGVtZW50YXRpb25zCgkgIG9ubHkgb25jZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODUzMzIKCjIwMTItMTAtMDMgMTM6MzU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBoYW5kbGUgbXVsdGlwbGUgaW1wbGVtZW50YXRpb24gcmVnaXN0cmF0aW9uCgkgIEZpcnN0IGNoZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IHJlZ2lzdGVyIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWZvcmUKCSAgbWFraW5nIGEgR3N0TWV0YUluZm8uIElmIHdlIGNhbid0IHJlZ2lzdGVyIHdlIHdvdWxkIG90aGVyd2lzZSBlbmQKCSAgdXAgd2l0aCBhbiB1bmRlZmluZWQgdHlwZSBhbmQgYW4gaW52YWxpZCBHc3RNZXRhSW5mby4KCSAgSXQncyBwb3NzaWJsZSB0aGF0IHR5cGUgcmVnaXN0cmF0aW9uIGZhaWxzIGJlY2F1c2UgYW5vdGhlciBtZXRhZGF0YQoJICB3aXRoIHRoZSBzYW1lIGltcGxlbWVudGF0aW9uIG5hbWUgd2FzIGFscmVhZHkgcmVnaXN0ZXJlZC4KCjIwMTItMTAtMDMgMTM6MTI6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiB1c2UgQ0RBVEEgZm9yIGNvZGUgYmxvY2tzCgkgIHRoZW4gd2UgZG9uJ3QgaGF2ZSB0byBlc2NhcGUgc3BlY2lhbCB0b2tlbiBhbnltb3JlLgoKMjAxMi0xMC0wMyAxMzowOTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIHBhcnRpYWwgcHJlcm9sbCBleGFtcGxlIHdpdGggcHJvYmVzCgoyMDEyLTEwLTAzIDEwOjUzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogYWRkIG1vcmUgc3R1ZmYgYWJvdXQgcHJvYmVzCgoyMDEyLTEwLTAyIDE3OjIzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogc3RhcnQgdGFsa2luZyBhYm91dCBkeW5hbWljIHBpcGVsaW5lIGNoYW5nZXMKCjIwMTItMTAtMDIgMTY6NDc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBtb3ZlIHNlY3Rpb24gYXJvdW5kCgoyMDEyLTEwLTAyIDE2OjQ0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiBhZGQgYXBwc2luayBkb2NzCgoyMDEyLTEwLTAyIDE2OjE1OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcHdnOiByZXdpdGUgZGF0YS1hY2Nlc3MgY2hhcHRlcgoJICBSZXdyaXRlIHRoZSBkYXRhLWFjY2VzcyBjaGFwdGVyIHNvIHRoYXQgd2UgdGFsayBhYm91dCBhcHBzcmMgaW5zdGVhZAoJICBvZiB0aGUgZmFrZXNyYyBoYWNrcy4KCjIwMTItMTAtMDIgMTM6MjI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBwby9SRUFETUU6CgkqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBkb2NzOiBzb21lIDAuMTAgLT4gMS4wIGNoYW5nZXMKCjIwMTItMTAtMDIgMTM6MTI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBleGFtcGxlCgoyMDEyLTEwLTAyIDEyOjQ5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMi0xMC0wMiAxMTozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogZmxlc2ggb3V0IGFsbG9jYXRpb24gZG9jcwoJICBBZGQgbW9yZSBleGFtcGxlcy4KCSAgQWRkIGV4YW1wbGUgZm9yIGltcGxlbWVudGluZyBuZXcgbWV0YWRhdGEuCgkgIEFkZCBwcm9ncmFtcyB0byB0aGUgZG9jcyAoYWdhaW4/KSwgaXQgc2VlbXMgdG8gY29udGFpbiB1c2VmdWwgaW5mby4KCjIwMTItMTAtMDEgMTY6NTk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy90aXRsZXBhZ2UueG1sOgoJICBwd2c6IGFkZCBuZXcgYXV0aG9yCgoyMDEyLTEwLTAxIDE2OjU1OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkgIHB3ZzogYWRkIGFsbG9jYXRpb24gZG9jcwoKMjAxMi0xMC0wMSAxNjo0NjowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDEyLTEwLTAxIDEzOjI4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogbW9yZSBkb2NzIGZpeGVzCgkgIEZpeCBhbGxvY2F0b3IgZGVzaWduIGRvYwoJICBBZGQgYmVnaW5uaW5nIG9mIGFsbG9jYXRpb24gY2hhcHRlciBpbiB0aGUgcHdnCgoyMDEyLTEwLTAxIDExOjQ3OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW1hbmFnZXIueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICBwd2c6IGZpbmFsIGNsZWFudXBzIGZvciAxLjAKCjIwMTItMTAtMDEgMTE6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgcHdnOiBmaXggZXZlbnRzIGFuZCBiYXNlIGNsYXNzZXMKCjIwMTItMTAtMDEgMTA6NDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10YWdnaW5nLnhtbDoKCSAgcHdnOiBmaXh1cCB0YWcgZG9jcwoKMjAxMi0xMC0wMSAwOTo0ODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHBhdGNoIHVwIHRoZSBzZWN0aW9uIGFib3V0IGludGVyZmFjZXMKCjIwMTItMDktMzAgMDQ6MDU6MzYgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggc2VhbWxlc3Mgc2VnbWVudCBmdW5jdGlvbgoJICBUaGUgM3JkIHBhcmFtZXRlciBvZiBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQgaW4KCSAgMC4xMCBpcyB0aGUgdGltZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VnbWVudCwKCSAgbm90IHRoZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHNlZ21lbnQuIEZpeCB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyLAoJICB0aGUgZG9jcywgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmVlZHMgb2YgdGhlIG9ubHkKCSAgZXh0YW50IGNvbnN1bWVyOiBEVkQgcGxheWJhY2suCgoyMDEyLTA5LTI5IDE0OjM1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB2YWx1ZTogYXZvaWQgZHVwbGljYXRlcyB3aGVuIGludGVyc2VjdGluZyBsaXN0cwoJICBGaXhlcyBuZWdvdGlhdGlvbiB0YWtpbmcgYSByaWRpY3Vsb3VzIGFtb3VudCBvZgoJICB0aW1lIChtdWx0aXBsZSAxMHMgb2Ygc2Vjb25kcyBvbiBhIGNvcmUyKSB3aGVuCgkgIHRoZXJlIGFyZSBkdXBsaWNhdGUgZW50cmllcyBpbiBsaXN0cy4KCSAgQ291bGQgaGF2ZSBhIG5lZ2F0aXZlIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBvdGhlcgoJICBzY2VuYXJpb3MgYmVjYXVzZSB3ZSBub3cgaGF2ZSB0byBpdGVyYXRlIHRoZQoJICBkZXN0IGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcywgYnV0IHdlIGRvbid0CgkgIGhhdmUgYSBsb3Qgb2YgbGlzdHMgYW55IG1vcmUgdGhlc2UgZGF5cywgYW5kCgkgIHRoZXkgdGVuZCB0byBiZSBzbWFsbCBhbnl3YXkuIFRoZSBuZWdhdGl2ZXMKCSAgYXJlIGhvcGVmdWxseSBjb3VudGVyZWQgYnkgdGhlIHBvc2l0aXZlIGVmZmVjdHMKCSAgb2YgcmVkdWNpbmcgdGhlIGxpc3QgbGVuZ3RoIGVhcmx5IG9uIGluIHRoZQoJICBwcm9jZXNzLiBBbmQgaW4gYW55IGNhc2UsIGl0J3MgdGhlIHJpZ2h0IHRoaW5nCgkgIHRvIGRvLgoJICBCYXNlZCBvbiBwYXRjaCBieSBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk4MQoKMjAxMi0wOS0yOSAwMDoyNzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogbWlub3IgdXBkYXRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjExMjEKCjIwMTItMDktMjggMjM6NTM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJICBmYXE6IGFkZCBtaXNzaW5nIDwvcGFyYT4gdGFnCgoyMDEyLTA5LTI4IDE1OjE3OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtaW5pb2JqZWN0OiBBbHdheXMgcmVqZWN0IFdSSVRFIGxvY2tzIG9uIFJFQURPTkxZIG1pbmlvYmplY3RzCgkgIFZlcmlmeSB0aGF0IG1hcHBpbmcgYSByZWFkLW9ubHkgbWVtb3J5IGFzIHJlYWQgZG9lc250IG1ha2UgaXQgd3JpdGFibGUKCjIwMTItMDktMjggMjA6Mzg6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL3JhbmRvbS9hdXRvdG9vbHM6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBwdXJnZSBhbGwgbWVudGlvbiBvZiBsaWJvaWwsIHVwZGF0ZSBGQVEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzI4NQoKMjAxMi0wOS0yOCAxNjowMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgMS4wCgkgIFJld3JpdGUgY2xvY2sgcGFydC4KCSAgc3RhcnQgb24gaW50ZXJmYWNlcwoKMjAxMi0wOS0yOCAxMzoyNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICBwd2c6IHJld29yayBkeW5hbWljIHBhZHMgZG9jcwoKMjAxMi0wOS0yOCAxMzoyNTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBwd2c6IHJld29yayBzY2hlZHVsaW5nIGRvY3MKCjIwMTItMDktMjggMTM6MjQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBwd2c6IHJlbW92ZSBzb21lIEdTVF9CT0lMRVJQTEFURQoKMjAxMi0wOS0yOCAxMToxODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBhY3RpdmF0aW9uIGRlc2lnbiBkb2NzCgoyMDEyLTA5LTI4IDEwOjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IGFjdGl2YXRlIGRvY3MKCjIwMTItMDktMjggMTA6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogZml4IG1vcmUgbmVnb3RpYXRpb24gZm9yIDEuMAoKMjAxMi0wOS0yNyAxNjo1OTowNCArMDIwMCAgT2xpdmllciBCbGluIDxvbGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBkbyBub3QgcmVnaXN0ZXIgcHJpbnRmIGV4dGVuc2lvbiBmb3IgJXAKCSAgVGhpcyBoYXBwZW5lZCB3aGVuIGdsaWIgd2FzIG5vdCB1c2luZyBzeXN0ZW0gcHJpbnRmLCBhbmQgY2F1c2VkIHRoZQoJICBpbnRlcm5hbCBnc3RyZWFtZXIgcHJpbnRmIGV4dGVuc2lvbnMgdG8gYmUgdXNlZCBmb3IgYWxsICVwIHByaW50ZnMsCgkgIGNhdXNpbmcgY3Jhc2hlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk3MAoKMjAxMi0wOS0yNyAxNzoyMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBmaXggc29tZSBuZWdvdGlhdGlvbiB0byAxLjAKCjIwMTItMDktMjcgMTQ6NDI6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIHB3ZzogbW9yZSB1cGRhdGVzIGZvciAxLjAKCjIwMTItMDktMjcgMTM6NTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctZXZlbnRmbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IG1vcmUgdXBkYXRlcyBmb3IgMS4wCgoyMDEyLTA5LTI3IDExOjUzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiB1cGRhdGUgYm9pbGVyIHRvIDEuMAoKMjAxMi0wOS0yNyAxMTowNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogYWxzbyByZWYgdGhlIGludGVybmFsIHBhZCBmb3IgYWN0aXZhdGUgZnVuY3Rpb25zCgkgIEFsc28gdGFrZSBhIHJlZiB0byB0aGUgaW50ZXJuYWwgcGFkIGluIHRoZSBhY3RpdmF0ZSBmdW5jdGlvbnMKCjIwMTItMDktMjQgMTg6MjY6MTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcHJveHlwYWQ6IEhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIHBhZCB3aGlsZSBwdXNoaW5nIHRocm91Z2ggaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDgwOQoKMjAxMi0wOS0yNSAxNDo0NDo1NCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogVGVzdCB0aGUgY2FzZSB3aGVyZSBnaG9zdCBwYWRzIGFyZSByZW1vdmVkIHdoaWxlIHN0cmVhbWluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0ODA5CgoyMDEyLTA5LTI3IDA5OjQ0OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICB0ZXN0czogZW5hYmxlIGxpYnJhcnkgYWJpIGNoZWNrcwoKMjAxMi0wOS0yNiAyMzozMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCB1cCBiYXNlc3JjL2Jhc2VzaW5rIGRvY3MgZm9ybWF0dGluZwoKMjAxMi0wOS0yNiAxNzowODozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrcwoJICBFbmFibGUgYWJpIGNoZWNrcyBhZ2Fpbi4KCSAgRml4IGFiaSBzaXplcyBmb3IgeDg2XzY0LCBjb3B5IHRoZSBmaWxlIHRvIG90aGVyIGFyY2hzLgoKMjAxMi0wOS0yNiAxNjoyNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHVwZGF0ZSBkb2NzIGZvciAxLjAgQVBJCgoyMDEyLTA5LTI2IDE0OjE1OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiB1c2UgcHJvcGVyICd0cmFuc2ZlciBmbG9hdGluZycgYW5ub3RhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MDk5CgoyMDEyLTA5LTI2IDEzOjE5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IHNlbmQgU1RSRUFNLVNUQVJUIGV2ZW50CgkgIFNlbmQgYSBTVFJFQU1fU1RBUlQgZXZlbnQgd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIGluIHB1bGwgbW9kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQyNAoKMjAxMi0wOS0yNiAxMDo1NToyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBtYXJrIEdzdFNlZ21lbnRGbGFncyBhcyBmbGFncyByYXRoZXIgdGhhbiBlbnVtCgkgIC4uLiB3aGljaCByZWFsbHkgbWFrZXMgYSBkaWZmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZQoJICBhIGZsYWdzIHZhbHVlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgZmxhZ3MsIHdoaWNoIGlzIGhhcmQKCSAgdG8gZG8gYXMgYW4gZW51bSB0eXBlLgoKMjAxMi0wOS0yNiAxMDo1NDowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiByZXRpbWVzdGFtcCBib3RoIHB0cyBhbmQgZHRzIHdoZW4gZG9pbmcgc28KCjIwMTItMDktMjYgMTU6MDE6NDIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogTW92ZSBzb21lIHJ1biBvZiB0aGUgbWlsbCBkZWJ1ZyBzdGF0ZW1lbnRzIHRvIExPRyBsZXZlbAoKMjAxMi0wOS0yNiAxNDoyMzo1MiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBPdXRwdXQgdGltZXN0YW1wcyBhZnRlciBhIHNlZWsuCgkgIFJlaW5pdGlhbGlzZSB0aGUgRFRTIGFmdGVyIGEgc2VlayBzbyBhcyB0byBjb250aW51ZQoJICBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgd2hlbiBiYXNlcGFyc2UgaXMgbm90IGRvd25zdHJlYW0KCSAgb2YgYSBkZW11eGVyLgoJICBGaXhlczogIzY4NDUzOAoKMjAxMi0wOS0yNSAxNzowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICBkb2NzOiB1cGRhdGVzCgkgIE1JTUUtdHlwZSAtPiBNZWRpYSB0eXBlCgkgIEZpeCBzb21lIG9sZCBnc3QtaW5zcGVjdCBvdXRwdXQKCjIwMTItMDktMjUgMTY6NTM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIDEuMCBBUEkKCjIwMTItMDktMjUgMTU6MTE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgc2VjdGlvbiBmb3IgbWV0YWRhdGEKCjIwMTItMDktMjUgMTM6MDk6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBGYWlsIGlmIG5vIHZhbGlkIGVsZW1lbnQgZmFjdG9yeSBtZXRhZGF0YSBpcyBzZXQKCjIwMTItMDktMjUgMTM6MDk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEZhaWwgaWYgbm8gdmFsaWQgcGx1Z2luIG1ldGFkYXRhIGlzIHNldAoKMjAxMi0wOS0yNSAxNTowNjo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhbHNvIHRyYWNrIGFuZCBzdG9yZSBzZWdtZW50IGluZm8gaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0yNSAxNDo0MDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1kYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGZpeCB1cCB0aGUgbWFudWFsCgkgIE1JTUUtdHlwZSAtPiBtZWRpYSB0eXBlcwoJICBGaXggdXAgdGhlIG1hbnVhbCBpbiB2YXJpb3VzIHBsYWNlcyB3aXRoIHRoZSAxLjAgd2F5IG9mIGRvaW5nIHRoaW5ncwoJICBzdWNoIGFzIHByb2Jlcywgc3RhdGljIGVsZW1lbnRzLCBzY2hlZHVsaW5nLCAuLi4KCSAgQWRkIHBvcnRpbmcgZnJvbSAwLjEwIHRvIDEuMCBjaGFwdGVyLgoJICBBZGQgcHJvYmUgZXhhbXBsZSB0byBidWlsZC4KCSAgUmVtb3ZlIHNvbWUgZG9jcyBmb3IgcmVtb3ZlIGNvbXBvbmVudHMgc3VjaCBhcyBHc3RNaXhlciBhbmQKCSAgR3N0UHJvcGVydHlQcm9iZSwgWE1MLi4uCgoyMDEyLTA5LTI0IDE2OjUwOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgZG9jczogZ3N0LXB5dGhvbiBpcyBubyBtb3JlCgkgIGdzdC1weXRob24gaXMgbm8gbW9yZSBhbmQgZ3N0LWxpYmF2IGlzIG9uZSBvZiB0aGUgbWFpbiBtb2R1bGVzIHRoYXQKCSAgd2UgcmVsZWFzZS4KCjIwMTItMDktMjQgMTY6MzE6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCBiYXNlc2luayBkb2NzCgoyMDEyLTA5LTI0IDE2OjI1OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgZG9jczogdXBkYXRlIEZBUQoJICBDaGFuZ2UgdmVyc2lvbnMuCgkgIFVzZSB0b29scyB3aXRoIHZlcnNpb24gcHJlZml4LgoKMjAxMi0wOS0yNSAxMzoxNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciB0eXBvIGZpeAoKMjAxMi0wOS0yNSAxMzoxNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggdHlwbyBpbiB0cmFuc2xhdGVkIHN0cmluZwoJICBTcG90dGVkIGJ5IENocmlzIExlb25hcmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ3NTUKCjIwMTItMDktMjUgMDk6Mjc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogUmVtb3ZlIDAuMTEuOVgtPjEuMC4wIHZlcnNpb24gbWFuZ2xpbmcKCjIwMTItMDktMjUgMDE6MDI6MDMgKzAxMDAgIEpvc2VwIFRvcnJhIFZhbGxlcyA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IHByaW50ZiBmb3JtYXQgZml4ZXMgdG8gbWFrZSBpbnRlbCBjb21waWxlciBoYXBweQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjU3CgoyMDEyLTA5LTI1IDAwOjU1OjU5ICswMTAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy90b29scy5oOgoJICBNYWtlIGludGVsIGNvbXBpbGVyIGhhcHBpZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MjY1NwoKMjAxMi0wOS0yNCAxNjozMTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgKGJ1ZyBmaXhpbmcpCgo9PT0gcmVsZWFzZSAxLjAuMCA9PT0KCjIwMTItMDktMjQgMTI6MTk6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMAoKMjAxMi0wOS0yNCAwMDozOToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogdXBkYXRlIDAuMTEgcmVmZXJlbmNlcyBpbiBwb3J0aW5nIGd1aWRlCgoyMDEyLTA5LTI0IDAwOjM3OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiByZW5hbWUgcG9ydGluZy10by0wLjExLnR4dCB0byBwb3J0aW5nLXRvLTEuMC50eHQKCjIwMTItMDktMjMgMTk6NTY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IEZJWE1FIHByaW50aW5nIGZvciB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkKCjIwMTItMDktMjMgMTc6MzA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB1cGRhdGUgcmVsZWFzZSBkb2MKCSAgQ3JlYXRlIHRhZ3MgZm9yIHJlbGVhc2VzIHdpdGhvdXQgdGhlIHVnbHkgUkVMRUFTRS0gcHJlZml4LgoKMjAxMi0wOS0yMyAxMjo0MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvbid0IGZvcndhcmQgcmFuZG9tIHN0cmVhbS1zdGFydCBldmVudAoJICBJdCdzIG5vdCByaWdodCwgYW5kIHdlIGRvbid0IGtub3cgd2hhdCBleHRyYSBwcm9wZXJ0aWVzCgkgIHRoYXQgZXZlbnQgbWlnaHQgaGF2ZSBzZXQgaW4gZnV0dXJlIChlLmcuIHNwYXJzZW5lc3MpLgoJICBUaGlzIGNoYW5nZSBtZWFucyBjb2xsZWN0cGFkIHVzZXJzIG5lZWQgdG8gY3JlYXRlIHRoZWlyCgkgIG93biBzdHJlYW0tc3RhcnQgZXZlbnQgbm93LiBXZSBjb3VsZCBhZGQgYSB1dGlsaXR5CgkgIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIHN0cmVhbS1zdGFydCBldmVudCBiYXNlZCBvbgoJICB0aGUgaW5wdXQgc3RyZWFtLXN0YXJ0IGV2ZW50cy4KCjIwMTItMDktMjIgMTY6MDc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRmOTYyZjcgdG8gNmMwYjUyYwoKMjAxMi0wOS0yMSAyMToxMzoyNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTIxIDIxOjEzOjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiB1cGRhdGUgY29udHJvbGxlciBkb2N1bWVudGF0aW9uCgoyMDEyLTA5LTE4IDE1OjIyOjAzICswMjAwICBCYXN0aWFuIFdpbmtsZXIgPGJ1ekBuZXRidXoub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IEZpeCBzeW50YXggZm9yIHZhbHVlIGxpc3RzIGluIGNhcHMgc3RyaW5ncwoJICBWYWx1ZSBsaXN0cyB1c2UgY3VybHkgYnJhY2tldHMgaW5zdGVhZCBvZiBwYXJlbnRoZXNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MjkzCgoyMDEyLTA5LTIwIDE0OjQ4OjE3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIHBhZCBwcm9iZXMgb25seSBvbmNlCgkgIEFsc28gYWRkIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgaWYgYSBwYWQgcHJvYmUgaXMgcmVtb3ZlZCB3aGlsZSBpdCdzCgkgIGNhbGxiYWNrIGlzIHJ1bm5pbmcsIHRoZSBjbGVhbnVwX2hvb2sgaXNuJ3QgY2FsbGVkIGFnYWluIGlmIGl0CgkgIHJldHVybnMgR1NUX1BBRF9QUk9CRV9SRU1PVkUKCjIwMTItMDktMTkgMTU6MDE6NDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogQWRkIGZ1bmN0aW9ucyB0byBzYWZlbHkgYWNjZXNzIEdzdFByb2JlSW5mbyBkYXRhIHBvaW50ZXIKCSAgVGhpcyBpcyBzbyB0aGF0IGludHJvc3BlY3Rpb24gYmFzZWQgYmluZGluZ3MgY2FuIGFjY2VzcyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQwMgoKMjAxMi0wOS0xOSAyMzoyNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byAwLjggR3N0QmluIEFQSSBmcm9tIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MDQ4CgoyMDEyLTA5LTE5IDE1OjE0OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHRyYW5zZm9ybSBHQVAgZXZlbnQgaW4gc2luZ2xlIHNlZ21lbnQgbW9kZQoKMjAxMi0wOS0xOSAwOTo0NDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogY29sbGVjdHBhZHMgZG9jIGZpeGVzCgoyMDEyLTA5LTE4IDIxOjQ5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNoZWNrIGFjcXVpcmUgcmVzdWx0IHZhbHVlCgkgIENoZWNrIHRoZSByZXN1bHQgdmFsdWUgZnJvbSBfYnVmZmVyX3Bvb2xfYWNxdWlyZSgpIGFuZCByZXR1cm4gdGhlCgkgIHZhbHVlIHdoZW4gYWxsb2NhdGlvbiBmYWlsZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQyODUKCjIwMTItMDktMTggMTI6MTQ6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByZWZjb3VudCBidWcgYnkgdW5yZWZmaW5nIHRoZSBjb3JyZWN0IHZhcmlhYmxlCgo9PT0gcmVsZWFzZSAwLjExLjk5ID09PQoKMjAxMi0wOS0xNyAxNzo1Njo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTkKCjIwMTItMDktMTcgMTM6MzU6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkgIFJlbW92ZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBndWFyZCBhbmQgZGVmaW5lcwoKMjAxMi0wOS0xNyAxMzowOTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHBhZDogQWRkIHBhcmVudCBwYXJhbWV0ZXIgdG8gdGhlIGxpbmsgYW5kIHVubGluayBmdW5jdGlvbnMKCSAgRml4ZXMgcGFydCBvZiBidWcgIzY4Mzk5NS4KCjIwMTItMDktMTYgMjM6MjA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHNhbXBsZTogYWRkIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIGZ1bmN0aW9ucyBmb3IgR3N0U2FtcGxlCgkgIFNpbmNlIHRoZXNlIHRoaW5ncyBhcmUgaW5zaWRlIHRhZ2xpc3RzIG5vdywgaXQgd291bGQgYmUgZ29vZCB0byBiZQoJICBhYmxlIHRvIHByaW50IHRoZW0gYW5kIGRlc2VyaWFsaXNlIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEzMjIKCjIwMTItMDktMTUgMjE6NTY6MDcgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBTd2l0Y2ggdG8gRjE4IG5hbWluZyBvZiB0aGUgcGFja2FnZQoKMjAxMi0wOS0xNSAxODo0MzozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB1c2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEgdG8gcmVwbGFjZSBvYnNvbGV0ZSBBUEkKCjIwMTItMDktMTQgMTc6NTI6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgcmVwbGFjZSBnc3RfdGFnX2xpc3RfZnJlZSB3aXRoIGdzdF90YWdfbGlzdF91bnJlZgoKMjAxMi0wOS0xNCAxNzowODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgcmVwbGFjZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgd2l0aCBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEKCjIwMTItMDktMTQgMTc6MDA6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIHJlcGxhY2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIHdpdGggZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhCgoyMDEyLTA5LTA2IDE2OjMyOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogd2hpdGVzcGFjZSBmaXgKCjIwMTItMDktMTQgMTQ6MDg6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBkb2NzOiBpbmRleGVycyBhcmUgbm8gbW9yZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MDE4CgoyMDEyLTA5LTE0IDEzOjM0OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICB0ZXN0czogZml4IGZvciBhcHBzaW5rIHJldHVybiB2YWx1ZSBhZGRpdGlvbgoKMjAxMi0wOS0xNCAwMjo1NDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45NCA9PT0KCjIwMTItMDktMTQgMDI6NDY6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTQKCjIwMTItMDktMTQgMDE6Mjg6NDYgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdHJ5IHRvIHByZXR0eS1wcmludCBldmVudCBhZnRlciB3ZSd2ZSBnaXZlbiBhd2F5IG93bmVyc2hpcAoJICBNaWdodCBjYXVzZSBjcmFzaGVzIHdpdGggZGVidWcgbG9nZ2luZyBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzOTk2CgoyMDEyLTA5LTE0IDAxOjE3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMi0wOS0xNCAwMDozMDozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgZ3N0Y29tcGF0OiBmaXggYmFja3dhcmRzIGNvbXBhdCBtYWNybyBmb3IgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uCgkgIE5hbWUgaXQgcHJvcGVybHksIHNvIGl0LCBsaWtlLCB3b3Jrcy4gQ2xlYXJseSBubyBvbmUgYWN0dWFsbHkKCSAgdXNlZCB0aGF0Li4KCjIwMTItMDktMTMgMTI6MDA6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGZpeCBmb3JtYXRzIGEgbGl0dGxlCgoyMDEyLTA5LTEzIDExOjM4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IGJhc2VwYXJzZSBmdW5jdGlvbgoKMjAxMi0wOS0xMyAxMTozODozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZm91cmNjIGlzIG5vIG1vcmUKCjIwMTItMDktMTMgMTE6MzU6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZpeCBzb21lIGRvY3MKCSAgZnJvbSBnaXQgZ3JlcCBmb3IgZmZtcGVnY29sb3JzcGFjZSBhbmQgeC1yYXctCgoyMDEyLTA5LTEzIDEwOjQ4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgcGFyc2U6IGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uCgoyMDEyLTA5LTEzIDEwOjI0OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGluZGVudCBmaXgKCjIwMTItMDktMTIgMjI6NDQ6MzcgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWRkIGEgbW9kZS9mbGFnIGZvciBkaXNhYmxpbmcgUFRTIGludGVycG9sYXRpb24KCSAgVG8gYmUgdXNlZCBieSBzdWItY2xhc3NlcyBpbXBsZW1lbnRpbmcgdmlkZW8gZm9ybWF0cyB3aXRoIHJlb3JkZXJpbmcKCSAgc3VjaCBhcyBNUEVHLgoKMjAxMi0wOS0xMCAxODozODo1NyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBIYW5kbGUgR0FQIGFuZCBzdGlsbC1mcmFtZSBldmVudHMuCgkgIEhhY2t5LCBiZWNhdXNlIHRoZSBzdGlsbC1mcmFtZSBjb2RlIGFsbCBsaXZlcyBpbiAtYmFzZSwgd2hlcmUgd2UKCSAgY2FuJ3QgdXNlIGl0IC0gc28gdGhpcyBpcyBhIGhhY2t5IGR1cGxpY2F0aW9uIG9mIC1iYXNlIGNvZGUuIE5vdAoJICBzdXJlIHdoaWNoIHdheSB0byBmaXggdGhpczogTW92ZSBiYXNlcGFyc2UgdG8gLWJhc2UsIG9yIG1vdmUgc3RpbGwtZnJhbWUKCSAgZXZlbnRzIHRvIGNvcmU/CgoyMDEyLTA5LTA0IDE5OjM4OjI2IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlc3RydWN0dXJlIGV2ZW50IGhhbmRsaW5nCgkgIE1ha2UgdGhlIGV2ZW50IGhhbmRsaW5nIG1vcmUgbGlrZSB3aGF0IHZpZGVvZGVjb2RlciBkb2VzLAoJICB0byBlbnN1cmUgdGhhdCBhbGwgZXZlbnRzIGFyZSBwYXNzZWQgdG8gY2hpbGQgY2xhc3NlcyBiZWZvcmUgYmVpbmcKCSAgcGxhY2VkIG9uIHRoZSBwZW5kaW5nIHF1ZXVlIG9yIHB1c2hlZCBvbndhcmQuCgoyMDEyLTA5LTAzIDEwOjMwOjA4IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFN0b3JlIGluY29taW5nIGNhY2hlZCBldmVudHMgaW4gcmV2ZXJzZSBvcmRlcgoJICBSZXZlcnNlIHRoZSBsaXN0IGp1c3QgYmVmb3JlIHNlbmRpbmcuIFByZXBlbmRpbmcgaXMgbW9yZSBlZmZpY2llbnQKCSAgdGhhbiBhcHBlbmRpbmcsIHNvIHRoaXMgc2F2ZXMgc29tZSBjeWNsZXMuCgoyMDEyLTA5LTAyIDIzOjMyOjUwIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpcnN0IGF0dGVtcHQgYXQgaGFuZGxpbmcgYm90aCBEVFMgYW5kIFBUUwoKMjAxMi0wOS0xMyAwMDozODoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCB3YXJuaW5nIHdoZW4gd2UgZ2V0IHNvbWV0aGluZyBlbHNlIHRoYW4gYSBzYW1wbGUgZm9yIGEgc2FtcGxlIHRhZwoJICBGYWNpbGl0YXRlIEdzdEJ1ZmZlciAtPiBHc3RTYW1wbGUgdHJhbnNpdGlvbiBmb3Igc29tZSB0YWdzLAoJICBjb3VsZCBiZSBoYXJkIHRvIGNhdGNoIG90aGVyd2lzZSB3aGVuIGNyZWF0aW5nIHRhZ3MsIHNpbmNlCgkgIGl0J2xsIG9ubHkgYmUgYXBwYXJlbnQgbGF0ZXIgd2hlbiBzb21lb25lIHRyaWVzIHRvIHJlYWQgdGhlCgkgIHRhZ3MuCgoyMDEyLTA5LTEyIDE0OjE0OjMxICswMjAwICBBbmRyZWFzIEZyaXNjaCA8ZnJheGluYXNAb3BlbmRyZWFtYm94Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZG9uJ3QgY3Jhc2ggaWYgbm8gZWxlbWVudCBrbGFzcyBoYXMgYmVlbiBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzg2NQoKMjAxMi0wOS0xMiAyMzoxMjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBhIG1pc3BsYWNlZCAnKScKCjIwMTItMDktMTIgMjE6MjA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZXJyb3I6IGRvbid0IHRlbGwgcGVvcGxlIHRvIGZpbGUgYSBidWcgZm9yIG5lZ290aWF0aW9uIGVycm9ycwoKMjAxMi0wOS0xMiAyMDo1NDo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IHJlbW92ZSBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbAoJICBSZW5hbWUgZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwoKSB0byBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQoKSBhbmQgZml4IGFsbAoJICBpbnZvY2F0aW9ucy4KCjIwMTItMDktMTIgMTc6MTY6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogZml4IGJ1aWxkIG9uIEN5Z3dpbgoJICAuLi4gd2hlcmUgX19mYnVmc2l6ZSBpcyBub3QgYXZhaWxhYmxlCgoyMDEyLTA5LTEyIDEzOjAwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIFJldmVydCAidGVzdHM6IGZpeCBidWZmZXIgbGVhayBpbiBxdWV1ZTIgdW5pdCB0ZXN0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDIzMmZkMjk1M2ViMDBmNjk0YjY2N2U3Nzk2NzA0ZjU5NzRjZWE0NTIuCgkgIFRoaXMgd2FzIGFscmVhZHkgZml4ZWQuCgoyMDEyLTA1LTI0IDEzOjA4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHBvc3NpYmxlIGRhdGEgY29ycnVwdGlvbiBpbiByaW5nIGJ1ZmZlciBtb2RlIHdoZW4gc2Vla2luZwoJICBGaXggcmFjZSB0aGF0IGNvdWxkIGNhdXNlIGRhdGEgY29ycnVwdGlvbiB3aGVuIHNlZWtpbmcgaW4gcmluZyBidWZmZXIKCSAgbW9kZS4KCSAgSW4gcGVyZm9ybV9zZWVrX3RvX29mZnNldCgpLCBjYWxsZWQgZnJvbSB0aGUgZGVtdXhlcidzIHB1bGxfcmFuZ2UKCSAgcmVxdWVzdCwgd2UgZHJvcCB0aGUgbG9jaywgdGVsbCB1cHN0cmVhbSAodXN1YWxseSBhIGh0dHAgc291cmNlKQoJICB0byBzZWVrIHRvIGEgZGlmZmVyZW50IG9mZnNldCwgdGhlbiByZS1hY3F1aXJlIHRoZSBsb2NrIGJlZm9yZSB3ZQoJICBkbyB0aGluZ3MgdG8gdGhlIHJhbmdlcy4gSG93ZXZlciwgYmV0d2VlbiB1cyBzZW5kaW5nIHRoZSBzZWVrIGV2ZW50CgkgIGFuZCByZS1hY3F1aXJpbmcgdGhlIGxvY2ssIHRoZSBzb3VyY2UgdGhyZWFkIG1pZ2h0IGFscmVhZHkgaGF2ZSBwdXNoZWQKCSAgc29tZSBkYXRhIGFuZCBtb3ZlZCBhbG9uZyB0aGUgcmFuZ2UncyB3cml0aW5nX3BvcyBiZXlvbmQgdGhlIHNlZWsKCSAgb2Zmc2V0LiBJbiB0aGF0IGNhc2Ugd2UgZG9uJ3Qgd2FudCB0byBzZXQgdGhlIHdyaXRpbmcgcG9zaXRpb24gYmFjawoJICB0byB0aGUgcmVxdWVzdGVkIHNlZWsgcG9zaXRpb24sIGFzIGl0IHdvdWxkIGNhdXNlIGRhdGEgdG8gYmUgd3JpdHRlbgoJICB0byB0aGUgd3Jvbmcgb2Zmc2V0IGluIHRoZSBmaWxlIG9yIHJpbmcgYnVmZmVyLgoJICBSZXByb2R1Y2libGUgZG9pbmcgc2Vlay1lbXVsYXRlZCBmYXN0LWZvcndhcmQvYmFja3dhcmQgb24gMDA2NjUzLgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDUtMjQgMTM6MDY6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBmaXggYnVmZmVyIGxlYWsgaW4gcXVldWUyIHVuaXQgdGVzdAoKMjAxMi0wOS0xMiAxMjoyMzoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcmVtb3ZlIGdsaWIgZGVwcmVjYXRpb24gY29tcGF0aWJpbGl0eSB0cmlja2VyeQoKMjAxMi0wOS0xMiAxMjoyMjo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgY2hlY2s6IHBvcnQgdG8gdGhlIG5ldyBHTGliIHRocmVhZCBBUEkKCjIwMTItMDktMTIgMTE6NTI6MjUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogcG9ydCB0byBuZXcgR0xpYiB0aHJlYWQgQVBJCgoyMDEyLTA5LTEyIDExOjQ5OjU1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIHRlc3RzOiBiZW5jaG1hcmtzOiBhbGlnbiBlcnJvciBtZXNzYWdlIHdpdGggY29kZQoKMjAxMi0wOS0xMSAxOTo0OTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogZXhwb3NlIGdzdF9wYWRfbW9kZV9nZXRfbmFtZSgpIGFuZCB1c2UgaXQgaW4gYmFzZXBhcnNlCgoyMDEyLTA5LTExIDEzOjIyOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogdXBkYXRlIGZvciBnc3QtZmZtcGVnIC0+IGdzdC1saWJhdgoJICBOb3cgdGhhdCB3ZSBoYXZlIGEgZ3N0LWxpYmF2IGdpdCByZXBvc2l0b3J5IChzeW1saW5rZWQgdG8gZ3N0LWZmbXBlZykuCgoyMDEyLTA5LTExIDE3OjI3OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRqdXN0IHRlc3QgbG9naWMgZm9yIHNjaGVkdWxpbmcgbW9kZSB3aXRoIGZsYWdTCgoyMDEyLTA5LTExIDE2OjM5OjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBhZGQgY29udmVuaWVuY2UgQVBJIHRvIHF1ZXJ5IGZvciBzY2hlZHVsaW5nIG1vZGUgYW5kIGZsYWdzCgoyMDEyLTA5LTExIDE2OjI5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50czogcmVtb3ZlIFNUUkVBTV9DT05GSUcKCSAgV2Ugd29uJ3QgYmUgYWJsZSB0byBpbXBsZW1lbnQgdGhpcyBzbyBpdCdzIGJldHRlciB0byBtb3ZlIGl0IG91dCBvZiB0aGUgd2F5LgoKMjAxMi0wOS0xMSAxNjowOTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGNsZWFuIHVwIGhlYWRlciBpbmRlbnRhdGlvbgoKMjAxMi0wOS0xMSAxMTozNDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYWxsb3cgTlVMTCBzdHJlYW1faWQgYWxzbyB3aGVuIDAgc3JjcGFkcwoJICBXZSB1c3VhbGx5IGZpcnN0IGNyZWF0ZSB0aGUgc3RyZWFtX2lkIGZvciB0aGUgc3RyZWFtX3N0YXJ0IGV2ZW50IGFuZCB0aGVuIGFkZAoJICB0aGUgcGFkIHRvIHRoZSBlbGVtZW50LiBUaGlzIG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbnMgc2hvdWxkIHdvcmsgd2hlbiB0aGVyZQoJICBhcmUgbm8gcGFkcyBvbiB0aGUgZWxlbWVudCB5ZXQuCgoyMDEyLTA5LTEwIDIxOjM5OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGJhc2VwYXJzZSwgdHlwZWZpbmQ6IG9ubHkgYWN0aXZhdGUgaW4gcHVsbCBtb2RlIGlmIHVwc3RyZWFtIGlzIHNlZWthYmxlCgkgIFVwc3RyZWFtIG1pZ2h0IHN1cHBvcnQgcHVsbCBtb2RlLCBidXQgb25seSBzZXF1ZW50aWFsIHB1bGxzLAoJICB3aGljaCBpc24ndCBnb25uYSBkbyBtdWNoIGZvciB1cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDkyNwoKMjAxMi0wOS0xMCAyMDozMDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmctdG8tMC4xMS50eHQ6IHNvbWUgbWlub3IgZml4ZXMKCjIwMTItMDktMTAgMTY6NTI6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IGZyZWUgaW5mbyBzdHJ1Y3R1cmUgd2l0aCBzYW1wbGUgaWYgdGhlcmUgaXMgb25lIGFuZCBmaXggY29weSB3aXRoIE5VTEwgaW5mbyBzdHJ1Y3R1cmUKCjIwMTItMDktMTAgMTI6MjA6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBwYWRkaW5nIHRvIEdzdE1hcEluZm8KCjIwMTItMDktMTAgMTI6MTI6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGxpYnM6IGFkanVzdCBjb21tZW50IHN0eWxlCgoyMDEyLTA5LTEwIDEyOjExOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3Q6IHJlbW92ZSBzb21lIGRlZnVuY3QgY29tbWVudGVkIGNvZGUKCjIwMTItMDktMTAgMTI6MDA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBpbXByb3ZlIHBvcnRpbmcgZG9jCgoyMDEyLTA5LTEwIDEwOjA4OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogZGlzYWJsZSBkZXByZWNhdGlvbiB3YXJuaW5ncwoJICBkZWZpbmUgR0xJQl9ESVNBQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTIGVhcmxpZXIgc28gdGhhdCBpdCBpcyBkZWZpbmVkIGJlZm9yZQoJICB0aGUgZ2xpYiBoZWFkZXJzIGFyZSBsb2FkZWQgb3IgZWxzZSB3ZSB0cmlwIG92ZXIgdGhlIEdWYWx1ZUFycmF5IGRlcHJlY2F0aW9ucyBpbgoJICBnc3QtaW5zcGVjdC5jLgoKMjAxMi0wOS0wNyAwMTowMjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZml4IGRpcmVjdCBjb250cm9sIGJpbmRpbmcgZG91YmxlIC0+IGludCBjb252ZXJzaW9uCgkgIFJvdW5kIHByb3Blcmx5IHRvIG5lYXJlc3QgaW50ZWdlci4gRml4ZXMgY29udHJvbGxlcgoJICB1bml0IHRlc3Qgb24gUG93ZXJQQyBHNC4KCjIwMTItMDktMDYgMTU6MDY6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIGV4YW1wbGVzOiBmaXggYnVzL2ZkIGxlYWsgaW4gaGVsbG8gd29ybGQgZXhhbXBsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzNDcwCgoyMDEyLTA5LTA1IDE5OjU1OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC1lbGVtZW50LWNoZWNrLm00OgoJICBnc3QtZWxlbWVudC1jaGVjay5tNDogZml4IGFjdGlvbi1pZi1mb3VuZCBhbmQgbm90LWZvdW5kIGludm9jYXRpb24KCSAgQXJndW1lbnRzIGdvdCBzaGlmdGVkIGJhY2sgYnkgb25lLgoKMjAxMi0wOS0wNSAxNTozNzoxMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBoYW5kbGUgR0FQIGV2ZW50CgoyMDEyLTA5LTA0IDEyOjEzOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiB3YWl0X2VvcyAtPiB3YWl0X2V2ZW50CgkgIEZpeCBhIEZJWE1FLiBOb3cgd2UgY2FuIGFsc28gcGFzcyB0aGUgR0FQIGV2ZW50IHRvIHRoZSBzdWJjbGFzcy4KCjIwMTItMDktMDMgMTg6NDU6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogdXBkYXRlIE1ha2VmaWxlLmFtIGFuZHJvaWQgYml0cyBpbiBjb250cm9sbGVyIGV4YW1wbGUKCSAgU2hvdWxkIGZpeCBidWlsZCBmYWlsdXJlIHJlcG9ydGVkIG9uIElSQy4KCjIwMTItMDgtMzAgMTk6MTU6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgc3RpY2t5IGV2ZW50cyBhbHNvIGFmdGVyIHBhZCBibG9jawoJICBSZWNoZWNrIGZvciBzdGlja3kgZXZlbnRzIGFmdGVyIGRvaW5nIGEgcGFkIGJsb2NrIGJlY2F1c2UgdGhlIHBhZCBibG9jayBjb3VsZAoJICBoYXZlIGNhdXNlZCBhIHJlbGluayBhbmQgdGhlbiB3ZSBuZWVkIHRvIHJlc2VuZCB0aGUgZXZlbnRzIHRvIHRoZSBuZXdseSBsaW5rZWQKCSAgcGFkLgoJICBGaXhlcyB0aGluZ3MgbGlrZSBzd2l0Y2hpbmcgb2YgdmlzdWFsaXNhdGlvbnMuCgoyMDEyLTA5LTAyIDAyOjA0OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgZm9yIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiAtPiBfZHVyYXRpb25fY2hhbmdlZCgpCgoyMDEyLTA5LTAyIDAxOjE3OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IHJlbmFtZSBHU1RfTUVTU0FHRV9EVVJBVElPTiAtPiBHU1RfTUVTU0FHRV9EVVJBVElPTl9DSEFOR0VECgkgIFRoZSBkdXJhdGlvbiBzaG91bGQgYmUgcmUtcXVlcmllZCB2aWEgYSBxdWVyeSB1c2luZyB0aGUKCSAgbm9ybWFsIHBhdGgsIHdlIGRvbid0IHdhbnQgYXBwbGljYXRpb25zIHRvIHVzZSB0aGUgdmFsdWUKCSAgZnJvbSB0aGUgbWVzc2FnZSBpdHNlbGYsIHNpbmNlIGl0IG1pZ2h0IG5vIG1hdGNoIHdoYXQgYQoJICBkdXJhdGlvbiBxdWVyeSBkb25lIGZyb20gdGhlIHNpbmsgdXBzdHJlYW0gbWlnaHQgeWllbGQuCgkgIEFsc28gZGlzYWJsZXMgZHVyYXRpb24gY2FjaGluZyBpbiBHc3RCaW4uIEl0IHNob3VsZCBiZQoJICBhZGRlZCBiYWNrIGFnYWluIGF0IHNvbWUgcG9pbnQuCgoyMDEyLTA5LTAxIDIzOjU0OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFkZCByZW1pbmRlciB0byByZW1vdmUgR1NUX1VOU1RBQkxFX0FQSSBzdHVmZiBiZWZvcmUgMS4wLjAKCjIwMTItMDktMDEgMTg6MDY6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiAuZ2l0aWdub3JlOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00OiByZW5hbWUgQU1fR1NUX0VMRU1FTlRfQ0hFQ0sgdG8gR1NUX0VMRU1FTlRfQ0hFQ0sKCSAgQW5kIGFsbG93IHBhc3Npbmcgb2YgYSBtaW5pbXVtIHZlcnNpb24gKGlmIG5vdCBuZWVkZWQsIHBhc3MgMS4wKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk2OAoKMjAxMi0wOS0wMSAxNzo1MDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiBhZGQgY2hlY2sgZm9yIGdzdC1pbnNwZWN0IC0tZXhpc3RzIGZ1bmN0aW9uYWxpdHkKCjIwMTItMDktMDEgMTc6NDc6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogYWRkIC0tZXhpc3RzIGFuZCAtLWF0bGVhc3QtdmVyc2lvbiBvcHRpb24gdG8gZ3N0LWluc3BlY3QKCSAgRm9yIGNoZWNraW5nIGlmIGFuIGVsZW1lbnQgZXhpc3RzIHdpdGggYSBnaXZlbiBtaW5pbXVtIHZlcnNpb24uCgkgIFdpbGwgdXNlIHRoYXQgaW4gb3VyIG5ldyBHU1RfRUxFTUVOVF9DSEVDSyBtNCBtYWNyby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk2OAoKMjAxMi0wOS0wMSAxNzozMjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBkaXNhYmxlIHZlcnNpb24gbWFuZ2xpbmcgZm9yIHBvc3QtMS4wLjAgcmVsZWFzZQoJICBKdXN0IGluIGNhc2Ugd2UgZG9uJ3QgZ3JlcCBmb3IgRklYTUUgMS4wIGJlZm9yZSB0aGUgcmVsZWFzZS4KCjIwMTItMDgtMzEgMTE6MzE6NDUgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE1ha2UgR0FQIGV2ZW50cyBhY3R1YWxseSB0cmlnZ2VyIHByZXJvbGwKCSAgU2xpZ2h0bHkgaGFja3kgYXBwcm9hY2ggbmVlZGluZyByZWZpbmVtZW50CgoyMDEyLTA4LTMxIDA2OjI1OjIyIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogbWFrZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgbW9yZSB2ZXJib3NlCgoyMDEyLTA4LTMxIDA2OjIzOjUzIC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGdob3N0cGFkOiBNYWtlIHNvbWUgZGVidWdnaW5nIG1vcmUgdmVyYm9zZQoJICBBbHNvLCByZW1vdmUgYW4gdW5uZWNlc3NhcnkgI2luY2x1ZGUgaW4gaW5wdXQtc2VsZWN0b3IKCjIwMTItMDgtMjggMTU6NDQ6NDggLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEdzdFNlZ21lbnQ6IEZpeCBkb2MgZGVzY3JpcHRpb24gc3RyaW5nIGxhc3Rfc3RvcC0+cG9zaXRpb24KCjIwMTItMDgtMzAgMTk6NDc6NTcgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBjbG9jayBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5OTcKCjIwMTItMDgtMjkgMjI6NTc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IG91dHB1dCBnc3QtaW5zcGVjdCBlcnJvcnMgdG8gc3RkZXJyCgoyMDEyLTA4LTI4IDA3OjM5OjUwICswMjAwICBBbGJhbiBCcm93YWV5cyA8cHJhaGFsQHlhaG9vLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNyYXNoIHNlcmlhbGlzaW5nIGEgMCBmbGFncyB2YWx1ZSB3aGVuIHRoZXJlJ3Mgbm8gbmFtZSBmb3IgaXQKCSAgRml4ZXMgc2VnZmF1bHQgd2hlbiBkb2luZyBnc3QtbGF1bmNoLTEuMCAtdiAtbSBjYW1lcmFiaW4KCSAgKGVuY29kZWJpbiBub3RpZmllcyBhIDAgdmFsdWUgZm9yIGl0cyAiZmxhZyIgcHJvcGVydHkpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTU4CgoyMDEyLTA4LTI0IDIzOjE0OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGxvZyBwZXJmb3JtYW5jZSB3YXJuaW5nIGRlYnVnIG1lc3NhZ2UgaWYgZ2xpYiBlbXVsYXRlcyBhdG9taWMgb3BzCgoyMDEyLTA4LTIzIDEzOjUxOjI3ICswMTAwICBMaW9uZWwgTGFuZHdlcmxpbiA8bGxhbmR3ZXJsaW5AZ21haWwuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IHVzZSBjb25maWd1cmUtZGV0ZWN0ZWQgb3IgZXh0ZXJuYWxseSBwcm92aWRlZCBnbGliLW1rZW51bXMKCSAgVG8gZWFzZSBjcm9zcy1jb21waWxhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzYyMAoKMjAxMi0wOC0yMiAxMzoyOTozNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjY4YWNlZSB0byA0Zjk2MmY3CgoyMDEyLTA4LTIyIDEzOjE0OjU2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgZ3RrLWRvYyByZXEgdG8gMS4xMiAobWFyLTIwMDkpCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGUuZy4gdW5jb25kaXRpb25hbGx5IHVzZSBndGtkb2MtcmViYXNlLgoKMjAxMi0wOC0yMSAxMzozMDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgX21ha2Vfd3JpdGFibGUKCjIwMTItMDgtMjEgMDA6MDM6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIHNvbWUgbWVkaWEgdHlwZSBjaGFuZ2VzIGluIHBvcnRpbmctdG8tMC4xMS50eHQgZG9jCgoyMDEyLTA4LTIwIDEzOjUxOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1pbm9yIHVwZGF0ZSB0byBwb3J0aW5nIGRvYyBmb3IgY2hpbGQgcHJveHkgbG9va3VwIG1ldGhvZAoJICBBbmQgYSB0eXBvIGZpeC4KCjIwMTItMDgtMjAgMTE6MzE6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogbWFrZSBhIGNvcHkgd2l0aCB0aGUgc2FtZSBhbGlnbm1lbnQKCSAgV2hlbiBtYWtpbmcgYSBjb3B5IG9mIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZyb20gdGhlIGRlZmF1bHQgbWVtb3J5IGFsbG9jYXRvciwKCSAgbWFrZSBzdXJlIHRoZSBuZXcgY29weSBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFzIHRoZSBvcmlnaW5hbCBtZW1vcnkuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzk2CgoyMDEyLTA4LTE5IDE3OjUxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIHNlZWtpbmcgaW4gREVGQVVMVCBmb3JtYXQgd29yayBpZiB0aGUgc3ViY2xhc3MgY2FuIGNvbnZlcnQgZm9yIHVzCgkgIFdlIG9ubHkgZGVhbCBpbiBUSU1FIGZvcm1hdCBvdXJzZWx2ZXMsIGJ1dCBpZiB0aGUgc3ViY2xhc3MgY2FuIGhhbmRsZQoJICBjb252ZXJ0aW5nIG90aGVyIGZvcm1hdHMgaW50byBUSU1FIGZvcm1hdCwgd2UgY2FuIHN1cHBvcnQgdGhhdCB0b28uCgkgIEZpeGVzIHNlZWtpbmcgaW4gREVGQVVMVCAoc2FtcGxlKSBmb3JtYXQgd2l0aCBmbGFjcGFyc2UsCgkgIGFuZCB0aGUgZmxhY2RlYyB1bml0IHRlc3QuCgoyMDEyLTA4LTE4IDIxOjQyOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWlub3IgZml4ZXMgdG8gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAxMi0wOC0xNyAxMjoyMzo1MCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBpbXBsZW1lbnQgY2hpbGRfcHJveHkgc3VwcG9ydAoJICBFbGVtZW50cyBzdWNoIGFzIHRoZSBHc3RJaXJFcXVhbGl6ZXJOQmFuZHMgd291bGQgc28gZmFyIG5vdCBzdG9yZSB0aGUgcHJvcGVydGllcwoJICBvZiB0aGVpciBjaGlsZHJlbi4gTm93IHdlIGFsc28gZ3JhYiB0aGUgcHJvcGVydGllcyBvZiBjaGlsZCBlbGVtZW50cyBhbmQgdHJ5IHRvCgkgIHJlc3RvcmUgdGhlbS4KCjIwMTItMDgtMTQgMTg6NDQ6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFdhaXQgZm9yIG90aGVyIHN0cmVhbXMgdG8gYWR2YW5jZSBvbiB1bnNlbGVjdGVkIHBhZHMKCSAgT3RoZXJ3aXNlIHdlIGVuZCB1cCBkcm9wcGluZyBhIGxvdCBvZiBkYXRhIGluIHRoZSBjYXNlIHdoZXJlIGRhdGEgc3RhcnRzCgkgIGFycml2aW5nIG9uIHRoZSBub24tc2VsZWN0ZWQgcGFkLCByZXN1bHRpbmcgaW4gYmlnIGdhcHMgaW4gc3RyZWFtIHN3aXRjaGluZwoKMjAxMi0wOC0xNCAxODo0Mzo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTW9yZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEyLTA4LTE0IDE4OjQyOjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCBmb3J3YXJkIHN0cmVhbS1zdGFydCBzdGlja3kgZXZlbnRzCgkgIE9ubHkgb25lIFNUUkVBTV9TVEFSVCBldmVudCBzaG91bGQgYmUgbGV0IHRocm91Z2gsIGVsc2UgaXQgd2lsbAoJICBjb25mdXNlIGRvd25zdHJlYW0gZWxlbWVudHMgdGhhdCB0aGluayBhIG5ldyBzdHJlYW0gaXMgc3RhcnRpbmcKCSAgd2hlcmVhcyBpbiBmYWN0IHdlIGFyZSBqdXN0IHN3aXRjaGluZyB0byBhIGRpZmZlcmVudCBpbnB1dC4KCSAgSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCB3YW50IHRvIGxldCB0aGVtIHRocm91Z2ggYnV0IHdpdGggdGhlIHNhbWUKCSAgc2VxdWVuY2UgbnVtYmVyLgoKMjAxMi0wOC0xNCAxNTo0NjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRvY3M6IEFkZCBuZXcgYmFzZXNyYy9iYXNldHJhbnNmb3JtIEFQSSB0byB0aGUgZG9jcwoKMjAxMi0wOC0wNyAxNzozODo1MyArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGdldHRlcnMgZm9yIHBvb2wgYW5kIGFsbG9jYXRvcgoJICBTb21ldGltZXMgYSB0cmFuc2Zvcm0gZmlsdGVyIHdvdWxkIG5lZWQgdGhlIGJ1ZmZlciBwb29sIG9yIHRoZSBtZW1vcnkKCSAgYWxsb2NhdG9yIG5lZ290aWF0ZWQgYnkgdGhlIGJhc2UgY2xhc3MsIGZvciBleGFtcGxlLCBmb3IgcXVlcnlpbmcgZGlmZmVyZW50CgkgIHBhcmFtZXRlcnMsIHN1Y2ggYXMgYSBiaWdnZXIgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYWxsb2NhdGUgYnkgdGhlIGJ1ZmZlciBwb29sLgoJICBUaGlzIHBhdGNoIGV4cG9zZSBhIHR3byBnZXR0ZXJzIGFjY2Vzc29yczogb25lIGZvciB0aGUgYnVmZmVyIHBvb2wgYW5kIHRoZQoJICBvdGhlciBmb3IgdGhlIG1lbW9yeSBhbGxvY2F0b3IuCgoyMDEyLTA4LTA3IDE3OjM1OjQ4ICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogZ2V0dGVycyBmb3IgcG9vbCBhbmQgYWxsb2NhdG9yCgkgIFNvbWV0aW1lcyB0aGUgc291cmNlcyB3b3VsZCB1c2UgdGhlIGJ1ZmZlciBwb29sIG9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yIGZvcgoJICBzb21ldGhpbmcgZWxzZSB0aGFuIGp1c3QgYWxsb2NhdGluZyBvdXRwdXQgYnVmZmVyczsgZm9yIGV4YW1wbGUsIHF1ZXJ5aW5nIGZvcgoJICBkaWZmZXJlbnQgcGFyYW1ldGVycywgc3VjaCBhcyBhIGJpZ2dlciBudW1iZXIgb2YgYnVmZmVycyB0byBhbGxvY2F0ZSBieSB0aGUKCSAgcG9vbC4KCSAgVGhpcyBwYXRjaCBleHBvc2UgYSB0d28gZ2V0dGVycyBhY2Nlc3NvcnM6IG9uZSBmb3IgdGhlIGJ1ZmZlciBwb29sIGFuZCB0aGUKCSAgb3RoZXIgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yLgoKMjAxMi0wOC0xNCAwMDozOToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgc29tZSB1bnVzZWQgYW5kIGluIHRoZWlyIGN1cnJlbnQgZm9ybSBwb2ludGxlc3MgQVBJCgkgIE5vdCBzbyB1c2VmdWw6IGp1c3QgYWRkcy9yZWFkcyBzdHVmZiBmcm9tIGFuIGludGVybmFsIEdMaXN0IHdpdGhvdXQKCSAgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcgd2l0aCB0aG9zZSBwYXRocywgc28gcmVtb3ZlIGZvciBub3c6CgkgIGdzdF9yZWdpc3RyeV9hZGRfcGF0aAoJICBnc3RfcmVnaXN0cnlfZ2V0X3BhdGhfbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4ODQxCgoyMDEyLTA4LTEyIDEzOjI3OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCB1cCBmb3IgZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCgpIG9ubHkgd29ya2luZyBvbiBjaGlsZCBwcm94eSBpbnRlcmZhY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2ODEKCjIwMTItMDgtMTIgMTM6MjQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBtYWtlIGdzdF9jaGlsZF9wcm94eV9sb29rdXAoKSBhIHByb3BlciBHc3RDaGlsZFByb3h5IG1ldGhvZAoJICBObyBsb25nZXIgYWNjZXB0IGFueSBvbGQgR09iamVjdHMuIFRoaXMgbWFrZXMgdGhpbmdzIG5pY2VyIGZvcgoJICBiaW5kaW5ncy4gSWYgYSB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBib3RoIG5pY2VseQoJICBpcyBkZWVtZWQgd29ydGh3aGlsZSwgd2UgY2FuIHN0aWxsIGFkZCBvbmUgdG8gZ3N0dXRpbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2ODEKCjIwMTItMDgtMTMgMDA6MDE6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IHdoZW4gc2VyaWFsaXNpbmcgYXJyYXlzIG9yIGxpc3RzLCBoYW5kbGUgdHlwZXMgd2UgY2FuJ3Qgc2VyaWFsaXNlIG1vcmUgZ3JhY2VmdWxseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMzIyCgoyMDEyLTA4LTEyIDE5OjM5OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogYWRkIHNvbWUgbW9yZSBkZXRhaWxzIHRvIGZhaWx1cmUgbWVzc2FnZXMKCSAgTWVudGlvbiBwYWQgd2hlcmUgdGhlIHByb2JsZW0gb2NjdXJlZCwgYW5kIHRoZSBldmVudCBuYW1lLgoKMjAxMi0wOC0xMiAxODozNjowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBmaXggY29sbGVjdHBhZHMgdGVzdAoJICBBZnRlciBhbiBFT1Mgd2UgbXVzdCBzZW5kIGEgRkxVU0hfU1RPUCBldmVudCBpZgoJICB3ZSB3YW50IHRvIHNlbmQgZGF0YSBhZ2Fpbi4KCjIwMTItMDgtMTIgMTg6MzE6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBsZWFrIGluIGdzdF9ldmVudF9wYXJzZV9zdHJlYW1fc3RhcnQoKQoJICBnc3Rfc3RydWN0dXJlX2lkX2dldCgpIHdpbGwgbWFrZSBhIGNvcHkgb2YgdGhlIHN0cmluZwoJICBleHRyYWN0ZWQsIGJ1dCB3ZSdyZSBhc3NpZ25pbmcgaXQgdG8gYSBjb25zdCBnY2hhciAqLgoKMjAxMi0wOC0xMiAxNjo0MDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogbWFrZSBwaXBlbGluZSB0ZXN0IHZhbGdyaW5kIGNsZWFuCgoyMDEyLTA4LTEyIDE2OjM3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogZml4IHBpcGVsaW5lIHVuaXQgdGVzdAoJICBXaGljaCB3YXMgZGlzYWJsZWQgYmVjYXVzZSBpdCBmYWlsZWQuCgoyMDEyLTA4LTEyIDE1OjQ4OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGZpeCB1bnRlcm1pbmF0ZWQgcXVvdGVkIHN0cmluZyBpbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2gKCjIwMTItMDgtMTIgMDA6MTI6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIGdzdF92aWRlb19mb3JtYXRfcGFyc2VfY2FwcygpIGluIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDgtMTEgMjI6MTk6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBmaXggdXAgZG9jcyBhIGJpdAoKMjAxMi0wOC0xMSAyMjoxODoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCB1cCBnLWkgYW5ub3RhdGlvbiBmb3IgX2xvb2t1cCgpIHBhcmFtc3BlYyByZXR1cm4gdmFsdWUKCSAgTm8gcmVmIGlzIHJldHVybmVkIGhlcmUuCgoyMDEyLTA4LTExIDIyOjE3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgYnVmZmVyIGZ1bmN0aW9ucwoKMjAxMi0wOC0xMCAyMjo1ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sgd2l0aCB1cHN0cmVhbSBkZW11eGVycyB0aGF0IHN1cHBvcnQgaXQKCSAgRG9uJ3QganVzdCByZXR1cm4gRkFMU0UgZm9yIHNlZWsgZXZlbnRzIHdpdGggbmVnYXRpdmUgcmF0ZXMgd2hlbgoJICBvcGVyYXRpbmcgaW4gcHVzaCBtb2RlLiBBbiB1cHN0cmVhbSBkZW11eGVyIG1heSBzdXBwb3J0IHRoaXMganVzdAoJICBmaW5lLCBzbyBpZiB3ZSdyZSBub3Qgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSBhbHdheXMgY2hlY2sgdXBzdHJlYW0KCSAgZmlyc3QgaWYgaXQgY2FuIGhhbmRsZSB0aGUgc2VlayBldmVudC4gVGhpcyBmaXhlcyByZXZlcnNlIHBsYXliYWNrCgkgIHdoZXJlIHRoZSB1cHN0cmVhbSBkZW11eGVyIHN1cHBvcnRzIGl0IChlLmcuIHdpdGggcXRkZW11eCkuIFRoZQoJICBzYW1lIGNvZGUgd291bGQgd29yayBmaW5lIGluIDAuMTAsIGJlY2F1c2UgYmFzZXBhcnNlIHdpbGwganVzdAoJICBjYWxsIHRoZSBkZWZhdWx0IHBhZCBldmVudCBoYW5kbGVyIGlmIEZBTFNFIHdhcyByZXR1cm5lZCBmcm9tIHRoZQoJICBiYXNlcGFyc2UgZXZlbnQgaGFuZGxlciwgYW5kIHRoZSBwYWQgZXZlbnQgaGFuZGxlciB3aWxsIGp1c3QKCSAgZm9yd2FyZCBpdCB1cHN0cmVhbS4gSW4gMC4xMSB0aGUgYmFzZWNsYXNzIG9yIHN1YmNsYXNzIGlzCgkgIHJlc3BvbnNpYmxlIGZvciBjaGFpbmluZyB1cCB0byB0aGUgcGFyZW50IGNsYXNzIG9yIGZvcndhcmRpbmcgdGhlCgkgIGV2ZW50IHVwc3RyZWFtIGluIGFueSBjYXNlLgoJICBEaXNhYmxlIHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlIGZvciBub3csIHRoZXJlIHNlZW1zIHRvCgkgIGJlIHNvbWV0aGluZyBnb2luZyB3cm9uZyB3aXRoIHRoZSBzZWdtZW50IGNvbmZpZ3VyYXRpb24gaW4gdGhhdAoJICBjYXNlLgoKMjAxMi0wOC0wNCAxMTo0ODo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvIG5vdCBlcnJvciBvbiBub3QtbmVnb3RpYXRlZAoJICBEb24ndCBlcnJvciBvdXQgdG9vIGVhcmx5IGFuZCBsZXQgdXBzdHJlYW0gZGVjaWRlIGlmIGl0IGNhbgoJICB3b3JrYXJvdW5kIGEgbm90LW5lZ290aWF0ZWQgcHJvYmxlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA4LTA0IDExOjQ4OjEzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmV0cnkgb24gbm90LW5lZ290aWF0ZSBpZiBhIHJlY29uZmlndXJlIGlzIHBlbmRpbmcKCSAgQmVmb3JlIGVycm9yaW5nIG91dCBvbiBub3QtbmVnb3RpYXRlZCByZXR1cm5zLCBjaGVjayBpZiB0aGUgcGFkCgkgIGhhcyB0aGUgcmVjb25maWd1cmUgZmxhZyBzZXQgYW5kIHJldHJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTk4CgoyMDEyLTA4LTA0IDExOjQyOjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGdzdF9wYWRfbmVlZHNfcmVjb25maWd1cmUKCSAgQWRkIGFuIGFsdGVybmF0aXZlIHZlcnNpb24gb2YgZ3N0X3BhZF9jaGVja19yZWNvbmZpZ3VyZSB0aGF0IGRvZXNuJ3QKCSAgY2xlYXIgdGhlIHJlY29uZmlndXJlIGZsYWcuCgkgIFVzZWZ1bCBmb3IgaW5jcmVhc2luZyBlcnJvciByZXNpbGllbmNlIHdpdGhvdXQgZHVwbGljYXRpbmcgdGhlCgkgIHJlY29uZmlndXJlIGNvZGUgaW4gcGFkIHRhc2sgZnVuY3Rpb25zLgoJICBBUEk6IGdzdF9wYWRfbmVlZHNfcmVjb25maWd1cmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wNy0yOSAxNTo0NDo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIEdTVF9QQURfTElOS19DSEVDS19ERUZBVUxUIHRvIEdzdFBhZExpbmtDaGVjawoJICBUaGlzIGFsbG93cyBpbnRyb3NwZWN0aW9uLWJhc2VkIGJpbmRpbmdzIHRvIGFjY2VzcwoJICBHc3QuUGFkTGlua0NoZWNrLkRFRkFVTFQgaW5zdGVhZCBvZgoJICBHc3QuUEFEX0xJTktfQ0hFQ0tfREVGQVVMVC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0yOSAxNDo1Nzo0MSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbWFyayBnc3RfYnVmZmVyX3dyYXBwZWQqIGRhdGEgYXMgYXJyYXkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0yNCAxMzoyNjowMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgaW50cm9zcGVjdGlvbjogZml4IHNvbWUgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IGctaXItc2Nhbm5lci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wNy0zMCAyMTo0NjoxOCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBjb252ZXJ0IGdzdF9idWZmZXJfKiBtYWNyb3MgdG8gZnVuY3Rpb25zCgkgIEdPYmplY3QgSW50cm9zcGVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG1hY3Jvcy4KCSAgVGhpcyBpcyBuZWVkZWQgZm9yIGJpbmRpbmdzLiBXZSBjYW4gc3RpbGwgYWRkIGJhY2sKCSAgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMgYWdhaW4gbGF0ZXIgaWYgd2UgdGhpbmsKCSAgaXQncyB3b3J0aCBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODMwMQoKMjAxMi0wOC0xMCAxMzo1MDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IGZpeCBwcmludGYgZm9ybWF0IGluIGRlYnVnIG1lc3NhZ2UKCjIwMTItMDgtMTAgMTI6MjM6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggbWF4X2J1ZmZlcnMgaGFuZGxpbmcKCSAgV2hlbiBtYXhfYnVmZmVycyA+IDAgYW5kIHRoZSBwb29sIGlzIGVtcHR5LCBhY3R1YWxseSB0cnkgdG8gYWxsb2NhdGUgbW9yZQoJICBidWZmZXJzIHVwIHRvIHRoZSBtYXhfYnVmZmVycyBsaW1pdC4KCSAgV2UgbmVlZCB0byBhZGQgYSBjb3VudGVyIGZvciB0aGlzIHRvIGNvdW50IGhvdyBtYW55IGJ1ZmZlcnMgd2UgYWxsb2NhdGVkIGFuZAoJICBjaGVjayB0aGlzIGFnYWluc3QgdGhlIG1heF9idWZmZXJzIGxpbWl0LgoJICBSZW9yZ2FuaXNlIGFuZCBjbGVhbiB1cCBzb21lIGNvZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExNTMKCjIwMTItMDgtMTAgMDk6MTk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IHNpbXBsaWZ5IGJ5IHVzaW5nIGdfc29ja2V0X2NvbmRpdGlvbl90aW1lZF93YWl0KCkKCSAgTm8gbmVlZCB0byB1c2UgYSBjdXN0b20gbWFpbiBjb250ZXh0IGFuZCBjdXN0b20gdGltZW91dCBzb3VyY2VzLAoJICBqdXN0IHVzZSBnX3NvY2tldF9jb25kaXRpb25fdGltZWRfd2FpdCgpIGluc3RlYWQsIHdoaWNoIHdhcyBhZGRlZAoJICBmb3IgZXhhY3RseSB0aGlzIGNhc2UuCgkgIEFsc28gc2VlbXMgdG8gaGVscCB3aXRoIHRoZSB1bml0IHRlc3QgZGVhZGxvY2tpbmcgd2l0aCBnbGliIDIuMzMueAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNTc1CgoyMDEyLTA4LTA5IDE5OjE1OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBmaXggZG91YmxlIHN0cmluZyBlc2NhcGluZyBpbiBnc3Rfb2JqZWN0X2RlZmF1bHRfZGVlcF9ub3RpZnkoKQoJICBNYWtlIG91dHB1dCBvZiBnc3QtbGF1bmNoIC12IHJlYWRhYmxlIGFnYWluLgoJICBsYXN0LW1lc3NhZ2UgPSAiZXZlbnRcIFwgXCBcKlwqXCpcKlwqXCpcKlwgXChmYWtlc2luazA6c2lua1wpXCBFXCBcKHR5cGU6XCB0YWdcIFwoMjA1MTBcKVwsXCBHc3RUYWdMaXN0LXN0cmVhbVwsXCB0YWdsaXN0XD1cKHRhZ2xpc3RcKVwidGFnbGlzdFxcXCxcXFwgdmlkZW8tY29kZWNcXFw9XFxcKHN0cmluZ1xcXClIMjY0XFxcLFxcXAoJICBtaW5pbXVtLWJpdHJhdGVcXFw9XFxcKHVpbnRcXFwpNjM2NjExXFxcLFxcXCBiaXRyYXRlXFxcPVxcXCh1aW50XFxcKTk4MDcyOVxcXCxcXFwgbWF4aW11bS1iaXRyYXRlXFxcPVxcXCh1aW50XFxcKTExMTY3MDdcXFw7XCJcO1wpXCAweDE1YmM3NjAiCgkgIHZzLgoJICBsYXN0LW1lc3NhZ2UgPSBldmVudCAgICoqKioqKiogKGZha2VzaW5rMDpzaW5rKSBFICh0eXBlOiB0YWcgKDIwNTEwKSwgR3N0VGFnTGlzdC1zdHJlYW0sIHRhZ2xpc3Q9KHRhZ2xpc3QpInRhZ2xpc3RcLFwgdmlkZW8tY29kZWNcPVwoc3RyaW5nXClIMjY0XCxcIG1pbmltdW0tYml0cmF0ZVw9XCh1aW50XCk4NTYwMzlcLFwgYml0cmF0ZQoJICBcPVwodWludFwpMTAxOTc0OFwsXCBtYXhpbXVtLWJpdHJhdGVcPVwodWludFwpMTExNjcwN1w7IjspIDB4MTExNDllMAoKMjAxMi0wOC0wOSAxNjoxODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGNoZWNrIHdyaXRhYmlsaXR5CgkgIGZpeCB0aGUgd3JpdGFiaWxpdHkgY2hlY2sgZm9yIG1pbmlvYmplY3RzLiBXZSBzaG91bGQgY2hlY2sgdGhlIHNoYXJlZCBjb3VudGVyLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNDUwCgoyMDEyLTA4LTA4IDE2OjA4OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBTZXQgdGhlIGFsaWdubWVudCBhdCB0aGUgY29ycmVjdCBwbGFjZSBpbiBHc3RBbGxvY2F0aW9uUGFyYW1zCgoyMDEyLTA4LTA4IDE2OjE4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkzID09PQoKMjAxMi0wOC0wOCAxNTowNTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MwoKMjAxMi0wOC0wOCAxNDo0OToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIHRlc3RzOiByZW1vdmUgc2lsbHkgdGVzdF9mYWlsX2Fic3RyYWN0X25ldyBjaGVjawoJICBPdXIgY2hlY2sgd291bGQgbWFrZSBzdXJlIHRoYXQgR0xpYiBzZWdmYXVsdHMgd2hlbgoJICBzb21lb25lIHRyaWVzIHRvIGluc3RhbnRpYXRlIGFuIGFic3RyYWN0IHR5cGUsIHdoaWNoCgkgIGlzIGFuIGV4dHJlbWVseSB1c2VmdWwgdGhpbmcgdG8gY2hlY2sgZm9yLgoJICBJbiBuZXdlciBHTGlicyB0aGlzIGlzIGZpeGVkIGFuZCB3ZSBnZXQgYW4gYWJvcnQgd2l0aAoJICBhIGdfZXJyb3IoKSBub3cgaXQgc2VlbXMsIHNvIGxldCdzIGp1c3QgcmVtb3ZlIHRoaXMKCSAgY2hlY2sgZW50aXJlbHkuCgoyMDEyLTA4LTA4IDA5OjUzOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlczogZG9uJ3QgcHV0IHRoaW5ncyB3aXRoIHNpZGUgZWZmZWN0cyBpbnNpZGUgZ19hc3NlcnQoKQoJICBUaGV5IHdpbGwgYmUgZGVmaW5lZCBhd2F5IHRvIE5PT1BzIG90aGVyd2lzZSBpbiByZWxlYXNlIGJ1aWxkcy4KCjIwMTItMDgtMDggMDk6MTM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBmb3Igc3RyZWFtLWlkIEFQSSBhZGRpdGlvbnMKCjIwMTItMDgtMDggMDA6NTQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IGZvciBuZXcgR3N0Q2hpbGRQcm94eTo6Y2hpbGQtYWRkZWQgc2lnbmFsIGNhbGxiYWNrIHNpZ25hdHVyZQoJICBGaXhlcyBjcmFzaCB3aXRoIGdzdC1sYXVuY2gtMS4wIHVyaWRlY29kZWJpbiB1cmk9Li4uIHN1YnVyaT0uLi4gISAuLgoKMjAxMi0wOC0wNyAxMDo0NjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIGFsbG93LW5vbmUgdG8gdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IG9mIGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcigpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExMzkKCjIwMTItMDgtMDYgMTY6MzM6NTcgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGRvY3M6IE1ha2Ugc3VyZSBzY2FubmVyIGdldHMgcmVxdWlyZWQgbGlicmFyaWVzCgoyMDEyLTA4LTA2IDIwOjA4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IHByaW50IHdoaWNoIGV2ZW50IHdlIHJlY2VpdmVkIGJlZm9yZSBzdHJlYW0tc3RhcnQKCjIwMTItMDgtMDYgMjA6MDQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvbid0IHRyeSB0byBhbnN3ZXIgVVJJIHF1ZXJpZXMgd2l0aCBOVUxMIFVSSXMKCSAgU2hvdWxkIG1ha2UgdW5pdCB0ZXN0cyBpbiAtYmFzZSB0aGF0IHVzZSBhcHBzcmMgYSBiaXQgaGFwcGllci4KCjIwMTItMDctMjkgMTQ6MjU6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBldmVudDogVXBkYXRlIGZvciBzdHJlYW0tc3RhcnQgZXZlbnQgQVBJIGNoYW5nZXMKCjIwMTItMDctMjggMDg6Mzc6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXZlbnQ6IEFkZCBuZXcgc3RyZWFtLWlkIGZpZWxkIHRvIHRoZSBzdHJlYW0tc3RhcnQgZXZlbnQKCSAgVGhpcyBpcyBzdXBwb3NlZCB0byBhbGxvdyB1bmlxdWVseSBpZGVudGlmeWluZyBhIHNpbmdsZSBzdHJlYW0uCgoyMDEyLTA3LTI3IDE3OjQxOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIGZpcnN0IGNyZWF0ZWQgcGFkIGJ5IGRlZmF1bHQKCSAgVGhpcyBndWFyYW50ZWVzIGEgYml0IG1vcmUgY29uc2lzdGVuY3kgaW4gd2hpY2ggaW5wdXQgc3RyZWFtIHdpbGwKCSAgYmUgc2VsZWN0ZWQgYnkgZGVmYXVsdC4gSXQgd291bGQgcHJldmlvdXNseSBiZSB0aGUgZmlyc3QgcGFkIG9uIHdoaWNoCgkgIGFuIGV2ZW50L2J1ZmZlci9xdWVyeSB3YXMgcmVjZWl2ZWQgLi4uIHdoaWNoIHdhcyByYWN5IGFuZCBub24tcHJlZGljdGFibGUuCgoyMDEyLTA3LTI3IDE3OjM4OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFNwZWNpZnkgdGhlIG9yZGVyIG9mIHBhZCBpdGVyYXRvcnMKCSAgVGhlIG9yZGVyIG9mIHJldHVybmVkIHBhZHMgd2Fzbid0IHNwZWNpZmllZCBiZWZvcmUsIHNvIGxldCdzIHNwZWNpZnkKCSAgaXQgYW5kIHVzZSBhbiBvcmRlciB3aGljaCBtaWdodCBwcm92ZSB0aGUgbW9zdCB1c2VmdWwgOiB0aGUgb3JkZXIgaW4KCSAgd2hpY2ggcGFkcyB3ZXJlIGFkZGVkIHRvIHRoZSBlbGVtZW50LgoJICBJZiBzb21lb25lIGNoYW5nZXMgdGhlIG9yZGVyLCBtYWtlIHN1cmUgdXNlcnMgb2YgdGhvc2UgaXRlcmF0b3JzIGZyb20KCSAgbm93IG9uIGRvbid0IHJlbHkgb24gdGhhdCBvcmRlciAhCgoyMDEyLTA4LTA1IDE3OjE2OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCB0Y2FzZV9za2lwX2Jyb2tlbl90ZXN0KCkgZGVmaW5lCgkgIFNraXBzIGJyb2tlbiB0ZXN0cyBidXQgbG9ncyBhbiBFUlJPUi1sZXZlbCBtZXNzYWdlIHRvCgkgIGRyYXcgYXR0ZW50aW9uIHRvIHRoYXQgZmFjdC4KCjIwMTItMDgtMDUgMTc6MTI6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiB1cGRhdGUgLmdpdGlnbm9yZSBmb3IgcXVldWVhcnJheSB0ZXN0IGJpbmFyeQoKMjAxMi0wOC0wNSAxNzoxMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgdGVzdHM6IGZpeCBzcHVyaW91cyBuZXRjbGllbnRjbG9jayB0ZXN0IGZhaWx1cmVzCgkgIEdpdmUgY2xvY2tzIGEgYml0IG1vcmUgdGltZSB0byBzeW5jaHJvbmlzZS4KCjIwMTItMDgtMDUgMTY6NTk6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGdlbmVyYXRlZCBmaWxlcwoKMjAxMi0wOC0wNSAxNjo0MToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogdXNlIGdlbmVyaWMgbWFyc2hhbGxlciBmb3IgImJsb2NrIiBhY3Rpb24gc2lnbmFsCgoyMDEyLTA4LTA1IDE2OjM3OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGNjZjRjIHRvIDY2OGFjZWUKCjIwMTItMDgtMDQgMTM6Mzc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyLCBkZWZhdWx0bWVtOiBhZGQgb3B0aW9uIHRvIHBvaXNvbiBtZW1vcnkgYmVmb3JlIGZyZWVpbmcgaXQKCSAgTWlnaHQgYmUgdXNlZnVsIHRvIHRyYWNrIGRvd24gY2VydGFpbiBidWdzLgoKMjAxMi0wOC0wMyAyMzo1NDozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYvdW5yZWYgdGFnbGlzdCBzY29wZSBlbnVtIGluIGdzdF9pbml0KCkKCSAgRml4ZXMgbWFrZSBjaGVjayBhbmQgZGlzdGNoZWNrCgoyMDEyLTA4LTAzIDAwOjA1OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHdhcm4gaWYgcGx1Z2luIG5hbWUgc3RhcnRzIHdpdGggYSAiCgkgIFRoaXMgY2FuIGVhc2lseSBoYXBwZW4gYXMgc2lkZS1lZmZlY3Qgb2YgdGhlIHBsdWdpbiBuYW1lCgkgIGluIEdTVF9QTFVHSU5fREVGSU5FIG5vIGxvbmdlciBiZWluZyBhIHN0cmluZyBpbiAwLjExLCBidXQKCSAgYSBuYW1lIHRvIEdfU1RSSU5HSUZZLgoKMjAxMi0wOC0wMiAxMzoxOToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZy10by0wLjExIGRvY3VtZW50IHdpdGggYSAic29mdCIgQVBJIGNoYW5nZXMgY2hlY2tsaXN0CgkgIFBvaW50IG91dCBzb21lIEFQSSBjaGFuZ2VzIHRoYXQgdGhlIGNvbXBpbGVyIHdvbid0CgkgIGJlIGFibGUgdG8gd2FybiBhYm91dC4KCjIwMTItMDgtMDIgMTE6MzM6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZml4IHByaW50aW5nIG9mIHBhcnRpYWwgZGF0ZXMgaW4gZ3N0LWxhdW5jaAoKMjAxMi0wOC0wMiAxMToxNToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IHByaW50IFRPQyBzY29wZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlZTZhYjdjOTM2MzhhNjUxOWFjYjk3NjY5OWE2YWQxNDlkNTIwYTk1LgoJICBUaGUgYXBwbGljYXRpb24gd2lsbCBwcm9iYWJseSBvbmx5IGV2ZXIgcmVjZWl2ZSBnbG9iYWwgVE9DcywKCSAgc28gZG9uJ3QgcmVhbGx5IG5lZWQgdGhpcy4KCjIwMTItMDgtMDEgMTc6NDk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgdGFnIGxpc3Qgc2NvcGUgc3ltYm9scwoKMjAxMi0wOC0wMSAxMTo1ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBzZW5kIHNlZ21lbnRfZG9uZSBldmVudCBpbiBhZGRpdGlvbiB0byBzZWdtZW50X2RvbmUgbWVzc2FnZQoKMjAxMi0wNy0zMSAxNzoyNTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJhc2VzcmM6IEFkZCBkZWZhdWx0IGhhbmRsZXIgZm9yIFVSSSBxdWVyeSBpbiBHc3RVUklIYW5kbGVyIHN1YmNsYXNzZXMKCjIwMTItMDctMjggMTc6MzM6NTIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGNoZWNrOiB1bmJyZWFrIGZhaWwgI2RlZmluZQoJICBUaGUgZmFpbCgpIGRlZmluaXRpb24gd2FzIGNoYW5nZWQgdG8gbm90IGZhaWwgd2l0aCBub24tR0NDIGNvbXBpbGVycywKCSAgdW5mb3J0dW5hdGVseSB0aGUgY2hhbmdlIHdhcyBpbmNvcnJlY3QgYW5kIGFwcGVuZGVkIHRoZSBmaXJzdCBhcmd1bWVudAoJICBvZiBmYWlsIHRvIHRoZSBleHByZXNzaW9uIHN0cmluZyBpbnN0ZWFkIG9mIG1ha2luZyBpdCB0aGUgbWVzc2FnZS4KCSAgVGhpcyBjaGFuZ2UgZG9lcyBtZWFuIHRoYXQgZmFpbCgpIG5vdyByZXF1aXJlcyBhIG1lc3NhZ2UgdG8gYmUgcGFzc2VkCgkgIGFsb25nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzU1CgoyMDEyLTA3LTI5IDIzOjM3OjE5ICswMjAwICBKZW5zIEdlb3JnIDxtYWlsQGplbnNnZS5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXBkYXRlIGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA4MDUKCjIwMTItMDctMjkgMjM6MjA6MDcgKzAyMDAgIEplbnMgR2VvcmcgPG1haWxAamVuc2dlLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXBkYXRlIGFubm90YXRpb24gZm9yIGdldF9jb21wYXRpYmxlX3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwODA0CgoyMDEyLTA3LTI4IDIxOjIzOjI0IC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IHdyb25nICdhcnJheSB6ZXJvLXRlcm1pbmF0ZWQ9MScgYW5ub3RhdGlvbiBmb3Igc3RyaW5ncwoKMjAxMi0wNy0yOCAxMTowMjozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgZG9jczogdXBkYXRlIFRPQyBkZXNpZ24gZG9jcyBhIGxpdHRsZQoKMjAxMi0wNy0yOCAwOTo0MTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogbWFrZSBUT0MgZXZlbnQgbXVsdGktc3RpY2t5CgkgIFdlIG5lZWQgdG8gc2VuZCB0d28ga2luZHMgb2YgVE9DcyBkb3duc3RyZWFtIGFzIGV2ZW50cywKCSAgYW5kIG5lZWQgYm90aCB0byBzdGljayB0byB0aGUgcGFkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNy0yOCAwODozMDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwcmludCBUT0Mgc2NvcGUKCjIwMTItMDctMjcgMjM6NTY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IGFkZCBHc3RUb2NTY29wZSBhbmQgcmVxdWlyZSBpdCBpbiB0aGUgY29uc3RydWN0b3IKCSAgVGhpcyBpcyBiZWNhdXNlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzaWduYWwgZGlmZmVyZW50IFRPQ3MKCSAgdG8gZG93bnN0cmVhbSBlbGVtZW50cyBzdWNoIGFzIG11eGVycyBhbmQgdGhlIGFwcGxpY2F0aW9uLAoJICBhbmQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNlbmQgYm90aCB0eXBlcyBhcyBldmVudHMgKGJlY2F1c2UKCSAgdGhlIHNpbmsgc2hvdWxkIHBvc3QgdGhlIFRPQyBtZXNzYWdlcyBmb3IgdGhlIGFwcCBpbiB0aGUKCSAgZW5kLCBqdXN0IGxpa2UgdGFnIG1lc3NhZ2VzIGFyZSBub3cgcG9zdGVkIGJ5IHRoZSBzaW5rcyksCgkgIGFuZCBoZW5jZSBuZWVkIHRvIG1ha2UgVE9DIGV2ZW50cyBtdWx0aS1zdGlja3kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDctMjcgMjM6NTQ6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9jcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6CgkgIHNjcmlwdHM6IGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDogY2hlY2sgZm9yIGJhc2ljIGJ1aWxkIHRvb2xzIGFuZCBkZXBzCgkgIC4uIGJlZm9yZSBjaGVja2luZyBvdXQgc3R1ZmYuCgoyMDEyLTA3LTI3IDIzOjUyOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0YWc6IEFkZCBhIHNjb3BlIHRvIHRhZ2xpc3RzCgkgIFRoaXMgc3BlY2lmaWVzIGlmIGEgZ2l2ZW4gdGFnbGlzdCBhcHBsaWVzIHRvIHRoZSBjb21wbGV0ZQoJICBtZWRpdW0gb3Igb25seSB0aGlzIHNwZWNpZmljIHN0cmVhbS4gQnkgZGVmYXVsdCBhIHRhZ2xpc3QKCSAgaGFzIGEgc3RyZWFtIHNjb3BlLgoJICBGaXhlcyBidWcgIzY3NzYxOS4KCjIwMTItMDctMjcgMTc6MDk6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBhZGQgb2Zmc2V0IGZpZWxkCgkgIEFkZCBhbiBvZmZzZXQgZmllbGQgdGhhdCBpcyB1c2VkIHRvIHRyYWNrIGF0IHdoYXQgcG9zaXRpb24gdGhlIHNlZ21lbnQgd2FzCgkgIHVwZGF0ZWQuIFRoaXMgaXMgdXNlZCB0byBzZXQgdGhlIHJ1bm5pbmcgdGltZSB0byAwIHdoZW4gd2UgZG8gYSBmbHVzaGluZwoJICBzZWVrIHRoYXQgZG9lc24ndCB1cGRhdGUgdGhlIHBvc2l0aW9uLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDMwNgoKMjAxMi0wNy0yNyAxNToxOTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFVwZGF0ZSBmb3IgbmV3IHNlZWtpbmcgdmFyaWFibGUgbmFtZQoJICBXaGVuIHNlZWtpbmcsIHRoZSBzdGFydCB2YWx1ZSBhbmQgdHlwZSBhcmUgbm93IGNhbGxlZCBzdGFydCBhbmQgc3RhcnRfdHlwZS4KCjIwMTItMDctMjcgMTQ6NTM6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBzbWFsbCBjbGVhbnVwCgkgIE1vdmUgdGhlIGNvZGUgdG8gdXBkYXRlIHRoZSBzZWdtZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLgoKMjAxMi0wNy0yNyAxMjowNToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlIGRvY3MgYW5kIC5kZWYgZmlsZSBmb3IgdGFnbGlzdCBBUEkgY2hhbmdlCgoyMDEyLTA3LTI3IDEzOjAyOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVtb3ZlIHJlZHVuZGFudCBjaGVja3MKCSAgV2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgc2VnbWVudCBmb3JtYXQgYW55bW9yZSBiZWNhdXNlIHdlIGFzc2VydGVkIG9uIHRoZW0KCSAgYmVpbmcgZXF1YWwgYmVmb3JlLgoKMjAxMi0wNy0yNyAxMjoyNDowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBpbXByb3ZlIHNlZ21lbnQgdGVzdHMKCjIwMTItMDctMjcgMTI6MTI6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIGFsbG9jYXRvcjogcmVtb3ZlIHVzZXJfZGF0YSBmcm9tIGFsbG9jIHZtZXRob2QKCSAgUmVtb3ZlIHRoZSB1c2VyX2RhdGEgZnJvbSB0aGUgYWxsb2Mgdm1ldGhvZC4gU3ViY2xhc3NlcyB0aGF0IGltcGxlbWVudCBhIG5ldwoJICBhbGxvYyBmdW5jdGlvbiBjYW4gYWxzbyBpbXBsZW1lbnQgdGhlaXIgb3duIHZtZXRob2QgdG8gcGFzcyBleHRyYSBhcmd1bWVudHMuIFdlCgkgIGNhbiB0aGVuIGFsc28gcmVxdWlyZSB0aGF0IGN1c3RvbSBhbGxvY2F0b3JzIGltcGxlbWVudCBhbiBhbGxvYyBmdW5jdGlvbiBzbyB0aGF0CgkgIGdzdF9hbGxvY2F0b3JfYWxsb2MoKSBhbHdheXMgd29ya3MuCgoyMDEyLTA3LTI3IDEwOjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IHJlbW92ZSBzZWdtZW50IGFjY3VtdWxhdGlvbiBjaGVja3MKCSAgUmVtb3ZlIHRoZSBjaGVja3MgYmVjYXVzZSB0aGVyZSBpcyBubyBtb3JlIHNlZ21lbnQgYWNjdW11bGF0aW9uLgoKMjAxMi0wNy0yNiAxNjo0NDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2UgR1NUX1RBR19BUFBMSUNBVElPTl9EQVRBIGFsc28gYSBHc3RTYW1wbGUKCSAgVGhhdCB3YXkgYWRkaXRpb25hbCBtZXRhLWRhdGEgY2FuIGJlIHBhc3NlZCBhbG9uZyB3aXRoIGl0LgoKMjAxMi0wNy0yNiAxNTo1MToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnbGlzdDogZ3N0X3RhZ19saXN0X2dldF9idWZmZXIqKCkgPT4gZ3N0X3RhZ19saXN0X2dldF9zYW1wbGUqKCkKCSAgSW1hZ2UgdGFncyBhbmQgb3RoZXIgdGFncyBhcmUgbm93IG9mIEdzdFNhbXBsZSB0eXBlLgoKMjAxMi0wNy0yNiAxNToyNjowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgaW1hZ2UgdGFncyBhbmQgb3RoZXIgR3N0U2FtcGxlIHRhZ3MgcHJvcGVybHkKCSAgVGhlc2UgdGFncyBhcmUgbm93IG9mIHR5cGUgR3N0U2FtcGxlIG5vdCBHc3RCdWZmZXIuCgoyMDEyLTA3LTI0IDIxOjM4OjM1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IHJlbW92ZSB1bmltcGxlbWVudGVkIGFwaQoJICBXZSBjYW4gYWx3YXlzIGFkZCB0aGlzIGJhY2sgaWYgd2UgbmVlZCBpdC4gRml4ZXMgcGFydHMgb2YgIzY3MDg1Mi4KCjIwMTItMDctMjQgMTM6NDk6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHNvIGFjY291bnQgZm9yIGZyYW1lIHNpemUgd2hlbiBtZXJlbHkgc2Nhbm5pbmcgZm9yIGZyYW1lCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA0OTUKCjIwMTItMDctMjQgMTM6NDg6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgb2Jzb2xldGUgZnVuY3Rpb24gcGFyYW1ldGVyCgoyMDEyLTA3LTI0IDEyOjM4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHJlcXVpcmUgYnl0ZXMgYmVmb3JlIHR5cGVmaW5kaW5nCgkgIFJlcXVpcmUgdGhhdCB3ZSBoYXZlIHNvbWUgYnl0ZXMgaW4gdGhlIGFkYXB0ZXIgYmVmb3JlIHdlIGF0dGVtcHQgdG8gdHlwZWZpbmQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA0NzkKCjIwMTItMDctMjMgMTg6NDk6MTMgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMKCjIwMTItMDctMjMgMTY6Mjc6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBwYXNzIGluZGV4IGFzIGdpbnQgdG8gX2luc2VydAoJICBNYWtlIHRoZSBpZHggYXJndW1lbnQgb2YgX2luc2VydCgpIGEgZ2ludCBiZWNhdXNlIHdlIGFsbG93IC0xIGFzIGEgdmFsdWUuCgkgIEltcHJvdmUgYW5ub3RhdGlvbi4KCjIwMTItMDctMjMgMTM6NDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIHBsdWdpbnM6IHByaW50IGZsYWdzIGJldHRlcgoJICBwcmludCB0aGUgYnVmZmVyIGZsYWdzIGFzIGEgaGV4IG51bWJlciBzbyB0aGF0IGl0IGJlY29tZXMgZWFzaWVyIHRvIHNlZSB3aGF0CgkgIGZsYWdzIGFyZSBzZXQuCgoyMDEyLTA3LTE4IDE3OjAzOjQ1ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEltcHJvdmUgd2FybmluZyBtZXNzYWdlIHdoZW4gcmUtYWRkaW5nIGZkIHRvIGZkc2V0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAxODEKCjIwMTItMDctMjMgMDg6NDQ6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5OGUzODZmIHRvIDk0Y2NmNGMKCjIwMTItMDctMjAgMDA6NDk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIEdzdFRhZ0xpc3Qgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24KCSAgU28gd2UgY2FuIHNlcmlhbGlzZS9kZXNlcmlhbGlzZSB0YWdsaXN0cyBpbnNpZGUgc3RydWN0dXJlcywKCSAgd2hpY2ggdXNlZCB0byB3b3JrIGF1dG9tYWdpY2FsbHkgYmVmb3JlIGJlY2F1c2UgR3N0VGFnTGlzdAoJICB3YXMganVzdCBhIHR5cGVkZWYgdG8gR3N0U3RydWN0dXJlIChzYW1lIGZvciB0aGUgR1R5cGUpLAoJICBidXQgbm93IHRoYXQgaXQncyBhIHNlcGFyYXRlIEdUeXBlIHdlIG5lZWQgdG8gcmVnaXN0ZXIKCSAgZXhwbGljaXQgZnVuY3Rpb25zIGZvciB0aGlzLgoJICBIZWxwcyB3aXRoIEdEUCBzdHVmZiBpbiBwaXBlbGluZXMvc3RyZWFtaGVhZGVyIHRlc3RzLgoKMjAxMi0wNy0yMCAwOTozODo0NyArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDctMTkgMTM6NTE6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBhZGQgdGVzdHMgZm9yIHNvbWUgbXVsaXRwbGUgbWFwIGNvbWJpbmF0aW9ucwoKMjAxMi0wNy0xOSAxMzozNTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBzaGFyZWRuZXNzIGNoZWNrCgoyMDEyLTA3LTE5IDEzOjIwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogcmVmdXNlIHdyaXRlIHdoZW4gb2JqZWN0IGlzIHNoYXJlZAoJICBJbiBhbGwgY2FzZXMsIHJlZnVzZSB0byB3cml0ZSBhbiBvYmplY3Qgd2hlbiBpdCBpcyBzaGFyZWQgYnkgbW9yZSB0aGFuIG9uZQoJICBvYmplY3QgKGFsc28gd2hlbiB0aGUgb2JqZWN0IHdhcyBsb2NrZWQgYmVmb3JlKS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNDUKCjIwMTItMDctMTggMTU6MjE6MzMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICB0ZXN0czogZ3N0YnVmZmVyOiBleHRlbmQgYnVmZmVyIGNvcHkgdGVzdAoKMjAxMi0wNy0xOSAxMjo0MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlcmluZy1sZWZ0IHRvIDAgb24gMTAwJSBidWZmZXJpbmcKCSAgU2V0IHRoZSBidWZmZXJpbmctbGVmdCBmaWVsZCBpbiB0aGUgcXVlcnkgdG8gMCB3aGVuIHdlIGFyZSBjb21wbGV0ZWx5IGJ1ZmZlcmVkLgoJICBJbXByb3ZlIHRoZSBkZWJ1Zy4KCjIwMTItMDctMTkgMTI6MTQ6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBidWZmZXJpbmcgcXVlcnkKCSAgRml4IHRoZSBidWZmZXJpbmcgcXVlcnksIGZpbGwgaW4gdGhlIHJpZ2h0IGJ1ZmZlcmluZy1sZWZ0IGFuZCBlc3RpbWF0ZWQtdG90YWwKCSAgdmFsdWVzLgoKMjAxMi0wNy0xOSAxMDo1NDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHRoZSBidWZmZXJpbmctbGVmdCBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UKCSAgVGhlIGJ1ZmZlcmluZy1sZWZ0IGZpZWxkIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZSBzaG91bGQgY29udGFpbiBhIHRpbWUgZXN0aW1hdGUKCSAgaW4gbWlsbGlzZWNvbmRzIGFib3V0IGZvciBsb25nIHRoZSBidWZmZXJpbmcgaXMgZ29pbmcgdG8gdGFrZS4gV2UgY2FuIGNhbGN1bGF0ZQoJICB0aGlzIHZhbHVlIHdoZW4gd2UgZG8gcmF0ZV9lc3RpbWF0ZXMuCgoyMDEyLTA3LTE5IDEwOjE0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogaW1wcm92ZSBidWZmZXJpbmcgbWVzc2FnZSBkZWZhdWx0cwoJICBSZW1vdmUgdGhlIGVzdGltYXRlZC10b3RhbCBmaWVsZCwgdGhpcyBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIGJ1ZmZlcmluZwoJICBtZXNzYWdlLgoJICBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYnVmZmVyaW5nLWxlZnQgdG8gMCB3aGVuIHRoZSBwZXJjZW50IGlzIDEwMC4KCjIwMTItMDctMTggMTc6NDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGRlYnVnIGxpbmUKCSAgVXNlIFFVRVJZX1RZUEUgb24gcXVlcnkgdHlwZXMuCgoyMDEyLTA3LTE4IDE3OjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBjdXN0b20gZnVuY3Rpb24KCSAgUmVtb3ZlIGN1c3RvbSBwYWQgZnVuY3Rpb25zLCB0aGUgZGVmYXVsdCBvbmVzIGFyZSBiZXR0ZXIuCgoyMDEyLTA3LTE4IDE3OjMwOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIFBST1hZX1NDSEVEVUxJTkcgZmxhZwoJICBBZGQgYSBmbGFnIHRoYXQgbWFrZXMgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciBmb3J3YXJkIHRoZSBzY2hlZHVsaW5nIHF1ZXJ5LgoKMjAxMi0wNy0xOCAxNzozMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IGRvY3MKCjIwMTItMDctMTggMTY6MjA6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGltcHJvdmUgcXVlcnkgY2FwcyBmdW5jdGlvbgoJICBJbiB0aGUgcHJveHlfcXVlcnlfY2FwcyBmdW5jdGlvbiwgYWxzbyBmaWx0ZXIgYWdhaW5zdCB0aGUgZmlsdGVyIGluIHRoZSBxdWVyeS4KCSAgV2UgZG9uJ3QgbmVlZCB0byBmaWx0ZXIgYWdhaW5zdCB0aGUgZmlsdGVyIGluIHRoZSBxdWVyeSBhbnltb3JlIGluIHRoZSBkZWZhdWx0CgkgIGNhcHMgcXVlcnkgZnVuY3Rpb24gYmVjYXVzZSB3ZSBhbHJlYWR5IGRpZCB0aGlzIGluIHRoZSBwcm94eV9xdWVyeV9jYXBzLgoKMjAxMi0wNy0xOCAxMToxNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIC0xIHN0ZXAgYW1vdW50cwoJICBEZWZpbmUgYSAwIGFuZCAtMSBzdGVwIGFtb3VudC4gVGhleSB1c2VkIHRvIGFsbW9zdCBkbyB0aGUgc2FtZSB0aGluZyBidXQgbm93LCAwCgkgIGNhbmNlbHMvc3RvcHMgdGhlIGN1cnJlbnQgc3RlcCBhbmQgLTEga2VlcHMgb24gc3RlcHBpbmcgdW50aWwgdGhlIGVuZCBvZiB0aGUKCSAgc2VnbWVudC4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzNzgKCjIwMTItMDctMTggMTI6MzA6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggZ3N0X3F1ZXJ5X3BhcnNlX250aF9hbGxvY2F0aW9uX3Bvb2woKSBhbm5vdGF0aW9uCgkgIEl0IHJldHVybnMgYSByZWYgdG8gdGhlIHBvb2wuCgoyMDEyLTA3LTE3IDE1OjUyOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjazogQXZvaWQgZGVhZGxvY2sKCSAgUXVlcmllcyB3aWxsIGJlIHNlbnQgd2hlbiBwaXBlbGluZSBnb2VzIGRvd24gdG8gTlVMTCwgd2hpY2ggd291bGQKCSAgcmVzdWx0IGluIHRoZSBwcm9iZSBiZWluZyBjYWxsZWQgLi4uIGJ1dCBjYW4ndCB0YWtlIHRoZSBsb2NrLgoKMjAxMi0wNy0xNyAxNTo1MDowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IEZvcndhcmQgcXVlcmllcyBpbiBib3RoIGRpcmVjdGlvbgoJICBVc2UgdGhlIHBlZXIgb2YgdGhlIGludGVybmFsIHBhZCB0byBmb3J3YXJkIHRoZW0sIGluc3RlYWQgb2YgdGhlCgkgIHRhcmdldCB3aGljaCBvbmx5IGV4aXN0cyBmb3IgdGhlIGdob3N0cGFkIChhbmQgbm90IHRoZSBpbnRlcm5hbAoJICBwcm94eSBwYWQpLgoKMjAxMi0wNy0xNyAxMToyMDo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBNb3JlIGVudHJpZXMKCjIwMTItMDctMTggMDk6MTU6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhbnN3ZXIgU0NIRURVTElORyBxdWVyeQoJICBJbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciBmYWlsLgoKMjAxMi0wNy0xNyAxOToyMDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGhhbmRsZSBDQVBTIGV2ZW50IGFuZCBkcm9wIGl0IGlmIG9wZXJhdGluZyBpbiByaW5nIGJ1ZmZlciBtb2RlCgkgIEZpeGVzICJVbmV4cGVjdGVkIGV2ZW50IG9mIGtpbmQgY2FwcyBjYW4ndCBiZSBhZGRlZCBpbiB0ZW1wIGZpbGUiCgkgIHdhcm5pbmcgd2hlbiBkb2luZyBkb3dubG9hZCBidWZmZXJpbmcuCgoyMDEyLTA3LTE3IDEyOjU3OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbWFrZSBfZm9yZWFjaF9tZXRhIG1vcmUgcG93ZXJmdWwKCSAgTWFrZSBfZm9yZWFjaF9tZXRhIHJldHVybiBGQUxTRSB3aGVuIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybmVkIEZBTFNFLgoKMjAxMi0wNy0xNyAxMjo1Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IGltcHJvdmUgZm9yZWFjaCBmdW5jdGlvbgoJICBNYWtlIHRoZSBmb3JlYWNoIGZ1bmN0aW9uIHJldHVybiBGQUxTRSB3aGVuIG9uZSBvZiB0aGUgZnVuY3Rpb24gY2FsbHMgcmV0dXJuZWQKCSAgRkFMU0UuCgoyMDEyLTA3LTE3IDEyOjUwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTA3LTE3IDEyOjQwOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGRlYnVnIHN0cmluZwoKMjAxMi0wNy0xNyAwOTo1Nzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IGZpeCBzb21lIGRlYnVnCgoyMDEyLTA3LTE3IDA5OjQ4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiBvbmx5IGVzY2FwZSBzcGFjZXMgb3V0c2lkZSBvZiBxdW90ZXMKCSAgV2hlbiB3ZSBlc2NhcGUgc3BhY2VzIHRvIGtlZXAgYXJndW1lbnRzIHRvZ2V0aGVyLCBvbmx5IGVzY2FwZSB3aGVuIHRoZSBzcGFjZSBpcwoJICBvdXRzaWRlIGEgIiIgc3RyaW5nLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzMxOQoKMjAxMi0wNy0xNyAwOTo0NDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBSZXZlcnQgInBhcnNlOiBlc2NhcGUgXCB3aXRoIGEgXCBhcyB3ZWxsLCBzbyB0aGF0IHdlIGRvbid0IGxvc2UgdGhlIFwgd2hlbiB1bmVzY2FwaW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRkOWZlZGI0MWYxYWRhOGUxZjhiZDUzNDZmY2NkM2QwNjhkNTQzY2IuCgkgIFRoaXMgaXMgbm90IHRoZSByaWdodCBwbGFjZSB0byBlc2NhcGUgdGhlIFwsIHdlIHNob3VsZCBvbmx5IGVzY2FwZSB0aGUgc3BhY2VzIHRvCgkgIGtlZXAgdGhlIGFyZ3VtZW50cyB0b2dldGhlciB0aGF0IHdlcmUgcHJvdmlkZWQgYXMgb25lIGdyb3VwICh3aXRoIHF1b3RlcyBvbiB0aGUKCSAgc2hlbGwpLgoKMjAxMi0wNy0xMCAxMjoyNzoxMSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHNldCByZXR1cm4gdHlwZSBvZiBnc3RfcGFyc2VfYmluXyogdG8gR3N0QmluIGZvciBpbnRyb3NwZWN0aW9uCgoyMDEyLTA2LTMwIDEyOjMzOjQzIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkgIG5ldHRpbWVwYWNrZXQ6IGFkZCBtaXNzaW5nIGFycmF5IGFubm90YXRpb24gdG8gZ3N0X25ldF90aW1lX3BhY2tldF9uZXcKCjIwMTItMDYtMjkgMTc6MzM6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyBhcnJheSBhbm5vdGF0aW9uIHRvIGdzdF9mb3JtYXRzX2NvbnRhaW5zCgoyMDEyLTA3LTE2IDIwOjU0OjE3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogYWdncmVnYXRlIGR1cmF0aW9ucyBsaWtlIGluIGFkZGVyCgkgIFN0b3AgcXVlcnlpbmcgdGhlIGR1cmF0aW9uIG9uY2UgYW4gZWxlbWVudCByZXR1cm4gdW5rbm93biBhbmQgcmV0dXJuIHVua25vd24KCSAgYXMgYSBmaW5hbCByZXN1bHQuIFRoaXMgYXZvaWQgZXZlbnR1YWxseSBjdXR0aW5nIG9mZiBhIHN0cmVhbSB0b28gZWFybHkuCgkgIEFkZCBhIHRlc3RzIHRvIGRvY3VlbWVudCB0aGUgYmVoYXZpb3IuCgoyMDEyLTA3LTE2IDAwOjI0OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBqdXN0IHJldHVybiBOVUxMIG9uIHNob3J0IGlucHV0IHN0cmluZ3MgaW5zdGVhZCBvZiBhIHdhcm5pbmcKCSAgV2Ugd2FudCB0byBiZSBhYmxlIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIG9uIHJhbmRvbSBub24tTlVMTCBpbnB1dCwKCSAgdGhpcyBzaG91bGQgbm90IHJlc3VsdCBpbiBhIHJ1bnRpbWUtY3JpdGljYWwuCgoyMDEyLTA3LTE1IDEyOjU5OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2Vla2FiaWxpdHkgcXVlcnlpbmcgd2l0aCBmb3JtYXRzIHdpdGggaGVhZGVycyBsaWtlIEZMQUMKCSAgTW92ZSBjb2RlIHRoYXQgY2hlY2tzIGZvciB1cHN0cmVhbSBzZWVrYWJpbGl0eSBhbmQgYWxsIHRoYXQgdG8KCSAgdGhlIHJpZ2h0IHBsYWNlLCBvdGhlcndpc2UgaXQgd2lsbCBuZXZlciBiZSBkb25lIGZvciBmb3JtYXRzCgkgIHRoYXQgaGF2ZSBoZWFkZXJzIHN1Y2ggYXMgRkxBQywgYXMgaGFuZGxlX2FuZF9wdXNoIGZyYW1lIHdpbGwKCSAgYmUgY2FsbGVkIHRoZSBmaXJzdCB0aW1lIG9ubHkgYWZ0ZXIgaGVhZGVycyBoYXZlIGJlZW4gcHJvY2Vzc2VkCgkgIChhbmQgZnJhbWVjb3VudCBpcyA+IDApLiBUaGlzIHRoZW4gbWFrZXMgdXMgcmVwb3J0IHRoYXQgd2UKCSAgY2FuJ3Qgc2Vlaywgd2hpY2ggZGlzYWJsZXMgdGhlIHNlZWsgYmFyIGluIHRvdGVtLgoKMjAxMi0wNy0xNCAyMDozMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIHBsdWdpbnM6IGVtYmVkIEdzdEF1ZXVlQXJyYXkgaW4gZGF0YXF1ZXVlIHN0cnVjdCBhcyB3ZWxsCgoyMDEyLTA3LTE0IDIwOjI4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBwbHVnaW5zOiBkb24ndCB1c2Ugb25lLXRpbWUgYXJyYXkgaW4gcGx1Z2luX2luaXQKCjIwMTItMDctMTQgMjA6MjY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IGVtYmVkIEdzdFF1ZXVlQXJyYXkgc3RydWN0dXJlCgoyMDEyLTA3LTE0IDIwOjAwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBwbHVnaW5zOiBzcHJpbmtsZSBzb21lIG1vcmUgR19HTlVDX0lOVEVSTkFMCgoyMDEyLTA3LTE0IDE5OjM4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJICBwbHVnaW5zOiBhZGQgaW5pdC9jbGVhciBmdW5jdGlvbnMgdG8gR3N0UXVldWVBcnJheQoKMjAxMi0wNy0xNCAxOToyNDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdFF1ZXVlQXJyYXkgcHJpdmF0ZSB0byBjb3JlZWxlbWVudHMgZm9yIG5vdwoJICBLZWVwIGl0IHByaXZhdGUgdW50aWwgd2UgaGF2ZSBhIHJlYXNvbiB0byBtYWtlIGl0IHB1YmxpYy4KCjIwMTItMDctMTQgMTk6MDg6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBjaGVjayB2YWx1ZSB0eXBlIG1hdGNoZXMgdGFnIHR5cGUgd2hlbiBhZGRpbmcgdmFsdWVzIHRvIGEgdGFnbGlzdAoKMjAxMi0wNy0xNCAxODo1Mjo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgdGFnbGlzdHMgYW5kIGRhdGV0aW1lIGxvZ2dhYmxlIHZpYSBHU1RfUFRSX0ZPUk1BVAoKMjAxMi0wNy0xMyAxMjowNToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VuZCBzZWVrIGV2ZW50IHVwc3RyZWFtIGZpcnN0CgkgIEZpcnN0IHRyeSB0byBsZXQgdXBzdHJlYW0gaGFuZGxlIHRoZSBzZWVrIGV2ZW50LCB0aGVuIGZhaWwgaWYgdGhlIGV2ZW50IGlzCgkgIHNvbWV0aGluZyB3ZSBkb24ndCB1bmRlcnN0YW5kLgoKMjAxMi0wNy0xMyAwOTo0Mzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdGVzdCByYWNpbmVzcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTA2CgoyMDEyLTA3LTEyIDEzOjE3OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGZpeCBnc3QtZmZtcGVnIHBsdWdpbiBwYXRoIGFnYWluCgoyMDEyLTA3LTEyIDEyOjA5OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBjbHV0dGVyLWdzdCBhbmQgcmVmaW5lIHBsdWdpbiBzZWFyY2ggcGF0aHMKCjIwMTItMDctMTIgMDA6MzQ6MjIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBNb3ZlIHN0aWNreSBmbGFnIGNsZWFyaW5nIGNvZGUgdG8gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlCgkgIFRoZSBnaG9zdHBhZCBjb2RlIGRpcmVjdGx5IGFjdGl2YXRlcy9kZWFjdGl2YXRlcyB0aGUgY2hpbGQgY29kZSBieQoJICBjYWxsaW5nIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSwgcmF0aGVyIHRoYW4gZ3N0X3BhZF9zZXRfYWN0aXZlLCBzbwoJICBtYWtlIHN1cmUgdG8gY2xlYXIgdGhlIGZsYWdzIGluIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpLCB3aGljaCBzaG91bGQKCSAgY2F0Y2ggYWxsIGNhc2VzLgoKMjAxMi0wNy0xMSAxMjo0MDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogaW1wcm92ZSBhbm5vdGF0aW9uCgoyMDEyLTA3LTExIDEyOjM3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIHN0ZXAgZW5kIGNvcnJlY3RseQoJICB3aGVuIHdlIGhhdmUgYSBuZXcgc3RlcCBldmVudCB3aXRoIGEgLTEgYW1vdW50LCBtYWtlIHN1cmUgdGhhdCB3ZSBmb2xsb3cgdGhlCgkgIHJlZ3VsYXIgY29kZSBwYXRoIHNvIHRoYXQgdGhlIHN0b3BfZW5kIGhhbmRsZXIgaXMgY2FsbGVkIGFzIHVzdWFsLiBUaGlzIHRha2VzCgkgIGNhcmUgb2YgZmx1c2hpbmcgdGhlIGJ1ZmZlciBpbiBjYXNlIG9mIGEgZmx1c2hpbmcgc3RlcCBhbmQgYWxzbyBwb3N0cyBhIHN0ZXAgZW5kCgkgIG1lc3NhZ2UuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mzc4CgoyMDEyLTA3LTExIDEzOjE0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIHdpbjMyOiBGaXggZXhwb3J0ZWQgc3ltYm9scyBsaXN0IGZvciByZWFsIG5vdwoKMjAxMi0wNy0xMSAxMToyMToxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSByZW1vdmVkIGFwaSBmcm9tIHRoZSBkb2NzLgoKMjAxMi0wNy0xMSAxMjo0NjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scyBsaXN0CgoyMDEyLTA3LTExIDEyOjQ1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IEFkZCBmdW5jdGlvbnMgdG8gcmV0cmlldmUgdGhlIHBhcmVudCBHc3RUb2MvR3N0VG9jRW50cnkgb2YgYSBHc3RUb2NFbnRyeQoKMjAxMi0wNy0xMCAxODoxNToyMCArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IEZpeCBnc3RfdG9jX2ZpbmRfZW50cnkoKQoJICBSZWN1cnNpdmUgc2VhcmNoIGZvciB0aGUgcmVxdWlyZWQgZW50cnksIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZQoJICB0b3AtbGV2ZWwgZW50cnkgdGhhdCBjb250YWlucyBhbiBlbnRyeSB3aXRoIHRoZSBzZWFyY2ggVUlELgoKMjAxMi0wNy0xMSAxMDoyNjoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFB1c2ggU1RSRUFNX1NUQVJUIGluIHB1bGwtbW9kZQoKMjAxMi0wNy0xMSAxMDoyNDo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRGVtb3RlIFdBUk5JTkcgdG8gREVCVUcKCSAgSXQgaXMgbm90IGFuIGlzc3VlIHRvIGdldCBmaWVsZHMgdGhhdCBkb24ndCBleGlzdCwgY2FsbGluZyBjb2RlIHNob3VsZAoJICBoYW5kbGUgdGhhdC4KCjIwMTItMDctMTAgMTE6NDY6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgUmVtb3ZlIDAuMTAtcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCAiU2luY2UiIG1hcmtlcnMKCjIwMTItMDctMTAgMDA6Mzk6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJvdmlkZSBmYWxsYmFjayBpbiBjYXNlIGEgY3JlYXRlIGZ1bmN0aW9uIGRvZXNuJ3Qga25vdyBhYm91dCBwcm92aWRlZCBidWZmZXJzCgkgIEluIDAuMTEgdGhlIGNhbGxlciBtYXkgcHJvdmlkZSBhIGJ1ZmZlciB0byBiZSBmaWxsZWQgYnkgdGhlIHNvdXJjZSB0bwoJICBwdWxsX3JhbmdlL2dldF9yYW5nZS9jcmVhdGUsIGJ1dCBpdCdzIGVhc3kgdG8gbWlzcyB0aGlzIG5ldyBjYXNlIHdoZW4KCSAgcG9ydGluZyBjb2RlIGZyb20gMC4xMC4gUHJvdmlkZSBmYWxsYmFjayB0aGF0IGNvcGllcyB0aGUgY3JlYXRlZCBkYXRhCgkgIGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlciBmb3Igbm93LgoJICBUaGlzIG1ha2VzIG9nZ2RlbXV4IGluIHB1bGwtbW9kZSB3b3JrIHdpdGggZGF0YXVyaXNyYy4KCjIwMTItMDctMTAgMTA6MzE6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogY29weSBzdHJ1Y3R1cmUgaW4gX2FkZF9hbGxvY2F0aW9uX21ldGEoKQoJICBNYWtlIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9tZXRhKCkgdGFrZSBhIGNvcHkgb2YgdGhlIHBhc3NlZCBjYXBzIGluc3RlYWQgb2YKCSAgdGFraW5nIG93bmVyc2hpcC4gVGhpcyBtYWtlcyBpdCBlYXNpZXIgZm9yIHRoZSBjYWxsZXIgaW4gbW9zdCBjYXNlcyBiZWNhdXNlIGl0CgkgIGRvZXNuJ3QgaGF2ZSB0byBtYWtlIGEgY29weSBhbmQgZGVhbCB3aXRoIE5VTEwgdmFsdWVzLgoKMjAxMi0wNy0xMCAxMDoxMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgbmV3IGZsYWdzCgoyMDEyLTA3LTA5IDIzOjQ3OjUzICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGV4Y2x1c2l2ZSBsb2NrL3VubG9jayByYWNlCgoyMDEyLTA3LTEwIDAwOjU5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGNvcHkgaW50byBwcm92aWRlZCBidWZmZXIgaWYgYSBidWZmZXIgaXMgcHJvdmlkZWQKCjIwMTItMDctMDkgMjE6NTE6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBiYXNlc3JjLCBiYXNlc2luaywgYmFzZXBhcnNlLCB0eXBlZmluZDogdXNlIEdTVF9TRUdNRU5UX0ZMQUcgd2l0aCBzZWdtZW50IGZsYWdzCgoyMDEyLTA3LTA5IDIyOjExOjMxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogYWxzbyBjb3B5IHRoZSBzZWdtZW50IGZsYWcKCSAgRml4ZXMgc2VnbWVudGVkIHNlZWtzIChhcyB0ZXN0ZWQgZS5nLiBpbiB0aGUgYWRkZXIgdGVzdHMgaW4gYmFzZSkuCgoyMDEyLTA3LTA5IDIwOjU1OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIHBsdWdpbnM6IHNwcmlua2xlIEdfR05VQ19JTlRFUk5BTCBmb3IgZGF0YXF1ZXVlIGZ1bmN0aW9ucwoJICBBbmQgcmVtb3ZlIHBhZGRpbmcsIHNpbmNlIHRoaXMgaXMgbm90IHB1YmxpYyBBUEkgYW55IG1vcmUuCgoyMDEyLTA3LTA5IDIwOjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgZ3N0OiBzcHJpbmtsZSBzb21lIEdfR05VQ19JTlRFUk5BTCBmb3IgaW50ZXJuYWwgZnVuY3Rpb25zCgoyMDEyLTA3LTA5IDIwOjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0ZXN0czogZml4IHRvYyB1bml0IHRlc3RzCgkgIE1lYW50IHRvIGNoZWNrIHN1YnN1YmVudHJ5LCBub3Qgc3ViZW50cnkuCgoyMDEyLTA3LTA5IDE4OjU4OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IG1pbm9yIHRvYyB0ZXN0IGNsZWFuLXVwCgoyMDEyLTA3LTA5IDE4OjUxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0ZXN0czogdHVybiB0b2MgY2hlY2sgbWFjcm9zIGludG8gcHJvcGVyIGZ1bmN0aW9ucwoJICBTbyB3ZSBjYW4gc2VlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgY2hlY2sgdGhhdCBmYWlscy4KCjIwMTItMDctMDkgMjA6MzE6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlIGZvciBBUEkgY2hhbmdlcy9hZGRpdGlvbgoKMjAxMi0wNy0wOSAyMDoyOToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIGNoZWNrOiBVcGRhdGUgdGVzdHMgZm9yIG5ldyBTVFJFQU1fU1RBUlQgbWVzc2FnZQoKMjAxMi0wNy0wOSAyMDoyODo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrOiBFbnN1cmUgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgaXMgcG9zdGVkCgkgIEEgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgaXMgcG9zdGVkIGlmIGFuZCBvbmx5IGlmIGFsbCBzaW5rcyBpbiB0aGUKCSAgYmluL3BpcGVsaW5lIHJlY2VpdmVkIHRoZSBTVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMjA6Mjg6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUG9zdCBhIFNUUkVBTV9TVEFSVCBtZXNzYWdlIHdoZW4gd2Ugc2VlIHRoZSBldmVudAoKMjAxMi0wNy0wOSAyMDoyNzo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogY29sbGVjdCBhbmQgYWdncmVnYXRlIFNUUkVBTV9TVEFSVCBtZXNzYWdlcwoJICB3aGVuIGFsbCBzaW5rcyBoYXZlIHBvc3RlZCBhIFNUUkVBTV9TVEFSVCwgdGhlIGJpbiB3aWxsIGZvcndhcmQgYQoJICBuZXcgU1RSRUFNX1NUQVJUIG1lc3NhZ2UgdG8gdGhlIHBhcmVudCBiaW4gb3IgYXBwbGljYXRpb24KCjIwMTItMDctMDkgMjA6MDg6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG1lc3NhZ2U6IE5ldyBHU1RfTUVTU0FHRV9TVFJFQU1fU1RBUlQKCSAgbWVzc2FnZSBjb3VudGVycGFydCB0byB0aGUgR1NUX0VWRU5UX1NUUkVBTV9TVEFSVCBldmVudAoKMjAxMi0wNy0wOSAxOTo1OTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrOiBVbml0IHRlc3QgZm9yIEVPUyBtZXNzYWdlCgkgIE1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGFnZ3JlZ2F0ZWQgbWVzc2FnZSBpZiBhbmQgb25seSBpZiBhbGwgc2lua3MKCSAgcmVjZWl2ZWQgYW4gRU9TIGV2ZW50CgoyMDEyLTA3LTA5IDE5OjU2OjE1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYWRkIFNUUkVBTV9TVEFSVCBoYW5kbGluZwoJICBVc2UgYSBmbGFnIHRvIGZvcndhcmQgdGhlIGZpcnN0IFNUUkVBTV9TVEFSVAoKMjAxMi0wNy0wOSAxNjoyMDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBkb2NzOiB1cGRhdGUgc3RyZWFtIGRvY3MgZm9yIFNFR01FTlRfU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMTY6NDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBmaXggbW9yZSBkb2NzCgoyMDEyLTA3LTA5IDE2OjIyOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJICBkb2NzOiBmaXggZG9jcyBhIGxpdHRsZSBtb3JlCgoyMDEyLTA3LTA5IDE2OjAyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBtZW1vcnk6IE1ha2UgR3N0QWxsb2NhdG9yIGEgR3N0T2JqZWN0CgkgIE1ha2UgR3N0QWxsb2NhdG9yIGEgR3N0T2JqZWN0IGluc3RlYWQgb2YgYSBHc3RNaW5pT2JqZWN0LCBsaWtlIGJ1ZmZlcnBvb2wuCgkgIE1ha2UgYSBuZXcgZ3N0YWxsb2NhdG9yLmMgZmlsZS4gTWFrZSBhIEdzdEFsbG9jYXRvciBzdWJjbGFzcyBmb3IgdGhlIGRlZmF1bHQKCSAgYWxsb2NhdG9yLgoKMjAxMi0wNy0wOSAxMzoyMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiByZW1vdmUgdW51c2VkIG1hY3JvcwoKMjAxMi0wNy0wOSAxMzoyMDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IG1ha2UgYWJzdHJhY3QKCSAgTWFrZSB0aGUgR3N0Q2xvY2sgdHlwZSBhYnN0cmFjdC4KCSAgRml4IGEgaG9ycmlibGUgaGFjayBpbiB0aGUgY2xvY2sgdW5pdCB0ZXN0LgoKMjAxMi0wNy0wOSAxNTozNzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBGaXggaGFuZGxpbmcgb2YgbWluLXRocmVzaG9sZCBhbmQgc2VyaWFsaXplZCBxdWVyaWVzCgkgIE9ubHkgY29uc2lkZXIgdGhlIHF1ZXVlIGVtcHR5IGlmIHRoZSBtaW5pbXVtIHRocmVzaG9sZHMKCSAgYXJlIG5vdCByZWFjaGVkIGFuZCBkYXRhIGlzIGF0IHRoZSBxdWV1ZSBoZWFkLiBPdGhlcndpc2UKCSAgd2Ugd291bGQgYmxvY2sgZm9yZXZlciBvbiBzZXJpYWxpemVkIHF1ZXJpZXMuCgkgIFRoaXMgYWxzbyBtYWtlcyBzZW5kaW5nIG9mIHNlcmlhbGl6ZWQgZXZlbnRzLCBsaWtlIGNhcHMsIGhhcHBlbgoJICBmYXN0ZXIgYW5kIHBvdGVudGlhbGx5IGltcHJvdmVzIG5lZ290aWF0aW9uIHBlcmZvcm1hbmNlLgoJICBGaXhlcyBidWcgIzY3OTQ1OC4KCjIwMTItMDctMDkgMTM6MTU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHJlbW92ZSBwYWRkaW5nIG5vdyB0aGF0IHRoZSBzdHJ1Y3RzIGFyZSBwcml2YXRlCgoyMDEyLTA3LTA5IDEzOjEyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogYWRkIGdzdF90b2NfZHVtcCgpIGZ1bmN0aW9uIGZvciBkZWJ1Z2dpbmcKCSAgQVBJOiBnc3RfdG9jX2R1bXAoKQoKMjAxMi0wNy0wMyAwMDowNzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYnVzLCBjbG9jazogbWFrZSBzdXJlIHRoZXNlIG5ldmVyIGhhdmUgYSBmbG9hdGluZyByZWYKCSAgQ2xlYXIgdGhlIGluaXRpYWwgZmxvYXRpbmcgcmVmIGluIHRoZSBpbml0IGZ1bmN0aW9uIGZvcgoJICBidXNzZXMgYW5kIGNsb2Nrcy4gVGhlc2Ugb2JqZWN0cyBjYW4gYmUgc2V0IG9uIG11bHRpcGxlCgkgIGVsZW1lbnRzLCBzbyB0aGVyZSdzIG5vIGNsZWFyIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXAKCSAgaGVyZS4gSWRlYWxseSB3ZSdkIGp1c3Qgbm90IG1ha2UgdGhlbSBkZXJpdmUgZnJvbQoJICBHSW5pdGlhbGx5VW5vd25lZCBhdCBhbGwsIGJ1dCBzaW5jZSB3ZSB3YW50IHRvIGtlZXAKCSAgdXNpbmcgR3N0T2JqZWN0IGZlYXR1cmVzIGZvciBkZWJ1Z2dpbmcsIHdlJ2xsIGp1c3QgZG8KCSAgaXQgbGlrZSB0aGlzLgoJICBUaGlzIHNob3VsZCBhbHNvIGZpeCBzb21lIHByb2JsZW1zIHdpdGggYmluZGluZ3MsIHdoaWNoCgkgIHNlZW0gdG8gZ2V0IGNvbmZ1c2VkIHdoZW4gdGhleSBnZXQgZmxvYXRpbmcgcmVmcyBmcm9tCgkgIG5vbi1jb25zdHJ1Y3RvciBmdW5jdGlvbnMgKG9yIGZ1bmN0aW9ucyBhbm5vdGF0ZWQgdG8KCSAgaGF2ZSBhICd0cmFuc2ZlciBmdWxsJyByZXR1cm4gdHlwZSkuIFRoaXMgd29ya3Mgbm93OgoJICBmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IEdPYmplY3QsIEdzdAoJICBHT2JqZWN0LnRocmVhZHNfaW5pdCgpCgkgIEdzdC5pbml0KE5vbmUpCgkgIHBpcGVsaW5lPUdzdC5QaXBlbGluZSgpCgkgIGJ1cyA9IHBpcGVsaW5lLmdldF9idXMoKQoJICBwaXBlbGluZS5zZXRfc3RhdGUoR3N0LlN0YXRlLk5VTEwpCgkgIGRlbCBwaXBlbGluZTsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTI4NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3MjAyCgoyMDEyLTA3LTA4IDIwOjE1OjMzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogc3VwcHJlc3MgZ2xpYiBkZXByZWNhdGlvbnMgd2FybmluZ3MgZm9yIEdfVkFMVUVfQVJSQVkKCjIwMTItMDctMDcgMjM6MTM6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIHRlc3RzIGZvciBkYXRldGltZSB2YWx1ZSBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbgoJICBFc3AuIG9mIHBhcnRpYWwgZGF0ZXRpbWVzLgoKMjAxMi0wNy0wNyAyMjo0NjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB1c2UgZGF0ZXRpbWUgc2VyaWFsaXNlL2Rlc2VyaWFsaXNlIGZ1bmN0aW9ucyBmb3IgZGF0ZXRpbWVzCgkgIFRoaXMgcmUtdXNlcyBleGlzdGluZyBjb2RlIGFuZCBtYWtlcyBzdXJlIHdlIHByb3Blcmx5IHNlcmlhbGlzZQoJICBhbmQgZGVzZXJpYWxpc2UgZGF0ZXRpbWVzIHdoZXJlIG5vdCBhbGwgZmllbGRzIGFyZSBzZXQgKHRodXMKCSAgZml4aW5nIHNvbWUgd2FybmluZ3Mgd2hlbiBzZXJpYWxpc2luZyBzdWNoIGRhdGV0aW1lcykuCgoyMDEyLTA3LTA3IDIyOjQwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBkbyBvdXIgb3duIHNlcmlhbGlzYXRpb24gc28gd2UgY2FuIHNlcmlhbGlzZSBtaWNyb3NlY29uZHMgYXMgd2VsbAoJICBXZSBzdGlsbCBkb24ndCBkbyB0aGF0IGluIF90b19pc284NjAxX3N0cmluZygpIHRob3VnaCwgc2luY2UKCSAgdGhpcyB3aWxsIHByb2JhYmx5IG1vc3RseSBiZSB1c2VkIGluIHRhZ3MsIHdoZXJlIGl0IGRvZXNuJ3QKCSAgbWF0dGVyIHNvIG11Y2ggYW5kIHRoZSBtaWNyb3NlY29uZCBhcmd1bWVudCBtaWdodCBub3QgYmUKCSAgd2VsbC1yZWNlaXZlZCBieSBzb21lIHRhZyByZWFkZXJzLgoKMjAxMi0wNy0wNyAxOTo0Mzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogd2hlbiBkZXNlcmlhbGlzaW5nIHBhcnNlIG1pY3Jvc2Vjb25kcyBpZiBhdmFpbGFibGUKCjIwMTItMDctMDcgMTY6MDE6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IGZpeCBzZWNvbmQgcGFyc2luZyBmYWlsdXJlIGNhc2Ugd2hlbiBkZXNlcmlhbGlzaW5nIGRhdGV0aW1lCgkgIFdoZW4gd2UgZmFpbCB0byBwYXJzZSB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIHJlc2V0IHRoZSB2YWx1ZSB0byAtMQoJICBpbnN0ZWFkIG9mIHBhc3Npbmcgc29tZSBlcnJvciB2YWx1ZSBhcyBzZWNvbmRzLiBBbHNvLCB3ZSBjYW4gc3RpbGwKCSAgdHJ5IHRvIHBhcnNlIHRpbWV6b25lIGluZm9ybWF0aW9uLgoKMjAxMi0wNy0wNyAxNTo0NDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBleGFtcGxlczogZml4IGRlYnVnIGxvZyBwcmludCBmb3JtYXRzIGluIG1lbW9yeSBleGFtcGxlcwoKMjAxMi0wNy0wNyAwMTozNzo1MCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBBZGQgZGVzdHJveSBub3RpZnkgYXJndW1lbnRzIHRvIGRlYnVnIHN0dWJzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MzUKCjIwMTItMDctMDYgMjA6Mzc6MDYgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFNldCBsY29weSBzdHJpbmcgY29uc3QgZXhhY3RseSBhcyBnbGliJ3MgbWFjcm8KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTUzNAoKMjAxMi0wNy0wNiAxNzoxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgbWVtb3J5OiBleHBvc2UgdGhlIEdzdEFsbG9jYXRpb24gc3RydWN0dXJlCgkgIEV4cG9zZSB0aGUgR3N0QWxsb2NhdGlvbiBzdHJ1Y3R1cmUgYW5kIHByb3ZpZGUgYW4gX2luaXQgZnVuY3Rpb24uIFRoaXMgbWFrZXMgaXQKCSAgZWFzaWVyIHRvIG1ha2UgJ3N1YmNsYXNzZXMnIG9mIHRoZSBhbGxvY2F0b3IgdGhhdCBjb250YWluIG1vcmUgaW5mby4KCSAgSXQgYWxzbyBhbGxvd3MgdXMgdG8gZXhwb3NlIHRoZSBmbGFncyBvbiB0aGUgYWxsb2NhdG9yIG1pbmlvYmplY3QuCgkgIE1ha2UgYSBmbGFnIHRvIG5vdGUgdGhhdCB0aGUgYWxsb2NhdG9yIHVzZXMgYSBjdXN0b20gYWxsb2MgZnVuY3Rpb24uCgoyMDEyLTA3LTA2IDEyOjQ1OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBEZW1vdGUgV0FSTklORyB0byBJTkZPCgkgIEl0IGlzIGNvbW1vbiB0byB1c2UgZ3N0X3N0cnVjdHVyZV9nZXQoKSB0byBrbm93IGlmIGEgZmllbGQgaXMgcHJlc2VudAoJICBvciBub3QuCgoyMDEyLTA3LTA2IDExOjQxOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBSZW1vdmUgdW51c2VkIGRlZmluZQoKMjAxMi0wNy0wNiAxMTo0MTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgY2hlY2s6IGdzdGNvbnRyb2xsZXIuaCBkb2Vzbid0IGV4aXN0IGFueW1vcmUKCjIwMTItMDctMDYgMTE6NDA6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGNoZWNrOiBVc2UgY29uc2lzdGVuY3ljaGVjayBvbiBiYXNlc3JjCgoyMDEyLTA3LTA2IDExOjM4OjU4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IENoZWNrIGZvciBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgQ2hlY2sgdGhhdCBpdCBpcyBhbHdheXMgYmVmb3JlIGFueSBzZXJpYWxpemVkIGV2ZW50LgoKMjAxMi0wNy0wNiAxMDoxMzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlbW92ZSB1bmltcGxlbWVudGVkIG1heGltdW0gcHJvcGVydHkKCjIwMTItMDctMDYgMTA6MDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBoYXMtc2luay1sb29wIHByb3BlcnR5CgoyMDEyLTA3LTA2IDEwOjA3OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIGRlcHJlY2F0ZWQgdGVtcC1sb2NhdGlvbiB1c2UsIG1ha2UgaXQgcmVhZC1vbmx5CgoyMDEyLTA3LTA2IDA5OjU3OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogcmVtb3ZlIGRlcHJlY2F0ZWQgY2hlY2stcGVyZmVjdCBwcm9wZXJ0eQoJICBSZXBsYWNlZCBieSB0aGUgbW9yZSBzcGVjaWZpYyBjaGVjay1pbXBlcmZlY3Qte3RpbWVzdGFtcCxvZmZzZXR9CgoyMDEyLTA3LTA2IDExOjQ5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHF1ZXJ5OiB1c2UgbW9yZSBnZW5lcmljIHN0cnVjdHVyZSBmb3IgbWV0YSBwYXJhbXMKCjIwMTItMDctMDYgMTE6MjI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBtYWtlIGZpbmRfYWxsb2NhdGlvbl9tZXRhIG1ldGhvZAoJICBNYWtlIGdzdF9xdWVyeV9maW5kX2FsbG9jYXRpb25fbWV0YSgpIHRoYXQgYWxzbyByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBtZXRhZGF0YQoJICBhbmQgcmVwbGFjZXMgZ3N0X3F1ZXJ5X2hhc19hbGxvY2F0aW9uX21ldGEoKS4KCjIwMTItMDctMDYgMTE6MDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgcXVlcnk6IGFkZCBmbGFncyB0byBhbGxvY2F0aW9uIHF1ZXJ5CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gYWRkIEFQSSBzcGVjaWZpYyBmbGFncyB0byB0aGUgQUxMT0NBVElPTiBxdWVyeS4gVGhpcyBtYWtlcwoJICBpdCBwb3NzaWJsZSB0byBhbHNvIGNoZWNrIHdoYXQga2luZHMgb2Ygc3ViZmVhdHVyZXMgb2YgdGhlIG1ldGFkYXRhIEFQSSBhcmUKCSAgc3VwcG9ydGVkLgoKMjAxMi0wNy0wNiAwOToxMTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJICB0ZXN0czogcmVtb3ZlIHVudXNlZCBpbmNsdWRlcwoKMjAxMi0wNy0wNSAxODowNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmg6CgkgIG1lbW9yeTogYWRkIG1vcmUgZXhhbXBsZXMKCSAgQWRkIGFuIGV4YW1wbGUgb2YgYSBjdXN0b20gYWxsb2NhdG9yIHdpdGggYSBjdXN0b20gQVBJLgoKMjAxMi0wNy0wNSAxNzoxMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgZ3N0X21lbW9yeV9pbml0KCkKCSAgQWRkIGEgbWV0aG9kIHRoYXQgbWVtb3J5IGltcGxlbWVudGF0aW9ucyBjYW4gY2FsbCB0byBpbml0aWFsaXplIHRoZSBzdGFuZGFyZAoJICBHc3RNZW1vcnkgc3RydWN0dXJlLgoJICBNb3ZlIHRoZSBwYXJlbnQgaGFuZGxpbmcgaW4gdGhlIF9mcmVlIGhhbmRsZXIuCgkgIFJlYXJyYW5nZSBzb21lIGludGVybmFsIGZ1bmN0aW9uIHBhcmFtZXRlcnMgc28gdGhhdCB0aGUgb3JkZXIgaXMgY29uc2lzdGVudC4KCSAgQWRkIG1vcmUgbWVtb3J5IGV4YW1wbGVzCgoyMDEyLTA3LTA1IDE2OjE3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IHNvbWUgbWluaW9iamVjdCBkb2NzCgoyMDEyLTA3LTA1IDE0OjI1OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L21lbW9yeV90ZXN0LmM6CgkgIHRlc3RzOiBhZGQgbWVtb3J5IGV4YW1wbGUKCjIwMTItMDctMDUgMTI6MjU6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogZml4IHRvYyB1bml0IHRlc3QgYnVpbGQgYnkgcmVtb3ZpbmcgdG9jIHF1ZXJ5IHN0dWZmIHRoZXJlIHRvbwoKMjAxMi0wNy0wNSAxMzowMzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGQgZm9ybWF0IGFuZCBwb3NpdGlvbiB0byB0aGUgc2VnbWVudC1kb25lIGV2ZW50CgoyMDEyLTA3LTA1IDEyOjUzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWluaW9iamVjdC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTA3LTA1IDEyOjE3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogaW5jcmVhc2UgYW1vdW50IG9mIHBvc3NpYmxlIGZsYWdzCgoyMDEyLTA3LTA1IDEyOjUyOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZXZlbnQ6IEltcGxlbWVudCBzZWdtZW50LWRvbmUgZXZlbnQKCjIwMTItMDctMDUgMTI6Mzc6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBwYXJ0LXRvYzogUmVtb3ZlIHNlY3Rpb24gYWJvdXQgVE9DIHF1ZXJ5CgoyMDEyLTA3LTA1IDEyOjM0OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0ZWQgc3ltYm9scyBsaXN0CgoyMDEyLTA3LTA1IDEyOjMxOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IFJlbW92ZSB0aGUgVE9DIHF1ZXJ5LCBpdCdzIG5vdCB2ZXJ5IHVzZWZ1bCBub3cgdGhhdCB3ZSBoYXZlIHN0aWNreSBldmVudHMKCjIwMTItMDctMDMgMTg6NDk6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFyazogUmVtb3ZlIHVubmVlZGVkIHF1YXJrcwoKMjAxMi0wNy0wMyAxODo0NTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBNYWtlIHN0cnVjdHVyZXMgb3BhcXVlIGFuZCBjbGVhbiB1cCBmdW5jdGlvbiBuYW1lcyBhbmQgZmllbGRzIGEgYml0CgoyMDEyLTA3LTA0IDE3OjAyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6Zml4IGRlYnVnIGNhdGVnb3J5CgoyMDEyLTA3LTA0IDE2OjM4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgbG9jayBmdW5jdGlvbmFsaXR5IHRvIEdzdE1pbmlPYmplY3QKCSAgTW92ZSB0aGUgbG9ja2luZyBtZXRob2RzIGZyb20gR3N0TWVtb3J5IHRvIEdzdE1pbmlPYmplY3QuCgkgIEFkZCBhIG1pbmlvYmplY3QgZmxhZyB0byBlbmFibGUgTE9DS0FCTEUgb2JqZWN0cy4gTE9DS0FCTEUgb2JqZWN0cyBjYW4KCSAgdXNlIHRoZSBsb2NrL3VubG9jayBBUEkgdG8gY29udHJvbCB0aGUgYWNjZXNzIHRvIHRoZSBvYmplY3QuCgkgIEFkZCBhIG1pbm9iamVjdCBmbGFnIHRoYXQgYWxsb3dzIHlvdSB0byBsb2NrIGFuIG9iamVjdCBpbiByZWFkb25seSBtb2RlLgoJICBNb2RpZnkgdGhlIF9pc193cml0YWJsZSgpIG1ldGhvZCB0byBjaGVjayB0aGUgc2hhcmVkIGNvdW50ZXIgZm9yIExPQ0tBQkxFCgkgIG9iamVjdHMuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnRyb2wgd3JpdGFiaWxpdHkgc2VwYXJhdGVseSBmcm9tIHRoZSByZWZjb3VudCBmb3IKCSAgTE9DS0FCTEUgb2JqZWN0cy4KCjIwMTItMDctMDQgMTY6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIG5ldyBsb2NraW5nIGRlYnVnIGNhdGVnb3J5CgoyMDEyLTA3LTA0IDEyOjI4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBpc19leGNsdXNpdmUKCjIwMTItMDctMDQgMTI6MDM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIExPQ0tfRkxBR19SRUFEV1JJVEUgZGVmaW5lCgoyMDEyLTA3LTA0IDExOjQ4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBtZW1vcnk6IHVwZGF0ZSBkb2NzCgoyMDEyLTA3LTA0IDEwOjEyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHNtYWxsIGNsZWFudXAKCjIwMTItMDctMDMgMTM6NTA6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cGRhdGUgZm9yIG5ldyBzeW1ib2xzCgoyMDEyLTA3LTAzIDEzOjQ3OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEZpeCB0aGUgTk9fU0hBUkUgZmxhZyBpbiB0aGUgY29uc3RydWN0b3IKCSAgVGhlIE5PX1NIQVJFIGZsYWcgZG9lcyBub3QgaW5mbHVlbmNlIHRoZSBleGNsdXNpdmVuZXNzIG9mIHRoZSBidWZmZXIgaW5pdGlhbGx5CgkgIGJ1dCBvbmx5IGlmIGEgX3NoYXJlIG9wZXJhdGlvbiBjYW4gYmUgZG9uZS4gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBub3QgYmUgYWJsZSB0bwoJICBXUklURSBtYXAgYSBidWZmZXIgbWVtb3J5IGJlY2F1c2UgaXQgd291bGQgaGF2ZSBhIHNoYXJlIGNvdW50IG9mIGF0IGxlYXN0IDIuCgoyMDEyLTA3LTAzIDEzOjQ3OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG9ubHkgY2hlY2sgdGhlIGxvY2tpbmcgcmVmY291bnQKCjIwMTItMDctMDMgMTM6NDY6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHJlc2l6ZQoJICBDb3JyZWN0bHkgdXBkYXRlIHRoZSBleGNsdXNpdmUgbG9ja3MKCjIwMTItMDctMDMgMTM6NDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogVXNlIGxvY2sgZmxhZ3MgZm9yIG1hcCBmbGFncwoJICBXZSBpbXBsZW1lbnQgdGhlIGxvY2tpbmcgaW4gZ3N0X21lbW9yeV9tYXAgd2l0aCB0aGUgbG9jayBmbGFncywgbWFrZSBtYXRjaGluZwoJICBmbGFncyB0aGUgc2FtZSBudW1iZXIgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBtYXAgZmxhZ3MgZGlyZWN0bHkgYXMgbG9jayBmbGFncy4KCjIwMTItMDctMDMgMTI6MTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogbG9jayBtZW1vcnkgRVhDTFVTSVZFCgkgIGxvY2sgdGhlIG1lbW9yeSB0aGF0IHRoZSBidWZmZXIgcmVmZXJlbmNlcyBhcyBFWENMVVNJVkUuIFRoaXMgbWFrZXMgc3VyZSB0aGF0CgkgIHdoZW4gd2Ugc2hhcmUgdGhlIG1lbW9yeSB3aXRoIG90aGVyIGJ1ZmZlcnMgdGhhdCBpdCBiZWNvbWVzIHVud3JpdGFibGUuCgoyMDEyLTA3LTAzIDEyOjE2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNsZWFudXAgdGhlIGxvY2tpbmcgY29kZQoJICBjbGVhbnVwIGFuZCBmaXggdGhlIGxvY2tpbmcgY29kZQoKMjAxMi0wNy0wMyAwOTo0ODozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogZXhwb3NlIHRoZSBpbnRlcm5hbCBsb2NraW5nIGFwaQoJICBFeHBvc2UgdGhlIGludGVybmFsbHkgdXNlZCBtZXRob2RzIGZvciBsb2NraW5nIGFuZCB1bmxvY2tpbmcgdGhlIG9iamVjdC4gUGFzcwoJICB0aGUgYWNjZXNzIG1vZGUgdG8gdGhlIHVubG9jayBmdW5jdGlvbiBmb3IgZXh0cmEgY2hlY2tzIGFuZCBiZWNhdXNlIHdlIG5lZWQgaXQKCSAgZm9yIHRoZSBFWENMVVNJVkUgbG9ja3MuCgkgIE1ha2Ugc29tZSBuZXcgZGVmaW5lcyB0byBzcGVjaWZ5IHRoZSBkZXNpcmVkIGxvY2tpbmcuCgkgIEFkZCBhIG5ldyBFWENMVVNJVkUgbG9jayBtb2RlIHdoaWNoIHdpbGwgaW5jcmVtZW50IHRoZSBzaGFyZWQgY291bnRlci4gT2JqZWN0cwoJICB3aXRoIGEgc2hhcmVkIGNvdW50ZXIgPiAxIHdpbGwgbm90IGJlIGxvY2thYmxlIGluIFdSSVRFIG1vZGUuCgoyMDEyLTA2LTI5IDE2OjM3OjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogZXh0ZW5kIGJ1ZmZlciBjb3B5IHRlc3QKCSAgLi4uIHRvIGNoZWNrIGZvciBpbmRlcGVuZGVuY2Ugb2YgY29waWVkIGJ1ZmZlci4KCjIwMTItMDctMDQgMTg6MzI6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgb3V0ZGF0ZWQgYml0cyBvZiB3YXJuaW5nIG1lc3NhZ2UKCSAgSSB0aGluayB3ZSBjYW4gYmUgcmVhc29uYWJsZSBzdXJlIHBlb3BsZSBhcmUgdXNpbmcgYW4gdXAtdG8tZGF0ZQoJICBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IG5vdy4KCjIwMTItMDctMDQgMTg6MTY6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgQWRkIHZlcnNpb25lZCB2YXJpYW50cyBvZiBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBJbXByb3ZlIHBhcmFsbGVsIGluc3RhbGxhYmlsaXR5IGluIHNldHVwcyBsaWtlIGpoYnVpbGQgYnkKCSAgcHJvdmlkaW5nIHZlcnNpb25lZCB2YXJpYW50cyBvZiBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlczoKCSAgR1NUX1JFR0lTVFJZXzFfMAoJICBHU1RfUExVR0lOX1BBVEhfMV8wCgkgIEdTVF9QTFVHSU5fU1lTVEVNX1BBVEhfMV8wCgkgIEdTVF9QTFVHSU5fU0NBTk5FUl8xXzAKCSAgd2lsbCBub3cgYmUgY2hlY2tlZCBiZWZvcmUgY2hlY2tpbmcgdGhlIHVudmVyc2lvbmVkIG9uZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk0MDcKCjIwMTItMDctMDQgMTc6NTU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBkb2NzOiBmaXggdHlwbyBpbiBHc3RTYW1wbGUgZG9jcwoKMjAxMi0wNy0wNCAxNzozNjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiB0aGVyZSBhcmUgdmFsaWQgVVJJIHByb3RvY29scyB3aXRoIG9ubHkgdHdvIGxldHRlcnMsIGxpa2UgZmQ6Ly8KCSAgV2UgYWRkZWQgYSBtaW5pbXVtIGxlbmd0aCBvZiB0aHJlZSBsZXR0ZXJzIG9yaWdpbmFsbHkgc28gd2Ugd291bGQKCSAgZmFpbCB0byByZWNvZ25pc2UgRE9TL1dpbmRvd3Mtc3R5bGUgZmlsZW5hbWVzIGFzIHZhbGlkIFVSSXMgKGFzIHdlCgkgIHNob3VsZCkuIFR3byBzaG91bGQgYmUganVzdCBmaW5lIGFzIHdlbGwuCgoyMDEwLTEwLTEzIDEzOjM2OjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogQVBJIGFkZGl0aW9ucwoKMjAwOS0wOS0yOSAwOTo1NDoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRhdGFxdWV1ZTogVXNlIEdzdFF1ZXVlQXJyYXkKCjIwMDktMDktMjggMTc6MzE6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IFVzZSBuZXcgR3N0UXVldWVBcnJheSBmb3IgbG9jYWwgc3RvcmFnZS4KCSAgTWFrZXMgX2NoYWluKCkgYW5kIF9sb29wKCkgMjUlIGZhc3RlcgoKMjAwOS0wOS0yOSAwOTowNjoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgY2hlY2s6IE5ldyB1bml0IHRlc3QgZm9yIEdzdFF1ZXVlQXJyYXkKCjIwMDktMDktMjggMTc6MzA6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgbGliczogTmV3IGdyb3dpbmctb25seSBxdWV1ZS4KCSAgVGhpcyBpcyBhIHF1ZXVlIHdoaWNoIGhhcyB0aGUgc2FtZSBBUEkgYXMgR1F1ZXVlLCBleGNlcHQgdGhhdDoKCSAgKiBJdCB1c2VzIGFuIGFycmF5LCBpbnN0ZWFkIG9mIGEgZG91YmxlZC1saW5rZWQtbGlzdAoJICAqIFRoZSBhcnJheSBjYW4gb25seSBncm93LgoJICBUaGlzIGNvZGUgaXMgbm90LXRocmVhZHNhZmUuIEl0IGlzIHVwIHRvIHRoZSBvd25lciB0byBtYWtlIHN1cmUgdGhlCgkgIHByb3BlciBsb2NraW5nIGlzIHRha2VuIGJlZm9yZSBjYWxsaW5nIHRoaXMgQVBJLgoKMjAxMi0wNy0wNCAxNjoxNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogbWFrZSBzdXJlIHdlIGRvbid0IGhhdmUgdW5tYXBwZWQgc2VlayBmbGFncyBsaXR0ZXJpbmcgb3V0IHNlZ21lbnQgZmxhZ3MKCSAgTWFrZSBHc3RTZWVrRmxhZyB0byBHc3RTZWdtZW50RmxhZyBjb252ZXJzaW9uIGV4cGxpY2l0LCBhbmQKCSAgc2V0IG9ubHkgdGhvc2Ugc2VlayBmbGFncyBpbiB0aGUgc2VnbWVudCBmbGFncyB3aGljaCBhcmUKCSAgbWFwcGVkLiBUaGlzIG1ha2VzIHN1cmUgd2UgZG9uJ3QgaGF2ZSBleHRyYW5lb3VzIGZsYWdzCgkgIGxpdHRlcmluZyBvdXIgc2VnbWVudCBmbGFnIGZpZWxkLCB3aGljaCBhbHNvIGZpeGVzIHRoZQoJICBkZWJ1ZyBwcmludGluZy9zZXJpYWxpc2F0aW9uIG9mIHNlZ21lbnQgZXZlbnRzIGluIHRoZQoJICBkZWJ1ZyBsb2cuCgoyMDEyLTA3LTA0IDEwOjI0OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWlub3IgcG9ydGluZy10by0wLjExLnR4dCB1cGRhdGUKCjIwMTItMDctMDQgMTA6MjM6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IG1ha2UgY2hlY2tzIGZvciBmcm9tL3RvX2dfZGF0ZV90aW1lKCkgYWN0dWFsbHkgd29yayBwcm9wZXJseQoKMjAxMi0wNi0yOSAyMTo1Mjo0NyAtMDQwMCAgSm9zaHVhIE0uIERvZSA8am9zaEBqb3NoZG9lLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkYXRldGltZTogYWRkIGNvbnZlcnNpb24gdG8vZnJvbSBHRGF0ZVRpbWUKCSAgRXhwb3NlcyBleGlzdGluZyBjb25zdHJ1Y3Rvci4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3RvX2dfZGF0ZV90aW1lKCkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2dfZGF0ZV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTA4MAoKMjAxMi0wNy0wNCAwODo1MjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgdW51c2VkIGdzdF9wcmludF8qIGZ1bmN0aW9ucwoKMjAxMi0wNy0wMyAyMjoyNDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogbm8gbmVlZCB0byBkZWFjdGl2YXRlIHBhZHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBQQURfTU9ERV9OT05FCgoyMDEyLTA3LTAzIDIyOjIwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IG1ha2UgcGFkIGFjdGl2YXRpb24gZGVidWcgbG9ncyBhIGJpdCBtb3JlIHJlYWRhYmxlCgoyMDEyLTA3LTAzIDE5OjE1OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGVsZW1lbnQgcmUtdXNlIHVzaW5nIGZha2VzcmMKCjIwMTItMDctMDMgMTk6MDQ6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFyIEVPUyBmbGFnIHdoZW4gZGVhY3RpdmF0aW5nIHBhZHMgZml4aW5nIGVsZW1lbnQgcmUtdXNlCgoyMDEyLTA3LTAzIDE3OjI1OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBvc3QgVE9DIG1lc3NhZ2VzIG9uIHRoZSBidXMgaW4gdGhlIHNpbmtzLCBzaW1pbGFyIHRvIHRhZ3MKCjIwMTItMDctMDMgMTI6Mzg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHRoZSBfZ2V0X21hcHBlZCBmdW5jdGlvbgoJICBGaXggdGhlIGludGVybmFsIF9nZXRfbWFwcGVkIGZ1bmN0aW9uLiBnc3RfbWVtb3J5X21ha2VfbWFwcGVkKCkgdGFrZXMgb3duZXJzaGlwCgkgIG9mIHRoZSBtZW1vcnkgc28gd2UgbmVlZCB0byBrZWVwIGFuIGFkZGl0aW9uYWwgcmVmIHVudGlsIHdlIGFyZSBkb25lLgoKMjAxMi0wNy0wMyAxMjoyMzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZyBsb2cKCjIwMTItMDctMDMgMTA6MDI6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBUaGUgR0FQIGV2ZW50IGlzIChwYXJ0aWFsbHkpIGltcGxlbWVudGVkIG5vdywgU1RSRUFNX0NPTkZJRyBpc24ndAoKMjAxMi0wNi0yOCAxNjo0MjowOCArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogaW5jbHVkZSBnc3QvbWF0aC1jb21wYXQuaCBmb3IgaXNuYW4oKQoJICBEdWUgdG8gdGhlIHVzYWdlIG9mIGlzbmFuKCksIHdoZXJlIGFuIGltcGxlbWVudGF0aW9uIGlzIGFkZGVkIGludG8KCSAgZ3N0L21hdGgtY29tcGF0LmguIEZpeGVzIGJ1aWxkIG9uIFZpc3VhbCBDKysuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDYtMjkgMTY6NTI6MzEgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0Lmg6IGFkZCBpbXBsZW1lbnRhdGlvbiBmb3IgaXNuYW4oKSBmb3IgVmlzdWFsIEMrKwoJICBWaXN1YWwgQysrIGRvZXMgbm90IGhhdmUgaXNuYW4oKSwgc28gYWRkIGZhbGxiYWNrIHRvCgkgIG1hdGgtY29tcGF0LmggKGNvdWxkIHVzZSBfaXNuYW4oKSBpbiB0aGlzIGNhc2UsIGJ1dAoJICB0aGlzIG1ha2VzIGl0IHdvcmsgZm9yIGFsbCBjYXNlcyB3aGVyZSBpc25hbiBpcyBtaXNzaW5nKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExMgoKMjAxMi0wNi0yOSAxMDo1NjozNCArMDgwMCAgQ2h1bi13ZWkgRmFuIDxmYW5jaHVud2VpQHNyYy5nbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbmsuYzogZml4IEdfT1NfV0lOMzIgI2lmZGVmCgkgIFBvc3Rwb25lIHRoZSAjaWZkZWYgdG8gYSBwb2ludCBhZnRlciBnbGliLmggKHZpYSBnc3RmZHNpbmsuaCkgaXMgaW5jbHVkZWQKCSAgc28gdGhhdCB0aGUgbmVlZGVkIGRlZmluZXMgYW5kIGhlYWRlciBpbmNsdWRlcyBjYW4gYmUgZG9uZSBjb3JyZWN0bHksCgkgIGVzcGVjaWFsbHkgb24gVmlzdWFsIEMrKyBidWlsZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDUtMjcgMjM6MDk6NDMgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBmaXggYnVpbGQgb2YgZGF0ZXRpbWUgdW5pdCB0ZXN0IGluIFdpbmRvd3MKCSAgQWxzbyBpbmNsdWRlIGNvbmZpZy5oIGZvciBhbGwgdGhlICNpZmRlZiBIQVZFX1hZWi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjkzNQoKMjAxMi0wNi0yOSAxMToxOTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBkb24ndCB1c2UgZ19zdHJkdXBfdmFsdWVfY29udGVudHMoKQoJICBnX3N0cmR1cF92YWx1ZV9jb250ZW50cygpIGRvZXMgc29tZSBleHRyYSBlc2NhcGluZywgcHJldmVudGluZyB1cyBmcm9tIHVzaW5nIHRoZQoJICBvdXRwdXQgb24gdGhlIGNvbnNvbGUgdG8gYmUgdXNlZCBkaXJlY3RseS4KCjIwMTItMDYtMjggMTQ6NDE6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGV4cGFuZCBhIGJpdCBtb3JlIG9uIEdTVF9ERUJVRyBkb2NzCgoyMDEyLTA2LTI4IDExOjAyOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBfYXBwZW5kX3JlZ2lvbiBmdW5jdGlvbgoJICBNYWtlIGEgZ3N0X2J1ZmZlcl9hcHBlbmRfcmVnaW9uKCkgZnVuY3Rpb24gdGhhdCBhbGxvd3MgeW91IHRvIGFwcGVuZCBhIG1lbW9yeQoJICByZWdpb24gZnJvbSBvbmUgYnVmZmVyIHRvIGFub3RoZXIuIFRoaXMgaXMgYSBtb3JlIGdlbmVyYWwgdmVyc2lvbiBvZgoJICBnc3RfYnVmZmVyX2FwcGVuZCgpLgoKMjAxMi0wNi0yOCAwOTozNjozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgRFRTIGFuZCBQVFMKCSAgVXNlIERUUyBhbmQgUFRTIG9mIHRoZSBzdWJjbGFzcy4KCSAgQ2FsY3VsYXRlIFBUUyBmcm9tIERUUyBvbiBrZXlmcmFtZXMuCgoyMDEyLTA2LTI3IDIzOjAxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiB0ZXN0IGRhdGV0aW1lIGRlc2VyaWFsaXNhdGlvbiBhIGJpdCBtb3JlCgoyMDEyLTA2LTI3IDIzOjAwOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBpZ25vcmUgMCBkYXlzIG9yIG1vbnRocyBpbiBkYXRlcwoJICBIYW5kbGUgMCBtb250aHMgb3IgZGF5cyBjb3JyZWN0bHkgaW4gZGF0ZSBzdHJpbmdzLCBzbyB0aGF0CgkgIDIwMTItMDYtMDAgaXMgcGFyc2VkIHRoZSBzYW1lIGFzIDIwMTItMDYsIGZvciBleGFtcGxlLgoKMjAxMi0wMS0wMSAxNjozODowOCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBidWlsZDogTWFrZSBzdXJlIEFDX0lOQ0xVREVTX0RFRkFVTFQgaXMgdXNlZAoJICBXaXRob3V0IHVzaW5nIEFDX0lOQ0xVREVTX0RFRkFVTFQgZXhwbGljaXRseSwKCSAgY2VydGFpbiBwbGF0Zm9ybXMgd2lsbCBjb21wbGFpbiB0aGF0IHRoZSBoZWFkZXIKCSAgd2FzIGZvdW5kLCBidXQgbm90IHVzYWJsZSBieSB0aGUgY29tcGlsZXIuCgkgIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugb24gU29sYXJpcyB3aGVyZSBjZXJ0YWluCgkgIGhlYWRlcnMgYXJlIG5lZWRlZCB0byBwdWxsIGluIHByb3BlciBkZWZpbmVzLgoJICBBbHNvIHVwZ3JhZGUgdG8gbmV3ZXIgYXV0b2NvbmYgc3ludGF4IGFuZCB1c2UgcHJvcGVyIHF1b3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTMKCjIwMTItMDYtMjcgMjA6NTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBmaXggYnVzIGxlYWsgaW4gR3N0QmluIHRlc3Rfc3RhdGVfY2hhbmdlX3NraXAgdGVzdAoJICBTdGlsbCBub3QgdmFsZ3JpbmQgY2xlYW4gdGhvdWdoLgoKMjAxMi0wNi0yNyAxOTo1OToyOSArMDEwMCAgQ2hyaXN0b3BoZSBGZXJnZWF1IDx0ZXVmQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogZXNjYXBlIFwgd2l0aCBhIFwgYXMgd2VsbCwgc28gdGhhdCB3ZSBkb24ndCBsb3NlIHRoZSBcIHdoZW4gdW5lc2NhcGluZwoJICBJZiB3ZSBoYXZlIGEgZmlsZSBjYWxsZWQgRm9vXEJhci5vZ2csIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzCgkgIHRoYXQgZmlsZW5hbWUgcHJvcGVybHkgdG8gZmlsZXNyYyBpbiBnc3RfcGFyc2VfbGF1bmNoKCksIHNpbmNlCgkgIGdzdF9wYXJzZV91bmVzY2FwZSgpIHdpbGwganVzdCB1bmVzY2FwZSBceCB0byB4LgoJICBOb3QgY2hlcnJ5LXBpY2tpbmcgdGhpcyBpbnRvIDAuMTAgc2luY2UgdGhlcmUgYXJlIGFwcGFyZW50bHkKCSAgYXBwcyB0aGF0IHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSBhbmQgd2hpY2ggd291bGQgYnJlYWsgaWYKCSAgd2UgZml4ZWQgaXQgdGhlcmUgdG9vLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMzE5CgoyMDEyLTA2LTI3IDE2OjM3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogYW5ub3RhdGUgc29tZSBvZiB0aGUgdHlwZSBkZWZpbmVzIGZvciBnLWkKCSAgVHlwZSBpcyBub3QgcGlja2VkIHVwIHlldCB0aG91Z2gsIGFuZCB3ZSBzdGlsbCBuZWVkCgkgIHRvIGFubm90YXRlIHZhbHVlcyBmb3IgdGhlICdzaW1wbGUnIGRlZmluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc5MjUKCjIwMTItMDYtMjcgMTQ6NDg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhbm5vdGF0ZSBHU1RfQ0xPQ0tfVElNRV9OT05FIHdpdGggaXRzIHZhbHVlIGZvciBnLWkKCSAgVGhlIHZhbHVlIG5vdyBnZXRzIHBpY2tlZCB1cCwgYnV0IGl0IHN0aWxsIHRoaW5rcyB0aGUgdHlwZQoJICBpcyBhICdnaW50Jy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODkyOAoKMjAxMi0wNi0yNyAxMzoxOToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGRhdGV0aW1lIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMzEKCjIwMTItMDYtMjcgMTM6MTY6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZGF0ZXRpbWU6IGZpeCBjb21wYXJlIGZ1bmN0aW9uCgkgIFRha2UgaW50byBhY2NvdW50IHRoYXQgbm90IGFsbCBmaWVsZHMgbWlnaHQgYmUgdmFsaWQgKHRob3VnaCB0aGV5CgkgIGFyZSB2YWxpZCBpbiB0aGUgR0RhdGVUaW1lIHN0cnVjdHVyZSkuIEJ1dCB3ZSBzaG91bGQganVzdCByZXR1cm4KCSAgdW5vcmRlcmVkIGlmIHRoZSBzZXQgZmllbGRzIGRvbid0IG1hdGNoLiBBbHNvLCBkb24ndCBjaGVjawoJICBtaWNyb3NlY29uZHMgd2hlbiBjb21wYXJpbmcgZGF0ZXRpbWVzLCBzaW5jZSB3ZSBkb24ndCBzZXJpYWxpc2UKCSAgdGhvc2UgYnkgZGVmYXVsdCBpZiB0aGV5J3JlIGF2YWlsYWJsZS4gVGhpcyBlbnN1cmVzIGRhdGUgdGltZXMgYXJlCgkgIHN0aWxsIHJlZ2FyZGVkIGFzIGVxdWFsIGFmdGVyIHNlcmlhbGlzaW5nK2Rlc2VyaWFsaXNpbmcuCgoyMDEyLTA2LTE4IDA4OjA2OjQ5ICswMjAwICBPbGVrc2lqIFJlbXBlbCA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IGFkZCBzZXJpYWxpc2F0aW9uIHRvIGFuZCBkZXNlcmlhbGlzYXRpb24gZnJvbSBJU08gODYwMSBzdHJpbmdzCgkgIFNvbWUgdGFnIHBhcnNlcnMgYW5kIHdyaXRlcnMgdXNlIHNhbWUgZGF0ZXRpbWUgZm9ybWF0IGJhc2VkIG9uIElTTyA4NjAxLgoJICBXZSBjYW4gcmVkdWNlIHNvbWUgY29kZSBieSBjcmVhdGluZyBzb21lIGdlbmVyYWwgZnVuY3Rpb25zIGZvciBpdC4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3RvX2lzbzg2MDFfc3RyaW5nKCkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX2lzbzg2MDFfc3RyaW5nKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAzMQoKMjAxMi0wNi0wNyAxMTozMDo0OCArMDEwMCAgTGlvbmVsIExhbmR3ZXJsaW4gPGxsYW5kd2VybGluQGdtYWlsLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IGFkZCAtLWRpc2FibGUtdG9vbHMgYW5kIC0tZGlzYWJsZS1iZW5jaG1hcmtzIG9wdGlvbnMKCSAgQWRkIG9wdGlvbiB0byBhdm9pZCBidWlsZCBiaW5hcmllcy4gV2hlbiBidWlsZGluZyBmb3IgcGxhdGZvcm1zIGxpa2UKCSAgYW5kcm9pZCwgeW91IG1pZ2h0IHdhbnQgdG8gbm90IGxpbmsgYW55ICJmaW5hbCIgYmluYXJ5LCBtb3N0bHkgYmVjYXVzZQoJICBpdCByZXF1aXJlcyBzcGVjaWFsIGxpbmsgZmxhZ3Mgb3Igb3RoZXIgcGFydHMgb2YgY29kZSB0aGF0IGFyZW4ndAoJICBpbiB0aGUgQyBsaWJyYXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NjIxCgoyMDEyLTA2LTI2IDIwOjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogcHV0IHRvYyBkaXJlY3RseSBpbnRvIGV2ZW50L21lc3NhZ2UvcXVlcnkgc3RydWN0dXJlCgkgIE5vdyB0aGF0IFRPQ3MgYXJlIHJlZmNvdW50ZWQgYW5kIGhhdmUgYSBHVHlwZSwgd2UgY2FuIGp1c3QKCSAgc3R1ZmYgYSByZWYgb2YgdGhlIFRPQyBkaXJlY3RseSBpbnRvIHRoZSB2YXJpb3VzIHRvYwoJICBldmVudC9tZXNzYWdlL3F1ZXJ5IHN0cnVjdHVyZXMgYW5kIGdldCByaWQgb2YgbG90cyBvZgoJICBjcmFja3Rhc3RpYyBHc3RTdHJ1Y3R1cmUgPC0+IEdzdFRvYyBzZXJpYWxpc2F0aW9uIGFuZAoJICBkZXNlcmlhbGlzYXRpb24gY29kZS4gV2UgbG9zZSBzb21lIFRPQyBzYW5pdHkgY2hlY2tpbmcKCSAgaW4gdGhlIHByb2Nlc3MsIGJ1dCB0aGF0IHNob3VsZCByZWFsbHkgYmUgZG9uZSB3aGVuCgkgIGl0J3MgYmVpbmcgY3JlYXRlZCBhbnl3YXkuCgoyMDEyLTA2LTI2IDE4OjIyOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IHNraXAgZ3N0X2J1c19jcmVhdGVfd2F0Y2ggYXMgR1NvdXJjZSBpcyBub3QgaW50cm9zcGVjdGFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTMwZTM2YTg5YmM1YzJhMGYyZTRhYjdhNzNiZmE2MzBjMWUwMzM2YS4KCSAgVGhpcyBzaG91bGRuJ3QgaGF2ZSBiZWVuIHB1c2hlZCwgc2luY2UgR1NvdXJjZSBpcyBub3cgaGFuZGxlZAoJICAoaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzcyNSkKCjIwMTEtMDgtMjkgMTM6NTc6MDMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHNraXAgZ3N0X2J1c19jcmVhdGVfd2F0Y2ggYXMgR1NvdXJjZSBpcyBub3QgaW50cm9zcGVjdGFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMi0wNi0yNiAxNzozNToyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzb21lIG1vcmUgYWRkaXRpb25zIHRvIHRoZSBwb3J0aW5nLXRvLTAuMTEgZ3VpZGUKCjIwMTItMDYtMjYgMTc6Mjc6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IG1pbm9yIGNsZWFuLXVwCgkgIEdldCByaWQgb2Ygc3VwZXJmbHVvdXMgYXJndW1lbnQuCgoyMDEyLTA2LTI2IDE3OjA0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiByZW1vdmUgdXNlbGVzcyBnX3NldF9wcmduYW1lKCkgd3JhcHBlcgoKMjAxMi0wNi0yNiAxNjo1NTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBwb2ludCBwZW9wbGUgdG8gcmlnaHQgYmluYXJ5IHdoZW4gYSBjcmFzaCBoYXBwZW5zCgkgICJnc3QtbGF1bmNoIiBpcyB0aGUgMC4xMCB3cmFwcGVyIHNjcmlwdCwgdXNpbmcgdGhhdCB3aXRoCgkgIGdkYiBpcyBub3QgZ29pbmcgdG8geWllbGQgZ3JlYXQgcmVzdWx0cy4KCjIwMTItMDYtMjYgMTY6NDI6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byBub3ctcmVsZWFzZWQgc3RhYmxlIHZlcnNpb24KCjIwMTItMDYtMjYgMTY6NDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSBzb21lIGRlYWQgY29kZSBmb3Igb2xkIEdMaWIgdmVyc2lvbnMKCjIwMTItMDYtMjUgMjM6MTc6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogYWRkIG1vcmUgZW50cnkgdHlwZXMKCSAgTWFrZSBlbnRyeSB0eXBlcyBsZXNzIGFic3RyYWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA2LTE3IDEyOjQ4OjA0ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBhIGNvdXBsZSBvZiBub3RlcyBmb3IgdGhlIDAuMTEgcG9ydGluZyBndWlkZQoKMjAxMi0wNi0yNiAwOTo1MToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBhZGQgc3RlYWxfcWRhdGEKCSAgUmV3b3JrIHRoZSBxZGF0YSBjb2RlIGEgbGl0dGxlCgoyMDEyLTA2LTI1IDE5OjUyOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvY3NldHRlcjogY2xlYW4gdXAgYW5kIHVwZGF0ZSBBUEkgZm9yIHJlZmNvdW50ZWQgVE9DcwoJICBMZXQncyBrZWVwIGl0IHNpbXBsZSBmb3Igbm93OgoJICBnc3RfdG9jX3NldHRlcl9yZXNldF90b2MoKSAtPiBnc3RfdG9jX3NldHRlcl9yZXNldCgpCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfY29weSgpIC0+IHJlbW92ZWQKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvYygpIC0+IHJldHVybnMgYSByZWYgbm93CgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfZW50cnlfY29weSgpIC0+IHJlbW92ZWQsCgkgIHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCSAgZ3N0X3RvY19zZXR0ZXJfZ2V0X3RvY19lbnRyeSgpIC0+IHJlbW92ZWQsCgkgIHVzZSBUT0MgZnVuY3Rpb25zIGluc3RlYWQKCSAgZ3N0X3RvY19zZXR0ZXJfYWRkX3RvY19lbnRyeSgpIC0+IHJlbW92ZWQsCgkgIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggKHJlZmNvdW50LWRlcGVuZGVudCkKCSAgd3JpdGFiaWxpdHkgb2YgVE9DOyB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgoyMDEyLTA2LTI1IDA5OjMyOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGltcHJvdmUgZG9jcwoJICBNZW50aW9uIHRoYXQgY3VzdG9tIGFsbG9jYXRvciBmdW5jdGlvbnMgY2FuIHBhc3Mgd2hhdGV2ZXIgdGhleSB3YW50IHRvIHRoZQoJICB1c2VyX2RhdGEuCgoyMDEyLTA0LTA2IDE4OjAwOjMzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVzZSBHX0RFRklORV9JTlRFUkZBQ0VfKiBtYWNybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjQxCgoyMDEyLTA0LTA2IDE3OjU5OjM1ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIHRvY3NldHRlcjogdXNlIEdfREVGSU5FX0lOVEVSRkFDRV8qIG1hY3JvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM2NDEKCjIwMTItMDYtMjUgMDA6MTA6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkZXNpZ24gZG9jcyBmb3IgVE9DIEFQSSBjaGFuZ2VzIHRvbwoKMjAxMi0wNi0yNCAyMDoxMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9jc2V0dGVyLCBnc3QtbGF1bmNoLCB0ZXN0czogdXBkYXRlIGZvciBHc3RUb2MgQVBJIGNoYW5nZXMKCjIwMTItMDYtMjQgMjA6MDg6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogbWFrZSBHc3RUb2MgYW5kIEdzdFRvY0VudHJ5IG1pbmkgb2JqZWN0cwoJICBCZWNhdXNlIHdlIGNhbiwgYW5kIGluIG9yZGVyIHRvIG1ha2UgdGhlbSByZWZjb3VudGVkLgoKMjAxMi0wNi0yMyAyMTo0Mjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCBjb25mdXNpbmcgbG9nIG1lc3NhZ2UKCjIwMTItMDYtMjMgMjE6MzU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBpbnQ2NCAtIGludDY0IHJhbmdlIGludGVyc2VjdGlvbiBvbiBiaWcgZW5kaWFuIHN5c3RlbXMKCSAgV29ya3MgYmV0dGVyIGlmIHdlIHVzZSB0aGUgdl9pbnQ2NCBmaWVsZCBvZiB0aGUgR1ZhbHVlIGluc3RlYWQgb2Ygdl9pbnQuCgoyMDEyLTA2LTIzIDE5OjU2OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaW5pb2JqZWN0czogcGFzcyBjb3B5LCBkaXNwb3NlIGFuZCBmcmVlIGZ1bmN0aW9uIHRvIGdzdF9taW5pX29iamVjdF9pbml0KCkKCSAgU28gbWluaSBvYmplY3RzIGRvbid0IGhhdmUgdG8gcG9rZSBpbnRvIHRoZSBHc3RNaW5pT2JqZWN0IHBhcnQKCSAgb2YgdGhlIHN0cnVjdHVyZS4gU2F2ZXMgbGluZXMgb2YgY29kZSwgYW5kIHNlZW1zIHNsaWdodGx5IGNsZWFuZXIuCgkgIFdlIGRvbid0IGhhdmUgcHJvcGVyIE9PIGhpZXJhcmNoaWVzIG9yIG1ldGhvZHMgaGVyZSBhZnRlciBhbGwuCgoyMDEyLTA2LTIzIDE3OjA1OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogcmVtb3ZlIHNvbWUgb3V0ZGF0ZWQgRklYTUVzIGFuZCBjb21tZW50cwoKMjAxMi0wNi0yMyAxNzowNDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBzb21lIG1vcmUgZy1pIGFubm90YXRpb25zCgoyMDEyLTA2LTIzIDE2OjU5OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgc2FtcGxlOiBhZGQgY29tcGFyZSBmdW5jdGlvbiBmb3IgR3N0U2FtcGxlCgkgIFNob3VsZCBtYWtlIGdzdF90YWdfbGlzdF9pc19lcXVhbCgpIHdvcmsgcHJvcGVybHkgd2l0aCBpbWFnZSB0YWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyNjM3CgoyMDEyLTA2LTIzIDE2OjMwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggYnVmZmVyIGNvbXBhcmUgZnVuY3Rpb24KCjIwMTItMDYtMjMgMTQ6NDE6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTQ2NwoKMjAxMi0wNi0yMyAxNDo0MToxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiB1cGRhdGUgZm9yIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKSBjaGFuZ2UKCjIwMTItMDYtMjMgMTQ6NDA6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpOiBhZGQgZXJyb3IgYXJndW1lbnQgdG8gZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpCgkgIFNvIGNhbGxlcnMgY2FuIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGVyZSBub3QgYmVpbmcgYQoJICBoYW5kbGVyIGZvciB0aGUgcHJvdG9jb2wsIGFuZCB0aGVtIG5vdCBhY2NlcHRpbmcgdGhlIFVSSQoJICBmb3Igc29tZSByZWFzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU0NjcKCjIwMTItMDYtMjMgMTI6Mzc6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFubm90YXRlIEdzdE1hcEluZm8gZGF0YSBhcyBhcnJheSBmb3IgZy1pCgoyMDEyLTA2LTIwIDEyOjUzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSBwb2ludGxlc3MgZ2V0X3N0YXRlKCkgaW4gZ3N0LWxhdW5jaAoJICBTdGF0ZSBjaGFuZ2VzIHRvIE5VTEwgc3RhdGUgYXJlIGFsd2F5cyBzeW5jLgoKMjAxMi0wNi0yMSAwMToyODo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGF2b2lkIG5vdGlmeS10YWdzIGhvbGRpbmcgbG9jawoJICB1bmxvY2sgYmVmb3JlIGlzc3VpbmcgdGhpcyBub3RpZmljYXRpb24gdG8gcHJldmVudAoJICBkZWFkbG9ja3Mgd2hlbiBvdGhlciBlbGVtZW50cyByZWFjdHMgdG8gbmV3IHRhZ3MuCgkgIEZpeGVzICM2NzgyMjAKCjIwMTItMDYtMTggMTY6NTQ6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcC1iYWQgZ3N0LWxpYnMgdG8gdGhlIHBhdGgKCSAgTWFrZXMgdmlkZW9wYXJzZXJzIGFuZCBjYW1lcmFiaW5zIGZyb20gYmFkIHVzYWJsZSBmcm9tIGFuIHVuaW5zdGFsbGVkCgkgIGVudmlyb25tZW50IGF0IG9zeAoKMjAxMi0wNi0yMCAxMzoyODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBkZXN0cm95IG5vdGlmeSB0byBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpCgoyMDEyLTA2LTIwIDEzOjI3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9uCgoyMDEyLTA2LTIwIDEyOjI5OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYnVzOiBhZGQgR0Rlc3Ryb3lOb3RpZnkgdG8gc2V0X3N5bmNfaGFuZGxlcigpCgoyMDEyLTA2LTIwIDEyOjA2OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wNi0yMCAxMTo1OTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogYWRkIHNlcGFyYXRlIG1ldGhvZHMgdG8gYWRkIGVudGVyL2xlYXZlIGNhbGxiYWNrCgkgIFJlbW92ZSB0aGUgc3RydWN0dXJlIG9mIGNhbGxiYWNrcyBhbmQgcmVwbGFjZSB3aXRoIHNlcGFyYXRlIG1ldGhvZHMgdG8gcmVnaXN0ZXIKCSAgZWFjaCBjYWxsYmFjay4gVGhpcyBpcyBtdWNoIG1vcmUgYmluZGluZyBmcmllbmRseS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Nzg5OAoKMjAxMi0wNi0yMCAxMDozMTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhZGQgR0Rlc3Ryb3lOb3RpZnkgdG8gX25ldwoJICBBZGQgYSBHRGVzdHJveU5vdGlmeSB0byB0aGUgdXNlcl9kYXRhIHdlIHBhc3MgdG8gZ3N0X3Rhc2tfbmV3KCkKCSAgQ2hhbmdlIGdzdF9wYWRfc3RhcnRfdGFzaygpIHRvIGFsc28gdGFrZSB0aGUgbm90aWZ5CgoyMDEyLTA2LTIwIDA5OjU4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogcmVtb3ZlIF9mdWxsIHZlcnNpb24KCSAgUmVuYW1lIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSB0byBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpCgkgIGFuZCByZW1vdmUgdGhlIG9sZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYygpIHZlcnNpb24uCgoyMDEyLTA2LTIwIDA5OjIyOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgbmV0dGltZXBhY2tldDogbWFrZSBib3hlZAoKMjAxMi0wNi0xOSAxOTo1NTozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXQ6IGZpeCBzb21lIGFyZ3VtZW50IG5hbWVzIGluIGRvY3VtZW50YXRpb24KCjIwMTItMDYtMTkgMTk6NTU6MDIgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sbGVyOiBhc3NvcnRlZCBtaW5vciBpbnRyb3NwZWN0aW9uIGZpeGVzCgoyMDEyLTA2LTE5IDE5OjUzOjU0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBhZGQgc29tZSBtaXNzaW5nIGRvY3VtZW50YXRpb24sIGluY2x1ZGluZyBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxODo0MTowNCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJhc2U6IGFkZCBzb21lIG1pc3NpbmcgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNzozNzo1OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFzayBwb29sOiBzZXQgc2NvcGUgb2YgZ3N0X3Rhc2tfcG9vbF9wdXNoIGNhbGxiYWNrIHRvIGFzeW5jCgoyMDEyLTA2LTE5IDE3OjMzOjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE2OjA5OjEwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBpbnRyb3NwZWN0aW9uOiByZW5hbWUgc29tZSAiZGF0YSIgYXJndW1lbnRzIHRvICJ1c2VyX2RhdGEiCgkgIEdPYmplY3QgSW50cm9zcGVjdGlvbiB3aWxsIGF1dG9tYXRpY2FsbHkgdHJlYXQgInVzZXJfZGF0YSIgYXJndW1lbnRzCgkgIGFzIGNsb3N1cmUgZGF0YS4KCjIwMTItMDYtMTkgMTY6MDg6NDYgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGFkZCBzb21lIG1pc3NpbmcgZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEyLTA2LTE5IDE2OjA2OjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlciBwb29sOiBwdXQgR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMgdHlwZWRlZiBiZWZvcmUgc3RydWN0CgkgIFdvcmtzIGFyb3VuZCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxNTI1CgoyMDEyLTA2LTE5IDE2OjE0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcHJlcm9sbCBhbmQgc3luYyBvbiBnYXAgZXZlbnRzCgoyMDEyLTA2LTE5IDE2OjA4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVvcmdhbml6ZSB0aGUgY29kZSBhIGxpdHRsZQoJICBNb3ZlIHRoZSBjb2RlIHRvIGdldCB0aGUgc3luYyB0aW1lcyB0b2dldGhlci4KCjIwMTItMDYtMTkgMTQ6MzA6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEZpeCBkb2NzIHR5cG8KCjIwMTItMDYtMTkgMTQ6MDU6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFzc2VydCBhYm91dCB0aW1lc3RhbXAgb3ZlcmZsb3dzCgkgIEFzc2VydCB3aGVuIGNvbnZlcnRpbmcgdG8gdGltZXZhbCBhbmQgdGltZXNwZWMgYWJvdXQgb3ZlcmZsb3dzLiBUaGlzIGNhbiBoYXBwZW4KCSAgb24gcGxhdGZvcm1zIHdpdGggMzJiaXRzIGxvbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgxODEKCjIwMTItMDYtMTkgMTA6MTM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogcmVtb3ZlIGdzdF9wYWRfc2V0X2NhcHMKCjIwMTItMDYtMTkgMTA6MzI6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgcHJveHkgdGhlIGFsbG9jYXRpb24gcXVlcnkgZm9yIHRoZSBhY3RpdmUgcGFkIGFuZCBzZW5kIHJlY29uZmlndXJlIGV2ZW50cyB0byB0aGUgb2xkL25ldyBwYWQgd2hlbiBzd2l0Y2hpbmcgcGFkcwoKMjAxMi0wNi0xOCAxNjoxNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW92ZSBnc3RfcGFkX3NldF9jYXBzKCkgdG8gY29tcGF0CgkgIFdlIHdhbnQgY29kZSB0byBleHBsaWNpdGx5IHNlbmQgYSBjYXBzIGV2ZW50IGluc3RlYWQuCgoyMDEyLTA2LTE4IDE2OjEzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggc29tZSBkb2NzCgoyMDEyLTA2LTE4IDE1OjUyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc21hbGwgZG9jIGZpeAoKMjAxMi0wNi0xOCAxNToyODoyMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIENhc3QgdG8gdGhlIHJpZ2h0IHZhbHVlLCBpdCBtaWdodCBpbmRlZWQgb3ZlcmZsb3cgYnV0IHdlIHdhbnQgdGhlIGNvbXBpbGVyIHRvCgkgIGlnbm9yZSB0aGF0LgoKMjAxMi0wNi0xOCAxNToyMjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGhpZGUgcWRhdGEgYXJyYXkgbGF5b3V0CgoyMDEyLTA2LTE4IDE1OjIxOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogY2xhcmlmeSBxZGF0YSB3cnQgdG8gbWV0YWRhdGEKCjIwMTItMDYtMTggMTU6MjE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgYXBpCgoyMDEyLTA2LTE1IDE2OjU2OjQ2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBpbnRyb3NwZWN0aW9uOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzIGluIGJhc2UKCjIwMTItMDYtMTUgMTg6MzU6MDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBtaXNzaW5nIGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xNSAxNjoxNDo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pYyBxdWV1ZTogcmVnaXN0ZXIgYXMgYm94ZWQgdHlwZQoKMjAxMi0wNi0xNSAxNjo0MzozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBpbnRyb3NwZWN0aW9uOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCgkgIFRoZXNlIGNoYW5nZXMgYXJlIHRvIGNsZWFuIHVwIHN5bnRheCBpc3N1ZXMgc3VjaCBhcyBtaXNzaW5nIGNvbG9ucywKCSAgbWlzc2luZyBzcGFjZXMsIGV0Yy4sIGFuZCBtaW5vciBpc3N1ZXMgc3VjaCBhcyBhcmd1bWVudCBuYW1lcyBpbgoJICBoZWFkZXJzIG5vdCBtYXRjaGluZyB0aGUgaW1wbGVtZW50YXRpb24gYW5kL29yIGRvY3VtZW50YXRpb24uCgoyMDEyLTA2LTE1IDE0OjUwOjQ4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICB0b2Mgc2V0dGVyOiBjaGFuZ2UgR3N0VG9jU2V0dGVySUZhY2UgdG8gR3N0VG9jU2V0dGVySW50ZXJmYWNlCgkgIFdpdGhvdXQgdGhpcyBHT2JqZWN0IEludHJvc3BlY3Rpb24gZG9lcyBub3QgcmVjb2duaXplIHRoZSBjb25uZWN0aW9uCgkgIHRvIEdzdFRvY1NldHRlci4KCjIwMTItMDYtMTggMTI6MTU6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiB1cGRhdGUgZG9jcyBhIGxpdHRsZQoKMjAxMi0wNi0xOCAxMTozNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiB3YWl0X2VvcygpIC0+IHdhaXQoKQoJICBSZW5hbWUgZ3N0X2Jhc2Vfc2lua193YWl0X2VvcygpIHRvIGdzdF9iYXNlX3Npbmtfd2FpdCgpIHRvIGF2b2lkIGNvbmZ1c2lvbiBhbmQKCSAgaW50cm9zcGVjdGlvbiBwcm9ibGVtcyB3aXRoIHRoZSA6OndhaXRfZW9zIHZtZXRob2QuIEFsc28gdGhpcyBtZXRob2QgY2FuIGJlIHVzZWQKCSAgdG8gd2FpdCBmb3Igb3RoZXIgdGhpbmdzIHRoYW4gRU9TLiBVcGRhdGUgdGhlIGRvY3MgYSBsaXR0bGUuCgoyMDEyLTA2LTE4IDEwOjEzOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDpjaGVjayBjYXBzIGFyZ3VtZW50CgkgIENhcHMgc2hvdWxkIGJlIE5VTEwgb3IgZml4ZWQgd2hlbiBjb25maWd1cmVkIGluIGEgYnVmZmVycG9vbAoKMjAxMi0wNi0xNSAxNzowMTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE5VTEwgaXMgbm90IGEgdmFsaWQgY2FwcyBhbnltb3JlCgoyMDEyLTA2LTE1IDE1OjQ4OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkb2NzOiByZXZpZXcgdGhlIGJ1ZmZlcmluZyBkb2NzCgoyMDEyLTA2LTE1IDE1OjM2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggcGVyY2VudCBzY2FsaW5nCgkgIFVzZSBfc2NhbGUgZnVuY3Rpb25zIHRvIHNjYWxlIHRoZSBwZXJjZW50IHZhbHVlcy4KCSAgQ29ycmVjdGx5IHNjYWxlIHRoZSBwZXJjZW50IHZhbHVlcyBpbiB0aGUgYnVmZmVyaW5nIHJhbmdlcy4KCjIwMTItMDYtMTUgMTQ6NTQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgZmx1c2ggd2hlbiBzdGFydGluZwoJICBXaGVuIHdlIGFyZSBkb2luZyB0aGUgaW5pdGlhbCBzZWVrIGluIHN0YXJ0dXAsIGF2b2lkIGRvaW5nIGEgZmx1c2gKCSAgKGFuZCB1bmxvY2spIGJlY2F1c2Ugd2Uga25vdyB0aGF0IHRoZSB0YXNrIGlzIG5vdCBzdGFydGVkIHlldC4KCjIwMTItMDYtMTUgMTI6NTg6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTA2LTE1IDEyOjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBkb2NzOiBpbXByb3ZlIEFQSSBkb2NzCgoyMDEyLTA2LTE1IDAwOjAwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgYWxsbG9jYXRvcjogbm8gbmVlZCB0byBzdG9yZSBzdHJ1Y3R1cmUgc2l6ZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo1NDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo1Mjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzo0OToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgY2FwcyBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDE6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogbm8gbmVlZCB0byBzdG9yZSBzaXplIG9mIHRoZSBtZXNzYWdlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzozODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc2FtcGxlIHN0cnVjdHVyZSBpbnNpZGUgdGhlIHN0cnVjdHVyZQoKMjAxMi0wNi0xNCAyMzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSB0YWcgbGlzdCBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTUgMTE6MjQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBleHBhbmQgZG9jcyBhIGxpdHRsZQoJICBBZGQgYmx1cmIgYWJvdXQgcWRhdGEgYW5kIHdlYWsgcmVmcy4KCjIwMTItMDYtMTUgMTA6NDQ6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIHFkYXRhCgkgIEtlZXAgdHJhY2sgb2YgcWRhdGEgZm9yIG1pbmlvYmplY3RzLiBSZXVzZSB0aGUgd2VhayByZWYgYXJyYXkgZm9yIHRoaXMgYmVjYXVzZQoJICB3ZSBjYW4uCgoyMDEyLTA2LTE1IDEwOjU2OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGVycm9yIGluIHRoZSB3ZWFrIHJlZiBoYW5kbGluZwoJICBXaGVuIDIgd2VhayByZWZzIGFyZSBhZGRlZCwgdGhlIGFycmF5IGlzIG5vdCByZXNpemVkIGJpZyBlbm91Z2guCgkgIFNpbXBsaWZ5IHRoZSB3ZWFrIHJlZiBoYW5kbGluZyBjb2RlLgoJICBGcmVlIG1lbW9yeSB3aGVuIHdlIHJlbW92ZSBhbGwgd2VhayByZWZzLgoJICBBbGxvdyBpbnN0YWxsaW5nIHRoZSBzYW1lIHdlYWsgcmVmIG11bHRpcGxlIHRpbWVzLCBsaWtlIGluIGdvYmplY3QuCgoyMDEyLTA2LTE0IDE3OjExOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaW5pb2JqZWN0OiByZW1vdmUgdGhlIHNpemUgZmllbGQKCSAgVGhlIHNpemUgZmllbGQgaXMgdXNlZCBieSBzdWJjbGFzc2VzIHRvIHN0b3JlIHRoZSB0b3RhbCBhbGxvY2F0ZWQgc2l6ZSBvZiB0aGUKCSAgbWVtb3J5IGZvciB0aGlzIG1pbmlvYmplY3QuIEJlY2F1c2UgbWluaW9iamVjdCBkb2Vzbid0IHJlYWxseSBkbyBhbnl0aGluZyB3aXRoCgkgIHRoaXMgZmllbGQgd2UgY2FuIG1vdmUgaXQgdG8gdGhlIHN1YmNsYXNzZXMuCgoyMDEyLTA2LTE0IDE2OjMwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIEdzdE1lbW9yeSBhIG1pbmlvYmplY3QKCjIwMTItMDYtMTQgMTY6Mjc6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGFsd2F5cyBwcmludCBtaW5pb2JqZWN0IHJlZmNvdW50CgoyMDEyLTA2LTE0IDE1OjQwOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBjb3B5IGZ1bmN0aW9uCgkgIE1ha2UgdGhlIGNvcHkgZnVuY3Rpb24gbWFwIHRvIHJlZiBiZWNhdXNlIHdlIGNhbid0IHNhZmVseSBjb3B5IHRoZSB1c2VyX2RhdGEuCgoyMDEyLTA2LTE0IDE1OjMzOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IG1ha2UgR3N0QWxsb2NhdG9yIGEgbWluaW9iamVjdAoKMjAxMi0wNi0xMiAxMzoyNjozNSArMDIwMCAgRGF2aWQgU3ZlbnNzb24gRm9ycyA8ZGF2aWRzZkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGdzdGZ1bm5lbDogYXZvaWQgYWNjZXNzIG9mIGZyZWVkIHBhZAoJICBTYXZlIHRoZSB2YWx1ZSBvZiB0aGUgcGFkJ3MgZ290X2VvcyBpbiBnc3RfZnVubmVsX3JlbGVhc2VfcGFkLAoJICBiZWZvcmUgY2FsbGluZyBnc3RfZWxlbWVudF9yZW1vdmVfcGFkLiBUaGlzIGlzIGJlY2F1c2UKCSAgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCBtYXkgZnJlZSB0aGUgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDE3CgoyMDEyLTA2LTE0IDE0OjA1OjE1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBwYWQgdHJhbnNmZXIgYW5ub3RhdGlvbiBmcm9tIG5vbmUgdG8gZnVsbAoJICBzaW5jZSB0aGUgcGFkIHdpbGwgYmUgdW5yZWZmZWQuCgoyMDEyLTA2LTEzIDEwOjUyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIG1lc3NhZ2U6IGFkZCB0aGUgcnVubmluZy10aW1lIHRvIHRoZSBhc3luYy1kb25lIG1lc3NhZ2UKCSAgQWRkIHRoZSBydW5uaW5nLXRpbWUgb2YgdGhlIGJ1ZmZlciB0aGF0IGNhdXNlZCB0aGUgYXN5bmMgb3BlcmF0aW9uIHRvIGNvbXBsZXRlCgkgIHRvIHRoZSBhc3luYy1kb25lIG1lc3NhZ2UuCgkgIFVwZGF0ZSBiaW4gdG8gaGFuZGxlIHRoZSBuZXcgYXN5bmMtZG9uZSBtZXNzYWdlLgoKMjAxMi0wNi0xMyAxMDo1MTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHBpcGVsaW5lOiB1c2UgcmVzZXRfdGltZSBtZXNzYWdlIHRvIHJlc2V0IHRoZSBzdGFydCB0aW1lCgkgIFVzZSB0aGUgbmV3IFJFU0VUX1RJTUUgbWVzc2FnZSB0byByZXNldCB0aGUgc3RhcnQtdGltZSBvZiB0aGUgcGlwZWxpbmUgdG8gdGhlCgkgIHJlcXVlc3RlZCB0aW1lLgoJICBNYWtlIGJhc2VzaW5rIHJlcXVlc3QgYSBuZXcgcnVubmluZy10aW1lIHdoZW4gdGhlIGZsdXNoLXN0b3AgbWVzc2FnZSB0ZWxscyBpdCB0bwoJICBpbnN0ZWFzZCBvZiB3YWl0aW5nIGZvciBwcmVyb2xsLgoKMjAxMi0wNi0xMyAxMDoxNjoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBhIG5ldyBtZXNzYWdlIHRvIHJlc2V0IHRpbWUKCSAgQWRkIGEgbmV3IG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHBpcGVsaW5lIHJ1bm5pbmdfdGltZS4gQ3VycmVudGx5IHJlc2V0aW5nIHRoZQoJICBwaXBlbGluZSBjYW4gb25seSBiZSByZXF1ZXN0ZWQgaW4gdGhlIGFzeW5jX2RvbmUgbWVzc2FnZSB3aGljaCBtZWFucyB0aGF0IHRoZQoJICBwaXBlbGluZSBuZWVkcyB0byBiZSBwcmVyb2xsZWQuIEl0IGlzIGJldHRlciB0byBtb3ZlIHRoaXMgdG8gYSBzZXBhcmF0ZSBtZXNzYWdlLgoKMjAxMi0wNi0xMiAxNzoxMTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhbHdheXMgcmVjdXJzZSBpbnRvIGJpbnMgd2hlbiBkb2luZyBzdGF0ZSBjaGFuZ2VzCgkgIE5ldmVyIHNraXAgdGhlIHN0YXRlIGNoYW5nZSBvZiBhIGJpbiBiZWNhdXNlIGl0IG5lZWRzIHRvIHVwZGF0ZSB0aGUgYmFzZSB0aW1lIG9mCgkgIGl0cyBjaGlsZHJlbiB3aGVuIG5lZWRlZC4KCjIwMTItMDYtMTMgMDA6MzA6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdXBkYXRlIGZvciBuZXcgZGF0ZXRpbWUgYXBpCgoyMDEyLTA2LTEzIDAwOjI4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbGF0ZXN0IEFQSQoKMjAxMi0wNi0xMyAwMDoyNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGRhdGV0aW1lIEFQSQoKMjAxMi0wNi0xMyAwMDoyMTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIHBhcnRpYWwgZGF0ZSB0aW1lIGZpZWxkcwoKMjAxMi0wNi0xMiAyMzo1MjowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBjbGVhbi11cHMgYW5kIG5ldyBBUEkgYWRqdXN0bWVudHMKCSAgUmVtb3ZlIGNvbnN0cnVjdG9ycyB3ZSBkb24ndCB3YW50OgoJICBnc3RfZGF0ZV90aW1lX25ld195bWRfaCgpIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwoJICBzdXBwb3J0IGhvdXItb25seSBmb3Igbm93OwoJICBnc3RfZGF0ZV90aW1lX25ld195bWRfaG0oKSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KCSAgYWRkIGNvbnN0cnVjdG9ycyB3aXRoIHRpbWUgaW5mbyB3aGVyZSB0aGUgY2FsbGVyIGRvZXNuJ3QKCSAgaGF2ZSB0byB0aGluayBhYm91dCB3aGF0IHRpbWV6b25lIHRoZSB0aW1lIGlzIGluLgoJICBMb3RzIG9mIGNvbXB1bHNpdmUgY2xlYW4tdXAuIERvY3MgZml4ZXMuIFJlcGxhY2UKCSAgaGFzX21pbnV0ZSgpIGFuZCBoYXNfaG91cigpIHdpdGggaGFzX3RpbWUoKS4KCjIwMTItMDYtMTIgMjI6MzU6NDIgKzAyMDAgIE9sZWtzaWogUmVtcGVsIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBhbGxvdyBHc3REYXRlVGltZSB3aGVyZSBub3QgYWxsIGZpZWxkcyBhcmUgc2V0CgkgIEluIG9yZGVyIHRvIGRlc2VyaWFsaXNlIGFuZCByZS1zZXJpYWxpc2UgZGF0ZXMgYW5kIGRhdGUgdGltZXMKCSAgZnJvbSB0YWdzIHByb3Blcmx5LCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gZXhwcmVzcyBwYXJ0aWFsCgkgIGRhdGVzIChlLmcuIFlZWVkgb3IgWVlZWS1NTSkgYW5kIGRhdGUgdGltZXMuCgkgIFdlIG9ubHkgc3VwcG9ydCBwYXJ0aWFsIGRhdGUgdGltZXMgd2hlcmUgYWxsIHRoZSBtb3JlCgkgIHNpZ25pZmljYW50IGZpZWxkcyBhYm92ZSB0aGUgZmlyc3QgdW5zZXQgZmllbGQgYXJlIHNldAoJICAoZS5nLiBZWVlZLTAwLUREIGlzIG5vdCBzdXBwb3J0ZWQpLgoJICBDYWxsaW5nIF9nZXRfZm9vKCkgd2hlbiBmb28gaXMgbm90IHNldCBpcyBub3QgYWxsb3dlZAoJICBhbnkgbW9yZSwgY2FsbGVycyBuZWVkIHRvIGNoZWNrIHdoaWNoIGZpZWxkcyBhcmUgc2V0CgkgIGZpcnN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NzU3CgoyMDEyLTA2LTEyIDIyOjQ1OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogZml4IHVwIG1pbm9yIGluY29uc2lzdGVuY3kgaW4gc3RydWN0dXJlIG5hbWUgb2Ygc3RhdGUtY2hhbmdlZCBtZXNzYWdlCgoyMDEyLTA2LTEyIDExOjQyOjMwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIGludHJvc3BlY3Rpb246IGFkZCBzb21lIG1pc3NpbmcgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTIgMTQ6MjQ6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIGZsdXNoIGV2ZW50cyBvbiB0aGUgZWxlbWVudCBhcyB3ZWxsCgkgIEhhbmRsZSBmbHVzaC1zdGFydCBhbmQgZmx1c2gtc3RvcCBzZW50IG9uIHRoZSBlbGVtZW50IGFzIHdlbGwgYW5kIHNlbmQgdGhlbQoJICBkb3duc3RyZWFtLiBNYWtlIHN1cmUgdG8gc2VuZCBhIHNlZ21lbnQgZXZlbnQgYWZ0ZXIgdGhlIGZsdXNoIHN0b3AuCgoyMDEyLTA2LTEyIDExOjA1OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogYWRkIGEgZmV3IG1vcmUgY29tbWVudHMKCjIwMTItMDYtMTEgMjA6MzQ6MDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBmaXggc2lnbmFsIGhhbmRsZXIgc2lnbmF0dXJlcyBpbiBjbGFzcwoJICBXaGVuIGFkZGluZyB0aGUgbmFtZSBwYXJhbWV0ZXIsIHdlIGZvcmdvdCB0byBhZGQgaXQgaGVyZSB0b28uCgoyMDEyLTA2LTExIDEwOjU5OjQ5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiB1c2UgR3N0Q2hpbGRQcm94eSBpbnN0ZWFkIG9mIEdPYmplY3Qgb24gdGhlIHB1YmxpYyBhcGkKCSAgRml4IHVzYWdlIGFuZCBhbHNvIGNsZWFudXAgZ3N0X29iamVjdCBhcGkgdXNlIG9uIGdvYmplY3RzLgoKMjAxMi0wNi0xMSAxNTo0OToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IHJlbW92ZSB1bnVzZWQgVU5QQVJFTlRJTkcgZmxhZwoKMjAxMi0wNi0xMSAxNTo0MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW9yZ2FuaXplIF9yZW1vdmVfZnVuYyB0byBhdm9pZCByYWNlcwoJICBNYWtlIHRoZSBnc3RfYmluX3JlbW92ZV9mdW5jIG1vcmUgbGlrZSB0aGUgYWRkX2Z1bmMuIENoZWNrIGlmIHRoZSBlbGVtZW50IHdlIHRyeQoJICB0byByZW1vdmUgZnJvbSB0aGUgYmluIGhhcyB0aGUgYmluIGFzIHRoZSBwYXJlbnQgYW5kIHNldCB0aGUgcGFyZW50IGZsYWcgdG8gTlVMTAoJICBpbW1lZGlhdGVseSwgdGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgY29uY3VycmVudCByZW1vdmUgb3BlcmF0aW9ucyB3aXRob3V0IHVzaW5nCgkgIHRoZSBVTlBBUkVOVElORyBlbGVtZW50IGZsYWcuIEFmdGVyIHdlIHVucGFyZW50ZWQgdGhlIGVsZW1lbnQgZnJvbSB0aGUgYmluLCB3ZQoJICB1cGRhdGUgdGhlIGJpbiBzdGF0ZSBhbmQgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIGxpc3QuIEZpbmFsbHkgd2UgdW5saW5rCgkgIGFsbCB0aGUgcGFkcy4KCSAgVGhpcyBhdm9pZHMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgZWxlbWVudCBjb3VsZCBzdGlsbCBjbGFpbSB0byBoYXZlIHRoZQoJICBiaW4gYXMgdGhlIHBhcmVudCB3aGlsZSB0aGUgYmluIGRpZG4ndCBoYXZlIGEgcG9pbnRlciB0byB0aGUgZWxlbWVudCBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3NzU5CgoyMDEyLTA2LTEwIDEyOjQ4OjAwIC0wNDAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBPbmx5IHNlbmQgY2FwcyB3aGVuIHBhZCBpcyBiZWluZyBhY3RpdmF0ZWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzgxOQoKMjAxMi0wNi0xMCAxMjo0MToxMiAtMDQwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGdzdGVsZW1lbnQ6IFN0YXJ0IG92ZXIgaWYgc3ViY2xhc3MgcmVtb3ZlZCB0aGUgbmV4dCBwYWQgdG9vCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4MTgKCjIwMTItMDYtMDkgMTg6MDU6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiByZW1vdmUgZmFsbGJhY2sgY29kZSBmb3Igb2xkIEdMaWJzCgoyMDEyLTA2LTA5IDE3OjEzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBhZGQgY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwIHNjcmlwdAoJICBMaXR0bGUgc2NyaXB0IHRoYXQgc2V0cyB1cCB0aGluZ3MgaW4gfi9nc3QgYW5kIGNsb25lcwoJICB0aGUgbWFpbiBtb2R1bGVzIGFuZCBwcmludHMgc29tZSBpbnN0cnVjdGlvbnMuCgkgIEZyb20gaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9Vbmluc3RhbGxlZFNldHVwCgoyMDEyLTA2LTA4IDE1OjQ1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBlbGVtZW50czogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgZG9uJ3QgaWdub3JlIGl0cyByZXR1cm4gdmFsdWUKCjIwMTItMDYtMDggMTU6NDE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgY2FsbCBpdCBhZnRlciB0aGUgdmZ1bmMKCjIwMTItMDYtMDggMTU6MzY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogVXNlIGdzdF9wYWRfc2V0X2NhcHMoKSBpbnN0ZWFkIG9mIHRoZSBtYW51YWwgZXZlbnQgZmlkZGxpbmcKCjIwMTItMDYtMDggMTU6MzI6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHJldHVybiB0aGUgcmV0dXJuIHZhbHVlIG9mIGdzdF9wYWRfc2V0X2NhcHMoKQoJICBlLmcuIGl0IHJldHVybnMgRkFMU0UgaWYgaW5jb21wYXRpYmxlIGNhcHMgYXJlIHNldCBvbiB0aGUgcGFkLgoKMjAxMi0wNi0wNiAxOTowMjowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEZhc3RlciByZWFkIG1hY3JvcwoJICBPbiBwbGF0Zm9ybXMgdGhhdCBjYW4gZG8gdW5hbGlnbmVkIHJlYWQvd3JpdGUsIHdlIGNhbiByZWFkL3dyaXRlIG11Y2ggZmFzdGVyCgkgIGJ5IGp1c3QgY2FzdGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5OTU0NgoKMjAxMi0wNi0wNyAxMjo0OToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgY2hlY2s6IEFkZCBhIHRlc3QgZm9yIEdTVF9SRUFEXyogbWFjcm9zCgoyMDEyLTA2LTA4IDE0OjQ5OjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTItMDYtMDcgMTc6NTg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlY29uZmlndXJlCgkgIFVzZSB0aGUgcGFkIG1ldGhvZHMgdG8gc2V0IGFuZCBjaGVjayB0aGUgcmVjb25maWd1cmUgZmxhZ3MKCSAgQ2xlYXIgdGhlIHJlY29uZmlndXJlIGZsYWcgYmVmb3JlIHdlIG5lZ290aWF0ZSBzbyB0aGF0IHdlIGRvbid0IG1pc3MgYW55CgkgIHJlY29uZmlndXJlIGV2ZW50cyB3aGlsZSBuZWdvdGlhdGluZwoKMjAxMi0wNi0wNyAxNTo1Njo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTIgPT09CgoyMDEyLTA2LTA3IDE1OjU2OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgUmVsZWFzZSAwLjExLjkyCgoyMDEyLTA2LTA3IDE1OjUzOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNi0wNyAxNToyODozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZWxlYXNlIHRoZSBvYmplY3QgbG9jayBzb29uZXIKCSAgUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHdlIGdldCB0aGUgdGltZSBvZiB0aGUgY2xvY2sgYmVjYXVzZSB0aGF0IGNvZGUKCSAgbWlnaHQgdGFrZSBvdGhlciBsb2Nrcy4KCSAgRml4IHBvdGVudGlhbCBjbG9jayByZWZjb3VudCBlcnJvciBiZWNhdXNlIHdlIHJlbGVhc2VkIHRoZSBvYmplY3QgbG9jayBidXQKCSAgZGlkbid0IHJlZiB0aGUgY2xvY2suCgoyMDEyLTA2LTA3IDEwOjM0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSAwLjExIGZpeG1lCgkgIFdlIGFsd2F5cyByZXF1aXJlIGVsZW1lbnRzIHRvIGhhdmUgYW4gdW5sb2NrX3N0b3Agdm1ldGhvZC4KCjIwMTItMDYtMDYgMTg6MTE6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBXZSBuYW1lIHRoZSByZWdpc3RyeSBhZnRlciB0aGUgdGFyZ2V0IGNwdQoJICBBbmQgbm90IHRoZSBob3N0IGNwdQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RyZWdpc3RyeS5jCgoyMDEyLTA2LTA2IDE4OjE4OjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWZhYjM1OSB0byAwM2EwZTU3CgoyMDEyLTA2LTA2IDE1OjQ1OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdCBhZnRlciBldmVudCBjaGFuZ2UKCSAgU29tZW9uZSBmb3Jnb3QgdG8gcnVuIG1ha2UgY2hlY2sgYmVmb3JlIHB1c2hpbmcuLi4KCjIwMTItMDYtMDYgMTE6MDY6MzIgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBnc3RhZGFwdGVyOiBBbGlnbiB0aGUgY29tbWVudCBkZXNjcmlwdGlvbiB3aXRoIHB1YmxpYyBhcGkgaW5zdGVhZCBvZiBpbnRlcm5hbCBvbmUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc1MzYKCjIwMTItMDYtMDYgMTU6Mjk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcGFkIGNsZWFudXAgaW4gZGlzcG9zZQoJICBJbiB0aGUgZGlzcG9zZSBoYW5kbGVyIHdlIGZpcnN0IG5lZWQgdG8gcmVsZWFzZSBhbGwgdGhlIHJlcXVlc3QgcGFkcyBhbmQgdGhlbgoJICByZW1vdmUgdGhlIHJlbWFpbmluZyBwYWRzLiBUaGlzIGlzIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhhdCByZWxlYXNpbmcgdGhlCgkgIHJlcXVlc3QgcGFkIG1pZ2h0IGFsc28gY2xlYW5seSByZW1vdmUgc29tZSBvZiB0aGUgb3RoZXIgZHluYW1pYyBwYWRzLCBsaWtlCgkgIHdoYXQgcnRwc2Vzc2lvbiBkb2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NDM2CgoyMDEyLTA2LTA2IDE0OjE0OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IERvbid0IG1ha2UgdGhlIFRPQyBldmVudCBhIG11bHRpLXN0aWNreSBldmVudAoJICBFbGVtZW50cyBhcmUgc3VwcG9zZWQgdG8gbWVyZ2UgdXBzdHJlYW0gZXZlbnRzLgoKMjAwOS0xMC0xMyAxNzoyNDozNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBNYWtlIHN1cmUgdGhhdCB1bmxpbmtlZCBwYWRzIGRvIG5vdCBjYXVzZSBhIHJldHVybiBmYWxzZSBvbiBsYXRlbmN5IGV2ZW50cy4KCSAgQ29udGV4dDogTGF0ZW5jeSBjb25maWd1cmF0aW9uIHNob3VsZCBub3QgYmUKCSAgbWVzc2VkIHVwIGJlY2F1c2Ugb2Ygbm90LWxpbmtlZCBwYWRzLiBJbiBnZW5lcmFsLAoJICBvbmUgcmV0dXJuIEZBTFNFIG9uIGxhdGVuY3kgZGlzdHJpYnV0aW9uIGNhdXNlcwoJICB0aGUgIm92ZXJhbGwiIHBpcGVsaW5lIGxhdGVuY3kgY29uZmlndXJhdGlvbiB0bwoJICBmYWlsLiBUaGlzIHNob3dzIHVwIGFzIG5vaXNlIGluIGxvZ3MgKHdhcm5pbmcpLgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMi0wNi0wNiAxMjo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGV2ZW50OiBhZGQgbmFtZSB0byBzdGlja3lfbXVsdGkgZXZlbnRzCgkgIFRoZSBuYW1lIG9mIHRoZSBldmVudCBpcyB1c2VkIHRvIHN0b3JlIG11bHRpcGxlIHN0aWNreSBldmVudHMgb2YgYSBjZXJ0YWluIHR5cGUKCSAgb24gYSBwYWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY4NTkKCjIwMTItMDYtMDYgMDk6NTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRlc2lnbjogQWxzbyBtZW50aW9uIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBmaWx0ZXIgY2FwcyBpcyBpbXBvcnRhbnQKCjIwMTItMDYtMDYgMDk6MTU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGltcHJvdmUgZG9jcwoKMjAxMi0wNi0wNiAwOToxMzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvbmx5IHNlcmlhbGl6ZWQgZXZlbnRzIGNhbid0IHBhc3MgYWZ0ZXIgRU9TCgkgIE9ubHkgc2VyaWFsaXplZCBldmVudHMgY2FuJ3QgYmUgc2VudCBvbiBwYWRzIHRoYXQgYXJlIEVPUy4gT3RoZXJ3aXNlIGEgc2VlawoJICBldmVudCB3b3VsZCBiZSByZWZ1c2VkIGFzIHdlbGwuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc1MjAKCjIwMTItMDYtMDUgMTQ6Mzg6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdGFsayBhYm91dCB0aGUgZmlsdGVyIGNhcHMKCjIwMTItMDYtMDIgMTY6NDQ6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgdGFnIGxpc3Qgd3JpdGFiaWxpdHkKCjIwMTItMDYtMDIgMTY6Mzg6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgZ3N0X3RhZ19saXN0X2ZyZWUgLT4gZ3N0X3RhZ19saXN0X3VucmVmCgoyMDEyLTA2LTAyIDE2OjI5OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IGV4cGFuZCB0YWdsaXN0IHNlY3Rpb24gaW4gcG9ydGluZy10by0wLjExIGRvY3MgYSBiaXQKCjIwMTItMDYtMDUgMTE6Mjg6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIG5lZ290aWF0aW9uIGRvY3MKCSAgTWVudGlvbiB0aGF0IHRoZSBhY2NlcHRjYXBzIHF1ZXJ5IGRvZXMgbm90IGhhdmUgdG8gYmUgcmVjdXJzaXZlCgoyMDEyLTA2LTA1IDA5OjQwOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZW1vdmUgb2Jzb2xldGUgY2FwcyBjb2RlCgoyMDEyLTA2LTA1IDA5OjM5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA2LTA1IDA5OjIxOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBmaXggdW5pdCB0ZXN0CgkgIEJlZm9yZSB3ZSBjYW4gY2hhbmdlIHRoZSBjYXBzIG9uIGEgc2lua3BhZCB3aXRoIGZpeGVkIGNhcHMgd2UgbmVlZCB0byB1bmZpeCB0aGUKCSAgcGFkIGNhcHMuCgoyMDEyLTA2LTA1IDA5OjEwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHBhdXNlIHRhc2sgb24gRU9TCgkgIEVsZW1lbnRzIHNob3VsZCBub3QgcmVseSBvbiBjb3JlIHRvIHBhdXNlIHRhc2tzIG9uIEVPUy4KCjIwMTItMDYtMDUgMDk6MDA6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGV2ZW50IHR5cGUgY2hlY2sKCjIwMTItMDYtMDQgMTY6MTk6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4ICdyZXMnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoKMjAxMi0wNi0wNCAxMzowMDo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTA2LTA0IDEyOjU3OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHZhbHZlOiBGaXggdW5pdCB0ZXN0CgoyMDEyLTA2LTA0IDExOjQ2OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IERvbid0IGFjY2VwdCBhbnkgYnVmZmVycyBvciBldmVudHMgYWZ0ZXIgRU9TCgoyMDEyLTA2LTA0IDExOjEzOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBwZXJmb3JtIHN0YXRlIHByb2Nlc3NpbmcgdXBvbiBub24tT0sgcmV0dXJuCgkgIC4uLiBzaW5jZSBwcm9jZXNzaW5nIG1pZ2h0IHN0aWxsIGNvbnRpbnVlIChpZiBlLmcuIE5PVF9MSU5LRUQpCgkgIGFuZCB0aGVuIHByb3BlciBzdGF0ZSAoZS5nLiBvZmZzZXQpIG5lZWRzIHRvIGJlIG1haW50YWluZWQKCSAgKGUuZy4gdG8gYXJyYW5nZSBmb3IgYSBuZXcgZnJhbWUgc2V0dXApLgoKMjAxMi0wNi0wNCAxMToyNTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWx3YXlzIHJldHVybiBlcnJvcnMgZm9yIEVPUyBldmVudHMgaW1tZWRpYXRlbHkKCSAgRm9yIG5vbi1FT1MgZXZlbnRzIHRoaW5ncyB3aWxsIGVycm9yIG91dCBsYXRlciBkdXJpbmcgZGF0YQoJICBmbG93IGJ1dCBhZnRlciBFT1MgZXZlbnRzIG5vIGRhdGEgZmxvdyBpcyBoYXBwZW5pbmcuCgkgIFNlZSBidWcgIzY3NzM0MC4KCjIwMTItMDYtMDQgMDk6Mjc6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgZm9yd2FyZCBjYXBzIGV2ZW50cyB0byBhIHBhZCBpZiBpdCBhY2NlcHRzIHRoZSBjYXBzCgkgIEZpeGVzIGJ1ZyAjNjc3MzM1LgoKMjAxMi0wNi0wMiAyMDowMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBSZXR1cm4gRkFMU0UgaWYgcHVzaGluZyBvZiBzdGlja3kgZXZlbnRzIGZhaWxlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwZjkyNGI5MjJjNzEyMDU5ZDc3NTJmYzE1YjgzMjU1MTc0NWZmMjdlLgoJICBTdGlja3kgZXZlbnRzIHNob3VsZCBhbHdheXMgcmV0dXJuIFRSVUUgd2hlbiBwdXNoaW5nIGFuZCB3aWxsCgkgIG9ubHkgY2F1c2UgZmFpbHVyZXMgZHVyaW5nIGRhdGEgZmxvdyBsYXRlci4KCjIwMTItMDYtMDIgMTY6MTg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCB2YXJpYWJsZS1zZXQtYnV0LW5vdC11c2VkIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDYtMDIgMTY6NTU6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHB1c2hpbmcgYSBzdGlja3kgZXZlbnQgZmFpbGVkLCBtYWtlIHN1cmUgdG8gYXQgbGVhc3QgcHVzaCBhbnkgcGVuZGluZyBFT1MgZXZlbnRzCgkgIE90aGVyd2lzZSBhIHBpcGVsaW5lIHdoZXJlIG9uZSBzdGlja3kgZXZlbnQgZmFpbHMgdG8gYmUgc2VudCB3aWxsCgkgIG5ldmVyIGZvcndhcmQgRU9TIGV2ZW50cyBkb3duc3RyZWFtLiBUaGlzIGNhbiBjYXVzZSBwaXBlbGluZXMgdG8KCSAgd2FpdCBmb3JldmVyIGZvciBFT1Mgb24gZXJyb3JzLgoKMjAxMi0wNi0wMiAxNjowMjowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV0dXJuIEZBTFNFIGlmIHB1c2hpbmcgb2Ygc3RpY2t5IGV2ZW50cyBmYWlsZWQKCSAgSW5zdGVhZCBvZiBqdXN0IGlnbm9yaW5nIGZhaWx1cmUgb2YgcHVzaGluZyBzdGlja3kgZXZlbnRzIGFuZAoJICByZXR1cm5pbmcgVFJVRSBhcyBpZiBldmVyeXRoaW5nIGlzIGZpbmUuCgoyMDEyLTA2LTAxIDE2OjM0OjE2ICswMjAwICBBbmRyZSBNb3JlaXJhIE1hZ2FsaGFlcyAoYW5kcnVua28pIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IENvcnJlY3RseSBnZXQgY3VycmVudCBydW5uaW5nIHRpbWUgd2hlbiBzeW5jaW5nIHRvIHRoZSBzZWdtZW50IGluZm9ybWF0aW9uCgkgIEZpeGVzIGJ1ZyAjNjc3MjYzLgoKMjAxMi0wNi0wMSAxMDoyODozMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYxYjVhOTYgdG8gMWZhYjM1OQoKMjAxMi0wNS0yNSAyMjo1ODo1NyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IEFkZCBmdW5uZWwgdGVzdCB0byBjb3ZlciBFT1MgZXZlbnQgaGFuZGxpbmcKCSAgUG9ydGVkIGZyb20gZjNiMmRkNmYgaW4gdGhlIDAuMTAgYnJhbmNoCgoyMDEyLTA1LTI1IDIyOjUyOjMzIC0wNTAwICBNaWtlIFJ1cHJlY2h0IDxtaWtlLnJ1cHJlY2h0QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogT25seSBlbWl0IEVPUyBldmVudCBpZiBhbGwgc2lua3BhZHMgaGF2ZSByZWNlaXZlZCBvbmUKCSAgSWYgbXVsdGlwbGUgc291cmNlcyBhcmUgcGx1Z2dlZCBpbnRvIHRoZSBmdW5uZWwgYW5kIG9uZSBvZiB0aGUKCSAgc291cmNlcyBlbWl0cyBhbiBFT1MsIHRoYXQgZXZlbnQgaXMgcHJvcG9nYXRlZCB0aHJvdWdoIHRoZSBmdW5uZWwKCSAgZXZlbiB0aG91Z2ggb3RoZXIgc291cmNlcyBjb25uZWN0ZWQgdG8gdGhlIGZ1bm5lbCBtYXkgc3RpbGwgYmUKCSAgcHVzaGluZyBkYXRhLiBUaGlzIHBhdGNoIHdhaXRzIHRvIHNlbmQgYW4gRU9TIGV2ZW50IHVudGlsIHRoZQoJICBmdW5uZWwgaGFzIHJlY2VpdmVkIGFuIEVPUyBldmVudCBvbiBlYWNoIHNpbmtwYWQuCgkgIFBvcnRlZCBmcm9tIGQzOTdlYTk3IGluIDAuMTAgYnJhbmNoLgoKMjAxMi0wNS0yOSAxOToyNDoyNSAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IEZpeCBpbnZhbGlkIHJlYWQgd2hlbiByZWxlYXNpbmcgcmVxdWVzdCBwYWRzIGluIGZ1bm5lbCB0ZXN0cwoKMjAxMi0wNS0yOSAxOToyMzowNyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEZpeCBidWZmZXIgbGVhawoKMjAxMi0wNS0zMSAxNzo0NToyOSArMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBEb24ndCB0cnkgdG8gc3luYyBvbiB0aGUgc2VnbWVudCBpZiBpdCBoYXMgbm8gVElNRSBmb3JtYXQKCSAgLi4uYW5kIHdhaXQgdW50aWwgaXQgaXMgYWN0dWFsbHkgY29uZmlndXJlZCBhbmQgaGFzIGEgZm9ybWF0IGJlZm9yZQoJICB0cnlpbmcgdG8gc3luYy4KCjIwMTItMDUtMzEgMTc6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE5vIG5lZWQgdG8gYnJvYWRjYXN0IHRoZSBzaWduYWwgaW4gZmx1c2gtc3RvcAoJICBFdmVyeXRoaW5nIHN0b3BwZWQgYXQgdGhpcyBwb2ludCBhbHJlYWR5LgoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgoyMDEyLTA1LTMxIDEzOjA3OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTJiNzI2NiB0byBmMWI1YTk2CgoyMDEyLTA1LTMxIDEwOjEwOjQxICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBwcm9wZXJ0eSBuYW1lIGluIHRoZSBkb2NzCgkgIHRlbXAtdGVtcGxhdGUsIG5vdCB0ZW1wLXRtcGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzE3MAoKMjAxMi0wNS0yOCAxNDoyOTowMCAtMDMwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogUHJvcGVybHkgc3luYyB3aGVuIGNoYW5naW5nIHN0cmVhbXMKCSAgVGhpcyBhZGRzIHByb3BlcnRpZXMgdG8gdXNlIHRoZSBjbG9jayB0aW1lIGZvciBkZWNpZGluZyB3aGVuCgkgIHRvIGRyb3AgYnVmZmVycyBmb3IgaW5hY3RpdmUgcGFkcyBhbmQgYSBwcm9wZXJ0eSB0byBidWZmZXIgYWxsCgkgIG5vdCByZW5kZXJlZCBidWZmZXJzIGZvciB0aGUgYWN0aXZlIHBhZCB0byBhbGxvdyBwYWQgc3dpdGNoaW5nCgkgIHdpdGhvdXQgbG9zaW5nIGFueSBidWZmZXJzIGF0IGFsbC4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoKMjAxMi0wNS0zMCAxMjo0NDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGVjMWM0YTggdG8gOTJiNzI2NgoKMjAxMi0wNS0zMCAxMToxODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM0MjliYTYgdG8gZWMxYzRhOAoKMjAxMi0wNS0yOSAwODo0ODozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgZ3VhcmRzIHRvIG1ha2Ugc3VyZSB0YWdsaXN0IGlzIHdyaXRhYmxlIHdoZW4gbW9kaWZ5aW5nIGl0CgkgIE5vdyB0aGF0IHRhZ2xpc3RzIGFyZSByZWZjb3VudGVkIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhleSdyZQoJICB3cml0YWJsZSBiZWZvcmUgbW9kaWZ5aW5nIHRoZW0uCgoyMDEyLTA1LTI4IDIzOjU0OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhdm9pZCB1bm5lY2Vzc2FyeSBzdHJpbmcgY29weWluZyB3aGVuIHJlZ2lzdGVyaW5nIHRhZ3MKCSAgQWRkIGdzdF90YWdfcmVnaXN0ZXJfc3RhdGljKCkgLSBubyBuZWVkIHRvIGNvcHkgYWxsIHRob3NlCgkgIHN0cmluZyBjb25zdGFudHMsIHdoZXRoZXIgdHJhbnNsYXRlZCBvciBub3QuCgkgIEFQSTogZ3N0X3RhZ19yZWdpc3Rlcl9zdGF0aWMoKQoKMjAxMi0wNS0yOCAwMDowODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogY2hlY2sgZm9yIEdMaWItR0lPIGNyaXRpY2FscyBhcyB3ZWxsCgoyMDEyLTA1LTI4IDAwOjA4OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3RfdGFnX2xpc3RfZnJlZSgpIC0+IGdzdF90YWdfbGlzdF91bnJlZigpCgoyMDEyLTA1LTI3IDIzOjU4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogbWFrZSBHc3RUYWdMaXN0IGEgR3N0TWluaU9iamVjdAoJICBXaGljaCBhZGRzIHJlZmNvdW50aW5nIHN1cHBvcnQsIGFuZCBvdGhlciB0aGluZ3MuCgoyMDEyLTA1LTI3IDIwOjMxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGxvZyBmcmVlaW5nIG9mIGNhcHMgYXQgc2FtZSBsb2cgbGV2ZWwgYXMgY3JlYXRpb24sIGkuZS4gVFJBQ0UKCjIwMTItMDUtMjYgMTE6Mzc6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZSwgZXZlbnQ6IHVwZGF0ZSBmb3IgdGFnIGxpc3RzIG5vdCBiZWluZyBzdHJ1Y3R1cmVzIGFueSBtb3JlCgoyMDEyLTA1LTIxIDAwOjMxOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2UgcHJvcGVyIHN0cnVjdCBub3QganVzdCBhIEdzdFN0cnVjdHVyZQoKMjAxMi0wNS0yNSAxMDoyODo0MCArMDIwMCAgSm9zZXAgVG9ycmEgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggc3RhdGljIGxpbmtpbmcgb24gT1MgWAoJICBUaGUgbGlua2luZyBiZWhhdmlvdXIgb2YgZXh0ZXJuYWwgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCBpbml0aWFsaXplZAoJICBpbiB0aGUgY29tcGlsYXRpb24gdW5pdCB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkIGlzIHVuZGVmaW5lZC4gT24gT1MgWAoJICB0aGlzIGNhdXNlcyBhIGxpbmtpbmcgZmFpbHVyZSB3aGVuIHN0YXRpY2FsbHkgbGlua2luZyBHU3RyZWFtZXIuCgoyMDEyLTA1LTI1IDA5OjE3OjE3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIGZpdmUtYnVncy1hLWRheTogdXNlIHNwbGljZSB0byB0cmltIHRoZSBidWcgbGlzdAoKMjAxMi0wNS0yNCAyMzozMDoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIGZha2VzcmM6IHB1dCBieXRlIHBvc2l0aW9uIHJhdGhlciB0aGFuIGJ1ZmZlciBjb3VudCBpbnRvIEdTVF9CVUZGRVJfT0ZGU0VUCgkgIElmIHdlJ3JlIHNlbmRpbmcgYSBzZWdtZW50IGluIEJZVEUgZm9ybWF0LCB0aGUgb2Zmc2V0CgkgIHNob3VsZCBiZSBpbiBieXRlcyBhcyB3ZWxsLgoKMjAxMi0wNS0yNCAxMTo0ODoxOSArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBkb2NzOiBmaXggYSB0eXBvIGluIHBhcnQtc2VnbWVudHMudHh0CgoyMDEyLTA1LTI0IDExOjAyOjUzICswMjAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uIGF0IG9yYWNsZS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBmaXggcHJvdG90eXBlIG9mIGhlbHBlcl9maW5kX3N1Z2dlc3QKCSAgVGhlIHByb3RvIGZvciBoZWxwZXJfZmluZF9zdWdnZXN0IGhhcyBhIGRpZmZlcmVudCBhcmd1bWVudCB0aGFuIHRoZSBhY3R1YWwKCSAgZnVuY3Rpb24gaW4gdGhlIHNhbWUgZmlsZSBoYXMuICBUaGlzIGNhdXNlcyB0aGUgU3VuIFN0dWRpbyBjb21waWxlciB0byBmYWlsLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2NjI0CgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgoyMDEyLTA1LTI0IDA4OjA3OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiByZW1vdmUgYSBzdHJheSBwcmludCBmcm9tIGRlYnVnZ2luZyBhbmQgZml4IHVwIGNyb24gZW50cnkgZG9jcwoKMjAxMi0wNS0yNCAwOTowMzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgZml2ZS1idWdzLWEtZGF5OiBNYWtlICMhIHRvIHBlcmwgbW9yZSBwb3J0YWJsZQoKMjAxMi0wNS0yNCAwNzo1Njo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogcmVtb3ZlIGZpeGVkICdrbm93biBpc3N1ZScgZnJvbSBmaXZlLWJ1Z3MtYS1kYXkgc2NyaXB0CgkgIFRoaXMgd2FzIHdpdGggY29tbWFzIGFjdHVhbGx5LCBhbmQgc2hvdWxkIGJlIGZpeGVkIG5vdy4KCjIwMTItMDUtMjQgMDc6NTQ6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IGFkZCBmaXZlLWJ1Z3MtYS1kYXkgc2NyaXB0CgkgIENyb24gZm9kZGVyLgoKMjAxMi0wNS0yMiAxNDoyNzo0OCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6CgkgIHRlc3RzOiByZW5hbWUgcGxheWJpbjIgdG8gcGxheWJpbiBhbmQgYWRkaW5nIHNvbWUgZGVidWcgaW5mbwoKMjAxMi0wNS0yMiAxODoyNzozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMi0wNS0yMiAxMzo1MTo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGUKCjIwMTItMDUtMjEgMDk6MTQ6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogcG9ydCB1bml0IHRlc3QgdG8gMC4xMQoKMjAxMi0wNS0yMSAxNToxNDo1MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiBpbXByb3ZlIHRoZSBzZWVraW5nIGRvY3MgbW9yZS4KCSAgQWxzbyBtZW50aW9uIGl0IG9uIF9lbGVtZW50X3NlZWt7LF9zaW1wbGV9IGFuZCBiZSBtb3JlIHByZWNpc2Ugd2h5IGl0IGhhcHBlbnMuCgoyMDEyLTA1LTIxIDEzOjE3OjIxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCBhIHR5cG8gYW5kIGNsYXJpZnkgZXZlbnQgaGFuZGxpbmcgYSBiaXQgbW9yZQoJICBUZWxsIGFib3V0IGFzeW5jX2RvbmUgbWVzc2FnZXMgZm9yIHNvbWUgZXZlbnRzIGFuZCByZXZpZXcgdGhlIF9ldmVudF9uZXdfc2VlawoJICBkb2NzLgoKMjAxMi0wNS0xOCAxNTowNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IHRyeSBoYXJkZXIgdG8gYXZvaWQgc3RhdGUgY2hhbmdlcyBpbiB3cm9uZyBkaXJlY3Rpb24KCSAgV2hlbiB0aGUgYmluIGRvZXMgYW4gdXB3YXJkIHN0YXRlIGNoYW5nZSwgdHJ5IHRvIGF2b2lkIGRvaW5nIGEgZG93bndhcmQgc3RhdGUKCSAgY2hhbmdlIG9uIHRoZSBjaGlsZCBhbmQgdmljZSB2ZXJzYS4KCSAgQWRkIHNvbWUgbW9yZSB1bml0IHRlc3RzIGZvciB0aGlzIGZpeC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTgzMwoKMjAxMi0wNS0xOCAyMDoxMTo1NSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggLWMsIC0tdG9jIG1lc3NhZ2UKCjIwMTItMDUtMjEgMDE6NDg6MjkgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IEFkZCBib3hlZCB0eXBlcyBmb3IgR3N0VG9jIGFuZCBHc3RUb2NFbnRyeQoKMjAxMi0wNS0yMCAxODoyMzo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBmaXggdHlwZSBvZiBwYWQgcGFyYW1ldGVyIHRvIGdzdF90b2NfZW50cnlfbmV3X3dpdGhfcGFkKCkKCjIwMTItMDUtMjAgMTg6MTY6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHVzZSBjb3JyZWN0IEdUeXBlIGZvciB0YWcgbGlzdHMKCjIwMTItMDUtMjAgMTg6MDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGF2b2lkIHVubmVjZXNzYXJ5IEdWYWx1ZSBhY3JvYmF0aWNzCgoyMDEyLTA1LTIwIDE3OjQ4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHVzZSBnbG9iYWwgcXVhcmsgdGFibGUKCjIwMTItMDUtMjAgMTc6MTA6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkgIHRvYzogZml4IGludGVybmFsIFRPQyBxdWVyeSBhbmQgZXZlbnQgc3RydWN0dXJlIG5hbWVzCgkgIE1ha2UgdGhlbSBjb25zaXN0ZW50IHdpdGggYWxsIHRoZSBvdGhlciBxdWVyeSBhbmQgZXZlbnQgbmFtZXMuCgoyMDEyLTA1LTE5IDE3OjI0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBwbHVnaW5mZWF0dXJlOiBtYWtlIEdzdFBsdWdpbkZlYXR1cmUgc3RydWN0dXJlIHByaXZhdGUKCSAgTWFrZSBHc3RQbHVnaW5GZWF0dXJlIG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8KCSAgY2xlYW4gaXQgdXAgYSBsaXR0bGUuIE9ubHkgR3N0RWxlbWVudEZhY3RvcnkgYW5kCgkgIEdzdFR5cGVmaW5kRmFjdG9yeSBkZXJpdmUgZnJvbSBpdCwgYW5kIHRoZXkgYXJlCgkgIG9wYXF1ZSBhbHJlYWR5LCBhbmQgd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQKCSAgY3VzdG9tIHBsdWdpbiBmZWF0dXJlcyBpbiB0aGUgcmVnaXN0cnkgYW55d2F5LgoKMjAxMi0wNS0xOSAxNzoyMzo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzLCB0ZXN0czogZG9uJ3QgYWNjZXNzIHRoZSBHc3RQbHVnaW5GZWF0dXJlIHN0cnVjdHVyZSBkaXJlY3RseQoKMjAxMi0wNS0xOSAxNzoxNjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luKCkKCSAgQWRkIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHBsdWdpbiB0aGF0IHByb3ZpZGVzIHRoaXMgZmVhdHVyZS4KCSAgQVBJOiBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbigpCgoyMDEyLTA1LTE5IDE2OjIxOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIGdzdHNjYW5vYmogY2hhbmdlcwoKMjAxMi0wNS0xOSAxNTo1MTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWFrZSBvYmplY3Qgc3RydWN0IG9wYXF1ZSBmb3Igbm93CgkgIE1ha2UgR3N0RWxlbWVudEZhY3Rvcnkgb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0bwoJICBjbGVhbiBpdCB1cCBhIGxpdHRsZS4gSXQncyBub3Qgc29tZXRoaW5nIGFueW9uZQoJICB3b3VsZCBuZWVkIHRvIGRlcml2ZSBmcm9tLgoKMjAxMi0wNS0xOSAxNDo1OToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZG9uJ3QgdXNlIHByaXZhdGUgR3N0RWxlbWVudEZhY3RvcnkgQVBJIGluIGdzdC1pbnNwZWN0CgoyMDEyLTA1LTE5IDE0OjUyOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnRmYWN0b3J5OiBhZGQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGFfa2V5cygpCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGFfa2V5cygpCgoyMDEyLTA1LTE4IDA5OjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGltcHJvdmUgRU9TIG9uIHNodXRkb3duIGhhbmRsaW5nCgkgIFdoZW4gdGhlIC1lIG9wdGlvbiBpcyBzZWxlY3RlZCwgYWxzbyB3YWl0IGZvciBFT1Mgd2hlbiB0aGUgcGlwZWxpbmUgcHJvZHVjZWQgYW4KCSAgZXJyb3IuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA5OTcKCjIwMTItMDUtMTYgMTg6NTM6MTUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogZml4IGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKCkgZG9jcwoKMjAxMi0wNS0xNiAxMzoyNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRocm90dGxlLXRpbWUgaXMgdXNlZAoKMjAxMi0wNS0xNiAxMjowODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHByZXBhcmUgbWV0aG9kCgkgIEFkZCBhIHByZXBhcmUgbWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSBzeW5jIGhhcHBlbnMuIFRoZSBwdXJwb3NlIG9mIHRoaXMKCSAgbWV0aG9kIGlzIHRvIHByZXBhcmUgdGhlIHJlbmRlcmluZyBvZiB0aGUgZ2l2aW5nIGJ1ZmZlciBzbyB0aGF0IHRoZSBmb2xsb3dpbmcKCSAgcmVuZGVyKCkgY2FsbCBhZnRlciBzeW5jIGlzIGEgcXVpY2sgYXMgcG9zc2libGUuCgoyMDEyLTA1LTE2IDA5OjE2OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHBvdGVudGlhbCBkZWFkbG9jawoJICBJbiBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKSB3ZSBkbyBhIHBlcmZvcm1fc2VlaygpIHRoYXQgd2lsbCBldmVudHVhbGx5CgkgIHN0YXJ0IHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdoaWNoIGFjcXVpcmVzIHRoZSBsaXZlIGxvY2sgYW5kIHRoZW4gZ29lcyB0byBzbGVlcAoJICBpbiB0aGUgY2FzZSBvZiBhcHBzcmMuIFJpZ2h0IGFmdGVyIHdlIHBlcmZvcm0gc2VlayB3ZSBhbHNvIHRyeSB0byBhY3F1aXJlIHRoZQoJICBsaXZlIGxvY2sgd2hpY2ggbWlnaHQgdGhlbiBkZWFkbG9jay4KCSAgZml4IHRoaXMgYnkgdGFraW5nIHRoZSBzdHJlYW0gbG9jayBiZWZvcmUgcGVyZm9ybWluZyB0aGUgc2Vlay4gVGhpcyBtYWtlcyBzdXJlCgkgIHRoYXQgdGhlIHN0cmVhbWluZyB0aHJlYWQgY2Fubm90IHN0YXJ0IGFuZCBncmFiIHRoZSBsaXZlIGxvY2sgdW50aWwgd2UgYXJlIGRvbmUKCSAgYW5kIHJlbGVhc2UgdGhlIHN0cmVhbSBsb2NrIGFnYWluLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MDQ4CgoyMDEyLTA1LTE1IDE5OjExOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZW1vdmUgcmVmZXJlbmNlcyB0byBtbWFwIGluIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwoKMjAxMi0wNS0xNSAxNjozODozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0OiBSZW5hbWUgZ3N0X3RvY19lbnRyeV90eXBlX3RvX3N0cmluZygpIHRvIGdzdF90b2NfZW50cnlfdHlwZV9nZXRfbmljaygpCgkgIEl0J3MgbW9yZSBjb25zaXN0ZW50LgoKMjAxMi0wNS0xNSAxNDo1OTowNyArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggcHJpbnRfdG9jX2VudHJ5KCkKCjIwMTItMDUtMTUgMTQ6NDg6MzUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBBUEk6IEFkZCBnc3RfdG9jX2VudHJ5X3R5cGVfdG9fc3RyaW5nKCkKCjIwMTItMDUtMTQgMDM6NTc6NTAgKzAyMDAgIEFsYmFuIEJyb3dhZXlzIDxwcmFoYWxAeWFob28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBpZiBzaW5rIHBhZCBpcyBhY3RpdmF0ZWQgZG8gbm90IGNoYW5nZSBtb2RlCgkgIEluIGNvbW1pdCBiZjA5NjRiNiBhIGNoZWNrIGZvciBwYWQgaXMgYWN0aXZhdGVkIHdhcyBub3QgY2FycmllZC4KCSAgVGhpcyBsZWFkcyB0byBhdHRlbXB0IHRvIHB1bGwgd2hpbGUgaW4gcHVzaCBtb2RlIHdoZW4gZm9yY2VfY2FwcwoJICBpcyBzZXQuIEluIHRoaXMgY2FzZSB3aXRob3V0IHRoZSBhdHRhY2hlZCBjaGVjayBldmVuIHdoZW4gYWN0aXZhdGVkCgkgIGluIHB1bGwgbW9kZSB3ZSBhY3RpdmF0ZSBiYWNrIHRvIHB1c2ggbW9kZS4KCSAgVGhpcyBpcyBmcm9tIGNvbW1lbnQgaW4gcHJldmlvdXMgY29kZSAsIGNhc2UgbnVtYmVyIGVpZ2h0OgoJICA4LiBpZiB0aGUgc2luayBwYWQgaXMgYWN0aXZhdGVkLCB3ZSBhcmUgaW4gcHVsbCBtb2RlLiBzdWNjZWVkLgoJICAtICAgICBvdGhlcndpc2UgYWN0aXZhdGUgYm90aCBwYWRzIGluIHB1c2ggbW9kZSBhbmQgc3VjY2VlZC4KCSAgUHV0dGluZyBpdCBiYWNrIGZpeGVzIHBsYXliYWNrIG9mIHdlYm0gaW4gd2Via2l0K2dzdHJlYW1lciAxLjAgLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MDAzCgoyMDEyLTA1LTEzIDE2OjU5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MSA9PT0KCjIwMTItMDUtMTMgMTY6MDI6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgUmVsZWFzZSAwLjExLjkxCgoyMDEyLTA1LTEzIDE2OjAyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNS0xMyAxNTo1NTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRjNzAyMDMgdG8gMzQyOWJhNgoKMjAxMi0wNS0wOSAxNDoyMjoyMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogT25seSBpbmNsdWRlIGluaXQvZGVpbml0IG9mIGFsbG9jIHRyYWNpbmcgd2hlbiBlbmFibGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4MDYKCjIwMTItMDUtMTEgMDk6MDc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IGRvY3MKCSAgR1NUX0ZMT1dfV1JPTkdfU1RBVEUgLT4gR1NUX0ZMT1dfRkxVU0hJTkcKCjIwMTItMDUtMTAgMTI6MTU6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBpbXByb3ZlIGJ1ZmZlcnBvb2wgZG9jcwoKMjAxMi0wNS0wOCAyMDoxMjo0MiArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCB0YWdzIGluIHRvYwoKMjAxMi0wNS0wNSAyMjoxNzo0MyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0OiBGaXggY29tcGlsZXIgd2FybmluZ3Mgb24gbWluZ3ctdzY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU1MjUKCjIwMTItMDUtMDIgMTQ6MDA6NDMgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgdG8gZGVmYXVsdF9tZW1fbWFwKCkKCSAgRml4ZXMgZnVuY3Rpb24gc2lnbmF0dXJlIGZvciBjb3JyZWN0bmVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTI4OQoKMjAxMi0wNS0wMiAwODowODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCjIwMTItMDUtMDEgMjI6MzU6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgdHlwZWZpbmRmYWN0b3J5OiBtYWtlIG9iamVjdCBzdHJ1Y3Qgb3BhcXVlIGZvciBub3cKCSAgTWFrZSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvIGNsZWFuIGl0IHVwIGEgbGl0dGxlLgoKMjAxMi0wNS0wMSAyMjozMDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSAgdHlwZWZpbmRmYWN0b3J5OiBmaXggcmV0dXJuIHR5cGUgb2YgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9leHRlbnNpb25zKCkKCjIwMTItMDUtMDEgMjI6Mjg6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scywgYmFzZTogZG9uJ3QgcG9rZSBpbnRvIEdzdFR5cGVGaW5kRmFjdG9yeSBzdHJ1Y3QsIHVzZSBwdWJsaWMgQVBJCgoyMDEyLTA1LTAxIDIyOjMzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kZmFjdG9yeTogYWRkIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9oYXNfZnVuY3Rpb24oKQoJICBBZGQgQVBJIHNvIHBlb3BsZSBkb24ndCBoYXZlIHRvIHBva2UgdGhlIHN0cnVjdCBmb3IgdGhpcy4KCjIwMTItMDUtMDEgMTU6NTI6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVwZGF0ZSBkb2NzIGZvciBnc3RfY2Fwc19pc19lcXVhbAoJICBOVUxMIGNhcHMgYXJlbid0IHZhbGlkIGNhcHMgaW4gMS4wIGFuZCBhcmVuJ3QgYWNjZXB0ZWQgaW4KCSAgZ3N0X2NhcHNfaXNfZXF1YWwKCjIwMTItMDUtMDEgMTk6NDc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogcmVxdWlyZSBVUkkgcHJvdG9jb2wgYml0IHRvIGJlIGF0IGxlYXN0IDMgY2hhcmFjdGVycyB0byBiZSB2YWxpZAoJICBXZSB3YW50IHRvIHJldHVybiBGQUxTRSB3aGVuIHJ1biBvbiBhIHdpbmRvd3Mtc3R5bGUgZmlsZSBwYXRoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0Mjk2CgoyMDEyLTA0LTI2IDE3OjI2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybS9iYXNlc3JjOiBEbyBidWZmZXJwb29sIGNvbmZpZ3VyYXRpb24gaW5zaWRlIHRoZSBkZWZhdWx0IGRlY2lkZV9hbGxvY2F0aW9uKCkgaW1wbGVtZW50YXRpb24KCSAgVGhpcyBhbGxvd3Mgc3ViY2xhc3NlcyB0byBvdmVycmlkZSBpdCwgYXMgaXMgbmVjZXNzYXJ5IGZvciBlLmcuIHRoZQoJICB2aWRlby1jcm9wIG1ldGEuIEl0IGlzIG5vdyBuZWNlc3NhcnkgdGhhdCBhZnRlciBkZWNpZGVfYWxsb2NhdGlvbigpCgkgIHRoZXJlIGlzIGFsd2F5cyBhIGFsbG9jYXRvciBhbmQgYSBjb25maWd1cmVkIGJ1ZmZlciBwb29sIGluc2lkZSB0aGUKCSAgcXVlcnkuCgoyMDEyLTA0LTI4IDIxOjM3OjU2ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBzZXQgcmVzdWx0IG9uIGFjY2VwdCBjYXBzIHF1ZXJ5IHdoZW4gdGhlcmUgaXMgbm8gcGVlcgoKMjAxMi0wNS0wMSAxMDo1MDozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIF90cnlfdG9fbWVyZ2VfdXAoKQoJICBJdCBjYXVzZXMgdGhlIHRpbWVzdGFtcCB0byBnbyB3cm9uZywgc2hvdWxkIG5vdCBjYXVzZSBtdWNoIG9mIGEgcGVyZm9ybWFuY2UKCSAgaW5jcmVhc2UgYW5kIGluIHRoZSBjYXNlcyB3aGVyZSBpdCBpcyBmYXN0ZXIsIGl0IGlzIGJyb2tlbiBpbiAwLjEwIGFzIHdlbGwuCgkgIFdlIHNob3VsZCB0cnkgdG8gcmV2aWV3IHRoaXMgd2hlbiByZXdyaXRpbmcgdGhlIGFkYXB0ZXIgZm9yIDAuMTEgbWVtb3J5CgkgIGZlYXR1cmVzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0NzkxCgoyMDEyLTA1LTAxIDA5OjI1OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiBtYWtlIGludGVybmFscyBwcml2YXRlCgkgIE1ha2UgdGhlIGFkYXB0ZXIgZmllbGRzIHByaXZhdGUuCgoyMDEyLTA0LTMwIDIwOjI5OjIxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiByZWFycmFuZ2Ugc3lzL3N0YXQuaCBpbmNsdXNpb24gcG9pbnQgZm9yIE1pbkdXCgkgIGdzdHBsdWdpbi5oIHVzZWQgdG8gaW5jbHVkZSB0aGlzIGZvciB1cywgYnV0IGRvZXNuJ3QgYW55IGxvbmdlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTE3MQoKMjAxMi0wNC0zMCAwOTo1ODowOSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIGV2ZW50OiBhZGQgbmV3IHNlZWsgc25hcCBmbGFncwoJICBUaGV5IGNhbiBiZSB1c2VkIHRvIHNlbGVjdCBzbmFwcGluZyBiZWhhdmlvciAodG8gcHJldmlvdXMsIG5leHQsIG9yCgkgIG5lYXJlc3QgbG9jYXRpb24sIHdoZXJlIHJlbGV2YW50KSB3aGVuIHNlZWtpbmcuCgkgIFRoZSBzZWVraW5nIGltcGxlbWVudGF0aW9uIChlZywgZGVtdXhlcikgbWF5IGN1cnJlbnRseSBpZ25vcmUgc29tZQoJICBvciBhbGwgb2YgdGhlc2UgZmxhZ3MuCgoyMDEyLTA0LTI5IDIwOjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byByZW1vdmVkIEFQSSBpbiBwbHVnaW4gZG9jcwoKMjAxMi0wNC0yOSAyMDowNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYXZvaWQgc29tZSByZWxvY2F0aW9ucwoKMjAxMi0wNC0yOSAxODozNToxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IHJlbW92ZSBnc3RfcGx1Z2luX25hbWVfZmlsdGVyCgkgIEl0J3Mgb25seSB1c2VkIGludGVybmFsbHksIG1vc3Qgb3RoZXIgdXNlcnMgd2lsbCBsaWtlbHkKCSAgd2FudCB0byB1c2UgZ3N0X3JlZ2lzdHJ5X2ZpbmRfcGx1Z2luKCkgZGlyZWN0bHkgaW5zdGVhZAoJICAoYW5kIGlmIG5vdCwgdGhleSBjYW4gZWFzaWx5IHdhbGsgdGhlIGxpc3QgYW5kIGRvaW5nIHRoZQoJICBzdHJjbXAgdGhlbXNlbHZlcykuCgoyMDEyLTA0LTI5IDE3OjQ2OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGx1Z2luOiB1c2UgR3N0T2JqZWN0IGZsYWdzIGZvciBwbHVnaW4gZmxhZ3MKCjIwMTItMDQtMjkgMTc6MDM6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBtYWtlIEdzdFBsdWdpbiBvYmplY3Qgc3RydWN0dXJlIG9wYXF1ZSBmb3Igbm93CgkgIFRoZXJlJ3Mgbm8gcmVhc29uIGFueW9uZSB3b3VsZCB3YW50IHRvIGRlcml2ZSBmcm9tIHRoaXMsIHNvCgkgIGp1c3QgbWFrZSBvcGFxdWUgdW50aWwgd2UgbWFuYWdlIHRvIG1ha2UgYWxsIHRoZSBwcml2YXRlIGJpdHMKCSAgcHJpdmF0ZSBwcm9wZXJseSAod2hpY2ggSSdtIG5vdCBkb2luZyByaWdodCBub3cgYmVjYXVzZSBpdCdzCgkgIG1vcmUgaW52YXNpdmUgYW5kIEkgaGF2ZSByZWdpc3RyeSBtb2RpZmljYXRpb25zIGxvY2FsbHkgd2hpY2gKCSAgdG91Y2ggYWxsIHRoYXQgY29kZSBhcyB3ZWxsKS4KCjIwMTItMDQtMjkgMTY6NDk6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHVzZSBwdWJsaWMgYWNjZXNzb3JzIGZvciBwbHVnaW4gZGVzY3JpcHRpb24gZGV0YWlscwoJICBNb3N0bHkgYW55d2F5IChmbGFncyBzdGlsbCBuZWVkIHNvcnRpbmcgb3V0KS4KCjIwMTItMDQtMjkgMTY6NDY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwbHVnaW46IHJlbW92ZSBnc3RfcGx1Z2luX2dldF9tb2R1bGUoKQoJICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCByZWFsbHksIGFuZCBpdCdzIG5vdAoJICBjbGVhciB3aGF0IGFueW9uZSB3b3VsZCBkbyB3aXRoIHRoaXMuIEl0J3MgdW51c2VkIGFzCgkgIGZhciBhcyBJJ20gYXdhcmUsIHNvIGp1c3QgcmVtb3ZlIGl0IGZvciBub3cuCgoyMDEyLTA0LTI5IDE2OjIwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiBhZGQgYWNjZXNzb3IgZm9yIHJlbGVhc2UgZGF0ZSB0aW1lIHN0cmluZyBpbiBwbHVnaW4gZGVzY3JpcHRpb24KCSAgQVBJOiBnc3RfcGx1Z2luX2dldF9yZWxlYXNlX2RhdGVfc3RyaW5nKCkKCjIwMTItMDQtMjkgMTU6NTM6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogdXNlIHB1YmxpYyBhY2Nlc3NvcnMgdG8gZ2V0IHBsdWdpbiBkZXNjcmlwdGlvbiBkZXRhaWxzCgoyMDEyLTA0LTI5IDEzOjI4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBnaXZlIHRoZSAyMHRoIHF1ZXVlIGVsZW1lbnQgYSBkaWZmZXJlbnQgbmFtZSB0aGFuIHRoZSBmaXJzdCBxdWV1ZTIgb25lCgkgIEZpeGVzIGlzc3VlIHdpdGggdGhlIGRlZmF1bHQgbmFtaW5nIHNjaGVtZS4KCjIwMTItMDQtMTggMTc6Mzc6MjUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IGZvcm1hdCBzdHJpbmcgaW4gZ3JhbW1hci55CgkgIEZpeGVzICM2NzQ4NDkKCjIwMTItMDQtMjUgMjA6MTQ6MTMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nczogYWRkIGNvbW1lbnRzIGZvciBzcGFyc2UgY29udHJvbCBzb3VyY2UKCjIwMTItMDQtMjUgMjA6MTA6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZW11bGF0ZSBfZ2V0X2dfdmFsdWVfYXJyYXkoKQoJICBBZGQgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9uIHRoZSBiYXNlY2xhc3MuCgoyMDEyLTA0LTI1IDA5OjQ3OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogZXhwYW5kIHRoZSBhcGkgdG8gb2ZmZXIgZnVuY3Rpb25zIGZvciBwbGFpbiBhbmQgR1ZhbHVlIGFycmF5cwoJICBSZW5hbWUgdGhlIF9nZXRfdmFsdWVfYXJyYXkoKSBmdW5jdGlvbnMgdG8gX2dldF9nX3ZhbHVlX2FycmF5KCkgYW5kIHJlaW50cm9kdWNlCgkgIHRoZSBmb3JtZXIgdG8gb3BlcmF0ZSBvbiBwbGFpbiB1bmJveGVkIGMgZGF0YXR5cGVzIChsaWtlIGluIDAuMTApLiBUaGUgX2dfdmFsdWUKCSAgdmFyaWFudHMgYXJlIGZvciBiaW5kaW5ncyB3aGlsZSB0aGUgX3ZhbHVlIG9uZXMgYXJlIG1vcmUgc3VpdGVkIHRvIHByb2Nlc3NpbmcKCSAgaW4gZWxlbWVudHMuCgoyMDEyLTA0LTI1IDE4OjExOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBpbnNhbml0eSwgaW5zYW5pdHktZ3N0IGFuZCBnc3QtZWRpdGluZy1zZXJ2aWNlcwoKMjAxMi0wNC0yNSAwOTowNjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IFJlc2V0IHRoZSBidWZmZXIgYmVmb3JlIHJlbGVhc2luZyBpbnRvIHBvb2wKCSAgUmVzZXQgdGhlIGJ1ZmZlciBub3QgYWZ0ZXIgd2UgYWNxdWlyZSBidXQgYmVmb3JlIHdlIHJlbGVhc2UgaW50byB0aGUgcG9vbC4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgdGhlIHBvb2wgb25seSBoYXMgYnVmZmVycyBpbiBhIGNsZWFuIHN0YXRlIGFuZCB0aGF0IHdlIGNhbiBzZXQKCSAgZXh0cmEgbWV0YWRhdGEgb24gYnVmZmVycyBpbiB0aGUgYWNxdWlyZSBtZXRob2QuIHRoaXMgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvCgkgIHJlbW92ZSBhbiBhcmd1bWVudCBmcm9tIHRoZSBtZXRob2QuCgoyMDEyLTA0LTIzIDE1OjMyOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IE1BUktFUiBpcyBmb3IgdGhlIHN0YXJ0IG9mIGEgdGFsa3NwdXJ0CgoyMDEyLTA0LTI0IDE2OjAxOjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwbHVnIHNvbWUgbGVha3MKCjIwMTItMDQtMjMgMTc6MDQ6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG8gbm90IHVucmVmIGZsdXNoX3N0YXJ0IHR3aWNlCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoyMDEyLTA0LTIzIDE2OjU3OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZWZyZXNoIHNraXAgZm9sbG93aW5nIG1lcmdlX3VwIGF0dGVtcHQKCSAgLi4uIGFzIHRoZSBsYXR0ZXIgbWlnaHQgbm93IGFkanVzdCBza2lwIGFzIHdlbGwuCgoyMDEyLTA0LTIzIDA5OjE4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bSBsaXN0CgkgIFRoaXMgY29tbWEgY29uZnVzZXMgc29tZSBjb21waWxlcnMuCgoyMDEyLTA0LTE4IDE1OjMxOjIzICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogUmVtb3ZlIHVubmVlZGVkIHVubG9jawoKMjAxMi0wNC0xOCAwNToxMjo1NSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBoYXJkY29kZWQgMC4xMCB2ZXJzaW9uIGluIHdpbjMyIHBsdWdpbnNjYW5uZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDI5NAoKMjAxMi0wNC0xNyAxNTozNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogYWRkIExPQ0tFRCBmbGFnCgkgIEFkZCBhIG5ldyBMT0NLRUQgZmxhZyB0byB0aGUgbWV0YWRhdGEuIFJlZnVzZSByZW1vdmluZyBMT0NLRUQgbWV0YWRhdGEgZnJvbQoJICBhIGJ1ZmZlci4KCSAgTWFyayB0aGUgbWV0YWRhdGEgZnJvbSB0aGUgYnVmZmVycG9vbCBMT0NLRUQuCgkgIEFkZCB1bml0IHRlc3QgZm9yIExPQ0tFRCBmbGFnCgoyMDEyLTA0LTE3IDE0OjM4OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkgIGNvbGxlY3RwYWRzMjogcmVuYW1lIHRvIGNvbGxlY3RwYWRzCgoyMDEyLTA0LTE3IDEyOjU0OjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgd3JpdGFibGUgaGVhZCBidWZmZXIgYmVmb3JlIHNraXBwaW5nIHBhcnQgb2YgaXQKCjIwMTItMDQtMTcgMTI6Mjk6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMi0wNC0xNyAxMjoyMzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFsd2F5cyByZWNvcmRpbmcgaW5jb21pbmcgc2VnbWVudCBpbmZvIGlmIG5vIGJ1ZmZlcl9mdW5jIHNldAoKMjAxMi0wNC0xNyAxMDozODowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiB1cGRhdGUgdGhlIGRlYnVnIGFuZCB0cmFjZSBlbnYgdmFyIGRvY3MKCjIwMTItMDQtMTcgMTA6MzM6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IHVzZSBnX3BhcnNlX2RlYnVnX3N0cmluZyBpbnN0ZWFkIG9mIGF0b2kKCSAgTWFrZSB0aGUgR1NUX1RSQUNFIGVudiB2YXJpYWJsZSB0YWtlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncwoJICBkZXNjcmliaW5nIHRoZSBvcHRpb25zIHRvIGVuYWJsZSBpbnN0ZWFkIG9mIGEgbnVtYmVyLgoKMjAxMi0wNC0xNiAyMToxNDoxNyArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJZiBydW5uaW5nIHdpdGggLS1wcmludC1hbGwsIGZpeCBwcmludGluZyBvZiB0aGUgQ2hpbGRyZW46IGxpbmUKCjIwMTItMDQtMTYgMjE6MTQ6MDIgKzAwMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSWYgcnVubmluZyB3aXRoIC0tcHJpbnQtYWxsLCBmaXggcHJpbnRpbmcgb2Ygc2lnbmFsIG5hbWVzCgoyMDEyLTA0LTE2IDE2OjM2OjUyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgY29sbGVjdHBhZHMyIEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDQtMTYgMTY6Mjk6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMi0wNC0xNiAxNjoyNDoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IHByb3ZpZGUgcXVlcnkgZGVmYXVsdCBhbmQgY2FsbGJhY2sgaGFuZGxpbmcKCSAgLi4uIHdoaWNoIHByZXNlbnRseSBtYWlubHkgc2VydmVzIHRvIGFuc3dlciBTRUVLSU5HIHF1ZXJ5IG5lZ2F0aXZlbHkKCSAgdG8gZGlzc3VhZGUgdXBzdHJlYW0gZW5jb2RlcnMgZnJvbSBkb2luZyBhbnkgc2Vla2luZyBhbmQKCSAgImhlYWRlciBmaW5hbGl6YXRpb24iIChzaW5jZSB0aGUgcmV0dXJuZWQgcmVzdWx0IG9mIHB1c2hpbmcgYQoJICBzdGlja3kgZXZlbnQgaXMgZmFpcmx5IHVzZWxlc3Mgbm93YWRheXMpLgoKMjAxMi0wNC0xNiAxNjoyNDoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IG1vZGlmeSBldmVudCBoYW5kbGluZyB1c2luZyBhIGRlZmF1bHQgZXZlbnQgaGFuZGxlcgoJICAuLi4gdGhhdCBlbGVtZW50cyBzaG91bGQgImNoYWluIHVwIiB0by4KCjIwMTItMDQtMTYgMTU6MzU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgc2VnbWVudDogYWRkIHJ1ZGUgc2VyaWFsaXphdGlvbgoJICBBc3Mgc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBmdW5jdGlvbnMgZm9yIEdzdFNlZ21lbnQgc28gdGhhdCBnZHAgYW5kCgkgIGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nIHNob3cgdGhlIHNlZ21lbnQgdmFsdWVzLiBXZSBjb252ZXJ0IHRvIGEgR3N0U2VnbWVudAoJICBmaXJzdCB0byBtYWtlIHRoaW5ncyBlYXNpZXIuLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc0MTAwCgoyMDEyLTAyLTAzIDE3OjA4OjM1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogYXNzdW1lIDAgYmFzZWQgc2VnbWVudCBpZiBubyB0aW1lIHNlZ21lbnQgd2FzIHByb3ZpZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkzMDUKCjIwMTItMDQtMTYgMTA6Mjg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIHNpemUgdG8gZGVidWcgbG9nCgoyMDEyLTA0LTE2IDEwOjI3OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTZXQgc2VxdWVuY2UgbnVtYmVyIG9uIHNlZ21lbnQgZXZlbnRzCgoyMDEyLTA0LTE2IDEwOjIyOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGb3J3YXJkIGFsbCBzdGlja3kgZXZlbnRzIHdoZW4gc3dpdGNoaW5nIHBhZHMKCjIwMTItMDQtMTYgMTA6MDU6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBTdG9yZSBwYWQgc3RhdGUgZGlyZWN0bHkgaW5zaWRlIHRoZSBwYWRzIGluc3RlYWQgb2YgR09iamVjdCBxZGF0YQoKMjAxMi0wNC0xNiAwOTo0NToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2VuZCByZWNvbmZpZ3VyZSBldmVudCBvbiB0aGUgbmV3IGFjdGl2ZSBwYWQgd2hlbiBwYWRzIGFyZSBzd2l0Y2hlZAoKMjAxMi0wNC0xNiAwOTowODo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZkYjI1YmUgdG8gZGM3MDIwMwoKMjAxMi0wNC0xNCAwMzoyNzoyOSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBSZW1vdmUgc2tpcHBlZCBwYXJ0IG9mIGJ1ZmZlciB3aGVuIG1hcHBpbmcgdGhlIGFkYXB0ZXIKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDA4NQoKMjAxMi0wNC0xNCAxMDoyNDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgYWRhcHRlciB0ZXN0CgkgIFRlc3QgcGVyZm9ybWFuY2Ugb2YgbWVyZ2luZwoKMjAxMi0wNC0xNCAxMDoyMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA0LTEzIDE0OjIyOjM0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGdzdF9zaW5nbGVfcXVldWVfZmx1c2ggdW5sb2NrcyB0aGUgcXVldWUgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDA0NAoKMjAxMi0wNC0xMyAxMzozNjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogTW9kZXJuaXplIGF1dG90b29scyBzZXR1cCBhIGJpdAoJICBBbHNvIHdlIG5vdyBvbmx5IGNyZWF0ZSB0YXIuYnoyIGFuZCB0YXIueHogdGFyYmFsbHMuCgoyMDEyLTA0LTEzIDEzOjM2OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDY0ZmUxNSB0byA2ZGIyNWJlCgoyMDEyLTA0LTEzIDExOjU4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTA0LTEzIDA4OjEwOjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBvbmx5IHRha2UgYSB3ZWFrIHJlZiBvbiB0aGUgb2JqZWN0CgkgIEZpeGVzIHRoZSBsZWFrcyBpbiB0aGUgdGVzdHMuIEFkZGVkIGEgVE9ETyBjb21tZW50IHRvIGV2ZW50dWFsbHkgcmV3b3JrIHRoaXMKCSAgc29tZSBtb3JlICh3aGlsZSB3ZSBjYW4pLgoKMjAxMi0wNC0xMiAxODoxNToyNyAtMDQwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9AY29sbGFib3JhLmNvbT4KCgkqIEFuZHJvaWQubWs6CgkgIFN5bmMgQW5kcm9pZC5tayBlbnRyaWVzIHRvIHRoZSBuZXcgbWFqb3IgdmVyc2lvbgoJICBDaGFuZ2UgbmFtaW5nIG9uIHRoZSBwa2djb25maWcgZmlsZXMgdG8gcmVmbGVjdAoJICB0aGUgMC4xMCAtPiAxLjAgYnVtcC4KCjIwMTItMDQtMTIgMTQ6NTk6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgZGlzcG9zZS9maW5hbGl6ZQoJICBBdm9pZHMgbGVha3MKCjIwMTItMDQtMTIgMTQ6NTk6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpc3RlbmN5Y2hlY2tlcjogVXNlIGdzdF9vYmplY3Rfe3JlZnx1bnJlZn0gd2hlcmUgYXBwbGljYWJsZQoJICBBbGxvd3MgdXMgdG8gZGVidWcgb2JqZWN0IGxpZmUKCjIwMTItMDQtMTIgMTQ6NTg6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBnc3Q6IFVzZSBnc3Rfb2JqZWN0X3tyZWZ8dW5yZWZ9IHdoZXJlIGFwcGxpY2FibGUKCSAgQWxsb3dzIHVzIHRvIGRlYnVnIG9iamVjdCBsaWZlCgoyMDEyLTA0LTEyIDExOjUzOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgYXJnIGNoZWNraW5nCgkgIEFsbG93IGlkeCA9PSAwIGFuZCBsZW5ndGggPT0gLTEgb24gZW1wdHkgYnVmZmVycyBmb3IgdGhlIF9yYW5nZSBtZXRob2RzLgoKMjAxMi0wNC0xMiAxMToxODoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTAgPT09CgoyMDEyLTA0LTEyIDA5OjU3OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTAKCjIwMTItMDQtMTIgMDk6NTY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA0LTExIDEzOjIwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWVyZ2UgZXJyb3IKCjIwMTItMDQtMTEgMTI6NTg6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgYnVmZmVyIHRvIE5VTEwgYmVmb3JlIHB1bGwKCjIwMTItMDQtMTEgMTI6NTQ6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IHBvcnQgcXVldWUyIHRlc3RzIHRvIDAuMTEKCjIwMTItMDQtMTEgMTI6NTA6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dG9jLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYwoKMjAxMi0wNC0xMSAxMjozNDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2lnbmFsIGRlbGV0ZSBiZWZvcmUgd2FpdGluZwoJICBXaGVuIHdlIGRvbid0IGhhdmUgdGhlIHJlcXVlc3RlZCBkYXRhIGluIHRoZSByaW5nYnVmZmVyIGFuZCB3ZSBtb3ZlIG91ciByZWFkCgkgIHBvaW50ZXIgdG8gdGhlIHJlcXVlc3RlZCBwb3NpdGlvbiwgc2lnbmFsIHRoZSBkZWxldGUgY29uZCB0byBpbmZvcm0gdGhlIHdyaXRlcgoJICB0aGF0IHdlIGNoYW5nZWQgdGhlIGN1cnJlbnQgZmlsbCBsZXZlbC4gSWYgd2UgZG9uJ3QsIHRoZSB3cml0ZXIgbWlnaHQgc3RheQoJICBibG9ja2VkIGFuZCB3ZSBtaWdodCB3YWl0IGZvcmV2ZXIuCgoyMDEyLTA0LTExIDEyOjE1OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHRlc3QgZm9yIHJpbmdidWZmZXIgZGVhZGxvY2sKCjIwMTItMDQtMTEgMTI6MDI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBjdXJyZW50IHJlYWQgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcKCSAgV2hlbiB3ZSBkb24ndCBoYXZlIGVub3VnaCBieXRlcyBpbiB0aGUgcmluZ2J1ZmZlciB0byBzYXRpc2Z5IHRoZSBjdXJyZW50CgkgIHJlcXVlc3QsIGZpcnN0IHVwZGF0ZSB0aGUgY3VycmVudCByZWFkIHBvc2l0aW9uIGJlZm9yZSB3YWl0aW5nLiBJZiB3ZSBkb24ndCBkbwoJICB0aGF0LCB0aGUgcmluZ2J1ZmZlciBtaWdodCBhcHBlYXIgZnVsbCBhbmQgdGhlIHdyaXRlciB3aWxsIG5ldmVyIHdyaXRlIG1vcmUKCSAgYnl0ZXMgdG8gd2FrZSB1cyB1cC4KCjIwMTItMDQtMTEgMTI6MDA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCByYW5nZSBvbmx5IG9uIHNpbmtwYWQKCSAgT25seSBhZGQgdGhlIHJhbmdlIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQgb24gdGhlIHNpbmtwYWQuIFRoZSBhZGRfcmFuZ2UKCSAgbWV0aG9kIHdpbGwgbW9kaWZ5IHRoZSB3cml0ZSBwb3NpdGlvbiwgd2hpY2ggb25seSBtYWtlcyBzZW5zZSB0byBkbyBvbiB0aGUKCSAgc2lua3BhZC4KCjIwMTItMDQtMTEgMTE6NTU6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBkZWJ1ZyBtZXNzYWdlCgkgIFdlJ3JlIG5vdCB3cml0aW5nIHRvIHRoZSBvZmZzZXQgb2YgdGhlIGJ1ZmZlcgoKMjAxMi0wNC0xMSAxMTo1NToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkX3JhbmdlIGFscmVhZHkgdXBkYXRlcyB0aGUgbGV2ZWwKCjIwMTItMDQtMTAgMTQ6MTE6MjYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyB3aGlsZSBjb3B5aW5nIGNvbnRlbnQKCjIwMTItMDQtMTAgMTQ6MTg6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTY6NTAgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTg6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTY6NTAgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyBpbiB1bml0IHRlc3QKCjIwMTItMDQtMTAgMTQ6MTE6MjYgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZml4IG1lbW9yeSBsZWFrcyB3aGlsZSBjb3B5aW5nIGNvbnRlbnQKCjIwMTItMDQtMTAgMTk6Mzk6NTggKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBDbGVhbiB1cCBoZWFkZXIgZmlsZXMKCjIwMTItMDQtMTAgMTY6MDc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMTAgMTY6MDQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNsZWFyIHNlZWtpbmcgZmxhZyBpbiBhbGwgY2FzZXMKCSAgQWxzbyBjbGVhciB0aGUgc2Vla2luZyBmbGFnIHdoZW4gZG93bnN0cmVhbSBpcyBpbiBwdWxsIG1vZGUuCgoyMDEyLTA0LTEwIDEyOjU1OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdC5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMTAgMTI6NDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIHRvYyBlbnRyeSByZWYvdW5yZWYKCjIwMTItMDQtMTAgMTI6MDk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBzZWVraW5nIGZsYWcgd2l0aCB0aGUgcXVldWUgbG9jawoKMjAxMi0wNC0xMCAxMToyMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogS2VlcCB0cmFjayBvZiB0aGUgc2Vla2luZyBzdGF0ZQoJICBTZXQgdGhlIHNlZWtpbmcgZmxhZyByaWdodCBiZWZvcmUgd2Ugc2VuZCBhIHNlZWsgZXZlbnQgdXBzdHJlYW0gYW5kIGRpc2NhcmQgYWxsCgkgIGRhdGEgdW50aWxsIHdlIHNlZSBhIGZsdXNoLXN0b3AgYWdhaW4uIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIHdlIGFjdGl2YXRlCgkgIHRoZSByYW5nZSB0aGF0IHdlIHNlZWsgdG8gaW1tZWRpYXRlbHkgYWZ0ZXIgc2VuZGluZyB0aGUgc2VlayBldmVudCBhbmQgaXQgaXMKCSAgcG9zc2libGUgdGhhdCB3ZSByZWNlaXZlIGRhdGEgaW4gb3VyIGNoYWluIGZ1bmN0aW9uIGZyb20gYmVmb3JlIHRoZSBzZWVrCgkgIHdoaWNoIHdvdWxkIHRoZW4gYmUgYWRkZWQgdG8gdGhlIHdyb25nIHJhbmdlIHJlc3VsdGluZyBpbiBkYXRhIGNvcnJ1cHRpb24uCgoyMDEyLTA0LTEwIDExOjE2OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBtYWtlIHJhbmdlIG9uIG5ld3NlZ21lbnQgZm9yIHJpbmdidWZmZXIKCSAgV2hlbiB1c2luZyB0aGUgcmluZ2J1ZmZlciwgaGFuZGxlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGxpa2Ugd2UgaGFuZGxlIGl0IHdoZW4KCSAgdXNpbmcgdGhlIHRlbXAtZmlsZSBtb2RlOiBjcmVhdGUgYSBuZXcgcmFuZ2UgZm9yIHRoZSBuZXcgYnl0ZSBzZWdtZW50LiBUaGUgbmV3CgkgIHNlZ21lbnQgc2hvdWxkIG5vcm1hbGx5IGFscmVhZHkgYmUgY3JlYXRlZCB3aGVuIHdlIGRvIGEgc2Vlay4KCjIwMTItMDQtMDkgMTY6NDI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA5IDE2OjQwOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCB1c2UgYnVmZmVyIGFmdGVyIHB1c2hpbmcgaXQgZG93bnN0cmVhbQoKMjAxMi0wNC0wOSAxNjowNDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCjIwMTItMDQtMDkgMTU6NTg6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRmFpbCBpZiBhIHBhZCBmb3IgYSBub24tcmVxdWVzdCB0ZW1wbGF0ZSBpcyByZXF1ZXN0ZWQKCjIwMTItMDQtMDkgMTM6NDA6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBlbGVtZW50OiB1c2UgcXVhcmtzIHdoZW4gc3RvcmluZyBzdGFuZGFyZCBtZXRhZGF0YSBpbiBzdHJ1Y3R1cmVzCgoyMDEyLTA0LTA5IDEzOjA1OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBwbHVnaW5zOiB1c2UgbmV3IGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoKMjAxMi0wNC0wOSAxMjo0Nzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX3tzZXQsYWRkfV9zdGF0aWNfbWV0YWRhdGEoKQoJICBBZGQgZ3N0X2VsZW1lbnRfY2xhc3Nfe2FkZCxzZXR9X21ldGFkYXRhKCkgdmFyaWFudHMgZm9yIHN0YXRpYyBzdHJpbmdzLAoJICBzbyB3ZSBjYW4gYXZvaWQgdW5uZWNlc3NhcnkgZ19zdHJkdXAoKXMuCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3N0YXRpY19tZXRhZGF0YSgpCgkgIEFQSTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X3N0YXRpY19tZXRhZGF0YSgpCgoyMDEyLTA0LTA4IDIxOjE3OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJICB0YXNrOiByZW1vdmUgZ3N0X3Rhc2tfc2V0X3ByaW9yaXR5KCkKCSAgSXQgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZy4KCjIwMTItMDEtMTQgMDA6MzE6MzIgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiB3aW4zMi92czEwL0NvbW1vbi5wcm9wczoKCSogd2luMzIvdnMxMC9MaWJyYXJ5LnByb3BzOgoJKiB3aW4zMi92czEwL1BsdWdpbi5wcm9wczoKCSogd2luMzIvdnMxMC9SZWFkTWUudHh0OgoJKiB3aW4zMi92czEwL1Rvb2wucHJvcHM6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvYmFzZS9iYXNlLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvajoKCSogd2luMzIvdnMxMC9jb250cm9sbGVyL2NvbnRyb2xsZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dlbmVyYXRlZC9nZW5lcmF0ZWQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdC1pbnNwZWN0L2dzdC1pbnNwZWN0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtbGF1bmNoL2dzdC1sYXVuY2gudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdC10eXBlZmluZC9nc3QtdHlwZWZpbmQudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3Rjb3JlZWxlbWVudHMvZ3N0Y29yZWVsZW1lbnRzLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyLnNsbjoKCSogd2luMzIvdnMxMC9nc3RyZWFtZXIvZ3N0cmVhbWVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvbmV0L25ldC52Y3hwcm9qOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvai5maWx0ZXJzOgoJICB3aW4zMjogYWRkIFZTIDEwIFByb2plY3QgZmlsZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjIxOQoKMjAxMi0wNC0wOCAxODoyNTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGZvciB2ZXJzaW9uIGNoYW5nZXMKCjIwMTItMDQtMDcgMTY6MzU6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA3IDE2OjA2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBUT0MgQVBJIHRvIGxpYmdzdHJlYW1lci5kZWYKCSAgRml4ZXMgJ21ha2UgY2hlY2snLgoKMjAxMi0wNC0wNyAxNjowNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGFkZCBuZXcgdG9jIHRlc3QgYmluYXJpZXMgdG8gLmdpdGlnbm9yZQoKMjAxMi0wNC0wNyAxNjowNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSAgZ3N0OiBkb24ndCBleHBvcnQgcHJpdmF0ZSBUT0MgZnVuY3Rpb25zCgoyMDEyLTA0LTA3IDE1OjQyOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RhdG9taWNxdWV1ZS5jCgoyMDEyLTAyLTI0IDE1OjI0OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggcmFjZQoJICBBZnRlciBhIHdyaXRlciBoYXMgd3JpdHRlbiB0byBpdHMgcmVzZXJ2ZWQgd3JpdGUgbG9jYXRpb24sIGl0IGNhbiBvbmx5IG1ha2UgdGhlCgkgIGxvY2F0aW9uIGF2YWlsYWJsZSBmb3IgcmVhZGluZyBpZiBhbGwgb2YgdGhlIHdyaXRlcnMgd2l0aCBsb3dlciBsb2NhdGlvbnMgaGF2ZQoJICBmaW5pc2hlZC4KCjIwMTItMDItMjQgMTI6NTE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IGZpeCBzdWJ0bGUgcmFjZQoJICBGaXggYSByYWNlIHdoZXJlIHRoZSByZWFkZXIgd291bGQgc2VlIHRoZSB1cGRhdGVkIHRoZSB0YWlsIHBvaW50ZXIgYmVmb3JlIHRoZQoJICB3cml0ZSBjb3VsZCB3cml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBxdWV1ZS4gRml4IHRoaXMgYnkgaGF2aW5nIGEgc2VwYXJhdGUgcmVhZGVyCgkgIHRhaWwgcG9pbnRlciB0aGF0IGlzIG9ubHkgaW5jcmVtZW50ZWQgYWZ0ZXIgdGhlIHdyaXRlciB3cm90ZSB0aGUgZGF0YS4KCjIwMTItMDQtMDcgMTU6MjA6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHNldCBkZWZhdWx0IGJsb2NrIHNpemUgZnJvbSBsb2NhbCBkZWZpbmUKCSAgRG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgdGhlIGRlZmF1bHQgdmFsdWUsIGp1c3QgbWFrZXMgdXNlIG9mIHRoZQoJICBkZWZpbmUgdGhlcmUgaXMuIFN1cGVyZmljaWFsIHRlc3Rpbmcgd2l0aCBmYWtlc2luayBhbmQganBlZ2RlYyBkaWQKCSAgbm90IHJldmVhbCBpbXByb3ZlZCBwZXJmb3JtYW5jZSBmb3IgYmlnZ2VyIGJsb2NrIHNpemVzLCBzbyBsZWF2ZQoJICBkZWZhdWx0IGFzIGl0IGlzLgoKMjAxMi0wNC0wNiAxNjo0Njo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgdXBkYXRlIHRoZSBjdXJyZW50IHJlYWRpbmdfcG9zIGluIGZsdXNoCgkgIEEgZmx1c2ggZnJvbSB0aGUgdXBzdHJlYW0gZWxlbWVudCBzaG91bGQgbm90IG1ha2UgYnVmZmVyaW5nIGdvIHRvIDAsIHRoZSBuZXh0CgkgIHB1bGwgcmVxdWVzdCBtaWdodCBiZSBpbnNpZGUgYSByYW5nZSB0aGF0IHdlIGhhdmUgYW5kIHRoZW4gd2UgZG9uJ3QgbmVlZCB0bwoJICBidWZmZXIgYXQgYWxsLiBJZiB0aGUgbmV4dCBwdWxsIGlzIG91dHNpZGUgYW55dGhpbmcgd2UgaGF2ZSwgYnVmZmVyaW5nIHdpbGwKCSAgaGFwcGVuIGFzIHVzdWFsIGFueXdheS4KCjIwMTItMDQtMDYgMTI6NDI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmb3IgbWVyZ2VkIGNoYW5nZXMKCjIwMTItMDQtMDYgMTI6Mzc6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTAnCgoyMDEyLTA0LTA2IDEyOjMyOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjaGVjayB0aGUgcGFkIG1vZGUgb24gdGhlIHJpZ2h0IHBhZAoKMjAxMi0wNC0wNiAxMjoyNDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZm9yd2FyZCBmbHVzaCBldmVudHMgY29ycmVjdGx5CgkgIFdlIHdhbnQgdG8gZm9yd2FyZCB0aGUgZmx1c2ggZXZlbnRzIHJlY2VpdmVkIG9uIHRoZSBzaW5rcGFkIHdoZW5ldmVyIHRoZSBzcmNwYWQKCSAgaXMgYWN0aXZhdGVkIGluIHB1c2htb2RlLCB3aGljaCBjYW4gYWxzbyBoYXBwZW4gd2hlbiB1c2luZyB0aGUgUklOR0JVRkZFUiBvcgoJICBET1dOTE9BRCBtb2RlIGFuZCBkb3duc3RyZWFtIGZhaWxlZCB0byBhY3RpdmF0ZSB1cyBpbiBwdWxsIG1vZGUuCgoyMDEyLTA0LTA1IDIxOjU2OjA1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiBjaGFpbiB1cCBvbiBkaXNwb3NlIGFuZCBmaW5hbGl6ZQoKMjAxMi0wNC0wNSAyMTo1NTowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiB1bnBhcmVudCB0aGUgY29udHJvbGJpbmRpbmcgb24gZGlzcG9zZQoKMjAxMi0wNC0wNSAyMTowNzo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogZHVwIHRoZSBvYmplY3RzIHRvIGF2b2lkIHByZW1hdHVyZSBmcmVlcwoKMjAxMi0wNC0wNSAyMTowNjoxNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIGZpbmFsaXplciBmb3IgdGhlIHRlc3QgY29udHJvbGJpbmRpbmdzCgkgIE5vIGlkZWEgd2h5IHZhbGdyaW5kIHN0aWxsIGluaXN0cyB0aGF0IHRoZXJlIGFyZSBsZWFrcy4KCjIwMTItMDQtMDUgMTg6NDI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3ZmRhNTI0IHRvIDQ2NGZlMTUKCjIwMTItMDQtMDUgMTg6MDI6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGdzdDogVXBkYXRlIGZvciBHU1RfUExVR0lOX0RFRklORSgpIEFQSSBjaGFuZ2VzCgoyMDEyLTA0LTA1IDE0OjE3OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBnc3Q6IENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBHU1RfUExVR0lOX0RFRklORSgpIHRvIG5vdCB0YWtlIGEgc3RyaW5nIGFueW1vcmUKCSAgVGhpcyB3aWxsIGJlIG5lZWRlZCB3aGVuIHdlIGxhdGVyIGFkZCBzdXBwb3J0IGZvciBzdGF0aWMgbGlua2luZwoJICBvZiBwbHVnaW5zIHdpdGhvdXQgaW50cm9kdWNpbmcgbmV3IEFQSSBvciBjaGFuZ2luZyBleGlzdGluZyBBUEkuCgoyMDEyLTA0LTA1IDEzOjIzOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZ3N0cGx1Z2luOiBBZGQgaGFjayBmb3IgaGFuZGxpbmcgMC4xMS45WCBhbmQgMC4xMS44OS5YIHdpdGggWD4wIHRoZSBzYW1lIGFzIDEuMC4wCgkgIEFsc28gdXBkYXRlIHRoZSB2ZXJzaW9uIG51bWJlciB0byAwLjExLjg5LjEKCjIwMTItMDQtMDUgMTI6MjI6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGNsZWFyIG11dGV4IHVwb24gZnJlZQoKMjAxMi0wNC0wNSAxMDo1NjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgcmVnaXN0cnk6IFNldCByZWdpc3RyeSB2ZXJzaW9uIHRvIDEuMC4wIHRvbwoKMjAxMi0wNC0wNSAxMDozNjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTA1IDEwOjAzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzdG9wIHdhaXRpbmcgZm9yIG1vcmUgZGF0YSBhZnRlciBFT1MKCSAgV2hlbiB3ZSBoYXZlIEVPUywgcmVhZCB0aGUgcmVtYWluaW5nIGJ5dGVzIGluIHRoZSBidWZmZXIgYW5kIG1ha2Ugc3VyZSB3ZSBkb24ndAoJICB3YWl0IGZvciBtb3JlIGRhdGEuIEFsc28gY2xpcCB0aGUgb3V0cHV0IGJ1ZmZlciB0byB0aGUgYW1vdW50IG9mIHJlbWFpbmluZwoJICBieXRlcy4KCjIwMTItMDQtMDUgMDk6NTY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNoZWNrIGZvciBmaWxsZWQgYnVmZmVyIGNvcnJlY3RseQoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIG1vZGUsIHRoZSBidWZmZXIgaXMgZmlsbGVkIHdoZW4gd2UgcmVhY2hlZCB0aGUKCSAgbWF4X2xldmVsLmJ5dGVzIG1hcmsgb3IgdGhlIHRvdGFsIHNpemUgb2YgdGhlIHJpbmdidWZmZXIsIHdoaWNoZXZlciBpcyBzbWFsbGVyLgoKMjAxMi0wNC0wNCAxMzowNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgd2FpdGluZyBmb3IgYSBmaWxsZWQgYnVmZmVyCgkgIFVzZSBhIHRocmVzaG9sZCB2YXJpYWJsZSB0byBob2xkIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQgcG9zaXRpb24KCSAgZm9yIHdpdGggd2Ugd2lsbCB3YWl0IGluc3RlYWQgb2YgZG9pbmcgYSBzZWVrLgoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIGFuZCB0aGUgcmVxdWVzdGVkIG9mZnNldCBpcyBub3QgYXZhaWxhYmxlLCBhdm9pZAoJICB3YWl0aW5nIHVudGlsIHRoZSBjb21wbGV0ZSByaW5nYnVmZmVyIGlzIGZpbGxlZCBidXQgaW5zdGVhZCBkbyBhIHNlZWsgd2hlbiB0aGUKCSAgcmVxdWVzdGVkIGRhdGEgaXMgZnVydGhlciB0aGFuIHRoZSB0aHJlc2hvbGQuCgkgIEF2b2lkIGRvaW5nIHRoZSBzZWVrIHR3aWNlIGluIHRoZSByaW5nYnVmZmVyIGNhc2UuCgkgIFVzZSB0aGUgc2FtZSB0aHJlc2hvbGQgZm9yIHJpbmdidWZmZXIgYW5kIGRvd25sb2FkIGJ1ZmZlcmluZy4KCjIwMTItMDQtMDUgMDk6MDc6MTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBjb21waWxlIHdhcm5pbmcKCjIwMTItMDQtMDQgMTM6MTM6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZ3N0OiBDaGFuZ2UgdmVyc2lvbmluZwoJICBSZW1vdmUgR1NUX01BSk9STUlOT1IgYW5kIHJlcGxhY2UgaXQgYnkgR1NUX0FQSV9WRVJTSU9OCgkgIEFsc28gc2V0IEdTVF9WRVJTSU9OX3tNQUpPUixNSU5PUixNSUNSTyxOQU5PfSBleHBsaWNpdGVseQoJICBub3cuCgkgIEFsbCB2ZXJzaW9ucyBhcmUgYXQgMS4wLjAgbm93IGZvciB0aGUgcmVsZWFzZSBzb29uIGJ1dAoJICBBUEkvQUJJIGNhbiBzdGlsbCBjaGFuZ2UgdW50aWwgdGhlIDEuMC4wIHJlbGVhc2UuCgkgIE5leHQgcmVsZWFzZSB2ZXJzaW9ucyB1bnRpbCAxLjAuMCB3aWxsIGJlIDAuMTAuOVggYW5kCgkgIHRoZXNlIHdpbGwgYmUgcmVsZWFzZSBjYW5kaWRhdGVzLiBHU1RfVkVSU0lPTl8qIHdpbGwKCSAgbm9uZXRoZWxlc3Mgc3RheSBhdCAxLjAuMC4wLgoKMjAxMi0wNC0wNCAxMjoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmMKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0cXVhcmsuYwoJICBnc3QvZ3N0cXVhcmsuaAoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0dG9jLmMKCSAgZ3N0L2dzdHRvYy5oCgkgIGdzdC9nc3R0b2NzZXR0ZXIuYwoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmMKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jCgoyMDEyLTA0LTAzIDE2OjUxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgX3NldF9zaXplKCkKCjIwMTItMDQtMDMgMTY6NDQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbWFrZSBnZXRfc2l6ZXMgYW5kIF9yZXNpemUgd2l0aCByYW5nZXMKCSAgTWFrZSB0aGUgX2dldF9zaXplcyBhbmQgX3Jlc2l6ZSBtZXRob2RzIHdvcmsgb24gYSByYW5nZSBvZiBtZW1vcnkgdG8gbWFrZSB0aGVtCgkgIG1vcmUgcG93ZXJmdWxsLgoKMjAxMi0wNC0wMyAxODoyNTo0MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhbGxvdyBzb21lIG1vcmUgZXZlbnRzIGJlZm9yZSBhIHNlZ21lbnQgZXZlbnQKCjIwMTItMDQtMDMgMTU6NDY6MjkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogdXNlIG5ldyBnbGliIG11dGV4IGFwaQoKMjAxMi0wNC0wMiAyMzoxNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBnc3QtbGF1bmNoLmM6IEluIGZ1bmN0aW9uIOKAmHByaW50X3RvY19lbnRyeeKAmToKCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdGhlIHNpemUgb2YgYXJyYXkg4oCYc3Bj4oCZIGNhbuKAmXQgYmUgZXZhbHVhdGVkIFstV2Vycm9yPXZsYV0KCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdmFyaWFibGUtc2l6ZWQgb2JqZWN0IG1heSBub3QgYmUgaW5pdGlhbGl6ZWQKCjIwMTItMDQtMDIgMjM6Mjk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBhZGQgbmV3IHVuaXQgdGVzdCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDEyLTA0LTAyIDIzOjI4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudHJ5IGVudW0gdHlwZXMKCSAgRml4ZXMgJ21ha2UgY2hlY2snLCBhZ2Fpbi4KCjIwMTItMDQtMDIgMjM6MjQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCSAgRml4ZXMgJ21ha2UgY2hlY2snLgoKMjAxMi0wNC0wMiAyMzoyMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZG9uJ3QgZXhwb3J0IHByaXZhdGUgZnVuY3Rpb25zCgoyMDEyLTA0LTAyIDIzOjE3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdC1sYXVuY2guYzogSW4gZnVuY3Rpb24g4oCYcHJpbnRfdG9jX2VudHJ54oCZOgoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB0aGUgc2l6ZSBvZiBhcnJheSDigJhzcGPigJkgY2Fu4oCZdCBiZSBldmFsdWF0ZWQgWy1XZXJyb3I9dmxhXQoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZAoKMjAxMi0wNC0wMiAyMzoxNjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxMi0wNC0wMiAyMzowMToxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInCgoyMDEyLTA0LTAyIDIyOjA5OjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvYzogcG9ydCB0byAwLjExCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMiAyMToxNTowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdHF1YXJrLmMKCSAgZ3N0L2dzdHF1YXJrLmgKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0KCjIwMTItMDQtMDIgMTU6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMi0wNC0wMiAxNToxMzoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsd2F5cyBhdHRlbXB0IHRvIHB1c2ggaWYgbm90LWxpbmtlZAoJICBUaGlzIGF2b2lkcyBlbmRpbmcgdXAgd2l0aCBwbGVudHkgb2YgcGVuZGluZyBkYXRhIChzaW5jZSB3ZSdsbCBvbmx5CgkgIHRyeSB0byBwYXJzZS9wdXNoIG9uZSBmcmFtZSBmcm9tIHRoZSBpbmNvbWluZyBidWZmZXIpLgoJICBGaXhlcyBpbmNyZWFzaW5nIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHBhcnNlcnMgYXJlbid0IGxpbmtlZAoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTItMDQtMDIgMTU6MTM6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHdheXMgYXR0ZW1wdCB0byBwdXNoIGlmIG5vdC1saW5rZWQKCSAgVGhpcyBhdm9pZHMgZW5kaW5nIHVwIHdpdGggcGxlbnR5IG9mIHBlbmRpbmcgZGF0YSAoc2luY2Ugd2UnbGwgb25seQoJICB0cnkgdG8gcGFyc2UvcHVzaCBvbmUgZnJhbWUgZnJvbSB0aGUgaW5jb21pbmcgYnVmZmVyKS4KCSAgRml4ZXMgaW5jcmVhc2luZyBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBwYXJzZXJzIGFyZW4ndCBsaW5rZWQKCjIwMTItMDQtMDEgMDM6MzA6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaW1lb3V0IGlzIG5vdCB1c2VkIG9uIFczMgoJICBGaXhlcyAjNjczMjY3CgoyMDEyLTA0LTAyIDExOjA5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICB0cmFuczogYWRkIHRyYW5zZm9ybV9pcF9vbl9wYXNzdGhyb3VnaAoJICBBZGQgYW4gb3B0aW9uIHRvIGNvbnRyb2wgaWYgdHJhbnNmb3JtX2lwIGlzIGNhbGxlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIG9yIG5vdC4KCSAgZm9yIGVsZW1lbnRzIHRoYXQgZG9uJ3Qgd2FudCB0byBsb29rIGF0IHRoZSBkYXRhIGluIHBhc3N0aHJvdWdoIG1vZGUsIHRoaXMgY2FuCgkgIGF2b2lkIHNvbWUgZXh0cmEgcHJvY2Vzc2luZywgbW9zdGx5IGluIHN1YmNsYXNzZXMuCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMSAxMjowMTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZXVzZSBtb3JlIGNvZGUKCjIwMTItMDQtMDEgMTE6NDI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtYWtlIGZ1bmN0aW9uIHRvIGZpbmQgbWVtb3J5IGluIGEgYnVmZmVyCgkgIE1ha2UgYSBmdW5jdGlvbiB0byBmaW5kIHRoZSBtZW1vcnkgYmxvY2tzIGZvciBhIHJlZ2lvbiBpbiBhIGJ1ZmZlci4KCjIwMTItMDMtMzEgMjE6MjY6MjIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggbW9yZSBtaXNzaW5nIEdTVF9PQkpFQ1QgLT4gR19PQkpFQ1QgdXNlCgoyMDEyLTAzLTMxIDE4OjM0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBidWZmZXJfd3JhcAoKMjAxMi0wMy0zMSAxNzoxMDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgcGVla19tZW1vcnkgbWV0aG9kCgkgIEFkZCBhIHBlZXJrX21lbW9yeSBtZXRob2QgdGhhdCBzaW1wbHkgZmV0Y2hlcyB0aGUgbWVtb3J5IGF0IGFuIG9mZnNldCB3aXRob3V0CgkgIHJlZmNvdW50aW5nIG9yIG1lcmdpbmcuCgoyMDEyLTAzLTMxIDEyOjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3JhbW1hci55OiBmaXggY2hpbGRwcm94eSBjb2RlCgkgIEl0IHRha2VzIEdPYmplY3QgYW5kIG5vdCBHc3RPYmplY3Qgbm93CgoyMDEyLTAzLTMwIDIyOjQ2OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBpbmNsdWRlIHRoZSBjaGlsZCBuYW1lIGluIHRoZSBzaWduYWwKCjIwMTItMDMtMzAgMjI6NDQ6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IHVwZGF0ZSBmb3IgY2hpbGRwcm94eSBhcGkgY2hhbmdlcwoKMjAxMi0wMy0zMCAyMjozNjozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBzaWduYWwgcGFyYW1ldGVyIHR5cGVzCgoyMDEyLTAzLTMwIDIyOjE3OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiB1c2UgR09iamVjdCBpbnN0ZWFkIG9mIEdzdE9iamVjdAoJICBUaGlzIG1ha2VzIGl0IHByb3NzaWJsZSB0byBiZSB1c2VkIG1vcmUgd2lkZWx5LiBGaXggaW1wbGVtZW50YXRpb25zIGZvciB0aGUgQVBJCgkgIGNoYW5nZS4KCjIwMTItMDMtMzAgMjI6MDE6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBtYWtlIGdldF9jaGlsZF9ieV9uYW1lIHZpcnR1YWwKCSAgQWxsb3dzIGltcGxlbWVudGF0aW9ucyB0byB1c2UgY3VzdG9tIG5hbWUtPm9iamVjdCBtYXBwaW5ncy4KCjIwMTItMDMtMzAgMjI6MDE6MjYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggaW5kZW50YXRpb24KCjIwMTItMDMtMzAgMTg6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGltcHJvdmUgdGhlIGJ1ZmZlciBtZW1vcnkgbWV0aG9kcwoJICBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5IC0+IGdzdF9idWZmZXJfaW5zZXJ0X21lbW9yeSBiZWNhdXNlIGluc2VydCBpcyB3aGF0IHRoZQoJICBtZXRob2QgZG9lcy4KCSAgTWFrZSBhbGwgbWV0aG9kcyBkZWFsIHdpdGggcmFuZ2VzIHNvIHRoYXQgd2UgY2FuIHJlcGxhY2UsIG1lcmdlLCByZW1vdmUgYW5kIG1hcAoJICBhIGNlcnRhaW4gc3Vic2V0IG9mIHRoZSBtZW1vcnkgaW4gYSBidWZmZXIuIFdpdGggdGhlIG5ldyBtZXRob2RzIHdlIGNhbiBtYWtlCgkgIHNvbWUgY29kZSBuaWNlciBhbmQgcmV1c2UgbW9yZSBjb2RlLiBCZWluZyBhYmxlIHRvIGRlYWwgd2l0aCBhIHN1YnNldCBvZiB0aGUKCSAgYnVmZmVyIG1lbW9yeSBhbGxvd3MgdXMgdG8gb3B0aW1pemUgbW9yZSBjYXNlcyBsYXRlciAobW9zdCBub3RhYmx5IFJUUCBoZWFkZXJzCgkgIGFuZCBwYXlsb2FkIHRoYXQgY291bGQgYmUgaW4gZGlmZmVyZW50IG1lbW9yeSBvYmplY3RzKS4KCSAgTWFrZSBzb21lIG1vcmUgY29udmVuaWVudCBtYWNyb3MgdGhhdCBjYWxsIHRoZSBtb3JlIGdlbmVyaWMgcmFuZ2UgbWV0aG9kcy4KCjIwMTItMDMtMzAgMTY6NTM6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBwbHVnIGNhcHMgbGVha3MKCjIwMTItMDMtMzAgMTY6NTM6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogYWxzbyB1bm1hcCBjb2xsZWN0ZWQgbWFwcGVkIGJ1ZmZlcnMKCjIwMTItMDMtMzAgMTY6NTM6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTAzLTMwIDExOjU4OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogUmVuYW1lIDo6ZXZlbnQoKSB0byA6OnNpbmtfZXZlbnQoKSBmb3IgY29uc2lzdGVuY3kKCjIwMTItMDMtMzAgMTE6NDk6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzaW5rOiBsb3dlciBHU1RfQkFTRV9TUkNfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0zMCAwODo1NTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlCgoyMDEyLTAzLTI5IDE4OjAzOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBY3R1YWxseSBjb21taXQgdGhlIC5jIGZpbGUgY2hhbmdlcyB0b28KCjIwMTItMDMtMjkgMTc6NTk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bmNoZWNrZWQvaW5saW5lIHZhcmlhbnQgb2YgZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMi0wMy0yOSAxNzo1Mzo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IEZpeCBhbm5vdGF0aW9uCgoyMDEyLTAzLTI5IDE3OjQ0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZsdXNoIHRoZSBpbnRlcm5hbCBxdWV1ZSB3aGVuIHdlIHNlZSBHU1RfRkxPV19GTFVTSElORwoJICBFbnN1cmVzIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHdpdGggc3RhbGUgY29udGVudHMgKGxpa2UgR3N0UXVlcnkpIGluCgkgIHRoZSBpbnRlcm5hbCBHUXVldWUgYWZ0ZXIgYW55IGJsb2NraW5nIHVwc3RyZWFtIHRocmVhZCByZXR1cm5zLgoKMjAxMi0wMy0yOSAxNzo0MzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCB1bnJlZiBHc3RRdWVyeSB0cmF2ZWxsaW5nIHRocm91Z2ggdGhlIHF1ZXVlCgkgIFVubGlrZSBldmVudHMgYW5kIGJ1ZmZlcnMsIHRoZSByZWZlcmVuY2UgaXMgbm90IGdpdmVuIHRvIHVzCgoyMDEyLTAzLTI5IDE3OjA4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcGFyc2luZyBhbGxvY2F0aW9uIHF1ZXJ5IG5lZWQgbm90IHByb3ZpZGUgcmVmZmVkIGNhcHMKCSAgLi4uIGluIGxpbmUgd2l0aCBvdGhlciBxdWVyeSBwYXJzaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMy0yOSAxNTo0NTowMCArMDIwMCAgRmFicml6aW8gKE1pc3RvKSBNaWxvIDxtaXN0b2JhYW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BlbGxpbmcgZml4ZXMKCjIwMTItMDMtMjkgMTU6Mjg6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0ZWxlbWVudDogbG93ZXIgR1NUX0VMRU1FTlRfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0yOSAxNToxODozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgZ2NjIDQuNSBjb21wbGFpbnMgb3RoZXJ3aXNlIDooCgoyMDEyLTAzLTI5IDE0OjU0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jCgoyMDEyLTAzLTI5IDE0OjQ1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIGFsbCBub3QtbGlua2VkIHN0cmVhbXMgd2hlbiBhIHN0cmVhbSBzd2l0Y2hlcyBmcm9tIGxpbmtlZCB0byBub3QtbGlua2VkCgkgIFdlIHJlc2V0IGFsbCB0aGUgd2FpdGluZyBzdHJlYW1zLCBsZXQgdGhlbSBwdXNoIGFub3RoZXIgYnVmZmVyIHRvCgkgIHNlZSBpZiB0aGV5J3JlIG5vdyBhY3RpdmUgYWdhaW4uIFRoaXMgYWxsb3dzIGZhc3RlciBzd2l0Y2hpbmcKCSAgYmV0d2VlbiBzdHJlYW1zIGFuZCBwcmV2ZW50cyBkZWFkbG9ja3MgaWYgZG93bnN0cmVhbSBkb2VzIGFueQoJICB3YWl0aW5nIHRvby4KCSAgQWxzbyBpbXByb3ZlIGxvY2tpbmcgYSBiaXQsIHNyY3Jlc3VsdCBtdXN0IGJlIHByb3RlY3RlZCBieSB0aGUKCSAgbXVsdGlxdWV1ZSBsb2NrIHRvbyBiZWNhdXNlIGl0J3MgdXNlZC9zZXQgZnJvbSByYW5kb20gdGhyZWFkcy4KCjIwMTItMDMtMjkgMTQ6MzI6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlY29tcHV0ZSBoaWdoLXRpbWUgdG9vIHdoZW4gZmx1c2hpbmcsIG5vdCBvbmx5IGhpZ2gtaWQKCjIwMTItMDMtMjkgMTM6Mzk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgd2FpdCB1bnRpbCB0aGUgYWN0aXZlIHBhZCdzIHJ1bm5pbmcgdGltZSBpcyByZWFjaGVkIGlmIHRoZSBhY3RpdmUgcGFkIGFscmVhZHkgc2F3IGRhdGEKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGJsb2NrIGZvcmV2ZXIgYmVjYXVzZSB1cHN0cmVhbSAoZS5nLiBtdWx0aXF1ZXVlKSBpcyB3YWl0aW5nCgkgIGZvciB0aGUgcHJldmlvdXNseSBhY3RpdmUgc3RyZWFtIHRvIHJldHVybiBmb3JldmVyICh3aGljaCBpcyB3YWl0aW5nIGhlcmUKCSAgaW4gaW5wdXRzZWxlY3RvcikgYmVmb3JlIHB1c2hpbmcgc29tZXRoaW5nIG9uIHRoZSBuZXdseSBzZWxlY3RlZCBzdHJlYW0uCgoyMDEyLTAzLTI5IDEzOjM0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogdXBkYXRlIG1vcmUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMy0yOCAxODoxMjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2aWV3IHNvbWUgZG9jcwoKMjAxMi0wMy0yOCAxNjo0NDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBzaW1wbGlmeSBhbmQgcmVmYWN0b3IgX3NwYW4gYW5kIF9tZXJnZQoJICBVbmlmeSB0aGUgX3NwYW4gYW5kIF9tZXJnZSBjb2RlIHBhdGhzIGFuZCBzaW1wbGlmeSBub3cgdGhhdCB3ZSBvbmx5IHVzZSB0aGlzCgkgIGludGVybmFsbHkuCgoyMDEyLTAzLTI4IDE1OjE2OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHdlIGFsd2F5cyBjYWxsIF9zcGFuIHdpdGggdGhlIGJ1ZmZlciBzaXplCgoyMDEyLTAzLTI4IDE1OjEyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1vdmUgc29tZSBjb2RlIGFyb3VuZAoKMjAxMi0wMy0yOCAxNTowODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB3ZSBjYWxsIF9zcGFuIGFsd2F5cyB3aXRoIDAgb2Zmc2V0CgoyMDEyLTAzLTI4IDEzOjA4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSBhbHdheXMgRkFMU0UgZnVuY3Rpb24gYXJndW1lbnQKCjIwMTItMDMtMjggMTY6Mzk6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRlbGF5IGJ1ZmZlciB1bnJlZiB1bnRpbCBidWZmZXIgbm8gbG9uZ2VyIG5lZWRlZAoKMjAxMi0wMy0yOCAxMjo0NDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IHVuaWZ5IGJ1ZmZlciBtZXJnZSBtZXRob2RzCgkgIEFkZCBnc3RfYnVmZmVyX2FwcGVuZCgpIHdoaWNoIGFwcGVuZHMgdGhlIG1lbW9yeSBibG9ja3MgZnJvbSBvbmUgYnVmZmVyIHRvCgkgIGFub3RoZXIuIFJlbW92ZSB0aGUgb2xkIGluZWZmaWNpZW50IF9tZXJnZSgpIGFuZCBfam9pbigpIG1ldGhvZHMgd2hpY2ggZm9yY2VkIGEKCSAgcHJlbWF0dXJlIG1lbWNweSBpbiBtb3N0IGNhc2VzLgoJICBSZW1vdmUgdGhlIF9pc19zcGFuKCkgYW5kIF9zcGFuKCkgbWV0aG9kcyB0aGV5IGFyZSBub3QgbmVlZGVkIGFueW1vcmUgbm93IHRoYXQKCSAgd2UgY2FuIF9hcHBlbmQoKS4gTWVyZ2luZyBhbmQgc3Bhbm5pbmcgd2lsbCBiZSBkZWxheWVkIHVudGlsIG1hcHBpbmcgb3IgbWF5YmUKCSAgbm90IGF0IGFsbCB3aGVuIHRoZSBlbGVtZW50IGNhbiBkZWFsIHdpdGggdGhlIGRpZmZlcmVudCBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToxNjo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZS1lbmFibGUgX3NwYW4gb2Zmc2V0IGNhbGN1bGF0aW9ucwoJICB3aGVuIHdlIF9zcGFuIHR3byBjb21wbGV0ZSBidWZmZXJzLCB3ZSBjYW4gY29weSBvZmZzZXRzIGFuZCB0aW1lc3RhbXBzLgoKMjAxMi0wMy0yNyAxNTowMDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogYWRkIHJlZmNvdW50IHRvIHRyYWNlIGRlYnVnCgoyMDEyLTAzLTI3IDE0OjU5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIF9pc193cml0YWJsZSBjaGVja3MKCSAgQWRkIHNvbWUgY2hlY2tzIHRvIGFzc2VydCBvbiB3cml0YWJpbGl0eSBmb3IgZnVuY3Rpb25zIHRoYXQgbW9kaWZ5IG1ldGFkYXRhLgoKMjAxMi0wMy0yNyAxMjo0MDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHJlbW92ZSBjb25zdCBmcm9tIGdldC9zZXRfcGFyYW0KCSAgUmVtb3ZlIHRoZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzIGluIGdldC9zZXRfcGFyYW0uIHNldF9wYXJhbSBtb2RpZmllcwoJICB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMuCgkgIERvbid0IGluY3JlbWVudCB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMgcmVzdWx0IG9mIGdldF9wYXJhbSBsaWtlIHdlCgkgIGRvIHdpdGggb3RoZXIgb2JqZWN0cy4KCSAgVXBkYXRlIHNvbWUgYW5ub3RpYXRpb25zLgoKMjAxMi0wMy0yNyAxMjozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBhbm5vdGF0aW9uIGZvciBfcmVsZWFzZQoJICBfcmVsZWFzZSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlcgoKMjAxMi0wMy0yNyAxMjozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBDaGFuZ2UgdGhlIHRpbWVvdXQgYXJndW1lbnQgdHlwZSBvZiBnc3RfYnVzX3BvbGwoKSBmcm9tIEdzdENsb2NrVGltZURpZmYgdG8gR3N0Q2xvY2tUaW1lCgkgIFRoaXMgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIEdzdEJ1cyBtZXRob2RzIHRoYXQgaGF2ZSBhIHRpbWVvdXQuCgoyMDEyLTAzLTI2IDE5OjEzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIG9sZCBjb2RlCgkgIFJlbW92ZSBhdHRlbXB0IHRvIGRlbGF5IF9tYWtlX3dyaXRhYmxlCgoyMDEyLTAzLTI2IDE4OjA3OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGVuc3VyZSB3cml0YWJsZSBjYXBzIHByaW9yIHRvIG1vZGlmaWNhdGlvbgoKMjAxMi0wMy0yNiAxNzozODo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGNoZWNrIG1pbi9tYXhfYnVmZmVycwoKMjAxMi0wMy0yNiAxNzozNToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTpmaXggY29weS1hbmQtcGFzdGUgcHJvYmxlbQoKMjAxMi0wMy0yNiAxMTo1NDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIFJlcGxhY2UgbWFzdGVyIHdpdGggMC4xMQoKMjAxMi0wMy0yMyAxODo1MTo1MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFkZCBhbmQgaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlcwoJICAuLi4gc28gdGhleSBlbmQgdXAgaW4gYSBtb3JlIGV4cGVjdGVkIGRlYnVnIGNhdGVnb3J5IHJhdGhlciB0aGFuIG9ibGl2aW9uLgoKMjAxMi0wMy0yMiAxNTo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbAoKMjAxMi0wMy0yMiAxNTo0OTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QtYnVpbGQuc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjExLjMKCjIwMTItMDMtMjIgMTU6MjI6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBhdXRvbWF0aWMgYW5kIHVuZG9jdW1lbnRlZCBzZXR0aW5nIG9mIGFsd2F5c19pbl9wbGFjZQoJICAuLi4gd2hpY2ggY29udHJvbHMgaG93IHRvIChmb3JjaWJseSkgZGVhbCB3aXRoIChub24tKXdyaXRhYmxlIGRhdGEgYW5kCgkgIGlzIG5vdCBuZWNlc3NhcmlseSByZWxhdGVkIHRvIGlkZW50aWNhbCBjYXBzLgoJICBJbiBwYXJ0aWN1bGFyLCBpdCBpcyBhbHNvIG5vdCBzbyBoZWxwZnVsIGFueW1vcmUgd2l0aCBhIG1vcmUgYWR2YW5jZWQKCSAgR3N0VmlkZW9GaWx0ZXIgc3ViY2xhc3Mgd2hpY2ggYWx3YXlzIGhhcyBhIHRyYW5zZm9ybV9pcCBtZXRob2QgY3VycmVudGx5LAoJICBldmVuIHRob3VnaCBpdHMgc3ViY2xhc3MgbWF5IG5vdCBoYXZlIGEgY29ycmVzcG9uZGluZyBfaXAgbWV0aG9kLgoKMjAxMi0wMy0yMiAxMDo0NTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTItMDMtMjIgMDg6MzU6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHNoYWRvdyBnbG9iYWwgdmFyaWFibGUKCjIwMTItMDMtMjEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgZGlzdCBuZXQgZGlyZWN0b3J5IG9ubHkgb25jZQoKMjAxMi0wMy0yMSAwOTowMDo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IE9ubHkgYWxsb3cgZml4ZWQgY2FwcyBpbiB0aGUgYWNjZXB0LWNhcHMgcXVlcnkKCjIwMTItMDMtMjAgMTc6MDg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIHF1ZXJpZXMgbW9yZSBkaXJlY3RseQoJICBKdXN0IGNhbGwgb3VyIGludGVybmFsIHF1ZXJ5IGZ1bmN0aW9uIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGUgcGFkIGFuZCB0aGUKCSAgcXVlcnkgaGFuZGxlciBldGMuCgoyMDEyLTAzLTIwIDE3OjA4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGRlYnVnCgoyMDEyLTAzLTIwIDEzOjE0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGFkOiBpbXByb3ZlIGRvY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UKCSAgSW1wcm92ZSB0aGUgZG9jcyBvZiB0aGUgZ2V0L3B1bGxfcmFuZ2UgZnVuY3Rpb25zLCBkZWZpbmUgdGhlIGxpZmV0aW1lIG9mIHRoZQoJICBidWZmZXIgaW4gY2FzZSBvZiBlcnJvcnMgYW5kIHNob3J0IHJlYWRzLgoJICBNYWtlIHN1cmUgdGhlIGNvZGUgZG9lcyB3aGF0IHRoZSBkb2NzIHNheS4KCjIwMTItMDMtMjAgMTA6MjA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHdyYXAgYWxsIGtpbmRzIG9mIG1lbW9yeSBieSBleHBvc2luZyBhbGwgcHJvcGVydGllcyB0bwoJICBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhbHNvIGNyZWF0ZSB3cml0YWJsZQoJICBtZW1vcnkgd2l0aG91dCBhIGZyZWUgZnVuY3Rpb24gb3IgbWVtb3J5IHdpdGggZXh0cmEgcGFkZGluZy4KCjIwMTItMDMtMTkgMTE6NDU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNiAyMjo1MToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDMtMTYgMjI6MjU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc21hbGwgY2xlYW51cHMKCjIwMTItMDMtMTYgMjE6Mzc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHBhZDogY2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UgYSBsaXR0bGUKCSAgTWFrZSBpdCBzbyB0aGF0IG9uZSBjYW4gc3BlY2lmeSBhIGJ1ZmZlciBmb3IgZ2V0L3B1bGxfcmFuZ2Ugd2hlcmUgdGhlIGRvd25zdHJlYW0KCSAgZWxlbWVudCBzaG91bGQgd3JpdGUgaW50by4gV2hlbiBwYXNzaW5nIE5VTEwsIHVwc3RyZWFtIHNob3VsZCBhbGxvY2F0ZSBhIGJ1ZmZlciwKCSAgbGlrZSBpbiAwLjEwLgoJICBXZSBhbHNvIG5lZWQgdG8gY2hhbmdlIHRoZSBwcm9iZXMgYSBsaXR0bGUgYmVjYXVzZSBiZWZvcmUgdGhlIHB1bGwgcHJvYmUsIHRoZXJlCgkgIGNvdWxkIGFscmVhZHkgYmUgYSBidWZmZXIgcGFzc2VkLiBUaGlzIHRoZW4gYWxsb3dzIHVzIHRvIHVzZSB0aGUgc2FtZSBQUk9CRQoJICBtYWNybyBmb3IgYmVmb3JlIGFuZCBhZnRlciBwdWxsaW5nLgoJICBXaGlsZSB3ZSdyZSBhdCB0aGUgcHJvYmVzLCBtYWtlIHRoZSBxdWVyeSBwcm9iZSBtb3JlIHBvd2VyZnVsIGJ5IGhhbmRsaW5nIHRoZQoJICBHU1RfUEFEX1BST0JFX0RST1AgcmV0dXJuIHZhbHVlLiBSZXR1cm5pbmcgX0RST1AgZnJvbSBhIHF1ZXJ5IHByb2JlIHdpbGwgbm93CgkgIHJldHVybiBUUlVFIHVwc3RyZWFtIGFuZCB3aWxsIG5vdCBmb3J3YXJkIHRoZSBwcm9iZSB0byB0aGUgcGVlciBvciBoYW5kbGVyLgoJICBBbHNvIGhhbmRsZSBfRFJPUCBmb3IgZ2V0L3B1bGxfcmFuZ2UgcHJvcGVybHkgYnkgbm90IGRpc3BhdGNoaW5nIHRvIHRoZQoJICBwZWVyL2hhbmRsZXIgb3IgYnkgZ2VuZXJhdGluZyBFT1Mgd2hlbiB0aGUgcHJvYmUgcmV0dXJucyBEUk9QIGFuZCBubyBidWZmZXIuCgkgIE1ha2UgZmlsZXNyYyBoYW5kbGUgdGhlIG5vbi1OVUxMIGJ1ZmZlciBwYXNzZWQgaW4gdGhlIGdldF9yYW5nZSBmdW5jdGlvbiBhbmQKCSAgc2tpcCB0aGUgYWxsb2NhdGlvbiBpbiB0aGF0IGNhc2UsIHdyaXRpbmcgZGlyZWN0bHkgaW50byB0aGUgZG93bnN0cmVhbSBwcm92aWRlZAoJICBidWZmZXIuCgkgIFVwZGF0ZSB0ZXN0cyBiZWNhdXNlIG5vdyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBub3QgcGFzcyBhIHJhbmRvbSB2YWx1ZSBpbiB0aGUKCSAgYnVmZmVyIHBvaW50ZXIgdG8gZ2V0L3B1bGxfcmFuZ2UKCjIwMTItMDMtMTYgMjE6MzY6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMy0xNiAxODozOTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGRvY3MgYSBsaXR0bGUsIGFsbG9jX2J1ZmZlciBpcyBnb25lCgoyMDEyLTAzLTE1IDIyOjA5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IHNwbGl0IGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbgoJICBNYWtlIHNlcGFyYXRlIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYnVmZmVycG9vbCBhbmQgdGhlIGFsbG9jYXRvciB1c2VkIGJ5IHRoZQoJICBidWZmZXJwb29sLgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgYWxsb2NhdG9yIG9mIGEgcG9vbC4KCjIwMTItMDMtMTUgMjA6MjM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiByZXdvcmsgdGhlIEFMTE9DQVRJT04gcXVlcnkKCSAgU2VwYXJhdGUgdGhlIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBoaW50cyBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSwgc29tZQoJICBvZiB0aGUgdmFsdWVzIGRvbid0IGFsd2F5cyBtYWtlIHNlbnNlIHRvZ2V0aGVyLgoJICBLZWVwIHRoZSBidWZmZXJwb29sIGFuZCBpdHMgY29uZmlndXJhdGlvbiB0b2dldGhlci4KCSAgS2VlcCB0aGUgYWxsb2NhdG9yIGFuZCBpdHMgcGFyYW1ldGVycyB0b2dldGhlci4KCSAgQWxsb3cgZm9yIG11bHRpcGxlIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbnMgaW4gdGhlIHF1ZXJ5LgoKMjAxMi0wMy0xNSAxNjo1MDozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjb21tZW50IGFuZCBkZWJ1ZyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xNSAxNjo0OTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSBkZWJ1ZwoJICBhbHNvIGZpeCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhawoKMjAxMi0wMy0xNSAxNDoyODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDMtMTUgMTQ6MDE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIEdzdEJ1ZmZlclBvb2xQYXJhbXMgLT4gR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMKCSAgQmVjYXVzZSB0aG9zZSBmbGFncyBhcmUgbm90IGZyb20gdGhlIGJ1ZmZlcnBvb2wgYnV0IGZvciB0aGUgYWNxdWlyZSBmdW5jdGlvbi4KCjIwMTItMDMtMTUgMTM6Mjg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGdyb3VwIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBhIHN0cnVjdAoJICBHcm91cCB0aGUgZXh0cmEgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIGEgR3N0QWxsb2NhdGlvblBhcmFtcyBzdHJ1Y3R1cmUgdG8gbWFrZQoJICBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIHRoZW0gYW5kIHNvIHRoYXQgd2UgY2FuIGV4dGVuZCB0aGVtIGxhdGVyIGlmIG5lZWRlZC4KCSAgTWFrZSBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpIHRha2UgdGhlIEdzdEFsbG9jYXRpb25QYXJhbXMgZm9yIGFkZGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgkgIEFkZCBib3hlZCB0eXBlIGZvciBHc3RBbGxvY2F0aW9uUGFyYW1zLgoKMjAxMi0wMy0xNSAwMDoyNTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBvbmx5IHVwZGF0ZSBidWZmZXIgc2l6ZSBvbiBzaG9ydCByZWFkCgoyMDEyLTAzLTE1IDAwOjI0OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggY29weSBmdW5jdGlvbgoJICBDb3B5IHRoZSBzdHJ1Y3R1cmUgdG9vLgoKMjAxMi0wMy0xNSAwMDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbWF4c2l6ZSBhZnRlciBhbGlnbgoJICB3aGVuIHdlIGFsaWduIHRoZSBkYXRhIHBvaW50ZXIsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIG1heHNpemUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDMtMTQgMjI6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiByZW1vdmUgdXNlbGVzcyBQUk9YWV9BTExPQ0FUSU9OIGZsYWcKCjIwMTItMDMtMTQgMjE6MzI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEFkZCAwIHBhZGRpbmcKCSAgQ2hhbmdlIGdzdF9hbGxvY2F0b3JfYWxsb2MoKSBzbyB0aGF0IHdlIGNhbiBhbHNvIHNwaWNpZnkgZmxhZ3MgYW5kIHBhZGRpbmcuCgkgIEFkZCAyIG5ldyBmbGFncyB0byBtYXJrIHRoZSBtZW1vcnkgMCBwcmVmaXhlZC9wYWRkZWQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHJlbW92ZSBzb21lIHJlc2l6ZXMgaW4gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgV2hlbiBhbGxvY2F0aW5nIG1lbW9yeSwgbWVtc2V0IHByZWZpeCBhbmQgcGFkZGluZyB3aXRoIDAgd2hlbiB0aGUgZmxhZ3MgdGVsbAoJICB1cyB0by4KCSAgT24gcmVzaXplLCBjbGVhciB0aGUgemVybyBwYWRkaW5nIGZsYWdzIGlmIHdlIGNhbid0IGd1YXJhbnRlZSB0aGUgbWVtb3J5IGlzCgkgIHN0aWxsIDAgZmlsbGVkLgoJICBVcGRhdGUgdGVzdHMuCgoyMDEyLTAzLTE0IDE5OjM3OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IGFsc28gaW5jbHVkZSBwYWRkaW5nIGluIEFMTE9DQVRJT04gcXVlcnkKCSAgTmVnb3RpYXRpbmcgcGFkZGluZyBpcyBuZWVkZWQgb24gc2Vjb25kIHRob3VnaHQgc28gaW5jbHVkZSBpdCBpbiB0aGUKCSAgQUxMT0NBVElPTiBxdWVyeS4KCSAgTWFrZSB0aGUgYnVmZmVycG9vbCB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZy4KCSAgTWFrZSBiYXNlc3JjIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQuCgkgIFVzZSBwYWRkaW5nIGFuZCBwcmVmaXggd2hlbiBhbGxvY2F0aW5nIGluIGJhc2V0cmFuc2Zvcm0uCgoyMDEyLTAzLTE0IDE4OjQ1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHRha2UgcHJlZml4IGludG8gYWNjb3VudCB3aGVuIGFsbG9jYXRpbmcKCSAgVGFrZSBpbnRvIGFjY291bnQgdGhlIHByZWZpeCB0aGF0IHdlIHJlY2VpdmVkIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkgYW5kIHVzZQoJICBpdCB0byBhbGxvY2F0ZSBhbmQgcmVzaXplIGEgbGFyZ2VyIGJ1ZmZlci4KCjIwMTItMDMtMTQgMTc6MTY6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZnJlZSBvd25lZCBkaXNjYXJkZWQgcG9vbCBjb25maWcKCjIwMTItMDMtMTQgMTY6Mjc6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgcGFkOiBpbXBsZW1lbnQgRFJBSU4gaGFuZGxpbmcKCSAgV2hlbiB3ZSBmb3J3YXJkIHRoZSBEUkFJTiBxdWVyeSBhbmQgdGhlcmUgaXMgbm90aGluZyB0byBmb3J3YXJkIGl0IHRvLCBhc3N1bWUgd2UKCSAgYXJlIGRyYWluZWQuCgkgIFdoZW4gYSBiYXNlc2luayByZWNlaXZlcyBhIGRyYWluIHF1ZXJ5LCByZXBseSB3aXRoIFRSVUUuCgoyMDEyLTAzLTE0IDE2OjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIG5ldyBkcmFpbiBxdWVyeQoJICBXaXRoIHRoZSBuZXcgc2VyaWFsaXplZCBkb3duc3RyZWFtIHF1ZXJpZXMgd2UgY2FuIGltcGxlbWVudCBhIGRyYWluIHF1ZXJ5IHRoYXQKCSAgbWFrZXMgYW4gZWxlbWVudCB3YWl0cyB1bnRpbCBhIGRvd25zdHJlYW0gZWxlbWVudCByZXBsaWVzIHRvIHRoZSBxdWVyeS4KCjIwMTItMDMtMTQgMTY6MDE6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzZXJpYWxpemVkIHF1ZXJpZXMgcHVzaCBzdGlja3kgZXZlbnRzIGZpcnN0CgkgIEJlZm9yZSB3ZSBjYW4gcHJvY2VlZCB3aXRoIGEgc2VyaWFsaXplZCBxdWVyeSwgd2UgbmVlZCB0byBiZSBzdXJlIHRoYXQgYWxsCgkgIHN0aWNreSBldmVudHMgd2VyZSBwdXNoZWQuCgoyMDEyLTAzLTE0IDE1OjQyOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlczogd2FybiB3aGVuIHJlY2VpdmluZyBhIHNlcmlhbGl6ZWQgZXZlbnQKCSAgLi4gdW50aWwgd2UgaW1wbGVtZW50IGl0LgoKMjAxMi0wMy0xNCAxNTo0MjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToyOToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHN0cmVhbSBsb2NrIG9uIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToxNjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlbmZvcmNlIGNvcnJlY3QgcXVlcnkgZGlyZWN0aW9uCgoyMDEyLTAzLTE0IDE0OjUxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogcmVnaXN0ZXIgcXVlcmllcyBsaWtlIGV2ZW50cwoJICBBbHNvIHJlZ2lzdGVyIHF1ZXJpZXMgd2l0aCBhIFF1ZXJ5VHlwZSB0aGF0IGFsbG93cyB1cyB0byBjaGVjayBpZiB0aGUgZXZlbnQgaXMKCSAgc2VudCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBBZGQgYSBzZXJpYWxpemVkIHF1ZXJ5IHR5cGUgYmVjYXVzZSB3ZSB3aWxsIG5lZWQKCSAgdGhpcyBmb3IgdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIFJlbW92ZSB0aGUgUXVlcnlUeXBlRGVmaW5pdGlvbiBzdHVmZiwgaXQgaXMgbm90IHVzZWQgYW55bW9yZSBhbmQgd2Ugbm93IHVzZQoJICBjdXN0b20gcXVlcmllcyBhbmQgc2VwYXJhdGUgQVBJIGZvciB0aGVtLgoJICBVcGRhdGUgZGVmcy4KCjIwMTItMDMtMTQgMTI6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIG1vcmUgZGVidWcKCjIwMTItMDMtMTMgMTU6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21wYXQgbW9kZQoKMjAxMi0wMy0xMyAxNTo0MDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvY3MgdXBkYXRlCgoyMDEyLTAzLTEzIDEwOjA0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCkKCSAgUmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCksIHVzZSBnc3RfY2Fwc19tZXJnZSgpLiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgdXNlZAoJICBhbnltb3JlIGFuZCBpdCBpcyB1bmNsZWFyIHdoYXQgdGhlIGRpZmZlcmVuY2UgaXMgd2l0aCBfbWVyZ2UoKS4KCjIwMTItMDMtMTIgMjM6MDU6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgQVNfTElCVE9PTCB2ZXJzaW9uCgkgIEFQSSB3YXMgYWRkZWQgdG8gY29sbGVjdHBhZHMyCgoyMDEyLTAzLTEyIDIzOjAyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrcG9ydCBBU19MSUJUT09MIHZlcnNpb24gZnJvbSAwLjEwLjM2IHJlbGVhc2UKCSAgTWlnaHQgZml4IGlzc3VlcyB3aXRoIG1pc3Npbmcgc3ltYm9scyBmb3IgcGVvcGxlIHdobyBpbnN0YWxsIEdTdHJlYW1lcgoJICBmcm9tIHNvdXJjZSBhbmQgYXQgc29tZSBwb2ludCBqdW1wZWQgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBnaXQgbWFzdGVyCgkgIGFuZCB0aGUgMC4xMC4zNiByZWxlYXNlIChvciAwLjEwLiBicmFuY2gpLgoKMjAxMi0wMy0xMiAyMzowODowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGRvY3M6IGZpeCBmdW5jdGlvbiBuYW1lIGFuZCB0eXBvCgoyMDEyLTAzLTEyIDE5OjUyOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGdldCB0ZW1wbGF0ZSBjYXBzIG9ubHkgb25jZQoJICBHZXQgdGhlIHRlbXBsYXRlIGNhcHMgb2YgdGhlIHBhZHMgb25seSBvbmNlLCBhdm9pZHMgdW5lY2Vzc2FyeSByZWYKCSAgYW5kIHVucmVmcy4KCjIwMTItMDMtMTIgMTg6MzQ6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBkZWxheSBfbWFrZV93cml0YWJsZSgpIHVudGlsIG5lZWRlZCBpbiBfbm9ybWFsaXplKCkKCSAgRGVsYXkgX21ha2Vfd3JpdGFibGUoKSB1bnRpbCB3ZSBhY3R1YWxseSBmb3VuZCBhIGxpc3QgYW5kIG5lZWQgdG8gdXBkYXRlIHRoZQoJICBjYXBzLgoKMjAxMi0wMy0xMiAxODoyNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNob3J0Y3V0IHNpbXBsaWZ5IGVhcmxpZXIKCSAgQSBzaW1wbGUgY2FwcyBpcyBhbHJlYWR5IHNpbXBsaWZpZWQsIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGZpeGVkbmVzcy4KCjIwMTItMDMtMTIgMTg6MjI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwLCByZW1vdmUgY29uc3QKCjIwMTItMDMtMTIgMTg6MDI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wMy0xMiAxNjo0MDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvYyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xMiAxNjoxODo0NSArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjMxLjE0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE5MTEKCjIwMTItMDMtMTIgMTM6NTA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmctdG8tMC4xMS50eHQgYSBsaXR0bGUKCjIwMTItMDMtMTIgMTI6MzU6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggc29tZSAwLjExIEZJWE1FcwoKMjAxMi0wMy0xMiAxMjoyMTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1ha2UgX25vcm1hbGl6ZSB0YWtlIG93bmVyc2hpcCBvZiBpbnB1dAoJICBNYWtlIGdzdF9jYXBzX25vcm1hbGl6ZSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBzbyB0aGF0IGl0IGNhbiBtb3JlCgkgIGludGVsbGlnZW50bHkgZGVjaWRlIHdoZW4gdG8gY29weSBvciBub3QuCgoyMDEyLTAzLTEyIDExOjM4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IF9kb19zaW1wbGlmeSgpIC0+IF9zaW1wbGlmeSgpCgkgIFJlbmFtZSBfZG9fc2ltcGxpZnkoKSB0byBfc2ltcGxpZnkoKS4gVGhlIG5hbWUgd2FzIGludHJvZHVjZWQgYXMgYSByZXBsYWNlbWVudAoJICBtZXRob2QgZm9yIGEgZGVwcmVjYXRlZCBtZXRob2QgYnV0IHdlIGNhbiBub3cgcmVuYW1lIGl0IGFnYWluLgoJICBGaXggc29tZSBkb2NzLgoKMjAxMi0wMy0xMiAxMDo0MjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBfZG9fc2ltcGxpZnkKCSAgTWFrZSBnc3RfY2Fwc19kb19zaW1wbGlmeSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBjYXBzIGFuZCBwcm9kdWNlIGEKCSAgc2ltcGxpZmllZCBvdXRwdXQgY2Fwcy4gVGhpcyByZW1vdmVzIHRoZSByZXF1aXJlbWVudCBvZiBoYXZpbmcgd3JpdGFibGUgaW5wdXQKCSAgY2FwcyBhbmQgdGhlIG1ldGhvZCBjYW4gbWFrZSB0aGUgY2FwcyB3cml0YWJsZSBvbmx5IHdoZW4gbmVlZGVkLgoKMjAxMi0wMy0xMiAxMDo0MToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCSAgd2l0aCB0aGUgbmV3IGNhcHMgQVBJLCB0aGVyZSBpcyBtb3JlIHNoYXJpbmcgYW5kIGxlc3MgY29weWluZyBnb2luZyBvbiBzbyB0aGUKCSAgdW5pdCB0ZXN0IHJlZmNvdW50cyBhcmUgZGlmZmVyZW50LgoKMjAxMi0wMy0xMiAwOTowMzo0MiArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICB1cGRhdGUgbGljZW5zZSBsaW5rIHRvIHBvaW50IHRvIDIuMSBsaWNlbnNlLCBpbnN0ZWFkIG9mIGp1c3QgZ2VuZXJpYyBsZ3BsIGZpbGUsIHdoaWNoIGlzIGFsd2F5cyB0aGUgbGF0ZXN0IGFuZCB0aHVzIG5vdCBjb3JyZWN0IGZvciBnc3RyZWFtZXIKCjIwMTItMDMtMTEgMTg6NTc6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgdXNpbmcgaW4tcGxhY2Ugb3ByYXRpb25zCgkgIFJld29yayBzb21lIGNhcHMgb3BlcmF0aW9ucyBzbyB0aGV5IGRvbid0IHJlbHkgb24gd3JpdGFibGUgY2FwcyBidXQgaW5zdGVhZCB0YWtlCgkgIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgY2FwcyBhbmQgZG8gX21ha2Vfd3JpdGFibGUoKSBvbmx5IHdoZW4gbmVlZGVkLgoJICBSZW1vdmUgc29tZSBjb25zdCBmcm9tIGNhcHMgZnVuY3Rpb25zLCBpdCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgZm9yCgkgIHJlZmNvdW50ZWQgb2JqZWN0cyBhbmQgZG9lcyBub3QgYWxsb3cgdXMgdG8gcmV0dXJuIGEgcmVmY291bnQgdG8gdGhlIGNvbnN0IGlucHV0CgkgIGNhcHMuCgkgIFJld29yayB0aGUgYmFzZSBjbGFzc2VzIGZpeGF0ZSB2bWV0aG9kcyB0byBub3Qgb3BlcmF0ZSBvbiB0aGUgY2FwcyBpbi1wbGFjZS4KCSAgQWxsIHRoaXMgc2F2ZXMgdXMgYXJvdW5kIDMwJSBvZiBjYXBzIGFuZCBzdHJ1Y3R1cmUgY29weSBhbmQgbmV3IG9wZXJhdGlvbnMuCgoyMDEyLTAzLTExIDE3OjIyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBhbGxvY2F0aW9uIGRlYnVnCgoyMDEyLTAzLTEwIDA5OjI1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiByZW1vdmUgY29uc3QgZnJvbSByZWZjb3VudGVkIEdzdENhcHMKCSAgSGF2aW5nIGNvbnN0IG9uIHJlZmNvdW50ZWQgb2JqZWN0cyByZXF1aXJlIHVzIHRvIG1ha2UgY29waWVzIGluc3RlYWQgb2Ygc2ltcGx5CgkgIHRha2luZyBhIHJlZiwgZG9uJ3QgZG8gdGhhdC4KCjIwMTItMDMtMTAgMDk6MTU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIGNvcHkgd2hlbiBjYXBzIGFyZSBmaXhlZAoJICBBdm9pZCBkb2luZyBhIHVzZWxlc3MgY29weSB3aGVuIHRoZSBjYXBzIGFyZSBmaXhlZCBhbmQgc2ltcGxpZnkgd2lsbCBub3QgZG8KCSAgYW55dGhpbmcuCgoyMDEyLTAzLTA5IDE2OjE0OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHNtYWxsIG9wdGltaXphdGlvbnMKCSAgc2hvcnRjdXQgaGVhdnkgd29yayB3aGVuIGJ1ZmZlcl9yZXNpemUgZG9lcyBub3RoaW5nLgoJICBBdm9pZCBhbiBleHRyYSBfcmVmIHdoZW4gbWFwcGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgR19MSUtFTFkuCgoyMDEyLTAzLTA5IDE1OjAzOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgYnVmZmVycG9vbDogZml4IGFycmF5IHR5cGVzCgoyMDEyLTAzLTA5IDE0OjMwOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wMy0wOSAxMTo1Mzo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhbHNvIHB1c2ggc3RpY2t5IGV2ZW50cyBvbiBuZXcgZXZlbnQKCSAgTWFrZSBhIGhlbHBlciBmdW5jdGlvbiBjaGVja19zdGlja3kgdG8gY2hlY2sgYW5kIHB1c2ggcGVuZGluZyBzdGlja3kgZXZlbnRzLgoJICBNb3ZlIHRoZSBoYW5kbGluZyBvZiB0aGUgcmVzdWx0IG9mIHB1c2hpbmcgdGhlIHN0aWNreSBldmVudCBpbnNpZGUgdGhlCgkgIHB1c2hfZXZlbnQgZnVuY3Rpb24sIHdlIG5lZWQgdG8gbWFyayB0aGUgZXZlbnQgYXMgcmVjZWl2ZWQgd2hlbiBpdCB3YXMgcHVzaGVkCgkgIGNvcnJlY3RseS4KCSAgTW92ZSB0aGUgc3RpY2t5IGV2ZW50cyBjb2RlIG91dHNpZGUgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50X3VuY2hlY2tlZCBhbmQKCSAgbWFrZSBpdCBwdXJlbHkgaGFuZGxlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBwZWVyLgoJICB3aGVuIHB1c2hpbmcgYSBzdGlja3kgZXZlbnQsIGZpcnN0IHN0b3JlIGl0IG9uIHRoZSBwYWQuIFRoZW4gY2hlY2sgYW5kIHB1c2ggYW55CgkgIHBlbmRpbmcgc3RpY2t5IGV2ZW50cyB3aGVuIHdlIGdldCBhIHNlcmlhbGl6ZWQgb3Igc3RpY2t5IGV2ZW50IG9uIGEgc3JjcGFkLiBUaGlzCgkgIGZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzdGlja3kgZXZlbnRzIGFyZSBub3QgcHVzaGVkIHdoZW4gYW4gZXZlbnQgaXMgcHVzaGVkLgoKMjAxMi0wMy0wOSAxMTo1MjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzdG9yZSB0aGUgcmVjZWl2ZWQgcmVzdWx0IGZyb20gX2ZvcmVhY2gKCSAgSWYgdGhlIGZvcmVhY2ggZnVuY3Rpb24gY2hhbmdlcyB0aGUgcmVjZWl2ZWQgc3RhdGUgb2YgdGhlIHN0aWNreSBldmVudCwgbWFrZQoJICBzdXJlIHdlIHJlbWVtYmVyIHRoYXQuCgoyMDEyLTAzLTA5IDExOjUyOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBjb21tZW50CgoyMDEyLTAzLTA5IDExOjQ5OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBhZGQgdGVzdCB0byBjaGVjayBzdGlja3kgZXZlbnRzIG9yZGVyCgkgIFN0aWNreSBldmVudHMgcHVzaGVkIG9uIGFuIHVubGlua2VkIHBhZCBzaG91bGQgYmUgc3RvcmVkIG9uIHRoZSBwYWQuIFdoZW4gdGhlCgkgIHBhZCBpcyB0aGVuIGxpbmtlZCBhbmQgYW4gZXZlbnQgaXMgcHVzaGVkLCB0aGUgZXZlbnQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZQoJICBhbHJlYWR5IGV4aXN0aW5nIHN0aWNreSBldmVudHMgYW5kIHRoZW4gdGhlIHN0aWNreSBldmVudHMgc2hvdWxkIGJlIHB1c2hlZCBpbgoJICB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgb3JpZ2luYWxseSBwdXNoZWQuCgoyMDEyLTAzLTA5IDExOjQ4OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3Q6IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTItMDMtMDggMjA6MDg6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IHBvcnQgcGlwZWxpbmUvc2VlayB0ZXN0IHRvIDAuMTEKCSAgRG9lc24ndCBmYWlsIGluIDAuMTEgb2YgY291cnNlLCBhdCBsZWFzdCBub3Qgb24gbXkgbWFjaGluZS4KCjIwMTItMDMtMDggMTk6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0dGFzay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmgKCjIwMTItMDMtMDggMTY6MzA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBwYWQsIHRhc2s6IGltcHJvdmUgZGVidWcgbG9nZ2luZwoKMjAxMi0wMy0wOCAxNjoyNjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIHBhZHMsIGNvbGxlY3RwYWRzMjogZ2V0IHJpZCBvZiBzdXBlcmZsdW91cyBicmFja2V0cyBhcm91bmQgc3RhdGljIHJlYyBtdXRleCBjYWxscwoJICBNYWtlcyBpdCBwb3NzaWJsZSB0byBkZWZpbmUgdGhvc2UgY2FsbHMgdG8gc29tZXRoaW5nIGZvciB0cmFjaW5nLgoKMjAxMi0wMy0wOCAxNjoyNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGNvbW1vbiBtb2R1bGUKCSAgRm9yIG1ha2UgZm9vL2Jhci5jaGVjay1ub3JlcGVhdCB0YXJnZXQuCgoyMDEyLTAzLTA4IDE1OjIzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IGFkZCBtaW5pbWFsIGJhc2VzcmMgISBzaW5rIHNlZWtpbmcgdW5pdCB0ZXN0CgkgIFNob3VsZCByZXByb2R1Y2UgJ0dTdHJlYW1lci1XQVJOSU5HICoqOiB3cm9uZyBTVFJFQU1fTE9DSyBjb3VudCAwJwoJICB3YXJuaW5ncyAod2l0aCBtYWtlIHBpcGVsaW5lcy9zZWVrLnRvcnR1cmUgb3IgcGlwZWxpbmVzL3NlZWsuZm9yZXZlcgoJICBhbnl3YXksIHNpbmNlIGl0IGFwcGVhcnMgdG8gYmUgcmFjeSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4NDYKCjIwMTEtMTItMjYgMDA6MTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IHJlbW92ZSBnc3RfdmFsdWVfcmVnaXN0ZXJfe3N1YnRyYWN0LHVuaW9uLGludGVyc2VjdH1fZnVuYygpIEFQSQoJICBUaGVyZSBpc24ndCByZWFsbHkgYW55IG5lZWQgdG8gcHJvdmlkZSBwdWJsaWMgQVBJIGZvciB0aGF0LiBJdCdzIG5vdAoJICB1c2VkIGFueXdoZXJlIGluIHByYWN0aWNlLCBhbmQgd2UgYWltIHRvIHByb3ZpZGUgYW4gQVBJIHRoYXQgd29ya3MKCSAgZm9yIEdzdENhcHMsIG5vdCBzb21lIGtpbmQgb2YgZ2VuZXJpYyBzZXQgbWFuaXB1bGF0aW9uIEFQSSBiYXNlZCBvbgoJICBHVmFsdWUuIE1ha2luZyB0aGlzIHByaXZhdGUgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gb3B0aW1pc2UgdGhpcwoJICBsYXRlci4gV2UgY2FuIGFsd2F5cyBwdXQgaXQgYmFjayBpZiBzb21lb25lIGFjdHVhbGx5IG5lZWRzIGl0LgoKMjAxMi0wMy0wOCAxMDo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHJlZmNvdW50IGVycm9yCgoyMDEyLTAzLTA4IDA5OjQ1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV0dXJuIEFOWSBmb3IgYSBwYWQgd2l0aG91dCB0ZW1wbGF0ZQoJICBCZWNhdXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZV9jYXBzKCkgcmV0dXJucyBBTlkgd2hlbiB0aGVyZSBpcyBubyB0ZW1wbGF0ZSwKCSAgdGhlIHF1ZXJ5IGNhcHMgZnVuY3Rpb24gc2hvdWxkIGFsc28gcmV0dXJuIEFOWSB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlIChhbmQgbm8KCSAgcGFkIGN1cnJlbnQgY2FwcykgaW5zdGVhZCBvZiBFTVBUWS4KCjIwMTItMDMtMDggMDk6NDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMi0wMy0wNyAxNTozNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgY29tbWVudAoKMjAxMi0wMy0wOCAxMDozMjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBtZXJnZSBtaXN0YWtlCgoyMDEyLTAzLTA4IDEwOjE5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmMKCjIwMTItMDMtMDcgMTE6MjM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhcnJhbmdlIGZvciBwcm9wZXJseSBkaXNqb2ludCBmcmFtZSBmbGFncwoKMjAxMi0wMy0wNiAxNToxNzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkZWxheSBwb29sIGFjdGl2YXRpb24KCSAgRGVsYXkgdGhlIGFjdGl2YXRpb24gb2YgdGhlIGJ1ZmZlcnBvb2wgdW50aWwgd2UgYWN0dWFsbHkgbmVlZCBhIGJ1ZmZlciBmcm9tIHRoZQoJICBwb29sLgoKMjAxMi0wMy0wNiAxMjoyODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCAnc2VsZi1jb21wYXJpc29uIGFsd2F5cyBldmFsdWF0ZXMgdG8gdHJ1ZScKCSAgVGhpcyB3YXMgcmVhbGx5IGEgYnVnLgoKMjAxMi0wMy0wNiAxMjoyNDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEZpeCAndXNlIG9mIGxvZ2ljYWwgJyYmJyB3aXRoIGNvbnN0YW50IG9wZXJhbmQnIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhpcyBpcyBhY3R1YWxseSBhIHJlYWwgYnVnLgoKMjAxMi0wMy0wNiAxMjoyMzoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4ICdlcXVhbGl0eSBjb21wYXJpc29uIHdpdGggZXh0cmFuZW91cyBwYXJlbnRoZXNlcycgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMy0wNiAxMjoxNjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4ICdjb21wYXJpc29uIG9mIHVuc2lnbmVkIGVudW0gZXhwcmVzc2lvbiA+PSAwIGlzIGFsd2F5cyB0cnVlJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAzLTA1IDE1OjIzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHByb3Bvc2VfYWxsb2NhdGlvbiBiZWZvcmUgbmVnb3RpYXRpb24KCSAgQW5zd2VyIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHdpdGggRkFMU0Ugd2hlbiB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgeWV0IGJlY2F1c2UgYXQKCSAgdGhhdCBwb2ludCB3ZSBoYXZlIG5vIGlkZWEgaWYgd2UgbmVlZCB0byBwcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBvciBub3QuCgoyMDEyLTAzLTA1IDE0OjQxOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIFByZXZpb3VzbHkgb25seSB0aGUgbGFzdCB3b3VsZCBiZSBwdXNoZWQsIHdoaWNoIHdvdWxkIGNhdXNlCgkgIGludmFsaWQgcnVubmluZyB0aW1lcyBkb3duc3RyZWFtLiBUaGlzIGFsc28gZml4ZXMgdGhlIGhhbmRsaW5nCgkgIG9mIHVwZGF0ZSBuZXdzZWdtZW50IGV2ZW50cy4KCjIwMTItMDMtMDUgMTQ6MjU6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbHNvIGZsdXNoIHRoZSBjbG9zZV9zZWdtZW50CgkgIFB1c2hpbmcgdGhpcyBhZnRlciBmbHVzaGluZyB3aWxsIGNvbmZ1c2UgZG93bnN0cmVhbS4KCjIwMTItMDMtMDUgMTQ6MjM6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgb2Jzb2xldGUgY29kZSBhbmQgbW92ZSBnYXAgaGFuZGxpbmcgdG8gdGhlIGNvcnJlY3QgcGxhY2UKCSAgVGhlIHNlZ21lbnQgc3RhcnQgYWRqdXN0bWVudCBjb2RlIGluIHB1bGwgbW9kZSBzaG91bGQgbmV2ZXIgdHJpZ2dlcgoJICBhbnltb3JlIGJlY2F1c2UgdGhlIGJpc2VjdGlvbiBjb2RlIGVhcmxpZXIgd291bGQgaGF2ZSBhbHJlYWR5IG1hZGUKCSAgc3VyZSB0aGF0IHdlJ3JlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uLgoJICBBbHNvIG1vdmUgdGhlIGdhcCBoYW5kbGluZyBzb21lIGxpbmVzIGJlbG93IGFmdGVyIHNlbmRpbmcgdGhlIGN1cnJlbnRseQoJICBjb25maWd1cmVkIHNlZ21lbnRzLiBPdGhlcndpc2Ugd2UgbWlnaHQgZmlsbCBnYXBzIGluIGEgc2VnbWVudCB0aGF0IGlzCgkgIG5vdCBjb25maWd1cmVkIGRvd25zdHJlYW0geWV0LgoKMjAxMi0wMy0wNSAxMzoxMjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IENsZWFyIHNvbWUgbW9yZSBzdGF0ZSB3aGVuIHJlY2VpdmluZyBGTFVTSF9TVE9QCgkgIExpa2UgcGVuZGluZyBzZXJpYWxpemVkIGV2ZW50cyBhbmQgdGhlIGN1cnJlbnRseSBjYWNoZWQgYnVmZmVyLgoKMjAxMi0wMy0wNSAxMzowMDozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgcXVldWUgc2VyaWFsaXplZCBldmVudHMgZm9yIHNlbmRpbmcgdGhlbSBsYXRlcgoKMjAxMi0wMy0wNSAwMDozNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IGV4cG9ydCBnc3RfY29uc2lzdGVuY3lfY2hlY2tlcl9hZGRfcGFkKCkKCSAgRml4IGJ1aWxkIG9mIHRoZSBhZGRlciB1bml0IHRlc3QgaW4gLWJhc2UgYWdhaW4uCgoyMDEyLTAzLTAyIDE3OjMyOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZWZpbmUgbWV0YWRhdGEgZmlsdGVyIGFuZCB0cmFuc2Zvcm0KCSAgQWRkIGEgdm1ldGhvZCB0byBmaWx0ZXIgbWV0YWRhdGEgdGhhdCBzaG91bGQgYmUgcGFzc2VkIHVwc3RyZWFtLiBCeSBkZWZhdWx0LAoJICBkb24ndCBwYXNzIGFueXRoaW5nLgoJICBBZGQgYSB2bWV0aG9kIHRvIHRyYW5zZm9ybSBtZXRhZGF0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXIgdG8gdGhlIG91dHB1dCBidWZmZXIuCgkgIEJ5IGRlZmF1bHQsIG5vdGhpbmcgaXMgdHJhbnNmb3JtZWQgb3IgY29waWVkLgoKMjAxMi0wMy0wMiAxNzowNDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0OiBpbmNsdWRlIGdzdG1ldGEuaAoKMjAxMi0wMy0wMiAxNzowMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtb3JlIGRlYnVnIGluZm8KCjIwMTItMDMtMDIgMTM6MDI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAzLTAyIDEzOjAyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWV0YWRhdGEgdGVzdAoKMjAxMi0wMy0wMiAxMjo0NToyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIGJvb2xlYW4gdG8gc2lnbmFsIGEgcmVnaW9uIGNvcHkKCSAgQWRkIGEgYm9vbGVhbiB0byB0aGUgbWV0YWRhdGEgY29weSB0cmFuc2Zvcm0gdGhhdCBzaWduYWxzIGlmIGEgb25seSBhCgkgIHJlZ2lvbiBpcyBjb3BpZWQuCgoyMDEyLTAzLTAyIDEyOjE2OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBkb24ndCBmYWlsIG9uIG11bHRpcGxlIGZsdXNoX3N0YXJ0IGV2ZW50cwoJICBUaGlzIHNlZW1zIHRvIGJlIG9rYXkgYWZ0ZXIgYSBpcmMgZGlzY3Vzc2lvbi4KCjIwMTItMDMtMDIgMTE6NTc6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiB0cmFuc2Zvcm0gZG9jcwoJICBVc2UgZ3N0LSBwcmVmaXggZm9yIG1ldGFkYXRhIHRyYW5zZm9ybSB0eXBlcy4KCjIwMTItMDMtMDIgMTE6MDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBmaXggY29tbWVudAoKMjAxMi0wMy0wMiAxMTowNTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBnc3Q6IFJlbW92ZSBnc3RtYXJzaGFsLltjaF0gY29tcGxldGVseSBhbmQgdXNlIHRoZSBnZW5lcmljIG1hcnNoYWxsZXIKCSAgRml4ZXMgYnVnICM2NzExMzAuCgoyMDEyLTAzLTAyIDEwOjUxOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBEb24ndCBpbnN0YWxsIGdzdG1hcnNoYWwuaAoJICBUaGUgZ2VuZXJpYywgRkZJIGJhc2VkIG1hcnNoYWxsZXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGVzZQoJICBhbmQgd2UgZGVmaW5pdGVseSBzaG91bGRuJ3QgZXhwb3J0IHRoZSBtYXJzaGFsbGVycyBpbiBvdXIgcHVibGljIEFQSS4KCjIwMTItMDMtMDEgMTc6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaW1wcm92ZSBkZWJ1Z2dpbmcKCSAgQWRkIGNhdGVnb3J5IGZvciBtZXRhZGF0YSBkZWJ1ZwoKMjAxMi0wMy0wMSAxNzozODo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNzozODoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNToxODowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIG1ldGFkYXRhIHRhZ2dlZCB3aXRoIHRoZSBtZW1vcnkgdGFnCgkgIFJlbW92ZSBtZXRhZGF0YSB0aGF0IGRlc2NyaWJlcyB0aGUgcGFydGljdWxhciBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBpdCBpcwoJICBhdHRhY2hlZCB0by4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgaW4gbm9uLXBhc3N0aHJvdWdoIG1vZGUgd2Ugd2lsbCBhbGxvY2F0ZQoJICBuZXcgbWVtb3J5IGZvciBvdXIgb3V0cHV0IGJ1ZmZlci4KCjIwMTItMDMtMDEgMTU6MTc6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgdGFnIGZvciBtZW1vcnkgbWV0YWRhdGEKCjIwMTItMDMtMDEgMTQ6NDk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kIHRvIHJlbW92ZSBhbGxvY2F0aW9uX21ldGEKCSAgQWxzbyBnX3JldHVybl9pZl9mYWlsIGZvciBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbnN0ZWFkIG9mIHNpbGVudGx5IGZhaWxpbmcuCgoyMDEyLTAzLTAxIDE0OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBJbXByb3ZlIHRoZSBwcm9wb3NlIGFsbG9jYXRpb24gdm1ldGhvZCBieSBwYXNzaW5nIHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24KCSAgcXVlcnkgdG8gaXQuIFRoaXMgd2F5IHRoZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIGNhbiB1c2UgcHJvcGVydGllcyBvZiB0aGUKCSAgZG93bnN0cmVhbSBhbGxvY2F0aW9uIHRvIGdlbmVyYXRlIHRoZSB1cHN0cmVhbSBxdWVyeSByZXN1bHQuIElmIHRoZXJlIGlzIG5vCgkgIGRvd25zdHJlYW0gcXVldHksIGl0IG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgaXMgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJbXBsZW1lbnQgYSBkZWZhdWx0IGRlY2lkZV9hbGxvY2F0aW9uLgoKMjAxMi0wMy0wMSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGVhciBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gcGFzc3Rocm91Z2gKCSAgQ2xlYXIgdGhlIGFsbG9jYXRpb24gcGFyYW1ldGVycyB3aGVuIHdlIG9wZXJhdGUgaW4gcGFzc3Rocm91Z2guCgoyMDEyLTAzLTAxIDExOjA2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggb2xkIGNhcHMgaW4gdGVzdHMgbm93IHRoYXQgY29yZSB3YXJucwoKMjAxMi0wMy0wMSAxNDo1MToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgbGliczogRml4IHNvbWUgbWVyZ2UgbWlzdGFrZXMKCjIwMTItMDMtMDEgMTQ6NDM6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmMKCjIwMTItMDItMjggMTI6MDM6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBzb21lIGRlYnVnIG1lc3NhZ2UgdHlwb3MKCjIwMTItMDItMjkgMjE6NTc6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBhZGQgaGFuZGxpbmcgZm9yIHNpbmstcGFkcwoJICBBZGQgYSBwYWQtcHJvYmUgZm9yIHNpbmstcGFkcy4gT25lIGNhbiBub3cgYWRkIGV4dHJhIHBhZHMgKGJlbG9uZ2luZyB0byB0aGUgc2FtZQoJICBlbGVtZW50KSB0byBhIGNoZWNrZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGV4dGVuZCB0aGUgY2hlY2tzLgoKMjAxMi0wMi0yOSAxNzoyMDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzcGxpdCByZWdpc3RyYXRpb24gb2YgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgoJICBTcGxpdCBvdXQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgbWV0YWRhdGEgQVBJIGFuZCBpdHMgaW1wbGVtZW50YXRpb24uIE1ha2UgYQoJICBHVHlwZSBmb3IgZWFjaCBtZXRhZGF0YSBBUEkuIFRoaXMgYWxsb3dzIHVzIHRvIHN0b3JlIGV4dHJhIGluZm9ybWF0aW9uIHdpdGggdGhlCgkgIEFQSSB0eXBlIHN1Y2ggYXMgdGhlIHRhZ3MuCgkgIENoYW5nZSB0aGUgYnVmZmVyIEFQSSBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIG1ldGFkYXRhIHVzaW5nIHRoZSBBUEkgR1R5cGUuCgkgIENoYW5nZSB0aGUgcXVlcnkgQVBJIHNvIHRoYXQgd2UgdXNlIHRoZSBtZXRhZGF0YSBBUEkgR1R5cGUgaW4gdGhlIGFsbG9jYXRpb24KCSAgcXVlcnkgaW5zdGVhZCBvZiBhIHN0cmluZy4KCSAgVXBkYXRlIG5ldGFkZHJlc3MgYW5kIHVuaXQgdGVzdHMKCjIwMTItMDItMjkgMTY6MDA6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5vYmplY3Q6IHNtYWxsIC5oIGluZGVudCBmaXgKCjIwMTItMDItMjkgMTI6NDE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHByaW50IGEgZ193YXJuaW5nKCkgaWYgc29tZW9uZSB0cmllcyB0byBjb25zdHJ1Y3QgMC4xMC1zdHlsZSByYXcgYXVkaW8vdmlkZW8gY2FwcwoKMjAxMi0wMi0yOSAwODo0NDowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFsc28gY2hlY2sgZm9yIGR1cGxpY2F0ZWQgZmx1c2hfc3RhcnRzCgoyMDEyLTAyLTI4IDIwOjM2OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhZGQgbW9yZSBsb2dnaW5nCgoyMDEyLTAyLTI4IDE2OjE3OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGFkZCByZXR1cm4gdmFsZSB0byB0cmFuc2Zvcm0KCSAgQWRkIGEgYm9vbGVhbiByZXR1cm4gdmFsdWUgc28gdGhhdCB3ZSBjYW4gc2VlIHdoZW4gYSB0cmFuc2Zvcm0gZmFpbHMuCgoyMDEyLTAyLTI4IDEyOjUyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIGEgdGFnCgoyMDEyLTAyLTI4IDEyOjUxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCjIwMTItMDItMjggMTE6MzQ6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSAgbWV0YTogYWRkIHN1cHBvcnQgdG8gdGFnZ2luZyB0aGUgbWV0YWRhdGEKCSAgQWRkIHN1cHBvcnQgZm9yIGFkZGluZyB0YWdzIHRvIHRoZSBtZXRhZGF0YS4gd2l0aCBzb21lIHN0YW5kYXJkIGtleXMsIHRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gZGVzY3JpYmUgd2hhdCB0aGUgbWV0YWRhdGEgcmVmZXJzIHRvLiBXZSBzaG91bGQgYmUKCSAgYWJsZSB0byB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUgaWYgYSB0cmFuc2Zvcm1hdGlvbiBkZXN0cm95cyB0aGUgbWV0YWRhdGEKCSAgb3Igbm90LgoKMjAxMi0wMi0yNyAxMzozNToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3ZhbHVlX2FycmF5XyogbW9zdGx5CgoyMDEyLTAyLTI3IDExOjQ2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogaW5jcmVhc2UgYnVzIHRlc3QgdGltZW91dAoKMjAxMi0wMi0yMSAyMDo0Mzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IG1ha2UgZGF0ZXRpbWUgdGVzdCBtb3JlIHJlbGlhYmx5IHdoZW4gY29tcGFyaW5nIHR3byBhbG1vc3QgaWRlbnRpY2FsIG5vd3MKCSAgQWNjb3VudCBmb3Igcm91bmRpbmcgZXJyb3JzIGluIHNvbWUgcGxhY2VzLCBhbmQgdGhhdCB0d28gbm93cyBhcmUKCSAgbm90IGFsd2F5cyBlbnRpcmVseSBpZGVudGljYWwsIHNvIGFsbG93IHNvbWUgbGVld2F5IHdoZW4gY29tcGFyaW5nCgkgIG1pY3Jvc2Vjb25kcyBhbmQgc2Vjb25kcy4gUmFuIGludG8gdGhpcyB0b28gb2Z0ZW4sIGVzcC4gd2hlbiB0aGUKCSAgc3lzdGVtIGlzIHVuZGVyIGxvYWQuCgoyMDEyLTAyLTI3IDA5OjQ4OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgcmVtb3ZlIHNvbWUgdXNlbGVzcyBpbmNsdWRlcyBpbiAuaAoKMjAxMi0wMi0yNyAwOTowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoJICBFeHBvc2UgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgdGltZW91dCBiZWNhdXNlIHN1YmNsYXNzZXMgdXNlcyB0aGlzLgoKMjAxMi0wMi0yNiAyMDo0NToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAyLTI2IDIwOjQ0OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDItMjYgMTY6MzI6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIG1vcmUgZmllbGRzIHByaXZhdGUKCjIwMTItMDItMjcgMDA6MDk6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggY29tcGlsYXRpb24gYWZ0ZXIgbWVyZ2UKCjIwMTItMDItMjcgMDA6MDg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgTkVXUwoJICBSRUxFQVNFCgkgIGNvbmZpZ3VyZS5hYwoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYwoJICB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oCgoyMDEyLTAyLTI2IDIzOjExOjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiByZXNjdWUgdGhlIGFubm90YXRpb24gZnJvbSBjb2xsZWN0cGFkcwoKMjAxMi0wMi0yNiAyMzoxMDo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogZml4IGEgdHlwbyBpbiBjb21tZW50CgoyMDEyLTAyLTI2IDIyOjU3OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBtb3ZlICJNVCBzYXZlIiB0YWdzIHRvIGRvYyBib2R5CgkgIEl0IGlzIG5vdCB1c2VmdWwgdG8gaGF2ZSAiTVQgc2FmZSIgdGFncyByYW5kb21seSBpbiBib2R5LCByZXR1cm5zIG9yIHNpbmNlIHBhcmFncmFwaHMuCgoyMDEyLTAyLTI1IDE1OjE4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogaW1wbGVtZW50IEdzdEJhc2VTaW5rOjpxdWVyeSBpbnN0ZWFkIG9mIG1lc3Npbmcgd2l0aCB0aGUgcGFkCgoyMDEyLTAyLTI1IDE1OjA4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogaW1wbGVtZW50IFNFRUtJTkcgcXVlcnkKCSAgV2UgbWF5IG9yIG1heSBub3Qgc3VwcG9ydCBzZWVraW5nLiBzdGRvdXQgdG8gYQoJICB0ZXJtaW5hbCBkb2Vzbid0IHN1cHBvcnQgc2Vla2luZywgZm9yIGV4YW1wbGUsIGJ1dAoJICAuLi4gISBmZHNpbmsgPiBmaWxlLmZvbyBqdXN0IG1pZ2h0LgoKMjAxMi0wMi0yNSAxNTowNzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBpbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBXZSBtYXkgb3IgbWF5IG5vdCBkbyBzZWVraW5nLCBkZXBlbmRzIG9uIHRoZQoJICBvdXRwdXQgZmlsZS9kZXZpY2UgcmVhbGx5LCBpdCBkb2Vzbid0IGhhdmUgdG8KCSAgYmUgYSBmaWxlIGFmdGVyIGFsbC4KCjIwMTItMDItMjUgMTU6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogYW5zd2VyIFNFRUtJTkcgcXVlcnkKCSAgV2UgZG9uJ3QgZG8gc2Vla2luZywgaW4gY2FzZSBhbnlvbmUgd2FudHMgdG8ga25vdy4KCjIwMTItMDItMjQgMjM6Mzk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggbHNlZWsoKSByZXR1cm4gY29kZSBoYW5kbGluZwoJICBsc2VlaygpIHJldHVybnMgdGhlIG9mZnNldCBpZiBzdWNjZXNzZnVsLCBhbmQgdGhpcyBpcyAhPSAwIGFuZAoJICBkb2VzIG5vdCBpbmRpY2F0ZSBhbiBlcnJvci4gQW5kIGlmIGl0IGRvZXMgYWN0dWFsbHkgZmFpbCwgZG9uJ3QKCSAgcmV0dXJuIEZBTFNFICgwKSBhcyBhbiBpbnQsIGJ1dCAtMS4gTm9uZSBvZiB0aGVzZSB0aGluZ3MgYXJlCgkgIGxpa2VseSB0byBoYXZlIG1hZGUgYSBkaWZmZXJlbmNlLCBldmVyLiBJIGRvbid0IHRoaW5rIHRoZSBvZmZzZXQKCSAgc2VlayBjYW4gZXZlciBhY3R1YWxseSBoYXBwZW4sIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gYW5kIHRoZQoJICBjdXJyZW50IG9mZnNldCBzaG91bGQgYWx3YXlzIGJlIGluY3JlYXNlZCBpbiBsb2NrIHN0ZXAsIHVubGVzcwoJICB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gd2hpY2ggY2FzZSB3ZSdkIGp1c3QgZXJyb3Igb3V0LgoKMjAxMi0wMi0yNCAyMzoxOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IGZvcmdldCB0byBjbGVhbiB1cCByZWdpc3RyeSB0ZW1wIGZpbGUgaW4gYW5vdGhlciBlcnJvciBjYXNlCgkgIEFsc28gY2xlYW4gdXAgdGVtcCBmaWxlIGlmIHdlIGdldCBhbiBlcnJvciBkdXJpbmcgd3JpdGUoKSByYXRoZXIKCSAgdGhhbiBqdXN0IHdoZW4gZG9pbmcgZnN5bmMoKSBvciBjbG9zZSgpLgoKMjAxMi0wMi0yNCAxNToyNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHJhY2UKCSAgQWZ0ZXIgYSB3cml0ZXIgaGFzIHdyaXR0ZW4gdG8gaXRzIHJlc2VydmVkIHdyaXRlIGxvY2F0aW9uLCBpdCBjYW4gb25seSBtYWtlIHRoZQoJICBsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHJlYWRpbmcgaWYgYWxsIG9mIHRoZSB3cml0ZXJzIHdpdGggbG93ZXIgbG9jYXRpb25zIGhhdmUKCSAgZmluaXNoZWQuCgoyMDEyLTAyLTI0IDEyOjUzOjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogZml4IGRvY3MgYW5kIHVuaXQgdGVzdAoKMjAxMi0wMi0yNCAxMjo1MToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHN1YnRsZSByYWNlCgkgIEZpeCBhIHJhY2Ugd2hlcmUgdGhlIHJlYWRlciB3b3VsZCBzZWUgdGhlIHVwZGF0ZWQgdGhlIHRhaWwgcG9pbnRlciBiZWZvcmUgdGhlCgkgIHdyaXRlIGNvdWxkIHdyaXRlIHRoZSBkYXRhIGludG8gdGhlIHF1ZXVlLiBGaXggdGhpcyBieSBoYXZpbmcgYSBzZXBhcmF0ZSByZWFkZXIKCSAgdGFpbCBwb2ludGVyIHRoYXQgaXMgb25seSBpbmNyZW1lbnRlZCBhZnRlciB0aGUgd3JpdGVyIHdyb3RlIHRoZSBkYXRhLgoKMjAxMi0wMi0yNCAxMTowMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHJlY29uZmlndXJlIG1ldGhvZHMKCSAgUmVuYW1lIGdzdF9iYXNlX3RyYW5zZm9ybV9zdWdnZXN0IHRvIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZV9zaW5rIGJlY2F1c2UKCSAgdGhhdCBpcyB3aGF0IGl0IGRvZXMuIEFsc28gcmVtb3ZlIHRoZSBjYXBzIGFuZCBzaXplIGJlY2F1c2UgdGhhdCBpcyBub3QgbmVlZGVkLgoJICBSZW5hbWUgZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlIHRvIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZV9zcmMuCgkgIFJlbW92ZSBzb21lIG9sZCB1bnVzZWQgY29kZSBpbiBjYXBzZmlsdGVyLgoKMjAxMi0wMi0yNCAxMDoyMzoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBmbGVzaCBvdXQgdGhlIG1ldGFkYXRhIHRyYW5zZm9ybQoJICBGbGVzaCBvdXQgdGhlIHRyYW5zZm9ybSBtZXRob2QuIEFkZCBhIHR5cGUgYW5kIGV4dHJhIGluZm8gdG8gdGhlIHRyYW5zZm9ybQoJICBmdW5jdGlvbiBzbyB0aGF0IGltcGxlbWVudGF0aW9uIGNhbiB0cmFuc2Zvcm0gdGhlIG1ldGFkYXRhLgoJICBSZW1vdmUgdGhlIGNvcHkgZnVuY3Rpb24gYW5kIHJlcGxhY2Ugd2l0aCB0aGUgbW9yZSBnZW5lcmljIHRyYW5zZm9ybS4KCjIwMTItMDItMjQgMTA6MjM6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wMi0yMyAwODo0ODoyMiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IGdhcCBpbiBNYWtlZmlsZQoKMjAxMi0wMi0yMyAwODo0ODoxMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIHNwZWxsaW5nIGZpeAoKMjAxMS0xMi0yNiAxNjo0NToyMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBmaXggc3BlbGxpbmcgb2Ygd3JpdGFibGUKCjIwMTItMDItMjMgMTU6MzI6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIHVzZXJfZGF0YSB0byBHc3RNYXBJbmZvCgkgIEFkZCBleHRyYSBwb2ludGVycyB0byBHc3RNYXBJbmZvIHNvIHRoYXQgaW1wbGVtZW50YXRpb25zIGNhbiB1c2UgdGhlc2UgdG8gc3RvcmUKCSAgZXh0cmEgaW5mby4KCjIwMTItMDItMjMgMTU6MzI6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBpbXByb3ZlIGRvY3MKCjIwMTItMDItMjMgMTI6MDk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTkVXUzoKCSogUkVMRUFTRToKCSAgVXBkYXRlIE5FV1MgYW5kIFJFTEVBU0UgYXMgd2VsbAoKMjAxMi0wMi0yMyAxMTo1OToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSB0cmFuc2Zvcm0gbG9jawoKMjAxMi0wMi0yMyAxMDozNjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJ1bXAgdmVyc2lvbiBhZnRlciByZWxlYXNlcwoKMjAxMi0wMi0yMyAxMTowODoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrCgkgIFRoaXMgaXMgbm90IG5lZWRlZCBhbnltb3JlIGJ5IHRoZSBiYXNlY2xhc3MuIHN1YmNsYXNzZXMgc2hvdWxkIGRvIHRoZWlyIG93bgoJICBsb2NraW5nIHdoZW4gbmVlZGVkLgoKMjAxMi0wMi0yMyAxMDoxMjo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGNsZWFudXBzCgkgIENsZWFuIHVwIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBUaGUgcGFzc3Rocm91Z2ggdmFyaWFibGUgaXMgcHJvdGVjdGVkIHdpdGggdGhlIG9iamVjdCBsb2NrLgoKMjAxMi0wMi0yMiAxNToyNjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW1wcm92ZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgQWx3YXlzIGNhbGwgdGhlIHByb3Bvc2VfYWxsb2NhdGlvbiBtZXRob2QgYW5kIHByb3ZpZGUgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uCgkgIHRoYXQgcGFzc2VzIHRoZSBxdWVyeSBvbiBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gYWxzbyBjYWxsCgkgIHRoaXMuIEFsc28gcGFzcyBpZiB0aGUgdHJhbnNmb3JtIGlzIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhhdCB0aGUKCSAgaW1wbGVtZW50YXRpb24gY2FuIGFkanVzdCBpdHMgYWxnb3JpdGhtLgoKMjAxMi0wMi0yMiAxMjoyNDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zOiBpbXByb3ZlIGZpeGF0ZV9jYXBzIGZ1bmN0aW9uCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gYWxzbyBpbXBsZW1lbnQgbm9uLWlucGxhY2UgZml4YXRlIGZ1bmN0aW9ucy4gTGV0IHRoZSBmaXhhdGUKCSAgZnVuY3Rpb24gbWFrZSB0aGUgY2FwcyB3cml0YWJsZSB3aGVuIG5lZWRlZCBiZWNhdXNlIHNvbWUgZml4YXRlIGZ1bmN0aW9ucyBtaWdodAoJICBub3QgbmVlZCB0byBtb2RpZnkgdGhlIGNhcHMuCgoyMDEyLTAyLTIyIDAyOjAyOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIG1lbW9yeTogbWFrZSBfbmV3X3dyYXBwZWQgdGFrZSB1c2VyX2RhdGEgYW5kIG5vdGlmeQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSBhIEdEZXN0cm95Tm90aWZ5IGFuZCB1c2VyX2RhdGEgZm9yCgkgIGdzdF9tZW1vcnlfbmV3X3dyYXBwZWQoKSB0aGlzIGFsbG93cyBmb3IgbW9yZSBmbGV4aWJsZSB3cmFwcGluZyBvZiBmb3JlaWduCgkgIG1lbW9yeSBibG9ja3MuCgoyMDEyLTAyLTAyIDEzOjQ1OjI1IC0wNTAwICBSeWFuIExvcnRpZSA8ZGVzcnRAZGVzcnQuY2E+CgoJKiBhdXRvZ2VuLnNoOgoJICBidWlsZDogYXZvaWQgdG91Y2hpbmcgLnBvIGZpbGVzIGR1cmluZyAnbWFrZScKCSAgQSBzaW1wbGUgd29ya2Fyb3VuZCB0byBkZWFsIHdpdGggR05VIGdldHRleHQgYXV0b21ha2UgaW50ZWdyYXRpb24KCSAgZmFpbGluZyB0byBkZWFsIHdpdGggZ2l0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MjA3CgoyMDEyLTAyLTIxIDIxOjA2OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogZGVmYXVsdCB0byBzeW5jLXN0cmVhbXM9dHJ1ZQoJICBJIHRoaW5rIHRoaXMgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW91ciwgYW5kIHdlIGNvdWxkbid0IGRvIHRoaXMKCSAgaW4gMC4xMCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVhc29ucywgc28gY2hhbmdlIGl0IG5vdy4KCjIwMTItMDItMjEgMTY6Mzk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogZml4IHF1ZXVlIHVuaXQgdGVzdCBhZnRlciBxdWV1ZSBjaGFuZ2VzCgoyMDEyLTAyLTIxIDE2OjM4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHNvbWUgb2xkIGNvZGUKCjIwMTItMDItMjEgMTY6Mzc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaGFuZGxlIE5VTEwgY2FsbGJhY2tzCgkgIFdoZW4gd2UgaGF2ZSBhIG1hdGNoaW5nIE5VTEwgY2FsbGJhY2ssIGFsc28gY29uc2lkZXIgdGhlICdjYWxsYmFjaycgbWFyc2hhbGxlZCwKCSAgdGhpcyB3YXkgYmxvY2tpbmcgcHJvYmVzIHdpdGggYSBOVUxMIGNhbGxiYWNrIGFjdHVhbGx5IHdvcmsuCgoyMDEyLTAyLTIxIDEyOjUyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHdlaXJkIGxpbmsgYmVoYXZpb3VyCgkgIFJlbW92ZSB0aGUgbGluayBmdW5jdGlvbnMgYW5kIGFsd2F5cyBzdGFydCB0aGUgcGFkIHRhc2sgb24gdGhlIHNyY3BhZC4gSWYKCSAgYXBwbGljYXRpb25zIG5lZWQgdG8gYXV0b3BsdWcgdGhleSBjYW4gcHV0IGEgYmxvY2tpbmcgcHJvYmUgb24gdGhlIHNyY3BhZCBsaWtlCgkgIHRoZXkgd291bGQgd2l0aCBhbnkgb3RoZXIgZWxlbWVudC4KCjIwMTItMDItMjEgMTI6NTI6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogaGFuZGxlIHB0cy9kdHMKCjIwMTItMDItMjEgMTI6NDY6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiByZW1vdmUgY3VzdG9tIG1hcnNoYWxsZXIKCjIwMTItMDItMjEgMTI6NDM6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBhbHNvIGRlYnVnIGR0cy9wdHMKCjIwMTItMDItMjEgMTI6MTM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBkZWJ1ZyBwdHMgYW5kIGR0cwoKMjAxMi0wMi0yMSAxMjoxMjoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoKMjAxMS0xMS0yNCAxODo0MDo0MCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgVW5pdCB0ZXN0IGZvciBxdWV1ZSBzcmMgY2FwcyBub3RpZmljYXRpb24KCjIwMTItMDItMjAgMTQ6Mzc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHVzZWxlc3Mgc2VnbWVudCB0ZXN0CgoyMDEyLTAyLTIwIDE0OjI5OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZG9uJ3QgdXNlIGR1cmF0aW9uIGluIGNsaXBwaW5nCgkgIERvbid0IHVzZSB0aGUgZHVyYXRpb24gaW4gdGhlIHNlZ21lbnQgZm9yIGNhbGN1bGF0aW5nIGNsaXBwaW5nIHZhbHVlcy4KCSAgVGhlIGR1cmF0aW9uIGlzIGV4cHJlc3NlZCBpbiBzdHJlYW0gdGltZSBhbmQgY2xpcHBpbmcgaXMgZG9uZSBvbiB1bnJlbGF0ZWQKCSAgdGltZXN0YW1wIHZhbHVlcy4KCSAgVGhpcyB1c2VkIHRvIGJlIGludGVyZXN0aW5nIGZvciBlbGVtZW50cyB0aGF0IHVzZWQgdGhlIHNlZ21lbnQgc3RydWN0dXJlIHRvCgkgIGltcGxlbWVudCBzZWVraW5nIGJlY2F1c2UgdGhlbiB0aGV5IHdvdWxkIHVzZSBzdHJlYW0tdGltZSBmb3IgdGhlIHNlZ21lbnQKCSAgc3RhcnQvc3RvcCB2YWx1ZXMgYW5kIHRoZSBkdXJhdGlvbiBjb3VsZCBiZSB1c2VkIGFzIGEgZmFsbGJhY2sgd2hlbiB0aGUgc3RvcAoJICBwb3NpdGlvbiB3YXMgbm90IHNldC4gTm93IHRoYXQgdGhlIGNvbXBsZXRlIHNlZ21lbnQgZXZlbnQgaXMgcGFzc2VkIGJldHdlZW4KCSAgZWxlbWVudHMgd2UgY2Fubm90IGRvIHRoaXMgYW55bW9yZSBiZWNhdXNlIHNvbWUgZWxlbWVudHMgbWlnaHQgc3RvcmUgdGhlCgkgIGR1cmF0aW9uIGFuZCBzdGFydC9zdG9wIHZhbHVlcyB3aXRoIGRpZmZlcmVudCB0aW1lIGJhc2VzIGluIHRoZSBzZWdtZW50LgoKMjAxMi0wMi0yMCAxNDoyMjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRlYnVnIHNlZ21lbnQgZHVyYXRpb24gYXMgd2VsbAoKMjAxMi0wMi0yMCAxMTo0NjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjb3B5IG1ldGFkYXRhIHdoZW4gdXNpbmcgYSBwb29sCgkgIGFsc28gY29weSB0aGUgbWV0YWRhdGEgd2hlbiB3ZSBhbGxvY2F0ZWQgYSBuZXcgYnVmZmVyIGZyb20gYSBwb29sCgoyMDEyLTAxLTI2IDAzOjAyOjQ4IC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0dGltZXBhY2tldDogZml4IHByaW50ZiBmb3JtYXQgd2FybmluZyBpbiBkZWJ1ZyBtZXNzYWdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTItMDItMTggMDE6MDQ6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZml4IG1vcmUgZG9jcwoKMjAxMi0wMi0xNyAxNTo1Mzo1OCAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBkb2MgZml4dXBzCgoyMDEyLTAyLTE3IDE1OjA5OjU2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNb3ZlIHZhcmlhYmxlIGFuZCBhc3NpZ25tZW50IHRvIHdoZXJlIGl0J3MgbmVlZGVkCgoyMDEyLTAyLTE3IDE1OjA5OjA2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgcmV0dXJuIHZhbHVlIG9mIGRlY2lkZV9hbGxvY2F0aW9uIHZtZXRob2QKCSAgSWYgaXQgZmFpbHMsIHByb3Blcmx5IHByb3BhZ2F0ZSB0aGUgZXJyb3IKCjIwMTItMDItMTcgMTU6MDg6MzIgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBSZW1vdmUgdXNlbGVzcyBhc3NpZ25tZW50CgoyMDEyLTAyLTE3IDE1OjA3OjU2IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogR3JhY2VmdWxseSBoYW5kbGUgTlVMTCBHdmFsdWUKCSAgQXZvaWRzIHVucmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyCgoyMDEyLTAyLTE4IDAwOjAzOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2Ugc29tZSBlcnJvcnMgY3JpdGljYWwKCSAgV2hlbiB3ZSBoYXZlIG5vIGNoYWluIGZ1bmN0aW9uIG9yIHdoZW4gd2UgYXJlIG9wZXJhdGluZyB0aGUgcGFkIGluIHRoZSB3cm9uZwoJICBtb2RlLCBlbWl0IGEgY3JpdGljYWwgaW5zdGVhZCBvZiBwb3N0aW5nIGFuIGVycm9yIG1lc3NhZ2UuIFRoaXMgaXMgY2VydGFpbmx5IGEKCSAgcHJvZ3JhbW1pbmcgZXJyb3IgYW5kIHdlIGNhbm5vdCBhbHdheXMgcG9zdCBhIG1lc3NhZ2UgKGxpa2Ugd2hlbiB0aGUgcGFkIGhhcyBubwoJICBwYXJlbnQpCgoyMDEyLTAyLTE4IDAwOjAzOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWxzbyBkZWJ1ZyBwb3NpdGlvbiBvZiBzZWdtZW50CgoyMDEyLTAyLTE3IDIzOjU5OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogYmFjayB0byBkZXZlbG9wbWVudAoKMjAxMi0wMi0xNyAxMTowMjo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjIgPT09CgoyMDEyLTAyLTE3IDExOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMS4yCgoyMDEyLTAyLTE1IDE3OjEyOjA5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdHdlYWsgc29tZSBkb2N1bWVudGF0aW9uCgoyMDEyLTAyLTE1IDE3OjExOjU0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogc2ltcGxpZnkgYW5kIGltcHJvdmUgZnJhbWUgc3RhdGUgaGFuZGxpbmcKCSAgVXNlIGEgZnJhbWUgZmxhZyB0byBzaWduYWwgdG8gc3ViY2xhc3MgaXQgc2hvdWxkIHJlc2V0IGFueSByZXRhaW5lZAoJICBzdGF0ZSB3LnIudC4gZnJhbWUgcGFyc2luZyBzaW5jZSB0aGUgZnJhbWUgYmVpbmcgcGFzc2VkIGlzICduZXcnLAoJICBpLmUuIG5vdCByZWxhdGVkIHRvIHByZXZpb3VzbHkgcGFzc2VkIGFuZCBwcm9jZXNzZWQgZGF0YS4KCjIwMTItMDItMTUgMTM6MTU6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGxlYWsgZXZlbnQKCSAgSW4gdGhlIHVubGlrZWx5IGNhc2Ugd2hlcmUgdGhlIHN1YmNsYXNzIHNldCB0aGUgZXZlbnQgZnVuY3Rpb24gdG8gTlVMTCwgZG9uJ3QKCSAgbGVhayB0aGUgZXZlbnQuCgoyMDEyLTAyLTE1IDEyOjE5OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGFjdGl2YXRpb24gY29kZSBtb3JlIGxpa2Ugb3RoZXIKCSAgTWFrZSB0aGUgcGFkIGFjdGl2YXRpb24gY29kZSBsb29rIG1vcmUgbGlrZSBvdGhlciBhY3RpdmF0aW9uIGNvZGUuCgkgIE9ubHkgc3RhcnQgdGhlIHNpbmtwYWQgdGFzayB3aGVuIHdlIGRlY2lkZSB0byBhY3RpdmF0ZSBpbiBwdWxsIG1vZGUsIHdoZW4gd2UKCSAgbGF0ZXIgYWRkIHNyY3BhZCBwdWxsbW9kZSB0aGlzIHdpbGwgYmUgbmVlZGVkLgoKMjAxMi0wMi0xNSAxMjoxODozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBtb3JlIGRlYnVnCgoyMDEyLTAyLTE1IDExOjExOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDEyLTAyLTE1IDEwOjU4OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJhY2sgY29uc3VtZWQgaW5wdXQgc2l6ZQoJICAuLi4gYXMgdXNlZCBieSBzdWJzZXF1ZW50IGlucHV0IGRhdGEgcmF0ZSBlc3RpbWF0aW9uIChhbmQgc2Vla2luZykuCgoyMDEyLTAyLTE1IDEwOjExOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjaGFpbiB1cCB0byBwYXJlbnQgZm9yIGRlZmF1bHRzCgkgIENoYWluIHVwIHRvIHRoZSBwYXJlbnQgaW5zdGVhZCBvZiB1c2luZyB0aGUgRkFMU0UgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGV2ZW50CgkgIGZ1bmN0aW9uIChiZWNhdXNlIGl0J3Mgb3RoZXJ3aXNlIGltcG9zc2libGUgdG8gcmV0dXJuIGFuIGVycm9yKS4KCjIwMTItMDItMTUgMTA6MTA6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgaWdub3JlIHJldHVybiB2YWx1ZSB3aGVuIHN0YXJ0aW5nIGEgdGFzawoKMjAxMi0wMi0xNCAyMDoxNzozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldmVydCAiYmFzZXBhcnNlOiByZWFsbHkgcHJvdmlkZSB1cHN0cmVhbSB0cyB0byBzdWJjbGFzcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyMzYzNDkwZWY1YTlmZThkNDE0MzY5ZDI0ZmNhYTY1YTlkZmE4M2FjLgoKMjAxMi0wMi0xNCAxOTozMzo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkZWFkIGNvZGUgYW5kIHN1cGVyZmx1b3VzIGxvb3AgbGV2ZWwKCjIwMTItMDItMTQgMTk6MzM6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtb2RpZnkgcmV2ZXJzZSBwbGF5YmFjayBoYW5kbGluZwoJICAuLi4gc28gYXMgdG8gYWxsb3cgdGhlIHB1c2gtbW9kZSBjYXNlIHRvIHByb3ZpZGUgZGF0YSB0byBzdWJjbGFzcwoJICBvbiBhIGJ1ZmZlciBieSBidWZmZXIgYmFzaXMgKGFzIGluIHJlZ3VsYXIgZm9yd2FyZCBjYXNlKSwgcmF0aGVyCgkgIHRoYW4gYWxsIGJ1ZmZlcnMgb2YgYSBmcmFnbWVudCBjaHVja2VkIHRvZ2V0aGVyLgoJICBBbHNvIHJlZmFjdG9yIGJ1ZmZlciBoYW5kbGluZyBzb21lIG1vcmUsIGFuZCBhZGQgc29tZSBkZWJ1Zy4KCjIwMTItMDItMTQgMTk6MzM6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWFsbHkgcHJvdmlkZSB1cHN0cmVhbSB0cyB0byBzdWJjbGFzcwoKMjAxMi0wMi0xNCAxMzoyNDo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBjbGVhbiB1cCBzcmMgcXVlcnkgaGFuZGxlcgoKMjAxMi0wMi0xNCAxMjo1NzoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBwYXNzIHJlc3VsdHMgZnJvbSBhY3RpdmF0aW9uCgoyMDEyLTAyLTE0IDEwOjM1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xNCAxMDozMDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAyLTEzIDE4OjIyOjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW9kaWZ5IEFQSSB0byBhIF9maW5pc2hfZnJhbWUgYmFzZWQgYXBwcm9hY2gKCSAgLi4uIHdoaWNoIGFsaWducyBpdCB3aXRoIG90aGVyIGJhc2VjbGFzcyBpbiB0aGUgd2lsZCwgYW5kIHNob3VsZCBnaXZlCgkgIGNvbnZlcnRlciBwYXJzZXJzIGEgYml0IGNsZWFuZXIgZnJlZWRvbS4KCjIwMTItMDItMTMgMTg6MDk6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjawoJICAuLi4gZXNwZWNpYWxseSBmb3IgYWxsLWtleWZyYW1lIChhdWRpbykgY2FzZXMuCgoyMDEyLTAyLTEzIDE2OjMzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIHJlZmNvdW50IGFuZCB3cml0YWJpbGl0eQoJICBSZW5hbWUgX2lzX3dyaXRhYmxlKCkgd2l0aCBfaXNfZXhjbHVzaXZlIGJlY2F1c2UgdGhlIHdyaXRhYmlsaXR5IGRvZXMgbm90IGRlcGVuZAoJICBvbiB0aGUgYW1vdW50IG9mIHJlZmVyZW5jZXMgdG8gdGhlIG1lbW9yeSBvYmplY3QgYW55bW9yZS4KCSAgQWRkIGFjY2Vzc29yIG1hY3JvcyBmb3IgdGhlIG1lbW9yeSBmbGFncy4KCSAgUmVuYW1lIHRoZSBHc3RCdWZmZXIgX3BlZWtfbWVtb3J5KCkgbWV0aG9kIHRvIF9nZXRfbWVtb3J5KCkgYW5kIHJldHVybiBhCgkgIHJlZmVyZW5jZSB0byB0aGUgbWVtb3J5IG5vdyB0aGF0IHdlIGNhbiBkbyB0aGlzIHdpdGhvdXQgYWZmZWN0aW5nIHdyaXRhYmlsaXR5CgkgIG9mIHRoZSBtZW1vcnkgb2JqZWN0LiBNYWtlIGl0IHBvc3NpYmxlIHRvIGFsc28gbWFrZSB0aGlzIGZ1bmN0aW9uIG1lcmdlIHRoZQoJICBidWZmZXIgbWVtb3J5LgoJICBBZGQgbWV0aG9kcyB0byByZXBsYWNlIG1lbW9yeSBpbiBhIGJ1ZmZlci4gTWFrZSBzb21lIGNvbnZpZW5jZSBtYWNyb3MgZm9yIHRoZQoJICBidWZmZXIgbWVtb3J5IGZ1bmN0aW9ucy4KCSAgRml4IHVuaXQgdGVzdHMuCgoyMDEyLTAyLTEzIDE3OjIyOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlCgoyMDEyLTAyLTEzIDE1OjE4OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogZml4IHR5cG9zCgoyMDEyLTAyLTEyIDIxOjE3OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogYWRkIGEgcGFyYWdyYXBoIGFib3V0IHRoZSBTVFJFQU0gQ09ORklHIGV2ZW50IHRvIHRoZSBkZXNpZ24gZG9jcwoKMjAxMi0wMi0xMiAyMTowNDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIF9wYXJzZV9udGhfc3RyZWFtX2NvbmZpZ19oZWFkZXIoKSBhbmQgX3BhcnNlX3NldHVwX2RhdGEoKSByZXR1cm4gYSBib29sZWFuCgkgIEFzIHRoZXkgY2FuIGZhaWwgKG9ubHkgb25lIG9mIHN0cmVhbSBoZWFkZXJzIG9yIHNldHVwIGRhdGEKCSAgaXMgdXN1YWxseSBwcmVzZW50KS4KCjIwMTItMDItMTIgMjA6NTE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogcmVuYW1lIGdzdF9ldmVudF97c2V0LHBhcnNlfV9zdHJlYW1fY29uZmlnX2NvZGVjX2RhdGEoKSB0byBfc2V0dXBfZGF0YSgpCgkgIE1vcmUgZ2VuZXJpYy4KCjIwMTItMDItMTAgMTU6MDM6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTEwIDE0OjU4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBjbGVhbiB1cCBvYmplY3QgaW5pdAoJICBNYWtlIGFuIF9pbml0IG1ldGhvZCB3aGVyZSB0aGUgcGFyZW50IG1pbmktb2JqZWN0IGFuZCBvdGhlciBmaWVsZHMgYXJlCgkgIGluaXRpYWxpemVkLgoJICBDaGVjayB0aGF0IHRoZSBwYXNzZWQgc3RydWN0dXJlIGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGEgcGFyZW50LgoJICBVc2UgdGhlIF9uZXdfY3VzdG9tICgpIGNvbnN0cnVjdG9ycwoKMjAxMi0wMi0wNyAxMToyODo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGJpdHJhdGUgbWVjaGFuaWNzIHNob3VsZCBub3QgZGVhbCB3aXRoIGR1cmF0aW9uIHVwZGF0ZQoJICAuLi4gc2luY2UgdGhhdCBpcyBhbHJlYWR5IGhhbmRsZWQgYnkgX3VwZGF0ZV9kdXJhdGlvbiwgb3Igc2hvdWxkIG5vdCBiZSBkb25lCgkgIGFsdG9nZXRoZXIgaWYgdGhlIGR1cmF0aW9uIGlzIGRldGVybWluZWQgYnkgbm9uLWVzdGltYXRlZCBtZWFucy4KCSAgRml4ZXMgIzY2OTUwMi4KCjIwMTItMDItMTAgMTI6NDU6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiBwdXNoX2V2ZW50IGRvZXNuJ3QgcmV0dXJuIGEgZmxvdyB2YWx1ZSBhZnRlciBhbGwKCjIwMTItMDItMTAgMTI6MDU6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2lsZW5jZSBwcm9iZSBkZWJ1ZyBhIGxpdHRlCgoyMDEyLTAyLTEwIDExOjI0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wbGVtZW50IGZhc3RlciBBQ0NFUFRfQ0FQUyBxdWVyeQoKMjAxMi0wMi0xMCAxMTowOTowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBhZGQgc29tZSBwZXJmb3JtYW5jZSBsb2dnaW5nCgkgIEFkZCBzb21lIHBlcmZvcm1hbmNlIGxvZ2dpbmcgZm9yIGNhcHMgY29weSBhbmQgdGhlIHNsb3cgZGVmYXVsdCBhY2NlcHRjYXBzCgkgIGltcGxlbWVudGF0aW9uCgoyMDEyLTAxLTE0IDE5OjE2OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1cGRhdGUgYW5kIGltcHJvdmUgZG9jcwoKMjAxMi0wMi0wOSAwMDoxNDo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIGdzdF9lbGVtZW50X2NsYXNzX2luc3RhbGxfc3RkX3Byb3BzKCkKCSAgSXQncyBvbmx5IHVzZWQgaW4gb25lIHBsYWNlIChydG1wKSwgYW5kIHRoZXJlIG5vdCB2ZXJ5IHdlbGwuCgoyMDEyLTAyLTA4IDIzOjQ3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZmFrZXNyYywgaWRlbnRpdHksIGZha2VzaW5rOiBkbyBub3QgZ2VuZXJhdGUgbGFzdC1tZXNzYWdlIHVwZGF0ZXMgYnkgZGVmYXVsdAoJICBEZWZhdWx0IHRvIG5vdCBjcmVhdGluZyBsb3RzIG9mIG92ZXJoZWFkIGJ5IGRvaW5nIGEgY291cGxlIG9mCgkgIGdfc3RyZHVwX3ByaW50ZigpL2dfZnJlZSgpIHBlciBidWZmZXIgb3IgZXZlbnQganVzdCB0byBnZW5lcmF0ZQoJICBhIGxhc3QtbWVzc2FnZSB1cGRhdGUgdGhhdCByYXJlbHkgYW55b25lIGxpc3RlbnMgdG8uIFRoaXMgbWVhbnMKCSAgdGhhdCB5b3UgbmVlZCB0byBlbmFibGUgc2lsZW50PXRydWUgZXhwbGljaXRseSBpbiBvcmRlciB0byBnZXQKCSAgbGFzdC1tZXNzYWdlIGR1bXBzIGluIGdzdC1sYXVuY2ggLXYgbm93LiBPbiB0aGUgdXBzaWRlLCBwZW9wbGUKCSAgd29uJ3QgaW5hZHZlcnRlbnRseSBlbmQgdXAgYmVuY2htYXJraW5nIGdfc3RyZHVwX3ByaW50ZigpCgkgIHBlcmZvcm1hbmNlIGluc3RlYWQgb2YgZ3N0cmVhbWVyIGRhdGEgaGFuZGxpbmcgcGVyZm9ybWFuY2UgYW55CgkgIG1vcmUuCgkgIE1heWJlIHRoZSBzaWxlbnQgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmFtZWQgdG8gZW5hYmxlLWxhc3QtbWVzc2FnZQoJICBvciBzb21ldGhpbmcgbGlrZSB0aGF0PwoKMjAxMi0wMi0wOCAxNToxNjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkgIEdTVF9GTE9XX1dST05HX1NUQVRFIC0+IEdTVF9GTE9XX0ZMVVNISU5HCgoyMDEyLTAyLTA4IDE1OjM0OjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHVzZSBkZWZhdWx0IHF1ZXJ5IGZ1bmN0aW9uIHRvIG9wdGlvbmFsbHkgZm9yd2FyZCBxdWVyeQoJICAuLi4gcmF0aGVyIHRoYW4gcXVlcnlpbmcgcGVlciB1bmNvbmRpdGlvbmFsbHkgd2l0aCBwb3NzaWJseSB1bmRlc2lyYWJsZQoJICBvdXRjb21lIGluIGNhc2Ugb2YgZS5nLiBTQ0hFRFVMSU5HIHF1ZXJ5LgoKMjAxMi0wMi0wOCAxNTowMzo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFuIHVwIGEgZmV3IG1pbm9yIGV4dHJhbmVvdXMgdG9rZW5zCgoyMDEyLTAyLTA3IDEyOjQ4OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGNsb3Npbmcgc2VnbWVudCBoYW5kbGluZwoKMjAxMi0wMi0wOCAxNDo0NToyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMDggMTQ6MzI6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IHJhY2UgaW4gcGFkIG1vZGUgY2hhbmdlCgkgIEZpeGVzICM2Njg5MDkgYW5kIHByZXN1bWFibHkgYWxzbyAjNjY5NDgzCgoyMDEyLTAyLTA4IDEyOjU3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGVycm9yIHdoZW4gYWN0aXZhdGlvbiBtb2RlIGlzIHdyb25nCgkgIFBvc3QgYW4gZXJyb3Igd2hlbiB3ZSB0cnkgdG8gcHVzaCBvbiBhIHBhZCBhY3RpdmF0ZWQgaW4gcHVsbCBtb2RlIGFuZCBwdWxsIG9uIGEKCSAgcGFkIGluIHB1c2ggbW9kZS4KCjIwMTItMDItMDggMDk6MzA6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IHJlbW92ZSBtZXRob2QgZGVjbGFyYXRpb24gdG9vCgoyMDEyLTAyLTA3IDEzOjQxOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgc3RhdHMgcHJvcGVydHkgd2hpbGUgd2UgY2FuCgoyMDEyLTAyLTA3IDEwOjQ0OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZha2VzcmM6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoJICBSZW1vdmUgb3VyIGN1c3RvbSBtYXJzaGFsbGVyLgoJICBNYWtlIHRoZSBidWZmZXIgaW4gdGhlIGhhbmRvZmYgc2lnbmFsIHN0YXRpY19zY29wZSBzbyB0aGF0IGl0IGlzIGFjdHVhbGx5CgkgIHdyaXRhYmxlLgoKMjAxMi0wMi0wNiAwOTo0Njo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTAxLTA0IDE3OjEwOjE1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBjb21waWxhdGlvbiB3aXRoIC0tZGlzYWJsZS1yZWdpc3RyeQoJICBfX3JlZ2lzdHJ5X3JldXNlX3BsdWdpbl9zY2FubmVyIGlzIG9ubHkgZGVmaW5lZCB3aGVuCgkgIEdTVF9ESVNBQkxFX1JFR0lTVFJZIGlzIG5vdCBkZWZpbmVkLgoJICBnc3RyZWdpc3RyeS5jOiBJbiBmdW5jdGlvbiAnZ3N0X3JlZ2lzdHJ5X3NjYW5fcGx1Z2luX2ZpbGUnOgoJICBnc3RyZWdpc3RyeS5jOjExMzE6ODogZXJyb3I6ICdfX3JlZ2lzdHJ5X3JldXNlX3BsdWdpbl9zY2FubmVyJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NAoKMjAxMi0wMi0wMiAxNzoxODoyMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVzZXQgdGhlIEVPUyBkZXRlY3Rpb24gbWFjaGluZXJ5IGFmdGVyIHNlbmRpbmcgYW4gRU9TIG1lc3NhZ2UKCSAgVGhpcyB3aWxsIGFsbG93IGRldGVjdGluZyBmdXJ0aGVyIEVPUywgZm9yIGluc3RhbmNlIGFmdGVyIGxvb3BpbmcKCSAgYSBzdHJlYW0gd2l0aG91dCBjaGFuZ2luZyBzdGF0ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgyODkKCjIwMTItMDEtMDcgMjM6MDA6MTIgLTA1MDAgIFJ5YW4gTG9ydGllIDxkZXNydEBkZXNydC5jYT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IGFsbG93IGNhbGxpbmcgZnJvbSBvdXQtb2YtdHJlZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NjY0CgoyMDEyLTAyLTAyIDE2OjU5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBwcmludCBjYXBzIGluIGR1bXAKCjIwMTItMDItMDIgMTY6MDQ6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAyLTAyIDE1OjU3OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBkZWJ1ZyBhbmQgdHJhY2UgZm9yIEdzdE1lbW9yeQoKMjAxMi0wMi0wMiAxNTo1NTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBkb24ndCBjaGVjayByYW5kb20gcG9pbnRlcnMgZm9yIG9iamVjdHMKCSAgT25seSBzZWUgaWYgdGhlIHRyYWNlZCBwb2ludGVyIGlzIGEgR09iamVjdCB3aGVuIGl0IHdhcyByZWdpc3RlcmVkIHdpdGggdGhlCgkgIHNwZWNpYWwgb2Zmc2V0IG9mIC0yLgoKMjAxMi0wMi0wMiAxNTo1NDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBVcGRhdGUgZGVidWcgY2F0ZWdvcmllcwoJICBSZW1vdmUgc29tZSBjYXRlZ29yaWVzIG1hcmtlZCBmb3IgZGVsZXRpb24uCgkgIEFkZCBhIGNhdGVnb3J5IGZvciBHc3RNZW1vcnkuCgoyMDEyLTAyLTAyIDE1OjUyOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHJlbW92ZSBUUkFDRV9OQU1FIGZyb20gaGVhZGVycwoKMjAxMi0wMi0wMiAxMzoxNzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbmV3IHRlc3QKCjIwMTItMDItMDIgMTM6MTU6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGRlbnRpdHk6IHJlbW92ZSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgQ29ycmVjdGx5IG1hcmsgcGFzc3Rocm91Z2ggb24gdGhlIGJhc2VjbGFzcyBzbyB0aGF0IGl0IGNhbiBjb3JyZWN0bHkgZG8gdGhlCgkgIGFsbG9jYXRpb24gb2YgdGhlIG91dHB1dCBidWZmZXJzLgoJICBSZW1vdmUgb3VyIGN1c3RvbSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24gbm93IHRoYXQgdGhlIGJhc2VjbGFzcyBpcwoJICBzbWFydGVyLgoKMjAxMi0wMi0wMiAxMzoxMDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBDbGVhbiB1cCB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGZ1bmN0aW9uLgoJICBSZXVzZSB0aGUgaW5wdXQgYnVmZmVyIHdoZW4gaXQgaXMgd3JpdGFibGUgYW5kIHdoZW4gZG9pbmcgYW4KCSAgaW4tcGxhY2UgYnV0IG5vbi1wYXNzdGhyb3VnaCB0cmFuc2Zvcm0uCgkgIE1vdmUgdGhlIGNvcHktbWV0YWRhdGEgZnVuY3Rpb24gY2FsbCB0byB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGRlZmF1bHQKCSAgZnVuY3Rpb24uIElmIHN1YmNsYXNzZXMgaW1wbGVtZW50IGEgY3VzdG9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlciwgdGhleSBtdXN0IGFsc28KCSAgY29weSB0aGUgbWV0YWRhdGEgdGhlbXNlbHZlcy4KCSAgUmVtb3ZlIGEgdXNlbGVzcyBtZW1vcnkgY29weSBiZWNhdXNlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBhbHJlYWR5IGRpZCB0aGF0LgoKMjAxMi0wMi0wMiAxMjozMjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IG9ubHkgbWFwIHdoZW4gdXNpbmcgdGhlIG1lbW9yeQoKMjAxMi0wMi0wMiAxMjozMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBsdWdpbnM6IHByb3h5IGFsbG9jYXRpb24gcXVlcnkKCjIwMTItMDItMDIgMTI6MzA6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc2ltcGxpZnkgY29kZQoJICBXZSBhbHJlYWR5IGNoZWNrZWQgcGFzc3Rocm91Z2ggYSBmZXcgbGluZXMgYWJvdmUuCgoyMDEyLTAyLTAyIDEyOjA3OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIHNvbWUgcGVyZm9ybWNlIGRlYnVnIGluZm8KCSAgQWRkIHNvbWUgUEVSRk9STUFOQ0UgZGVidWcgbGluZXMgd2hlcmUgd2UgY29weSBhbmQgZG8gb3RoZXIgc3Vib3B0aW1hbCB0aGluZ3MuCgoyMDEyLTAyLTAyIDEyOjA1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGZsYWcgdG8gcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoJICBBZGQgYSBmbGFnIHRvIGZvcmNlIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgdG8gZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeQoJICBpbnN0ZWFkIG9mIGRpc2NhcmRpbmcgaXQuCgkgIFJlb3JkZXIgdGhlIHBhZCBmbGFncyBhIGJpdC4KCjIwMTItMDItMDIgMDE6MzA6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBwYXNzIGV4dGVuc2lvbnMgYXMgY29tbWEtc2VwYXJhdGVkIGxpc3QgaW4gYSBzaW1wbGUgc3RyaW5nCgkgIEZpeCBhbm5veWluZyBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkgZnVuY3Rpb24gc2lnbmF0dXJlLiBBIHNpbXBsZQoJICBzdHJpbmcgd2l0aCBjb21tYS1zZXBhcmF0ZWQgZXh0ZW5zaW9ucyB3b3JrcyBqdXN0IGFzIHdlbGwgYW5kIHNhdmVzCgkgIGxpbmVzIG9mIGNvZGUsIGNhc3RzLCByZWxvY2F0aW9ucyBhbmQgdWx0aW1hdGVseSBraXR0ZW5zLgoKMjAxMi0wMS0zMSAxNzo0MToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmFjZSBpbiBzdGFydHVwCgkgIE1hcmsgcmVuZWdvdGlhdGUgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwdXNoaW5nIHRocmVhZC4KCSAgRG8gYWxzbyBjaGVjayBpZiB3ZSBhcmUgc3RhcnRpbmcgaW4gdGhlIGdldF9yYW5nZSBmdW5jdGlvbi4KCjIwMTItMDEtMzEgMTY6Mjc6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBjcmFzaCBvbiBtaXNzaW5nIHRlbXBsYXRlCgkgIFNvbWUgcmVxdWVzdCBwYWRzIGRvbid0IGhhdmUgYSBwYWR0ZW1wbGF0ZSAobW9zdGx5IHRob3NlIGZyb20gZW5jb2RlYmluKS4gQXZvaWQKCSAgY3Jhc2hpbmcgaW4gdGhpcyBjYXNlLgoKMjAxMi0wMS0zMSAxMjoyMDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBjb25zdHJ1Y3R1cmVzIGZvciBjb250cm9sIHNvdXJjZXMgcmV0dXJuIEdzdENvbnRyb2xTb3VyY2UKCSAgRG9uJ3QgcmV0dXJuIHRoZSBzcGVjaWZpYyB0eXBlcy4gSW4gbW9zdCBjYXNlcyB0aGVyZSBpcyBubyBzcGVjaWZpYyBhcGkgdGhlcmUKCSAgYW55d2F5LgoKMjAxMi0wMS0zMSAxMjoxMDoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZG9uJ3QgZG8gbG9naWMgaW4gZ19hc3NlcnQuLi4KCjIwMTItMDEtMzAgMTk6MTc6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBjb250cm9sLWJpbmRpbmdzCgkgIGdzdF9jb250cm9sX2JpbmRpbmdfeHh4IC0+IGdzdF94eHhfY29udHJvbF9iaW5kaW5nIGZvciBjb25zaXN0ZW5jeS4KCjIwMTItMDEtMzAgMTQ6NDg6NDQgLTAyMDAgIEpvw6NvIFBhdWxvIFBpemFuaSBGbG9yIDxqb2FvcGl6YW5pQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgRml4ZXMgdGhlIGxhY2sgb2YgYW4gaW5jbHVkZSBkaXJlY3RpdmUgaW4gZ3N0L2dzdHByZXNldC5oCgkgIEl0IGJsb2NrZWQgdGhlIGJ1aWxkIG9mIGV4dGVybmFsIGxpYnJhcmllcyBkZXBlbmRpbmcgb24gZ3N0cmVhbWVyLWNvcmUgKG5hbWVseSwgZ3N0cmVhbWVybW0pLgoJICBDb21wbGV0ZSBidWcgcmVwb3J0IGF0IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkwMzYKCjIwMTItMDEtMzAgMTg6MTc6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBzaW5rIHRoZSBmbG9hdGluZyByZWYKCSAgY29udHJvbCBzb3VyY2VzIGNhbiBiZSB1c2VkIG9uIHNldmVyYWwgY29udHJvbCBiaW5kaW5ncy4KCjIwMTItMDEtMzAgMTc6MTU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjsgcmVtb3ZlIElOX0NBUFMgYnVmZmVyIGZsYWcKCSAgVGhlIElOX0NBUFMgYnVmZmVyIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlIEhFQURFUgoJICBmbGFnLgoKMjAxMi0wMS0zMCAxNjowOTowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOyB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTItMDEtMzAgMTU6NTk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IHBhc3MgYWxsb2NhdG9yIGluIHF1ZXJ5CgkgIFBsYWNlIHRoZSBhbGxvY2F0b3Igb2JqZWN0IGluIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGluc3RlYWQgb2YgdGhlIG5hbWUuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGV4Y2hhbmdlIGFsbG9jYXRvcnMgdGhhdCBhcmUgbm90IGluIHRoZSBnbG9iYWwgcG9vbCBvZiBhbGxvY2F0b3JzLgoJICBVcGRhdGUgZWxlbWVudHMgZm9yIHRoZSBuZXcgYXBpCgoyMDEyLTAxLTMwIDE1OjU3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1lbW9yeSB0eXBlCgkgIEFkZCBtZW1vcnkgdHlwZSB3aGVuIHJlZ2lzdGVyaW5nIG1lbW9yeSBhbGxvY2F0b3JzLiBBZGQgZ2V0dGVyIGZvciB0aGUgbWVtb3J5CgkgIHR5cGUuCgoyMDEyLTAxLTI5IDIyOjU4OjUxICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBSZXB1c2ggc3RpY2t5IGV2ZW50cyBhZnRlciBkaXNhYmxpbmcgZHJvcHBpbmcKCjIwMTItMDEtMzAgMTM6Mjg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgYm94ZWQgR1R5cGUgZm9yIHRoZSBhbGxvY2F0b3IKCjIwMTItMDEtMzAgMTM6MDI6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSB0aGUgYWxsb2NhdG9yIHJlZmNvdW50ZWQKCSAgQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBHc3RBbGxvY2F0b3Igb2JqZWN0LgoJICBSZW1vdmUgY29uc3QgZnJvbSBmdW5jdGlvbnMgYmVjYXVzZSB0aGUgYWxsb2NhdG9yIGlzIHJlZmNvdW50ZWQgbm93LgoJICBSZW5hbWUgdGhlIHZtZXRob2RzIGZvciBjb25zaXN0ZW5jeQoJICBFeHBvc2UgdGhlIGNvbnN0cnVjdG9yIGZvciBHc3RBbGxvY2F0b3IgYW5kIGFkZCBhIGRlc3Ryb3kgbm90aWZ5IGZvciB0aGUKCSAgdXNlcl9kYXRhLiBUaGlzIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBhbGxvY2F0b3JzIHRoYXQgYXJlIG5vdAoJICByZWdpc3RlcmVkIGFuZCBzaGFyZWQgZ2xvYmFsbHkgYWxvbmcgd2l0aCB0aGUgcG9zc2liaWxpdHkgdG8gZGVzdHJveSB0aGVtCgkgIHByb3Blcmx5LgoJICBVcGRhdGUgZGVmcyB3aXRoIG5ldyBzeW1ib2xzLgoKMjAxMi0wMS0zMCAxMDozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIGdhcCBldmVudAoKMjAxMi0wMS0zMCAxMDowNzo1MSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJICBjb3JlOiBkb24ndCBzaGlwIGdzdHRyYWNlLmggcHJpdmF0ZSBoZWFkZXIKCSAgSW5jbHVkZSBpdCBleHBsaWNpdGVseSBpbiBnc3QuYyBhbmQgbm8gbG9uZ2VyIGluY2x1ZGUgaXQgaW4gZ3N0LmguCgkgIFRoYXQgaGVhZGVyIHdhcyBtYWRlIHByaXZhdGUgaW4gMTk2OWI5NDI2N2I0ZjM3N2VhMjY2Mzg3NmFlODcyMDcxNzg4OTY5My4KCjIwMTItMDEtMjggMTg6NTA6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiByZXF1aXJlIGEgdmFsaWQgZHVyYXRpb24gZm9yIHRoZSBHQVAgZXZlbnQKCjIwMTItMDEtMjggMTg6NDk6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0KCkKCjIwMTItMDEtMjcgMTg6NTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGFkZCBzb21lIChvdXQpIGFubm90YXRpb25zIGZvciBzdHJlYW0gY29uZmlnIHBhcnNlciBmdW5jdGlvbnMKCjIwMTItMDEtMjcgMTg6NTY6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGNvbnN0cnVjdG9yIGFuZCBwYXJzZSBmdW5jdGlvbiBmb3IgbmV3IEdBUCBldmVudAoJICAoV2hhdGV2ZXIgeW91IGRvLCBkb24ndCBtZW50aW9uIHRoZSBmaWxsZXIgZXZlbnQuKQoKMjAxMi0wMS0yNyAxODozNzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogR1NUX0VWRU5UX1NUUkVBTV9DT05GSUcgaXMgaW1wbGVtZW50ZWQgbm93CgoyMDEyLTAxLTI3IDE3OjU3OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gY29kZWMgZGF0YSAvIHN0cmVhbSBoZWFkZXIgY2hhbmdlIGluIHBvcnRpbmcgZG9jcwoKMjAxMi0wMS0yOCAxNDozNTo1MSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBVc2UgbWFjcm9zIHRvIHJlZ2lzdGVyIGJveGVkIHR5cGVzIHRocmVhZCBzYWZlbHkKCjIwMTItMDEtMjggMDg6Mzg6MDMgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogVXBkYXRlIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyIHRvIDAuMTEgc3R5bGUgY2FwcwoJICBQYXNzIHRoZSBkZXNpcmVkIGNhcHMgZXhwbGljaXRlbHkKCjIwMTItMDEtMjcgMTk6MDA6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCBtZW1vcnkgbGVhawoKMjAxMi0wMS0yNyAxODo1Mzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRG9uJ3QgdW5yZWYgcGx1Z2luIGZlYXR1cmVzIG11bHRpcGxlIHRpbWVzCgkgIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoKSB1bnJlZnMgdGhlbSB0b28uCgoyMDEyLTAxLTI3IDE3OjUwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgc3RyZWFtIGNvbmZpZyBmdW5jdGlvbnMgdG8gZG9jcwoKMjAxMi0wMS0yNyAxNzo0OTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0czogZml4IHNpbXBsZS1sYXVuY2gtbGluZXMgY29tcGlsYXRpb24KCSAgRG9uJ3QgdXNlIHJlbW92ZWQgQVBJLgoKMjAxMi0wMS0yNyAxODo0Njo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBBZGQgcGFkZGluZyB0byB0aGUgcHVibGljIHN0cnVjdAoKMjAxMi0wMS0yNyAxNzo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZG9uJ3QgcmVmIEdUeXBlIGZvciBwcml2YXRlIGVudW0gZm9yIHdoaWNoIHRoZXJlJ3Mgbm8gR1R5cGUgYW55IG1vcmUKCjIwMTItMDEtMjcgMTc6NDU6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmb3IgbmV3IGFuZCByZW1vdmVkIEFQSQoKMjAxMi0wMS0yNyAxNzozOToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgY29uc3RydWN0IGFuZCBwYXJzZSBBUEkgZm9yIHRoZSBuZXcgU1RSRUFNIENPTkZJRyBldmVudAoJICBjb2RlYyBkYXRhIGFuZCBzdHJlYW0gaGVhZGVycyBkb24ndCBiZWxvbmcgaW50byBjYXBzLCBzaW5jZSB0aGV5CgkgIGFyZSBub3QgbmVnb3RpYXRlZC4gV2Ugc2lnbmFsIHRoZW0gdXNpbmcgdGhlIFNUUkVBTSBDT05GSUcgZXZlbnQKCSAgaW5zdGVhZC4KCjIwMTItMDEtMjcgMTg6MjQ6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHRyYWNlOiByZW1vdmUgZnJvbSBwdWJsaWMgaGVhZGVycwoKMjAxMi0wMS0yNyAxMjoxNjowNSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvY3VtZW5hdGlvbiB0eXBvCgoyMDEyLTAxLTI3IDE3OjUwOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdHJhY2U6IHJld29yayBhbGxvYyB0cmFjaW5nCgkgIFJlbW92ZSB0cmFjZSwgd2UgdXNlIGRlYnVnIGxvZyBmb3IgdGhhdAoJICBNYWtlIGFsbG9jIHRyYWNlIHNpbXBsZXIsIHJlbW92aW5nIHNvbWUgbWV0aG9kcy4KCSAgQWN0aXZhdGUgYWxsb2MgdHJhY2Ugd2l0aCBhIEdTVF9UUkFDRT0zIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBEdW1wIGxlYWtlZCBvYmplY3RzIGF0ZXhpdC4KCSAgUHJvdmlkZSBhbiBvZmZzZXQgaW4gdGhlIG9iamVjdCB3aGVyZSB0aGUgR1R5cGUgY2FuIGJlIGZvdW5kIHNvIHRoYXQgbW9yZQoJICB2ZXJib3NlIGluZm8gY2FuIGJlIGdpdmVuIGZvciBvYmplY3RzLgoJICBSZW1vdmUgLVQgb3B0aW9uIGZyb20gZ3N0LWxhdW5jaCBiZWNhdXNlIHRyYWNpbmcgaXMgbm93IHRyaWdnZXJlZCB3aXRoIHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMTItMDEtMjUgMTI6MzU6NDMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGFuc3dlciBjYXBzIHF1ZXJpZXMgd2l0aCBvdXIgdHlwZWZvdW5kIGNhcHMKCSAgVGhpcyBhdm9pZHMgbWVyZWx5IGZvcndhcmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBzaW5rLCBhbmQgZ2V0dGluZwoJICBzb21ldGhpbmcgdXNlbGVzcyBzdWNoIGFzIEFOWS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzU3MQoKMjAxMi0wMS0yNyAxNjoxODowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogRG8gdHlwZWZpbmRpbmcgZnJvbSBhIHNlcGFyYXRlIHRocmVhZCBhbmQgbm90IGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbgoKMjAxMi0wMS0yNyAxNTozMjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lbW9yeSBsZWFrCgkgIHVubWFwIHRoZSBidWZmZXIgbWVtb3J5IG9uIGVycm9ycy4KCjIwMTItMDEtMjcgMTU6MzI6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICB0cmFjZTogbWFrZSBhbGxvYyB0cmFjZSB3b3JrIGZvciBtaW5pb2JqZWN0IGFnYWluCgoyMDEyLTAxLTI3IDE1OjA5OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmgKCjIwMTItMDEtMjcgMTU6MDI6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBNb3ZlIHByaXZhdGUgZmllbGRzIGZyb20gdGhlIHB1YmxpYyBzdHJ1Y3RzIHRvIHByaXZhdGUgc3RydWN0cwoJICBGaXhlcyBidWcgIzY2ODc2NC4KCjIwMTItMDEtMjcgMTM6MDU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogbm8gZmFuY3kgdXRmOCBjaGFycyBpbiB0aGUgZ2kgYW5ub3RhdGlvbnMKCjIwMTItMDEtMjcgMTI6NTA6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBmaXggc29tZSBtb3JlIGxlYWtzCgoyMDEyLTAxLTI3IDEyOjMzOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogRml4IGhhbmRsaW5nIG9mIHRoZSBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50CgoyMDEyLTAxLTI3IDExOjMyOjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiBhZGQgYSBmZXcgY29uc3RzIHRvIHJlYWQgb25seSBkYXRhCgoyMDEyLTAxLTI3IDEyOjIyOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBnaSBhbm5vdGF0aW9ucwoKMjAxMi0wMS0yNyAxMjoxNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bml0IHRlc3QKCjIwMTItMDEtMjcgMTI6MTA6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGZpeCBsZWFrcwoKMjAxMi0wMS0yNyAxMTo0MDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhdm9pZCBtZW1vcnkgbGVhawoJICBVbnJlZiB0aGUgb2xkIG1lbW9yeSBpbiBtYWtlX21hcHBlZC4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbwoKMjAxMi0wMS0yNyAxMTo0MDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCBjYXBzIGxlYWsKCjIwMTItMDEtMjcgMTE6MDE6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eS9mYWtle3NyYyxzaW5rfTogSW5jbHVkZSBldmVudCB0eXBlIG5hbWUgaW4gdGhlIGRlYnVnIG91dHB1dAoKMjAxMi0wMS0yNyAxMDo1NDo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBNYXJrIHRoZSBuZXcgR0FQIGV2ZW50IGFzIG5vbi1zdGlja3kKCjIwMTItMDEtMjcgMTA6NDY6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBEcm9wIHRoZSBzdHJlYW0tc3RhcnQgYW5kIHN0cmVhbS1jb25maWcgZXZlbnRzIGJ5IGRlZmF1bHQKCjIwMTItMDEtMjcgMTA6NDI6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50IHJlYmFzZQoKMjAxMi0wMS0yNyAxMDo0MTowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50IGFzIGZpcnN0IGV2ZW50IGV2ZXIKCjIwMTItMDEtMjcgMTA6MzA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBjb25zdHJ1Y3RvciBhbmQgZG9jcyBmb3IgdGhlIG5ldyBTVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDEtMjYgMTk6Mjg6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgdXNlciBkYXRhIHRvIGNoYWluIGZ1bmN0aW9ucwoKMjAxMi0wMS0yNiAxODo1NjoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggdHlwbwoKMjAxMi0wMS0yNiAxODoyMjoyOSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZXN0b3JlIGRhdGUvdGltZSB0eXBlIHRvIEdzdERhdGVUaW1lCgkgIFRoZSBjaGFuZ2UgdG8gR0RhdGVUaW1lIHdhcyBhcHBhcmVudGx5IGFjY2lkZW50YWwsIGFuZAoJICBicmVha3MgcGx1Z2lucyB0cnlpbmcgdG8gZmVlZCBhIEdzdERhdGVUaW1lIHRvIHRoZSB0YWdsaXN0IEFQaS4KCjIwMTItMDEtMjYgMTk6MTI6MTYgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIGdzdDogZ3N0X3BhcnNlX2xhdW5jaCBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZQoKMjAxMi0wMS0yNiAxODo1Mzo1MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogU2V0ICJ0cmFuc2ZlciBub25lIiB0byByZXR1cm4gdmFsdWVzIHRoYXQgc2hvdWxkbid0IGJlIGZyZWVkCgoyMDEwLTEyLTA0IDE4OjUzOjU1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGNhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MDExCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDI1NjIKCjIwMTItMDEtMjYgMTY6MzE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgc29tZSBtb3JlIGV2ZW50cwoJICBBZGQgc29tZSBtb3JlIG5ldyBldmVudHMgdGhhdCB3ZSB3YW50IHRvIGltcGxlbWVudCBsYXRlci4KCjIwMTItMDEtMjYgMTU6MTU6MjEgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZ3N0bWVtb3J5OiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIKCjIwMTItMDEtMjYgMTQ6NTc6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDEtMjYgMTQ6NTU6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogVXNlIGNvcnJlY3Qgc2l6ZSBmb3IgY2FwcyBhbGxvY2F0aW9uCgoyMDEyLTAxLTI2IDE0OjQ1OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IE1ha2UgR3N0Q2FwcyBwdWJsaWMgc3RydWN0IG1vcmUgb3BhcXVlIGJ5IG1vdmluZyB0aGUgcHJpdmF0ZSBwb2ludGVyIGludG8gdGhlIGltcGxlbWVudGF0aW9uCgoyMDEyLTAxLTI2IDE0OjMzOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgY2FwczogU3RvcmUgYSBwb2ludGVyIHRvIEdzdENhcHMgaW4gR3N0U3RhdGljQ2FwcwoJICAuLi5pbnN0ZWFkIG9mIHVzaW5nIGhhY2tpc2ggc3ViY2xhc3Mgb2YgR3N0Q2Fwcywgd2hpY2ggYWxzbwoJICBoYWQgc29tZSB0aHJlYWQtc2FmZXR5IHByb2JsZW1zLgoKMjAxMi0wMS0yNiAxMzoyNDo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBldmVudDogcmVtb3ZlIHRoZSBzdGlja3kgZXZlbnQgaW5kZXgKCSAgV2UgZG9uJ3QgdXNlIHRoZSBzdGlja3kgZXZlbnQgaW5kZXggYW55bW9yZSwgb3JkZXJpbmcgb2YgdGhlIGV2ZW50cyBhcmUgaG93IHRoZXkKCSAgd2VyZSBzZW50IGluaXRpYWxseS4KCSAgQWRkIHNvbWUgbW9yZSBwYWRkaW5nIGJldHdlZW4gdGhlIGV2ZW50IG51bWJlcnMgc28gdGhhdCB3ZSBjYW4gaW5zZXJ0IG5ldyBldmVudHMKCSAgbGF0ZXIuCgoyMDEyLTAxLTI2IDEwOjQ4OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBkb2NzOiByZW1vdmUgY29sbGVjdHBhZHMgZnJvbSBkb2NzLCBmaXggYnVpbGQKCjIwMTItMDEtMjYgMTA6MjI6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXNlIEdzdFZhbHVlQXJyYXkgaW5zdGVhZCBvZiBHVmFsdWVBcnJheSBmb3Igc3RvcmluZyBvcHRpb25zIGluIHRoZSBjb25maWcKCSAgU2luY2UgR1ZhbHVlQXJyYXkgaXMgZGVwcmVjYXRlZC4gSXQncyBhbGwgb25seSBpbnRlcm5hbCBhbnl3aGVyZSBoZXJlLAoJICBidXQgaWYgd2UgdXNlIEdzdFZhbHVlQXJyYXkgdGhlIG9wdGlvbiBzdHJpbmdzIGdldCBzZXJpYWxpemVkIG5pY2VseQoJICBpbiB0aGUgZGVidWcgbG9ncyBhdCBsZWFzdC4KCjIwMTItMDEtMjYgMDk6MjY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBzdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgR19UWVBFX1ZBTFVFX0FSUkFZCgkgIEZvciBub3cgYW55d2F5LgoKMjAxMi0wMS0yNiAxMTo0MjoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY29sbGVjdHBhZHMyOiBVbml0IHRlc3QgaXMgdmFsZ3JpbmQgY2xlYW4gbm93CgoyMDEyLTAxLTI2IDExOjQwOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogRml4IHVuaXQgdGVzdCB0byBhY3R1YWxseSB3b3JrIGFnYWluCgoyMDEyLTAxLTI2IDExOjM4OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzMi5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICBjb2xsZWN0cGFkczI6IFBvcnQgY29sbGVjdHBhZHMgdW5pdCB0ZXN0IHRvIGNvbGxlY3RwYWRzMgoJICBDdXJyZW50bHkgZmFpbHMgYnV0IHJlYWxseSBzaG91bGRuJ3QuCgoyMDEyLTAxLTI2IDExOjAxOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHByb2JlIGlkIHRvIHRoZSBpbmZvCgoyMDEyLTAxLTI2IDEwOjQ4OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiBSZW1vdmUgb2xkIGNvbGxlY3RwYWRzCgkgIFN0aWxsIGhhdmUgdG8gcmVuYW1lIGNvbGxlY3RwYWRzMiB0byBjb2xsZWN0cGFkcyBiZWZvcmUgdGhlIDEuMCByZWxlYXNlLgoKMjAxMi0wMS0yNiAxMDozMDoyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IERvbid0IGZvcndhcmQgQ0FQUyBldmVudCBhdXRvbWF0aWNhbGx5CgoyMDEyLTAxLTI1IDE4OjQ5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRml4IGhhbmRsaW5nIG9mIHRoZSBldmVudCBmdW5jdGlvbiBhbmQgZG9jdW1lbnQgaXQKCSAgVGhlIGV2ZW50IGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGZvcndhcmQvZHJvcCB0aGUgZXZlbnQgaW4gYW55IGNhc2UKCSAgbm93IGFuZCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGV2ZW50LgoKMjAxMi0wMS0yNSAxODozNjo0MiArMDEwMCAgSmFzb24gRGVSb3NlIDxqZGVyb3NlQG5vdmFjdXQuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UKCjIwMTItMDEtMjUgMTk6NDE6MDMgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdF9waXBlbGluZV9uZXcgbm93IHJldHVybnMgYSBmbG9hdGluZyByZWZlcmVuY2UuCgoyMDEyLTAxLTI1IDE3OjI3OjQwICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiByZXR1cm5zIGEgbmV3IHJlZmVyZW5jZQoKMjAxMi0wMS0yNSAxNToxNDoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHVzZSBHQXJyYXkgZm9yIGludGVybmFsIGFycmF5cyBpbnN0ZWFkIG9mIHRoZSBub3ctZGVwcmVjYXRlZCBHVmFsdWVBcnJheQoKMjAxMi0wMS0yNSAxNjowMTowMiArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogQ2hhbmdlZCBpbnRyb3NwZWN0aW9uIHRyYW5zZmVyIGZsYWcgdG8gKHRyYW5zZmVyIGZsb2F0aW5nKQoJICBmb3IgZ3N0X3BhZF9uZXcsIGdzdF9naG9zdF9wYWRfbmV3IGFuZCBnc3RfYmluX25ldyBjb25zdHVjdG9ycy4gRml4ZXMKCSAgc2VnZmF1bHRzIGR1ZSBvZiB0cmFuc2ZlciBmdWxsIGFuZCBmbG9hdGluZyByZWYgcHJvYmxlbS4KCjIwMTItMDEtMjUgMTM6NDY6MTMgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0NjNiYzAgdG8gN2ZkYTUyNAoKMjAxMi0wMS0yNCAxNDozNzoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBmbGFncyB0byB0aGUgbWFwaW5mbwoKMjAxMi0wMS0yMCAxNjoxMDoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBtYWtlIGd1aW50OCAqIGZvciBlYXN5IHVzYWdlCgoyMDEyLTAxLTIwIDE0OjU2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogYWRkIG1ldGhvZCB0byBjcmVhdGUgbWFwcGVkIG1lbW9yeQoJICBBZGQgYSBtZXRob2QgdG8gY3JlYXRlIGEgR3N0TWVtb3J5IHdpdGggdGhlIGRlc2lyZWQgbWFwcGluZy4gTWFrZXMgYSBjb3B5IG9mIHRoZQoJICBtZW1vcnkgaWYgaXQgaXMgY3VycmVudGx5IGluIHVzZS4KCjIwMTItMDEtMjAgMTQ6MjM6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJICBBZGQgbmV3IEdzdE1hcEluZm8KCSAgVXNlIGEgc3RydWN0dXJlIHRvIGhvbGQgaW5mbyBhYm91dCB0aGUgbWFwcGluZy4gVGhlIGFwcGxpY2F0aW9uIHRoZW4ga2VlcHMgdHJhY2sKCSAgb2YgdGhpcyBzdGF0ZSBhbmQgd2UgY2FuIHVzZSBpdCB0byB1bm1hcCB0aGUgbWVtb3J5IGFnYWluIGxhdGVyLgoKMjAxMi0wMS0yNSAxMTo0OTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSAgY29udHJvbGJpbmRpbmdzOiBuYW1lIGlzIG5vdCBhIGNvbnN0CgkgIEl0IGdldHMgbW9kaWZpZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZSBvYmplY3QuIEZpeGVzIGJ1aWxkLgoKMjAxMi0wMS0yNSAxMTo0MzoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAxLTI1IDExOjM3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmE1OTAxNiB0byBjNDYzYmMwCgoyMDEyLTAxLTI0IDIxOjUzOjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBjb250cm9sbGVyOiBjbGVhbnVwIHRoZSBjb250cm9sLWJpbmRpbmcgY29uc3RydWN0aW9uCgkgIFRoaXMgaXMgbm93IGJpbmRpbmdzIGZpcmVuZGx5IGFzIF9uZXcgaXMganVzdCBhIGNsYXNzaWMgYyBjb252ZW5pZW5jZSBhbmQgYWxsCgkgIHRoZSB3b3JrIGlzIGRvbmUgaW4gYSBjb25zdHJ1Y3Rvci4gQXMgYSBzaWRlIGVmZmVjdCBfbmV3IG5ldmVyIGZhaWxzLgoJICBGaXggdGhlIHRlc3RzLgoKMjAxMi0wMS0yNCAxNDo0MDozMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGhhbmRsZSBOVUxMIGRlc3QgaW4gYml0bWFzay9iaXRtYXNrIGludGVyc2VjdGlvbgoKMjAxMS0xMi0wMSAxMjo0MzowMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGFkZCBiYXNpYyB0ZXN0cyBmb3IgbmV3IHN0ZXBwZWQgcmFuZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyOTQKCjIwMTEtMTEtMzAgMTQ6NDU6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogYWRkIHN0ZXBwZWQgcmFuZ2VzCgkgIGludCBhbmQgaW50NjQgcmFuZ2VzIGNhbiBub3cgaGF2ZSBhbiBvcHRpb25hbCBzdGVwIChkZWZhdWx0aW5nIHRvIDEpLgoJICBNZW1iZXJzIG9mIHRoZSByYW5nZSBhcmUgdGhvc2UgdmFsdWVzIHdpdGhpbiB0aGUgbWluIGFuZCBtYXggYm91bmRzCgkgIHdoaWNoIGFyZSBhIG11bHRpcGxlIG9mIHRoaXMgc3RlcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0zMCAxNzo1ODowNyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBhZGQgYSA2NCBiaXQgdmVyc2lvbiBvZiBHQ0QgY2FsY3VsYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0wNCAxODoyNjoxNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGVuZm9yY2UgaWRlbnRpY2FsIGJhc2ljIHR5cGVzIGluIGxpc3RzLCBhcnJheXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjU4NwoKMjAxMi0wMS0yMyAxMDozMjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgYmVuY2htYXJrczogYWRkIG1pc3NpbmcgaW5jbHVkZQoKMjAxMi0wMS0yMyAxMTowMzowOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiByZWdpc3RlciBhbGwgcHJvcGVydGllcyBpbiBvbmUgZ28KCjIwMTItMDEtMjMgMTE6MDI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiB1cGRhdGUgY29udHJvbGxlciBhcGkgZGVzaWduCgoyMDEyLTAxLTIxIDIwOjAzOjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBhbGxvdyBkaWZmZXJlbnQgY29udHJvbGJpbmRpbmdzCgkgIE1ha2UgY29udHJvbGJpbmRpbmcgYW4gYWJzdHJhY3QgYmFzZWNsYXNzLiBNb3ZlIGltcGxlbWVudGF0aW9uIHRvIGNvbnRyb2wtCgkgIGJpbmRpbmctZGlyZWN0IGFuZCBhZGQgYSBjb250cm9sLWJpbmRpbmctYXJnYi4gQWRkIGFuIGV4YW1wbGUuCgoyMDEyLTAxLTIyIDIyOjQ0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIFJlcGxhY2UgZGVwcmVjYXRlZCBHU3RhdGljTXV0ZXggd2l0aCBHTXV0ZXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjIwNwoKMjAxMi0wMS0yMiAxNToyMzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogZml4IHR5cG8gaW4gZ3N0LWluc3BlY3QgZGVidWcgbWVzc2FnZQoKMjAxMi0wMS0yMiAwMTozOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXNlIEdMaWIncyB0eXBlIGZvciBHRXJyb3IgaW5zdGVhZCBvZiBvdXIgb3duCgkgIFdlIGludHJvZHVjZWQgb3VyIG93biB3aGVuIEdMaWIgZGlkbid0IHdhbnQgdG8gYWRkIGEgR1R5cGUKCSAgZm9yIEdFcnJvci4gQnV0IG5vdyB0aGF0IHRoZXJlIGlzIG9uZSwgd2UgY2FuIHVzZSBHTGliJ3MKCSAgdW5jb25kaXRpb25hbGx5IGFuZCByZW1vdmUgb3VyIHZlcnNpb24uCgoyMDEyLTAxLTIyIDAxOjI3OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBmaXggc2l6ZSBvZiBhdG9taWMgY291bnRlcgoKMjAxMi0wMS0yMiAwMToyNToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIFVzZSByZWNlbnQgR0xpYiBBUEkgdW5jb25kaXRpb25hbGx5IG5vdyB0aGF0IHdlIGRlcGVuZCBvbiB0aGUgbGF0ZXN0IEdMaWIKCjIwMTItMDEtMjIgMDA6NDI6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHRyYWNlOiBkb24ndCB1c2UgZGVwcmVjYXRlZCBHU3RhdGljTXV0ZXggQVBJIGluIChzdGlsbCkgcHVibGljIGhlYWRlcgoKMjAxMi0wMS0yMSAxMjo1Njo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogc2V0IEdJX1RZUEVMSUJfUEFUSCBpbiBnc3QtdW5pbnN0YWxsZWQKCSAgU28gcHlnaSBmaW5kcy91c2VzIHRoZSBsb2NhbCBnLWkgZmlsZXMuCgoyMDEyLTAxLTIwIDE4OjA2OjA0ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmguaW46CgkgIGxpYmNoZWNrOiBtYWtlIHRoZSBkZWZpbml0aW9uIG9mIGZhaWwgbm90IGZhaWwgd2l0aCBub24gR0NDIGNvbXBpbGVycwoKMjAxMi0wMS0yMCAxNDo0MjozMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogaW1wcm92ZSBjb250cm9sIGJpbmRpbmcgaGFuZGxpbmcKCSAgQ2hhbmdlIF9zZXRfY29udHJvbF9iaW5kaW5nIHRvIF9hZGRfY29udHJvbF9iaW5kaW5nIGFuZCB0YWtlIG93bmVyc2hpcC4gQWRkIGEKCSAgX3JlbW92ZV9jb250cm9sX2JpbmRpbmcgZnVuY3Rpb24uCgoyMDEyLTAxLTIwIDA4OjI3OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBjb252ZW5pZW5jZSBhcGkgZm9yIGNvbnRyb2wgc291cmNlcwoJICBUaGlzIGlzIG5lZWRlZCB0byBzdXBwb3J0IG11bHRpcGxlIGtpbmRzIG9mIGNvbnRyb2wtYmluZGluZ3MuCgoyMDEyLTAxLTE5IDE1OjE3OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBOVUxMIGZyb20gZ2V0Y2FwcwoJICBJZiB0aGUgZ2V0Y2FwcyBmdW5jdGlvbnMgcmV0dXJucyBOVUxMLCByZXR1cm4gRkFMU0UgZnJvbSB0aGUgQ0FQUyBxdWVyeS4KCjIwMTItMDEtMTkgMTU6MTc6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgbGlzdHMgY29ycmVjdGx5CgoyMDEyLTAxLTE3IDE2OjIzOjMzIC0wNTAwICBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IGFkZCAtLWRpc2FibGUtZmF0YWwtd2FybmluZ3MgY29uZmlndXJlIG9wdGlvbgoJICBJdCdzIHJlYXNvbmFibGUgdG8gYnVpbGQgZnJvbSBnaXQsIGJ1dCBub3Qgd2FudCB0byB0dXJuIGFsbCBjb21waWxlcgoJICB3YXJuaW5ncyBpbnRvIGZhdGFsIGVycm9ycy4gIEZvciBleGFtcGxlLCBHTk9NRSdzIGpoYnVpbGQgaGVscHMgcGVvcGxlCgkgIGdldCBuZXdlciB2ZXJzaW9ucyBvZiBzb2Z0d2FyZSB0aGFuIGNhbWUgZnJvbSB0aGVpciBkaXN0cmlidXRpb24sIGJ1dAoJICB0aGV5IG1heSBub3QgbmVjZXNzYXJpbHkgd2FudCB0byBoYWNrIG9uIGl0LgoKMjAxMi0wMS0xOSAxMjo1Nzo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIHRlc3RzOiBjbG9ja3N0cmVzczogcGVyZm9ybSBzYW5pdHkgY2hlY2sgb24gdGhyZWFkIG51bWJlciBhcmd1bWVudAoKMjAxMi0wMS0xOSAwOToxMjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5IGltcHJvdmVtZW50cwoJICBNYWtlIHRoZSBtZW1vcnkgb2JqZWN0IHNpbXBseSBtYW5hZ2UgdGhlIGRhdGEgcG9pbnRlciBhbmQgdGhlIG1heHNpemUgYW5kIG1vdmUKCSAgdGhlIG9mZnNldCBhbmQgc2l6ZSBoYW5kbGluZyB0byBjb21tb24gZnVuY3Rpb25hbGl0eS4KCSAgVXNlIHRoZSBSRUFET05MWSBmbGFnIHRvIHNldCBhIHJlYWRvbmx5IGxvY2suCgkgIFJlbW92ZSB0aGUgZGF0YSBhbmQgc2l6ZSBmaWVsZHMgZnJvbSB0aGUgdW5tYXAgbWV0aG9kLiBXZSBuZWVkIGFuIGV4cGxpY2l0CgkgIHJlc2l6ZSBvcGVyYXRpb24gaW5zdGVhZCBvZiB1c2luZyB0aGUgdW5tYXAgZnVuY3Rpb24uCgkgIE1ha2UgaW50ZXJuYWwgaGVscGVyIGxvY2sgYW5kIHVubG9jayBmdW5jdGlvbnMuCgkgIFVwZGF0ZSB1bml0IHRlc3QgYW5kIHVzZXJzIG9mIHRoZSBvbGQgQVBJLgoKMjAxMi0wMS0xOSAxMTo0Mzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGJ1cyBkb2NzCgoyMDEyLTAxLTEzIDE3OjQ1OjE3IC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogYWRkIHZpc3VhbCBzdHVkaW8gSURFIGZpbGVzIGFuZCBPUyBYIC5EU19TdG9yZSBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODk5CgoyMDEyLTAxLTE5IDA5OjI3OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICBVcGRhdGUgZm9yIG5ldyBndGhyZWFkIEFQSQoKMjAxMi0wMS0xOCAxNjo1Mjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogR0lPIGNoZWNrIGlzIG5vdyBpbiBnc3QtZ2xpYjIubTQKCjIwMTItMDEtMTggMTY6NDU6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwODA3MTg3IHRvIDJhNTkwMTYKCjIwMTItMDEtMTggMTY6MTQ6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYiAyLjMxLjEwIGFuZCBpbXByb3ZlIEdJTyBjaGVjawoKMjAxMi0wMS0xOCAxMjowNzo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEFsd2F5cyBjYWxsIDo6cHJvcG9zZV9hbGxvY2F0aW9uIHZmdW5jCgkgIEFuZCBvbmx5IGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkgaWYgd2UncmUgd29ya2luZyBpbgoJICBwYXNzdGhyb3VnaCBtb2RlIGlmIG5vIDo6cHJvcG9zZV9hbGxvY2F0aW9uIGlzIGltcGxlbWVudGVkLgoJICBJbiBwbGFjZSBidWZmZXIgdHJhbnNmb3JtYXRpb25zIHdpbGwgY2hhbmdlIHRoZSBidWZmZXIKCSAgY29udGVudCBhbmQgcmVxdWlyZSBleHBsaWNpdCBoYW5kbGluZyBvZiBhbGwgbWV0YXMuCgoyMDEyLTAxLTE4IDExOjM3OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJ5IGRlZmF1bHQKCSAgVGhpcyBoYXMgdG8gYmUgaGFuZGxlZCBleHBsaWNpdGVseSBieSBlbGVtZW50cyB0bwoJICBtYWtlIHN1cmUgdGhhdCB0aGV5IHN1cHBvcnQgYWxsIHRoZSBtZXRhcyBwYXNzZWQKCSAgaW4gdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIE1ldGFzIGhhdmUgdG8gc3VwcG9ydGVkIGV4cGxpY2l0ZWx5LCBvdGhlcndpc2UgdGhlCgkgIHF1ZXJ5IHdpbGwgZmFpbC4gQWxsIGVsZW1lbnRzIGluIGEgY2hhaW4gbmVlZCB0bwoJICBzdXBwb3J0IGEgc3BlY2lmaWMgbWV0YSB0byBhbGxvdyBpdHMgdXNhZ2UuCgoyMDEyLTAxLTE4IDAxOjMxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZ3N0OiBzdXBwcmVzcyBzb21lIG1vcmUgZGVwcmVjYXRlZCB0aHJlYWQgYXBpIHVudGlsIHdlIGZpeCBpdCB1cAoJICBXaGljaCBzaG91bGQgYmUgc29vbiwgc2luY2Ugd2UgYWxyZWFkeSBkZXBlbmQgb24gYW4gdW5zdGFibGUgZ2xpYiBmb3IgLWJhc2UuCgoyMDEyLTAxLTE4IDAxOjE4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGVzIGZvciBhcGkgY2hhbmdlcwoKMjAxMi0wMS0xNyAyMzo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IHJlbW92ZSAgLS1kaXNhYmxlLW5ldCBvcHRpb24gYW5kIGFsd2F5cyBidWlsZCBsaWJnc3RuZXQKCSAgSXQgc2hvdWxkIHdvcmsgZXZlcnl3aGVyZSBub3csIGFuZCAtYmFzZSBhbmQgLWdvb2QgZGVwZW5kIG9uCgkgIHRoZSBHc3ROZXRNZXRhIEFQSS4KCjIwMTItMDEtMTcgMjM6NTI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIHNvbWUgc29ja2V0IGNydWZ0CgoyMDEwLTA1LTA1IDE2OjMzOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBwb3J0IHRvIHVzZSBnaW8ncyBuZXR3b3JraW5nIEFQSQoJICBTb21lIHdhcnRzIHN0aWxsLCBidXQgaXQncyBhIHN0YXJ0LgoKMjAxMi0wMS0xNyAxNjo1MDoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIG5ldDogQWRkIEdJTyB0byB0aGUgZ2ktc2Nhbm5lciBwYWNrYWdlcwoKMjAxMi0wMS0xNiAxMzozNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgIG5ldGFkZHJlc3NtZXRhOiBVc2UgR1NvY2tldEFkZHJlc3MgaW5zdGVhZCBvZiBvdXIgb3duIHdyYXBwZXIgdHlwZQoKMjAxMi0wMS0xNiAxNTo1NzozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBtYWtlIHdyaXRhYmlsaXR5IGNoZWNrIGludG8gYSBtZXRob2QKCSAgVXNlIGEgbWV0aG9kIHRvIGNoZWNrIGZvciB3cml0YWJpbGl0eSBpbnN0ZWFkIG9mIGEgbWFjcm8gc28gdGhhdCB3ZSBjYW4gY2hhbmdlCgkgIHRoZSBpbXBsZW1lbnRhdGlvbiBtb3JlIGVhc2lseS4KCjIwMTItMDEtMTYgMTI6MjQ6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBpbXByb3ZlIG1lbW9yeSB0ZXN0CgoyMDEyLTAxLTE2IDEyOjI0OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMi0wMS0xMSAxMDo1OTo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZW5zdXJlIGF1dG9tYWdpYyBfdW5tYXAgaW4gc29tZSBtb3JlIGNhc2VzCgoyMDExLTExLTE1IDE3OjQyOjU2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdXRvbWF0aWNhbGx5IHVubWFwIG9uIGNsZWFyaW5nCgkgIFdoZW4gX2NsZWFyIGdldHMgY2FsbGVkIGJldHdlZW4gX21hcCBhbmQgX3VubWFwLCBidWZmZXJzCgkgIHdpbGwgYmUgdW5yZWZmZWQuIElmIHRoZSBhZGFwdGVyIHdhcyBtYXBwZWQsIG1lbW9yeSBsZWFrcwoJICBtYXkgb2NjdXIuCgkgIFdoaWxlIGNhbGxpbmcgX2NsZWFyIGJldHdlZW4gX21hcCBhbmQgX3VubWFwIGRvZXMgbm90IHNlZW0KCSAgbGlrZSBzdWNoIGEgZ3JlYXQgaWRlYSwgdGhpcyBpcyBwb3NzaWJsZSBpbiB0aGUgYXVkaW8KCSAgZW5jb2RlciBiYXNlIGNsYXNzLCBhcyBfY2xlYXIgbWF5IGJlIGNhbGxlZCBpbiBfZmluaXNoX2ZyYW1lLgoJICBTaW5jZSB0aGUgYXVkaW8gZW5jb2RlciByZWxpZXMgb24gZmx1c2hpbmcgdG8ga2VlcCB0cmFjayBvZgoJICB0aW1lc3RhbXBzLCBkZWxheWluZyBmbHVzaGluZyB0aWxsIGFmdGVyIGhhbmRsZV9mcmFtZSBzZWVtcwoJICBkYW5nZXJvdXMuCgkgIFNvLCB3ZSB1bm1hcCBvbiBjbGVhciwgYXMgdGhlIG5leHQgdW5tYXAgd2lsbCBkbyBub3RoaW5nLgoJICBUaGlzIG1ha2VzIF9jbGVhciBzYWZlIHRvIGNhbGwgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAsCgkgIHdoaWxlIGF2b2lkaW5nIGxlYWtpbmcgdGhlIG1hcHBlZCBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQxMzMKCjIwMTItMDEtMTMgMTQ6MjA6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByZXZlbnQgdW5saWtlbHkgY2FwcyBsZWFrCgoyMDEyLTAxLTEzIDEwOjQzOjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwbHVnIGZhY3RvcnkgbGVhayBvbiBlcnJvcgoKMjAxMi0wMS0xMyAwMDoyMjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0b29scy9nc3QtaW5zcGVjdC5jCgoyMDEyLTAxLTEyIDIwOjQ2OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBHU1RfVFlQRV9EQVRFLCBvdXIgb3duIEdEYXRlIHR5cGUKCSAgV2hpY2ggd2UgaGFkIHRvIGFkZCBiZWNhdXNlIEdMaWIgZGlkbid0IGhhdmUgaXQKCSAgYmFjayBpbiB0aGUgZGF5LiBQb3J0IGV2ZXJ5dGhpbmcgdG8gcGxhaW4gb2xkCgkgIEdfVFlQRV9EQVRFLCB3aGljaCBpcyBhbHNvIGEgYm94ZWQgdHlwZS4gSWRlYWxseQoJICB3ZSdkIGp1c3QgdXNlIEdEYXRlVGltZSBmb3IgZXZlcnl0aGluZywgYnV0IGl0CgkgIGRvZXNuJ3Qgc3VwcG9ydCBub3Qgc2V0dGluZyBzb21lIG9mIHRoZSBmaWVsZHMKCSAgdW5mb3J0dW50ZWx5ICh3aGljaCB3b3VsZCBiZSB2ZXJ5IHVzZWZ1bCBmb3IKCSAgdGFnIGhhbmRsaW5nIGluIGdlbmVyYWwsIGlmIHdlIGNvdWxkIGV4cHJlc3MKCSAgMjAxMi0wMSBmb3IgZXhhbXBsZSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYzNTEKCjIwMTItMDEtMTIgMTk6NTM6MTEgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsZWFyIGFkYXB0ZXIgaW4gcmVzZXQgc28gYmFzZXBhcnNlIGlzIHJldXNhYmxlCgkgIEdzdEJhc2VQYXJzZSB3YXMgbm90IGNsZWFyaW5nIGl0cyBhZGFwdGVyIG9uIHJlc2V0IGNhdXNpbmcKCSAgcHJvYmxlbXMgd2hlbiBhIHBpcGVsaW5lIHdlbnQgZm9yIGV4YW1wbGUgZnJvbSBQTEFZSU5HIHRvIE5VTEwKCSAgc3RhdGUgYW5kIHRoZW4gYmFjayB0byBQTEFZSU5HIGFnYWluLiBUaGUgZGF0YSBmcm9tIHRoZSBsYXN0CgkgIHN0cmVhbSB3b3VsZCBiZSB1c2VkIGluIHRoZSBwYXJzZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc0NDQKCjIwMTItMDEtMTIgMTU6NTA6NTMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0aW5zcGVjdDogZml4IGZlYXR1cmVzIGFuZCBsaXN0IGxlYWtzCgoyMDEyLTAxLTEyIDExOjAzOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTAxLTExIDEyOjE5OjIwICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBjbGFyaWZ5IF9nZXQgZG9jcyBhYm91dCB0aGUgcmV0dXJuZWQgcmVmZXJlbmNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc2ODkKCjIwMTItMDEtMTAgMTM6MDA6MDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMS0wNiAxNjozOTowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2VuZCBjYXBzIGFnYWluIGFmdGVyIGFjdGl2YXRpb24KCSAgQXZvaWRzIGVuZGluZyB1cCBpbiBjYXNlcyB3aGVyZSB0eXBlZmluZCBnZXRzIGFjdGl2YXRlZCBpbiBwdWxsLW1vZGUKCSAgYW5kIGNhcHMgbmV2ZXIgZ2V0IHNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjczMzcKCjIwMTItMDEtMDkgMTU6NTk6MDkgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgQWRkIGxhdGVzdCBzcGVjZmlsZSBjaGFuZ2VzCgoyMDEyLTAxLTA5IDE1OjU4OjQ1ICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgQWxzbyBhZGQgaGVhZGVyZmlsZQoKMjAxMi0wMS0wOSAxNTo1Nzo1MSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEZpeCBkb3RmaWxlIEFQSSB0byBiZSBleHBvcnRlZCBzaW5jZSBtYWNyb3MgY2FuJ3QgYmUgR0kgYm91bmQKCjIwMTItMDEtMDkgMTM6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBpZ25vcmUgbmV3IG1lbW9yeSB0ZXN0IGJpbmFyeQoKMjAxMi0wMS0wOSAwMzoxNDo0MSAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICBGaXggcHJpbnRmIGZvcm1hdCBidWlsZCB3YXJuaW5ncwoKMjAxMi0wMS0wOSAxMzoxMDoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXcgc3RyaW5ncwoKMjAxMi0wMS0wNiAxNTowMToyNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFsbG93IE5VTEwgZGVzdCB3aGVuIHN1YnRyYWN0aW5nIGJpdG1hc2sKCSAgSGFwcGVucyB3aGVuIGNoZWNraW5nIGZvciBzdWJzZXRzIG9mIGNhcHMKCjIwMTItMDEtMDYgMTM6MzI6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZW5zdXJlIHdyaXRhYmxlIG1lbW9yeSBpbiBtZW1zZXQKCjIwMTItMDEtMDYgMTM6MTA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2hlY2sgc2VtYW50aWNzIG9mIG5lc3RlZCBtYXBwaW5ncwoJICBDb3VudCBob3cgbWFueSBtYXBwaW5ncyBhcmUgY3VycmVudGx5IGFjdGl2ZSBhbmQgYWxzbyB3aXRoIHdoYXQgYWNjZXNzIHBhdHRlcm4uCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvYyB3aXRoIHJlc3RyaWN0aW9ucyBvbiB0aGUgYWNjZXNzIHBhdHRlcm5zIGZvciBuZXN0ZWQKCSAgbWFwcGluZ3MuCgkgIENoZWNrIGlmIG5lc3RlZCBtYXBwaW5ncyBvYmV5IHRoZSBhY2Nlc3MgbW9kZSByZXN0cmljdGlvbnMgb2YgdGhlIGRlc2lnbiBkb2MuCgkgIEFkZCB2YXJpb3VzIHVuaXQgdGVzdHMgdG8gY2hlY2sgdGhlIGRlc2lyZWQgYmVoYXZpb3VyLgoKMjAxMi0wMS0wNiAxMzowNjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdW5tYXAgd2l0aCB0aGUgcmlnaHQgZGF0YSBwb2ludGVyCgkgIFVzZSB0aGUgb3JpZ2luYWwgZGF0YSBwb2ludGVyIHRvIHVubWFwIHRoZSBidWZmZXIgbWVtb3J5LgoKMjAxMi0wMS0wNiAxMDozOTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZG9jczogaW1wcm92ZSBtZW1vcnkgZG9jcwoKMjAxMi0wMS0wNiAwNzowMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGhhbmRsZSAtMSBzaXplIGluIHVubWFwCgkgIGhhbmRsZSAtMSBpbiB1bm1hcCBjb3JyZWN0bHkgd2hlbiB0aGUgb2Zmc2V0IGlzIG1vZGlmaWVkLgoKMjAxMi0wMS0wNiAwNjo0MzowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGltcHJvdmUgc2VtYW50aWNzIG9mIHVubWFwCgkgIE1ha2UgYW4gdW5tYXAgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGRhdGEgcG9pbnRlciB0aGFuIHRoZSBtYXAgY2FsbCB1cGRhdGUgdGhlCgkgIG9mZnNldCBmaWVsZC4gVGhpcyBhbGxvd3MgZm9yIGJvdGggb2Zmc2V0IGFuZCBzaXplIGFkanVzdGVtZW50cyBpbiB0aGUgdW5tYXAKCSAgY2FsbC4KCjIwMTEtMTEtMjkgMTQ6MjI6NDQgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IGNvbXBlbnNhdGUgZm9yIHJlbmRlci1kZWxheSB0d2ljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjk4CgoyMDEyLTAxLTA1IDE4OjE1OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIG1vcmUgY2hlY2tzCgkgIEFkZCBjaGVjayBmb3IgbWFwcGluZyBhbmQgcmVzaXppbmcKCjIwMTItMDEtMDUgMTc6Mjg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudAoJICBUYWtlIHRoZSBvZmZzZXQgaW50byBhY2NvdW50IHdoZW0gbWFwcGluZyBhbmQgdW5tYXBwaW5nIHRoZSBidWZmZXIuCgoyMDEyLTAxLTA1IDE3OjAyOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBjbGFyaWZ5IHJlc2l6ZSBhbmQgY3VycmVudCBtYXBwaW5ncwoKMjAxMi0wMS0wNSAxNjo0MTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGNsYXJpZnkgbmVzdGVkIG1hcHBpbmdzLCBhZGQgdW5pdCB0ZXN0CgoyMDEyLTAxLTA1IDEyOjMwOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTAxLTA1IDEzOjIyOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogYWRkIG1vcmUgbWVtb3J5IHVuaXQgdGVzdHMKCSAgQ2hlY2sgZm9yIHVubWFwIHdpdGggaW52YWxpZCBzaXplCgoyMDEyLTAxLTA1IDEzOjExOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgR3N0TWVtb3J5CgkgIEFkZCBhIEdzdE1lbW9yeSB1bml0IHRlc3QKCSAgQWRkIHNvbWUgbW9yZSBhc3NlcnRzIGluIEdzdE1lbW9yeSB0byBjYXRjaCBpbnZhbGlkIGNhc2VzLgoKMjAxMi0wMS0wNSAxMzowOToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgbWFjcm8gdG8gY2hlY2sgZm9yIG1lbW9yeSByZWZjb3VudAoKMjAxMi0wMS0wNSAxMjozOToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDExLTEyLTE2IDEzOjExOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHRlc3RzIGZvciB0aGUgYml0bWFzayB0eXBlCgoyMDExLTEyLTE2IDEyOjM5OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgImJpdG1hc2siIGFzIGFsaWFzIGZvciAoR3N0Qml0bWFzaykgd2hlbiAoZGUtKXNlcmlhbGl6aW5nIHZhbHVlcwoKMjAxMS0xMi0xNiAxMjozMjoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBBZGQgNjQtYml0IGJpdG1hc2sgdHlwZQoKMjAxMi0wMS0wMSAxNjozMjoyNyArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGJ1aWxkOiBkb24ndCBvdXRwdXQgY29uZmlndXJlIG9wdGlvbnMgdmlhIGF1dG9nZW4gaWYgJE5PQ09ORklHVVJFIGlzIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjk2CgoyMDEyLTAxLTA1IDAwOjMwOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBnc3Q6IGluY2x1ZGUgbG9jYWxlLmggYmVmb3JlIGFueSBvdGhlciBpMThuIGhlYWRlcnMKCSAgVGhpcyBpcyBhbHNvIGhvdyB3ZSBkbyBpdCBpbiAtYmFzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI5MAoKMjAxMi0wMS0wMSAxNjo0NjowNCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGNvbmZpZy5oOiBhZGRzIGFuZCB1c2VzIFN1blBybyB2aXNpYmlsaXR5IGF0dHJpYnV0ZSBmb3IgcHJvcGVyIGZ1bmN0aW9uIGV4cG9ydHMKCSAgRGVmaW5lIEdTVF9FWFBPUlQgZm9yIFN1blByby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4OQoKMjAxMi0wMS0wMSAxNjo0NzoxNCArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIHBsdWdpbnM6IGV4cGxpY2l0bHkgY2FzdCBpbml0aWFsaXphdGlvbiB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg4CgoyMDEyLTAxLTAxIDIwOjE3OjQxICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW5jbHVkZSBjb3JyZWN0IHBvbGwuaCBiYXNlZCBvbiBhdXRvY29uZiB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODYKCjIwMTItMDEtMDQgMjM6NDY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGNoZWNrIGZvciBzeXMvcG9sbC5oCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODYKCjIwMTItMDEtMDQgMTk6NTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhNjJmM2Q0IHRvIDA4MDcxODcKCjIwMTItMDEtMDQgMTA6MDQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogb25seSByZXNlcnZlIDYgZXh0cmEgZmxhZ3MKCSAgT25seSByZXNlcnZlIDYgZXh0cmEgZmxhZ3MgaW5zdGVhZCBvZiAxMCBzbyB0aGF0IG1vcmUgbWVkaWEgc3BlY2lmaWMgZmxhZ3MKCSAgYXJlIGF2YWlsYWJsZS4KCjIwMTItMDEtMDMgMTU6MjY6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTItMDEtMDMgMTU6MjU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIEdTVF9GTE9XX1VORVhQRUNURUQgLT4gR1NUX0ZMT1dfRU9TCgoyMDEyLTAxLTAzIDE1OjA1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IHJlc3RvcmUgVU5FWFBFQ1RFRAoKMjAxMi0wMS0wMyAxNTowMzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBkb2NzOiBmaXggc29tZSBkb2NzCgoyMDEyLTAxLTAzIDE0OjQ1OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wMS0wMyAxNDo0MzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGF2b2lkIGV4cG9zaW5nIHRoZSBsaXN0cyBpbiB0YWdzCgoyMDEyLTAxLTAzIDEzOjQyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYWRkIG1pc3NpbmcgZnVuY3Rpb25zCgkgIEFkZCBtaXNzaW5nIGFuZCBlc3NlbnRpYWwgZnVuY3Rpb25zIG5vdyB0aGF0IHdlIGNhbid0IGRpcmVjdGx5IHVzZSBHc3RTdHJ1Y3R1cmUKCSAgbWV0aG9kcyBvbiB0aGUgdGFnbGlzdCBhbnltb3JlLgoKMjAxMi0wMS0wMyAxMDo0MjozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5oOgoJICB2YWx1ZTogYWRkIG1hY3JvIHRvIGNoZWNrIGlmIGEgZ3ZhbHVlIGhvbGRzIGEgc2FtcGxlCgoyMDEyLTAxLTAyIDE1OjQ3OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgZG9jczogZml4IGJ1aWxkIG9mIGRvY3MgZXhhbXBsZXMKCSAgVXBkYXRlIGZvciByZWdpc3RyeSBtZXRob2QgcmVuYW1lCgoyMDEyLTAxLTAyIDE1OjM5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dXJuIGFzc2VydCBpbnRvIGEgcmVhbCBlcnJvcgoJICBQb3N0IGEgcmVhbCBlcnJvciBpbnN0ZWFkIG9mIGp1c3QgYXNzZXJ0aW5nLgoKMjAxMi0wMS0wMiAxNTozODoyNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgbGF0ZW5jeSBldmVudAoKMjAxMi0wMS0wMiAwMjozMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBnZXQgcmlkIG9mIGdzdF9kZWZhdWx0X3JlZ2lzdHJ5XyooKSBjb252ZW5pZW5jZSBtYWNyb3MKCSAgVGhleSdyZSBub3QgcmVhbGx5IHdvcnRoIGl0OiBoYXJkbHkgc2F2ZSBhbnkgdHlwaW5nLCBhbmQgYXJlbid0CgkgIGdyZWF0IGZvciBiaW5kaW5ncyBvciBnb2JqZWN0LWludHJvc3BlY3Rpb24uCgoyMDEyLTAxLTAyIDAyOjIyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiByZW5hbWUgZ3N0X3JlZ2lzdHJ5X2dldF9kZWZhdWx0KCkgdG8gZ3N0X3JlZ2lzdHJ5X2dldCgpCgkgIEl0J3Mgbm90IHJlYWxseSBhIGRlZmF1bHQgaWYgdGhlcmUgaXMgb25seSBvbmUgdGhhdCBjYW4ndCBiZSBjaGFuZ2VkLgoJICBTaG91bGQgd2UgcmV0dXJuIGEgcmVmIGxpa2UgZS5nLiBnX3ZvbHVtZV9tb25pdG9yX2dldCgpIGRvZXM/CgoyMDEyLTAxLTAyIDAyOjIxOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R0YWdsaXN0LmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jCgoyMDEyLTAxLTAyIDAwOjE3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IGFkZCBHU1RfVEFHX0xBTkdVQUdFX05BTUUKCSAgQVBJOiBHU1RfVEFHX0xBTkdVQUdFX05BTUUKCjIwMTItMDEtMDEgMjA6NTk6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiB1cGRhdGUgY29udHJvbGxlciBkZXNpZ24gZG9jCgoyMDEyLTAxLTAxIDIwOjU3OjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBzb21lIHRlc3RzCgoyMDEyLTAxLTAxIDIwOjU1OjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBzdXBwb3J0IGNvbnRyb2wgbWFwcGluZyBmb3IgZW51bXMKCSAgQWRkIGEgbWFwcGluZyBmb3IgZW51bSB0eXBlcyAoc3VwcG9ydGluZyBzcGFyc2UgZW51bXMpLiBBZGQgYSB0ZXN0LgoKMjAxMi0wMS0wMSAyMDo0Mzo1MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgbm9uc2Vuc2UgcGFydHMgZnJvbSB0ZXN0IG9iamVjdCBwcm9wZXJ0eSBkZXNjcmlwdGlvbnMKCjIwMTItMDEtMDEgMTg6NTQ6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBmaXggY3ViaWMgaW50ZXJwb2xhdGlvbiBmb3IgYXJyYXlzCgoyMDEyLTAxLTAxIDE4OjUwOjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSAgYXVkaW8tZXhhbXBsZTogYWxzbyBwbG90IHJldmVyc2Utc2F3CgoyMDEyLTAxLTAxIDE4OjQzOjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGNsZWFudXBzIGFuZCBmaXggdHJpYW5nbGUgY2FsY3VsYXRpb25zCgoyMDEyLTAxLTAxIDE4OjM0OjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGF1ZGlvLWV4YW1wbGU6IGZpeCB0aGUgZXhhbXBsZQoJICBXZSBuZWVkIHRvIHNjYWxlIHRoZSBmcmVxdWVuY3kgdmFsdWVzLgoKMjAxMi0wMS0wMSAxNToxNjowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBsZm9jb250cm9sc291cmNlOiBtYWtlIGNoYWluYWJsZQoJICBOb3cgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBjb250cm9sc291cmNlIGFyZSBpbiB0dXJuIGNvbnRyb2xhYmxlLiBBZGQgYW4gZXhhbXBsZQoJICB0byBzaG93IHRoZSB1c2FnZS4KCjIwMTItMDEtMDEgMTU6MDE6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBsb2dnaW5nIGFuZCBmaXggYXJyYXkgZnVuY3Rpb25zCgoyMDEyLTAxLTAxIDE0OjU1OjM1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgdGhlIHRlc3RzCgoyMDEyLTAxLTAxIDE0OjI4OjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcKCjIwMTEtMTItMzEgMTc6Mzc6MjAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNvbnZlcnQgTWFrZWZpbGUgc3BhY2VzIHRvIHRhYnMKCjIwMTEtMTItMzEgMTU6NTI6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sbGVyOiBhbHNvIHRlc3QgYXJyYXkgZnVuY3Rpb25zCgkgIEltcHJvdmUgdGhlIGV4YW1wbGUgdG8gYWxzbyBjb2xsZWN0IHZhbHVlIGFycmF5cyBhbmQgcGxvdCB0aGVtLgoKMjAxMS0xMi0zMSAxNToyNjoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIG9ic29sZXRlIEZJWE1FIGNvbW1lbnQKCjIwMTEtMTItMzEgMDk6NTY6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZml4IHRlc3RzCgkgIFNldCBhIGRlZmluZWQgdmFsdWUgdG8gY2hlY2sgZm9yIG5vLWNoYW5nZS4KCjIwMTEtMTItMzAgMTg6MzU6NDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBjb250cm9sLXNvdXJjZXM6IHR1cm4gaW50byBHc3RPYmplY3RzCgkgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBmb3IgY2hhaW5pbmcgdGhlbS4KCjIwMTEtMTItMzAgMTk6Mzc6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogcmVtb3ZlIHBhZGRpbmcgYW5kIHNpZ25hbCB2ZnVuY3MKCSAgQW5kIGZpeCBzaWduYWwgR1R5cGVzIGFuZCBtYXJzaGFsbGVyLiBObyBvbmUgd2lsbCBldmVyCgkgIG5lZWQgdG8gc3ViY2xhc3Mgb3VyIHJlZ2lzdHJ5LCBzbyBqdXN0IHJlbW92ZSB0aGUgcGFkZGluZwoJICBhbmQgdGhlIHNpZ25hbCB2ZnVuY3MuCgoyMDExLTEyLTMwIDE1OjM5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZGlzYWJsZSBHc3RJbmRleCB1bml0IHRlc3QKCjIwMTEtMTItMzAgMTU6MzE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSAgaW5kZXg6IHJlbmFtZSBHc3RBc3NvY0ZsYWdzIHRvIEdzdEluZGV4QXNzb2NpYXRpb25GbGFncwoJICBKdXN0IGluIGNhc2Ugd2UgcmVzdXJyZWN0IHRoaXMgbGF0ZXIuCgoyMDExLTEyLTMwIDE1OjI0OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdG1lbWluZGV4LmM6CgkgIGJhc2U6IGRpc2FibGUgdW51c2VkIGluZGV4IEFQSSBhbmQgbWFrZSBmdW5jdGlvbnMgc3RhdGljCgkgIEl0J3Mgc2ltcGx5IHByaXZhdGUgaGVscGVyIEFQSSBmb3Igbm93LCB1bnRpbCBzb21lb25lCgkgIGZpeGVzIHVwIEdzdEJhc2VQYXJzZSBub3QgdG8gbmVlZCBpdCBhbnkgbW9yZS4KCjIwMTEtMTItMzAgMTU6MjQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiByZW1vdmUgaW5kZXggQVBJIGZyb20gLmRlZiBmaWxlCgoyMDExLTEyLTMwIDE1OjA2OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGFkZCBMQVJHRSBwYWRkaW5nIHRvIGNsYXNzIHN0cnVjdHVyZQoJICBGb3VyIHNsb3RzIGZvciBleHBhbnNpb24gaXMgbm90IGEgbG90LgoKMjAxMS0xMi0zMCAxNTowMzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGluZGV4OiByZW1vdmUgR3N0SW5kZXggYW5kIEdzdEluZGV4RmFjdG9yeSBmb3Igbm93CgkgIFRoZXJlIGFyZSBtYW55IGdvb2QgdXNlIGNhc2VzIGZvciBHc3RJbmRleCBhbmQgd2Ugd2FudAoJICB0byBhZGQgaXQgYmFjayBhZ2FpbiBpbiBzb21lIGZvcm0sIGJ1dCBwb3NzaWJseSBub3Qgd2l0aAoJICB0aGUgY3VycmVudCBBUEksIHdoaWNoIGlzIHZlcnkgcG93ZXJmdWwgKG1heWJlIHRvbyBwb3dlcmZ1bCksCgkgIGJ1dCBhbHNvIGEgYml0IGNvbmZ1c2luZy4gQXQgdGhlIHZlcnkgbGVhc3Qgd2UnZCBuZWVkIHRvCgkgIG1ha2UgdGhlIEFQSSBiaW5kaW5ncy1mcmllbmRseS4KCjIwMTEtMTItMzAgMTc6NTc6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogdW5yZWYgdGhlIHR3byBjb3Rucm9sbGVyIHR5cGVzIGluIF9kZWluaXQoKQoKMjAxMS0xMi0zMCAxNzo1MTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIHRlc3RzIHRvIGNvcmUgY29udHJvbGxlciBzdWl0ZQoJICBFeHRlbmQgdGhlIGR1bW15IGNvbnRyb2wtc291cmNlIHRvIGFsbG93IHRlc3RpbmcgdGhlIHN5bmMgY29kZSBwYXRoLiBBZGQgdGVzdAoJICBmb3IgMToxIGFuZCAyOjEgdmFsdWUgPC0+IGNvbnRyb2wtc291cmNlIHN5bmMuCgoyMDExLTEyLTMwIDEzOjUyOjA4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgdGVzdCBmb3IgYmluZGluZ3MgY29udHJvbCBzb3VyY2VzIG11bHRpcGxlIHRpbWVzCgoyMDExLTEyLTMwIDEyOjU5OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdDogbW92ZSBzdGF0aWMgdmFyaWFibGUgZm9yIE5BTiBpbnRvICNpZm5kZWYgTkFOIGJsb2NrCgkgIEFuZCB1c2UgR19HTlVDX1VOVVNFRCBpbnN0ZWFkIG9mIF9fYXR0cmlidXRlX3VzZWRfXwoKMjAxMS0xMi0zMCAxMzozMjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogdXNlIE5BTiBpbnN0ZWFkIG9mIEZQX05BTiAod2hpY2ggaXMgdGhlIGNsYXNzKQoJICBBbHNvIGFkZCBhIGZhbGxiYWNrIGRlZmluZSB0byBtYXRoLWNvbXBhdC5oLgoJICBGaXhlcyAjNjY2ODg3CgoyMDExLTEyLTI5IDE2OjU2OjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogRG8gbm90IGZhbHNlIHdhcm4gYWJvdXQgdW5saW5rZWQgcGFkCgkgIFdoZW4gb3V0cHV0LXNlbGVjdG9yIGRpZG4ndCByZWNlaXZlIGEgbmV3c2VnbWVudCBldmVudCBpdCB3b3VsZAoJICB3YXJuIGFib3V0IHBhZCBiZWluZyB1bmxpbmtlZCB3aGVuIHN3aXRjaGluZyBwYWRzLiBNYWtpbmcgdGhlIGxvZ3MKCSAgd3JvbmcgYW5kIG1pc2xlYWRpbmcuCgoyMDExLTEyLTI5IDE2OjQ5OjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0yOCAxNToxMzowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBGaXggbGVhayBpbiBwYWQgY2hlY2sKCjIwMTEtMTItMjggMTQ6NTE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZGVpbml0IG1ldGEgZmxhZ3MgdG9vCgoyMDExLTEyLTI4IDEyOjI1OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBJbml0aWFsaXplIG5ldyBHc3RNZXRhRmxhZ3MgaW4gaW5pdF9wb3N0KCkKCjIwMTEtMTItMDEgMTk6MDU6NTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBTbWFsbCBkb2MgZml4dXBzCgoyMDExLTEyLTE2IDAyOjIwOjI3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHdpbjMyOiBmaXggZXhwb3J0ZWQgdmFyaWFibGVzIGZvciBWUyAyMDEwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYyMTkKCjIwMTEtMTItMjcgMTM6NDg6MzYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBmaXggY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgoJICBSZXR1cm4gTkFOIGFuZCBjaGVjayB0aGUgdmFsdWUgZnVydGhlciB1cC4KCSAgRml4ZXMgIzY2Njg5MAoKMjAxMS0xMi0yNyAxMTo0MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHF1aWNrLWZpeCBjb21waWxlciB3YXJuaW5nIGJyZWFraW5nIHRoZSBidWlsZAoJICBUaGlzIGlzIGxpa2VseSBub3QgdGhlIHByb3BlciBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4OTAKCjIwMTEtMTItMjcgMTE6MzU6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogY2FuJ3QgYWNjZXNzIHByaXZhdGUgcmVnaXN0cnkgc3RydWN0dXJlIG1lbWJlcnMgZGlyZWN0bHkgYW55IGxvbmdlcgoKMjAxMS0xMi0yNyAxMToyNDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIGluIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzo1NDogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQKCSAgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Njg5MAoKMjAxMS0xMi0yNiAxODo0NDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlICJmZCIgcHJvcGVydHkKCSAgSXQncyBubyBsb25nZXIgdXNlZnVsLCBzaW5jZSB3ZSBkb24ndCB1c2UgbW1hcCBhbnkgbW9yZSBhbnl3YXksCgkgIGFuZCB3ZSBtaWdodCB1c2UgYSBkaWZmZXJlbnQgQVBJIGZvciBJL08gaW4gZnV0dXJlIChzdWNoIGFzIEdJTykuCgoyMDExLTEyLTI2IDE4OjQxOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBtb3ZlIHByaXZhdGUgYml0cyBpbnRvIHByaXZhdGUgc3RydWN0CgoyMDExLTEyLTI2IDExOjI2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogbWljcm8tb3B0aW1pc2F0aW9uOiBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IGdfdmFsdWVfdW5zZXQoKQoJICBXZSBrbm93IHRoZXJlJ3Mgbm90aGluZyB0byBkbyBoZXJlIGFuZCBjYW4gc2F2ZSB1cyB0aGUgZnVuY3Rpb24KCSAgY2FsbHMgYW5kIEdWYWx1ZVRhYmxlIGxvb2t1cHMuCgoyMDExLTEyLTI1IDIzOjQxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgIGxpYnM6IHJlbW92ZSBnZHAgZGF0YXByb3RvY29sIGxpYnJhcnkKCSAgTWFkZSBwcml2YXRlIGFuZCBtb3ZlZCB0byBnZHAgcGx1Z2luIGluIC1iYXNlIGZvcgoJICB0aGUgdGltZSBiZWluZywgdW50aWwgd2UgZmlndXJlIG91dCB3aGF0IHdlIGRvIHdpdGgKCSAgZ2RwIGFuZCAwLjExLgoKMjAxMS0xMi0yNSAyMTowMjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IGZpeCB1bnVzZWQtdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMS0xMi0yNSAyMTowMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIG5ldyBBUEkKCjIwMTEtMTItMjUgMjA6NDk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiBhZGQgdGhlIHN0YXJ0IG9mIGEgZGVzaWduIGRvY3VtZW50IGZvciBjb250cm9sbGVyCgoyMDExLTEyLTI1IDE4OjQ5OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBzcGxpdCBhbmQgY2xlYW51cCB0aGUgdGVzdHMKCSAgVGhlIGNvbnRyb2xsZXIgb2JqZWN0IHdhcyBvbmNlIGNvcGllZCBmcm9tIGJ1enp0YXJkcyB1bml0IHRlc3RzLiBDaGFuZ2UKCSAgVGVzdE1vbm9Tb3VyY2UgdG8gVGVzdE9iaiBhcyBpdCBpcyBub3QgYSBmdWxsIGZsZWRnZWQgZWxlbWVudC4gU3BsaXQgdGhlIHRlc3RzCgkgIGludG8gYSBjb3JlIGFuZCBsaWJyYXJ5IHRlc3Qgc3VpdGUuCgoyMDExLTEyLTIyIDIzOjQ4OjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgR1ZhbHVlIGhhbmRsaW5nIGZyb20gY29udHJvbC1zb3VyY2VzIHRvIC1iaW5kaW5nCgkgIENvbnRyb2xTb3VyY2VzIGFyZSBub3cgZ2RvdWJsZSBiYXNlZC4gQSBjb250cm9sIHNvdXJjZSBpcyBtYXBwZWQgdG8gYQoJICBwYXJ0aWN1bGxhciBHT2JqZWN0IHByb3BlcnR5IHVzaW5nIGEgQ29udHJvbEJpbmRpbmcuCgoyMDExLTEyLTIwIDIyOjM2OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogbW92ZSBHc3RDb250cm9sbGVkUHJvcGVydHkgaW50byBhIHNlcGFyYXRlIGNsYXNzCgkgIEFkZCBhIEdzdENvbnRyb2xCaW5kaW5nIGNsYXNzLiBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIG1ha2luZyB0aGUKCSAgY29udHJvbHNvdXJjZXMgZ2VuZXJhdGUgZG91YmxlIHZhbHVlZCBjb250cm9sIGN1cnZlcyBhbmQgZG8gdGhlIGdwYXJhbXNwZWMKCSAgbWFwcGluZyBpbiB0aGUgY29udHJvbCBiaW5kaW5nLiBOb3cgdGhlIEFQSSBpbiBHc3RPYmplY3QgaXMgYWdhaW4gbW9zdGx5CgkgIGZvciBjb252ZW5pZW5jZS4KCjIwMTEtMTItMjUgMTI6NDc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmMKCjIwMTEtMTItMjUgMTI6Mzk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJldHVybiBhbnkgcmVtYWluaW5nIGRhdGEgb24gRU9TIGJlZm9yZSByZXR1cm5pbmcgRkxPV19VTkVYUEVDVEVECgoyMDExLTEyLTI1IDEyOjI5OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2VzCgkgIFJlbmFtZSB3b2Zmc2V0IHZhcmlhYmxlLCBtYWludGFpbiBzZXBhcmF0ZSBieXRlc19yZWFkIGluIGFkZGl0aW9uCgkgIHRvIGxlbmd0aCB2YXJpYWJsZS4KCjIwMTEtMTItMjUgMTI6MTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBmaXggdXAgY29tcGlsYXRpb24gYWZ0ZXIgbWVyZ2UKCjIwMTEtMTItMjUgMTE6NTg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jCgkgIERpdCBub3QgbWVyZ2UgY29udHJvbGxlciBvciBiYXNldHJhbnNmb3JtIGNoYW5nZXMuCgoyMDExLTEyLTI0IDE0OjU5OjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZy10by0wLjExCgkgIFVwZGF0ZSBnc3RfcGFkX2dldF9jYXBzIC0+IGdzdF9wYWRfcXVlcnlfY2FwcyBjaGFuZ2UKCjIwMTEtMTItMjMgMTU6Mzc6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBjbGVhbnVwIG1ldGFkYXRhIGluIHJlc2V0X2J1ZmZlcgoJICBVc2UgdGhlIHJlc2V0X2J1ZmZlciB2bWV0aG9kIHRvIHJlbW92ZSB0aGUgdW5wb29sZWQgbWV0YWRhdGEgZnJvbSB0aGUgYnVmZmVyLgoKMjAxMS0xMi0yMiAxNjowMDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMTItMjIgMTU6NTU6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBoYW5kbGUgbWV0YWRhdGEgaW4gdGhlIHBvb2wKCSAgTWFyayBhbGwgbWV0YWRhdGEgb24gdGhlIGFsbG9jYXRlZCBidWZmZXJzIHdpdGggYSBQT09MRUQgZmxhZy4gV2hlbiBhIGJ1ZmZlcgoJICByZXR1cm5zIHRvIHRoZSBwb29sLCByZW1vdmUgYWxsIG1ldGFkYXRhIHRoYXQgZGlkIG5vdCBoYXZlIHRoZSBQT09MRUQgZmxhZy4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgd2UgbmV2ZXIgbGVhdmUgdW5rbm93biBtZXRhZGF0YSB0byB0aGUgYnVmZmVycyBpbiB0aGUgcG9vbC4KCjIwMTEtMTItMjIgMTU6NTQ6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgZm9yZWFjaCBmdW5jdGlvbiBmb3IgdGhlIG1ldGFkYXRhCgoyMDExLTEyLTIyIDE1OjUzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogc21hbGwgZG9jIGZpeAoKMjAxMS0xMi0yMiAxNTo1MjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIG1ldGFkYXRhIGZsYWdzCgkgIEFkZCBtZXRhZGF0YSBmbGFncyBzbyB0aGF0IHdlIGNhbiBzZXQgZXh0cmEgcHJvcGVydGllcyBvZiB0aGUgbWV0YWRhdGEKCjIwMTEtMTItMDIgMTQ6MTA6MzIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBvbmx5IGhhdmUgYSB0b3AtbGV2ZWwgcGlwZWxpbmUgZG8gcGlwZWxpbmUgbWFuYWdlbWVudAoJICBGaXhlcyAjNjY1MzkwLgoKMjAxMS0xMi0yMiAxMTowODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBHVHlwZSBuYW1lIG9mIGludGVycG9sYXRpb24gbW9kZSBlbnVtCgoyMDExLTEyLTIxIDExOjEzOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlCgoyMDExLTEyLTIxIDExOjA4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVuYW1lIHZhcmlhYmxlIGZvciBjb25zaXN0ZW5jeQoJICBSZW5hbWUgdGhlIHZhcmlhYmxlIGZvciBHU1RfQ0FQU19OT05FIHRvIF9nc3RfY2Fwc19ub25lIGZvciBjb25zaXN0ZW5jeSBhbmQgdG8KCSAgaGllIHRoZSBmYWN0IHRoYXQgTk9ORSBjYXBzIGFyZSBhbHNvIGFjY2lkZW50YWxseSBlbXB0eSBjYXBzLgoKMjAxMS0xMi0xOSAxNDoyNzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgdGhlIGZpbHRlcmVkIHBlZXIgY2FwcyBhcmUgYWxyZWFkeSBlbXB0eSBlcnJvciBvdXQgZWFybHkKCjIwMTEtMTItMjAgMTM6MjE6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUgZGVmcwoKMjAxMS0xMi0yMCAxMzoxNDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGFkZCBBTlkgYW5kIEVNUFRZIHNpbmdsZXRvbnMKCSAgQWRkIGEgc2luZ2xldG9uIGZvciBBTlkgYW5kIEVNUFRZIGNhcHMgYW5kIG1ha2UgdGhlIEdTVF9DQVBTX0FOWSBhbmQKCSAgR1NUX0NBUFNfTk9ORSBwb2ludCB0byB0aGVtLiBUaGlzIG1ha2VzIHRoZSBBUEkgbW9yZSBjb25zaXN0ZW50IG5vdwoJICB0aGF0IHRoZSBtYWNybyBkb2VzIG5vdCBtYWdpY2FsbHkgY3JlYXRlIGEgcmVmLiBJdCBhbHNvIHNvbHZlcyBzb21lIGxlYWtzIGluCgkgIHBsYWNlcyB3aGVyZSB0aGUgbWFjcm8gd2FzIHVzZWQgdG8gcmVnaXN0ZXIgYSBwYWR0ZW1wbGF0ZS4KCjIwMTEtMTItMjAgMTM6MTM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIHJlbW92ZSBjb25zdCBpbiBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkKCSAgUmVtb3ZlIHRoZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzIGluIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKSBiZWNhdXNlIHRoZQoJICBmdW5jdGlvbiB0YWtlcyBhIHJlZiB0byB0aGUgY2Fwcy4KCjIwMTEtMTItMjAgMTI6NTk6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMi0yMCAxMTozODoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSB1bnVzZWQgcGFyZW50X2NsYXNzIHZhcnJpYWJsZSBmcm9tIGNvbnRyb2xzb3VyY2UKCjIwMTEtMTItMTkgMjM6MzI6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogY2xlYW51cCBpbnRlcnBvbGF0aW9uIG1vZGVzCgkgIFJlbW92ZSBkZXByZWNhdGVkL3VuaW1wbGVtZW50ZWQgbW9kZXMuIFR1cm4gaW50ZXJwb2xhdGlvbiBtb2RlIGludG8gYSBnb2JqZWN0CgkgIHByb3BlcnR5LiBVcGRhdGUgZG9jcyBhbmQgZXhhbXBsZXMuCgoyMDExLTEyLTE5IDExOjEzOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sc291cmNlczogcmVmYWN0b3IgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZQoJICBNb3ZlIG1vc3Qgb2YgdGhlIGNvZGUgdG8gYSBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZS4gU3BsaXQgb3V0IHRoZSB0cmlnZ2VyCgkgICdpbnRlcnBvbGF0aW9uIG1vZGUnIHRvIGEgbmV3IGNvbnRyb2wgc291cmNlIGNsYXNzLiBNb3ZlIHRlc3RzIGFuZCBleGFtcGxlcyB0bwoJICBuZXcgYXBpLiBVcGRhdGUgZG9jcy4KCSAgRml4ZXMgIzYxMDMzOAoKMjAxMS0xMi0xOSAyMjowMTowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBjbGVhbiB1cCBsZm8gY29udHJvbCBzb3VyY2UKCSAgUmVtb3ZlIHBhcmVudF9jbGFzcyBhbmQgdXNlIHZhciBmcm9tIEdfREVGSU5FX1RZUEUgbWFjcm8uIFJlbW92ZSB1bnVzZWQgZGlzcG9zZQoJICBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMTItMTkgMjA6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBjb2xsZWN0cGFkczIgZnVuY3Rpb24gdG8gLmRlZiBmaWxlCgoyMDExLTEyLTE2IDE3OjU5OjIyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogYWRkIGNvbnZlbmllbmNlIGNsaXBwaW5nIGZ1bmN0aW9uCgkgIC4uLiB3aGljaCBhbHNvIGNvbnZlcnRzIHRvIHJ1bm5pbmcgdGltZTsgdXNlZnVsIGZvciB0eXBpY2FsIG11eGVyLgoKMjAxMS0xMi0xOSAxNzozODoxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG8gbm90IGRlbGF5IHNwYXJzZSBzdHJlYW0gbmV3c2VnbWVudCB1cGRhdGVzCgoyMDExLTEyLTE5IDE3OjAwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1ha2Ugc3ViY2xhc3NlcyBhZGQgb3RoZXIgZmxhZ3MKCSAgQWRkIEdTVF9NQVBfRkxBR19MQVNUIHNvIHRoYXQgaW1wbGVtZW50YXRpb25zIGNhbiBhZGQgYWRkaXRpb25hbCBmbGFncyB3aGVuCgkgIG1hcHBpbmcgbWVtb3J5LgoKMjAxMS0xMi0xOSAxMjozMzoxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc3VnZ2VzdGlvbiBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0gaXMgbm90IG11Y2ggb2YgYSBzdWdnZXN0aW9uCgkgIC4uLiBpbiB0aGF0IHVwc3RyZWFtIGlzIGFscmVhZHkgY29tcGx5aW5nIHdpdGggdGhhdCBzdWdnZXN0aW9uLgoJICBGaXhlcyAjNjY2MTc0LgoKMjAxMS0xMi0xNSAxNDozMTowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGRlbGF5IGNvbGxlY3RpbmcgYnVmZmVyIGlmIGEgcGFkIG5ld2x5IHNldCB3YWl0aW5nCgkgIC4uLiBhcyBjb21tZW50ZWQ7IG1ha2UgY29kZSBjb3JyZXNwb25kIHRvIGl0IChhZ2FpbikuCgoyMDExLTEyLTE1IDE2OjA2OjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogdXNlciB0aGUgcGFyZW50X2NsYXNzIHZhcnMgZnJvbSBHX0RFRklORV9UWVBFCgoyMDExLTEyLTE0IDEyOjEzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGFsbG93IE5VTEwgYXMgZmlsdGVyIGNhcHMgYXJndW1lbnQgd2l0aCBxdWVyeV9jYXBzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjE1NAoKMjAxMS0xMi0xMiAxMzowNTozNiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZG8gbm90IG1pc3Rha2Ugc2hvcnQgcmVhZHMgZm9yIEVPUwoJICBXaGlsZSBsb2NhbCBmaWxlc3lzdGVtcyB3aWxsIHVzdWFsbHkgbm90IGNhdXNlIHNob3J0IHJlYWRzLAoJICB0aGlzIG1heSBoYXBwZW4gb24gc2Vla2FibGUgZmlsZXMgb24gc29tZSByZW1vdGUgZmlsZXN5c3RlbXMuCgkgIEluc3RlYWQsIGxvb3AgdGlsbCB3ZSBnZXQgdGhlIHJlcXVlc3RlZCBhbW91bnQgb2YgZGF0YSwgb3IKCSAgYW4gYWN0dWFsIEVPUyAoaWUsIDAgYnl0ZXMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1OTIxCgoyMDExLTExLTE0IDAyOjI2OjMxICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBDbGVhciBxdWV1ZWQgZnJhbWVzIHdpdGggb3RoZXIgcXVldWVzCgoyMDExLTEyLTEyIDEyOjExOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgbmV3ICd0cmFuc2ZlciBmbG9hdGluZycgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCkKCSAgUmVxdWlyZXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIDEuMzEuMSAob2xkZXIgdmVyc2lvbnMgd2lsbAoJICBlcnJvciBvdXQgd2l0aCB0aGF0KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDA5OQoKMjAxMS0xMi0xMiAxMjowOTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9jcy5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9zci5wbzoKCSAgcG86IHVwZGF0ZSBsYW5ndWFnZXMKCjIwMTEtMTItMTIgMTI6MDA6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTEyIDExOjU0OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJICBnbGliLWNvbXBhdDogQWRkIGxpY2Vuc2UgYm9pbGVycGxhdGUgZm9yIExHUEwKCjIwMTEtMTItMTAgMDE6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vY3MucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZ2wucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zci5wbzoKCSogcG8vdWsucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTEyLTEwIDExOjA4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHNheSB3ZSBoYW5kbGUgUkVDT05GSUdVUkUgZXZlbnQKCSAgV2UgaGFuZGxlIHRoZSBSRUNPTkZJR1VSRSBldmVudCBzbyByZXR1cm4gVFJVRSBmcm9tIHRoZSBldmVudCBoYW5kbGVyLgoKMjAxMS0xMi0xMCAxMTowNzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmb3J3YXJkIG9uIE5VTEwgcGFkcwoJICBUaGUgaXRlcmF0b3IgY2FuIHJldHVybiBOVUxMIGluIHNvbWUgY2FzZXMsIGF2b2lkIHB1c2hpbmcgb24gdGhvc2UKCSAgTlVMTCBwYWRzLgoKMjAxMS0xMi0wNyAxNjowMTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcHJlc2V0OiBhbGxvdyBhcHBsaWNhdGlvbnMgdG8gc3BlY2lmeSBhbiBleHRyYSBwcmVzZXQgZGlyCgkgIEFuIGV4dHJhIGFwcGxpY2F0aW9uIHByZXNldCBkaXIgaGVscCB0byBvcmdhbml6ZSBwcmVzZXRzIGNyZWF0ZWQgZm9yIHNwZWNpYWwKCSAgcHVycG9zZXMuIEZpeGVzICM2NjA3NjAKCSAgQVBJOiBnc3RfcHJlc2V0X3NldF9hcHBfZGlyKCksIGdzdF9wcmVzZXRfZ2V0X2FwcF9kaXIoKQoKMjAxMS0xMi0wOSAxMDowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzdG9wIHdoZW4gbmVnb3RpYXRpb24gZmFpbHMKCjIwMTEtMTItMDggMTc6MzI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTA4IDE4OjAwOjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggY29kZSBwYXRoIHRvIGNvbWUgdXAgd2l0aCBwb3NzaWJsZSBjYXBzIGlmIGluY29tcGF0aWJsZSBjYXBzIGFyZSBwcm92aWRlZCB0byBidWZmZXJfYWxsb2MoKQoJICBQcmV2aW91cyBjb2RlIGNvdWxkIGFsbW9zdCBuZXZlciB3b3JrIGFuZCB0aGlzIHNob3VsZCBiZSBzbGlnaHRseQoJICBiZXR0ZXIuCgoyMDExLTEyLTA4IDE3OjIxOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGYWxsIGJhY2sgdG8gdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBpZiBzdWdnZXN0ZWQgY2FwcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgc2lua3BhZAoKMjAxMS0xMi0wOCAxNzowNzowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRmFsbCBiYWNrIHRvIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgaWYgZml4YXRpb24gb2Ygc3VnZ2VzdGVkIGNhcHMgZmFpbGVkCgoyMDExLTEyLTA4IDE3OjAyOjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWZhY3RvciBnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKCkgY29kZQoJICBEb24ndCBjaGVjayBpZiB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0KCSAgYW5kIGRvbid0IHRyeSB0byBmaXhhdGUgdGhlc2UgY2Fwcy4gVGhleSBtdXN0IGJlIGZpeGF0ZWQgaW4gYW55IGNhc2UuCgoyMDExLTEyLTA4IDAwOjQ5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgbGF0ZXN0IEFQSSBhZGRpdGlvbnMKCjIwMTEtMTItMDggMDA6NDc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGZpeCB1cCBzZWxlY3RvciB0ZXN0IGFmdGVyIG1lcmdlCgoyMDExLTEyLTA4IDAwOjM5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RpbmRleGZhY3RvcnkuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoJICBOb3RlOiBkaWQgbm90IG1lcmdlIGFueSBvZiB0aGUgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzIGZyb20gMC4xMC4KCjIwMTEtMTItMDcgMTc6NTc6NDkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgdXNlIGEgYnl0ZSB2YWx1ZSBpbnN0ZWFkIG9mIGEgdGltZSB2YWx1ZSB3aGVuIGJpc2VjdGluZwoJICBUaGlzIGZpeGVzIEZMQUMgc2Vla2luZyBvbiBzb21lIEZMQUMgZmlsZXMuCgoyMDExLTEyLTA3IDExOjA0OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBQdXNoIG5ld3NlZ21lbnQgZXZlbnRzIGJlZm9yZSBhbnkgYnVmZmVycyBhcmUgcHVzaGVkIGluIHRoZSB1bml0IHRlc3QKCjIwMTEtMTItMDcgMTE6MDE6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHNlbmQgYSBORVdTRUdNRU5UIGV2ZW50IGlmIGEgYnVmZmVyIGFycml2ZWQgYmVmb3JlIHRoZSBzZWdtZW50IHdhcyBjb25maWd1cmVkCgoyMDExLTEyLTA3IDExOjAxOjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IERvbid0IHNlbmQgbGFzdCBzZWdtZW50L2J1ZmZlciB3aGVuIG5vIHNlZ21lbnQgd2FzIGNvbmZpZ3VyZWQgeWV0CgoyMDExLTEyLTA3IDA5OjUwOjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiBzdWdnZXN0ZWQgY2FwcyBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbSB0cnkgdG8gY29tZSB1cCB3aXRoIGNvbXBhdGlibGUgY2FwcwoJICBGaXhlcyBidWcgIzY2MjE5OS4KCjIwMTEtMTItMDYgMjM6NTI6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJICBpbmRleGZhY3Rvcnk6IGZpeCBtZW1vcnkgbGVhawoJICBJbnRyb2R1Y2VkIGJ5IGNvbW1pdCBiZDMwMmJiNiBwbHVnaW5mZWF0dXJlOiBhdm9pZCBkdXBsaWNhdGluZyBmZWF0dXJlLT5uYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00NTk0NjYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTcwMwoKMjAxMS0xMi0wNiAxODowOToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHB1dCBuZXcgZXZlbnQgcHJvYmUgdHlwZSBuZXh0IHRvIG90aGVyIGV2ZW50IHR5cGVzCgoyMDExLTEyLTA1IDIxOjIwOjUyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBHU1RfUEFEX1BST0JFX1RZUEVfSEFORExFX0ZMVVNICgoyMDExLTEyLTA2IDE0OjU1OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IE1ha2UgZXZlbnQvYnVmZmVyIHZlcmJvc2Ugb3V0cHV0IGNvbnNpc3RlbnQgd2l0aCBpZGVudGl0eQoKMjAxMS0xMi0wNiAxNDo1NToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBQcmludCBidWZmZXIgZmxhZ3MgaW4gdGhlIHZlcmJvc2Ugb3V0cHV0CgoyMDExLTEyLTA2IDE0OjUzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBNYWtlIGV2ZW50L2J1ZmZlciB2ZXJib3NlIG91dHB1dCBjb25zaXN0ZW50IHdpdGggaWRlbnRpdHkgYW5kIHByaW50IGJ1ZmZlciBmbGFncwoKMjAxMS0xMi0wNiAxNDo0Njo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGRvbid0IGluY2x1ZGUgZ2xpYi9ndGhyZWFkLmggZGlyZWN0bHkKCSAgVGhlIGdfdGhyZWFkIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlIGFmdGVyIGluY2x1ZGluZyBnbGliLmggYXMgcGVyIGRvY3MuCgoyMDExLTEyLTA2IDE0OjIzOjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHBvcnQgdGhlIHRlc3QgdG8gbmV3IGFwaSBhcyB3ZWxsCgoyMDExLTEyLTA2IDE0OjIzOjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IGZpeCBncG9pbnRlciB2cy4gZ3BvaW50ZXIqIG1lc3MgdXAKCjIwMTEtMTItMDYgMTQ6MjQ6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBHU1RfRkxPV19SRVNFTkQKCSAgSXQgaXMgdW51c2VkIGFuZCB1bmRlZmluZWQuCgoyMDExLTEyLTA2IDE0OjAxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGFzeW5jIHN0YXJ0IG9wdGlvbgoJICBBZGQgYSBtZXRob2QgdG8gZW5hYmxlIGFzeW5jIHN0YXJ0IGJlaGF2aW91ci4gVGhlIHN1YmNsYXNzIGNhbiB0aGVuIGNvbXBsZXRlIHRoZQoJICBzdGFydCBvcGVyYXRpb24gZnJvbSBhbnkgb3RoZXIgdGhyZWFkIGJ5IGNhbGluZyBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKS4KCSAgVGhlIGJhc2UgY2xhc3MgY2FuIHdhaXQgZm9yIHRoZSBzdGFydCB0byBjb21wbGV0ZSB3aXRoCgkgIGdzdF9iYXNlX3NyY19zdGFydF93YWl0KCkuCgoyMDExLTEyLTA2IDEzOjU4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMi0wNiAxMzo0NzoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBjbGVhbnVwIGVycm9yIHBhdGgKCjIwMTEtMTItMDYgMTM6Mzk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDExLTEyLTA2IDA4OjQ4OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiB1c2UgX09CSkVDVCBsb2dnaW5nIHZhcmlhbnRzIG1vcmUKCjIwMTEtMTItMDYgMDg6MzU6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIEdzdFZhbHVlQXJyYXkKCSAgSW5zdGVhZCBwYXNzIHRoZSB2YWx1ZXMgYXMgYXJndW1lbnRzLiBUaGlzIHNpbXBsaWZpZXMgdGhhdCBjb2RlIGFuZCBoZWxwcwoJICBiaW5kaW5ncy4KCjIwMTEtMTItMDYgMDg6MzU6MTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cwoJICBPbmUgY2FuIGVhc2lsbHkgbG9vcCBvdmVyIHRoZSBjb250cm9sbGVkIHByb3BlcnRpZXMgbWFudWFsbHkuIFRoaXMgaXMgc3RlcCAxIGluCgkgIHJlbW92aW5nIEdzdFZhbHVlQXJyYXkuCgoyMDExLTEyLTA0IDA3OjMzOjMyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjb3JyZWN0IHJldHVybiB2YWx1ZSBpbiBnc3RfcHVzaF9zdGlja3kKCjIwMTEtMTItMDUgMTE6MDc6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWFrZSBzb21lIG1hY3JvcyBpbnRvIGlubGluZSBmdW5jdGlvbnMKCjIwMTEtMTItMDUgMTA6MjQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBtYWtlIHNvbWUgbW9yZSBtYWNyb3MgYXMgaW5saW5lIGZ1bmN0aW9ucwoJICBNYWtlIHNvbWUgbWFjcm9zIGFzIGlubGluZSBmdW5jdGlvbnMgZm9yIGFkZGVkIHR5cGUgY2hlY2tpbmcuCgkgIFVTZSBuZXcgZ3N0X2NhcHNfdGFrZSgpIGluIHR5cGVmaW5kCgoyMDExLTEyLTA1IDEwOjIzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHNvbWUgb2xkIG1ldGhvZHMKCjIwMTEtMTItMDQgMjE6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFsbG93IG5vbi1qb2luYWJsZSB0aHJlYWRzIGluIHByaXZhdGUgZ190aHJlYWRfY3JlYXRlKCkgY29weQoJICBMb29rcyBsaWtlIHNvbWUgdGVzdHMgdXNlIG5vbi1qb2luYWJsZSB0aHJlYWRzIGFmdGVyIGFsbC4KCjIwMTEtMTItMDQgMTU6NDI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHJlbW92ZWQgdGFnIGxpc3QgZnVuY3Rpb25zIGZyb20gZG9jcyBhcyB3ZWxsCgoyMDExLTEyLTA0IDE1OjM4OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RvYmplY3QuaAoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICB0b29scy9nc3QteG1saW5zcGVjdC5jCgoyMDExLTEyLTA0IDE0OjM4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBTdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBpbiBzZWxlY3RlZCBmaWxlcywgZm9yIGdfc3RhdGljX3JlY19tdXRleF8qIG1vc3RseQoJICBHU3RhdGljUmVjTXV0ZXggaXMgcGFydCBvZiBvdXIgQVBJL0FCSSwgbm90IG11Y2ggd2UgY2FuIGRvIGhlcmUgaW4gMC4xMC4KCjIwMTEtMTItMDQgMTM6MzU6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFdvcmsgYXJvdW5kIGRlcHJlY2F0ZWQgdGhyZWFkIEFQSSBpbiBnbGliIG1hc3RlcgoJICBBZGQgcHJpdmF0ZSByZXBsYWNlbWVudHMgZm9yIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19tdXRleF9uZXcoKSwgZ19tdXRleF9mcmVlKCksIGdfY29uZF9uZXcoKSBldGMuLCBtb3N0bHkKCSAgdG8gYXZvaWQgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBXZSBjYW4ndCBjaGFuZ2UgbW9zdCBvZgoJICB0aGVzZSBpbiAwLjEwIGJlY2F1c2UgdGhleSdyZSBwYXJ0IG9mIG91ciBBUEkgYW5kIEFCSS4KCjIwMTEtMTItMDQgMTM6MDk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogZ190aHJlYWRfY3JlYXRlKCkgaXMgZGVwcmVjYXRlZCBpbiBHTGliIG1hc3RlciwgdXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkCgoyMDExLTEyLTA0IDEzOjA0OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogaW5pdGlhbGlzZSBHRXJyb3IgdmFyaWFibGVzIHRvIE5VTEwKCjIwMTEtMTItMDQgMTE6NDM6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGVzCgoyMDExLTEyLTA0IDExOjQyOjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTEtMTItMDQgMTE6MzI6NTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBJbml0aWFsaXplIHdpdGggcHJvcGVyIHR5cGUKCjIwMTEtMTItMDMgMTc6NDA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBnX3RocmVhZF9pbml0KCkgaXMgZGVwcmVjYXRlZCBpbiBnbGliIG1hc3RlcgoJICBJdCdzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTEtMTItMDMgMTY6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVwZGF0ZSBmb3IgdGhyZWFkIEFQSSBkZXByZWNhdGlvbnMgaW4gZ2xpYiBtYXN0ZXIKCjIwMTEtMTItMDMgMTU6MzY6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogdXBkYXRlIGZvciB0aHJlYWQgQVBJIGRlcHJlY2F0aW9ucyBpbiBnbGliIG1hc3RlcgoKMjAxMS0xMi0wMyAxNToxODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiByZW1vdmUgZ3N0X3RhZ19saXN0X2dldF97Y2hhcix1Y2hhcn0KCSAgVGhvc2UgYXJlIHVudXNlZCBhbmQgc2hvdWxkIG5ldmVyIGJlIHVzZWQgYW55d2hlcmUgYW55d2F5CgkgIHJlYWxseS4KCjIwMTEtMTItMDMgMTQ6MDY6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHNvbWUgbWFjcm9zIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgoyMDExLTEyLTAzIDEzOjU4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBnX3RocmVhZF9jcmVhdGUoKSBpcyBkZXByZWNhdGVkIGluIEdMaWIgbWFzdGVyLCB1c2UgZ190aHJlYWRfdHJ5X25ldygpIGluc3RlYWQKCjIwMTEtMTItMDMgMDc6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgZHRzIGFuZCBwdHMgZm9yIHN5bmMKCSAgRmlyc3QgdXNlIERUUywgdGhlbiBmYWxsIGJhY2sgdG8gUFRTIGZvciBzeW5jaHJvbml6YXRpb24uCgoyMDExLTEyLTAzIDA3OjAxOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogc21hbGwgY2xlYW51cHMKCjIwMTEtMTItMDMgMDY6NDU6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtZXJnZSBwcmVyb2xsIGZ1bmN0aW9ucwoJICBJbmxpbmUgYSBmdW5jdGlvbiB0aGF0IGlzIG9ubHkgY2FsbGVkIGZyb20gb25lIHBsYWNlIHRvIG1ha2UgdGhpbmdzIGEgbGl0dGxlCgkgIGVhc2llciB0byBmb2xsb3cuCgoyMDExLTEyLTAzIDA2OjI5OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBjbGVhbnVwcwoJICBEb24ndCBwYXNzIGFyb3VuZCB0aGUgb2JqZWN0IHR5cGUsIHdlIGNhbiBmaW5kIHRoYXQgdmVyeSBlZmZpY2llbnRseSBmcm9tIHRoZQoJICBvYmplY3QgaXRzZWxmIG5vdy4KCjIwMTEtMTItMDIgMjM6MTM6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCBtZXRob2QgbmFtZXMKCjIwMTEtMTItMDIgMjI6NTA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtZXJnZSByZW5kZXJfb2JqZWN0IGludG8gY2hhaW4KCSAgTWVyZ2UgdGhlIHJlbmRlcl9vYmplY3QgY29kZSB3aXRoIHRoZSBjaGFpbiBtZXRob2QuIEl0IGlzIG9ubHkgY2FsbGVkIGZyb20gdGhlcmUKCSAgYW5kIHRoZXJlIGFyZSBxdWl0ZSBhIGZldyB2YXJpYWJsZXMgdGhhdCBjYW4gYmUgcmV1c2VkIHRvIG1ha2VzIHRoaW5ncyBsZXNzCgkgIGNvbmZ1c2luZy4KCjIwMTEtMTItMDIgMjI6MzY6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgc29tZSBtb3JlIGNvZGUgbm93IHRoYXQgdGhlIHJlbmRlcl9vYmplY3QgZXRob2QgaXMgb25seQoJICBjYWxsZWQgd2l0aCBidWZmZXJzIG9yIGJ1ZmZlcmxzdHMuCgoyMDExLTEyLTAyIDIyOjIwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgZXZlbnQgaGFuZGxpbmcKCSAgQWRkIG5ldyB3YWl0X2VvcyB2bWV0aG9kIHRvIHdhaXQgZm9yIHRoZSBlb3MgdGltZW91dCBiZWZvcmUgcG9zdGluZyB0aGUgRU9TCgkgIG1lc3NhZ2Ugb24gdGhlIGJ1cy4KCSAgQWRkIGRlZmF1bHQgZXZlbnQgaGFuZGxlci4gTW92ZSB0aGUgZGVmYXVsdCBldmVudCBhY3Rpb25zIGluIHRoZXJlLiBDYWxsIHRoZQoJICBldmVudCB2bWV0aG9kIGZyb20gdGhlIHBhZCBldmVudCBoYW5kbGVyLiBTdWJjbGFzc2VzIGFyZSBub3cgc3VwcG9zZWQgdG8gY2hhaW4KCSAgdXAgdG8gdGhlIHBhcmVudCBldmVudCBoYW5kbGVyIG9yIHVucmVmIHRoZSBldmVudCBhbmQgZG8gdGhlaXIgb3duIHRoaW5nLgoJICBBdm9pZCBwYXNzaW5nIHVudXNlZCBwYXJhbWV0ZXJzIHRvIGZ1bmN0aW9ucy4KCjIwMTEtMTItMDIgMTM6MTk6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogdW5sb2NrIGNsb2NrIHdhaXQgd2hlbiBhcHByb3ByaWF0ZQoJICAuLi4gbm90YWJseSBGTFVTSCBhbmQgc3RhdGUgY2hhbmdlIHRvIFJFQURZLgoKMjAxMS0xMi0wMiAxMzozNTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXAKCSAgQXZvaWQgcGFzc2luZyBhcm91bmQgdGhlIHNlZ21lbnQuCgoyMDExLTEyLTAyIDEzOjI4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW1vdmUgY2xpcF9zZWdtZW50CgkgIFdlIG9ubHkgbmVlZCBvbmUgc2VnbWVudCBub3cgdGhhdCB0aGUgcHJlcm9sbCBxdWV1ZSBpcyBnb25lLgoKMjAxMS0xMi0wMiAxMjo0Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgY2xlYW51cHMKCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zLCBpbmxpbmUgdGhlIGNvZGUuCgkgIFJlbW92ZSB0aGUgcXVldWVfb2JqZWN0IGZ1bmN0aW9ucywgd2UgY2FuIHByb2NlZWQgd2l0aCB0aGUgcmVuZGVyaW5nCgkgIGltbWVkaWF0ZWx5LgoKMjAxMS0xMi0wMiAxMjoyMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHRoZSBwcmVyb2xsIHF1ZXVlIGFuZCBwcm9jZWVkIGRpcmVjdGx5IHRvIHRoZSByZW5kZXJpbmcgb2Ygb2JqZWN0cy4KCjIwMTEtMTItMDEgMjM6MzU6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1cy5jCgkgIGdzdC9nc3RldmVudC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEyLTAxIDE4OjUwOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBzb21lIHRhZ3Mgb2YgdHlwZSBHc3RTYW1wbGUKCSAgTWFrZSB0aGUgaW1hZ2UgYW5kIGF0dGFjaG1lbnQgdGFncyBvZiB0eXBlIEdzdFNhbXBsZSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRlCgkgIGV4dHJhIGNhcHMgYW5kIGluZm8gYWxvbmcgd2l0aCB0aGUgYnVmZmVyIGRhdGEuCgoyMDExLTEyLTAxIDE4OjQ5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogcmVtb3ZlIGNvbnN0CgkgIFRoZSB3cml0YWJpbGl0eSBvZiB0aGUgc3RydWN0dXJlIGlzIGVuc3VyZWQgYnkgdGhlIHJlZmNvdW50IG9mIHRoZSBwYXJlbnQKCSAgbWluaW9iamVjdCBhbmQgd2UncmUgZmluZSBpZiB0aGUgcGFyZW50IGlzIHdyaXRhYmxlLgoKMjAxMS0xMi0wMSAxNjo0NjowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGxhc3QtYnVmZmVyIC0+IGxhc3Qtc2FtcGxlCgkgIFJlbmFtZSB0aGUgbGFzdC1idWZmZXIgcHJvcGVydHkgdG8gbGFzdC1zYW1wbGUgYW5kIG1ha2UgaXQgcmV0dXJuIHRoZSBuZXcKCSAgR3N0U2FtcGxlIHR5cGUgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZSBjYXBzIGFuZCB0aW1pbmcgaW5mbyBpbiBvbmUgbmljZSBidW5kbGUuCgoyMDExLTEyLTAxIDE2OjM3OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2FtcGxlOiBhZGQgbmV3IHNhbXBsZSBtaW5pb2JqZWN0CgkgIEFkZCBhIG5ldyBzaW1wbGUgbWluaW9iamVjdCB0aGF0IGlzIGEgY29tYmluYXRpb24gb2YgYSBHc3RCdWZmZXIsIEdzdENhcHMsCgkgIEdzdFNlZ21lbnQgYW5kIG90aGVyIGFyYml0cmFyeSBpbmZvIG9yZ2FuaXplZCBpbiBhIEdzdFN0cnVjdHVyZS4gVGhpcyBvYmplY3QgY2FuCgkgIGJlIHVzZWQgdG8gZXhjaGFuZ2Ugc2FtcGxlcyBiZXR3ZWVuIGFuIGVsZW1lbnQgYW5kIHRoZSBhcHBsaWNhdGlvbiBvciBmb3IKCSAgc3RvcmluZyBhbGJ1bSBhcnQgaW4gdGFncyBldGMuCgoyMDExLTEyLTAxIDE2OjI1OjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHVzZSBHU1RfTUVTU0FHRV9TT1VSQ0VfTkFNRSgpIHdoaWNoIGFsc28gdGFrZXMgY2FyZSBvZiBzcmM9TlVMTC4KCjIwMTEtMTItMDEgMTU6MzU6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTEyLTAxIDE1OjM1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMTItMDEgMTU6MzQ6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgY29weSBmbGFnIGZvciBtZXRhCgkgIEFkZCBhIGZsYWcgdG8gY29udHJvbCBpZiB0aGUgbWV0YSBzaG91bGQgYmUgY29waWVkIG9yIG5vdCBpbnN0ZWFkIG9mIGFsd2F5cwoJICBjb3B5aW5nLgoKMjAxMS0xMS0yOSAxOTowODo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBvbGQgcHJvcGVydHkKCjIwMTEtMTEtMzAgMTM6NTk6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsd2F5cyBpbnRlcnNlY3QgdGhlIHN1Z2dlc3RlZCBzaW5rIGNhcHMgd2l0aCB0aGUgcGVlciBjYXBzCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGdldCBjb3JyZWN0IGFuZCBjb21wbGV0ZSBjYXBzLiBUaGUgc3VnZ2VzdGVkIGNhcHMKCSAgY291bGQgYmUgaW5jb21wbGV0ZSwgZS5nLiB2aWRlby94LXJhdy1yZ2Igd2l0aG91dCBhbnkgZmllbGRzLCBhbmQgYnkKCSAgaW50ZXJzZWN0aW5nIHdpdGggdGhlIHBlZXIgY2FwcyB3ZSBnZXQgc29tZXRoaW5nIHVzYWJsZS4KCSAgRml4ZXMgYnVnICM2NjIxOTkuCgoyMDExLTExLTMwIDEyOjM5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1vdmUgRklYTUUgbG9nIGxldmVsIGFmdGVyIFdBUk5JTkcKCSAgU28gaXQncyBub3cgRVJST1IgPCBXQVJOSU5HIDwgRklYTUUgPCBJTkZPIGFuZCAqOjUgYmVjb21lcyAqOjYuCgoyMDExLTExLTMwIDAwOjI0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogd2FybiBhbmQgZmFpbCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG5ld3NlZ21lbnQgZXZlbnRzIGluIEdTVF9GT1JNQVRfVU5ERUZJTkVECgoyMDExLTExLTI5IDE1OjUzOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGtlZXAgdGhlIGVsZW1lbnQgZmxhZ3MgdXAtdG8tZGF0ZQoJICBLZWVwIHRoZSByZXF1aXJlL3Byb3ZpZGVfY2xvY2sgZmxhZ3MgdXAgdG8gZGF0ZS4KCjIwMTEtMTEtMjkgMTE6NDc6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogc291cmNlIGFuZCBzaW5rIHBhZHMgcHJveHkgY2FwcwoKMjAxMS0xMS0yOCAyMzoyMDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBjb21taXQgJzc1MjFiNTk3ZjRkYzQ5ZDhkMTY4ZjM2OGYwZTdlYmFmOThhNzIxNTYnIGludG8gMC4xMQoKMjAxMS0xMS0yOCAyMToxNTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMTg6MjM6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICB1cGRhdGUgZm9yIGluZGV4YWJsZSBjaGFuZ2UKCjIwMTEtMTEtMjggMTg6MTI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGluZGV4YWJsZSBmbGFnCgkgIFJlbW92ZSB0aGUgaXNfaW5kZXhhYmxlIG1ldGhvZCBjaGVjayBhbmQgdXNlIGFuIGVsZW1lbnQgZmxhZyB0byBjaGVjayBpZiB0aGUKCSAgZWxlbWVudCBjYW4gdXNlIGFuIGluZGV4LgoKMjAxMS0xMS0yOCAxNzo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTEtMjggMTc6MjI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGVsZW1lbnQ6IHVzZSBmbGFncyBmb3IgcmVxdWlyZS9wcm92aWRlIGNsb2NrCgkgIFJlbW92ZSB0aGUgX3JlcXVpcmUvX3Byb3ZpZGVfY2xvY2soKSBtZXRob2RzIGFuZCB1c2UgZWxlbWVudCBmbGFncyB0byBtYXJrCgkgIGVsZW1lbnRzIGluc3RlYWQgb2YgbG9va2luZyBhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHZtZXRob2QuCgoyMDExLTExLTI4IDE2OjU0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGVsZW1lbnQ6IGNsZWFuIHVwIGVsZW1lbnQgZmxhZ3MKCSAgQ2xlYW4gdXAgdGhlIGVsZW1lbnQgZmxhZ3MKCjIwMTEtMTEtMjggMTU6MzU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBzdGlja3kgY3VzdG9tIHF1YXJrCgoyMDExLTExLTI4IDE0OjI0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogX0NBUFNfRkxBR1NfIC0+IENBUFNfRkxBR18KCjIwMTEtMTEtMjggMTI6MzA6MTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlX2Zyb21fc3RhdGljCgkgIFRoaXMgZnVuY3Rpb24gaGVscHMgZW5zdXJlIHRoZSBwYWQgdGVtcGxhdGUgaXMgdW5yZWZmZWQKCSAgd2l0aG91dCBoYXZpbmcgdG8gY29tcGxpY2F0ZSB0aGUgY2FsbGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjY0CgoyMDExLTExLTI4IDEzOjA4OjI3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICB2YXJpb3VzOiBmaXggcGFkIHRlbXBsYXRlIHJlZiBsZWFrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjY0CgoyMDExLTExLTI4IDEzOjU0OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEhhbmRsZSBzdGlja3kgZXZlbnQgZXJyb3JzCgkgIFVzZSBHc3RGbG93UmV0dXJuIHRvIGludGVybmFsbHkgcGFzcyBldmVudHMgYmV0d2VlbiBwYWRzLgoJICBXaGVuIHdlIHN0aWNreSBldmVudHMgY2F1c2UgYW4gZXJyb3IsIHRyYW5zbGF0ZSB0aGlzIGVycm9yIGludG8gYSBHc3RGbG93UmV0dXJuLgoJICBDYXBzIGV2ZW50cyB3aWxsLCBmb3IgZXhhbXBsZSwgZ2VuZXJhdGUgYSBOT1RfTkVHT1RJQVRFRCByZXR1cm4gd2hlbiB0aGUgZXZlbnQKCSAgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvci4KCSAgVGhpcyBhbGxvd3MgdXMgdGhlbiB0byByZWZ1c2Ugc2VuZGluZyBidWZmZXJzIGlmIG9uZSBvZiB0aGUgc3RpY2t5IGV2ZW50cyBpcwoJICByZWZ1c2VkIGFuZCBnZW5lcmF0ZSBhIGNvcnJlY3QgZXJyb3IgcmV0dXJuIHZhbHVlLgoKMjAxMS0xMS0yOCAxMzo1MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGRvbid0IHJldHVybiBGQUxTRSBmcm9tIGV2ZW50cwoJICBSZXR1cm5pbmcgRkFMU0UgZnJvbSB0aGUgZXZlbnQgaGFuZGxlciBzaHV0cyBkb3duIHRoZSBzZW5kZXIuCgoyMDExLTExLTI4IDEzOjUxOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBmaXggcmVmY291bnQgZXJyb3IKCjIwMTEtMTEtMjggMTE6MTU6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZ3N0bWV0YTogU29tZSBtb3JlIGRvY3MKCjIwMTEtMTEtMjggMTA6NTU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBjdXN0b20gZG93bnN0cmVhbSBzdGlja3kgZXZlbnQKCjIwMTEtMTEtMjggMDE6MTI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdXAgY29tbWVudCBhZnRlciBtZXJnZSBmcm9tIDAuMTAKCjIwMTEtMTEtMjggMDE6MTE6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI4IDAxOjEwOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHJlZmFjdG9yaW5nIG9mIGRyYWluaW5nLW9uLWVvcywgbXVuZ2UgZmxvdyByZXR1cm4gdG8gRkxPV19PSwoKMjAxMS0xMS0yOCAwMTowMDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB1cCBuZXcgYnVmZmVybGlzdCBjb2RlIGZvciAwLjExCgoyMDExLTExLTI4IDAwOjQwOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTEtMTEtMDMgMTA6MzQ6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgYnVmZmVybGlzdCBzdXBwb3J0CgkgIFdlIHdhbnQgdG8gbWFpbnRhaW4gYnVmZmVyIGxpc3RzIGlmIHBvc3NpYmxlLgoKMjAxMS0xMS0wMyAxMzowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNwbGl0IG91dCBkcmFpbmluZyBvZiBxdWV1ZSBvbiBGTE9XX1VORVhQRUNURUQgaW50byBzZXBhcmF0ZSBmdW5jdGlvbgoKMjAxMS0xMS0wMyAwODo1NToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBhc3MgaXRlbSB0eXBlIGVudW0gdG8gX2VucXVldWUgaW5zdGVhZCBvZiBzaW1wbGUgaXNidWZmZXIgYm9vbGVhbgoJICBBdm9pZHMgc29tZSB1bm5lY2Vzc2FyeSBHU1RfSVNfRVZFTlQoKQoKMjAxMS0xMS0yNyAyMDozMjoxNCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGZpeCBjb21waWxhdGlvbiB3YXJuaW5nCgkgIEdTVF9TVEFUSUNfQ0FQUyBpcyBtaXNzaW5nIGluaXRpYWxpemVyIGZvciBHc3RNaW5pT2JqZWN0J3Mgbl93ZWFrX3JlZnMgYW5kCgkgIHdlYWtfcmVmcyByZXN1bHRpbmcgaW4gY29tcGlsYXRpb24gd2FybmluZyAobGx2bS1nY2MgIC1XYWxsKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTI3CgoyMDExLTExLTI3IDIyOjI2OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNyAyMDozNjozMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgd2FybmluZ3M6IGF2b2lkIHNldC1idXQtdW51c2VkIHdhcm5pbmdzIHdpdGggbG9hZC1zYXZlIGRpc2FibGVkCgoyMDExLTExLTI2IDE3OjM0OjEyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggYnJva2VuIGRlZmF1bHQgY2FwcyBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0ODgwCgoyMDExLTExLTI2IDE5OjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNiAxOTo0NTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogZml4IHdyb25nIEdfR05VQ19NQUxMT0MKCSAgX2dldF9wcm90b2NvbHMoKSBwb2ludHMgdG8gY29uc3QgbWVtb3J5IGluIDAuMTAKCSAgZGVzcGl0ZSB0aGUgbm9uLWNvbnN0IHJldHVybiB2YWx1ZS4KCjIwMTEtMTEtMjYgMTk6NDQ6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlci5oCgkgIGdzdC9nc3RidWZmZXJsaXN0LmgKCSAgZ3N0L2dzdGNhcHMuaAoJICBnc3QvZ3N0ZGF0ZXRpbWUuaAoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaAoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuaAoJICBnc3QvZ3N0aW5kZXhmYWN0b3J5LmgKCSAgZ3N0L2dzdGl0ZXJhdG9yLmgKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0bWluaW9iamVjdC5oCgkgIGdzdC9nc3RwaXBlbGluZS5oCgkgIGdzdC9nc3RxdWVyeS5oCgkgIGdzdC9nc3RzZWdtZW50LmgKCSAgZ3N0L2dzdHN0cnVjdHVyZS5oCgkgIGdzdC9nc3R0YWdsaXN0LmgKCSAgZ3N0L2dzdHVyaS5oCgkgIGdzdC9nc3R2YWx1ZS5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmgKCSAgTm90ZTogY2FuJ3QgdXNlIEdfR05VQ19NQUxMT0Mgd2l0aCBHc3RDYXBzIHJldHVybgoJICB2YWx1ZXMgaW4gMC4xMSBiZWNhdXNlIG9mIHRoZSBFTVBUWStBTlkgc2luZ2xldG9ucy4KCjIwMTEtMTEtMjYgMTg6NTg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgbGliczogc3ByaW5rbGUgc29tZSBHX0dOVUNfTUFMTE9DCgkgIE1heWJlIGdjYyBjYW4gZG8gc29tZXRoaW5nIGNsZXZlciB3aXRoIHRoYXQsIG9yIGF0IGxlYXN0CgkgIHdhcm4gdXMgaWYgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlIHNvbWV3aGVyZS4KCjIwMTEtMTEtMjYgMTg6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ3N0OiBzcHJpbmtsZSBzb21lIEdfR05VQ19NQUxMT0MKCSAgTWF5YmUgZ2NjIGNhbiBkbyBzb21ldGhpbmcgY2xldmVyIHdpdGggdGhhdCwgb3IgYXQgbGVhc3QKCSAgd2FybiB1cyBpZiB3ZSBkb24ndCBzYXZlIHRoZSByZXR1cm4gdmFsdWUgc29tZXdoZXJlLgoKMjAxMS0xMS0yNSAyMzo1NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjUgMjM6MTU6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2NzLgoKMjAxMS0xMS0xNiAwMTowNDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl97c2V0LGdldH1fcWRhdGEoKQoJICBBbGxvd3MgcGVvcGxlL3VzIHRvIGF0dGFjaCBhcmJpdHJhcnkgbWV0YWRhdGEgdG8gYnVmZmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDcyMAoJICBBUEk6IGdzdF9idWZmZXJfc2V0X3FkYXRhKCkKCSAgQVBJOiBnZXRfYnVmZmVyX2dldF9xZGF0YSgpCgoyMDExLTExLTI1IDA3OjExOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJsb2NraW5nIHByb2JlIGVtaXNzaW9uCgkgIElmIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBibG9ja2luZyBwcm9iZSwgb25seSB0aGVuIGNoZWNrIGlmIG9uZSB0aGUKCSAgYmxvY2tpbmcgZmxhZ3Mgb2YgdGhlIGhvb2sgbWF0Y2hlcy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgTWFrZSB0aGUgcGFkIHVuaXQgdGVzdCBsZXNzIHJhY3kuCgoyMDExLTExLTI0IDE3OjQ3OjA5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBBZGQgdGVzdCBmb3IgUEFEX1BST0JFX1RZUEVfQkxPQ0sgYW5kIFBBRF9QUk9CRV9UWVBFX0JMT0NLSU5HCgoyMDExLTExLTI1IDA1OjU0OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZGVidWcgb2YgcXVlcnkgcmVzdWx0CgoyMDExLTExLTI0IDIyOjUyOjE5ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggdHlwbyBpbiBkb2MKCSAgQ2F1c2VzIGEgd2FybmluZyBmcm9tIHRoZSBpbnRyb3NwZWN0aW9uIHNjYW5uZXIuCgoyMDExLTExLTI0IDIxOjM2OjEyICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgY2hlY2s6IGRyb3AgY2FwcyBhcmd1bWVudCBmcm9tIGdzdF9jaGVja19zZXR1cF97c3JjLHNpbmt9X3BhZAoJICBDYWxsaW5nIHNldF9jYXBzIGF0IHRoYXQgcG9pbnQgaXMgbm90IHVzZWZ1bCBpbiAwLjEwIChGSVhNRSBjb21tZW50ISksIGFuZCBpbgoJICAwLjExIGl0IGlzIHRvdGFsbHkgcG9pbnRsZXNzOiB0aGUgY2FwcyBldmVudCBkb2Vzbid0IHN0aWNrIHRvIGEgZmx1c2hpbmcgcGFkLgoKMjAxMS0xMS0yNCAxNDowNzoxNCArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBieXRlX3dyaXRlcl9wdXRfYnVmZmVyCgoyMDExLTExLTI0IDExOjIzOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMS0xMS0yNCAxMToxNToyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIGdfd2FybmluZygpIGlmIHBhZCBhY2NlcHRlZCBjYXBzIHRoYXQgYXJlIG5vdCBhIHN1YnNldCBvZiB0aGUgcGFkIGNhcHMKCSAgVGhpcyBjaGVjayBpcyBjb3JyZWN0IGJ1dCB1bmZvcnR1bmF0ZWx5IGl0J3MgaW1wb3NzaWJsZSB0byBpbXBsZW1lbnQKCSAgaW4gYSB0aHJlYWRzYWZlIHdheSBiZWNhdXNlIHRoZSBjYXBzIGNvdWxkIGhhdmUgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgkgIEZpeGVzIGJ1ZyAjNjU5NjA2LgoKMjAxMS0xMC0wMyAxMjozNDoyMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2hlY2sgZmlsbGVkIHN0YXRlIG9mIHF1ZXVlcyBldmVuIGlmIGFub3RoZXIgb25lIGlzIGVtcHR5CgkgIFRoaXMgd2lsbCBhdm9pZCBhIGNhc2Ugd2hlcmUgb3ZlcnJ1biBpcyBuZXZlciBzaWduYWxsZWQgaWYgc29tZQoJICBzdHJlYW0gbmV2ZXIgcHJvZHVjZXMgYW55IGRhdGEsIGNhdXNpbmcgcGxheWJpbjIgdG8gbm90IGVuZCBwcmVyb2xsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwNzc4CgoyMDExLTExLTI0IDA5OjMxOjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IENoZWNrIGZvciBkYXRhZmxvdyB3aXRoIGluY29tcGF0aWJsZSBjYXBzCgkgIFRoaXMgdGVzdCBjdXJyZW50bHkgZmFpbHMsIGJ1dCBpcyB0aGVyZSB0byBlbnN1cmUgd2UgZml4IHRoaXMgaXNzdWUKCSAgYW5kIGtlZXAgaXQgZml4ZWQsIHNpbmNlIGl0IGNvbXBsZXRlbHkgYnJlYWtzIGRlbGF5ZWQgbmVnb3RpYXRpb24KCSAgdXNlLWNhc2VzLgoJICBUaGlzIGJlaGF2aW91ciBzdGFydGVkIGJyZWFraW5nIHNpbmNlCgkgIGRkNjVhYWU5YTE3N2Y3YjExZGNlZjBmNjkwYTc4ZDY5OGY2NjdjZDQKCjIwMTEtMTEtMjQgMDk6MzE6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogQWRkIGNvbW1lbnRzIHRvIGdzdHBhZCB0ZXN0cwoKMjAxMS0xMS0yNCAwOTozMDoxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgIiNpZiAwIiBibG9jayBmb3IgYmVoYXZpb3VyIHRoYXQgbm93IHdvcmtzCgoyMDExLTExLTI0IDA5OjI4OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSBjb21tZW50ZWQgYmxvY2sKCSAgVGhpcyBiZWhhdmlvdXIgaXMgYWN0dWFsbHkgdGVzdGVkIGluIHRlc3RfcHVzaF91bmxpbmtlZAoKMjAxMS0xMS0yNCAwMTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogbWFrZSBnc3QtaW5zcGVjdCBwcmludCBhIG5hc3R5IGRlYnVnIG1lc3NhZ2UgZm9yIG5vbi1ncmF0YSBwcm9wZXJ0eSB0eXBlCgkgIFRyeSB0byBlcmFkaWNhdGUgcHJvcGVydGllcyBvZiBsb25nL3Vsb25nL2NoYXIvdWNoYXIgdHlwZS4KCjIwMTEtMTEtMjMgMTc6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZXZlbnQ6IGFkZCBTVElDS1lfTVVMVFkgZXZlbnRzCgkgIEFkZCBhIG5ldyBldmVudCBmbGFnIGZvciBzdGlja3kgZXZlbnRzIHNvIHRoYXQgbXVsdGlwbGUgZXZlbnRzIG9mIHRoYXQgdHlwZSBjYW4KCSAgYmUgc3RvcmVkIG9uIGEgcGFkIGF0IHRoZSBzYW1lIHRpbWUuIENoYW5nZSB0aGUgX2dldF9zdGlja3lfZXZlbnQoKSBmdW5jdGlvbiB0bwoJICBsb29wIG92ZXIgdGhlIG11bHRpcGxlIGV2ZW50cyBvZiBhIHR5cGUuCgkgIENoYW5nZSB0aGUgZm9yZWFjaCBmdW5jdGlvbiB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlbW92ZWQgYW5kIG1vZGlmeSB0aGUgc3RpY2t5CgkgIGV2ZW50cyBvbiBhIHBhZC4KCSAgVXNlIGFuIHZhcmlhYmxlIHNpemUgYXJyYXkgbm93IHRvIHN0b3JlIHRoZSBldmVudHMuIFRoaXMgY291bGQgbGF0ZXIgYmUKCSAgb3B0aW1pemVkIHNvbWUgbW9yZS4KCjIwMTEtMTEtMjMgMTc6Mzk6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogaGFuZGxlIE5VTEwgbWVzc2FnZSBzcmMgaW4gZGVidWcKCjIwMTEtMTEtMjMgMTc6Mzg6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBhdm9pZCByZWFkaW5nIHBhc3QgdGhlIGFycmF5CgkgIFdoZW4gdGhlIGZvcmVhY2ggZnVuY3Rpb24gdG9sZCB1cyB0byByZW1vdmUgdGhlIGJ1ZmZlciBmcm9tIHRoZSBsaXN0LCBkZWNyZWFzZQoJICB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBvciBlbHNlIHdlIG1pZ2h0IHJlYWQgcGFzdCB0aGUgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KCjIwMTEtMTEtMjMgMTM6NDI6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gdGVtcGxhdGUgY2FwcyBpbnN0ZWFkIG9mIG90aGVyIHNpZGUncyBwZWVyIGNhcHMgaWYgZ2V0X3NpbmtfY2FwcyB2ZnVuYyBpcyBub3QgaW1wbGVtZW50ZWQKCSAgVXNpbmcgZ3N0X3BhZF9wcm94eV9nZXRfY2FwcygpIGJyZWFrcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZAoJICBwYXJzZXJzIGJlY2F1c2UgaXQgd2lsbCBwcm9wYWdhdGUgdGhlIG90aGVyIHNpZGUncyBmaWVsZHMgbGlrZSAicGFyc2VkIgoJICBhbmQgImZyYW1lZCIgYW5kIGFsc28gYnJlYWtzIHBhcnNlci9jb252ZXJ0ZXJzLgoJICBGaXhlcyBidWcgIzY2NDIyMS4KCjIwMTEtMTEtMjMgMTE6MDM6MTkgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IGFkZCBtZXRob2QgdG8gd3JpdGUgb3V0IGEgYnVmZmVyCgkgIEluIDAuMTAsIHRoaXMgY2FuIGJlIGRvbmUgd2l0aCBhIG9uZS1saW5lciBieSB1c2luZyBHU1RfQlVGRkVSX0RBVEEvU0laRSB3aXRoCgkgIHB1dF9kYXRhLiBBIDAuMTEgdXNlciBoYXMgdG8gcmVzb3J0IHRvIGdzdF9idWZmZXJfbWFwLCB3aGljaCBpcyBsZXNzIGNvbnZlbmllbnQKCSAgYW5kIG1pZ2h0IHJlcXVpcmUgYSBtZW1jcHkgaW50ZXJuYWxseS4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcigpCgoyMDExLTExLTIzIDA4OjE3OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRha2UgcGVlcnBhZCBjb3JyZWN0bHkKCSAgRG9uJ3QgdGFrZSB0aGUgcGVlcnBhZCB0b28gZWFybHksIGl0IG1pZ2h0IGNoYW5nZSBiZWNhdXNlIG9mIHRoZQoJICBwcm9iZXMuCgoyMDExLTExLTIyIDE4OjMyOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmV3b3JrIHN0aWNreSBldmVudHMKCSAgUmV3cml0ZSBzdGlja3kgZXZlbnRzLCB0cnlpbmcgdG8gbWFrZSBpdCBhIGJpdCBtb3JlIHNpbXBsZS4KCSAgV2hlbiBzdGlja3kgZXZlbnRzIGFyZSBwdXNoZWQgb24gYSBzcmNwYWQsIHN0b3JlIHRoZW0gaW4gdGhlIHN0aWNreSBldmVudAoJICBhcnJheSBhbmQgbWFyayB0aGUgZXZlbnQgd2l0aCByZWNlaXZlZCA9IEZBTFNFLgoJICBXaGVuIHRoZSBzdGlja3kgZXZlbnQgaXMgc3VjY2Vzc2Z1bGx5IHNlbnQgdG8gdGhlIHBlZXIgcGFkLCBtYWtlCgkgIHJlY2VpdmVkID0gVFJVRS4KCSAgS2VlcCBhIFBFTkRJTkdfRVZFTlRTIHBhZCBmbGFnIHRoYXQgaXMgc2V0IHdoZW4gb25lIG9mIHRoZSBldmVudHMgaXMgaW4KCSAgdGhlIHJlY2VpdmVkID0gRkFMU0Ugc3RhdGUgZm9yIHNvbWUgcmVhc29uLgoJICB3aGVuIGFjdGl2YXRpbmcgYSBzaW5rcGFkLCBtYXJrIGFsbCBldmVudHMgcmVjZWl2ZWQgPSBGQUxTRSBvbiB0aGUgcGVlcgoJICBzcmNwYWQuCgkgIFdoZW4gcHVzaGluZyBhIGJ1ZmZlciwgY2hlY2sgdGhlIFBFTkRJTkdfRVZFTlRTIGZsYWcgYW5kIGlmIGl0IGlzIHNldCwgcHVzaCBhbGwKCSAgZXZlbnRzIHRvIHRoZSBwZWVyIHBhZCBmaXJzdC4KCjIwMTEtMTEtMjIgMTg6MzI6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gbGV0IGNhcHMgZXZlbnRzIGdvIHRocm91Z2gKCjIwMTEtMTEtMjIgMTY6NDM6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIG5ldyBmbGFncwoKMjAxMS0xMS0yMSAxODo1NjoxOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogZml4IHJldHVybiB0eXBlIG9mIF9tYXAoKSB0byBnY29uc3Rwb2ludGVyCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TWDoKCSAgZ3N0YWRhcHRlci5oOjgyOiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBnc3RhZGFwdGVyLmM6NDEyOiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBjb25zdCBncG9pbnRlciBpcyBub3QgdGhlIHNhbWUgYXMgZ2NvbnN0cG9pbnRlciBvciBjb25zdCB2b2lkICouCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTEtMTEtMjIgMTI6NDY6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcyBmaWxlcwoKMjAxMS0xMS0yMiAxMjo0NTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIHBhZGQgcmV0dXJuIHZhbHVlIGZyb20gX21pbmlfb2JqZWN0X3JlcGxhY2UoKQoKMjAxMS0xMS0yMSAxODo1NjoxOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgRml4IHByaW50ZiBmb3JtYXQgY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYLzY0Yml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTEtMTEtMjEgMTc6NDY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBpbXByb3ZlIHBhZCB0ZXN0cwoKMjAxMS0xMS0yMSAxNzo0Mzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggbG9ja2luZyBvcmRlciBlcnJvcgoKMjAxMS0xMS0yMSAxNzo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IHByaW50IGZvcm1hdAoKMjAxMS0xMS0yMSAxNTo0NzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBkZXN0cm95IG5vdGlmeSB0byBwYWQgZnVuY3Rpb25zCgkgIEFkZCBfZnVsbCB2YXJpYW50cyBvZiB0aGUgcGFkIGZ1bmN0aW9uIHNldHRlcnMgdGhhdCB0YWtlIGEgZGVzdHJveSBub3RpZnkuCgkgIE1ha2Ugc29tZSBtYWNyb3MgdGhhdCBtYWtlIHRoZSBvbGQgbWV0aG9kIG5hbWUgcGFzcyBOVUxMIHRvIHRoaXMgbmV3CgkgIGZ1bmN0aW9uLgoKMjAxMS0xMS0yMSAxMzoyOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHBhZDogTWVyZ2UgcGFkIG1vZGUgYWN0aXZhdGlvbiBmdW5jdGlvbnMKCSAgQWRkIHRoZSBwYWQgbW9kZSB0byB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgZnVuY3Rpb24KCSAgZm9yIGFsbCBhY3RpdmF0aW9uIG1vZGVzLiBUaGlzIG1ha2VzIHRoZSBjb3JlIGxvZ2ljIHNtYWxsZXIgYW5kIGFsbG93cyBmb3Igc29tZQoJICBlbGVtZW50cyB0byBtYWtlIHRoZWlyIGFjdGl2YXRpb24gY29kZSBlYXNpZXIuIEl0IHdvdWxkIGFsbG93IHVzIHRvIGFkZCBtb3JlCgkgIHNjaGVkdWxpbmcgbW9kZXMgbGF0ZXIgd2l0aG91dCBoYXZpbmcgdG8gYWRkIG1vcmUgYWN0aXZhdGUgZnVuY3Rpb25zLgoKMjAxMS0xMS0xOCAxODowODoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvYwoJICBhbHNvIGZpeCBkZWZhdWx0IGFsaWdubWVudCB2YWx1ZSAoMCA9PSBuby1hbGlnbm1lbnQpCgoyMDExLTExLTE4IDE3OjI3OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHF1ZXJ5OiBpbXByb3ZlIHNjaGVkdWxpbmcgcXVlcnkKCSAgVHVybnMgc29tZSBib29sZWFuIGFyZ3VtZW50cyBpbiB0aGUgc2NoZWR1bGluZyBxdWVyeSB0byBmbGFncywgd2hpY2ggYXJlIGVhc2llcgoJICB0byBleHRlbmQgYW5kIG1ha2VzIHRoZSBjb2RlIGVhc2llciB0byByZWFkLgoJICBNYWtlIGV4dHJhIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIGFuZCBxdWVyeWluZyB0aGUgc3VwcG9ydGVkIHNjaGVkdWxpbmcgbW9kZXMuCgkgIFRoaXMgc2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCBuZXcgbW9kZXMgbGF0ZXIuCgoyMDExLTExLTE4IDE0OjA4OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBtb3ZlIGZsYWdzIGNsb3NlciB0byBidWZmZXJpbmcgcXVlcnkKCjIwMTEtMTEtMTggMTM6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIGFjdGl2YXRlIGZ1bmN0aW9ucwoKMjAxMS0xMS0xOCAxMjozNTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHBhZDogZml4IHNjaGVkdWxpbmcgbW9kZSBlbnVtcwoJICBHc3RQYWRBY3RpdmF0ZU1vZGUgLT4gR3N0UGFkTW9kZQoJICBHU1RfUEFEX0FDVElWQVRFXyogLT4gR1NUX1BBRF9NT0RFXyoKCjIwMTEtMTEtMTcgMTY6MTQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBmb3IgbmV3IGdldHJhbmdlIG1ldGhvZCBzaWduYXR1cmUKCSAgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlX2V4dCAtPiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UKCjIwMTEtMTEtMTcgMTI6NDA6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gb3RoZXIgZnVuY3Rpb25zCgkgIEFkZCBwYXJlbnQgdG8gY2hhaW4sIGNoYWluX2xpc3QsIGdldHJhbmdlIGFuZCBldmVudCBmdW5jdGlvbnMuCgoyMDExLTExLTE3IDA4OjIxOjA1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1vdmUgZmllbGRzIG91dCBvZiByZXNlcnZlZCBhbmQgcmVzdG9yZSBwYWRkaW5nCgkgIERvIHRoZSAwLjExIEFCSSBjaGFuZ2VzLiBBZGQgZXh0cmEgZmllbGRzIGZvciBkZXN0cm95X25vdGlmeSBhbmQgZHJvcCB0aGUgcWRhdGEKCSAgaGFjay4gUmVuYW1lIF9hZGRfcGFkX2Z1bGwgdG8gX2FkZF9wYWQgYW5kIHJlbW92ZSB0aGUgb2xkIF9hZGRfcGFkLgoKMjAxMS0xMS0xNiAxNzo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgYWRkIHBhcmVudCB0byBpbnRlcm5hbCBsaW5rcwoKMjAxMS0xMS0xNiAxNzoyMjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIHRoZSBxdWVyeSBmdW5jdGlvbgoKMjAxMS0xMS0xNiAxMjozNjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgR3N0UGFkRmxhZ3M6IHJlbmFtZSBmbGFncyBHU1RfUEFEXyogLT4gR1NUX1BBRF9GTEFHXyoKCjIwMTEtMTEtMTYgMTI6MTA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHBsdWdpbnM6IHJlbW92ZSBvYnNvbGV0ZSBwYXJlbnQgY2hlY2tzCgoyMDExLTExLTE2IDEyOjA4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDoga2VlcCB0aGUgcGFyZW50IGFsaXZlIHdoZW4gcmVxdWVzdGVkCgkgIEFkZCBhIG5ldyBwYWQgZmxhZyBORUVEX1BBUkVOVCB0aGF0IGVuc3VyZXMgdGhhdCB0aGUgcGFyZW50IG9mIGEgcGFkIGlzCgkgIHJlZmZlZCBhbmQgbm90IE5VTEwgd2hlbiB0aGUgZXZlbnQsIHF1ZXJ5IGFuZCBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbnMKCSAgYXJlIGNhbGxlZC4KCSAgV2hlbiBhIHBhZCBpcyBhZGRlZCB0byBhbiBlbGVtZW50IGF1dG9tYXRpY2FsbHkgbWFrZSBzdXJlIHRoZSBORUVEX1BBUkVOVCBmbGFnCgkgIGlzIGVuYWJsZWQuCgoyMDExLTExLTE2IDEwOjI5OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvbid0IHJlcXVpcmUgcGFyZW50IGVsZW1lbnQgdG8gcHJveHkKCjIwMTEtMTEtMTYgMTA6MTY6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMTEtMTUgMTg6MTY6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBwYWQ6IG1vdmUgcXVlcnkgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvZ2V0aGVyCgkgIE1vdmUgdGhlIGNhcHMgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIHRoZSBvdGhlciBxdWVyeSBmdW5jdGlvbnMuCgoyMDExLTExLTE1IDE3OjUwOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIF9xdWVyeV9wZWVyXyooKSAtPiBfcGVlcl9xdWVyeV8qKCkKCjIwMTEtMTEtMTUgMTc6NDA6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBfYWNjZXB0X2NhcHMoKSAtPiBfcXVlcnlfYWNjZXB0X2NhcHMoKQoKMjAxMS0xMS0xNSAxNzoxMTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIF9wZWVyX2dldF9jYXBzKCkgLT4gcGVlcl9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6NDY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBwYWQ6IF9nZXRfY2FwcygpIC0+IF9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6MTY6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkb2NzCgoyMDExLTExLTE1IDE2OjEzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggdGhlIHByb3h5IGZ1bmN0aW9ucwoJICBmaXggdGhlIHByb3h5IGZ1bmN0aW9ucyBmb3IgcXVlcnlfYWNjZXB0X2NhcHMgYW5kIHF1ZXJ5X2NhcHMgdG8gdXNlIHRoZSBwYWQKCSAgZm9yd2FyZCBoZWxwZXIgZnVuY3Rpb25zIHdoaWNoIGNvcnJlY3RseSBmb3J3YXJkcyBvbiB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCjIwMTEtMTEtMTUgMTY6MTM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW1wcm92ZSBzb21lIGZsYWcgbWFjcm9zCgoyMDExLTExLTE1IDE2OjEzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWJ1ZyBsaW5lCgoyMDExLTExLTE1IDExOjIwOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IHJlbW92ZSBnZXRjYXBzIGFuZCB1c2UgY2FwcyBxdWVyeQoJICBSZW1vdmUgdGhlIGdldGNhcHMgZnVuY3Rpb24gb24gdGhlIHBhZCBhbmQgdXNlIHRoZSBDQVBTIHF1ZXJ5IGZvcgoJICB0aGUgc2FtZSBlZmZlY3QuCgkgIEFkZCBQUk9YWV9DQVBTIHRvIHRoZSBwYWQgZmxhZ3MuIFRoaXMgaW5zdHJ1Y3RzIHRoZSBkZWZhdWx0IGNhcHMgZXZlbnQgYW5kIHF1ZXJ5CgkgIGhhbmRsZXJzIHRvIHBhc3Mgb24gdGhlIENBUFMgcmVsYXRlZCBxdWVyaWVzIGFuZCBldmVudHMuIFRoaXMgc2ltcGxpZmllcyBhIGxvdAoJICBvZiBlbGVtZW50cyB0aGF0IHBhc3N0cm91Z2ggY2FwcyBuZWdvdGlhdGlvbi4KCSAgTWFrZSB0d28gdXRpbGl0eSBmdW5jdGlvbnMgdG8gcHJveHkgY2FwcyBxdWVyaWVzIGFuZCBhZ2dyZWdhdGUgdGhlIHJlc3VsdC4gTmVlZHMKCSAgdG8gdXNlIHRoZSBwYWQgZm9yd2FyZCBmdW5jdGlvbiBpbnN0ZWFkIGxhdGVyLgoJICBNYWtlIHRoZSBfcXVlcnlfcGVlcl8gdXRpbGl0eSBmdW5jdGlvbnMgdXNlIHRoZSBnc3RfcGFkX3BlZXJfcXVlcnkoKSBmdW5jdGlvbiB0bwoJICBtYWtlIHN1cmUgdGhlIHByb2JlcyBhcmUgZW1pdGVkIHByb3Blcmx5LgoKMjAxMS0xMS0xNCAxMToyNjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIGNhcHMgcXVlcnkKCjIwMTEtMTEtMTQgMDk6NTc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiByZW1vdmUgR1NUX1FVRVJZX0xBU1QKCjIwMTEtMTEtMTQgMTA6Mjc6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGZpeCBkb2NzCgoyMDExLTExLTEyIDEwOjI5OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBmdW5jdGlvbnMgdG8gYWRkL3JlbW92ZSBjb250cm9sbGVkIHByb3BlcnRpZXMKCSAgTWFrZSB0aGF0IGltcGxpeml0IHdpdGggYXR0YWNoaW5nL2RldGFjaGluZyBjb250cm9sc291cmNlcy4gVGhpcyBpcyBhIGxvdCBlYXNpZXIKCSAgYW5kIGhhcyBsZXNzIGludmFsaWQgc3RhdGUgKGNvbnRyb2xsZWQgcHJvcGVydHkgd2l0aG91dCBjb250cm9sIHNvdXJjZSkuCgoyMDExLTExLTEzIDIzOjU1OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBVcGRhdGUgZm9yIEdzdFVSSUhhbmRsZXIgZ2V0X3Byb3RvY29scygpIGNoYW5nZXMKCjIwMTEtMTEtMTMgMjM6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwbHVnaW5zLCB0b29sczogdXBkYXRlIGZvciBnZXRfcHJvdG9jb2xzKCkgcmV0dXJuIHZhbHVlIGNoYW5nZQoKMjAxMS0xMS0xMyAyMzoxNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogY2xlYW4gdXAgaGVhZGVyIGZpbGVzCgkgIFRhYnMgdG8gc3BhY2VzLgoKMjAxMS0xMS0xMyAyMzowNzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgZ2V0X3Byb3RvY29scygpCgoyMDExLTExLTEzIDIwOjU2OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmloYW5kbGVyOiBmaXggcmV0dXJuIHR5cGUgb2YgX2dldF91cmlfdHlwZSgpCgkgIFJldHVybiBhIEdzdFVSSVR5cGUgYW5kIG5vdCBhIHBsYWluIGd1aW50LgoKMjAxMS0xMS0xMyAxNzo0NToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHRlc3RzOiB1cGRhdGUgdW5pdCB0ZXN0cyBmb3IgVVJJIGhhbmRsZXIgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMTMgMTc6NDQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBlbGVtZW50czogdXBkYXRlIGZkICsgZmlsZSBzb3VyY2VzIGFuZCBzaW5rcyBmb3IgR3N0VXJpSGFuZGxlciBjaGFuZ2VzCgoyMDExLTExLTEzIDE3OjQ0OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1cmloYW5kbGVyOiBwYXNzIEdFcnJvciBhcmd1bWVudCB0byBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSgpCgkgIEFsc28gbGV0IGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpIGNoZWNrIGFscmVhZHkgaWYgdGhlIHByb3RvY29sCgkgIGlzIHN1cHBvcnRlZCwgc28gdGhhdCBub3QgZXZlcnkgdXJpIGhhbmRsZXIgaGFzIHRvIGRvIHRoYXQKCSAgaXRzZWxmLgoKMjAxMS0xMS0xMyAxNTo1MTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogbWFrZSBfZ2V0X3VyaSgpIHJldHVybiBhIGNvcHkKCSAgRm9yIHRocmVhZC1zYWZldHkuCgoyMDExLTExLTEzIDE1OjM3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgdXJpaGFuZGxlcjogcmVtb3ZlICJuZXctdXJpIiBzaWduYWwKCSAgTm8gb25lIGJ1dCBmaWxlc3JjIHVzZWQgdGhhdCBBUEkuIFNob3VsZCBwcm9iYWJseSBiZSByZXBsYWNlZCBieQoJICByZXF1aXJpbmcgYW4gInVyaSIgcHJvcGVydHkgaW5zdGVhZCwgYW5kIHRoZW4gb2JqZWN0cyBjYW4gZG8gYQoJICBub3RpZnkgb24gdGhhdC4gQWxzbyByZW1vdmVkIGludGVyZmFjZSBzdHJ1Y3R1cmUgcGFkZGluZywgaXQncwoJICBub3QgbmVlZGVkLgoKMjAxMS0xMS0xMyAxMzoyMzowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0b29scy9nc3QtaW5zcGVjdC5jCgoyMDExLTExLTEyIDE2OjQyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBjdXJyZW50IHZhbHVlIGFzIGRlZmF1bHQgdmFsdWUKCSAgSW5zdGVhZCBvZiBwcmludGluZyBzZXBhcmF0ZSAnQ3VycmVudCcgYW5kICdEZWZhdWx0JyB2YWx1ZXMKCSAgKHRoZSBmb3JtZXIgb2J0YWluZWQgdmlhIGdfb2JqZWN0X2dldCgpIGFuZCB0aGUgbGF0dGVyIGZyb20KCSAgdGhlIHByb3BlcnR5IEdQYXJhbVNwZWMpLCBzaW1wbHkgcHJpbnQgdGhlIEN1cnJlbnQgdmFsdWUgYXMKCSAgdGhlIERlZmF1bHQgdmFsdWUuIFRoaXMgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGZvciBhbG1vc3QKCSAgYWxsIGVsZW1lbnRzIGFuZCBhdm9pZHMgY29uZnVzaW9uIGlmIGEgc3ViY2xhc3Mgb2YgYSBiYXNlCgkgIGNsYXNzIGNob29zZXMgYSBkaWZmZXJlbnQgZGVmYXVsdCB0aGFuIHRoZSBiYXNlIGNsYXNzLgoKMjAxMS0xMS0xMiAxNDo1NTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBnc3QsIGNvbnRyb2xsZXI6IHJlcGxhY2UgZ19saXN0X3ByZXBlbmQgKyByZXZlcnNlIHdpdGggR1F1ZXVlCgoyMDExLTExLTEyIDE0OjA0OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZG9jczogZml4IHR5cG8gaW4gYnVmZmVyIGRvY3MKCjIwMTEtMTEtMTIgMDE6NTQ6NDQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGNhcHMgdW5yZWYgaW4gdHJhbnNmb3JtX2NhcHMgZmlsdGVyIHN1YnNldCBjaGVjawoJICBJIGRpZCBub3QgdGVzdCB0aGlzLCBidXQgdGhlIGNvZGUgbG9va2VkIHZlcnkgd3JvbmcuCgoyMDExLTExLTEyIDAxOjUxOjExICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBkbyBub3QgcmV0dXJuIGEgcmVmIGZyb20gcGFyc2VfYWNjZXB0X2NhcHMKCSAgTWFrZXMgdGhpcyBleGFjdGx5IGxpa2UgZ3N0X2V2ZW50X3BhcnNlX2NhcHMuIFRoaXMgaXMgd2hhdCBjdXJyZW50IGNvZGUKCSAgZXhwZWN0cywgc28gaXQgZml4ZXMgc29tZSBsZWFrcy4KCjIwMTEtMTEtMTEgMTc6MTc6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIC5oOiBmaXggaGVhZGVyIGZpbGVzCgkgIEVuc3VyZSBjb3JyZWN0IGluZGVudGF0aW9uIGFuZCByZXRhYgoJICBNYWtlIHN1cmUgYWxsIHN0cnVjdHVyZSBoYXZlIHBhZGRpbmcKCjIwMTEtMTEtMTEgMTY6NTI6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleC5oOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIC5oOiBmaXggaGVhZGVyIGZpbGVzCgkgIEVuc3VyZSBjb3JyZWN0IGluZGVudGF0aW9uIGFuZCA6cmV0YWIuCgkgIE1ha2Ugc3VyZSBhbGwgc3RydWN0dXJlcyBoYXZlIHBhZGRpbmcKCSAgRml4IHVwIHNvbWUgb2xkIEFCSSBhZGRpdGlvbnMuCgoyMDExLTExLTExIDE3OjA0OjUyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBkb2NzOiBmaXggaW52YWxpZCB4bWwKCjIwMTEtMTEtMTEgMTA6MDA6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYXZvaWQgPCAtMSBzaXplcwoKMjAxMS0xMS0xMSAwMTo0NzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGJ1ZmZlciwgbWVtb3J5OiBtYWtlIHNpemUgYXJndW1lbnRzIHdoZXJlIC0xIGlzIGFsbG93ZWQgc2lnbmVkCgoyMDExLTExLTExIDAxOjQ0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbGF0ZXN0IEFQSSBjaGFuZ2VzCgoyMDExLTExLTEwIDE5OjM3OjI4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IG1lcmdlIGNvbnRyb2xsZXIgaW50byBnc3RvYmplY3QKCSAgVGhpcyBtYWtlIHRoZSBjb250cm9sbGVyIGV2ZW4gbW9yZSBsaWdodHdlaWdodCAobm8gZXh0cmEgb2JqZWN0LCBubyBleHRyYSBsb2NrLAoJICBsZXNzIGluZGlyZWN0aW9ucykuIEZvciBvYmplY3QgdGhhdCBkb24ndCB1c2UgdGhlIGNvbnRyb2xsZXIgdGhlIG9ubHkgJ292ZXJoZWFkJwoJICBpcyBhIDMgdW51c2VkIGZpZWxkcyBpbiB0aGUgZ3N0X29iamVjdCBzdHJ1Y3R1cmUuCgoyMDExLTExLTEwIDE4OjU4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBuZXRtZXRhOiBhdm9pZCB1c2luZyBnW3VdbG9uZyBpbiBoZWFkZXJzCgoyMDExLTExLTEwIDE4OjE4OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVtb3ZlIGZsdXNoIGZyb20gX3VubWFwCgoyMDExLTExLTEwIDE2OjAyOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcGxlbWVudCBhIGRlZmF1bHQgZ2V0X2NhcHMgZnVuY3Rpb24KCSAgRG9uJ3QgcmVseSBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGEgdm1ldGhvZCB0byB0cmlnZ2VyIHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIGJ1dCBtYWtlIGEgcmVhbCBkZWZhdWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1ldGhvZCB0aGF0IHRoZQoJICBzdWJjbGFzcyBjYW4gY2hhaW4gdXAgdG8uCgoyMDExLTExLTEwIDE0OjEzOjU0ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiByZW1vdmUgaW5jb3JyZWN0IGFzc2VydGlvbgoJICBPZmZzZXQgYW5kIHNpemVzIGhhdmUgbm8gYmVhcmluZyBvbiBlYWNoIG90aGVyIGhlcmUuCgoyMDExLTExLTEwIDEzOjU5OjI4ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGVzCgoyMDExLTExLTEwIDEzOjUzOjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBnc3Q6IE1vcmUgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoKMjAxMS0xMS0xMCAxMzo1MToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgZ3N0bWVtb3J5OiBSZWdpc3RlciBhIEdCb3hlZCBHVHlwZQoJICBBbGxvd3MgdXNpbmcgaXQgZnJvbSBnLWkKCjIwMTEtMTEtMTAgMTM6NTA6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgLS13YXJuLWFsbCB0byBpbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgLi4uIGFuZCBsZXQncyBnZXQgZml4aW5nIGFsbCB0aG9zZSBkb2NzICEKCjIwMTEtMTEtMTAgMTM6Mzg6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IHZtZXRob2RzCgkgIE1ha2UgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSB0cmFuc2Zvcm1fY2FwcyB2bWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcwoJICBjYW4gY2FsbCBpbnRvIGl0LgoJICBNYWtlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0cmFuc2Zvcm1fc2l6ZS4KCSAgQXZvaWQgZG9pbmcgc29tZXRoaW5nIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUuCgoyMDExLTExLTEwIDEzOjM3OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICB0ZXN0czogb25seSBvdmVycmlkZSB3aGVuICE9IE5VTEwKCSAgT25seSBvdmVycmlkZSB0aGUgbWV0aG9kcyBpbiB0aGUgdW5pdCB0ZXN0cyB3aGVuICE9IE5VTEwgb3RoZXJ3aXNlIHdlIG1pZ2h0CgkgIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoKMjAxMS0xMS0xMCAxMzozNjoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgcHVzaHNyYzogbWFrZSBhbGxvYyBtZXRob2QgYSB2bWV0aG9kCgoyMDExLTExLTEwIDEyOjMzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVvcmRlciB2bWV0aG9kIGFjY29yZGluZyB0byAuaCBmaWxlCgoyMDExLTExLTEwIDEyOjMzOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogaW1wcm92ZSBjb21tZW50cwoKMjAxMS0xMS0xMCAxMjozMzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBkbyB0aGluZ3MgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZQoKMjAxMS0xMS0xMCAxMjowOTo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYWRkIGEgZGVmYXVsdCBzZXRfY2xvY2sgaW1wbGVtZW50YXRpb24KCSAgQWRkIGEgZGVmYXVsdCBzZXRfY2xvY2sgaW1wbGVtZW50YXRpb24gYW5kIGF2b2lkIGRvaW5nIHdvcmsgaW4gdGhlIHZtZXRob2QKCSAgdHJhbXBvbGluZS4gVGhpcyByZXF1aXJlcyBzdWJjbGFzc2VzIHRvIGNoYWluIHVwLgoKMjAxMS0xMS0xMCAxMjowODo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IGRvIGFueXRoaW5nIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUKCSAgQXZvaWQgZG9pbmcgc3R1ZmYgaW4gdGhlIHZtZXRob2QgdHJhbXBvbGluZSwganVzdCBsZXQgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1ldGhvZCB0YWtlIGNhcmUgb2YgdGhpbmdzLgoKMjAxMS0xMS0xMCAxMjowODoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCBzb21lIGRvY3MKCjIwMTEtMTEtMTAgMTE6NDI6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHVzZSBncG9pbnRlciBmb3IgcmV0dXJuIHR5cGVzCgoyMDExLTExLTEwIDExOjEyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGRvYwoKMjAxMS0xMS0xMCAxMDo1ODo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogcmVtb3ZlIEdzdFBhZEZpeGF0ZUNhcHNGdW5jdGlvbgoJICBUaGUgZml4YXRlIGNhcHMgZnVuY3Rpb24gd2FzIG5vdCB1c2VkIGV4dGVybmFsbHkgYW5kIHdlIGhhdmUgdm1ldGhvZHMgaW4gdGhlCgkgIGJhc2UgY2xhc3NlcyB3aGVyZSBpdCBpcyBuZWVkZWQuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgIHNpbXBsaWZ5IHNvbWUgZml4YXRlIGZ1bmN0aW9ucyBpbiB0aGUgYmFzZSBjbGFzc2VzLiBBbHNvIHBhc3MgdGhlIHVudHJ1bmNhdGVkCgkgIGNhcHMgdG8gdGhlIHZtZXRob2QuCgoyMDExLTExLTA5IDE3OjQzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHN0b3JlIGV2ZW50cyBvbiBmbHVzaGluZyBwYWRzCgkgIGNoZWNrIHRoZSBmbHVzaGluZyBzdGF0ZSBvZiB0aGUgcGFkIGJlZm9yZSBzdG9yaW5nIHRoZSBldmVudC4KCjIwMTEtMTEtMDkgMTc6MzY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBhZDogbWFrZSBhbiBBQ0NFUFRfQ0FQUyBxdWVyeQoJICBSZXBsYWNlIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHdpdGggYSBxdWVyeS4KCjIwMTEtMTEtMDkgMTc6MjU6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBhZDogcmVmdXNlIGV2ZW50cyBpbiBmbHVzaGluZwoJICB3aGVuIHdlIGFyZSBmbHVzaGluZywgZG9uJ3Qgc3RvcmUgdGhlIGV2ZW50IG9uIHRoZSBwYWQgYnV0IHNpbXBseSByZXR1cm4gRkFMU0UuCgkgIERvbid0IGRlYWN0aXZhdGUgdGhlIHNyY3BhZCwgd2UgbmVlZCBpdCB0byBiZSBhY3RpdmUgaW4gb3JkZXIgdG8gcHVzaCB0aGUKCSAgY2Fwcy4gRG93bnN0cmVhbSBjYW4gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIG1vZGUgb2YgYW4gYWN0aXZlIHBhZC4KCjIwMTEtMTEtMDkgMTc6MTk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBlbGVtZW50OiByZW1vdmUgbW9yZSBxdWVyeV90eXBlcwoKMjAxMS0xMS0wOSAxMTowNTo1OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIEFuZHJvaWQubWs6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIEFuZHJvaWQ6IGJ1aWxkIGF1ZGlvIGNvbnRyb2xsZXIgZXhhbXBsZQoJICBBZGQgYnVpbGRzeXN0ZW0gaG9va3MgZm9yIGJ1aWxkaW5nIHRoZSBhdWRpb2NvbnRyb2xsZXIgZXhhbXBsZQoJICB3aXRoIHRoZSBOREsuCgkgIFNpZ25lZC1vZmYtYnk6IFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoyMDExLTExLTA5IDEyOjIxOjE3ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBhZGQgdGVzdHMgZm9yIHN0aWNreSBjYXBzIGhhbmRsaW5nCgkgIHRlc3Rfc3RpY2t5X2NhcHNfZmx1c2hpbmcgaXMgY3VycmVudGx5IGZhaWxpbmcuCgoyMDExLTExLTA5IDEyOjEyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICB1cGRhdGUgY29tbW9uCgoyMDExLTExLTA5IDEyOjAzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0wOSAxMjowMjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0xMS0wOSAxMTo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICByZW1vdmUgcXVlcnkgdHlwZXMKCSAgSXQgd2FzIG5vdCByZWFsbHkgdXNlZnVsCgoyMDExLTExLTA4IDE4OjA5OjI4ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogY29uc2lkZXIgbGlzdHMgYW5kIHJhbmdlcyBlcXVhbCBpZiB0aGV5IGhvbGQgdGhlIHNhbWUgc2V0CgkgIFRoaXMgZml4ZXMgY2FwcyBvcGVyYXRpb25zIHdoZW4gZGlmZmVyZW50IGVsZW1lbnRzIGFkdmVydGlzZSBzb21lCgkgIG9mIHRoZWlyIGNhcHMnIHByb3BlcnRpZXMgZGlmZmVyZW50bHkgKGVnLCBmb3IgYXVkaW8gY2hhbm5lbHMsIGVpdGhlcgoJICBhIHJhbmdlIGZyb20gMSB0byAyLCBvciBhIGxpc3Qgb2YgMSBhbmQgMikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjM2NDMKCjIwMTEtMTEtMDkgMTE6MjQ6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBhZGQgYSBzdWJzZXQgdGVzdCBmb3Igc3RydWN0dXJlCgoyMDExLTExLTA5IDExOjIyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGFkOiBhZGQgbW9yZSBxdWVyaWVzCgkgIEFkZCBtb3JlIHF1ZXJ5IGZ1bmN0aW9ucyB0byBwcmVwYXJlIGZvciBkb2luZyBtb3JlIHdpdGggcXVlcmllcwoKMjAxMS0xMC0yOCAxMzozOTo1OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBkb2NzOiBhbHNvIGZpeCB3cm9uZyBjYWxsIG9yZGVyIGZvciBjb250cm9sbGVyIGluIG1hbnVhbAoKMjAxMS0xMS0wOCAxNzozMjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5zdGFsbCBxdWVyeSBwcm9iZXMKCSAgRmlyZSBxdWVyeSBwcm9iZXMgYWNjb3JkaW5nIHRvIHVwZGF0ZWQgZGVzaWduIGRvYy4KCjIwMTEtMTEtMDggMTU6NTE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGxvY2svdW5sb2NrX2Z1bGwgdmVyc2lvbnMgb2Ygc3RyZWFtLWxvY2sKCjIwMTEtMTEtMDggMTU6NDg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGRlZmluZXMgZm9yIHF1ZXJ5IHByb2JlcwoKMjAxMS0xMS0wOCAxMzozMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdW5pdCB0ZXN0CgoyMDExLTExLTA4IDEzOjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHVwZGF0ZSBkb2NzCgoyMDExLTExLTA4IDEzOjAyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBwb3J0IHRvIDAuMTEKCjIwMTEtMTEtMDggMTI6NTQ6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTExLTA4IDEyOjQ3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcHVsbCBtb2RlIHByb2JlcwoJICBBbGxvdyBwcm9iZXMgdG8gaW5zcGVjdCB0aGUgb2Zmc2V0IGFuZCBzaXplIGZyb20gYSBwcm9iZSBpbiBwdWxsIG1vZGUgYW5kIGFsbG93CgkgIHRoZSBwcm9iZSB0byBtb2RpZnkgdGhlIGJ1ZmZlci4KCSAgVXBkYXRlIGRlc2lnbiBkb2MgYSBsaXR0bGUuCgoyMDExLTExLTA4IDEyOjIyOjIxICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiBhZGQgdGVzdCB0byB2ZXJpZnkgZmx1c2hpbmcgYmVoYXZpb3VyCgkgIFNlZW1zIGxpa2UgYSB0cml2aWFsIGNhc2UsIGJ1dCB0aGlzIHdhcyBhY3R1YWxseSBicm9rZW4gaW4gMC4xMSByZWNlbnRseS4KCjIwMTEtMTEtMDggMTE6MDQ6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogQWRkIEdzdFBhZFByb2JlSW5mbwoJICBNYWtlIGEgbmV3IEdzdFBhZFByb2JlSW5mbyBzdHJ1Y3R1cmUgYW5kIHBhc3MgdGhpcyBpbiB0aGUgcHJvYmUgY2FsbGJhY2suIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGFkZCBtb3JlIHRoaW5ncyBsYXRlciBhbmQgYWxzbyBhbGxvdyB0aGUgY2FsbGJhY2sgdG8gcmVwbGFjZSBvcgoJICBtb2RpZnkgdGhlIHBhc3NlZCBvYmplY3QuCgoyMDExLTExLTA4IDA4OjI2OjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBsb2cgY3JlYXRpb24gb2YgcW9zIGV2ZW50cyBhdCBMT0cgbGV2ZWwgaW5zdGVhZCBhdCBJTkZPCgoyMDExLTExLTA3IDE2OjU3OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgcGFyYW1ldGVyIGRvY3MKCjIwMTEtMTEtMDggMDA6MzI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IFNpbmNlOiBtYXJrZXJzIGZvciBBUEkgYWRkZWQgYWZ0ZXIgMC4xMC4zNQoKMjAxMS0xMS0wOCAwMDoxNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIG5ldyBBUEkKCSAgQVBJOiBnc3RfY2Fwc19pc19zdHJpY3RseV9lcXVhbCgpCgoyMDExLTExLTA3IDE3OjE3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R2YWx1ZS5jCgoyMDExLTExLTA3IDE3OjA0OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHBhZDogcmV3b3JrIHBhZCBwcm9iZXMKCSAgTWFrZSBhIHNlcGFyYXRlIGNvb2tpZSB0byBkZXRlY3QgY2hhbmNnZXMgaW4gdGhlIGxpc3Qgb2YgcHJvYmVzIGFuZCBrZWVwaW5nCgkgIHRyYWNrIG9mIHdoYXQgaG9va3MgaGF2ZSBiZWVuIGludm9rZWQgeWV0LgoJICBSZW1vdmUgdGhlIHJlcXVpcmVtZW50IHRvIGhhdmUgcHJvYmVzIG9uIHNyY3BhZHMgaW4gcHVzaCBtb2RlIGFuZCBzaW5rcGFkcyBpbgoJICBwdWxsIG1vZGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBjYWxsYmFja3MgZ290IGV4ZWN1dGVkLiBJZiBubyBjYWxsYmFjayBpcyBjYWxsZWQgYW5kIHdlIGFyZSBhCgkgIGJsb2NraW5nIHBhZCwgbGV0IHRoZSBpdGVtIHBhc3MuIFRoaXMgYWxsb3dzIHlvdSB0byBibG9jayBwYWRzIG9uIHNlbGVjdGVkCgkgIGl0ZW1zIG9ubHkuCgkgIEV4cGxpY2l0bHkgaGF2ZSBhbiBVUFNUUkVBTSBhbmQgRE9XTlNUUkVBTSBQYWRQcm9iZVR5cGUuIFRoaXMgYWxsb3dzIHlvdSB0byBvbmx5CgkgIGJsb2NrIHRoZSBwYWQgb24gdXBzdHJlYW0gb3IgZG93bnN0cmVhbSBpdGVtcy4KCSAgQWRkIGNvbnZlbmllbmNlIG1hY3JvcyB0byBvbmx5IGJsb2NrIG9uIGRvd25zdHJlYW0vdXBzdHJlYW0gaXRlbXMuCgoyMDExLTEwLTI3IDEyOjU5OjU3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2YgZ2ludDY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTI6MjQ6MTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHF1aWNrZXIgdmVyc2lvbiBvZiBpbnRlcnNlY3Rpb24gd2hlbiB3ZSBkbyBub3QgbmVlZCB0aGUgcmVzdWx0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTI6MDI6NDMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IHNpbXBsaWZ5IHJldHVybiBzdGF0ZW1lbnQgaW4gZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTE6NDE6MzAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IGVhcmx5IG91dCB3aGVuIHdlIGtub3cgYSB2YWx1ZSBjYW5ub3QgYmUgYSBzdWJzZXQKCSAgSWYgdHdvIHZhbHVlcyBjYW4gYmUgb3JkZXJlZCwgYnV0IGFyZSB1bmVxdWFsLCB0aGV5IGFyZQoJICBuZWNlc3NhcmlseSBkaXN0aW5jdCwgdGh1cyBvbmUgY2Fubm90IGJlIGEgc3Vic2V0IG9mIHRoZSBvdGhlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAxMDozNTo1MyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcXVpY2tlciB0ZXN0IGZvciBzdWJzdHJhY3Rpb24gZW1wdGluZXNzCgkgIFdoZW4gd2UgZG8gbm90IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCByZXN1bHRpbmcgc2V0LAoJICBidXQgb25seSB3aGV0aGVyIGl0IGlzIGVtcHR5IG9mIG5vdCwgd2UgY2FuIHNraXAgYSBmYWlyIGJpdAoJICBvZiBHVmFsdWUganVnZ2xpbmcuCgkgIEFkZCBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBzbywgc2luY2Ugd2UgY2Fubm90IGp1c3QgcGFzcyBOVUxMCgkgIHRvIHRoZSBleGlzdGluZyBBUEkgYXMgaXQgbWF5IGJlIHBhcnQgb2YgdGhlIEFQSSBjb250cmFjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMC0yNyAwOTo0NTo0MSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogcmVqaWcgdGVzdCBvcmRlcmluZyBmb3Igc3BlZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjc3NwoKMjAxMS0xMS0wNyAxMjoyODoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gbW9yZSBhcGkgY2hhbmdlcyBpbiB0aGUgcG9ydGluZyBndWlkZQoKMjAxMS0xMS0wNyAxMDo0MDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMS0wNyAxMDowMToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMS0wNiAwMDowNzoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBSZXZlcnQgImNvbnRyb2xsZXI6IGZpeCBnX3JldHVybiBzdGF0ZW1lbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTkzZDJiMjk3YmQ3YjVjZTlkYmNkZjJmMWFlMmI3NjI0ZDk0ZDZhZS4KCSAgZ3N0X2NvbnRyb2xsZXJfc2V0X2Rpc2FibGVkICgpIHJldHVybnMgYSB2b2lkLgoKMjAxMS0xMS0wNSAxMjoxMDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgcmVmcyB0byByZW1vdmVkIEFQSQoKMjAxMS0xMS0wNCAyMTozNzo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29udHJvbGxlcjogdGhlIG9iamVjdCBuZWVkcyBhIHJlZiB0byB0aGUgY29udHJvbGxlciBmb3IgdGhlIGNvbnZlbmllbmNlIGFwaQoJICBBZGQgYSBoYWNrIHRvIGVuc3VyZSB0aGUgb2JqZWN0IHdpbGwgaGF2ZSBhIHJlZiB0byB0aGUgY29udHJvbGxlciBvbmNlIHdlCgkgIGNyZWF0ZSBpdC4gRml4ZXMgdGhlIGF1ZGlvIGV4YW1wbGUgKHRoYXQgdXNlcyB0aGUgY29udHJvbGxlciBhcGkgZGlyZWN0bHkpLgoKMjAxMS0xMS0wNCAyMTozNzoyMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBnX3JldHVybiBzdGF0ZW1lbnQKCjIwMTEtMTEtMDQgMjE6MzU6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBsb2dnaW5nIHR3ZWFrcwoJICBEb24ndCBsb2cgaW4gX25ldyBiZWZvcmUgd2UgaGF2ZSB0aGUgbG9nIGNhdGVnb3J5LiBVc2UgX09CSkVDVCB2YXJpYW50cy4KCjIwMTEtMTEtMDUgMDE6Mjc6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3Q6IGZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzCgkgIGdzdG9iamVjdC5jOiBJbiBmdW5jdGlvbiAnZ3N0X29iamVjdF9oYXNfYWN0aXZlX2F1dG9tYXRpb24nOgoJICBnc3RvYmplY3QuYzoxMDc2OjM6IGVycm9yOiAncmV0dXJuJyB3aXRoIG5vIHZhbHVlLCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCSAgZ3N0Y29udHJvbGxlci5jOiBJbiBmdW5jdGlvbiAnZ3N0X2NvbnRyb2xsZXJfaXNfYWN0aXZlJzoKCSAgZ3N0Y29udHJvbGxlci5jOjUwOTozOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgoyMDExLTExLTA0IDIwOjUwOjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IGFkZCBhcGkgdG8gY2hlY2sgZm9yIGFjdGl2ZSBjb250cm9sbGVycyAobmVlZGVkIGZvciBlLmcuIHZvbHVtZSkKCjIwMTEtMTEtMDQgMjA6MzI6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBvYnNvbGV0ZSBjb21tZW50cyBmcm9tIGFwaSB0cmFuc2l0aW9uCgoyMDExLTExLTA0IDE0OjAwOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSAgY29udHJvbGxlcjogZml4IHRlc3RzIGFmdGVyIG1vdmUgYW5kIEFQSSBjaGFuZ2VzCgoyMDExLTExLTA0IDExOjQyOjM0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRvIG5ldyBjb250cm9sbGVyIGFwaQoKMjAxMS0xMS0wNCAxMTozOToyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGNvbnRyb2xsZXI6IHVwZGF0ZSBkb2NzIGZvciBjb250cm9sbGVyIG1vdmUKCjIwMTEtMTEtMDQgMTE6MzQ6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgdG8gY29yZS9nc3RvYmplY3QKCSAgTW92ZSB0aGUgY29udHJvbGxlciB0byBnc3RvYmplY3QgYXMgYSBzaW1wbGUgZGVsZWdhdGUuIFRoZSBjb250cm9sbGVyIGFuZAoJICBjb250cm9sc291cmNlIGFyZSBub3QgY2xhc3NlcyBpbiBjb3JlLiBUaGUgY29udHJvbHNvdXJjZXMgc3RheSBzZXBhcmF0ZSBhcyBhIGxpYgoJICBmb3Igbm93LiBUaGlzIHdheSB3ZSBjYW4gYXZvaWQgdGhlIHFkYXRhIGxvb2t1cHMuCgkgIEFsc28gcmVtb3ZlIGNvbnRyb2xsZXJfaW5pdCgpLiBUaGVyZSBpcyBubyBtb3JlIG5lZWQgdG8gbGluayB0byBjb250cm9sbGVyIGZvcgoJICBlbGVtZW50cy4KCSAgQWxzbyBzYW5pdGl6ZSB0aGUgQVBJLiBXZSBub3cgaGF2ZSBmdW5jdGlvbnMgdG8gYWRkIHByb3BlcnRpZXMgbGlrZSB3ZSBoYWQKCSAgbWV0aG9kcyB0byByZW1vdmUgdGhhdC4gVGhhdCBhdm9pZHMgdGhlbiByZWYgY291bnQgaGFja3Mgd2UgaGFkIGluIF9uZXcuCgoyMDExLTExLTAzIDE4OjIzOjEzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbgoKMjAxMS0xMS0wMyAxODoyMjoxNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IG1pc3NpbmcgcmVuYW1lIGlmYWNlLT5pbnRlcmZhY2UgaW4gdGhlIGRvY3MKCjIwMTEtMTEtMDQgMTk6MTc6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IHRoZSBpdGVyYXRvciBjb3B5CgoyMDExLTExLTA0IDE5OjExOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RiaW4uYwoKMjAxMS0xMS0wMyAxNTozNjo1OSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogT25seSB1c2UgdGhlIGNhY2hlZCB0cmFuc2Zvcm0gb24gc3RyaWN0bHkgZXF1YWwgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzMzMzCgoyMDExLTExLTAzIDE1OjM1OjMyICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19pc19zdHJpY3RseV9lcXVhbAoKMjAxMS0xMS0wNCAxODo0NzoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHRlc3RzOiBmaXggdGVzdHMKCSAgU2luY2UgYmxvY2tzIGFyZSBub3Qgb24gYm90aCBkaXJlY3Rpb25zLCB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZSBibG9jayBjYWxsYmFjawoJICBpZiB3ZSBhcmUgbm90IGJsb2NraW5nIG9uIGFuIHVwc3RyZWFtIGV2ZW50IGFuZCBsZXQgaXQgcGFzcy4KCjIwMTEtMTEtMDQgMTg6MTk6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIHByb2JlcyB3b3JrIG9uIGFsbCBwYWRzCgkgIGZpeGVzICM2NDQ5MDcKCjIwMTEtMTAtMTUgMjI6NTI6MjUgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGludHJvc3BlY3Rpb246IGFkZCBWYWx1ZSBhbm5vdGF0aW9ucyBmb3IgR1NUX1NFQ09ORCwgR1NUX01TRUNPTkQsIEdTVF9VU0VDT05ELCBHU1RfTlNFQ09ORCBjb25zdGFudHMKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdvbid0IHBhcnNlIHRoZW0gcHJvcGVybHkgb3RoZXJ3aXNlLgoJICBTdGlsbCBuZWVkIHRvIGZvcmNlIHRoZSByaWdodCB0eXBlIHRob3VnaCAoZWl0aGVyIEdzdENsb2NrVGltZSBvcgoJICBndWludDY0KSwgYnV0IFR5cGU6IHh5eiBoYXMgbm8gZWZmZWN0IGZvciBtZSBoZXJlLCBzbyBzb21lb25lIHdpdGgKCSAgYSBuZXdlciBnLWkgbmVlZHMgdG8gdGVzdCB0aGlzLgoJICBTb21lIG90aGVyIGRlZmluZXMgYXJlIGFsc28gbWlzc2luZywgZS5nLiBHU1RfQ0xPQ0tfVElNRV9OT05FLgoKMjAxMS0xMS0wNCAwMDowMzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogc3VwcHJlc3MgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzIGlmIGdzdCBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjk1MgoKMjAxMS0xMS0wNCAwMDowMjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IHR5cG8gYXJvdW5kIEdMSUJfRVhUUkFfQ0ZMQUdTIGluIEdTVF9BTExfQ1hYRkxBR1MKCjIwMTEtMTEtMDMgMjM6MDg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgoyMDExLTExLTAzIDIyOjU4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgkgIEJlY2F1c2Ugd2UgY2FuLgoKMjAxMS0xMS0wMyAyMjo1MTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb2xsZWN0cGFkczI6IHVzZSBmbGFncyBlbnVtIGluc3RlYWQgb2YgZ3VpbnQgaW4gc3RydWN0dXJlCgoyMDExLTExLTAzIDA4OjQ3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogdXNlIHN0YXRpY2FsbHkgYWxsb2NhdGVkIEdRdWV1ZQoKMjAxMS0xMS0wMyAxNzo0OTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgZml4IHJlcXVlc3QgcGFkCgkgIE1ha2UgYWxsIHJlcXVlc3QgcGFkcyB0YWtlIF8ldSBpbiB0aGUgdGVtcGxhdGUuCgkgIEZpeCB1cCB1bml0IHRlc3RzLgoKMjAxMS0xMS0wMyAxNjo0OTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBkZWY6IHVwZGF0ZSBkZWZzCgoyMDExLTExLTAzIDE2OjQ2OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgbmV0OiBhZGQgbmV0IGFkZHJlc3MgbWV0YWRhdGEKCjIwMTEtMTEtMDMgMTQ6MjY6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgbmV0dGltZTogY2xlYW4gdXAgaGVhZGVyCgoyMDExLTExLTAzIDE0OjE0OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZG9uJ3QgdXNlIGxvY2svdW5sb2NrX2Z1bGwKCjIwMTEtMTEtMDMgMTE6MzA6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCjIwMTEtMTEtMDIgMTI6Mzc6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMS0xMC0yNSAxNzoyNjo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG9uJ3QgY2FjaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldAoJICBUaGUgaW50ZXJuYWwgcHJveHkgcGFkIHRhcmdldCBpcyBzaW1wbHkgYSBjYWNoZSBvZiB0aGUgaW50ZXJuYWwgcHJveHkgcGFkCgkgIHBlZXIuIFRoaXMgcGF0Y2ggdXNlcyB0aGUgd2VsbCBpbXBsZW1lbnQgR3N0UGFkIHBlZXIgaGFuZGxpbmcgdG8gb2J0YWluIHRoZQoJICB0YXJnZXQuIFRoaXMgZml4ZXMgaXNzdWVzIHdpdGggdGFyZ2V0IG5vdCBiZWluZyBzZXQgaW4gYm90aCBkaXJlY3Rpb24gd2hlbgoJICB0d28gZ2hvc3RwYWRzIGFyZSBsaW5rZWQgdG9nZXRoZXIgKGVtcHR5IGJpbikuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg1MTcKCjIwMTEtMTEtMDIgMTI6MDY6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBfZm91bmRfdGFnc18gQVBJCgkgIHJlbW92ZSBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkgYW5kIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCgpLCB0aGV5IGFyZQoJICBub3RoaW5nIG1vcmUgdGhhbiBhIHdyYXBwZXIgYXJvdW5kIGdzdF9wYWRfcHVzaF9ldmVudCgpCgoyMDExLTExLTAyIDEwOjI5OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbW1vbgoJICBjb25maWd1cmUuYWMKCjIwMTEtMTAtMzAgMjE6MzM6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTI5IDA5OjQzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogbWFrZSBHc3RTZWdtZW50IGFyZ3VtZW50IGNvbnN0CgoyMDExLTEwLTI5IDA5OjQxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIG1ldGF0aW1pbmcgZnJvbSBkb2NzCgoyMDExLTEwLTI5IDA5OjI2OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFzazogYXBpIGNsZWFudXAKCSAgZ3N0X3Rhc2tfY3JlYXRlKCkgLT4gZ3N0X3Rhc2tfbmV3KCkKCjIwMTEtMTAtMjkgMDk6MDI6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogY2xlYW51cCBBUEkKCSAgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfaWRfZW1wdHkoKQoJICBnc3Rfc3RydWN0dXJlX2lkX25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2lkKCkKCjIwMTEtMTAtMjkgMDg6Mzg6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiByZW1vdmUgdGltaW5nIG1ldGFkYXRhCgkgIFRoaXMgaXMgbm93IG9uIGJ1ZmZlcnMgYnkgZGVmYXVsdAoKMjAxMS0xMC0yOSAwODoyNDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGNsZWFuIHVwIEFQSQoJICBnc3RfYnVmZmVyX2xpc3RfbGVuKCkgLT4gZ3N0X2J1ZmZlcl9saXN0X2xlbmd0aCgpCgkgIGdzdF9idWZmZXJfbGlzdF9zaXplZF9uZXcoKSAtPiBnc3RfYnVmZmVyX2xpc3RfbmV3X3NpemVkKCkKCjIwMTEtMTEtMDEgMTQ6MTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHNpbXBsaWZ5IGdzdF9hZGFwdGVyX3Rha2VfbGlzdCgpCgkgIFVzZSBhIHN0YWNrLWFsbG9jYXRlZCBHUXVldWUgdG8gYXNzZW1ibGUgb3VyIEdMaXN0LgoKMjAxMS0xMS0wMSAxMDo1NjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIEdzdEFjdGl2YXRlTW9kZSByZW5hbWUgaW4gcG9ydGluZyBkb2MKCjIwMTEtMTEtMDEgMDA6MjU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0QWN0aXZhdGVNb2RlIHRvIEdzdFBhZEFjdGl2YXRlTW9kZQoJICBUaGVzZSBtaWdodCBiZSB1c2VmdWw6CgkgIHNlZCAtaSAtZSAncy9Hc3RBY3RpdmF0ZU1vZGUvR3N0UGFkQWN0aXZhdGVNb2RlL2cnIGBnaXQgZ3JlcCBHc3RBY3RpdmF0ZU1vZGUgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dTVF9BQ1RJVkFURV8vR1NUX1BBRF9BQ1RJVkFURV8vZycgICAgYGdpdCBncmVwIEdTVF9BQ1RJVkFURV8gICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoKMjAxMS0xMS0wMSAwMDoxMzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW5hbWUgR3N0UHJvYmVUeXBlIGFuZCBHc3RQcm9iZVJldHVybiB0byBHc3RQYWRQcm9iZXtUeXBlLFJldHVybn0KCSAgQmV0dGVyIG5vdyB0aGFuIGxhdGVyIGluIHRoZSBjeWNsZS4gVGhlc2UgbWlnaHQgY29tZSBpbiBoYW5keToKCSAgc2VkIC1pIC1lICdzL0dzdFByb2JlUmV0dXJuL0dzdFBhZFByb2JlUmV0dXJuL2cnICAgYGdpdCBncmVwIEdzdFByb2JlUmV0dXJuICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR1NUX1BST0JFXy9HU1RfUEFEX1BST0JFXy9nJyAgICAgICAgICBgZ2l0IGdyZXAgR1NUX1BST0JFXyAgICAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9Hc3RQcm9iZVR5cGUvR3N0UGFkUHJvYmVUeXBlL2cnICAgICAgIGBnaXQgZ3JlcCBHc3RQcm9iZVR5cGUgICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCjIwMTEtMTAtMzEgMjM6MzI6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBnc3RfdGFnX2xpc3RfZ2V0Xypsb25nKigpCgkgIE5vIG9uZSB1c2VzIHRoaXMgb3Igc2hvdWxkIGV2ZXIgbmVlZCB0byB1c2UgaXQsIHNpbmNlCgkgIHRoZSBzaXplIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBhbnl3YXkuIElmIG5vcm1hbAoJICBpbnRlZ2VycyBkb24ndCBkbywgb25lIHNob3VsZCB1c2UgNjQtYml0IGludGVnZXJzLgoKMjAxMS0xMC0zMSAxOTowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgVXBkYXRlIC5kZWYgZmlsZSBmb3IgcmVtb3ZlZC9jaGFuZ2VkIEFQSQoKMjAxMS0xMC0zMSAxOToyMzo0MSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggY3Jhc2gvd2FybmluZyBpbiBmaW5kX3RyYW5zZm9ybSB3aGVuIHBhZCBpcyB1bmxpbmtlZAoJICBMb29rcyBsaWtlIHRoZSByZXZlcnQgY29uZmxpY3QgaW4gY29tbWl0IGE0NDI3MSB3YXMgcmVzb2x2ZWQgaW5jb3JyZWN0bHkuCgoyMDExLTEwLTMxIDE3OjQ1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG1ha2UgR0xJQl9FWFRSQV9DRkxBR1Mgb3ZlcndyaXRhYmxlCgkgIE1ha2UgJ21ha2UgR0xJQl9FWFRSQV9DRkxBR1M9Li4uJyB3b3JrLgoKMjAxMS0xMC0zMSAxNDoxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZmlsdGVyOiByZW1vdmUgZ3N0X2ZpbHRlcl9ydW4oKSBhbmQgZGVwcmVjYXRlZCBmaWx0ZXIgZnVuYwoJICBJZiBzb21lb25lIHdhbnRzIHRvIHJlc3VycmVjdCB0aGlzLCBwbGVhc2UgdXNlIGEgbGVzcwoJICBnZW5lcmljIG5hbWUgc3BhY2UgZm9yIGl0LgoKMjAxMS0xMC0zMSAxNDowMzoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgoyMDExLTEwLTMwIDEwOjI2OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGFnbGlzdDogcmVuYW1lIF9uZXcoKSB0byBfbmV3X2VtcHR5KCkgYW5kIG5ld19mdWxsKigpIHRvIG5ldyooKQoKMjAxMS0xMC0zMCAyMTo1NDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RmaWx0ZXIuaDoKCSAgZmlsdGVyOiBkZXByZWNhdGUgZ3N0X2ZpbHRlcl9ydW4oKQoJICBJdCdzIG5vdCByZWFsbHkgdXNlZCBvdXRzaWRlIG9mIGNvcmUgYXQgYWxsLCBhbmQgaGFzCgkgIHNlcmlvdXMgbmFtZXNwYWNlIGlzc3Vlcy4gSWYgYW55b25lIGZlZWxzIHRoZSBuZWVkIHRvCgkgIHJldml2ZSB0aGlzIG9uZSwgcGxlYXNlIHVzZSBhIGxlc3MgZ2VuZXJpYyBuYW1lIHNwYWNlLgoJICBBUEk6IGRlcHJlY2F0ZSBnc3RfZmlsdGVyX3J1bigpCgkgIEFQSTogZGVwcmVjYXRlIEdzdEZpbHRlckZ1bmMKCjIwMTEtMTAtMzAgMjE6Mzk6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCB1c2Ugc29vbi10by1iZS1kZXByZWNhdGVkIGdzdF9maWx0ZXJfcnVuKCkKCSAgTGluZXMtb2YtY29kZSBzYXZpbmdzIGFyZSBuZWdsaWdpYmxlIGFueXdheS4KCjIwMTEtMTAtMzAgMjE6MjE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHBsdWdpbmZlYXR1cmU6IGRlcHJlY2F0ZSBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcigpCgkgIEl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgYW55d2F5IGFuZCB0aGUgaGVscGVyIHN0cnVjdAoJICBoYXMgbmFtZXNwYWNlIGlzc3Vlcy4KCSAgQVBJOiBkZXByZWNhdGVkIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyKCkKCSAgQVBJOiBkZXByZWNhdGVkIEdzdFR5cGVOYW1lRGF0YQoKMjAxMS0xMC0zMCAxMDowNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIG9wYXF1ZQoJICBIaWRlIHRoZSBmYWN0IHRoYXQgaXQncyBqdXN0IGEgR3N0U3RydWN0dXJlIGZyb20gdGhlIEFQSS4gV2UKCSAgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaW4gZnV0dXJlIChlLmcuIHRvIGFkZCByZWZjb3VudGluZykuCgkgIEFsc28sIGl0IGNhdXNlZCBwcm9ibGVtcyBmb3IgYmluZGluZ3MgKHRob3VnaCB0aGF0J3MgbW9zdGx5CgkgIHRoZSB3YXkgd2UgdHlwZWRlZmVkIGl0IHRvIEdzdFN0cnVjdHVyZSkuCgoyMDExLTEwLTMwIDEwOjAwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMCAwOTo1ODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgdG9fc3RyaW5nIGFuZCBuZXdfZnJvbV9zdHJpbmcgZnVuY3Rpb25zCgkgIFdlIHdhbnQgdG8gbWFrZSBHc3RUYWdMaXN0IG9wYXF1ZSBhbmQgbm90IGhhdmUgcGVvcGxlIHVzZQoJICBHc3RTdHJ1Y3R1cmUgQVBJIG9uIGl0LgoJICBBUEk6IGdzdF90YWdfbGlzdF90b19zdHJpbmcoKQoJICBBUEk6IGdzdF90YWdfbGlzdF9uZXdfZnJvbV9zdHJpbmcoKQoKMjAxMS0xMC0zMCAwOTozMTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMzAgMDE6NDY6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYXZvaWQgcG9pbnRsZXNzIHRhZyBuYW1lIC0+IHF1YXJrIGxvb2t1cHMKCSAgV2UgbmV2ZXIgZ2V0IGEgdGFnIG5hbWUgcXVhcmsgZnJvbSBhIGNhbGxlciwgaXQncyBhbHdheXMgYQoJICBzdHJpbmcsIGZyb20gd2hpY2ggd2UnbGwgdHJ5IHRvIGxvb2sgdXAgb3VyIHRhZyBpbmZvIGluIHRoZQoJICBoYXNoIHRhYmxlLCBzbyBjaGFuZ2UgdGhlIGhhc2ggdGFibGUga2V5IGZyb20gcXVhcmsgdG8gc3RyaW5nLgoJICBBdm9pZHMgYSBidW5jaCBvZiBwb2ludGxlc3Mgc3RyaW5nID0+IHF1YXJrIGxvb2t1cCBpbiB0aGUKCSAgZ2xvYmFsIHF1YXJrIHRhYmxlLiBXZSBuZWVkIHRvIGRvIGFuIGV4dHJhIHN0cmluZyA9PiBxdWFyawoJICBjb252ZXJzaW9uIG5vdyB3aGVuIHdlIGNvcHkgYSB0YWdsaXN0LCBidXQgaW4gdGhhdCBjYXNlIHdlJ3JlCgkgIGluIGEgc2xvdyBwYXRoIGFueXdheS4KCjIwMTEtMTAtMzAgMDA6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGdzdF90YWdfbGlzdF9pc19lcXVhbCgpCgkgIEFQSTogZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkKCjIwMTEtMTAtMjkgMjM6NTI6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGlkZW50aWNhbCBzdHJ1Y3R1cmVzIGFyZSBkZWZpbml0ZWx5IGVxdWFsCgoyMDExLTEwLTI5IDIwOjA2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzdHJpbmcgZm9yIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMgaXQgd2FzIG1hcHBlZCB0byBhIG11c2ljYnJhaW56IHByZWZpeCwKCSAgYnV0IGl0J3Mgbm90IHJlYWxseSBtdXNpY2JyYWluei1zcGVjaWZpYyBhdCBhbGwuCgoyMDExLTEwLTI5IDE5OjU5OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IG1vdmUgcHJpdmF0ZSBmdW5jdGlvbnMgZm9yIHJlZ2lzdHJ5IHRvIHByaXZhdGUgaGVhZGVyCgoyMDExLTEwLTI4IDIxOjQwOjQ3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBpbnZhbGlkIGFjY2VzcyB0byB1bnJlZmZlZCBhbGxvY2F0aW9uIHF1ZXJ5CgoyMDExLTEwLTI4IDE2OjQ1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGZpeCBkb2NzIHNvbWUgbW9yZQoKMjAxMS0xMC0yOCAxNjoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0xMC0yOCAxNjowODozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggc2VnbWVudCBjaGVjawoKMjAxMS0xMC0yOCAxNTo1Mjo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IHJlbW92ZSBHU1RfU0VFS19UWVBFX0NVUgoKMjAxMS0xMC0yOCAxNTo1Mjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMjggMTU6MTY6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgbWFrZSBlbGVtZW50cyBjb21waWxlIGFnYWluCgoyMDExLTEwLTI4IDEzOjAyOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMzowMjoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJICBiaXRyZWFkZXI6IEFkZCBwYWRkaW5nCgoyMDExLTEwLTI4IDEzOjAyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMjozMTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0yOCAxMjoyODo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHVwZGF0ZQoKMjAxMS0xMC0yOCAxMjoyNzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgYXBpCgoyMDExLTEwLTI4IDEyOjE3OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNoZWNrOiBhbHNvIGRlYnVnIHRoZSBEVFMKCjIwMTEtMTAtMjggMTI6MTY6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHVzZSBwdHMvZHRzIG9uIGJ1ZmZlcnMKCjIwMTEtMTAtMjggMTI6MjQ6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogYWRkIHRpbWVzdGFtcCBjb21wYXQgZGVmaW5lcwoKMjAxMS0xMC0yOCAxMjoxNTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBidWZmZXI6IGFkZCBwdHMvZHRzIHRvIGJ1ZmZlcnMKCjIwMTEtMTAtMjggMTE6NTM6MzIgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsc28gZnVzaCB0aGUgY2FjaGUgd2hlbiBjaGFuZ2luZyB0aGUgdXBzdHJlYW0gY2FwcyBzdWdnZXN0aW9uCgoyMDExLTEwLTI4IDExOjUwOjIzICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgZGVidWcgb3V0cHV0IHdoZW4gcmV0dXJuaW5nIGEgY2FjaGVkIHRyYW5zZm9ybQoKMjAxMS0xMC0yOCAxMTozMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMjggMTE6MzA6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJICBjb29sZWN0cGFkczI6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0yOCAxMToxMzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMjggMTA6NTQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBGaXggcmVmY291bnQgaGFuZGxpbmcgaWYgYSBidWZmZXIgd2FzIGRyb3BwZWQgZHVlIHRvIGNsaXBwaW5nCgoyMDExLTEwLTI4IDEwOjM3OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHMyOiBNZXJnZSB0aGUgY2xpcCBhbmQgcHJlcGFyZV9idWZmZXIgZnVuY3Rpb24gaW50byBvbmUKCjIwMTEtMTAtMjggMTA6MTc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBNZXJnZSBjbGlwcGluZyBBUEkgZnJvbSBvbGQgY29sbGVjdHBhZHMKCjIwMTEtMTAtMjggMDk6MTk6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBkZWZhdWx0IHF1ZXJ5IGZ1bmN0aW9uIG5hbWUgc2hvdyB1cCBpbiBnc3QtaW5zcGVjdAoKMjAxMS0wOS0yNyAxNTo0ODo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGF2b2lkIGhhbmdpbmcgaW4gY2FzZSBvZiBzcGFyc2UgbmV3c2VnbWVudCBldmVudHMKCSAgLi4uIGluIHRoZSBleHRlbnQgdGhhdCBhIG5vbi13YWl0aW5nIHBhZCAoc28gaW5kaWNhdGVkIGJ5IG5ld3NlZ21lbnQpCgkgIHR1cm5zIG91dCB0byBwcm92aWRlIHRoZSBiZXN0IGJ1ZmZlciwgd2hpY2ggaXMgdGhlbiBmb3JjZWQgdG8gd2FpdGluZwoJICBmb3IgYm9vay1rZWVwaW5nIHB1cnBvc2VzLCBidXQgdGhhdCBzaG91bGQgb25seSBiZSB0ZW1wb3JhcnkuCgkgIFNlZSBidWcgIzQxNTc1NC4KCjIwMTEtMTAtMjggMDk6Mzg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0xMC0yOCAwOTozNTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBjb2xsZWN0cGFkczI6IEFkZCB0byB0aGUgZG9jdW1lbnRhdGlvbgoKMjAxMS0xMC0yOCAwOToyNjoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IGNvbGxlY3RwYWRzMiBBUEkKCjIwMTEtMTAtMjggMDk6MTg6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgYmFzZTogQWRkIGNvbGxlY3RwYWRzMgoJICBUaGlzIGhhbmRsZXMgbXV4aW5nIG9mIHNwYXJzZS9zdWJ0aXRsZSBzdHJlYW1zIGFuZCBoYXMKCSAgbG90cyBvZiBjbGVhbnVwLiBTdGlsbCBtaXNzaW5nIGlzIHNwZWNpYWwgc3VwcG9ydCBmb3IKCSAgbGl2ZSBzdHJlYW1zIGJ1dCB0aGlzIGNhbiBiZSBhZGRlZCBsYXRlciB3aXRob3V0IGJyZWFraW5nCgkgIEFQSS9BQkkuCgkgIEJhc2VkIG9uIHRoZSB2ZXJzaW9uIGZyb20gdGhlIHZpZGVvbWl4ZXIgcGx1Z2luLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1NzU0CgoyMDExLTEwLTI3IDE3OjA5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICB0ZXN0czogZml4IGNvbXBpbGF0aW9uCgoyMDExLTEwLTI3IDE3OjA5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMC0yNyAxNzowOTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGFkZCBlbXB0eV9zaW1wbGUgdmFyaWFudHMKCjIwMTEtMTAtMjcgMTY6NTE6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0czogZml4IGNvbXBpbGF0aW9uCgoyMDExLTEwLTI3IDE0OjU2OjI0ICswMTAwICBKb2hhbiBCb3Vsw6kgPGJvaGFuLmdub21lQHJldHJvcGFnYW5kYS5pbmZvPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQgZm9yIGdzdF9jYXBzX25ld19zaW1wbGUoKSBhbmQgZ3N0X2NhcHNfbmV3X2Z1bGwoKQoJICBJZiB5b3UgZ2V0IHdhcm5pbmdzLCB1c2UgZ3N0X2NhcHNfbmV3X2VtcHR5KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMzNDYKCjIwMTEtMTAtMjcgMTU6Mjc6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTAtMjcgMTM6MjU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVEIGZvciBnc3Rfc3RydWN0dXJlX25ldygpCgkgIElmIHlvdSBnZXQgYSB3YXJuaW5nLCB1c2UgZ3N0X3N0cnVjdHVyZV9lbXB0eV9uZXcoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzM0NgoKMjAxMS0xMC0yNyAyMzowODoxNCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCByZWZjb3VudCBsZWFrCgkgIERvbid0IGxlYWsgcGVlcmNhcHMgYW5kIGEgcmVmIHRvIHRoZSBiYXNldHJhbnNmb3JtIHdoZW4gcmV0dXJuaW5nCgkgIHRoZSBjYWNoZWQgY2Fwcy4KCjIwMTEtMTAtMjcgMTA6Mzg6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogZml4IHdyb25nIG9yZGVyIG9mIGNhbGxzIGluIHRoZSBkb2NzLgoKMjAxMS0xMC0yNiAxMjoyMzowNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogY2xhcmlmeSBkb2NzIGZvciBzdGVwIGV2ZW50CgoyMDExLTEwLTE4IDIzOjE5OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYWRkIHN1cHBvcnQgZm9yIEdTVF9SRUdJU1RSWV9SRVVTRV9QTFVHSU5fU0NBTk5FUj1ubwoJICBUaGlzIHdpbGwgbWFrZSBzdXJlIHdlIHNwYXduIGEgbmV3IHBsdWdpbiBzY2FubmVyIGhlbHBlciBmb3IgZWFjaCBwbHVnaW4KCSAgdG8gYmUgaW50cm9zcGVjdGVkLCB3aGljaCBoZWxwcyB3aXRoIG1ha2luZyBzdXJlIHdlIGRvbid0IGxvYWQgdG9vIG1hbnkKCSAgc2hhcmVkIG9iamVjdHMgKGxpYnMsIHBsdWdpbnMpIGF0IHRoZSBzYW1lIHRpbWUgb24gc3lzdGVtcyB3aGVyZSB0aGVyZQoJICBpcyBhIGhhcmQgbGltaXQgbGlrZSBvbiBBbmRyb2lkLgoJICBBIGJldHRlciB2ZXJzaW9uIG1pZ2h0IHJlLXVzZSB0aGUgc2Nhbm5lciBmb3IgdXAgdG8gTiB0aW1lcywgdGhvdWdoCgkgIGl0J3Mgbm90IGNsZWFyIHdoZXRoZXIgdGhhdCB3b3VsZCBhY3R1YWxseSBpbXByb3ZlIHRoaW5ncyBkcmFtYXRpY2FsbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIwOTEKCjIwMTEtMTAtMjEgMTA6MjM6MDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE5vIG5lZWQgdG8gcmVxdWlyZSB3cml0YWJsZSBjYXBzIGZvciBfYXBwZW5kL19tZXJnZSBzZWNvbmQgY2FwcwoJICBUaGUgc2Vjb25kIGNhcHMgb3duZXJzaGlwIGlzIHRyYW5zZmVyZWQsIG5vIG5lZWQgdG8gcmVxdWlyZSBpdCB0bwoJICBiZSB3cml0YWJsZSBmcm9tIHRoZSBjYWxsZXIgZnVuY3Rpb24uIEluc3RlYWQsIF9hcHBlbmQgYW5kIF9tZXJnZQoJICBtYWtlIGl0IHdyaXRhYmxlIG9uIHRoZWlyIG93bi4KCSAgRGlzY292ZXJlZCBiZWNhdXNlIG9mIGFuIGFzc2VydGlvbiBvbiBlbmNvZGluZy1wcm9maWxlLmMgaW4KCSAgX2dldF9pbnB1dF9jYXBzIHVzaW5nIF9tZXJnZSBidXQgbm90IHBhc3Npbmcgd3JpdGFibGUgY2Fwcy4KCjIwMTEtMTAtMjEgMTQ6MjA6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBpbnRlcmZhY2VzOiBjbGVhbiB1cCB0aGUgdXNlIG9mIGlmYWNlIGFuZCBjbGFzcy9rbGFzcwoKMjAxMS0xMC0yMSAxMToxNToxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGRvY3MvcmFuZG9tL3N0YXR1cy0wLjExLTE0LWp1bi0yMDExLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHNwZWxsaW5nIGFuZCBmb3JtYXR0aW5nIGZpeGVzCgoyMDExLTEwLTIxIDEwOjUyOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdpbmcgb3JpZ2luL21hc3RlcgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RiaW4uYwoJICBnc3QvZ3N0YnVzLmMKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYwoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0xMC0yMCAxNjo1OTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IEZpeCBkb2N1bWVudGF0aW9uLCBpdCdzIHByZV9wdXNoX2ZyYW1lIGFuZCBub3QgcHJlX3B1c2hfYnVmZmVyCgoyMDExLTEwLTIwIDE0OjAyOjQ0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjYWNoZSB0cmFuc2Zvcm1lZCBjYXBzIHdoZXJlIGFwcHJvcHJpYXRlCgkgIFNwZWVkcyB1cCBuZWdvdGlhdGlvbiBhIGZhaXIgYml0IG9uIGEgY29udHJpdmVkIHBpcGVsaW5lCgkgIHdpdGggYSBkb3plbiBjb2xvcnNwYWNlIGNvbnZlcnNpb25zLgoJICBIb3BlZnVsbHkgY2xlYXJzIG91dCB0aGUgY2FjaGUgZXZlcnkgdGltZSBpdCBvdWdodCB0by4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjI5MQoKMjAxMS0xMC0yMCAxMDo0NTozMCAtMDMwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9AY29sbGFib3JhLmNvbT4KCgkqIEFuZHJvaWQubWs6CgkgIEZpeCBicm9rZW4gYW5kcm9pZCBidWlsZGluZyBkdWUgdG8gbmFtZSBjaGFuZ2UgaW4gMDFkODcyNTBhODQ1ZTU1ZDYKCjIwMTEtMTAtMjAgMDg6MzE6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZWJhcnNlOiBBZGQgZGV0ZWN0IHZmdW5jIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gZG8gZm9ybWF0IGRldGVjdGlvbiBiZWZvcmUgYW55dGhpbmcgZWxzZQoJICBBUEk6IEdzdEJhc2VQYXJzZUNsYXNzOjpkZXRlY3QoKQoJICBUaGlzIGlzIGNhbGxlZCB3aXRoIHRoZSBmaXJzdCBidWZmZXJzIHVudGlsIHRoZSBzdWJjbGFzcyBoYXMgZmluaXNoZWQgZGV0ZWN0aW9uCgkgIGFuZCBvbmx5IGFmdGVyd2FyZHMgdGhlIG9yaWdpbmFsIGJ1ZmZlcnMgYXJlIGhhbmRsZWQgYXMgYmVmb3JlLiBUaGUgdmZ1bmMgYWxsb3dzCgkgIGRldGVjdGlvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdCB3aXRob3V0IGJyZWFraW5nIHRoZSB1cHN0cmVhbSBmcmFtaW5nLgoKMjAxMS0xMC0yMCAwODo1Nzo1NyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3Qgb25seSBkZXNjcmliZSBjb25kaXRpb25zIGluIHRoZSBkb2NzLCBhbHNvIGNoZWNrIHRoZW0gaW4gdGhlIGNvZGUKCSAgV2hlbiBibG9ja2luZyBwYWRzLCBjaGVjayBpZiB0aGUgcGFkIGlzIGluIHRoZSByaWd0IGRpcmVjdGlvbi4gTG9nIHNvbWUgaW5mbwoJICBmb3IgdGhlIGRldmVsb3BlciBhbmQgcmV0dXJuIEZBTFNFLCBpbnN0ZWFkIG9mIGp1c3QgbG9ja2luZyB1cC4KCjIwMTEtMTAtMTkgMjM6MDc6NDYgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJldmVydCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X25hbWUgdG8gY29uc3Qgc3RyaW5nIHJldHVybgoJICBSZXR1cm5pbmcgYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG1ha2VzIG5vIHNlbnNlLiBJdCdzIHVuZXhwZWN0ZWQgZm9yIGEKCSAgZ2V0dGVyLCBhbmQgYWxzbyB0aGlzIGJlaGF2ZXMgZGlmZmVyZW50bHkgaW4gMC4xMCwgc28gaXQgd291bGQgbWFrZSBmdXR1cmUKCSAgbWVyZ2VzIGhhcmRlci4KCSAgRXhjZXB0IGZvciB0aGVzZSB0d28gcGxhY2VzIGhlcmUgaW4gY29yZSB3aGljaCB3ZXJlIHVwZGF0ZWQgZm9yIHRoZSBuZXcKCSAgc2VtYW50aWMsIHRoZSByZXR1cm4gdmFsdWUgaXMgZ2V0dGluZyBsZWFrZWQgYWxsIG92ZXIgdGhlIHBsYWNlLgoKMjAxMS0xMC0xOSAxMjoxMjozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQWRkIChza2lwKSBhbm5vdGF0aW9uIHRvIGdzdF9vYmplY3RfcmVmX3NpbmsKCjIwMTEtMTAtMTkgMTE6NTk6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGdzdGl0ZXJhdG9yOiBBZGQgc2tpcCBhbm5vdGF0aW9uIGZvciBjcmVhdGluZyBHc3RJdGVyYXRvcgoJICBOb3QgcmVhbGx5IHVzZWZ1bCBmb3IgYmluZGluZ3MKCjIwMTEtMDgtMjkgMTM6NTY6MTkgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgaW50cm9zcGVjdGlvbjogU2tpcCBnc3RfcG9sbCBhcGlzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTU6MTMgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGludHJvc3BlY3Rpb246IFNraXAgR1R5cGUgYW5kIEdWYWx1ZSB0cmFuc2Zvcm0gYXBpcwoJICBUaGVzZSBkbyBub3QgbWFrZSBzZW5zZSB0byBleHBvc2UgdG8gbGFuZ3VhZ2UgYmluZGluZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1NDoyMSAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0LmM6CgkgIGludHJvc3BlY3Rpb246IFNraXAgZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cAoJICBJdCB1c2VzIEdPcHRpb25Hcm91cCB3aGljaCBpcyBub3Qgd3JhcHBhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTM6MzkgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSAgaW50cm9zcGVjdGlvbjogQWRkIG1pc3NpbmcgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MjoyNiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGludHJvc3BlY3Rpb246IFJlbmFtZSBnc3RfYnVzX2FkZF93YXRjaF9mdWxsIHRvIGdzdF9idXNfYWRkX3dhdGNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTA6NDAgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGluZGV4Lmg6CgkgIFN5bmMgZG9jdW1lbnRhdGlvbiBhcmd1bWVudHMKCSAgVGhlIGludHJvc3BlY3Rpb24gc2Nhbm5lciB3YXJucyBpZiB0aGUgaGVhZGVyIGFuZCB0aGUgc291cmNlCgkgIHVzZXMgbWlzbWF0Y2hpbmcgcGFyYW1ldGVyIG5hbWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUwOjAyIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0xMC0xOCAxOToyMTo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogcHJvdGVjdCBhZ2FpbnN0IG51bGwgbWVzc2FnZSBzb3VyY2VzCgkgIE1lc3NhZ2Ugc291cmNlcyBjYW4gYmUgbnVsbCwgY2hlY2sgaWYgaXQgaXMgYmVmb3JlIHRyeWluZyB0bwoJICBhY2Nlc3MgaXRzIG5hbWUuCgoyMDExLTEwLTE4IDA4OjQ4OjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBzaW5jZSBkb2MgdG8gbmV3IGdldGNhcHMgZnVuY3Rpb24KCjIwMTEtMTAtMTggMTQ6MDg6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2dnaW5nOiBtb3JlIGxvZ2dpbmcgYW5kIHByZWZlciBodW1hbiByZWFkYWJsZSBkZXRhaWxzIG92ZXIgbWVtb3J5IGxvY2F0aW9ucwoKMjAxMS0xMC0xOCAxNDowNTozNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGltcHJvdmUgZGlzcGxheSBvZiBnaG9zdC0gYW5kIHByb3h5cGFkcwoJICBIYW5kbGUgdmlydHVhbCBsaW5rcyBiZXR3ZWVuIGdob3N0IGFuZCBwcm94eXBhZHMgd2hlbiBpdGVyYXRpbmcgcGFkcyBpbnN0ZWFkIG9mCgkgIHdoZW4gbGlua2luZy4gQmVzaWRlcyB1c2luZyBsZXNzIGNvZGUgdGhpcyBwcm92aWRlcyBhIG1vcmUgYWNjdXJhdGUgcGljdHVyZS4KCjIwMTEtMTAtMTggMTM6NTQ6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogQWRkIGctaSBhbm5vdGF0aW9ucyBhbmQgcmVtb3ZlICJTaW5jZToiIG1hcmtlcnMKCjIwMTEtMTAtMTcgMTQ6NDI6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGdldGNhcHMgZnVuY3Rpb24KCSAgQWRkcyBhIGdldGNhcHMgZnVuY3Rpb24gdG8gdGhlIHNpbmsgcGFkIHRvIG1ha2UgcGFyc2VycyBwcm9wYWdhdGUKCSAgZG93bnN0cmVhbSBjYXBzIHJlc3RyaWN0aW9ucyB0byB1cHN0cmVhbS4KCSAgVGhlIHBpcGVsaW5lICJhdWRpb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MTAwICEgZmFhYyAhIGFhY3BhcnNlICEKCSAgImF1ZGlvL21wZWcsIHZlcnNpb249KGludCk0LCBzdHJlYW0tZm9ybWF0PShzdHJpbmcpYWR0cyIgISBmaWxlc2luayIKCSAgd291bGRuJ3Qgd29yayBiZWNhdXNlIGFhY3BhcnNlIHdvdWxkbid0IHByb3BhZ2F0ZSB0aGUgYWR0cyByZXN0cmljdGlvbgoJICB1cHN0cmVhbSB0byBmYWFjLgoJICBUaGlzIHBhdGNoIGFkZHMgYSBkZWZhdWx0IGdldGNhcHMgdG8gdGhlIHNpbmsgcGFkIHRvIHNpbXBseSBwcm94eQoJICBkb3duc3RyZWFtIGNhcHMgYW5kIGFsc28gYWRkcyBhICdnZXRfc2lua19jYXBzJyBmdW5jdGlvbiBwb2ludGVyCgkgIHRvIEdzdEJhc2VQYXJzZUNsYXNzIGZvciBzdWJjbGFzc2VzIHRoYXQgbmVlZCBtb3JlIHJlZmluZWQgZ2V0Y2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MTg3NAoKMjAxMS0xMC0xOCAxMjozOTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhbHNvIHVwZGF0ZSB0aGUgc3RyZWFtIHRpbWUKCjIwMTEtMTAtMTggMTA6NTg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggaGFuZGxpbmcgb2YgcXVldWVkIGZyYW1lcwoJICBnc3RfYmFzZV9wYXJzZV9wdXNoX2ZyYW1lKCkgYWxyZWFkeSBmcmVlcyB0aGUgZnJhbWUsIG5vIG5lZWQgdG8KCSAgZG8gaXQgYW5vdGhlciB0aW1lIGFnYWluLgoKMjAxMS0xMC0xNyAyMTozODo1NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBmaXggcGFkdGVtcGxhdGUgbGVhayBpbiBzZWxlY3RvciB0ZXN0CgkgIEluIDAuMTEsIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSByZXR1cm5zIGEgcmVmZXJlbmNlLgoKMjAxMS0xMC0xNyAyMTozNzoxNyArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggYnVmZmVyL2V2ZW50IGxlYWsgd2hlbiBwYWQgaXMgZmx1c2hpbmcKCSAgQXBwYXJlbnRseSB0aGlzIGdvdCBsb3N0IHdoaWxlIHJlZmFjdG9yaW5nIHByb2Jlcy4KCjIwMTEtMTAtMTcgMTc6MDA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSB0aGUgbWVtb3J5IGZyb20gdGhlIHRtcGJ1ZgoJICBXZSB1c2UgYSB0bXBidWYgdG8gaG9sZCBhIHRlbXBvcmFyeSBwb2ludGVyIHRvIHRoZSBhZGFwdGVyIG1lbW9yeS4gV2UgbmVlZCB0bwoJICByZW1vdmUgdGhhdCBtZW1vcnkgd2hlbiB3ZSBubyBsb25nZXIgbmVlZCBpdC4KCjIwMTEtMTAtMTcgMTM6NTU6MzUgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggcmFjZSBjb25kaXRpb24gYW5kIG1lbW9yeSBsZWFrIGluIGdzdF9zdGF0aWNfY2Fwc19nZXQKCSAgVGhpcyB3YXMgbGVha2luZyB0aGUgUHRyQXJyYXkgZnJvbSBjYXBzLT5wcml2LCBhcyBzZXQgdXAgYnkgdGhlIG90aGVyIGNhbGwgdG8KCSAgZ3N0X2NhcHNfaW5pdC4gQWxzbywgdGhlIHRocmVhZCBzYWZldHkgaXNzdWUgcHJlc2VudGVkIGluIHRoZSBjb21tZW50IGFib3ZlIHdhcwoJICBub3QgdGFrZW4gY2FyZSBvZiBhbnltb3JlLiBXZSBub3cgemVybyB0aGUgcmVmY291bnQgYWdhaW4gd2hlbiBwdWJsaXNoaW5nIHRoZQoJICBzdHJ1Y3R1cmUuCgkgIEZpeGVzICM2NjE2MjkuCgoyMDExLTEwLTE3IDA5OjI4OjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGdzdGNoZWNrOiBNYWtlIEFTU0VSVF9NSU5JX09CSkVDVF9SRUZDT1VOVCBtb3JlIHVzZWZ1bAoJICBrbm93aW5nIHdoaWNoIG1pbmlvYmplY3QgZmFpbGVkIGhlbHBzIHVzIGxvY2F0ZSBpdCBpbiBkZWJ1ZyBsb2dzCgoyMDExLTEwLTE3IDA5OjI4OjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBNYWtlIF9jaGVja19idWZmZXJfZGF0YSBhIGJpdCBtb3JlIHZlcmJvc2UKCjIwMTEtMTAtMTcgMDk6Mjc6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGNoZWNrOiBEb24ndCBsZWFrIHRoZSBmZWF0dXJlIG5hbWUKCjIwMTEtMTAtMTcgMDk6Mjc6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGdzdHJlZ2lzdHJ5OiBEb24ndCBsZWFrIGZlYXR1cmUgbmFtZQoKMjAxMS0xMC0xNiAyMToxMjowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZ2l2ZSB3YXRjaCBzb3VyY2UgYSBuYW1lCgkgIEdpdmUgb3VyIEdTb3VyY2UgYSBtZWFuaW5nZnVsIG5hbWUuIFNvdXJjZSBuYW1lcyBjYW4gYmUKCSAgdXNlZCBmb3IgZGVidWdnaW5nIGFuZCBwcm9maWxpbmcsIGZvciBleGFtcGxlIHdpdGgKCSAgc3lzdGVtdGFwIG9yIGdkYi4KCjIwMTEtMTAtMTQgMDk6MzU6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdGJ1ZmZlcjogQWRkIHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBnc3RfYnVmZmVyX2pvaW4oKQoKMjAxMS0xMC0xNiAxNzo0MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTYgMTc6MDM6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTE2IDE3OjAwOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMTYgMTQ6NDU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgZml4IG1vcmUgcGFyZW50X2NsYXNzCgoyMDExLTEwLTE2IDE0OjIwOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RldmVudC5oCgoyMDExLTEwLTE2IDE0OjE3OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBjbGVhbiB1cCBwYXJlbnRfY2xhc3MKCjIwMTEtMTAtMTQgMTI6NTc6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xlYW4gdXAgcGFyZW50X2NsYXNzIGhhbmRsaW5nCgoyMDExLTEwLTE0IDA5OjM1OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RidWZmZXI6IEFkZCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgZ3N0X2J1ZmZlcl9qb2luKCkKCjIwMTEtMTAtMTQgMDk6Mjc6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUgbGlzdAoKMjAxMS0xMC0xMyAxNzozMzowNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBmaXggdHlwbyBpbiB0aGUgZG9jcwoKMjAxMS0xMC0xMyAxNjo0ODowMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHNob3cgaWYgYW4gZWxlbWVudCBpcyBzdGF0ZS1sb2NrZWQKCjIwMTEtMTAtMTMgMTY6NDI6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGxvZ2dpbmc6IHVzZSBfT0JKRUNUIHZhcmlhbnRzIG1vcmUKCjIwMTEtMTAtMTMgMTI6MjM6NTkgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGNhcHMgbGVhawoKMjAxMS0xMC0xMyAxMDoxOTozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogVXNlIGFuIGlubGluZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgbWFjcm8gZm9yIGdzdF9idWZmZXJfcmVwbGFjZSgpCgkgIFRoaXMgZ2l2ZXMgdXMgdHlwZSBjaGVja3MgYnkgdGhlIGNvbXBpbGVyIGFuZCBtb3JlIHVzZWZ1bCBjb21waWxlciBlcnJvcnMuCgoyMDExLTEwLTEzIDEwOjE4OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogVXNlIGFuIGlubGluZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgbWFjcm8gZm9yIGdzdF9ldmVudF9yZXBsYWNlKCkKCSAgVGhpcyBnaXZlcyB1cyB0eXBlIGNoZWNrcyBieSB0aGUgY29tcGlsZXIgYW5kIG1vcmUgdXNlZnVsIGNvbXBpbGVyIGVycm9ycy4KCjIwMTEtMTAtMTMgMDg6NTE6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMTAtMTIgMTg6MTQ6MDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG8gbm90IHVucmVmIHRoZSBpbnRlcm5hbCBwYWQgdHdpY2UKCSAgZ192YWx1ZV91bnNldCBzaG91bGQgYWxyZWFkeSB1bnJlZiB0aGUgaW50ZXJuYWwgcHJveHlwYWQsIG5vCgkgIG5lZWQgdG8gZG8gaXQgYWdhaW4KCjIwMTEtMTAtMTIgMTc6MTc6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJvcGVybHkgYWRqdXN0IHN0YXJ0IHRpbWUKCSAgV2hlbiB3ZSBkbyBhIG5vbi1mbHVzaGluZyBzZWVrIGFuZCBjbG9zZWQgdGhlIGN1cnJlbnQgc2VnbWVudCwKCSAgbWFrZSBzdXJlIHRoYXQgd2Ugb3BlbiB0aGUgbmV4dCBzZWdtZW50IGZyb20gd2hlcmUgd2UgY2xvc2VkLgoKMjAxMS0xMC0xMiAxNDozNzozMSArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIHRyYW5zZmVyIHR5cGUgZm9yIGdzdF9ldmVudF9uZXdfY2FwcyBhcmd1bWVudAoJICBUaGVzZSBhbm5vdGF0aW9ucyBhcmUgdXNlZnVsIHRvIGh1bWFucyBhcyB3ZWxsLi4uCgoyMDExLTEwLTEyIDE0OjM0OjI0ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCBjYXBzIGxlYWsKCSAgZ3N0X2V2ZW50X25ld19jYXBzIGRvZXMgbm90IHN0ZWFsIGEgcmVmZXJlbmNlIHRvIHRoZSBjYXBzLgoKMjAxMS0xMC0xMiAxMzozMTo0OCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGdzdF9ldmVudF9uZXdfc2VnbWVudCB0cmFuc2ZlciB0eXBlCgoyMDExLTEwLTExIDEzOjU0OjQ1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBGaXggbW9yZSBsZWFrcwoKMjAxMS0xMC0xMSAxMzo1MzozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRG9uJ3QgbGVhayBjYXBzCgoyMDExLTEwLTExIDEzOjUxOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggYSBjYXBzIGxlYWsgYW5kIG1vdmUgYSBjb2RlYmxvY2sKCSAgVGhlIHJlc3VsdCBmcm9tIHRoZSBibG9jayBvZiBjb2RlIHRoYXQgd2FzIG1vdmVkIHdvdWxkIG9ubHkgaGF2ZQoJICBiZWVuIHVzZWQgaWYgJ3BlZXJjYXBzJyB3YXMgcHJlc2VudC4KCjIwMTEtMTAtMTEgMTM6NTE6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3Q6IE1vcmUgJ3RyYW5zZmVyJyBhbm5vdGF0aW9ucwoKMjAxMS0xMC0xMCAxOTo0MTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGNhdGNoIGludmFsaWQgaW5zdGFuY2Ugc2l6ZXMgaW4gZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwoKQoJICBBZGQgZ3VhcmRzIHRvIGNhdGNoIG92ZXJseSBsYXJnZSBpbnN0YW5jZSBzaXplcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDk1NQoKMjAxMS0xMC0xMCAxOTozMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgSXQgd2FzIG9ubHkgcmVhbGx5IHVzZWQgYnkgR1NUX0JPSUxFUlBMQVRFLCBhbmQgdGhhdCBpcyBubyBtb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwOTU1CgoyMDExLTEwLTEwIDExOjQ3OjQyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgdHJ5aW5nIHRvIGFsbG9jIGVub3Jtb3VzIGJ1ZmZlcgoJICBJZiBhIGNsYXNzIGV4dGVuZGluZyBiYXNlc3JjIGRvZXNuJ3Qgc2V0IGJsb2Nrc2l6ZSwgYmFzZXNyYwoJICB3b3VsZCB0cnkgdG8gYWxsb2NhdGUgYSAoZ3VpbnQpLTEgc2l6ZWQgYnVmZmVyLCB3aGljaCBpcyBlbm9ybW91cwoJICBhbmQgbGlrZWx5IHdvdWxkIGZhaWwuCgkgIEF2b2lkIGl0IGFuZCBlcnJvciBvdXQuCgoyMDExLTEwLTEwIDE3OjE3OjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTc6MDQ6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBJZiB3ZSBkb24ndCBjb250cm9sIGEgcGFkL3RlbXBsYXRlLCByZXR1cm4gcHJvcGVyIGNhcHMKCSAgSWYgdGhlcmUncyBhIGZpbHRlciwgd2UgY2FuIHJldHVybiB0aGF0IGluIF9nZXRfY2FwcygpCgoyMDExLTEwLTEwIDE2OjUyOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBTcGVjaWZ5IHRyYW5zZmVyIGZ1bGwgZm9yIGdzdF9wYWRfZ2V0X2NhcHMoKQoJICBJdCBpbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHJldHVybmVkIGNhcHMuCgoyMDExLTEwLTEwIDExOjAyOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBZGQgZGVidWcgdG8ga25vdyB3aGF0IGV2ZW50cyBhcmUgdHJhbnNmZXJyZWQgYmV0d2VlbiBwYWRzCgoyMDExLTEwLTEwIDEwOjM4OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBVbnNldCBFT1MgZXZlbnQgb24gRkxVU0hfU1RPUAoKMjAxMS0xMC0wNyAxMTo0OToxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRG9uJ3QgaWdub3JlIGRvd25zdHJlYW0gRmxvd1JldHVybiB3aXRoIElETEUgcHJvYmVzCgkgIElmIHB1c2hnaW4gZG93bnN0cmVhbSByZXR1cm5lZCBhIG5vbi1vayB2YWx1ZSAobGlrZSBHU1RfRkxPV19XUk9OR19TVEFURSksCgkgIHdlIGRvbid0IHdhbnQgdG8gZW5kIHVwIHJldHVybmluZyBhIGRpZmZlcmVudCB2YWx1ZSAoR1NUX0ZMT1dfT0sgaW4gdGhpcwoJICBjYXNlKSBpZiBJRExFIHByb2JlcyBhcmUgcHJlc2VudC4KCjIwMTEtMTAtMTAgMTM6MjM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjU0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjozODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6Mjc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDExOjQ5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMTozNjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgY29tcGF0OiBhZGQgY29tcGF0IGRlZmluZSBmb3IgVU5FWFBFQ1RFRAoKMjAxMS0xMC0xMCAxMTozMzo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMS0xMC0xMCAxMTozMDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMDkgMTE6NDk6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJICB0ZXN0czogdGVlOiBSZW1lbWJlciB0byBpbml0aWFsaXplIHZhcmlhYmxlcyB0byBOVUxMCgkgIGFwcF90aHJlYWQgbmVlZHMgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gTlVMTCwgb3RoZXJ3aXNlIHRlc3RzCgkgIHdpbGwgdHJ5IHRvIHVzZSBpdCBhbmQgY3Jhc2gKCjIwMTEtMTAtMDggMjA6NTY6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIGZvciBjaGVjay1leHBvcnRzIHNjcmlwdCBjaGFuZ2VzCgoyMDExLTEwLTA4IDIwOjQ2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudGZhY3Rvcnk6IGRvbid0IGV4cG9ydCBwcml2YXRlIF9nc3RfZWxlbWVudGNsYXNzX2ZhY3RvcnkgcXVhcmsKCjIwMTEtMTAtMDggMjA6MTU6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogbWFrZSBfZ3N0X2RlYnVnX2luaXQoKSBwcml2YXRlIGZvciBub3cKCSAgVGhpcyB3YXMgYSBGSVhNRSBmb3IgMC4xMS4gSSBndWVzcyBhIGNhc2UgY291bGQgYmUgbWFkZSB0byBrZWVwIGl0IGFyb3VuZAoJICBzZXBhcmF0ZWx5IGZvciBhcHBzIG9yIGxpYnJhcmllcyB0aGF0IG9ubHkgd2FudCB0byB1c2UgR1N0cmVhbWVyJ3MgZGVidWdnaW5nCgkgIHN5c3RlbSwgYnV0IGl0IHNlZW1zIG1vcmUgbGlrZWx5IHRoZXknZCBqdXN0IGNvcHkgdGhlIHR3byBzb3VyY2UgZmlsZXMgaW50bwoJICB0aGVpciBvd24gdHJlZSBpZiB0aGUgY2FzZS4gQWxzbywgdGhpbmdzIGxpa2UgdHlwZXMgd291bGRuJ3QgYmUgaW5pdGlhbGlzZWQKCSAgd2l0aG91dCBnc3RfaW5pdCgpLiBXZSBjYW4gc3RpbGwgbWFrZSBpdCBwdWJsaWMgYWdhaW4gaWYgYW55b25lIG5lZWRzIGl0LAoJICBidXQgdGhlbiB3ZSBzaG91bGQgbWFrZSBpdCBhIHByb3BlciBmdW5jdGlvbiBhbmQgbm90IGhpZGUgaXQgYmVoaW5kCgkgIHVuZGVyc2NvcmVzLgoKMjAxMS0xMC0wOCAxOTo1NDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIHN5bWJvbC1leHBvcnRzCgoyMDExLTEwLTA4IDE0OjE3OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvcGFyc2UvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgZ3N0cGFyc2U6IHByZWZpeCBnZW5lcmF0ZWQgcGFyc2VyIGZ1bmN0aW9ucyBzbyB0aGV5IGRvbid0IGdldCBleHBvcnRlZAoJICBEb24ndCBleHBvcnQgdGhvc2UgMzUtc29tZXRoaW5nIHJhbmRvbSBfZ3N0X3BhcnNlX3l5KiBzeW1ib2xzLiBUaGVzZSB3ZXJlCgkgIG5ldmVyIGluIGFueSBoZWFkZXIgZmlsZXMgYW5kIGFsc28gYmxhY2tsaXN0ZWQgZnJvbSBvdXIgLmRlZiBmaWxlcywgaW4KCSAgY2FzZSBhbnlvbmUgd29uZGVycy4KCjIwMTEtMTAtMDggMTM6Mzc6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiByZW5hbWUgX19nc3RfZGVidWdfKiB0byBfZ3N0X2RlYnVnXyogYW5kIGZpeCBzeW1ib2wgZXhwb3J0IHJlZ2V4cAoJICBPbmx5IGV4cG9ydCBHU3RyZWFtZXIgc3ltYm9scyB3aXRoIG9uZSBsZWFkaW5nIHVuZGVyc2NvcmUsIG5vdCB0d28KCSAgb3IgbW9yZSBsZWFkaW5nIHVuZGVyc2NvcmVzLgoJICBSZXF1aXJlcyBhIHJlYnVpbGQgb2YgdGhlIGVudGlyZSBzdGFjaywgc29ycnkuCgoyMDExLTEwLTA4IDE1OjE2OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBkb2MKCjIwMTEtMTAtMDggMTQ6MjU6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTA4IDE0OjIzOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0wOCAxMjowODo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDggMDk6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMDggMDk6Mjg6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTEwLTA3IDA5OjQ1OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFVzZSBwaXBlbGluZSBjYXRlZ29yeSBmb3Igb25lIG1vcmUgbG9nIG1lc3NhZ2UKCSAgTWFrZXMgZGVidWdnaW5nIGVhc2llci4KCjIwMTEtMTAtMDcgMTY6MzY6MTAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgR1NUX1BUUl9GT1JNQVQ6IEFkZCBHc3RCdWZmZXIgcHRyIGZvcm1hdCBhbmQgdXNlIGluIEdTVF9TQ0hFRFVMSU5HCgkgIEdzdEJ1ZmZlciBwb2ludGVycyBjYW4gbm93IGJlIHByaW50ZWQgdXNpbmcgR1NUX1BUUl9GT1JNQVQuIFRoaXMgaXMgdXNlZAoJICBpbiB0aGUgdmVyeSB1c2VmdWwgR1NUX1NDSEVEVUxJTkcgZGVidWcgbG9ncyBpbiBnc3RwYWQuYyBhbmQgYWxsb3dzIGZvcgoJICBlYXNpZXIgYW5kIG1vcmUgaW5mb3JtYXRpb24gdHJhY2tpbmcgb2YgYnVmZmVyIHByb2dyZXNzIHRocm91Z2ggYQoJICBwaXBlbGluZSB3aXRoIGp1c3QgZGVidWcgbG9nZ2luZy4KCjIwMTEtMTAtMDcgMTM6NTU6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICB0ZXN0czogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGluIHNpbmtzIHRlc3QKCjIwMTEtMTAtMDcgMTM6NTQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZTogbWFrZSBHc3REYXRhUXVldWUgcHJpdmF0ZSBBUEkgZm9yIG11bHRpcXVldWUKCSAgVGhlcmUncyBubyBjb2RlIHRoYXQgdXNlcyBpdCBvdGhlciB0aGFuIG11bHRpcXVldWUsIHNvIG1ha2UgaXQgcHJpdmF0ZQoJICB0byBtdWx0aXF1ZXVlIGZvciBub3cuIFRoYXQgd2F5IHdlIGNhbiBhbHNvIGRvIG9wdGltaXNhdGlvbnMgdGhhdAoJICByZXF1aXJlIEFQSS9BQkkgYnJlYWtzLiBJZiBhbnlvbmUgZXZlciB3YW50cyB0byB1c2UgaXQsIHdlIGNhbiBzdGlsbAoJICBtYWtlIGl0IHB1YmxpYyBhZ2Fpbi4KCjIwMTEtMTAtMDYgMTc6Mjc6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTA2IDE3OjI2OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA2IDE0OjM0OjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VuZCBkdXJhdGlvbiBtZXNzYWdlIHdoZW4gdXBkYXRpbmcgaW50ZXJuYWwgZHVyYXRpb24KCjIwMTEtMTAtMDYgMTQ6MDQ6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDYgMTA6NTk6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNSAyMDowNjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNSAxMzo0Mzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBzdGF0dXMKCjIwMTEtMTAtMDUgMTE6MjA6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgZ3N0YnVmZmVycG9vbDogVXNlIGdsaWIgY29tcGF0IG1hY3JvcyBmb3IgYXRvbWljIHBvaW50ZXJzCgoyMDExLTEwLTA0IDE4OjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDQgMTg6NTU6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDExLTEwLTA0IDE4OjM4OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0wNCAxNzozOToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDQgMTc6MzY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxNTo1NTowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IHNwZWNpZnkgKHRyYW5zZmVyKSBmb3IgZ3N0X2V2ZW50X25ld19zZWdtZW50CgoyMDExLTEwLTA0IDEzOjE2OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIGFkZCBwb3J0aW5nIGxpc3QKCjIwMTEtMDktMjYgMTQ6MzY6NDYgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiBzdWNjZXNzIGlmIG9wdGlvbmFsIHN0YXJ0L3N0b3AgbWV0aG9kIGlzIG5vdCBwcm92aWRlZAoJICBUaGlzIGFsbG93cyB0byBub3QgaW1wbGVtZW50IHRoZSBvcHRpb25hbCBzdGFydC9zdG9wIG1ldGhvZHMuCgoyMDExLTEwLTAzIDEwOjA2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTAtMDMgMDk6Mjk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBNYWtlIGRlYnVnZ2luZyBtZXNzYWdlIG1vcmUgaW5mb3JtYXRpdmUKCSAgRm9yIGFsbCB0aGUgbmV3Y29tZXJzIG91dCB0aGVyZSB3aG8gc3RpbGwgZG9uJ3Qga25vdyB0aGUgdmFsdWVzIG9mCgkgIEdzdFF1ZXJ5VHlwZSBlbnVtIGJ5IGhlYXJ0Li4uCgkgIC4uLiBhbmQgb2xkLXRpbWVycyB3aG8ndmUgZ290IGJldHRlciB0aGluZ3MgdG8gZG8gOikKCjIwMTEtMDktMzAgMTU6MjU6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGVzdGltYXRpbmcgdGhlIHBvc2l0aW9uIGluIHF1ZXJ5IGhhbmRsZXIgYWN0dWFsbHkgd29yawoJICBObyBwb2ludCBlc3RpbWF0aW5nIGlmIHdlIGRvbid0IHNldCB0aGUgcmVzdWx0IGFmdGVyd2FyZHMuCgoyMDExLTA5LTI2IDEzOjE0OjQyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYW5zd2VyIHBvc2l0aW9uIHF1ZXJ5IGluIHN0cmVhbSB0aW1lIGFuZCB0cnkgdXBzdHJlYW0gZmlyc3QKCSAgTGV0IHRoZSBkZW11eGVyIGhhdmUgZmlyc3Qgc2F5IGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk0ODUKCjIwMTEtMDktMzAgMTQ6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJICBnc3QuaDogaW5jbHVkZSBoZWFkZXIgZm9yIGF0b21pYyBxdWV1ZQoKMjAxMS0wOS0zMCAxNDo1MDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICB0ZXN0czogYWRkIG1pbmltYWwgdGVzdCBmb3IgR3N0QXRvbWljUXVldWUKCSAgSnVzdCBuZXcgKyBmcmVlLgoKMjAxMS0wOS0yOSAxODowNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZSByZWxlYXNlIG5vdGVzCgkgIENoYW5nZSB0aGUgbWFpbCBhZGRyZXNzZXMgdG8gdGhlIGZyZWVkZXNrdG9wIG9uZXMKCjIwMTEtMDktMjkgMTc6MDQ6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4xID09PQoKMjAxMS0wOS0yOSAxNjo1MDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMS4xCgoyMDExLTA5LTI4IDE4OjQ2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtZW1vcnkgYWxpZ25tZW50CgkgIEZpeCBjb21waWxhdGlvbiB3aGVuIFBPU0lYX01FTUFMSUdOIGlzIG5vdCBzZXQuCgkgIERlYnVnIHRoZSBjb25maWd1cmVkIGFsaWdubWVudC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMwMAoKMjAxMS0wOS0yOCAxODo0NDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnCgoyMDExLTA5LTI4IDExOjI4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZml4IGFmdGVyIG1lcmdlCgoyMDExLTA5LTI4IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOS0yOCAxMToxNjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGZpeCBzb21lIG1vcmUgZG9jcwoKMjAxMS0wOS0yNiAxOTo1MjoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc2VuZCBkZWxheWVkIGV2ZW50cyBlYXJsaWVyCgkgIFNvbWUgZWxlbWVudHMgKHN1Y2ggYXMgdmlkZW9yYXRlKSBtaWdodCBwdXNoIGJ1ZmZlcnMgZWFybHksCgkgIGZvciBpbnN0YW5jZSBpbiBpbiB0cmFuc2Zvcm1faXAuIFdlIHdhbnQgZXZlbnRzIChhbmQgaW4gcGFydGljdWxhcgoJICBhbnkgTkVXU0VHTUVOVCBldmVudCkgdG8gYmUgcHVzaGVkIGJlZm9yZSB0aGF0LgoJICBUaGlzIGZpeGVzIHRyYW5zbWFnZWRkb24gd2VkZ2luZyBvbiBjb252ZXJ0aW5nIGEgZmlsZSBzdGFydGluZwoJICB3aXRoIGEgbm9uIHplcm8gb2Zmc2V0IHRvIE9nZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDE2NQoKMjAxMS0wOS0yNiAyMDo0NzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogZml4IGRvY3MKCjIwMTEtMDktMjYgMTk6MjU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA5LTI2IDE5OjI0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogaW1wcm92ZSBBUEkgZG9jcyBhIGxpdHRsZQoKMjAxMS0wOS0yNiAwMDozMDo0NyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3Q6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiA2NCBiaXQgbWluZ3ctdzY0CgkgIEZpeGVzIGJ1ZyAjNjYwMDgzLgoKMjAxMS0wOS0yNSAxNjoxMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IGZpeCBib2d1cyBnX29iamVjdF91bnJlZiBpbiBoZWxsb3dvcmxkIGV4YW1wbGUKCSAgR01haW5Mb29wIGlzIG5vdCBhIEdPYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQxNDMKCjIwMTEtMDktMjMgMTM6MDk6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGNhcHMuYwoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0wOS0yMSAxMzo0Mzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byAwLjExIGJyYW5jaAoKMjAxMS0wOS0yMCAxMzowNDowNiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZGVsYXkgc2VyaWFsaXplZCBldmVudHMgd2hlbiBzcmMgY2FwcyBhcmUgbm90IHNldCB5ZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTU3MQoKMjAxMS0wOS0xMyAxNzowNDozMSArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZXQgY2FwcyBvbiBwYWQgYmVmb3JlIGNoZWNraW5nIGlmIHRoZSBwYWQgaXMgbGlua2VkCgkgIFRoaXMgYWxsb3dzIHRoZSBzZXRjYXBzIGhhbmRsZXIgYW5kIG5vdGlmeTo6Y2FwcyB0byBsaW5rCgkgIHRoZSBwYWQgZG93bnN0cmVhbSBhbmQgZG9lc24ndCByZXF1aXJlIGhhY2tzIHRvIGFsd2F5cwoJICBwcm92aWRlIGEgcGVlciB0byB0aGUgcGFkLCBsaWtlIGluIGRlY29kZWJpbjIuCgoyMDExLTA5LTE1IDExOjQ5OjQzIC0wNzAwICBGYWJyaXppbyAoTWlzdG8pIE1pbG8gPG1pc3RvYmFhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGFuZCBnc3RfdmFsdWVfZ2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBpbnRlcm5hbCBmaWVsZHMKCjIwMTEtMDktMTYgMTM6Mzg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIG90aGVyIGNoYWluIGZ1bmN0aW9uIGNvZGUgcGF0aCBhcyB3ZWxsCgoyMDExLTA5LTE2IDEzOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdXAgcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgkgIFdoaWNoIEkgbWVzc2VkIHVwLgoKMjAxMS0wOS0xNSAxMzoyMDoxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGRlYnVnIHRyYWNlcyBtb3JlIHVzZWZ1bAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MTM5CgoyMDExLTA5LTE0IDIyOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0Y3ZzdGVzdC5zaDoKCSAgc2NyaXB0czogcmVtb3ZlIGdzdGN2c3Rlc3Quc2gKCjIwMTEtMDktMTMgMjM6MDQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBjbGFuZyBjb21waWxlciB3YXJuaW5nCgkgIENhc3QgZW51bSB0byBpbnQgYmVmb3JlIGNoZWNraW5nIGZvciBuZWdhdGl2ZSB2YWx1ZXMsIHdoaWNoIGFyZQoJICBpbXBvc3NpYmxlIGFjY29yZGluZyB0byB0aGUgZW51bSBsaXN0LgoJICBnc3RsZm9jb250cm9sc291cmNlLmM6NjUyOjQ1OiBlcnJvcjogY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBlbnVtIGV4cHJlc3Npb24gPCAwCgkgIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJvciwtV3RhdXRvbG9naWNhbC1jb21wYXJlXQoJICBpZiAod2F2ZWZvcm0gPj0gbnVtX3dhdmVmb3JtcyB8fCB3YXZlZm9ybSA8IDApIHsKCSAgfn5+fn5+fn4gXiB+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTMxMzcKCjIwMTEtMDktMTMgMjE6NTg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogbWFrZSBzdXJlIGZpbGVzcmMgcmV0dXJucyBlc2NhcGVkIFVSSXMgZXZlbiBpZiB0aGUgaW5wdXQgd2FzIHVuZXNjYXBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NjczCgoyMDExLTA5LTEwIDE4OjE1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1vdmUgbG9nIG1lc3NhZ2VzIGZvciBjYXBzIGNyZWF0aW9uL2ZyZWVpbmcgaW50byBUUkFDRSBjYXRlZ29yeQoJICBSZWR1Y2UgU1BBTSBmb3IgR1NUX0NBUFM6NS4KCjIwMTEtMDktMDkgMTI6NTY6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgZG8gdGhlIHN1YnNldCBjaGVjayBpbiBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaWYgdGhlIHBhZCBjbGFpbXMgdG8gYWNjZXB0IHRoZSBjYXBzCgoyMDExLTA5LTA3IDE3OjIxOjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBpdCBlYXN5IHRvIG92ZXJyaWRlIHRoZSBwYWQgcXVlcnkKCSAgQWRkIGEgdm1ldGhvZCB0byBoYW5kbGUgdGhlIHBhZCBxdWVyeS4KCSAgSW5zdGFsbCBhIGRlZmF1bHQgaGFuZGxlciBmb3IgdGhlIHBhZCBxdWVyeS4KCSAgVXNlIHRoZSBuZXcgcXVlcnkgZnVuY3Rpb24gaW4gZmlsZXNpbmsKCjIwMTEtMDktMDggMTQ6Mzk6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiUmV2ZXJ0ICJiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBiYzZkNDljOTUwMjEwYmY0MjI2MTVmYjhkYzk4YzVhZGNkNWU0NTYuCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMDktMDggMTQ6MzE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgIlJldmVydCAicGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJiZmFkYTU1ODFlMzVhMmQzNzE4OGY0OGEyYzc0NDI2NDRmMTBiYjMuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIEZvciAwLjExIHdlIHdhbnQgdG8gZW5mb3JjZSB0aGF0IG9ubHkgc3Vic2V0cyBvZiB0aGUgcGFkCgkgIGNhcHMgYXJlIGFsbG93ZWQuIFRoaXMgYnJlYWtzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yCgkgIHNvbWUgZWxlbWVudHMsIHdoaWNoIGlzIHdoeSB3ZSBvbmx5IHByaW50IGEgd2FybmluZyBpbgoJICAwLjEwLgoKMjAxMS0wOS0wOCAxNDozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTA5LTA4IDE0OjI5OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkM2NhZDI4ZGE5MzZiMDM3ZDg3N2RjNzBjMDIyODZiODFiNjgwMjg0LgoJICBJdCBjYXVzZXMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgYmVjYXVzZSBhY2NlcHRjYXBzKCkgcHJvcGFnYXRlcyBkb3duc3RyZWFtLgoKMjAxMS0wOS0wOCAxNDoyMzo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0CgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdGludGVyZmFjZS5jCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYwoJICB0b29scy9nc3QtbGF1bmNoLjEuaW4KCjIwMTEtMDktMDggMTM6NDE6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZAoKMjAxMS0wOS0wOCAxMzo0MDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUHJpbnQgYSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0IGNhcHMgdGhhdCBhcmUgbm90IGEgc3Vic2V0IG9mIGl0cyBjYXBzCgkgIEluIDAuMTEgb25seSBzdWJzZXRzIGFyZSBzdXBwb3J0ZWQgYWdhaW4gYXMgZG9jdW1lbnRlZCBpbnN0ZWFkIG9mIGFsc28KCSAgYWxsb3dpbmcgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMuCgoyMDExLTA5LTA4IDEzOjI2OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgImJhc2V0cmFuc2Zvcm06IFVzZSBjaGVjayBmb3Igc3Vic2V0cyBhbmQgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZTVjYzVlODllN2UyODU4YTYzNTJmYTRjODFhMzc0ZjZlNWE2Mjk3LgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA4IDEzOjI2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwYzVkNTAyMDczMjZkNzRhNDgwNWJjZDg5OGJmYWM4ODc1NDBmMTJiLgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA3IDEzOjE0OjM4ICswMjAwICBQaW90ciBGdXNpayA8Zm94QHNjZW5lLnBsPgoKCSogUkVBRE1FOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcmFuZG9tL2F1dG9wbHVnMjoKCSogZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6CgkqIGRvY3MvcmFuZG9tL2JiYi9zdHJlYW1zZWxlY3Rpb246CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL2NvbXBhbnkvZ3ZhZGVjLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3BsdWdpbmRvY3MudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkqIGRvY3MvcmFuZG9tL2VvczoKCSogZG9jcy9yYW5kb20vaGllcmFyY2h5OgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJKiBkb2NzL3JhbmRvbS9pbnRlcmZhY2VzOgoJKiBkb2NzL3JhbmRvbS9uZWdvdGlhdGlvbjoKCSogZG9jcy9yYW5kb20vb21lZ2Evc2NoZWQvY2hhaW5zOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS90ZXN0aW5nL2ZyYW1ld29yazoKCSogZG9jcy9yYW5kb20vcGx1Z2luczoKCSogZG9jcy9yYW5kb20vcnRwOgoJKiBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDoKCSogZG9jcy9yYW5kb20vc291cmNlczoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJKiBkb2NzL3JhbmRvbS90ZXN0aW5nL3N5bnRheDoKCSogZG9jcy9yYW5kb20vdHlwZXMyOgoJKiBkb2NzL3JhbmRvbS91cmFldXMvZ3N0cmVhbWVyX2FuZF9taWRpLnR4dDoKCSogZG9jcy9yYW5kb20vdmlzLXRyYW5zZm9ybToKCSogZG9jcy9yYW5kb20vd3RheS9jYXBzLW5lZ29jaWF0aW9uOgoJKiBkb2NzL3JhbmRvbS93dGF5L3RocmVhZGluZzoKCSogZG9jcy9yYW5kb20vd3RheS90aHJlYWRzX2hpbGV2ZWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJICBkb2NzLCBnc3Q6IHR5cG8gZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODQ0OQoKMjAxMS0wOS0wNyAxNTowNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgTm8gcG9pbnQgcmVtb3ZpbiB0aG9zZSBlbXB0eSBvdmVycmlkZSBmaWxlcyBmcm9tIGdpdCwgdGhleSdsbAoJICBqdXN0IGJlIHJlLWNyZWF0ZWQgbGF0ZXIsIHNvIGxldCdzIHRlbGwgZ3RrLWRvYyBhYm91dCB0aGVtLCBzbwoJICBpdCBjYW4gY2xlYW4gdGhlbSB1cCBwcm9wZXJseS4KCjIwMTEtMDktMDcgMTY6MDI6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZXJlJ3Mgbm8gcGVlciB3ZSBzdGlsbCBoYXZlIHRvIHRyYW5zZm9ybSBBTlkgY2FwcyBpbiBnZXRjYXBzKCkKCSAgT3RoZXJ3aXNlIGVsZW1lbnRzIGxpa2UgY2Fwc2ZpbHRlciB3aWxsIHJldHVybiBBTlkgY2FwcyBpZiBubwoJICBwZWVyIGlzIHByZXNlbnQgaW5zdGVhZCBvZiB0aGUgZmlsdGVyIGNhcHMuIFRoZSB0cmFuc2Zvcm1fY2FwcygpCgkgIHZmdW5jIGNvdWxkIGRvIHRyYW5zZm9ybWF0aW9ucyB0byB0aGUgdGVtcGxhdGUgY2FwcyB0aGF0IGRvIG5vdAoJICByZXN1bHQgaW4gdGhlIHVubW9kaWZpZWQgdGVtcGxhdGUgY2Fwcy4KCjIwMTEtMDktMDcgMTQ6MDU6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGNsZWFudXAgbWFrZWZpbGVzCgkgIFJlbW92ZSBjb21tZW50ZWQgb3V0IHBhcnRzIHRoYXQgd2UgZG9uJ3QgbmVlZC4gUmVtb3ZlICJ0aGUgd2luZ28gYWRkaXRpb24iIC0gbm8KCSAgc28gdXNlZnVsIGFmdGVyIGFsbC4gTmFycm93IGRvd24gZmlsZS1nbG9icyBmb3IgcGx1Z2luIGRvY3MuCgoyMDExLTA5LTA3IDEzOjUwOjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogZXNjYXBlICUgaW4gZG9jYmxvYgoKMjAxMS0wOS0wMiAxOTo0NjowNiArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdGFzQHN0YXMuKG5vbmUpPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hhbmdpbmcgY2FwcwoJICBnc3RfcGFkX3NldF9jYXBzKCkgZG9lcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBidXQgYWRkaXRpb25hbGx5IGNhbGxzCgkgIHRoZSBwYWQncyBzZXRjYXBzIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzY1ODA3Ni4KCjIwMTEtMDktMDYgMjE6MjQ6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGEzOWViODMgdG8gMTFmMGNkNQoKMjAxMS0wOS0wNiAxNTozOTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjA1Y2Q5YSB0byBhMzllYjgzCgoyMDExLTA5LTA2IDEyOjE3OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUKCjIwMTEtMDktMDYgMTI6MTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZQoJICBQYWRzIHNob3VsZCBvbmx5IGFjY2VwdCBjYXBzIHRoYXQgYXJlIGEgc3Vic2V0IG9mIHRoZSBwYWQgY2FwcywgZS5nLgoJICB0aGV5IHNob3VsZCBhY2NlcHQgb25seSBjYXBzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gYW5kCgkgIGF0IGxlYXN0IGFsbCBmaWVsZHMgb2YgdGhlIHBhZCBjYXBzLgoJICBXaXRob3V0IHRoaXMgYSBwYWQgdGhhdCB3YW50cyBmb3IgZXhhbXBsZQoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0iCgkgIHdpbGwgYmUgaGFwcHkgdG8gYWNjZXB0CgkgICJ2aWRlby94LWgyNjQiLgoKMjAxMS0wOC0yOSAxNzowNjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogY2hhbmdlIHRvIEdTVF9ERUZJTkVfTUlOSV9PQkpFQ1RfVFlQRQoJICBBcHBlbmQgX1RZUEUgdG8gdGhlIG1hY3JvIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHNpbWlsYXIgbWFjcm9zLgoKMjAxMS0wOC0yOSAxNTozNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluaXQ6IGFkZCBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMKCSAgUmVtb3ZlIGdzdF9taW5pX29iamVjdF9yZWdpc3RlcigpIGFuZCBhZGQgYSBHU1RfREVGSU5FX01JTklfT0JKRUNUIG1hY3JvIHRvCgkgIGRlZmluZSBhIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciB0aGUgYm94ZWQgbWluaW9iamVjdC4KCSAgUmVtb3ZlIGEgYnVuY2ggb2YgY3VzdG9tIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyBhbmQgcmVwbGFjZSB0aGVtIHdpdGggdGhlCgkgIG1pbmlvYmplY3QgbWFjcm8uCgkgIFJlbmFtZSBzb21lIF9pbml0IG1ldGhvZCB0byBfcHJpdl8qX2luaXRpYWxpemUoKSBsaWtlIHRoZSByZXN0IG9mIHRoZW0uCgkgIEluc3BpcmVkIGJ5IHBhdGNoIGZyb20gSm9oYW4gRGFobGluIGFuZCBzZWUgYnVnICM2NTc2MDMKCjIwMTEtMDgtMjkgMTM6Mjc6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogYWRkIHNvbWUgX3ByaXYgcHJlZml4ZXMgdG8gcHJpdmF0ZSBtZXRob2RzCgoyMDExLTA4LTI5IDEyOjM4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaS1vYmplY3Q6IHVzZSByZWYvdW5yZWYgZGlyZWN0bHkgaW4gYm94ZWQgY29weS9mcmVlCgkgIEdMaWIgd2lsbCBub3QgY2FsbCBvdXIgY29weS9mcmVlIHdpdGggYSBOVUxMIG9iamVjdAoKMjAxMS0wOC0yNiAxNDozNzo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0bWVzc2FnZS5jCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jCgkgIGdzdC9nc3RzZWdtZW50LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmgKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKCjIwMTEtMDgtMjYgMTQ6MTg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2U6IHJlbmFtZSBhbGxvY2F0aW9uIHZtZXRob2RzCgkgIE5hbWUgdGhlIGFsbG9jYXRpb24gdm1ldGhvZCBvbiBzcmNwYWQgZGVjaWRlX2FsbG9jYXRpb24gYmVjYXVzZSBzb3VyY2UgcGFkcyB3aWxsCgkgIGhhdmUgdG8gZGVjaWRlIHdoYXQgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHdpbGwgYmUgdXNlZC4KCSAgTmFtZSB0aGUgYWxsb2NhdGlvbiB2bWV0aG9kIG9uIHNpbmtwYWRzIHByb3Bvc2VfYWxsb2NhdGlvbiBiZWNhdXNlIHRoZXkgd2lsbAoJICBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgYWxsb2NhdGlvbiBxdWVyeSB3aXRoIGEgcHJvcG9zZWQgdmFsdWVzIGZvciB1cHN0cmVhbS4KCjIwMTEtMDgtMjYgMTQ6MTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBmbGFncwoJICBSZW5hbWUgRFJPUCB0byBERUNPREVfT05MWS4KCSAgQWRkIERST1BQQUJMRSBmbGFnIHRvIG1hcmsgYnVmZmVycyB0aGF0IGNhbiBiZSBkcm9wcGVkIHRvIHNhdmUgYmFuZHdpZHRoIHdpdGhvdXQKCSAgZGVzdHJveWluZyB0aGUgc3RyZWFtLgoKMjAxMS0wOC0yNiAxNDowOTo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBkb2NzOiBhZGQgc2luY2UgMC4xMC4zNiBvbiB0aGUgbmV3IF9OT05FIGVudW0gdmFsdWVzCgoyMDExLTA4LTI2IDAwOjEzOjE2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiB1c2UgdGhlIHByb3BlciBhcmd1bWVudCBvcmRlcgoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjA2OjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICBmaWxlaW5kZXg6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjAwOjI1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVyOiB1c2UgR1NUX1RZUEVfRklORF9OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjUzOjU4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzo0OTozOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGFkZCBHU1RfVFlQRV9GSU5EX05PTkUgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjI2OjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSB0aGUgZW51bSB2YWx1ZXMgZm9yIDAgYW5kIGRvbid0IGFidXNlIG9uIGdib29sZWFuIGNvaW5jaWRlbmNlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6MDY6NTYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHV0IHRoZSBhcmd1bWVudHMgb2YgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgaW4gdGhlIHByb3BlciBvcmRlcgoKMjAxMS0wOC0yNSAyMjo0ODo1NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiB1c2UgR1NUX1BBUlNFX0ZMQUdfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjo0MjowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjI5OjQ1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1pbm9yIGNoYW5nZXMgcmVsYXRlZCB0byBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6MDU6MjYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGFkZCBHU1RfQUxMT0NfVFJBQ0VfTk9ORSBmb3IgY29uc2lzdGVuY3kgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjUyOjA1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjQ5OjI5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVzZSBHU1RfVEFHX01FUkdFX1VOREVGSU5FRCBpbnN0ZWFkIG9mIEZBTFNFCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MzA6NTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHVzZSBHU1RfU0VFS19GTEFHX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MjU6NDYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MTg6MTUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWlub3IgY2hhbmdlcyByZWxhdGVkIHRvIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTowMzo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMzowMDo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjo1MToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6NDE6MzIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6Mzc6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjoyOTo1OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJICBmb3JtYXQ6IHVzZSBHU1RfRk9STUFUX1VOREVGSU5FRCBhbmQgZmV3IGNhc3RzIHRvIEdzdEZvcm1hdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDEzOjAyOjM0ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBGaXggYm9kZ2VkIHByZXZpb3VzIGNvbW1pdAoKMjAxMS0wOC0yNiAxMjozNzo0MyArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBHc3RQYWREaXJlY3Rpb24gaW4gdGhlIHF1ZXJ5IHZmdW5jCgkgIFdpbSBzdWdnZXN0ZWQgdGhhdCB1c2luZyBHc3RQYWREaXJlY3Rpb24gaW5zdGVhZCBvZiBhIEdzdFBhZCBpbiB0aGUKCSAgYXJndW1lbnRzIHRvIHRoZSBuZXcgcXVlcnkgdmZ1bmMgd291bGQgYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyCgkgIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMjYgMTM6NDA6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVuYW1lIF9DTElQIHRvIF9EUk9QIGZsYWcKCSAgV2UgY2FuIGFsc28gdXNlIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgZnJhbWUgc2hvdWxkIGJlIGRlY29kZWQgYnV0IG5vdAoJICBkaXNwbGF5ZWQgcmVnYXJkbGVzcyBvZiB0aGUgdGhlIHNlZ21lbnQgYm91bmRhcmllcyBzbyB3ZSB1c2UgdGhlIG1vcmUgZ2VuZXJpYwoJICBfRFJPUC4KCjIwMTEtMDgtMjYgMTI6Mjg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKCjIwMTEtMDgtMjYgMTE6NDQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCB2bWV0aG9kIHRvIGNvbmZpZ3VyZSB1cHN0cmVhbSBidWZmZXJwb29sCgkgIEFkZCBhIHZtZXRob2QgdGhhdCBjYW4gYmUgaW1wbGVtZW50ZWQgdG8gaW5mbHVlbmNlIHRoZSBidWZmZXJwb29sIHRoYXQgdXBzdHJlYW0KCSAgZWxlbWVudHMgd2lsbCB1c2UuCgoyMDExLTA4LTI2IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgcGFkIGRpcmVjdGlvbiBsaWtlIG90aGVyIHZtZXRob2RzCgoyMDExLTA4LTI2IDExOjA5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oCgoyMDExLTA4LTI2IDEwOjU3OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IHNvbWUgZG9jIGZpeGVzCgoyMDExLTA4LTI1IDExOjAyOjE2ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQmFzZVRyYW5zZm9ybTogQWRkIGEgcXVlcnkgdmZ1bmMKCjIwMTEtMDctMjAgMTQ6MDU6MjcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvbid0IGFzc3VtZSBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIF9zZXRfY2FwcyBvbmx5IGdldHMgY2FsbGVkIHdoZW4gdGhlIGJ1ZmZlciBpcyBhY3R1YWxseSBwdXNoZWQsIHNvIHRoZXJlCgkgIGlzIGEgcmVhc29uYWJseSBiaWcgd2luZG93IGJldHdlZW4gd2hlbiB0aGUgaW5pdGlhbCBjYXBzIGFyZSByZXRyaWV2ZWQKCSAgYW5kIHdoZW4gdGhlIGNhcHMgYXJlIHNldCBvbiBvdXIgc3JjIHBhZC4gU28gd2UgY2FuJ3QgYXNzdW1lIHRoZSBub3QKCSAgaGF2aW5nIG5lZ290aWF0ZWQgY2FwcyBvbiBvdXIgc3JjIHBhZCBtZWFucyBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIGNhbGxlZC4KCSAgSW5zdGVhZCBzaW1wbHkgYWx3YXlzIHN1Z2dlc3QgdGhlIG5ldyBjYXBzIG9uIGJ1ZmZlcl9hbGxvYy4KCjIwMTEtMDgtMjUgMTg6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNsaXAgZmxhZwoKMjAxMS0wOC0yNSAxNjoyMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZXdvcmsgZmxhZ3MgYSBsaXR0bGUKCSAgUmVvcmRlciBidWZmZXIgZmxhZ3MgYW5kIGFkZCBzb21lIG5ldyBvbmVzLgoJICBSZW1vdmUgdGhlIG1lZGlhIHNwZWNpZmljIGZsYWdzLCB3ZSBjYW4gbm93IGVhc2lseSBkbyB0aGlzIHdpdGggdGhlIEZMQUdfTEFTVAoJICBmbGFnIGJlY2F1c2Ugd2UgZG9uJ3QgZXh0ZW5kIGZyb20gR3N0QnVmZmVyIGFueW1vcmUuCgoyMDExLTA4LTI1IDE2OjIwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBhbHdheXMgY29weSBhbGwgYnVmZmVyIGZsYWdzIHdoZW4gYXNrZWQKCSAgRG9uJ3QgdHJ5IHRvIGJlIHNtYXJ0IGFuZCBjb3B5IG9ubHkgYSBzdWJzZXQgb2YgYnVmZmVyIGZsYWcKCjIwMTEtMDgtMjUgMTY6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCjIwMTEtMDgtMjUgMTQ6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBwbHVyYWxpemUgdGhlIGJ1ZmZlciBmbGFncwoKMjAxMS0wOC0yNSAxMjozODo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBwcmVyb2xsLXF1ZXVlLWxlbiBwcm9wZXJ0eQoJICBSZW1vdmUgdGhlIHByZXJvbGwtcXVldWUtbGVuIHByb3BlcnR5IGFuZCBtb3ZlIGl0cyB2YXJpYWJsZXMgdG8gYSBwcml2YXRlCgkgIHNlY3Rpb24gc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZW0gbGF0ZXIuCgoyMDExLTA4LTI0IDEwOjQzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RvYmplY3QuYwoKMjAxMS0wOC0yMyAxODoxOTo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBlbnN1cmUgc3RhcnRfdGltZSByZXNldCB1cG9uIGZsdXNoCgoyMDExLTA4LTIzIDExOjU1OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWxzbyByZW1vdmUgdGhlIGNhc3QgYXMgdGhpcyBpcyBjYXVzaW5nIHRoZSB0cm91YmxlCgoyMDExLTA4LTIzIDExOjQxOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogdXNlIHRoZSBhdG9taWMgbWFjcm9zIHRvIGRlYWwgd2l0aCB0aGUgZ2xpYiBjaGFuZ2UgaW4gdGhlIGltcGwuCgoyMDExLTA4LTIyIDEyOjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIG9iamVjdDogbWFrZSBfcmVwbGFjZSBsaWtlIHRoZSBtaW5pb2JqZWN0IHZlcnNpb24KCjIwMTEtMDgtMjIgMTI6MzM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlci5oCgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGNhcHMuaAoJICBnc3QvZ3N0ZXZlbnQuYwoKMjAxMS0wOC0yMiAxMjoxOToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogcmVtb3ZlIG91ciBGT1VSQ0MgR1R5cGUKCSAgUmVtb3ZlIG91ciBjdXN0b20gZm91cmNjIEdWYWx1ZS4KCjIwMTEtMDgtMjEgMTQ6MDc6MDggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IG1ha2UgZ3N0X29iamVjdF9yZXBsYWNlKCkgYXRvbWljCgoyMDExLTA4LTIwIDE0OjA3OjU1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGNsYXJpZmljYXRpb24gZm9yIGVsZW1lbnQgZG9jcwoJICBEb24ndCBzdWdnZXN0IGRlcHJlY2F0ZWQgbWV0aG9kIGluIHRoZSBkZXNjdGlvbiBkb2NzIGFuZCB0cnkgdG8gYmUgbW9yZSBoZWxwZnVsCgkgIGluIG90aGVyIHBsYWNlcyBieSBzdWdnZXN0aW5nIHJlbGF0ZWQgZnVuY3Rpb25zLgoKMjAxMS0wOC0yMCAwOTo1NjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkIGRvY3MKCSAgTWFrZSBpdCBtb3JlIG9idmlvdXMgdGhhdCBvbmUgc2hvdWxkIHBhc3MgdGhlIHRlbXBsYXRlIG5hbWUuCgoyMDExLTA4LTE4IDIwOjQ2OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdXNlID09IGluIGRlYnVnIHN0cmluZwoJICBJdCBtZXNzZXMgdXAgR1NUX0RFQlVHPSo6NSBtYWtlIGZvby9iYXIudmFsZ3JpbmQsIGJlY2F1c2UKCSAgb3VyIE1ha2VmaWxlIGxvb2tzIGZvciAnPT0nIGFzIG1hcmtlciBvZiB2YWxncmluZCBvdXRwdXQuCgoyMDExLTA4LTE4IDIwOjQ0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGNyYXNoIG9uIHNlZWsgZnJvbSBzdHJlYW1pbmcgdGhyZWFkIG9uIG5ld3NlZ21lbnQgZXZlbnQKCSAgRXZlbnQgaWYgaXQncyBub3QgYWxsb3dlZCwgd2UgY2FuIGVhc2lseSBwcmV2ZW50IGl0LCBzbyBsZXQncyBkbwoJICB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NzcxCgoyMDExLTA4LTE3IDE3OjU2OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBtZXRob2QgdG8gZml4YXRlIG9uZSBmaWVsZAoKMjAxMS0wOC0xNyAxNzoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24KCSAgQWRkIGEgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24gd2hpY2ggZG9lcyBnc3RfY2Fwc19maXhhdGUoKSBiZWNhdXNlCgkgIGdzdF9wYWRfZml4YXRlKCkgZG9lcyBub3QgZG8gdGhhdCBhbnltb3JlLgoKMjAxMS0wOC0xNyAwOToyNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGltcHJvdmUgc29tZSBkb2NzCgoyMDExLTA4LTE2IDE4OjI5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmV0dXJuIHByb2Nlc3NlZCBudW1iZXIgb2YgYnl0ZXMKCSAgTWFrZSBfZmlsbCwgX2V4dHJhY3QgYW5kIF9tZW1zZXQgcmV0dXJuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2VyZQoJICBoYW5kbGVkIGluIGNhc2UgdGhlIGJ1ZmZlciBzaXplIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuCgoyMDExLTA4LTE2IDE3OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBlbGVtZW50IGZhY3RvcnkgZG9jdW1lbnRhdGlvbgoKMjAxMS0wOC0xNiAxNzozMjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBidWZmZXI6IHJlbmFtZSBQUkVST0xMIC0+IExJVkUgZmxhZwoJICBSZW5hbWUgdGhlIEdTVF9CVUZGRVJfRkxBR19QUkVST0xMIHRvIEdTVF9CVUZGRVJfRkxBR19MSVZFIGFuZCBnaXZlIHRoZSBuZXcgZmxhZwoJICBhIG1lYW5pbmcuIFRoZSBvbGQgUFJFUk9MTCBmbGFnIG5ldmVyIGhhZCBhIGNsZWFyIG1lYW5pbmcuCgoyMDExLTA4LTE1IDIxOjA1OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjb21waWxlciB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQwoJICBUaGUgTUFYIG1hY3JvIGV4cGFuZHMgdG8gY29kZSB0aGF0IGNoZWNrcyBpZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIGlzIDwgMC4KCSAgRml4ZXMgd2FybmluZyAjMTg2OiBwb2ludGxlc3MgY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBpbnRlZ2VyIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTozOToyMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTowNzo0OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0c3RhdGU6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzo0MjoyNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjMzOjQzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgR3N0R0Vycm9yIGNvZGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6MjY6MTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHVzZSBHU1RfU1RBVEVfVk9JRF9QRU5ESU5HIGZvciBHc3RTdGF0ZSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgYSB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjo0ODo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZGVmaW5lIEdTVF9DQVBTX0ZMQUdTX05PTkUgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgZW51bWVyYXRpb25zCgkgIFVzZSB0aGVtIHRvIGZpeCB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIHdpdGggSUNDLgoJICBBUEk6IEdTVF9DQVBTX0ZMQUdTX05PTkUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjoyOTo0NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVzZSBHc3REZWJ1Z0xldmVsIGVudW0gdHlwZSB0byBmaXggYSB3YXJuaW5nIGJ1aWxkaW5nIHdpdGggSUNDCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTUgMTY6NDU6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBmaXhhdGUgY2FwcyBiZWhhdmUgbGlrZSBvdGhlciBmdW5jdGlvbnMKCSAgSW5zdGFsbCBhIGRlZmF1bHQgZml4YXRlIGNhcHMgZnVuY3Rpb24gb24gcGFkcyBsaWtlIGFsbCB0aGUgb3RoZXIgcGFkIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMTUgMTY6NDU6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0wOC0xNSAxNDo0MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDgtMTUgMTQ6NDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgY2FwczogYWRkIGZpeGF0ZSBmdW5jdGlvbgoJICBBZGQgYSBmaXhhdGUgZnVuY3Rpb24gYW5kIHVzZSBpdCBpbiBnc3RwYWQuYwoKMjAxMS0wOC0xNSAxNDozMjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogYWRkIGZ1bmN0aW9uIHRvIGZpeGF0ZQoJICBBZGQgYSBmdW5jdGlvbiB0byBmaXhhdGUgYSBzdHJ1Y3R1cmUgYW5kIHVzZSBpdCBmb3IgdGhlIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uCgkgIGluIGdzdHBhZC5jLgoKMjAxMS0wOC0xNSAxMzoxNzo0NCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgRmFyc2lnaHQgYW5kIE5pY2Ugc3VwcG9ydAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NTU3CgoyMDExLTA4LTE1IDE0OjE3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgTWFrZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiBiZWhhdmUgbGlrZSBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyB3aXRoIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4gRG9uJ3QgdHJ5IHRvIGNoYWluIHVwIHRvIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gaXQgd2FzCgkgIHNldCB0byBOVUxMIGV4cGxpY2l0bHkgYnV0IHJldHVybiBGQUxTRSBpbnN0ZWFkLgoJICBGaXggc29tZSBkb2NzCgoyMDExLTA4LTE1IDEzOjI0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IHNvbWUgbWFjcm9zCgkgIFJlbW92ZSBhIHJhdGhlciB1c2xlc3MgbWFjcm8gdG8gY2hlY2sgaWYgYSBwYWQgbW9kZSBpcyBhY3RpdmUgYW5kCgkgIGFkZCBHU1RfUEFEX0lTX0FDVElWRSgpLgoKMjAxMS0wOC0xNSAxMjoxODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wOC0xNSAxMjoxNjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW1vdmUgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKCkKCSAgUmVtb3ZlIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcygpLCBpdCBkb2VzIG5vdCByZWFseSBkbyB3aGF0IGl0IHNheXMsCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIHJldHVybnMgdGhlIGN1cnJlbnRseSBuZWdvdGlhdGVkIGNhcHMgb24gdGhlIHBhZAoJICBjb3JyZWN0bHkuCgoyMDExLTA4LTEyIDE5OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGRlYWRsb2NrIGluIGVycm9yIHBhdGgKCSAgRG9uJ3QgbG9jayB0aGUgc2FtZSBsb2NrIHR3aWNlLiBTcG90dGVkIGJ5IEpvc2VwIFRvcnJlIFZhbGxlcy4KCjIwMTEtMDgtMTIgMTI6NDU6MDEgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggZ3N0X2l0ZXJhdG9yX25leHQoKSBlbGVtZW50IGFubm90YXRpb24KCjIwMTEtMDgtMTEgMDk6MzE6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBQV0cKCSAgUkJHIC0+IFJHQi4gU3BvdHRlZCBieSBXaWxsIFRob21wc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MzI2CgoyMDExLTA4LTExIDEwOjA5OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiByZW1vdmVkIG5vbi1zZW5zZSBjb21tZW50CgoyMDExLTA4LTEwIDE3OjA3OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmgKCSAgZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmMKCSAgdG9vbHMvZ3N0LXJ1bi5jCgoyMDExLTA4LTA4IDE5OjM2OjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBtb3ZlIHV0Zi04IHZhbGlkYXRpb24gdG8gcmVnaXN0cnkgc2F2aW5nIHRpbWUKCSAgSW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdmFsaWQgdXRmLTggZWxlbWVudC1kZXRhaWxzIGV2ZXJ5IHRpbWUgd2UgY3JlYXRlCgkgIGVsZW1lbnRzIChmcm9tIHBsdWdpbi1pbml0IG9yIHJlZ2lzdHJ5KSwgZG8gaXQgYmVmb3JlIHdlIHNhdmUgdGhlIHJlZ2lzdHJ5LgoJICBGaXhlcyAjNjU2MTkzLgoKMjAxMS0wOC0xMCAxMTowMTo1OCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEZpeCBhbmQgY2xhcmlmeSBkZWJ1ZyBzdGF0ZW1lbnRzCgkgIEZpeGVzIGJ1aWxkIG9uIE1hY09TWAoJICBTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCjIwMTEtMDgtMDUgMTA6NTk6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IENsYXJpZnkgZG9jCgoyMDExLTA4LTA3IDA5OjE0OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgZG9jczogZml4IGhlbGxvd29ybGQgY29tcGlsZSBjb21tYW5kIGxpbmUgZm9yIG5ld2VyIGdjYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MDkyCgoyMDExLTA4LTA2IDE4OjIwOjUxICswMjAwICBTaGF1biBIb29wZXMgPGhvb3BlczAxQHN0dWRlbnQudXdhLmVkdS5hdT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGltcHJvdmUgZG90IGZpbGUgZmxvdyBsYXlvdXQKCSAgSXRlcmF0ZSBzb3VyY2UtIGFuZCBzaW5rLXBhZHMgc2VwYXJhdGVseSB0byBlbnN1cmUgdGhhdCB0aGUgZ3JhcGggcmVmbGVjdHMgdGhlCgkgIHVwc3RyZWFtL2Rvd25zdHJlYW0gb3JkZXIuIEZpeGVzICM2NDMyNjkKCjIwMTEtMDgtMDYgMTQ6MTc6NTAgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZ3N0cmVhbWVyLnNwZWM6IG1ha2UgYnVpbGRhYmxlIGFuZCBwYXJhbGxlbAoKMjAxMS0wOC0wNSAxMjoxMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiBtYWtlIHVudmVyc2lvbmVkIHdyYXBwZXIgbG9vayBmb3IgLTAuMTAgdG9vbHMgb25seQoJICBEb24ndCB3YW50IChpbmNvbXBhdGlibGUpIDAuMTEgdG9vbHMgdG8gYmUgcGlja2VkIHVwIGJ5IGFjY2lkZW50LgoKMjAxMS0wOC0wNCAxODowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogYWRkIGFsbG9jIHZtZXRob2QKCSAgTWFrZSBhbiBhbGxvYyB2bWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgb3IgY2FsbCB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZXkgd2FudC4KCjIwMTEtMDgtMDQgMTc6MjY6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wOC0wNCAxNzoxMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjbGVhbnVwcyBhbmQgbWFyayByZWNvbmZpZ3VyZQoJICBEb24ndCBhYnVzZSB0aGUgcmVzdWx0IHZhcmlhYmxlLgoJICBNYXJrIHRoZSBzcmNwYWQgd2l0aCBhIHJlY29uZmlndXJlIHNvIHRoYXQgbmVnb3RpYXRpb24gaGFwcGVucy4KCjIwMTEtMDgtMDQgMTc6MTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbWV0aG9kIHRvIG1hcmsgcmVjb25maWd1cmUKCjIwMTEtMDgtMDQgMTY6NTY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZQoJICBSZW1vdmUgdGhlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiwgaXQgY2F1c2VzIGRhdGEgdHJhbnNmZXIKCSAgYW5kIGJ1ZmZlcnBvb2wgbmVnb3RpYXRpb24sIHdoaWNoIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBkb25lLiBTaW5jZSB3ZSBoYXZlIHRoZQoJICByZWNvbmZpZ3VyZSBzdGF0ZSBvbiB0aGUgcGFkLCB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdpbGwgZG8gdGhlIG5lZ290aWF0aW9uIGFzCgkgIHNvb24gYXMgaXQgZ2V0cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCjIwMTEtMDgtMDQgMTY6MzQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGV4cG9zZSBzZXRfY2FwcyBtZXRob2QKCSAgRXhwb3NlIGEgcHJldmlvdXNseSBzdGF0aWMgbWV0aG9kIHNvIHRoYXQgY3VzdG9tIG5lZ290aWF0ZSBpbXBsZW1lbnRhdGlvbiBjYW4KCSAgY2FsbCBpdCBhbmQgZG8gdGhlIHJpZ2h0IHRoaW5nLgoKMjAxMS0wOC0wNCAxMzo0ODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQQVVTRUQ8LT5QTEFZIGRvZXNuJ3QgY2hhbmdlIHBvb2wgc3RhdGUKCSAgRG9uJ3QgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgYnVmZmVycG9vbCB3aGVuIGdvaW5nIGJldHdlZW4gUEFVU0VEIGFuZCBQTEFZSU5HLAoJICBpdCB3aWxsIGRlYWxsb2MgYW5kIHJlYWxsb2MgYWxsIGJ1ZmZlcnMsIHdoaWNoIGlzIGNsZWFybHkgdG9vIGludmFzaXZlLiBXZSB3aWxsCgkgIG5lZWQgdG8gYWRkIHNvbWUgb3RoZXIgd2F5IG9mIHVuYmxvY2tpbmcgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA4LTA0IDExOjAwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBmaXggZGVmYXVsdCBhbGlnbm1lbnQKCSAgQSAwIGFsaWdubWVudCBpcyB0aGUgZGVmYXVsdC4KCjIwMTEtMDgtMDQgMTA6NTQ6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIGdzdF9idWZmZXJfcG9vbF9pc19hY3RpdmUoKQoKMjAxMS0wOC0wMyAxMTo1Nzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjAgPT09CgoyMDExLTA4LTAyIDIwOjU1OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExCgoyMDExLTA4LTAzIDExOjA0OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmctdG8tMC4xMTogQWRkIHNlY3Rpb24gYWJvdXQgR3N0SXRlcmF0b3IKCjIwMTEtMDgtMDEgMTg6MTI6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBkb24ndCBhZGQgdGhlIHNhbWUgb3B0aW9uIHR3aWNlCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIG9ubHkgYWRkIGFuIG9wdGlvbiB0byB0aGUgYXJyYXkgb25jZS4KCjIwMTEtMDctMzAgMTQ6MDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgYW4gb3B0aW9uCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhbiBvcHRpb24gaXMgc3VwcG9ydGVkIG9uIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wNy0yOSAxNzoxMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBvcHRpb25zIEFQSSB0byBidWZmZXJwb29sCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gcXVlcnkgdGhlIHN1cHBvcnRlZCBvcHRpb25zIG9mIGEgYnVmZmVycG9vbCBhbmQgZW5hYmxlCgkgIG9wdGlvbnMuIFRoaXMgaXMgYSBiaXQgbW9yZSBnZW5lcmljIHRoYW4gdGhlIEFQSSB0byBlbmFibGUgbWV0YWRhdGEuIFRoZSBwdXJwb3NlCgkgIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYWRkIG5ldyBjdXN0b20gY29uZmlnIG9wdGlvbnMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb2YKCSAgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBzdXBwb3J0ZWQuCgoyMDExLTA3LTI4IDEyOjExOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGRvbid0IHVzZSBHX0NPTlNUX1JFVFVSTgoJICBJdCdzIGJlZW4gZGVwcmVjYXRlZCBpbiBuZXdlciBHTGliIHZlcnNpb25zCgoyMDExLTA3LTI4IDEyOjAxOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZm9yIHBvc2l0aW9uL2R1cmF0aW9uIHF1ZXJ5IEFQSSBjaGFuZ2UKCjIwMTEtMDctMjcgMDA6Mjg6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHRlc3RzOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjI4OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBsdWdpbnM6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6MjY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoxNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3Q6IGZpeCBhd2t3YXJkIGRlc3RfZm9ybWF0IGlub3V0IHBhcmFtZXRlciBpbiBxdWVyeSB1dGlsaXR5IGZ1bmN0aW9ucwoJICBUaGUgaWRlYSB3YXMgb3JpZ2luYWxseSB0aGF0IGlmIG9uZSBwYXNzZWQgJmRlc3RfZm10IHdpdGgKCSAgZGVzdF9mbXQ9R1NUX0ZPUk1BVF9ERUZBVUxULCB0aGVuIHRoZSBjb2RlIGFuc3dlcmluZyB0aGUgcXVlcnkKCSAgY291bGQgY2hhbmdlIGRlc3RfZm10IHRvIHRoZSBhY3R1YWwgZGVmYXVsdCBmb3JtYXQgdXNlZC4gSG93ZXZlciwKCSAgaW4gbW9yZSB0aGFuIGhhbGYgYSBkZWNhZGUgb2YgR1N0cmVhbWVyIDAuMTAgbm8gcGllY2Ugb2YgY29kZSBpbgoJICBHU3RyZWFtZXIgaGFzIGV2ZXIgdXNlZCB0aGF0IGZlYXR1cmUsIG5vciBhcmUgdGhlcmUgdGhhdCBtYW55CgkgIHVzZXJzIG9mIHRoaXMgQVBJIHRoYXQgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgZm9ybWF0IHJldHVybmVkCgkgIGlzIHRoZSBvcmlnaW5hbCBmb3JtYXQgcGFzc2VkIGJlZm9yZSB1c2luZyB0aGUgdmFsdWVzIHJldHVybmVkLgoJICBBbHNvLCBpdCdzIGp1c3QgYW5ub3lpbmctdG8tdXNlIEFQSSBpbiBpdHMgb3duIHJpZ2h0LgoJICBGb3IgYWxsIHRoZXNlIHJlYXNvbnMsIG1ha2UgaXQgc28gdGhhdCB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzCgkgIHBhc3NlZCBkaXJlY3RseSBhbmQgY2FuJ3QgYmUgY2hhbmdlZCBieSB0aGUgZWxlbWVudCBxdWVyaWVkLgoKMjAxMS0wNy0yNyAxMjo1MDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDctMjcgMTI6NDk6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIG1vcmUgY29tbWVudHMKCjIwMTEtMDctMjcgMTI6NDU6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhbHNvIHBhc3MgYWxsb2NhdGlvbiBxdWVyeSBpbiBpbl9wbGFjZQoJICBXaGVuIHdlIGFyZSBkb2luZyBhbiBpbl9wbGFjZSB0cmFuc2Zvcm0sIGRvbid0IGRvIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJ1dCBsZXQKCSAgdGhlIHVwc3RyZWFtIGVsZW1lbnQgZGVjaWRlLgoKMjAxMS0wNy0yNiAyMjo0MTo1OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYmFzZTogYWRkIG1pc3NpbmcgKG91dCkgYW5ub3RhdGlvbiBmb3IgYnl0ZSByZWFkZXIvd3JpdGVyIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1MzgxCgoyMDExLTA3LTI3IDEwOjA5OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGctaSBhbm5vdGF0aW9uIGZvciBfY3JlYXRlKCkgYW5kIF9tYWtlKCkgdG8gYWxsb3cgTlVMTCBvYmplY3QgbmFtZXMKCjIwMTEtMDctMjYgMTg6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbgoJICBSZWZhY3RvciBjYWxsaW5nIHRoZSBHRVRDQVBTIGZ1bmN0aW9uIGFuZCBjaGVja3MuCgkgIE1vdmUgdGhlIGZpbHRlciBjb2RlIGluIG9uZSBwbGFjZS4KCSAgV2hlbiB1c2luZyBmaXhlZCBwYWQgY2FwcywgZ2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBjYXBzIGFuZCB0aGVuIGZhbGxiYWNrCgkgIHRvIHRoZSBHRVRDQVBTIGZ1bmN0aW9uLiBXZSB1c2VkIHRvIHNpbXBseSBpZ25vcmUgdGhlIEdFVENBUFMgZnVuY3Rpb24sIHdoaWNoCgkgIHJlc3VsdGVkIGluIHRyYW5zZm9ybSBlbGVtZW50cyByZXR1cm5pbmcgdGhlIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBkb2luZyB0aGUKCSAgY2FwcyB0cmFuc2Zvcm0uCgoyMDExLTA3LTI2IDE1OjQzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgdXBkYXRlIGNhcHMgd2hlbiBjaGFuZ2VkCgkgIE9ubHkgY2FsbCB0aGUgZXZlbnQgZnVuY3Rpb24gd2l0aCB0aGUgY2FwcyBldmVudCB3aGVuIHRoZSBjYXBzIGNoYW5nZWQuCgoyMDExLTA3LTI2IDE0OjM3OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wNy0yNiAxMjoyMTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGl0IGVhc3kgdG8gb3ZlcnJpZGUgdGhlIHBhZCBxdWVyeQoJICBBZGQgYSB2bWV0aG9kIHRvIGhhbmRsZSB0aGUgcGFkIHF1ZXJ5LgoJICBJbnN0YWxsIGEgZGVmYXVsdCBoYW5kbGVyIGZvciB0aGUgcGFkIHF1ZXJ5LgoJICBBZGQgYSB2bWV0aG9kIHRvIHNldHVwIHRoZSBhbGxvY2F0aW9uIHByb3BlcnRpZXMuCgkgIFVzZSB0aGUgbmV3IHF1ZXJ5IGZ1bmN0aW9uIGluIGZpbGVzaW5rCgoyMDExLTA3LTI2IDEyOjIwOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGltcHJvdmUgZG9jcwoKMjAxMS0wNy0yNiAxMjoyMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBqdXN0IGJlY2F1c2UKCjIwMTEtMDctMjUgMTU6MjE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNy0yNSAxMjo1MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogYXZvaWQgcmFjZSBpbiBidWZmZXJwb29sIHJlbGVhc2UKCSAgQXZvaWQgcGxheWluZyB3aXRoIHRoZSByZWZjb3VudCB0byBkZWNpZGUgd2hlbiBhIGJ1ZmZlciBoYXMgYmVlbiByZWN5Y2xlZCBieSB0aGUKCSAgZGlzcG9zZSBmdW5jdGlvbi4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSB0aGVuIHRlbXBvcmFyaWx5IGNhbiBoYXZlIGEgYnVmZmVyIHdpdGgKCSAgYSByZWZjb3VudCA+IDEgYmVpbmcgYWNxdWlyZWQgZnJvbSB0aGUgcG9vbCwgd2hpY2ggaXMgbm90IHdyaXRhYmxlLiBJbnN0ZWFkIHVzZQoJICBhIHNpbXBsZSBib29sZWFuIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBkaXNwb3NlIGZ1bmN0aW9uIHRvIGluZm9ybSB0aGUgY2FsbGVkCgkgIHRoYXQgdGhlIG9iamVjdCB3YXMgcmVjeWNsZWQgb3Igbm90LgoKMjAxMS0wNy0yNSAxMjo0OToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgREVCVUcgaW5zdGVhZCBvZiBFUlJPUiBmb3IgbG9nZ2luZwoJICBEb24ndCB1c2UgdGhlIEVSUk9SIGxvZyBjYXRlZ29yeSBiZWNhdXNlIHRoZSBhbGxvY2F0aW9uIGZhaWx1cmUgbWlnaCBvbmx5IGJlCgkgIGJhY2F1c2Ugb2YgYSBzdGF0ZSBjaGFuZ2UuCgoyMDExLTA3LTI1IDEyOjE0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogc3RhcnQgd2l0aCByYWlzZWQgY29udHJvbCBzb2NrZXQKCSAgSW4gdGhlIGluYWN0aXZlIHN0YXRlLCB0aGUgY29udHJvbCBzb2NrZXQgc2hvdWxkIGJlIGluIHRoZSByYWlzZWQgc3RhdGUsIHdlIHdpbGwKCSAgcmVsZWFzZSBpdCB3aGVuIHdlIHN0YXJ0LgoKMjAxMS0wNy0yNCAxMToyNDo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgcHdkOiBkaXNjb250aW5vdXMgZXZlbnQgLT4gbmV3c2VnbWVudCBldmVudAoJICBGaXggYSAwLjggbGVmdG92ZXIgYXMgbWVudGlvbmVkIG9uIGJ1ZyAjNjIxMTIxLgoKMjAxMS0wNy0yNCAwOTowNToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHRhbGsgYWJvdXQgdGhlIGJhc2V0cmFuc2Zvcm0gc2lua19ldmVudCB2bWV0aG9kCgoyMDExLTA3LTIzIDA4OjAwOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogZml4IGJ1aWxkIGZhaWx1cmUgZHVlIHRvIGNvbXBpbGVyIHdhcm5pbmcKCSAgUHJlc3VtYWJseSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTE1NQoKMjAxMS0wNy0yMiAyMToxNzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggc2luayBldmVudCBoYW5kbGluZwoJICBJbXBsZW1lbnQgdGhlIHNpbmsgZXZlbnQgaGFuZGxpbmcgbGlrZSB0aGUgc3JjIGV2ZW50IGhhbmRsZXIuIE1ha2UgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gcGFyc2UgYW5kIGZvcndhcmQgdGhlIGV2ZW50LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5CgkgIHJldHVybiBhbiBlcnJvciB2YWx1ZSBmcm9tIHRoZSBldmVudCBoYW5kbGVyLgoKMjAxMS0wNy0yMiAxOToxOTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBoYW5kbGUgZmFpbHVyZXMKCSAgSGFuZGxlIGZhaWx1cmUgdG8gYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA3LTIyIDE5OjExOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDExLTA3LTIxIDE4OjUwOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIHJlc2V0X2J1ZmZlciB2bWV0aG9kCgkgIEFkZCBhIHZtZXRob2QgdG8gcmVzZXQgYSBidWZmZXIgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLiBBZGQgYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHRoYXQgcmVzZXRzIHRoZSBmbGFncywgdGltZXN0YW1wcyBhbmQgb2Zmc2V0cy4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoKMjAxMS0wNy0yMSAxNzo0MjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiBSZW1vdmUgcmVmIGluIHBhc3N0aHJvdWdoCgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgdG8gaGF2ZSB0byByZXR1cm4gYSByZWYgdG8gdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUuIFRoaXMgc2F2ZXMgYSBmZXcgcmVmL3VucmVmIGN5Y2xlcyBhbmQgZml4ZXMgYW5vdGhlciAwLjExCgkgIEZJWE1FLgoKMjAxMS0wNy0yMSAxNzoyOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBuZXcgIGNvcHlfbWV0YWRhdGEgdm1ldGhvZAoJICBNYWtlIGEgbmV3IGNvcHlfbWV0YWRhdGEgdm1ldGhvZCBhbmQgbW92ZSB0aGUgY29kZSB0byBjb3B5IHRoZSB0aW1lc3RhbXBzLCBmbGFncwoJICBhbmQgb2Zmc2V0cyBpbnRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGdpdmUgdGhlCgkgIHN1YmNsYXNzZXMgYSBjaGFuY2UgdG8gb3ZlcnJpZGUgdGhlIGNvcHkgbWV0aG9kLgoKMjAxMS0wNy0yMSAxNjo0OToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoKMjAxMS0wNy0yMSAxNjozOTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGF2b2lkIGludGVybWVkaWF0ZSBtZXRob2QKCSAgU2ltcGx5IGNhbGwgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBtZXRob2QgaW5zdGVhZCBvZiBjYWxsaW5nIGFuIGludGVybWVkaWF0ZQoJICBmdW5jdGlvbi4KCjIwMTEtMDctMjEgMTY6MzA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSB0aGUgbWV0YWRhdGEgY29weSBjb2RlCgkgIE1vdmUgdGhlIG1ldGFkYXRhIGNvcHkgY29kZSB0byB0aGUgZGVmYXVsdCBwcmVwYXJlX291dHB1dF9idWZmZXIgaW1wbGVtZW50YXRpb24uCgoyMDExLTA3LTIxIDE1OjQ5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGNvZGUKCSAgTW92ZSB0aGUgY29kZSBmb3IgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gdGhpcyBhbGxvd3MKCSAgdXMgdG8gc2ltcGxpZnkgc29tZSB0aGluZ3MgYW5kIGhhdmUgc3ViY2xhc3NlcyBjYWxsIGludG8gdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gd2hlbiBuZWVkZWQuCgoyMDExLTA3LTIxIDE1OjQ4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgZ2V0IHNpemUgZm9yIGRlYnVnCgoyMDExLTA3LTIxIDE0OjE4OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogZml4IGNvbW1lbnQgYW5kIHdhcm4KCSAgRW1pdCBhIHdhcm5pbmcgaW4gdGhlIGRlYnVnIGxvZyB3aGVuIHNvbWV0aGluZyBzZWVtcyB3ZWlyZC4KCjIwMTEtMDctMjEgMTQ6MTQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBnZXQgY2FwcyBmb3Igc2l6ZSB0cmFuc2Zvcm0KCSAgRGVsYXkgZ2V0dGluZyB0aGUgY2FwcyB1bnRpbCB3ZSBuZWVkIHRvIGNhbGwgdGhlIHRyYW5zZm9ybV9zaXplIGZ1bmN0aW9uLgoKMjAxMS0wNy0yMSAxMzo1NjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiByZW1vdmUgdXNlbGVzcyB2YXJpYWJsZXMgZnJvbSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgUmVtb3ZlIHRoZSBjYXBzIGFuZCBzaXplIGZyb20gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4gd2l0aAoJICBidWZmZXJwb29scyBhbmQgY2Fwc25lZ28gZG9uZSBkaWZmZXJlbnRseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGluIG1vc3QgY2FzZXMgYW5kCgkgIGlmIHdlIGRvLCB3ZSBjYW4gc2ltcGx5IHVzZSB0aGUgdHJhbnNmb3JtX3NpemUgZnVuY3Rpb24gYW5kIGdldCB0aGUgY2FwcyBmcm9tCgkgIHRoZSBzcmNwYWQuCgoyMDExLTA3LTE4IDE3OjIyOjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBjbGFyaWZ5IGNsb2NrcyBkb2NzIGluIG1hbnVhbAoJICBBZnRlciBhIHF1ZXN0aW9uIG9uIHRoZSBtYWlsaW5nIGxpc3QsIG1lbnRpb24gdGhhdCAqZmx1c2hpbmcqIHNlZWtzIHJlc2V0IHRoZQoJICBydW5uaW5nIHRpbWUuCgoyMDExLTA3LTE2IDIyOjAwOjE1ICswMzAwICBSYWx1Y2EgRWxlbmEgUG9kaXVjIDxyYWx1Y2FlbGVuYTE5ODVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IHJlbW92ZWQgZG91YmxlIG5lZ2F0aW9uIGluIGV2ZW50L21lc3NhZ2Ugc2VxIG51bSBkZXNjcmlwdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NzUxCgoyMDExLTA3LTE2IDEyOjIxOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSBub24tQVNDSUkgY2hhcnMgaW4gZmlsZW5hbWVzIGFyZSBlc2NhcGVkIHdoZW4gY3JlYXRpbmcgVVJJcyBmcm9tIHRoZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDY3MwoKMjAxMS0wNy0xNSAxNjowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBhY2NpZGVudGFsbHkgZGlzYWJsZSB0aGUgcG9vbAoJICBXaGVuIHdlIHNldCBhIHBvb2wgYW5kIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBvbGQgcG9vbCwgZG9uJ3QgZGlzYWJsZSB0aGUgcG9vbC4KCjIwMTEtMDctMTUgMTM6Mjc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBjYWxsIHJlbGVhc2VfYnVmZmVyIGFmdGVyIGFsbG9jCgkgIEFmdGVyIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIsIGNhbGwgdGhlIHJlbGVhc2VfYnVmZmVyIHZtZXRob2QgdG8gcHV0IHRoZSBuZXcKCSAgYnVmZmVyIGluIHRoZSBwb29sIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCB0aGUgcG9vbCB1c2VzIHRoZSBkZWZhdWx0CgkgIHJlbGVhc2VfbWV0aG9kIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wNy0xNSAxMTo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgZmx1c2hpbmcKCjIwMTEtMDctMTUgMTE6NTE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlCgoyMDExLTA3LTE0IDEyOjQ1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoKMjAxMS0wNy0xMyAxMTozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1bnNldCBQTEFZSU5HIHRyYW5zaXRpb24gZmxhZyB3aGVuIHRyYW5zaXRpb24gY29tcGxldGVkCgoyMDExLTA3LTEyIDE0OjA3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCByZXNpemUgZnVuY3Rpb24gc29tZSBtb3JlCgkgIERvbid0IHJlbW92ZSBtZW1vcnkgYmxvY2tzIGZyb20gdGhlIGJ1ZmZlciB3aGVuIHdlIGNsaXAgYW5kIHJlc2l6ZSwgaW5zdGVhZCBzZXQKCSAgdGhlIG1lbW9yeSBvZmZzZXQgYW5kIHNpemUgdG8gMC4gVGhpcyBhbGxvd3MgdXMgdG8gbWFrZSB0aGUgYnVmZmVyIGxhcmdlciBhZ2FpbgoJICBsYXRlci4KCjIwMTEtMDctMTIgMTM6NDA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIHNpemUgaGFuZGxpbmcKCSAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgbXVsdGlwbGUgZW1wdHkgbWVtb3J5IGJsb2NrcyBhcmUgaW4gdGhlIGJ1ZmZlci4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMTEtMDctMTIgMTI6MDA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBzb21lIG1vcmUKCSAgQWRkIG1vcmUgZGVidWcuCgkgIEFsb3cgcmVzaXplIHRvIDAgYnl0ZXMuCgkgIERvIGNsaXBwaW5nIGNvcnJlY3RseS4KCSAgQWRkIG1vcmUgdW5pdCB0ZXN0cy4gQWxzbyBhZGQgYSBmYWlsaW5nIHRlc3Q6IHdoZW4gd2UgcmVzaXplIHRvIDAgYW5kIHRoZW4KCSAgdHJ5IHRvIHJlc2l6ZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzaXplIGl0IGZhaWxzIGJlY2F1c2UgdGhlIG1lbW9yeSB3YXMKCSAgcmVtb3ZlZC4KCjIwMTEtMDctMTEgMTg6MDA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IG5lZ2F0aXZlIG9mZnNldHMgc29tZSBtb3JlCgkgIEFsbG93IGZvciBuZWdhdGl2ZSBvZmZzZXRzIHdoZW4gZG9pbmcgbWVtb3J5IGNvcHkgYW5kIHNoYXJlLgoJICBBZGQgZmFzdCBwYXRoIGluIHRoZSBfZ2V0X3NpemVzKCkgZnVuY3Rpb24uCgkgIEZpeCByZXNpemUgZm9yIG5lZ2F0aXZlIG9mZnNldCBhbmQgZXhwYW5kaW5nIHRoZSBidWZmZXIuCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgoyMDExLTA3LTExIDE2OjQzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBkZWZzIGZvciBuZXcgbWV0aG9kcwoKMjAxMS0wNy0xMSAxNjo0Mjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBiZXR0ZXIKCjIwMTEtMDctMTEgMTY6MTc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBhcGkgdG8gZ2V0IHRoZSBjdXJyZW50IG1lbW9yeSBvZmZzZXQKCSAgQWxzbyByZXR1cm4gdGhlIG9mZnNldCBpbiBhIEdzdE1lbW9yeSBibG9jayB3aXRoIHRoZSBnZXRfc2l6ZXMoKSBtZXRob2QuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgaG93IG11Y2ggcHJlZml4IHRoZXJlIGlzIHVudXNlZC4KCSAgQ2hhbmdlIHRoZSByZXNpemUgZnVuY3Rpb24gc28gdGhhdCBhIG5lZ2F0aXZlIG9mZnNldCBjYW4gYmUgZ2l2ZW4uIFRoaXMgd291bGQKCSAgbWFrZSBpdCBwb3NzaWJsZSB0byByZXNpemUgdGhlIGJ1ZmZlciBzbyB0aGF0IHRoZSBwcmVmaXggYmVjb21lcyBhdmFpbGFibGUuCgkgIEFkZCBnc3RfYnVmZmVyX2dldF9zaXplcygpIHRvIHJldHVybiB0aGUgb2Zmc2V0IGFuZCBtYXhzaXplIGFzIHdlbGwgYXMgdGhlIHNpemUuCgkgIEFsc28gY2hhbmdlIHRoZSBidWZmZXIgcmVzaXplIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiBzcGVjaWZ5IGEgbmVnYXRpdmUgb2Zmc2V0CgkgIHRvIHJlbW92ZSBwcmVmaXggYnl0ZXMuCgoyMDExLTA3LTExIDE0OjQwOjA3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBzb21lIG1lbW9yeSB3cmFwcGVkIGJ1ZmZlciBhbGxvY2F0aW9uIGhlbHBlcnMKCjIwMTEtMDctMTEgMTI6MTE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwIGhlYWRlcnMKCjIwMTEtMDctMTEgMTE6NDA6MDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlYXQgaW5jb21pbmcgY2FwcyBldmVudAoJICAuLi4gYXMgaXQgaXMgdHlwaWNhbGx5IHVwIHRvIGJhc2VjbGFzcyB0byBzZXQgcHJvcGVyIHNyYyBjYXBzLgoKMjAxMS0wNy0xMSAxMTozNzoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXZvaWQgaW5hZHZlcnRlbnRseSBkcm9wcGluZyBhbiBldmVudAoJICAuLi4gcGFydGljdWxhcmx5IGEgbm9uLXN0aWNreSBzZXJpYWxpemVkIGV2ZW50IHRoYXQgaGFwcGVucyB0byBwYXNzCgkgIHdoZW4gYW4gZXZlbnQgdXBkYXRlIGlzIHBlbmRpbmcuCgoyMDExLTA3LTA0IDEyOjU4OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRyeSBoYXJkZXIgdG8gYXJyYW5nZSBpbmNyZWFzaW5nIHBvc2l0aW9uIHJlcG9ydGluZwoJICAuLi4gcmF0aGVyIHRoYW4gaGF2aW5nIGEgbW9tZW50YXJ5IGRlY3JlYXNpbmcgb25lIHdoaWxlIHRyYW5zaXRpb25pbmcKCSAgdG8gUExBWUlORy4KCSAgRml4ZXMgIzYyODAyMS4KCjIwMTEtMDctMDggMTY6MDc6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTEtMDctMDYgMTU6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbWFrZSBpZHggYXJndW1lbnQgdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNpZ25lZAoJICBTaW5jZSAtMSBpcyBhY2NlcHRhYmxlLCBpdCBzaG91bGQgYmUgc2lnbmVkLgoKMjAxMS0wNy0wNyAxNDo1NzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gZGVidWcgbWVzc2FnZXMKCSAgRG9uJ3QgdXNlIGJ1ZmZlcnMgdGhhdCB3ZSd2ZSBnaXZlbiBhd2F5IG9yIHVucmVmZWQgaW4gZGVidWcgbWVzc2FnZXMuCgoyMDExLTA3LTA3IDExOjE0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBhZnRlciBtZXJnZQoKMjAxMS0wNy0wNyAxMToxMzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0wNy0wNiAxNjowODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBtZW1zZXQgZnVuY3Rpb24KCjIwMTEtMDctMDYgMTI6MDk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBndWFyZHMgZm9yIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKQoJICBTaW5jZSBpZHggPSAtMSBtYWtlcyBpdCBkZWZhdWx0IHRvIGlkeD1sZW4sIGxlbiBpcyBhbHNvCgkgIGEgdmFsaWQgaW5wdXQgaWR4LgoKMjAxMS0wNy0wNSAxNjozODowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgcmVmL3VucmVmCgoyMDExLTA3LTA1IDE2OjMyOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3Q6IGRpc2FibGUgZmFpbGluZyB1bml0IHRlc3RzCgkgIERpc2FibGUgdW5pdCB0ZXN0cyB0aGF0IGFyZSBmYWlsaW5nIHVudGlsIHNvbWVvbmUgcG9ydHMgdGhpcyB0byAwLjExCgoyMDExLTA3LTA1IDE2OjIwOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4IHVuaXQgdGVzdAoJICBTZXQgdGhlIHJpZ2h0IHBvc2l0aW9uIG1lbWJlciBpbiB0aGUgc2VnbWVudCBldmVudC4KCSAgQWRkIHNvbWUgZGVidWcgdG8gcXVldWUuCgoyMDExLTA3LTA1IDAwOjEwOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBtYWtlIGNvbXBpbGVyIHdhcm4gYWJvdXQgdW5zdGFibGUgQVBJIGlmIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGlzIG5vdCBkZWZpbmVkCgkgIEFuZCBkZWZpbmUgaXQgaW4gb3VyIG93biBidWlsZC4KCjIwMTEtMDctMDUgMDA6MTI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgbGF0ZXN0IEFQSSBjaGFuZ2VzL2FkZGl0aW9ucwoKMjAxMS0wNi0zMCAxNzozOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IHNuZWFraWx5IG1lc3Mgd2l0aCBjdXJyZW50IG9mZnNldCB3aGVuIHVwZGF0aW5nIGxlbmd0aAoKMjAxMS0wNi0yOCAyMjoxODo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdW5yZWYgYWxsb2NhdGlvbiBxdWVyeSB3aGVuIG5vIGxvbmdlciBuZWVkZWQKCjIwMTEtMDYtMjggMTk6MDE6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGF2b2lkIGl0ZXJhdGluZyBvdmVyIGEgc2luZ2xlIE5VTEwgcGFkCgoyMDExLTA2LTIwIDIzOjI4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBSZW1vdmUgR3N0SW1wbGVtZW50c0ludGVyZmFjZQoJICBJdCB3YXMgYSBiaXQgdG9vIGNsZXZlciwgYW5kIGRpZG4ndCByZWFsbHkgd29yayBhcyBhbiBBUEksCgkgIGNvbmZ1c2luZyBwZW9wbGUgdG8gbm8gZW5kLiBCZXR0ZXIgaW1wbGVtZW50IHNwZWNpZmljIG1ldGhvZHMKCSAgd2hldGhlciBhbiBpbnRlcmZhY2UgaXMgdXNhYmxlL2F2YWlsYWJsZS9yZWFkeSBvbiB0aGUgaW50ZXJmYWNlCgkgIGl0c2VsZiwgb3IgZXZlbiBhZGQgR0Vycm9yIGFyZ3VtZW50cywgcmF0aGVyIHRoYW4gdHJ5IHRvIGhhdmUKCSAgcGVyLWluc3RhbmNlIGludGVyZmFjZXMuCgoyMDExLTA2LTI1IDEzOjUxOjUyIC0wNzAwICBFbW1hbnVlbCBQYWNhdWQgPGVtbWFudWVsLnBhY2F1ZEBsYXBwLmluMnAzLmZyPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogQ2hlY2sgZm9yIFBSX1NFVF9OQU1FIGJlZm9yZSB1c2luZwoJICBGaXhlczogIzY1MzE3Mi4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoyMDExLTA2LTIzIDExOjI3OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjliOTgxZiB0byA2MDVjZDlhCgoyMDExLTA2LTIzIDE4OjAzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgbWV0YWRhdGEKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgY2VydGFpbiBtZXRhZGF0YSBpcyBzdXBwb3J0ZWQgaW4gdGhlIEFMTE9DQVRJT04KCSAgcXVlcnkuCgoyMDExLTA2LTIyIDE4OjA3OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzIGEgbGl0dGxlCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvYyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB2aWRlb21ldGFkYXRhLgoKMjAxMS0wNi0yMiAxNzoxMjozNCArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSAmIGluc3RlYWQgb2YgJiYgZm9yIG1hc2tpbmcgYml0cwoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowOTo1MiArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHJlZHVuZGFudCAoKQoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowNToyNyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrc3RvcAoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNjo1ODo1MyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBjYXN0IHRvIHJpZ2h0IHR5cGUKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTY6Mzg6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgdXJpOiByZW1vdmUgc29tZSBfZnVsbCB2YXJpYW50cwoKMjAxMS0wNi0yMiAxNjoxNjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHRhZ3M6IFJlbW92ZSBjcmF6eSB0YWcgbWVzc2FnZXMKCSAgRG9uJ3QgbWl4IG1lc3NhZ2VzIGFuZCBwYWRzIGFuZCB0YWdzLgoJICBNYWtlIHRoZSBzaW5rIHBvc3QgdGFnIG1lc3NhZ2VzIHdoZW4gYSB0YWcgZXZlbnQgaXMgcmVjZWl2ZWQuCgkgIFNpbmNlIHRhZ3MgYXJlIHN0aWNreSBvbiBwYWRzIG5vdywgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlcmUKCSAgd2hlbiBuZWVkZWQuCgoyMDExLTA2LTIyIDEyOjI4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGNhcHM6IEhpZGUgaW1wbGVtZW50YXRpb24gZGV0YWlscwoJICBNYWtlIHRoZSBBcnJheSBvZiBzdHJ1Y3R1cmVzIHByaXZhdGUuIFRoaXMgc2hvdWxkIGFsbG93IHVzIHRvIGltcGxlbWVudAoJICB0aGUgYXJyYXkgbW9yZSBlZmZpY2llbnRseSBvciB3aXRoIHNvbWUgcHJlYWxsb2NhdGVkIHN0cnVjdHVyZXMgd2hlbgoJICB3ZSB3YW50IHRvIGxhdGVyLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIGNsZWFuIHVwIGEgc3RhdGljIHN0cnVjdHVyZSBzbyB0aGF0IHdlIGNhbiByZW1vdmUgc29tZSBjb2RlCgkgIHRoYXQgcG9rZXMgaW50byB0aGUgcHJpdmF0ZSBiaXRzIG9mIHRoZSBjYXBzLgoKMjAxMS0wNi0yMiAxMjoyNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgbmVnb3RpYXRpb24gZGVzaWduIGRvYwoKMjAxMS0wNi0yMiAxMTo0Mjo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBtZW1vcnk6IHJlbmFtZSBHc3RNZW1vcnlBbGxvY2F0b3IgLT4gR3N0QWxsb2NhdG9yCgkgIHNpbXBsaWZ5IHRoZSBuYW1lIG9mIHRoZSBhbGxvY2F0b3Igb2JqZWN0LgoKMjAxMS0wNi0yMSAxNzo1NDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmgKCjIwMTEtMDYtMjEgMTc6NDc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jCgoyMDExLTA2LTIxIDE3OjQ3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA2LTIxIDE1OjE1OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSAgaW1hZ2VzOiBzdHJpcCBpbWFnZXMgb2YgZXh0cmEgdGV4dCB0YWdzCgoyMDExLTA2LTIxIDEyOjMyOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcmV0dXJuIGVtcHR5IG1ldGFkYXRhIGFycmF5CgkgIFJldHVybiBhIHN0cmluZyBhcnJheSB3aXRoIE5VTEwgaW5zdGVhZCBvZiBOVUxMIGZyb20gdGhlIGRlZmF1bHQgZ2V0X21ldGFzCgkgIGZ1bmN0aW9uLgoKMjAxMS0wNi0yMSAxMjozMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgZXZlbnQgZnVuY3Rpb24gZGlyZWN0bHkKCSAgV2Ugd2lsbCBuZXZlciBnbyBpbiB0aGlzIGNvZGUgcGF0aCBmb3IgQ0FQUyBldmVudHMgc28gZGlyZWN0bHkgY2FsbCB0aGUgZXZlbnQKCSAgZnVuY3Rpb24uCgoyMDExLTA2LTIxIDEwOjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIGFmdGVyIHdlIHN0b3JlIHRoZSBuZXcgY2FwcwoJICBub3RpZnkgY2FwcyBhZnRlciB3ZSBzdG9yZSB0aGUgbmV3IGNhcHMgc28gdGhhdCB0aGUgbmV3IGNhcHMgYXJlIGFjdHVhbGx5CgkgIHZpc2libGUgZm9yIHRoZSBhcHAuCgoyMDExLTA2LTIwIDE3OjMyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGFjdGl2YXRlIHRoZSBidWZmZXJwb29sCgkgIGFsd2F5cyBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbCwgZXZlbiBpZiB3ZSBnZXQgaXQgZnJvbSB0aGUgYWxsb2NhdGlvbgoJICBxdWVyeS4KCjIwMTEtMDYtMjAgMTc6MzI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWx3YXlzIGFjdGl2YXRlIHRoZSBwb29sIHdlIGdldAoJICBBY3RpdmF0ZSB0aGUgcG9vbCB3aGVuIHdlIGdldCBpdCBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoKMjAxMS0wNi0yMCAxNjo0Nzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW5wcm92ZSBhbGxvY2F0aW9uIGhhbmRsaW5nCgkgIEFkZCB2bWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIGluZmx1ZW5jZSB0aGUgcG9vbCBhbmQgYWxsb2NhdG9yLgoJICBMb2cgd2hlbiBxdWVyeSBmYWlscy4KCSAgUmVzcGVjdCBuZWdvdGlhdGVkIGFsbG9jYXRvciBhbmQgYWxpZ25tZW50LgoKMjAxMS0wNi0yMCAxNjo0NjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBJbXByb3ZlIGxvZ2dpbmcKCSAgTG9nIHdoZW4gdGhpbmdzIGZhaWwuCgkgIEZpeCBhIHF1ZXJ5IGxlYWsuCgoyMDExLTA2LTIwIDE2OjQ0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBpbXByb3ZlIGRlYnVnCgkgIExvZyBhIGRlYnVnIGxpbmUgd2hlbiB0aGVyZSBpcyBubyB0YXJnZXQgcGFkIGFuZCB3aGVuIHRoaXMgbWFrZXMgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gZmFpbC4KCSAgVGFrZSB0aGUgaW50ZXJuYWwgcGFkcyBkaXJlY3RseSB3aGVuIHdlIGNhbi4KCjIwMTEtMDYtMjAgMTU6NDA6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjI2CgoyMDExLTA2LTIwIDEzOjI2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIGZ1bmN0aW9uIHRvIHNldCBtZXRhZGF0YSBhcGkKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIG1ldGFkYXRhIGFwaXMgZnJvbSB0aGUgdGhlCgkgIGJ1ZmZlcnBvb2wuCgkgIEFkZCBmdW5jdGlvbnMgdG8gY29uZmlndXJlIGFuZCBxdWVyeSB0aGUgY29uZmlndXJlZCBtZXRhZGF0YSBhcGlzIGluIGEKCSAgYnVmZmVycG9vbCBjb25maWd1cmF0aW9uLgoKMjAxMS0wNi0xOSAxMzoxNToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogTWlub3IgZml4IHRvIGRvY3MKCSAgQWRkcyBtaXNzaW5nIHBhcmFtZXRlciB0byBkb2NzIG9mIGdzdF9idWZmZXJfY29weV9yZWdpb24KCjIwMTEtMDYtMTggMTc6MzU6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBkb19ldmVudF9hY3Rpb25zCgkgIGRvX2V2ZW50X2FjdGlvbnMgd2FzIGFsd2F5cyB1c2VkIGFzIFRSVUUKCjIwMTEtMDYtMTggMTQ6Mzg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIGdvYmplY3QtaW50cm9zcGVjdGlvbiByZXF1aXJlbWVudCB0byA+PSAwLjYuOAoJICBGb3IgLS1hZGQtaW5pdC1zZWN0aW9uCgoyMDExLTA2LTE2IDE3OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIEJ1bXAgZ2l0IHZlcnNpb24gYWZ0ZXIgdW5wbGFubmVkIDAuMTAuMzUgcmVsZWFzZQoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMC4zNScKCjIwMTEtMDYtMTQgMTc6NTc6MjEgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIEZpeGVzICM2NTI1NzcuCgoyMDExLTA2LTE2IDEwOjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBSZXZlcnQgInV0aWxzOiByZW1vdmUgc29tZSBtYWNyb3Mgbm93IGluIGdsaWIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGUyOWFlN2I5MjljZWRiZjZiOTgzOGVhNTNiMDVlZmFiZGNlNGNlNy4KCSAgUmUtYWRkcyBHRkxPQVRfVE9fTEUsIEdGTE9BVF9UT19CRSwgR0RPVUJMRV9UT19MRSwgYW5kIEdET1VCTEVfVE9fQkUuCgkgIFR1cm5zIG91dCB0aGVzZSBhcmVuJ3QgaW4gR0xpYiB5ZXQgYWZlciBhbGwgKHNpbmNlIHdlIGRpZG4ndAoJICBhY3R1YWxseSBvcGVuIGEgYnVnIHRvIGdldCB0aGVtIGFkZGVkLi4pCgo9PT0gcmVsZWFzZSAwLjEwLjM1ID09PQoKMjAxMS0wNi0xNSAxOToxNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzUKCSAgVGhpcyBpcyBhbiBhZC1ob2MgcmVsZWFzZSB0aGF0IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gMC4xMC4zNDoKCSAgKiB3b3JrIGFyb3VuZCBHTGliIGF0b21pYyBvcHMgQVBJIGNoYW5nZQoJICAqIHNvbWUgbWlub3Igd2luMzIvbWluZ3cgZml4ZXMKCSAgKiBkb24ndCB1c2UgR19DT05TVF9SRVRVUk4gaW4gcHVibGljIGhlYWRlcnMKCjIwMTEtMDYtMTUgMTY6NTY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDQgMDA6MzA6MTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIFdvcmsgYXJvdW5kIGNoYW5nZXMgaW4gZ19hdG9taWMgQVBJCgkgIFNlZSAjNjUxNTE0IGZvciBkZXRhaWxzLiAgSXQncyBhcHBhcmVudGx5IGltcG9zc2libGUgdG8gd3JpdGUgY29kZQoJICB0aGF0IGF2b2lkcyBib3RoIHR5cGUgcHVubmluZyB3YXJuaW5ncyB3aXRoIG9sZCBnX2F0b21pYyBoZWFkZXJzIGFuZAoJICBhc3NlcnRpb25zIGluIHRoZSBuZXcuICBUaHVzLCBtYWNyb3MgYW5kIGEgdmVyc2lvbiBjaGVjay4KCjIwMTEtMDUtMjUgMTM6NDA6MzAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBQbGFjYXRlIGdjYyBieSBkZWZpbmluZyBFV09VTERCTE9DSyB0byBzb21ldGhpbmcKCjIwMTEtMDUtMjUgMTI6NDc6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IFdBS0VfRVZFTlQoKSB0byBiZWhhdmUgcG9zaXhseSBvbiBXaW5kb3dzCgoyMDExLTA2LTE0IDE1OjE4OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0wNi0xMyAxOToxMDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMTMgMTY6MzE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBidWZmZXI6IGFkZCBpbmRleCB0byBfdGFrZV9tZW1vcnkoKQoJICBBZGQgYW4gaW5kZXggdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNvIHRoYXQgd2UgY2FuIGFsc28gaW5zZXJ0IG1lbW9yeSBhdCBhCgkgIGNlcnRhaW4gb2Zmc2V0LiBUaGlzIGlzIG1vc3RseSBpbnRlcmVzdGluZyB0byBwcmVwZW5kIGEgaGVhZGVyIG1lbW9yeSBibG9jayB0bwoJICB0aGUgYnVmZmVyLgoKMjAxMS0wNi0xMyAxNjozMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmb3J3YXJkIHNjaGVkdWxpbmcgcXVlcnkKCSAgVGhlIHNjaGVkdWxpbmcgcXVlcnkgc2hvdWxkIG5vdCBiZSBmb3J3YXJkZWQsIGJlY2F1c2UgZWxlbWVudHMgbmVlZCB0byBpbXBsZW1lbnQKCSAgc3BlY2lhbCBjb2RlIHRvIGhhbmRsZSBkaWZmZXJlbnQgc2NoZWR1bGluZyBtZXRob2RzLgoKMjAxMS0wNi0xMyAxMjowNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGJhc2VzcmM6IEFsbG9jYXRvciBidWZmZXJzIGZyb20gbmVnb3RpYXRlZCBhbGxvY2F0b3IKCSAgQWxsb2NhdGUgYnVmZmVycyBmcm9tIHRoZSBuZWdvdGlhdGVkIGFsbG9jYXRvciBvciBidWZmZXJwb29sLgoJICBIYW5kbGUgdGhlIHN0YXRlIG9mIHRoZSBidWZmZXJwb29sIHdoZW4gZmx1c2hpbmcuCgkgIEFkZCBmaWxsIG1ldGhvZCB0byBwdXNoc3JjLgoKMjAxMS0wNi0xMyAxMjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMS0wNi0xMyAxMTo1MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHNtYWxsIGluZGVudGF0aW9uIGZpeAoKMjAxMS0wNi0xMyAxMTo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHBhc3MgdGhlIGFsbG9jYXRvciBhcyBjb25zdAoKMjAxMS0wNi0xMyAxMDoxOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogbmVnb3RpYXRlIGFsbG9jYXRpb24KCSAgQWRkIHZtZXRob2QgdG8gY29uZmlndXJlIGFsbG9jYXRpb24gbWV0aG9kcy4KCSAgUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwoKMjAxMS0wNi0xMSAyMDo0NTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbW9yZSBjaGVja3MKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIGFsaWdubWVudCBpcyB2YWxpZC4KCSAgV2hlbiB3ZSBoYXZlIGEgMCBzaXplICh2YXJpYWJsZSBidWZmZXIgc2l6ZSksIHdlIGNhbid0IGhhdmUgYSBidWZmZXJwb29sLgoKMjAxMS0wNi0xMSAxOTo1NDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogc2V0IGFsbCBkZWZhdWx0IHZhbHVlcwoJICBGaWxsIGFsbCBxdWVyeSB2YWx1ZXMgd2l0aCBnb29kIGRlZmF1bHRzLgoKMjAxMS0wNi0xMSAxODo1Mjo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXJwb29sOiByZW1vdmUgcG9zdGZpeCBwYXJhbWV0ZXIKCSAgUmVtb3ZlIHRoZSBwb3N0Zml4IHBhcmFtZXRlciwgaXQncyBub3QgdXNlZCBhbmQgY2FuIGJlIGRvbmUgZGlmZmVyZW50bHkuCgoyMDExLTA2LTEwIDE3OjUwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXNlIHNhbWUgYWxpZ25tZW50IHZhbHVlcyBhcyBHc3RNZW1vcnkKCSAgVXNlIHRoZSBzYW1lIGFsaWdubWVudCB2YWx1ZXMgZm9yIHRoZSBidWZmZXJwb29sIGFzIHdlIHVzZSBmb3IgdGhlIEdzdE1lbW9yeQoJICBBUEkuCgoyMDExLTA2LTEwIDE3OjMyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgX2NoZWNrX3JlY29uZmlndXJlKCkgbWV0aG9kCgoyMDExLTA2LTEwIDE3OjMyOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIF9jaGVja19yZWNvbmZpZ3VyZSgpIG1ldGhvZAoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgYW5kIGNsZWFyIHRoZSBSRUNPTkZJR1VSRSBmbGFnIG9uIGEgcGFkLgoKMjAxMS0wNi0xMCAxNjo0NzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGluIG1lbW9yeQoJICBGaXggdGhlIGNvZGUgdG8gc3VwcG9ydCBhbGxvY2F0aW5nIHRoZSBidWZmZXIgYW5kIG1lbW9yeSBpbiBvbmUgbWVtb3J5IGJsb2NrLgoJICBBZGQgYW4gZXh0cmEgdmFyaWFibGUgdG8gc3RvcmUgdGhlIG1lbW9yeSBvZiB0aGUgYnVmZmVyLgoJICBUaGlzIGNvZGUgaXMgZGlzYWJsZWQgc3RpbGwgYmVjYXVzZSBvZiBjb21wbGljYXRpb25zLgoKMjAxMS0wNi0xMCAxNjo0NjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGV4cG9zZSBkZWZhdWx0IGFsaWdubWVudAoJICBFeHBvcnQgdGhlIGdzdF9tZW1vcnlfYWxpZ25tZW50IHZhcmlhYmxlIHNvIHRoYXQgb3RoZXJzIGNhbiBrbm93IHRoZSBkZWZhdWx0CgkgIGNvbmZpZ3VyZWQgYWxpZ25tZW50IG9mIHRoZSBzeXN0ZW0uCgoyMDExLTA2LTEwIDE2OjE5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBpc19zcGFuCgkgIFN1YnRyYWN0IHRoZSBvZmZzZXQgb2YgdGhlIHBhcmVudCBmcm9tIGlzX3NwYW4uCgoyMDExLTA2LTEwIDEzOjU5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiByZXNwZWN0IGNvbmZpZ3VyZWQgYWxpZ25tZW50CgkgIE1vdmUgdGhlIGFsaWdubWVudCBmcm9tIEdzdEJ1ZmZlciB0byBHc3RNZW1vcnkuCgkgIG1ha2Ugc3VyZSBtZW1vcnkgaXMgYXQgbGVhc3QgYWxpZ25lZCB0byB0aGUgY29uZmlndXJlZCB2YWx1ZXMuCgoyMDExLTA2LTEwIDEzOjQwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBidWZmZXI6IG1ha2UgbmV3IF9idWZmZXJfYWxsb2NhdGUgbWV0aG9kCgkgIE1ha2UgYSBuZXcgbWV0aG9kIHRvIGFsbG9jYXRlIGEgYnVmZmVyICsgbWVtb3J5IHRoYXQgdGFrZXMgdGhlIGFsbG9jYXRvciBhbmQgdGhlCgkgIGFsaWdubWVudCBhcyBwYXJhbWV0ZXJzLiBQcm92aWRlIGEgbWFjcm8gZm9yIHRoZSBvbGQgbWV0aG9kIGJ1dCBwcmVmZXIgdG8gdXNlCgkgIHRoZSBuZXcgbWV0aG9kIHRvIGVuY291cmFnZSBwbHVnaW5zIHRvIG5lZ290aWF0ZSB0aGUgYWxsb2NhdG9yIHByb3Blcmx5LgoKMjAxMS0wNi0xMCAxMjo0NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiB1cGRhdGUgZm9yIGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplCgkgIEFkZCB0byBzZWN0aW9ucyBmaWxlIGFuZCBhZGQgU2luY2U6IG1hcmtlci4gQWxzbyB1cGRhdGUKCSAgd2luMzIgLmRlZiBmaWxlLgoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplKCkKCjIwMTEtMDYtMTAgMTM6NDQ6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRlc2lnbjogcGFydC1idWZmZXJsaXN0LnR4dCB3YXMgbWVyZ2VkIGludG8gYW5vdGhlciBkb2MKCjIwMTEtMDYtMTAgMTM6MzQ6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIHNlY3Rpb25zIGZpbGVzIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMTAgMTM6MTA6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTEwIDEzOjA0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGZpbGwgdm1ldGhvZCB0byBiYXNlc3JjCgkgIEFkZCBhIG5ldyBmaWxsIHZpcnR1YWwgbWV0aG9kIHRvIGJhc2VzcmMuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGZpbGwKCSAgYSBwcm92aWRlZCBidWZmZXIgd2l0aCBkYXRhLgoJICBBZGQgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjcmVhdGUgbWV0aG9kIHRoYXQgYWxsb2NhdGVzIGEgYnVmZmVyIGFuZAoJICBjYWxscyB0aGUgZmlsbCBtZXRob2Qgb24gaXQuIFRoaXMgd291bGQgYWxsb3cgdGhlIGJhc2UgY2xhc3MgdG8gaW1wbGVtZW50CgkgIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBuZWdvdGlhdGlvbiBvbiBiZWhhbGYgb2YgdGhlIHN1YmNsYXNzZXMuCgkgIEZpeCB0aGUgYmxvY2tzaXplIHByb3BlcnR5LgoJICBNYWtlIGZpbGVzcmMgdXNlIHRoZSBuZXcgZmlsbCBtZXRob2QuCgoyMDExLTA2LTEwIDEyOjA5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmgKCjIwMTEtMDYtMTAgMTE6NTU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IGFkZCByZXNldF90aW1lIGJvb2xlYW4gdG8gZmx1c2hfc3RvcCBldmVudAoJICBBZGQgYSBib29sZWFuIHRvIHRoZSBmbHVzaF9zdG9wIGV2ZW50IHRvIG1ha2UgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IGZsdXNoZXMKCSAgdGhhdCBkb24ndCByZXNldF90aW1lLgoJICBNYWtlIGJhc2VzaW5rIHBvc3QgYXN5bmNfZG9uZSB3aXRoIHRoZSByZXNldF90aW1lIHByb3BlcnR5IGZyb20gdGhlIGZsdXNoIHN0b3AKCSAgZXZlbnQuCgkgIEZpeCBzb21lIHVuaXQgdGVzdHMKCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDkgMTM6Mzc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBldmVudCBtZXRob2RzIHRvIHJlcGxhY2UgZXZlbnRzCgkgIFVzaW5nIHRoZSBuZXcgZXZlbnQgbWV0aG9kcywgd2UgY2FuIGF0b21pY2FsbHkgdHJhbnNmZXIgdGhlIGV2ZW50IGZyb20gdGhlCgkgIHBlbmRpbmcgbGlzdCB0byB0aGUgYWN0aXZlIGxpc3QuCgoyMDExLTA2LTA5IDEzOjM2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIG1hY3JvcyBmb3IgbmV3IG1pbmlvYmplY3QgbWV0aG9kcwoKMjAxMS0wNi0wOSAxMzozNTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGFkZCBuZXcgbWV0aG9kcyB0byBtYW5hZ2UgbWluaW9iamVjdCBwb2ludGVycwoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0ZWFsIHRoZSBtaW5pb2JqZWN0IHN0b3JlZCBhdCBhIGxvY2F0aW9uLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0b3JlIGEgbWluaW9iamVjdCBpbiBhIGxvY2F0aW9uIGFuZCB0YWtpbmcgb3duZXJzaGlwCgkgIG9mIHRoZSBtaW5pb2JqZWN0LgoKMjAxMS0wNi0wOSAxMzozNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggaGVhZGVyCgoyMDExLTA2LTA5IDEyOjMxOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBzcHVyaW91cyBpbmNsdWRlCgoyMDExLTA2LTA5IDEyOjAxOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTA2LTA5IDExOjM5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGFkOiBmb3J3YXJkIGV2ZW50cyBieSBkZWZhdWx0CgkgIEFsd2F5cyBmb3J3YXJkIGFsbCBldmVudHMgaW4gdGhlIGRlZmF1bHQgaGFuZGxlci4gUHJldmlvdXNseSBpdCB1c2VkIHRvIG5vdAoJICBmb3J3YXJkIGNhcHMgZXZlbnRzIGJ5IGRlZmF1bHQuIEl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gZm9yd2FyZCB0aGUgY2FwcyBldmVudHMsCgkgIGlmIHRoZSBlbGVtZW50IGlzIGludGVyZXN0ZWQgaW4gdGhlIGNhcHMsIGl0IHdpbGwgaW1wbGVtZW50IGFuIGV2ZW50IGhhbmRsZXIgdG8KCSAgcmV0cmlldmUgdGhlIGNhcHMgYW5kIHRoZW4gaXQgY2FuIGRlY2lkZSB0byBmb3J3YXJkIG9yIG5vdC4gSWYgdGhlIGVsZW1lbnQgaGFzCgkgIG5vIGV2ZW50IGhhbmRsZXIsIGl0IHByb2JhYmx5IGp1c3QgZG9lc24ndCBjYXJlIGFib3V0IGNhcHMgYW5kIGl0IHByb2JhYmx5IGlzCgkgIGFsc28gbm90IGdvaW5nIHRvIG1vZGlmeSB0aGUgZGF0YSBpbiBhIHdheSB0aGF0IG5lZWRzIGEgY2FwcyBjaGFuZ2UuCgoyMDExLTA2LTA5IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB0eXBvIGluIGRvY3MKCjIwMTEtMDYtMDggMTg6MjI6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYy9mZHNyYzogaW5kaWNhdGUgZHluYW1pYyBzaXplIGhhbmRsaW5nIHRvIGJhc2VzcmMKCjIwMTEtMDYtMDggMTg6MjI6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBhZGQgZHluYW1pYyBzaXplIGhhbmRsaW5nCgkgIFRoaXMgYWxsb3dzIHN1YmNsYXNzIHRvIGluZGljYXRlIHRoYXQgc2l6ZSByZXBvcnRlZCBieSBzcmMgbWF5IG5vdCBiZSBzdGF0aWMKCSAgYW5kIHNob3VsZCBhcyBzdWNoIGJlIHVwZGF0ZWQgcmVndWxhcmx5LCByYXRoZXIgdGhhbiBvbmx5IHdoZW4gcmVhbGx5CgkgIG5lZWRlZC4KCSAgUGFydGljdWxhciBleGFtcGxlcyBhcmUgZmlsZXNyYyBvciBmZHNyYyByZWFkaW5nIGZyb20gYSBmaWxlIHRoYXQgaXMgc3RpbGwKCSAgZ3Jvd2luZyAoZS5nLiBiZWluZyBkb3dubG9hZGVkKS4KCSAgRml4ZXMgIzY1MjAzNy4KCjIwMTEtMDYtMDggMjA6MTQ6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJldmVydCAiYmFzZXNyYzogU2VuZCBhbiB1cGRhdGUgTkVXU0VHTUVOVCBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBkdXJhdGlvbiBjaGFuZ2VzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzNGZhZjE2M2NhZjEwZWQzZDU0ZDgxZmQ3Yjc5MzA2OTkxM2RmZmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBsZWFkcyB0byBwb3NzaWJseSBzZW5kaW5nIG5ld3NlZ21lbnQgZXZlbnQgZG93bnN0cmVhbQoJICBpbiBwdWxsIG1vZGUuICBJbiBwdXNoIG1vZGUsIHF1aXRlIHNvbWUgZG93bnN0cmVhbSBlbGVtZW50cwoJICBhcmUgbGlrZWx5IHRvIG9ubHkgZXhwZWN0IG5ld3NlZ21lbnQgZXZlbnQgZm9sbG93aW5nIGEgc2VlayB0aGV5IHBlcmZvcm1lZAoJICBhbmQgYXMgc3VjaCBtYXkgaGF2ZSB0aGVpciBzdGF0ZSBtZXNzZWQgdXAuCgoyMDExLTA2LTA4IDE4OjM1OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBpbmxpbmUgdGhlIGNsaXAgc2VnbWVudAoKMjAxMS0wNi0wOCAxNzoyNTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogcmVuYW1lIHZhcmlhYmxlCgkgIFJlbmFtZSB0aGUgbmV3X2Jhc2VfdGltZSB2YXJpYWJsZSB0byByZXNldF90aW1lLCB3aGljaCBsb29rcyBiZXR0ZXIuCgoyMDExLTA2LTA4IDE2OjQxOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogc2VwYXJhdGUgdGhlIHNlZWsgYW5kIHNlZ21lbnQgZmxhZ3MKCSAgU2VwYXJhdGUgdGhlIHNlZWsgZmxhZ3MgYW5kIHNlZ21lbnQgZmxhZ3MgYXMgc2VwYXJhdGUgZW51bXMgYmVjYXVzZSB3ZSBtaWdodAoJICB3YW50IHRvIGhhdmUgZGlmZmVyZW50IGZsYWdzIGZvciBib3RoLgoKMjAxMS0wNi0wOCAxMzo0MDozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBtZXNzYWdlOiBtb3ZlIHRoZSBuZXdfYmFzZV90aW1lIGZsYWcgdG8gYXN5bmNfZG9uZQoJICBNb3ZlIHRoZSBmbGFnIHRvIGluZGljYXRlIHRoYXQgYSBuZXdfYmFzZV90aW1lIHNob3VsZCBiZSBkaXN0cmlidXRlZCB0byB0aGUKCSAgcGlwZWxpbmUsIGZyb20gdGhlIGFzeW5jX3N0YXJ0IHRvIHRoZSBhc3luY19kb25lIG1lc3NhZ2UuIFRoaXMgd291bGQgYWxsb3cgdXMgdG8KCSAgZGVjaWRlIHdoZW4gdG8gcmVzZXQgdGhlIHBpcGVsaW5lIHRpbWUgYmFzZWQgb24gb3RoZXIgcmVhc29ucyB0aGFuIHRoZQoJICBGTFVTSF9TVEFSVCBldmVudC4KCSAgVGhlIG1haW4gZ29hbCBldmVudHVhbGx5IGlzIHRvIG1ha2UgdGhlIEZMVVNIIGV2ZW50cyBub3QgcmVzZXQgdGltZSBhdCBhbGwgYnV0CgkgIHJlc2V0IHRoZSB0aW1lIGJhc2VkIG9uIHRoZSBmaXJzdCBidWZmZXIgb3Igc2VnbWVudCB0aGF0IHByZXJvbGxzIHRoZSBwaXBlbGluZQoJICBhZ2Fpbi4KCjIwMTEtMDYtMDggMTM6Mzk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIGdzdHJlYW1lci1zZWN0aW9ucyBmb3IgbmV3L3JlbW92ZWQgQVBJCgoyMDExLTA2LTA4IDEzOjMwOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZ3N0YnVmZmVyOiBSZW1vdmUgZGVwcmVjYXRlZCBHU1RfQlVGRkVSXyogbWFjcm9zCgkgIGRhdGEsIHNpemUsIG1hbGxvY2RhdGEgYW5kIGZyZWVfZnVuYyBubyBsb25nZXIgZXhpc3QuCgoyMDExLTA2LTA4IDEzOjA2OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDggMTI6NTg6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgc2V0Y2FwcyBmdW5jdGlvbgoJICBSZW1vdmUgdGhlIHNldGNhcHMgZnVuY3Rpb24sIGVsZW1lbnRzIHNob3VsZCB1c2UgdGhlIGNhcHMgZXZlbnQgdG8gYmUgaW5mb3JtZWQKCSAgb2YgdGhlIGZvcm1hdC4KCjIwMTEtMDYtMDggMTI6MDQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWVtb3J5OiBSZXF1aXJlIGltcGxlbWVudGF0aW9uIHRvIGltcGxlbWVudCBfc2hhcmUKCSAgUmVxdWlyZSB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9ucyB0byBpbXBsZW1lbnQgYSBzaGFyZSBvcGVyYXRpb24uIFRoaXMgYWxsb3dzCgkgIHVzIHRvIHJlbW92ZSB0aGUgZmFsbGJhY2sgc2hhcmUgaW1wbGVtZW50YXRpb24gd2hpY2ggdXNlcyBhIGRpZmZlcmVudCBhbGxvY2F0b3IKCSAgaW1wbGVtZW50YXRpb24gYW5kIGNvbXBsaWNhdGVzIHRoaW5ncyB0b28gbXVjaC4KCSAgVXBkYXRlIGRlc2lnbiBkb2MgYSBiaXQuCgoyMDExLTA2LTA4IDExOjAzOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtZW1vcnk6IGNsZWFudXBzIGFuZCBpbXByb3ZlIGRvY3MKCSAgTWFrZSB0aGUgZmFsbGJhY2sgY29weSB1c2UgdGhlIHNhbWUgbWVtb3J5IGFsbG9jYXRvciBhcyB0aGUgb3JpZ2luYWwgb2JqZWN0LgoJICBJbXByb3ZlIHNvbWUgZG9jcy4KCSAgUmVxdWlyZSBhbiBhbGxvYyBmdW5jdGlvbiB3aGVuIHJlZ2lzdGVyaW5nIGFuIGFsbG9jYXRvci4KCSAgUmVtb3ZlIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2dldF9kZWZhdWx0KCkgYW5kIG1lcmdlIHRoZSBmZWF0dXJlIGluCgkgIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2ZpbmQoKQoJICBGaXggbG9ja3Mgb24gdGhlIGhhc2h0YWJsZS4KCSAgUmVtb3ZlIGRlZmluZWQgYnV0IG5vdC1pbXBsZW1lbnRlZCBnc3RfbWVtb3J5X3NwYW4oKSBtZXRob2QuCgoyMDExLTA2LTA3IDE4OjE4OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBhZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgZGVzaWduIGRvYwoKMjAxMS0wNi0wNyAxNzo1NDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHBhc3MgdXNlcl9kYXRhIHRvIHRoZSBhbGxvYyBmdW5jdGlvbgoJICBQYXNzIHRoZSB1c2VyIGRhdGEgdGhhdCB3YXMgcGFzc2VkIHRvIF9yZWdpc3RlciB0byB0aGUgYWxsb2MgZnVuY3Rpb24gb2YgYW4KCSAgYWxsb2NhdG9yLgoKMjAxMS0wNi0wNyAxNzozNDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggc29tZSB0eXBvcwoKMjAxMS0wNi0wNyAxNzowMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgZmlsZXNyYzogcmVtb3ZlIE1NQVAgY29kZQoJICBSZW1vdmUgdGhlIG1tYXAgY29kZSwgaXQgd2FzIGRpc2FibGVkIGFuZCBwcm9iYWJseSBuZWVkcyBhIGNvbXBsZXRlIHJld3JpdGUKCSAgYW55d2F5IGlmIHRoaXMgaXMgdG8gYmUgcG9ydGVkIHRvIDAuMTEuCgoyMDExLTA2LTA3IDE2OjM1OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kcyB0byBxdWVyeSBhbGxvY2F0b3JzCgkgIEFkZCBBUEkgdG8gYWRkIGFuZCBxdWVyeSBhbGxvY2F0b3IgaW1wbGVtZW50YXRpb25zIHRvL2Zyb20gdGhlIEFMTE9DQVRJT04gcXVlcnkuCgoyMDExLTA2LTA3IDE2OjE0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiB1c2UgYWxsb2NhdG9ycyB0byBhbGxvY2F0ZSBtZW1vcnkKCSAgUmVuYW1lIHRoZSBHc3RNZW1vcnlJbXBsIHRvIEdzdE1lbW9yeUFsbG9jYXRvciBiZWNhdXNlIHRoYXQncyByZWFsbHkgd2hhdCBpdCBpcy4KCSAgQWRkIGFuIGFsbG9jIHZtZXRob2QgdG8gdGhlIGFsbG9jYXRvciBtZW1iZXJzLgoJICBJbXByb3ZlIHJlZ2lzdHJhdGlvbiBvZiBhbGxvY2F0b3JzLgoJICBBZGQgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgZGVmYXVsdCBhbGxvY2F0b3IKCSAgQWx3YXlzIHVzZSBhbiBhbGxvY2F0b3IgdG8gYWxsb2NhdGUgbWVtb3J5LCB1c2UgdGhlIGRlZmF1bHQgYWxsb2NhdG9yIHdoZW4gTlVMTAoJICBpcyBwYXNzZWQuCgkgIEFkZCB1c2VyX2RhdGEgdG8gdGhlIGFsbG9jYXRvciBJbmZvIHNvIHRoYXQgd2UgY2FuIHBhc3MgZXh0cmEgaW5mbyB0byB0aGUKCSAgYWxsb2NhdG9yIG5ldyBtZXRob2QuCgoyMDExLTA2LTA3IDEzOjAzOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiBtaW5vciBmaXggYW5kIGNsYXJpZmljYXRpb24KCjIwMTEtMDYtMDcgMTM6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1vdmUgc29tZSBtb3JlIGRlZmluZXMgb24gdG9wCgoyMDExLTA2LTA3IDEzOjI1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeCBzb21lIGNpcmN1bGFyIGluY2x1ZGVzCgkgIHR5cGVkZWYgc29tZSBzdHJ1Y3RzIGJlZm9yZSBpbmNsdWRpbmcgb3RoZXIgZmlsZXMgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzCgkgIGluIHRoZSBoZWFkZXIgZmlsZXMuCgoyMDExLTA2LTA3IDExOjAxOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDYgMTI6MjM6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrL3RlZTogUGFkcyBuZWVkIHRvIGJlIGFjdGl2YXRlZCBiZWZvcmUgY2FwcyBhcmUgc2V0CgkgIEFsc28gYWRkIGRlYnVnZ2luZyB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbgoKMjAxMS0wNi0wNyAxMDo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHJlbW92ZSBwcm94eV9zZXRjYXBzCgkgIFJlbW92ZSBwcm94eV9zZXRjYXBzLCBlbGVtZW50cyBzaG91bGQgdXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBmb3J3YXJkIGNhcHMKCSAgdGhlbXNlbHZlcy4KCjIwMTEtMDYtMDcgMTA6NTE6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBmaXggcmVmY291bnRpbmcgb2YgZXZlbnRzCgkgIF9wYWRfZXZlbnRfZm9yd2FyZCgpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2Fwcy4KCjIwMTEtMDYtMDcgMTA6NDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wcm92ZSBwYWQgZXZlbnQgZm9yd2FyZCBjb2RlCgkgIFJldHVybiBUUlVFIHdoZW4gdGhlIHBhZCBoYXMgbm8gcGFyZW50IG9yIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsbHkgbGlua2VkCgkgIHBhZHMuCgoyMDExLTA2LTA3IDEwOjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiB1c2UgdGhlIGNhcHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBhdm9pZCB1c2luZyB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4gVXNlIHNvbWUgb2YgdGhlIG5ldyBwYWQKCSAgZm9yd2FyZCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50IGRlc2lyZWQgYmVoYXZpb3VyLgoKMjAxMS0wNi0wNyAxMDowMjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IFJlbmFtZSBhbmQgcmV3b3JrIHRoZSBkaXNwYXRjaGVyIGZ1bmN0aW9uCgkgIFJlbmFtZSBnc3RfcGFkX2Rpc3BhdGNoZXIoKSB0byBnc3RfcGFkX2ZvcndhcmQoKSBhbmQgbWFrZSBpdCBtb3JlIHVzZWZ1bCBieQoJICBpdGVyYXRpbmcgdGhlIGludGVybmFsIGxpbmtzIG9mIGEgcGFkIGFuZCBoYW5kbGluZyByZXN5bmMgcHJvcGVybHkuCgkgIEFkZCBhIG1ldGhvZCBnc3RfcGFkX2V2ZW50X2ZvcndhcmQoKSB0aGF0IHVuY29uZGl0aW9uYWxseSBmb3J3YXJkcyBhbiBldmVudCB0bwoJICBhbGwgaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCSAgVXBkYXRlIHNvbWUgcGFkIGNvZGUgdG8gdXNlIHRoZSBuZXcgZm9yd2FyZCBmdW5jdGlvbi4KCjIwMTEtMDYtMDcgMDk6NDM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY2FwczogdXNlIHRoZSBjYXBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCBpbnN0ZWFkIG9mIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgdGhlIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDYtMDYgMTY6MTE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogZ28gb3ZlciBkZXNpZ24gZG9jcyBhbmQgZml4IHRoaW5ncwoJICBSZW1vdmUgYnVmZmVybGlzdCBwYXJ0LCBpdCdzIG1lcmdlZCB3aXRoIHBhcnQtYnVmZmVyLnR4dAoKMjAxMS0wNi0wNiAxMToyMToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGVudW0vZmxhZ3MgKGRlKXJlZ2lzdHJhdGlvbiBpbiBnc3RfKGRlKWluaXQKCjIwMTEtMDYtMDYgMTE6MjA6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgYWNjZXB0IHNlZ21lbnRzIGFmdGVyIEVPUwoJICBBbmQgcmVmYWN0b3IgdGhlIGNvZGUgc2xpZ2h0bHkgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi4KCSAgVGhpcyBzb2x2ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgYmRiYzA2OTMKCjIwMTEtMDYtMDYgMTA6Mjc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrL2dob3N0cGFkOiBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBjaGVja2luZyBmb3IgY2FwcyBmb3J3YXJkaW5nL3NldHRpbmcKCSAgVGhpcyBpcyBub3cgZG9uZSB2aWEgaW4tYmFuZCBldmVudHMsIHNvIHRoZSBwYWRzIG5lZWQgdG8gYmUgYWN0aXZlCgoyMDExLTA2LTA1IDE4OjExOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgZG9jczogdXBkYXRlIGZvciBBUEkgY2hhbmdlcwoJICBBbHNvIHJlbW92ZSBHU1RfUEFEX0NIRUNLR0VUUkFOR0VGVU5DIG1hY3JvCgoyMDExLTA2LTA1IDE1OjQ2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMDQgMTU6NDI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogYWRkIHByb3RvdHlwZXMgZm9yIHVudXNlZCBmdW5jdGlvbnMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZwoJICBUaGUgd2FybmluZyBpcyBuZXZlciBmYXRhbCwgYmVjYXVzZSB3ZSBkb24ndCB1c2UgLVdlcnJvciBmb3IgdGhlCgkgIHBhcnNlciBoZWxwZXIgbGlicmFyeSBidWlsZCwgYnV0IHRoZSB3YXJuaW5ncyBhcmUgYW5ub3lpbmcgYW55d2F5LgoKMjAxMS0wNi0wNSAxNDoxMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogcmVtb3ZlIHVudmVyc2lvbmVkIGdzdC1sYXVuY2gsIGdzdC1pbnNwZWN0IGFuZCBnc3QtdHlwZWZpbmQKCSAgVGhlIHVudmVyc2lvbmVkIHRvb2wgd3JhcHBlcnMgYXJlIGNvbmZ1c2luZyBhbmQgYW5ub3lpbmcgZm9yIHBhY2thZ2VycywKCSAgdXNlcnMgYW5kIGRldmVsb3BlcnMgYWxpa2UuIEEgZ3N0LWxhdW5jaCBwaXBlbGluZSB0aGF0IHdvcmtzIGluIDAuMTAKCSAgd2lsbCBsaWtlbHkgbm90IHdvcmsgaW4gMC4xMSAoZS5nLiBiZWNhdXNlIGVsZW1lbnRzIG9yIHByb3BlcnRpZXMgZ2V0CgkgIHJlbmFtZWQsIG9yIHN5bnRheCBjaGFuZ2VzKS4gVGhlIHVudmVyc2lvbmVkIHRvb2xzIGFsc28geWllbGQgdXNlbGVzcwoJICByZXN1bHRzIHdoZW4gdXNlZCB3aXRoIGdkYiBvciB2YWxncmluZC4gUGFja2FnZXJzIG5lZWQgdG8gY28tb3JkaW5hdGUKCSAgdGhlIHBhY2thZ2luZyBvZiBhbGwgbWFqb3IgdmVyc2lvbnMgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBjb25mbGljdHMKCSAgd2hlbiBib3RoIHRyeSB0byBpbnN0YWxsIHRoZSBzYW1lIGZpbGVzLiBXaGVuIHR3byBtYWpvciB2ZXJzaW9ucyBhcmUKCSAgaW4gdXNlIChlLmcuIDAuMTAgYW5kIDAuMTEvMS4wKSwgaXQgbWF5IGJlIHVuY2xlYXIgKHdoZW4gbG9va2luZyBhdAoJICB0aGluZ3Mgb24gSVJDL3Bhc3RlYmluL21haWxpbmcgbGlzdCBldGMuKSB3aGljaCB2ZXJzaW9uIGlzIGFjdHVhbGx5CgkgIGJlaW5nIHVzZWQgd2hlbiB0aGVyZSBhcmUgdW52ZXJzaW9uZWQgd3JhcHBlcnMuIEZvciBhbGwgdGhlc2UgcmVhc29ucywKCSAgaXQgc2VlbXMgYmVzdCB0byBqdXN0IHJlbW92ZSB0aGVtIGZvciBub3cuCgoyMDExLTA2LTA0IDE2OjA0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgYW5kIG90aGVyIHRoaW5ncwoKMjAxMS0wNi0wNCAxNTo0NDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmcgYW5kIHJlbW92ZWQgc3RyaW5ncwoKMjAxMS0wNi0wNCAxNToyMzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVtb3ZlIEdTVF9YTUwgZGVidWcgY2F0ZWdvcnkgYXMgd2VsbAoKMjAxMS0wNi0wNCAxNToyMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICBSZW1vdmUgZXZlcnl0aGluZyBsaWJ4bWwyLSBhbmQgbG9hZHNhdmUtcmVsYXRlZAoKMjAxMS0wNi0wNCAxNDo0MToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSBTSUdVU1IqIGhhbmRsaW5nIGZyb20gZ3N0LWxhdW5jaAoJICBSZW1vdmUgU0lHVVNSKiBoYW5kbGluZyBmcm9tIGdzdC1sYXVuY2gsIHNpbmNlIGl0IG1pZ2h0IGludGVyZmVyZQoJICB3aXRoIG90aGVyIHRoaW5ncyAoZS5nLiBsaWJsZWFrcyksIGFuZCBzaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseQoJICBhbnl3YXkgKGVpdGhlciB2aWEgc3VwcG9ydCBmb3Igc2ltcGxlIHRpbWVkLWNvbW1hbmRzIHNjcmlwdGluZyBvcgoJICByZW1vdGUgY29udHJvbCB2aWEgREJ1cyBvciBzbykuCgoyMDExLTA2LTA0IDE0OjI4OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9CVUdTOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvUkVBRE1FOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB0b29scy94bWwydGV4dC54c2w6CgkgIHRvb2xzOiByZW1vdmUgZ3N0LXhtbGluc3BlY3QKCSAgUGVvcGxlIHNob3VsZCBqdXN0IHF1ZXJ5IHRoZSByZWdpc3RyeSB0aGVtc2VsdmVzIG9yIHdyaXRlIGEgc21hbGwKCSAgcHl0aG9uIHNjcmlwdCBpZiB0aGV5IG5lZWQgdGhpcyBmdW5jdGlvbmFsaXR5ICh3aGljaCBpcyBsaWtlbHkKCSAgbGVzcyB3b3JrIHRoYW4gcGFyc2luZyB0aGUgWE1MIHRoYXQgdGhpcyBzY3JpcHQgb3V0cHV0cywgYW5kIEknbQoJICBub3QgYXdhcmUgb2YgYW55dGhpbmcgdXNpbmcgdGhlIHhtbDJ0ZXh0IHhzbCBlaXRoZXIpLgoKMjAxMS0wNi0wNCAxNDoyMjowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgIHRvb2xzOiByZW1vdmUgZ3N0LWZlZWRiYWNrCgkgIEl0J3Mgbm90IHJlYWxseSB0aGF0IHVzZWZ1bCwgYW5kIG5vIG9uZSdzIGJlZW4gdXNpbmcgaXQgZm9yIHllYXJzLgoKMjAxMS0wNi0wNCAxNDoxMzowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzLCB0ZXN0czogZml4IHNvbWUgdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDYtMDQgMTQ6MDI6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5nCgoyMDExLTA2LTA0IDAwOjMwOjE1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBXb3JrIGFyb3VuZCBjaGFuZ2VzIGluIGdfYXRvbWljIEFQSQoJICBTZWUgIzY1MTUxNCBmb3IgZGV0YWlscy4gIEl0J3MgYXBwYXJlbnRseSBpbXBvc3NpYmxlIHRvIHdyaXRlIGNvZGUKCSAgdGhhdCBhdm9pZHMgYm90aCB0eXBlIHB1bm5pbmcgd2FybmluZ3Mgd2l0aCBvbGQgZ19hdG9taWMgaGVhZGVycyBhbmQKCSAgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3LiAgVGh1cywgbWFjcm9zIGFuZCBhIHZlcnNpb24gY2hlY2suCgoyMDExLTA2LTAzIDE4OjEwOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBTbWFsbCBkb2MgZml4dXAKCjIwMTEtMDYtMDMgMTU6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmb3IgbGF0ZXN0IEFQaSBjaGFuZ2VzCgoyMDExLTA2LTAzIDE3OjI0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsZWFuIHVwIHByb2JlIGZsYWdzCgoyMDExLTA2LTAzIDE3OjI0OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJICBkb2NzOiBmaXJzdCB2ZXJzaW9uIG9mIHByb2JlcyBkb2N1bWVudAoKMjAxMS0wNi0wMyAxNjo0NjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBmbHVzaGluZyBpbiBwdWxscmFuZ2UgdG9vCgoyMDExLTA2LTAzIDEzOjU2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFudXBzCgkgIFVzZSBkZWZpbmVzIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcyBmb3IgbWFza3MuCgoyMDExLTA2LTAzIDEzOjI1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNvbWUgbW9yZSAwLjExIGZpeG1lcwoJICBkb24ndCBhbGxvdyBzcGFjZXMgaW4gc3RydWN0dXJlIG5hbWVzIGFuZCBmaXggdW5pdCB0ZXN0cy4KCjIwMTEtMDYtMDMgMTI6NDM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1hbGxvY2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogdXBkYXRlIGJ1ZmZlcnBvb2wgZGVzaWduIGRvYwoJICBNb3ZlIHRoZSBidWZmZXJwb29sIGRlc2lnbiBkb2MgZnJvbSBkcmFmdCB0byBwYXJ0IGFuZCBtZXJnZSBpdCB3aXRoCgkgIHRoZSBhbGxvY2F0aW9uIGRyYWZ0LgoKMjAxMS0wNi0wMyAxMjo0MDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IG1ha2UgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIHRvIHdhaXQKCSAgVGhlIG1vc3QgY29tbW9uIGNhc2UgaXMgdG8gbm90IHNwZWNpZnkgYW55IGZsYWdzIHdoZW4gZG9pbmcgdGhlIGFsbG9jYXRpb24uIE1ha2UKCSAgdGhlIGFsbG9jYXRpb24gZnJvbSBhIHBvb2wgd2l0aCBhIG1heGltdW0gYW1vdW50IG9mIGJ1ZmZlcnMgYmxvY2sgYnkgZGVmYXVsdCBmb3IKCSAgdGhpcyByZWFzb24uCgoyMDExLTA2LTAzIDExOjE1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA2LTAyIDE5OjI0OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgY2FwcyBldmVudCBpbnN0ZWFkIG9mIHNldGNhcHMKCjIwMTEtMDYtMDIgMTk6MjM6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIGdob3N0cGFkOiByZW1vdmUgc2V0Y2FwcyBmdW5jdGlvbnMKCSAgUmVtb3ZlIHRoZSBzZXRjYXBzIGZ1bmN0aW9ucywgaXQgaXMgbm93IGhhbmRsZWQgd2l0aCB0aGUgY2FwcyBldmVudC4KCjIwMTEtMDYtMDIgMTg6Mjg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcGFzcyB0aGUgcmlnaHQgYWxpZ25tZW50CgoyMDExLTA2LTAyIDE4OjI4OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1tb3J5OiBzbWFsbCBjbGVhbnVwCgoyMDExLTA2LTAyIDE4OjEzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBhbGlnbm1lbnQgY2FsY3VsYXRpb25zCgkgIEZpeCB0aGUgYWxpZ25tZW50IGNhbGN1bGF0aW9uLgoJICBJbXByb3ZlIGRvY3VtZW50YXRpb24uCgoyMDExLTA2LTAyIDE4OjEzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgcG9vbDogZGVidWcgdGhlIGNvbmZpZwoKMjAxMS0wNi0wMiAxNTozODo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogcmVtb3ZlIHNvbWUgbWFjcm9zIG5vdyBpbiBnbGliCgkgIFdlIGRlcGVuZCBvbiB0aGUgcmlnaHQgZ2xpYiBub3cKCjIwMTEtMDYtMDIgMTU6Mzg6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IGEgRklYTUUKCjIwMTEtMDYtMDIgMTU6Mzg6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBnX3ByaW50ZXJyKCkgYXMgc3RhdGVkIGluIHRoZSBGSVhNRQoKMjAxMS0wNi0wMiAxNTozNzo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHNtYWxsIGNsZWFudXBzCgoyMDExLTA2LTAyIDE0OjA5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogaW5saW5lIHRoZSByZWN1cnNpY2Ugc3RhdGUgbG9jawoKMjAxMS0wNi0wMiAxMzo0NjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGlubGluZSB0aGUgcmVjdXJzaXZlIHN0cmVhbSBsb2NrCgoyMDExLTA2LTAyIDEzOjM1OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIHVudXNlZCBmaWVsZHMgYW5kIG1ldGhvZHMgYW5kIHNpZ25hbHMKCjIwMTEtMDYtMDIgMTM6MjM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBnc3RfdmFsdWVfZml4YXRlIGluc3RlYWQKCSAgVXNlIHRoZSBuZXcgZ3N0X3ZhbHVlX2ZpeGF0ZSgpIGZ1bmN0aW9uIGluc3RlYWQgb2Ygb3VyIG93biB2ZXJzaW9uLgoKMjAxMS0wNi0wMiAxMzoyMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IGFkZCBmdW5jdGlvbiB0byBmaXhhdGUgYSB2YWx1ZQoJICBBZGQgYSBmdW5jdGlvbiB0byBmaXhhdGUgYSBHVmFsdWUuIFRoaXMgaXMgdGhlIHNhbWUgZnVuY3Rpb24gYXMgaXMgaW4gR3N0UGFkLgoKMjAxMS0wNi0wMiAxMzoxODozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHJlbW92ZSBzb21lIGN1c3RvbSByZWZjb3VudGluZyBtZXRob2RzCgkgIFJlbW92ZSBzb21lIGN1c3RvbSBtYWRlIHJlZmNvdW50aW5nIG1ldGhvZHMgYW5kIHVzZSB0aGUgbWluaW9iamVjdCBvbmVzIGluc3RlYWQuCgoyMDExLTA2LTAyIDEyOjQwOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9wdGltaXplIGxpbmtpbmcKCSAgT3B0aW1pemUgbGlua2luZyBieSBvbmx5IHJlbGVhc2luZyB0aGUgcGFkIGxvY2tzIHdoZW4gdGhlcmUgYXJlIGxpbmsgZnVuY3Rpb25zCgkgIGluc3RhbGxlZCBvbiB0aGUgcGFkcy4KCSAgQWRkIHNvbWUgR19MSUtFTFkgaGVyZSBhbmQgdGhlcmUuCgkgIE1vdmUgZXJyb3IgcGF0aHMgb3V0IG9mIHRoZSBtYWluIGNvZGUgZmxvdy4KCjIwMTEtMDYtMDIgMTI6Mzk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgZGVwcmVjYXRlZCBoYXZlLWRhdGEgc2lnbmFsCgoyMDExLTA2LTAyIDExOjIxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBpZGxlIHByb2JlIGZvciBwdWxsIG1ldGhvZCB0b28KCjIwMTEtMDYtMDIgMTE6MDE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbW9yZSBjbGVhbnVwcwoJICBVc2UgbWluaW9iamVjdCB1bnJlZiB3aGVuIHdlIGNhbgoJICBSZXVzZSBleGlzdGluZyBkYXRhIHR5cGUgaWRlbnRpZmllciBpbnN0ZWFkIG9mIGFuIGV4dHJhIGJvb2xlYW4uCgoyMDExLTA2LTAxIDE5OjQ3OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoKMjAxMS0wNi0wMSAxOToyNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IGZ1cnRoZXIgaW1wcm92ZSBwcm9iZXMgYW5kIHBhZCBibG9ja2luZwoJICBLZWVwIHRyYWNrIG9mIGluc3RhbGxlZCBudW1iZXIgb2YgcHJvYmVzIHRvIHNob3J0Y3V0IGVtaXNzaW9uLgoJICBBbGxvdyBOVUxMIGNhbGxiYWNrcywgdGhpcyBpcyB1c2VmdWwgZm9yIGJsb2NraW5nIHByb2Jlcy4KCSAgSW1wcm92ZSBwcm9iZSBzZWxlY3Rpb24gYmFzZWQgb24gdGhlIG1hc2ssIGFuIGVtcHR5IG1hc2sgZm9yIHRoZSBkYXRhIG9yIHRoZQoJICBzY2hlZHVsaW5nIGZsYWdzIGVxdWFscyB0aGF0IGFsbCBwcm9iZXMgbWF0Y2guCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgRG9uJ3QgY2hlY2sgdGhlIGZsdXNoaW5nIGZsYWcgaW4gdGhlIHByb2JlIGNhbGxiYWNrIGhhbmRsZXIsIHRoaXMgbmVlZHMgdG8gYmUKCSAgZG9uZSBiZWZvcmUgY2FsbGluZyB0aGUgaGFuZGxlci4KCSAgRml4IGJsb2NraW5nIHByb2Jlcy4KCSAgRml4IHVuaXQgdGVzdHMKCjIwMTEtMDUtMzEgMTk6MTY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwYWQ6IGltcGxlbWVudCBwYWQgYmxvY2sgd2l0aCBwcm9iZXMKCjIwMTEtMDUtMzAgMTk6MDM6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdXRpbHM6IHJlbW92ZSBfZnVsbCB2YXJpYW50cyBvZiBwcm9iZXMKCSAgUmVtb3ZlIHRoZSBfZnVsbCB2YXJpYW50cyBhbmQgYWRkIHRoZSBkZXN0cm95IG5vdGlmeSB0byB0aGUgcmVndWxhciBtZXRob2RzLgoKMjAxMS0wNi0wMSAxNToyOToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJICBjaGVjay9hYmk6IElnbm9yZSBHc3RYTUwqIG9uIGFybSB3aGVuIG5vdCBwcmVzZW50CgoyMDExLTA1LTMxIDE4OjMxOjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBsb2NhbCBwcml2IHZhcmlhYmxlIGluc3RlYWQgb2YgdHJhbnMtPnByaXYKCjIwMTEtMDUtMzEgMTg6MzA6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgkgIGJhc2UgaXMgdW5jb25kaXRpb25hbGx5IHdyaXR0ZW4gYSBjb3VwbGUgb2YgbGluZXMgYmVsb3cKCjIwMTEtMDUtMzEgMTg6MzA6MzAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZ3N0OiBSZW1vdmUgb2J2aW91cyBkZWFkIGFzc2lnbm1lbnRzCgoyMDExLTA1LTMxIDEzOjQzOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCjIwMTEtMDUtMzAgMTg6Mjk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXdvcmsgcGFkIGJsb2NraW5nLCBhbm90aGVyIGF0dGVtcHQKCSAgTWFrZSB0aGUgUGFkQmxvY2sgY2FsbGJhY2sgdGFrZSBhIEdzdEJsb2NrVHlwZSBwYXJhbWV0ZXIgdG8gaGFuZGxlIHRoZSBkaWZmZXJlbnQKCSAga2luZCBvZiBzdGFnZXMgaW4gdGhlIHBhZCBibG9jay4gVGhpcyBwcm92aWRlcyBmb3IgbW9yZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoJICBpbiB0aGUgcGFkIGJsb2NrIEFQSS4KCSAgU2VwYXJhdGUgYmxvY2tpbmcgYW5kIHVuYmxvY2tpbmcgaW50byBkaWZmZXJlbnQgbWV0aG9kcywgb25seSBibG9ja2luZyBjYW4gZG8gYQoJICBjYWxsYmFjaywgdW5ibG9jayBpcyBhbHdheXMgaW1tZWRpYXRlbHkuIEFsc28gcmVtb3ZlZCBzeW5jaHJvbm91cyBibG9ja2luZywgaXQKCSAgY2FuIGFsd2F5cyBiZSBpbXBsZW1lbnRlZCB3aXRoIGEgY2FsbGJhY2suCgoyMDExLTA1LTMwIDEzOjQwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiByZXdvcmsgcGFkIGJsb2NraW5nLCBmaXJzdCBwYXJ0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQxNWRhODlmM2M5ZmU0NmZjMzM2MTIzNmRmOWEzYjc2ZTYwN2UxMzguCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTA1LTMwIDEyOjI3OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA1LTMwIDExOjMzOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBDb25zaWRlciAiMSIgYW5kICJ7MX0iIGFzIGVxdWFsIGluIGdzdF92YWx1ZV9jb21wYXJlKCkKCSAgUHJldmlvdXNseSB0aGlzIHdhcyBvbmx5IGRvbmUgaW4gdGhlIGlzX3N1YnNldCgpIGNoZWNrIGJ1dAoJICBoYXZpbmcgaXQgb25seSB0aGVyZSBicmluZ3MgdXMgaW50byBkZWZpbml0aW9uLWhlbGwgd2hlcmUKCSAgIjEiIGFuZCAiezF9IiBhcmUgc3Vic2V0IG9mIGVhY2ggb3RoZXIgYnV0IG5vdCBlcXVhbC4KCjIwMTEtMDUtMzAgMDc6NDQ6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBEb24ndCBhY2Nlc3MgdGhlIEdzdE1lc3NhZ2Ugc3RydWN0dXJlIGRpcmVjdGx5CgoyMDExLTA1LTMwIDA3OjQxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMzAgMDc6MzY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggc3Vic2V0IGNoZWNrIGZvciBlcXVpdmFsZW50IGxpc3RzIGFuZCBzY2FsYXIgdmFsdWVzCgkgIEZvciBleGFtcGxlICJ7IDEgfSIgYW5kICIxIiBhcmUgbm90IHN0cmljdGx5IGVxdWFsIGJ1dAoJICBib3RoIGFyZSBhIHN1YnNldCBvZiBlYWNoIG90aGVyLiBBbHNvIGFkZCBhIHVuaXQgdGVzdAoJICBmb3IgdGhpcy4KCjIwMTEtMDUtMjkgMTk6Mjg6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgIGRvY3M6IGZpeCBidWd6aWxsYSBVUkwKCSAgaHRwcCAtPiBodHRwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTEzNjIKCjIwMTEtMDUtMjggMTA6MjQ6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IHhyZWZzIG1vcmUgYXBpIGFyb3VuZCBHc3RTdGF0ZUNoYW5nZSBhbmQgR3N0U3RhdGVDaGFuZ2VSZXR1cm4uCgoyMDExLTA1LTI4IDA5OjUxOjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2NzOiB4cmVmIHRoZSBhc3luYyBtZXNzYWdlcyB0byBHc3RTdGF0ZUNoYW5nZQoKMjAxMS0wNS0yNyAxNzoyMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJld29yayBwYWQgYmxvY2tpbmcsIGZpcnN0IHBhcnQKCSAgTWFrZSBwYWQgYmxvY2sgY2FsbCB0aGUgY2FsbGJhY2sgYXMgc29vbiBhcyB0aGUgcGFkIGlzIG5vdCBpbiB1c2UuIFRoaXMgbWFrZXMgaXQKCSAgcG9zc2libGUgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkLCBubyBhY3Rpdml0eSBpcyBoYXBwZW5pbmcKCSAgb24gdGhlIHBhZCBhbmQgdGhhdCBubyBhY3Rpdml0eSB3aWxsIGV2ZXIgaGFwcGVuIHVudGlsIHRoZSBwYWQgaXMgdW5ibG9ja2VkCgkgIGFnYWluLiBUaGlzIG1ha2VzIHBhZCBibG9ja2luZyB3b3JrIHdoZW4gdGhlcmUgaXMgbm8gZGF0YWZsb3cgb3IgYWZ0ZXIgRU9TIGFuZAoJICBncmVhdGx5IGhlbHBzIGR5bmFtaWMgcGlwZWxpbmVzLgoJICBNb3ZlIHRoZSBwcm9iZSBoYW5kbGluZyByaWdodCB3aGVyZSB3ZSB3YWl0IG9uIHRoZSBwYWQgYmxvY2suIFRoZSB0d28gYXJlCgkgIHJlbGF0ZWQgYnV0IG5vdCB0aGUgc2FtZSBhbmQgdGhlIHByb2JlIGNhbiBldmVudHVhbGx5IGluZmx1ZW5jZSB0aGUgcGFkCgkgIGJsb2NraW5nIGFzIHdlJ2xsIHNlIGxhdGVyLgoJICBGaXggdXAgc29tZSBicm9rZW4gdW5pdCB0ZXN0cyBvciB0ZXN0cyB0aGF0IGZhaWwgd2l0aCB0aGUgbmV3IGJlaGF2aW91ci4KCjIwMTEtMDUtMjcgMTc6MTg6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92ZSBkZXByZWNhdGVkIGNsZWFuIHNodXRkb3duIG1ldGhvZAoKMjAxMS0wNS0yNyAxNDowMDo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZGVhY3RpdmF0ZSB0aGUgcGFkIGFmdGVyIHJlbW92aW5nIGl0CgkgIFdoZW4gcmVsZWFzaW5nIHRoZSByZXF1ZXN0IHBhZCwgZmlyc3QgcmVtb3ZlIGl0IGZyb20gdGhlIGVsZW1lbnQgYW5kIHRoZW4KCSAgZGVhY3RpdmF0ZSBpdC4gSWYgd2UgZG8gaXQgdGhlIG90aGVyIHdheSBhcm91bmQsIGEgZ3N0X3BhZF9wdXNoIG9uIHRoZSBlbGVtZW50CgkgIG1pZ2h0IHJldHVybiB3cm9uZy1zdGF0ZSBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIGRldGVjdCB0aGUgcmVtb3ZlZCBwYWQgaW4gdGhlCgkgIGNoYWluIGZ1bmN0aW9uLgoKMjAxMS0wNS0yNyAxNToxNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBjYXRjaCBhbmQgcHJpbnQgbWlzc2luZy1wbHVnaW4gbWVzc2FnZXMgaW4gZ3N0LWxhdW5jaAoJICBTbyB0aGF0IHVzZXJzIGdldCBzb21lIGZlZWRiYWNrIGlmIHRoZXkncmUgdXNpbmcgYSBwaXBlbGluZQoJICBsaWtlICBzcmMgISBkZWNvZGViaW4yICEgc2luayAgYW5kIGFyZSBtaXNzaW5nIGFuIGVsZW1lbnQuCgoyMDExLTA1LTI3IDE0OjAyOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggZm9yIFNFR01FTlQgZXZlbnQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjcgMTM6NTg6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNyAxMzo1NTozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2lzX3N1YnNldF9zdHJ1Y3R1cmUoKQoJICBBUEk6IGdzdF9jYXBzX2lzX3N1YnNldF9zdHJ1Y3R1cmUoKQoJICBUaGlzIGFsbG93cyB0byBjaGVjayBpZiBhIHN0cnVjdHVyZSBpcyBhIHN1YnNldCBvZiBnaXZlbgoJICBjYXBzIHdpdGhvdXQgYWxsb2NhdGluZyBhIG5ldyBjYXBzIGluc3RhbmNlIGZvciBpdC4KCjIwMTEtMDUtMjcgMTM6NDc6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2lzX3N1YnNldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pc19zdWJzZXQoKQoKMjAxMS0wNS0yNyAxMzozODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKQoJICAuLmFuZCBhcyBhIHJlc3VsdCBnc3RfY2Fwc19pc19lcXVhbCgpIGFuZCBvdGhlcnMuCgkgIFRoaXMgbm93IG9ubHkgY2hlY2tzIGlmIGZvciBldmVyeSBzdWJzZXQgc3RydWN0dXJlIHRoZXJlIGlzCgkgIGEgc3VwZXJzZXQgc3RydWN0dXJlIGluIHRoZSBzdXBlcnNldCBjYXBzLiBQcmV2aW91c2x5IHdlIHdlcmUKCSAgc3VidHJhY3Rpbmcgb25lIGZyb20gYW5vdGhlciwgY3JlYXRpbmcgY29tcGxldGVseSBuZXcgY2FwcwoJICBhbmQgdGhlbiBldmVuIHNpbXBsaWZpZWQgdGhlbS4KCSAgVGhlIG5ldyBpbXBsZW1lbnRpb24gbm93IGlzIGFib3V0IDEuMjcgdGltZXMgZmFzdGVyIGFuZCBkb2Vzbid0CgkgIGJyZWFrIHRoZSAtYmFzZSB1bml0IHRlc3RzIGFyZSBhbnl0aGluZyBhbnltb3JlLgoKMjAxMS0wNS0yNyAxMzozNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBGaXggc3Vic2V0IGNoZWNrIGluIGdzdF9jYXBzX21lcmdlKCkKCSAgQ2FwcyBBIGFyZSBhIHN1YnNldCBvZiBjYXBzIEIgZXZlbiBpZiBjYXBzIEIgZG9lc24ndAoJICBoYXZlIGFsbCBmaWVsZHMgb2YgY2FwcyBBLgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMTEtMDUtMjcgMTI6NTY6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgUmV2ZXJ0ICJjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzMjI0OGE5Yjg1MmJjYjU2OGE1YjY0MjI5OWVjYzhlNWJmNDhlYTEzLgoJICBUaGlzIGJyZWFrcyBzb21lIHRlc3RzIGluIC1iYXNlIGFuZCB0aGUgZmFpbHVyZXMgc2hvdWxkCgkgIGJlIGZpeGVkIGZpcnN0LgoKMjAxMS0wNS0yNyAxMjo0NTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBPcHRpbWl6ZSBnc3RfY2Fwc19pc19zdWJzZXQoKQoJICAuLmFuZCBhcyBhIHJlc3VsdCBnc3RfY2Fwc19pc19lcXVhbCgpIGFuZCBvdGhlcnMuCgkgIFRoaXMgbm93IG9ubHkgY2hlY2tzIGlmIGZvciBldmVyeSBzdWJzZXQgc3RydWN0dXJlIHRoZXJlIGlzCgkgIGEgc3VwZXJzZXQgc3RydWN0dXJlIGluIHRoZSBzdXBlcnNldCBjYXBzLiBQcmV2aW91c2x5IHdlIHdlcmUKCSAgc3VidHJhY3Rpbmcgb25lIGZyb20gYW5vdGhlciwgY3JlYXRpbmcgY29tcGxldGVseSBuZXcgY2FwcwoJICBhbmQgdGhlbiBldmVuIHNpbXBsaWZpZWQgdGhlbS4KCSAgVGhlIG5ldyBpbXBsZW1lbnRpb24gbm93IGlzIGFib3V0IDEuMjcgdGltZXMgZmFzdGVyLgoKMjAxMS0wNS0yNyAxMTo0NToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRHJvcCBzdGlja3kgZXZlbnRzIHB1c2hlZCBvbiBmbHVzaGluZyBzcmNwYWRzIGluc3RlYWQgb2YgYWN0aXZhdGluZyB0aGVtIGltbWVkaWF0ZWx5CgoyMDExLTA1LTI2IDE0OjU2OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQYXNzIHRoZSBjb21wbGV0ZSBjYXBzIHRvIHRyYW5zZm9ybV9jYXBzCgkgIEluc3RlYWQgb2YgcGFzc2luZyBpdCBzdHJ1Y3R1cmUgYnkgc3RydWN0dXJlLiBUaGlzIGFsbG93cwoJICBiZXR0ZXIgb3B0aW1pemVkIHRyYW5zZm9ybV9jYXBzIGZ1bmN0aW9ucyBhbmQgYWxsb3dzIGJldHRlcgoJICB0cmFuc2Zvcm1hdGlvbiBkZWNpc2lvbnMuCgkgIFNlZSBidWcgIzYxOTg0NC4KCjIwMTEtMDUtMjcgMDk6MDU6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlbmQgYW4gdXBkYXRlIE5FV1NFR01FTlQgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgZHVyYXRpb24gY2hhbmdlcwoJICBUaGlzIGFsbG93cyBzdHJlYW1pbmcgdGhlIGNvbXBsZXRlIGZpbGUgZm9yIGZpbGVzIHRoYXQgaGF2ZSBncm93biBzaW5jZQoJICBzdHJlYW1pbmcgc3RhcnRlZC4KCSAgRml4ZXMgYnVnICM2NDc5NDAuCgoyMDExLTA1LTI2IDE5OjQ1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIF9wdXNoX2V2ZW50CgkgIFJld29yayBfcHVzaF9ldmVudCgpIGEgbGl0dGxlIHNvIHRoYXQgaXQgZHJvcHMgZXZlbnRzIG9uIGJsb2NraW5nIHBhZHMuCgkgIE1ha2Ugc3VyZSB0aGF0IGV2ZW50cyBhcmUgZm9yd2FyZGVkIHdoZW4gd2UgdW5ibG9jay4KCSAgQWRkIGNvdW50ZXIgb24gdGhlIHBhZCB0byBrZWVwIHRyYWNrIG9mIGJ1c3kgcGFkcy4KCjIwMTEtMDUtMjYgMTg6MjE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVmYWN0b3IgcHJlIGFuZCBwb3N0IGNoYWluIGNvZGUKCjIwMTEtMDUtMjYgMTc6NTA6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDoga2VlcCBjb3VudGVyIGZvciBhY3RpdmUgcGFkcwoJICBLZWVwIGEgY291bnRlciB0byBtYXJrIHRoZSBhbW91bnQgb2YgdGhyZWFkcyBjdXJyZW50bHkgcHVzaGluZyBkYXRhIG9uIHRoZSBwYWQuCgoyMDExLTA1LTI2IDE3OjM5OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIHByZSBwdXNoIGNvZGUKCSAgUmVmYWN0b3IgdGhlIGNvZGUgdGhhdCBpcyBleGVjdXRlZCBhcyB0aGUgZmlyc3Qgc3RlcCBvZiBhIHB1c2ggb3BlcmF0aW9uIHdoZXJlCgkgIHdlIGNoZWNrIHRoZSBwcm9iZXMgYW5kIGJsb2NraW5nIGFuZCByZXNvbHZlIHRoZSBwZWVyLgoKMjAxMS0wNS0yNiAxNzowODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IHJlbW92ZSBwYWQgY2FjaGUKCSAgUmVtb3ZlIHRoZSBwYWQgY2FjaGUgYXMgdGhpcyBpcyBnb2luZyB0byBiZSByZXdvcmtlZCBmb3IgbmV3IHBhZCBibG9ja2luZyBhbmQKCSAgcHJvYmVzLgoKMjAxMS0wNS0yNiAxNjo0ODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBoYW5kbGluZyBvZiBidWZmZXIgbGlzdHMKCSAgSW1wbGVtZW50IGEgZGVmYXVsdCBidWZmZXItbGlzdCBmdW5jdGlvbiBpbiBjYXNlIHRoZSBlbGVtZW50IGRvZXNuJ3QgaW1wbGVtZW50CgkgIG9uZS4KCSAgQWxzbyBwYXNzIGJ1ZmZlci1saXN0cyB0byB0aGUgaGF2ZS1kYXRhIHNpZ25hbCwgdGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHNvbWUKCSAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBjb2RlLgoKMjAxMS0wNS0yNiAxNjoxNTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBvbGQgZ3N0X3BhZF9zZXRfYmxvY2tlZCBtZXRob2RzCgoyMDExLTA1LTI2IDE0OjE0OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBwdXNoc3JjOiBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGluIHB1c2hzcmMgcXVlcnkgaGFuZGxlcgoKMjAxMS0wNS0yNiAxMzozNjo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTI1IDE2OjAyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiB3ZSBjYW4gbm93IHVzZSBHTGliIDIuMjQgQVBJIHVuY29uZGl0aW9uYWxseQoKMjAxMS0wNS0yNSAxNTo1NDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvID49IDIuMjQKCSAgaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvd2lraS9SZWxlYXNlUGxhbm5pbmcvR0xpYlJlcXVpcmVtZW50CgoyMDExLTA1LTI1IDE1OjM4OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHVwZGF0ZSByZWxlYXNlIGluc3RydWN0aW9ucyBmb3IgZ25vbWUgY2hhbmdlCgoyMDExLTA1LTI1IDEzOjQwOjMwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogUGxhY2F0ZSBnY2MgYnkgZGVmaW5pbmcgRVdPVUxEQkxPQ0sgdG8gc29tZXRoaW5nCgoyMDExLTA1LTI1IDEyOjQ3OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IEZpeCBXQUtFX0VWRU5UKCkgdG8gYmVoYXZlIHBvc2l4bHkgb24gV2luZG93cwoKMjAxMS0wNS0yNCAyMDoyODoxOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIHJlZ2lzdHJ5YmluYXJ5OiBzbWFsbCBjbGVhbnVwcwoJICBSZW1vdmUgdW5uZWVkZWQgYnJhY2VzIGZyb20gc3RyaW5nIGRlZmluZS4gU21hbGwgZG9jIGltcHJvdmVtZW50LgoKMjAxMS0wNS0yNCAyMDoyNzowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IHVzZSBndWludCBmb3IgdGhlIHZlcnNpb24gbnVtYmVyIHBhcnRzCgkgIFVzZSB1bnNpZ25lZCBpbnRlZ2VycyBmb3IgZXh0cmEgc2FmZXR5IChsaWtlIHdlIGRvIGluIHBsdWdpbiB2ZXJzaW9uIHBhcnNpbmcpLgoKMjAxMS0wNS0yNCAxODozOTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICByZW1vdmUgc29tZSBtb3JlIGRlcHJlY2F0ZWQgbWV0aG9kcwoKMjAxMS0wNS0yNCAxODoyOTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBwYWR0ZW1wbGF0ZTogcmVtb3ZlIHVudXNlZCBmbGFnCgoyMDExLTA1LTI0IDE4OjE3OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgZmVhdHVyZTogdXNlIG9iamVjdCBuYW1lCgkgIFJlbW92ZSB0aGUgbmFtZSBwcm9wZXJ0eSBmcm9tIHRoZSBwbHVnaW4gZmVhdHVyZSBhbmQgcG9ydCBjb2RlIHRvIHVzZSB0aGUgb2JqZWN0CgkgIG5hbWUgaW5zdGVhZC4KCjIwMTEtMDUtMjQgMTg6MTY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgcmVtb3ZlIG9sZCBnbGliIGNoZWNrCgoyMDExLTA1LTI0IDE3OjQzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNCAxNzozNjoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBzY2hlZHVsaW5nOiBwb3J0IHRvIG5ldyBzY2hlZHVsaW5nIHF1ZXJ5CgoyMDExLTA1LTI0IDEyOjUyOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgU0NIRURVTElORyBxdWVyeQoJICBBZGQgYSBuZXcgcXVlcnkgdG8gcmVwbGFjZSB0aGUgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbi4KCjIwMTEtMDUtMjQgMTk6NDM6NTggKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgZmFpbF91bmxlc3NfZXF1YWxzX2ludDY0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5NzMKCjIwMTEtMDUtMjQgMTY6MTQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogRm9yd2FyZCBzdGlja3kgZXZlbnRzIHRvIG5ld2x5IGNyZWF0ZWQgc3JjcGFkcwoKMjAxMS0wNS0yNCAxNjoxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBuZXdseSBjcmVhdGVkIHNyY3BhZHMKCjIwMTEtMDUtMjQgMTY6MDg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQWRkIGdzdF9wYWRfc3RpY2t5X2V2ZW50c19pdGVyYXRlKCkgZnVuY3Rpb24KCjIwMTEtMDUtMjQgMTM6Mjc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IGZvciBHc3RJdGVyYXRvciBBUEkgY2hhbmdlcwoKMjAxMS0wNS0yNCAxMzoyODowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZXZlcnQgImRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZTFjYzMxNzZkNmZiODAyM2JiZTBjNzMzNjE1YjJhOGM0MjBhMjA3Ny4KCSAgVGhpcyBpcyBub3QgdGhlIDAuMTEgYnJhbmNoLi4uCgoyMDExLTA1LTI0IDEzOjI3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjQgMDk6NDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5oCgoyMDExLTA1LTI0IDAwOjI2OjQwICswMzAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBjaXRhLnV0b3JvbnRvLmNhPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBpbXByb3ZlIHRoZSBHU1RfVElNRV9GT1JNQVQvQVJHUyBkb2NzCgoyMDExLTA1LTIzIDIzOjQwOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGRvY3M6IGhpZGUgdGhpcyBmcm9tIHRoZSBkb2NzCgoyMDExLTA1LTIzIDE4OjMwOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB1c2UgR1NUX1NFR01FTlRfRk9STUFUIGZvciBzZWdtZW50cwoKMjAxMS0wNS0yMyAxODoxNTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IGZpeGVzIGZvciBidWZmZXJwb29sIGhhbmRsaW5nCgkgIERvbid0IGVycm9yIG91dCB3aGVuIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHJldHVybnMgc3VjY2Vzcy4KCSAgRG8gYnVmZmVycG9vbCBxdWVyeSBhZnRlciB3ZSBwdXNoZWQgdGhlIGNhcHMgZXZlbnQgZG93bnN0cmVhbSBzbyB0aGF0IHdlIGNhbiBnZXQKCSAgYSBnb29kIGJ1ZmZlcnBvb2wgc3VnZ2VzdGlvbi4KCSAgQWxzbyBwcm94eSB0aGUgYnVmZmVycG9vbCBxdWVyeSBkb3duc3RyZWFtIHdoZW4gd2Ugb3BlcmF0ZSBpbiBpbl9wbGFjZSBtb2RlLgoKMjAxMS0wNS0yMyAxODoxNDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNS0yMyAxNjo1MzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICB0cmFuc2Zvcm06IHJlc2V0IHJlY29uZmlndXJlIHN0YXRlCgkgIFdoZW4gd2UgbmVnb3RpYXRlIG5ldyBjYXBzLCByZXNldCB0aGUgcmVjb25maWd1cmUgc3RhdGUuCgoyMDExLTA1LTIwIDE4OjU2OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFdJUCBoYW5kbGUgYnVmZmVycG9vbAoKMjAxMS0wNS0yMSAxOTowNjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBjYWxsaW5nIF9zZXRfY2FwcygpIG9uIHRoZSBzcmNwYWQKCSAgQXZvaWQgaW5zdGFsbGluZyBhIHNldGNhcHMgZnVuY3Rpb24gb24gdGhlIHNyY3BhZCBhbmQgY2FsbGluZyB0aGUgc2V0Y2FwcwoJICBmdW5jdGlvbiwgd2UgY2FuIGRvIG1vcmUgZWZmaWNpZW50bHkgd2l0aCBzZW5kaW5nIHRoZSBldmVudCBvdXJzZWxmIGFuZCBjYWxsaW5nCgkgIG91ciB2bWV0aG9kLgoKMjAxMS0wNS0yMCAxNjowMzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHBsdWdpbi5oCgoyMDExLTA1LTIwIDE1OjU4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIG1vcmUgY29kZQoJICBSZW1vdmUgc29tZSBtb3JlIHVudXNlZCBjb2RlIGZyb20gYmFzZXRyYW5zZm9ybS4KCSAgUHJlcGFyZSBmb3IgaW1wbGVtZW50aW5nIGJ1ZmZlcnBvb2xzLgoKMjAxMS0wNS0yMCAxNTo1MDowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBhcGkKCjIwMTEtMDUtMjAgMTU6NDg6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkZXByZWNhdGlvbi1ndWFyZHM6IGZpeHVwIGZvciBjb21taXQgOWZmNGVjMzEwNGQyNTEwYjhmMzc5ZmYzOGM2NzE2ODJmZjc5NWUzMwoJICBSZW1vdmUgdGhlIGRlcHJlY2F0aW9uIGd1YXJkcyBmb3IgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIGFnYWluIChldmVuIHRob3VnaCBpdAoJICBpcyBkZXByZWNhdGVkKSBhcyB3ZSB1c2UgaXQgaW4gdGhlIHRlc3RzLiBSZW1vdmUgIl8iIGZvciBpbnRsaW5rZnVuYy4KCjIwMTEtMDUtMjAgMTM6MDY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yMCAxMzowMzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBPbmx5IHJlaW5pdCB0aGUgY2FjaGVkIEdzdENsb2NrSUQgaWYgaXQgaXMgZm9yIHRoZSBzYW1lIGNsb2NrCgkgIFRoZSBjbG9jayBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGNsb2NrIElEIHdhcyBjcmVhdGVkIGFuZCBpbgoJICB0aGF0IGNhc2Ugd2UgaGF2ZSB0byByZXF1ZXN0IGEgbmV3IG9uZS4KCjIwMTEtMDUtMjAgMTI6NDM6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgbWV0aG9kIHRvIGdldCBtZXRhZGF0YQoJICBBZGQgYSBtZXRob2QgdG8gZ2V0IHRoZSBtZXRhZGF0YSBmcm9tIGEga2xhc3MuCgoyMDExLTA1LTIwIDEyOjQzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGZhY3Rvcnk6IGZpeCB0eXBvCgoyMDExLTA1LTIwIDEyOjE4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBBbHdheXMgc2VuZCBhIFNFR01FTlQgZXZlbnQgd2hlbiB0aGUgYWN0aXZlIHBhZCBjaGFuZ2VzCgoyMDExLTA1LTIwIDEyOjE2OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggY29weSZwYXN0ZSBtaXN0YWtlIGluIHRoZSBzcmNwYWQgZXZlbnQgZnVuY3Rpb24KCjIwMTEtMDUtMjAgMTI6MDc6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeQoKMjAxMS0wNS0yMCAxMjowMDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2VuZCB1cHN0cmVhbSBldmVudHMgdG8gYWxsIHNpbmtwYWRzLCBub3Qgb25seSB0aGUgc2VsZWN0ZWQgb25lCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IFNFRUsgZXZlbnRzIGFyZSBzZW50IHRvIGFsbCB1cHN0cmVhbSBlbGVtZW50cywgd2hpY2ggaXMKCSAgcmVxdWlyZWQgaWYgZGlmZmVyZW50IHN0cmVhbXMgYXJlIGNvbXBsZXRlbHkgZGlzdGluY3QgcGlwZWxpbmUgcGFydHMuIEFsc28gdGhpcwoJICBhbGxvd3MgUW9TIHRvIGJlIGRvbmUgb24gZGVzZWxlY3RlZCBzdHJlYW1zLCBmbHVzaGVzIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LAoJICBldGMuCgoyMDExLTA1LTIwIDExOjM2OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcGVuZGluZyBldmVudCBmb3Igc3RpY2t5IGV2ZW50cwoJICBDaGFuZ2UgdGhlIHN0aWNreSBldmVudCBhcnJheSBzbyB0aGF0IGl0IGNvbnRhaW5zIGEgcGVuZGluZyBhbmQgYW4gYWN0aXZlIGV2ZW50LgoJICBFdmVudHMgb24gdGhlIHNpbmtwYWQgYXJlIGNvcGllZCB0byB0aGUgcGVuZGluZyBhcnJheSBhbmQgYWZ0ZXIgdGhlIGV2ZW50ZnVuYwoJICByZXR1cm5lZCBUUlVFLCBtb3ZlZCB0byB0aGUgYWN0aXZlIGV2ZW50LiBUaGlzIGFsbG93cyB1cyB0byBxdWV1ZSBuZXcgZXZlbnRzCgkgIGxpa2Ugd2hlbiB3ZSBkbyBwZXItcGFkIG9mZnNldHMgd2l0aG91dCByZW1vdmluZyB0aGUgY3VycmVudGx5IGFjdGl2ZSBldmVudC4KCSAgUmVtb3ZlIHRoZSBhY3RpdmUgYXJndW1lbnQgZnJvbSB0aGUgZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KCkgbWV0aG9kLCB0aGUKCSAgcGVuZGluZyBldmVudHMgYXJlIG5vdCBzb21ldGhpbmcgd2Ugd2FudCB0byBleHBvc2UuCgoyMDExLTA1LTIwIDAwOjM5OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgcHJlc2V0OiBpbmNsdWRlIGNsZWFudXAKCSAgT25seSBoYXZlIGluY2x1ZGUgaW4gdGhlIGluc3RhbGxlZCBoZWFkZXIgd2UgbmVlZCB0byB1c2UgaXQuIE1vdmUgdGhlIGluY2x1ZGVzCgkgIG5lZWRlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gdG8gdGhlIGMgZmlsZS4KCjIwMTEtMDUtMTkgMjM6MTk6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBpbnRyb3NwZWN0aW9uIGRhdGEKCSAgTm93IG1vcmUgZmlsZXMgYXJlIG1lcmdlZCBhbmQgcHJvZHVjZWQgaW4gYSBjYW5vbmljYWwgZmFzaGlvbiwgd2hpY2ggaG9wZWZ1bGx5CgkgIGNyZWF0ZXMgbGVzcyBvciBubyBkZWx0YSBpbiB0aGUgZnV0dXJlLgoKMjAxMS0wNS0xOSAyMjo1NjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5ZTViYmQ1IHRvIDY5Yjk4MWYKCjIwMTEtMDUtMTkgMTk6MDc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBjYXBzIGFyZSBub3Qgc3RvcmVkIG9uIGZsdXNoaW5nIHBhZHMKCSAgQ2FwcyBhcmUgbm93IGFsc28gc3RvcmVkIG9uIGZsdXNoaW5nIHBhZHMgaW4gdGhlIGluYWN0aXZlIHN0YXRlLgoKMjAxMS0wNS0xOSAxOTowMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhcHBseSBwYWQgb2Zmc2V0IG9uIHNpbmtwYWQgZXZlbnRzIHRvbwoJICBBcHBseSB0aGUgcGFkIG9mZnNldCBpbiB0aGUgc2VuZF9ldmVudCgpIGZ1bmN0aW9uIGFzIHdlbGwuCgoyMDExLTA1LTE5IDE4OjI3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBwZXItcGFkIG9mZnNldHMKCSAgV2hlbiBsaW5raW5nIHBhZHMgYW5kIHdoZW4gY29weWluZyBhIHNlZ21lbnQgZXZlbnQgZnJvbSB0aGUgc291cmMgcGFkIHRvIHRoZQoJICBzaW5rcGFkLCBhcHBseSB0aGUgc3JjIGFuZCBzaW5rcGFkIG9mZnNldHMgdG8gdGhlIHNlZ21lbnQgYmFzZS4gTWFrZSBzdXJlIHRoYXQKCSAgd2Ugb25seSBtb2RpZnkgdGhlIGV2ZW50IHN0b3JlZCBvbiB0aGUgc2lua3BhZCBhbmQgbmV2ZXIgdGhlIG9uZSBvbiB0aGUgc291cmNlCgkgIHBhZC4KCSAgV2hlbiBjaGFuZ2luZyB0aGUgcGFkIG9mZnNldCwgcGVyZm9ybSB0aGUgc2VnbWVudCBjb3B5IHdpdGggdGhlIHVwZGF0ZWQgb2Zmc2V0cy4KCSAgV2hlbiBwdXNoaW5nIGEgc2VnbWVudCBldmVudCwgYXBwbHkgdGhlIHNyY3BhZCBvZmZzZXQgYmVmb3JlIHNlbmRpbmcgdGhlIGV2ZW50CgkgIHRvIHRoZSBwZWVyIHBhZC4KCSAgVGhpcyBwYXJ0IGlzIG1pc3NpbmcgdGhlIGFkanVzdG1lbnQgb2YgdGhlIHNlZ21lbnQgZXZlbnQgb24gdGhlIHNpbmtwYWQsIHdoaWNoCgkgIGlzIGZvciBhIGxhdGVyIHBhdGNoLgoKMjAxMS0wNS0xOSAxNjoyNjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBtZXRob2RzIHRvIGFkanVzdCB0aGUgb2Zmc2V0CgkgIEFkZCBtZXRob2RzIHRvIGFkanVzdCB0aGUgb2Zmc2V0LiBUaGlzIHdpbGwgYmUgdXNlZCB0byBjaGFuZ2UgdGhlIHNlZ21lbnQgZXZlbnRzCgkgIHdpdGggYW4gb2Zmc2V0IHNvIHRoYXQgd2UgY2FuIHR3ZWFrIHRoZSB0aW1pbmcgb2YgdGhlIHN0cmVhbSBvbiBhIHBlci1wYWQgYmFzZS4KCjIwMTEtMDUtMTkgMTI6MTE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBQb3J0IHRvIHRoZSBuZXcgc2VnbWVudCBBUEkKCSAgVGhlIHN3aXRjaCBhY3Rpb24gc2lnbmFsIHdpdGggdGhlIHN0b3AgYW5kIHN0YXJ0IHJ1bm5pbmcgdGltZXMKCSAgaXMgbm90IG5lY2Vzc2FyeSBhbnltb3JlLiBDbG9zaW5nIG9mIHNlZ21lbnRzIGlzIG5vdCBuZWNlc3NhcnkKCSAgYW5kIGFkanVzdGluZyB0aGUgc3RhcnQgcnVubmluZyB0aW1lIG9mIGEgc2VnbWVudCBjYW4gbGF0ZXIgYmUKCSAgZG9uZSB3aXRoIG5ldyBHc3RQYWQgQVBJLgoKMjAxMS0wNS0xOSAxMTozMDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0Z2hvc3RwYWQuaAoKMjAxMS0wNS0xOCAxOTo0Mzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nIHNpbmtwYWRzIHRvbwoJICBGaXJzdCBzdG9yZSB0aGUgc3RpY2t5IGV2ZW50IG9uIHRoZSBzaW5rcGFkIGluIHRoZSBpbmFjdGl2ZSBzdGF0ZSwgdGhlbiBjaGVjawoJICBmb3IgdGhlIGZsdXNoaW5nIGZsYWcuIFdlIHdhbnQgdG8gaGF2ZSB0aGUgZXZlbnRzIG9uIHNpbmtwYWRzIGF0IGFsbCB0aW1lcywKCSAgcmVhZHkgdG8gYmUgYWN0aXZhdGVkIHdoZW4gdGhlIHBhZCBiZWNvbWVzIGFjdGl2ZS4KCjIwMTEtMDUtMTggMTg6NTM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbW92ZSBjYXBzIGNoZWNrIHRvIGNlbnRyYWwgbG9jYXRpb24KCSAgTWFrZSBhIGZ1bmN0aW9uIHRvIGNhbGwgdGhlIGV2ZW50ZnVuYyBhbmQgcGVyZm9ybSBhIGNhcHMgY2hlY2sgd2hlbiB3ZSBhcmUKCSAgZGlzcGF0Y2hpbmcgYSBjYXBzIGV2ZW50LgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhbGwgY29kZSBwYXRocyBjb3JyZWN0bHkgY2hlY2sgdGhhdCB0aGUgY2FwcyBhcmUKCSAgYWNjZXB0YWJsZSBiZWZvcmUgc2VuZGluZyB0aGUgY2FwcyB0byB0aGUgZXZlbnRmdW5jdGlvbi4KCjIwMTEtMDUtMTggMTg6NTI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGF2b2lkIGNhbGxpbmcgc2V0Y2FwcyB0b28gbWFueSB0aW1lcwoJICBEb24ndCBjYWxsIHNldGNhcHMsIHRoZSBjYXBzIGV2ZW50IHdpbGwgdGFrZSBjYXJlIG9mIHByb3BhZ2F0aW5nIHRoZSBjYXBzIG9uIGFsbAoJICBwYWRzLgoKMjAxMS0wNS0xOCAxODo0ODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIGFsbG9jYXRpb24gcXVlcnkgbmFtZQoJICBBZGQgQUxMT0NBVElPTiBxdWVyeSBuYW1lIGFuZCBndWFyZCBzb21lIGZ1bmN0aW9ucyBhZ2FpbnN0IGludmFsaWQgcXVlcmllcy4KCjIwMTEtMDUtMTggMTY6NTY6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBNYWtlIFNFR01FTlQgZXZlbnQgcGFyc2luZyBBUEkgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVycwoKMjAxMS0wNS0xOCAxNjo0Nzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWxheCBjYXBzIGNoZWNrCgkgIEFsc28gcnVuIHRoZSBjYXBzIHRyYW5zZm9ybSBmdW5jdGlvbiBvbiBBTlkgY2FwcywgbGlrZSB3ZSB1c2VkIHRvIGRvIGJlZm9yZS4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgY2Fwc2ZpbHRlciBoYXMgYSBjaGFuY2UgdG8gZmlsdGVyIEFOWSBjYXBzIGFzIHdlbGwuCgoyMDExLTA1LTE4IDE2OjI5OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBmb3JnZXQgdG8gdGFrZSB0aGUgb2JqZWN0IGxvY2sgd2hlbiBnZXR0aW5nIGEgc3RpY2t5IGV2ZW50CgoyMDExLTA1LTE4IDE2OjI2OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBmdW5jdGlvbiB0byBnZXQgc3RpY2t5IGV2ZW50cyBmcm9tIGEgcGFkCgkgIEFQSTogZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KCkKCjIwMTEtMDUtMTggMTU6NDM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggZXZlbnQgY29weQoJICBGaXggcGFyZW50IHJlZmNvdW50IG9uIGV2ZW50IGNvcHkuCgkgIEZpeCB1bml0IHRlc3QuCgoyMDExLTA1LTE4IDE1OjI5OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIHByb3BlcnR5IGNoYW5nZSBpbiBjYWxsc2V0Y2FwcwoJICBOb3RpZnkgdGhlIGNhcHMgcHJvcGVydHkgY2hhbmdlIGluIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJsZSBmdW5jdGlvbiB0byBjYWxsIHRoZQoJICBzZXRjYXBzIGZ1bmN0aW9uLgoKMjAxMS0wNS0xOCAxNjowOToxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZDM1MDczIHRvIDllNWJiZDUKCjIwMTEtMDUtMTggMTU6MDQ6NDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBHc3RQcm94eVBhZCBmcm9tIHByaXZhdGUgc2VjdGlvbgoKMjAxMS0wNS0xOCAxNTowMjowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGRvY3M6IHVzZSB0aGUgc2FtZSBuYW1lIGZvciB0aGUgYXJndW1lbnQgaW4gcHJvdG90eXBlIGFuZCBkb2NzCgoyMDExLTA1LTE4IDE0OjU5OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcHV0IGdlbmVyYXRlZCBzb3VyY2VzIHRvIEJVSUxUX1NPVVJDRVMgYW5kIGNsZWFuIHRoZW0gb24gbWFrZSBjbGVhbgoKMjAxMS0wNS0xOCAxMzoxOTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMTggMTM6MTQ6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoJICBnc3QvZ3N0cGFkLmMKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3RwbHVnaW4uaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgoyMDExLTA1LTE4IDE0OjEwOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogcmVpbnNlcnQgbWlzc2luZyBzcGFjZSB0byBmaXggcHJldmlvdXMgY29tbWl0CgoyMDExLTA1LTE4IDEzOjU0OjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogc2ltcGxpZnkgdGhlIHNuaXBldCBleHRyYWN0aW9uIHJ1bGVzCgkgIFVzZSAkPCBpbnN0ZWFkIG9mIHJlcGVhdGluZyB0aGUgbmFtZSBvZiB0aGUgZGVwZW5kZW5jeS4KCjIwMTEtMDUtMTggMTA6NTk6MzggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBkb24ndCBleHRyYWN0IHRoZSB4bWwgZXhhbXBsZSBhbnltb3JlLCBpdHMgZ29uZQoJICBBcyBhIGZvbGxvd3VwIGZvciBjb21taXQgY2RhNWEzNTNkMjczMjZjMDI3MmE3OWM5MmMxMWMyMjFhNDA5MmRhNCBkb24ndCB0cnkKCSAgZXh0cmFjdGluZyBhbiBleGFtcGxlIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZC4KCjIwMTEtMDUtMTggMTI6MjM6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDZkZmNlYSB0byBmZDM1MDczCgoyMDExLTA1LTE4IDExOjIxOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcyBzb21lIG1vcmUKCjIwMTEtMDUtMTggMTE6MDg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJld29yayBzdGlja3kgZXZlbnRzIGEgbGl0dGxlCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvY3Mgd2l0aCBzb21lIGNsZWFyIHJ1bGVzIGZvciBob3cgc3RpY2t5IGV2ZW50cyBhcmUKCSAgaGFuZGxlZC4KCSAgUmVpbXBsZW1lbnQgdGhlIHN0aWNreSB0YWdzLCB1c2UgYSBzbWFsbCBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgZXZlbnQgYW5kIGl0cwoJICBjdXJyZW50IHN0YXRlIChhY3RpdmUgb3IgaW5hY3RpdmUpLgoJICBFdmVudHMgb24gc2lua3BhZHMgb25seSBiZWNvbWUgYWN0aXZlIHdoZW4gdGhlIGV2ZW50IGZ1bmN0aW9uIHJldHVybmVkIHN1Y2Nlc3MKCSAgZm9yIHRoZSBldmVudC4KCSAgV2hlbiBsaW5raW5nLCBvbmx5IHVwZGF0ZSBldmVudHMgdGhhdCBhcmUgZGlmZmVyZW50LgoJICBBdm9pZCBtYWtpbmcgYSBjb3B5IG9mIHRoZSBldmVudCBhcnJheSwgdXNlIHRoZSBvYmplY3QgbG9jayB0byBwcm90ZWN0IHRoZSBldmVudAoJICBhcnJheSBhbmQgcmVsZWFzZSBpdCBvbmx5IHRvIGNhbGwgdGhlIGV2ZW50IGZ1bmN0aW9uLiBUaGlzIHdpbGwgbmVlZCB0byBjaGVjawoJICBpZiBzb21ldGhpbmcgY2hhbmdlZCwgbGF0ZXIuCgkgIERpc2FibGUgYSB0ZXN0IGluIHRoZSB1bml0IHRlc3QsIGl0IGNhbid0IHdvcmsgeWV0LgoKMjAxMS0wNS0xNyAyMjoxNzoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1haW50YWluIGZyYW1lIHN0YXRlIGR1cmluZyBmcmFtZSBwYXJzaW5nIHJvdW5kCgkgIFNlZSAjNjUwMDkzLgoKMjAxMS0wNS0xMiAxMTo1NToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgbGF0ZW5jeSBxdWVyeSBzdXBwb3J0CgoyMDExLTA1LTE3IDIyOjE1OjM4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBtaW5pbXVtIGZyYW1lIHNpemUgaGFuZGxpbmcgbW9yZSBlZmZpY2llbnQgYW5kIGNvbnZlbmllbnQKCSAgV2hpbGUgc29tZSBmb3JtYXRzIGFsbG93IHN1YmNsYXNzIHRvIGRldGVybWluZSBhIHNwZWNpZmljIHN1YnNlcXVlbnQKCSAgbmVlZGVkIGZyYW1lIHNpemUsIG90aGVycyBtYXkgdG8gbmVlZCB0byBzY2FuIGZvciBtYXJrZXJzIGFuZCBjYW4gb25seQoJICByZXF1ZXN0ICdhZGRpdGlvbmFsIGRhdGEnIGJ5IHdoYXRldmVyIHJlYXNvbmFibGUgYXZhaWxhYmxlIHN0ZXAuCgkgIEluIHB1c2ggbW9kZSwgdHJ5aW5nIHRvIG1pbmltaXplIGFkZGl0aW9uYWwgbGF0ZW5jeSBsZWFkcyB0byBzdGVwIHNpemUKCSAgYmVpbmcgdGhlIG5leHQgaW5wdXQgYnVmZmVyLiAgSW4gcHVsbCBtb2RlLCBhbnkgcmVhc29uYWJsZSBzdGVwIHNpemUKCSAgKHN1Y2ggYXMgYWxyZWFkeSB1c2VkIGJ5IGJ1ZmZlciBjYWNoaW5nKSBjYW4gYmUgYXBwbGllZC4KCjIwMTEtMDUtMTcgMjI6Mzg6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZXQgY29ycmVjdCBidWZmZXIgc2l6ZQoKMjAxMS0wNS0wNiAxMDo1NDowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogc2hvdyBmbGFncyB0aGUgc2FtZSB3YXkgdGhleSBuZWVkIHRvIGJlIGVudGVyZWQKCSAgVGhlIChkZSlzZXJpYWxpc2F0aW9uIHVzZXMgIisiIGFuZCBub3QgIiB8ICIuCgoyMDExLTA0LTI4IDExOjM0OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGF2b2lkIGR1cGxpY2F0aW5nIGZlYXR1cmUtPm5hbWUKCSAgVGhlIGZlYXR1cmUgbmFtZSBpcyBub3Qgc3VwcG9zZWQgdG8gY2hhbmdlIG92ZXIgdGltZSBhbnl3YXkuIEluIG9yZGVyIHRvIGVuZm9yY2UKCSAgdGhpcyBwYXJlbnRpemUgZmVhdHVyZXMgdG8gdGhlIHJlZ2lzdHJ5IGFuZCBtYWtlIHRoZSBmZWF0dXJlLT5uYW1lIHBvaW50aW5nIHRvCgkgIEdzdE9iamVjdDpuYW1lLiBJbiAwLjExIHdlIGNvdWxkIGNvbnNpZGVyIG9mIHJlbW92aW5nIHRoZSBmZWF0dXJlLT5uYW1lIHZhcmlhYmxlCgkgIChGSVhNRSBjb21tZW50IGFkZGVkKS4KCSAgRml4ZXM6ICM0NTk0NjYKCjIwMTEtMDUtMDIgMTU6MzY6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgZGVwcmVjYXRpb24gZ3VhcmRzCgkgIE1vdmUgR3N0UGFkSW50TGlua0Z1bmN0aW9uIHRvIHByaXZhdGUgaGVhZGVyIHRvIGF2b2lkIGEgZG96ZW4gI2lmZGVmcy4gVXNlIGEKCSAgZ3BvaW50ZXIgaW4gcHVibGljIGhlYWRlciBpbnN0ZWFkLgoKMjAxMS0wNS0xNyAxOTowMzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwdXNoIHN0aWNreSBldmVudHMgb24gZmx1c2gKCSAgT25seSBhbGxvdyBzZXJpYWxpemVkIGFuZCBub24tZmx1c2ggZXZlbnRzIGZvcndhcmQgdGhlIHN0aWNreSBldmVudHMuCgoyMDExLTA1LTE3IDE4OjIzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3Q6IHJlc2V0IHBhZCBjYXBzIHByb3Blcmx5CgoyMDExLTA1LTE3IDE4OjIzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBtb3JlIGRlYnVnCgoyMDExLTA1LTE3IDE4OjIxOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiByZW1vdmUgdW51c2VkIGNvZGUKCSAgVGhlIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgY2FwcyBhcmUgcHJvcGVybHkgc2V0IG9uIGJvdGggcGFkcywgaXQgbm93IGhhcHBlbnMKCSAgYXV0b21hdGljYWxseSB3aXRoIHRoZSBjYXBzIGV2ZW50LgoKMjAxMS0wNS0xNyAxNzo1MzowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggdGVzdHMKCSAgUmVtb3ZlIHRoZSB0ZXN0cyB0aGF0IGhhbmRsZSBpbmNvbXBhdGlibGUgZm9ybWF0cywgd2UgZG9uJ3Qgd2FudCB0aGF0IGFueW1vcmUuCgoyMDExLTA1LTE3IDE3OjUxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogaGFuZGxlIHdyYXBhcm91bmQgYmV0dGVyCgkgIE5vdyB0aGF0IHdlIHVzZSB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSBzZWdtZW50LCBoYW5kbGUgd3JhcGFyb3VuZCB3aGVuIHNlZWtpbmcKCSAgYmV0dGVyLgoKMjAxMS0wNS0xNyAxNjo1MDo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgdW5yZWYsIHRoZSBvYmplY3QgaXMgTlVMTAoKMjAxMS0wNS0xNyAxNDowMTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBUaGUgUkVDT05GSUdVUkUgZWxlbWVudCBvbmx5IGV4aXN0cyBpbiAwLjExCgkgIEltcGxlbWVudGluZyBpdCBwcm9wZXJseSBpbiAwLjEwIHNlZW1zIHRvIGJlIGltcG9zc2libGUuCgoyMDExLTA1LTE3IDEzOjEzOjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MjU6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjowNDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IFVwZGF0ZSBmb3IgY2Fwcy9wYWQgdGVtcGxhdGUgcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xNyAxMjoxMjoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDb25zaWRlciBHc3RQYWRUZW1wbGF0ZSBhcyBpbW11dGFibGUKCSAgRG9uJ3QgY29weSB0aGUgdGVtcGxhdGVzIHdoZW4gY3JlYXRpbmcgc3ViY2xhc3NlcyBidXQgb25seSBpbmNyZWFzZQoJICB0aGVpciByZWZjb3VudC4KCjIwMTEtMDUtMTcgMTI6MTA6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBDcmVhdGUgcGFkIHRlbXBsYXRlcyB3aXRoIGZsb2F0aW5nIHJlZnMKCSAgQW5kIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBmbG9hdGluZyByZWYgaW4gZ3N0X2VsZW1lbnRfYWRkX3BhZF90ZW1wbGF0ZSgpCgoyMDExLTA1LTE3IDEyOjA3OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogSW1wcm92ZSByZWZlcmVuY2UgaGFuZGxpbmcgb2YgdGhlIHRlbXBsYXRlJ3MgY2FwcwoJICBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGRvZXMgbm90IHRha2Ugb3duZXJzaGlwIG9mIHRoZSBjYXBzIGFueW1vcmUuCgoyMDExLTA1LTE2IDEzOjM5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGRlbGF5IHByaXZhdGUgZGF0YSBpbml0aWFsaXNhdGlvbiB1bnRpbCBhY3R1YWxseSBuZWVkZWQKCSAgV2Ugb25seSB1c2UgdGhlIHByaXZhdGUgaW5zdGFuY2UgZGF0YSBmb3Igd2VhayByZWZlcmVuY2VzIGZvciBub3csCgkgIHNvIGNhbiBkZWxheSBpbml0aWFsaXNhdGlvbiB1bnRpbCBhY3R1YWxseSBuZWVkZWQgKG1pY3Jvb3B0aW1pc2F0aW9uKQoKMjAxMS0wNS0xNyAxMTo1OTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZDogTGV0IHRlbXBsYXRlIHJlbGF0ZWQgZnVuY3Rpb25zIHJldHVybiBuZXcgcmVmZXJlbmNlcwoJICBnc3RfcGFkX3RlbXBsYXRlX2dldF9jYXBzKCksIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZV9jYXBzKCkKCSAgYW5kIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSgpIHJldHVybiBhIG5ldyByZWZlcmVuY2Ugb2YgdGhlCgkgIGNhcHMgb3IgdGVtcGxhdGUgbm93IGFuZCB0aGUgcmV0dXJuIHZhbHVlIG5lZWRzIHRvIGJlCgkgIHVucmVmZmVkIGFmdGVyIHVzYWdlLgoKMjAxMS0wNS0xNyAxMTo0NTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIFJldmVydCAiZXZlbnQ6IGV4YW1wbGUgb2YgaG93IHRvIG9wdGltaXplIGV2ZW50cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmYTI4ZTJjNWU2ZTVlMTcyYmUzMDhjMGM1MGY0NGVkNmYzOWUxYTcxLgoJICBUaGUgb3B0aW1pemF0aW9uIG9ubHkgaGFzIG1pbmltYWwgaW1wYWN0IG9uIHRoZSBwZXJmb3JtYW5jZSBhbmQKCSAgbWFrZXMgZXZlcnl0aGluZyBtb3JlIGNvbXBsZXguCgoyMDExLTA1LTE3IDExOjQ1OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBSZXZlcnQgImV2ZW50OiB1cGRhdGUgdGhlIHN0cnVjdHVyZSB3aGVuIG5lZWRlZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5MDUxMDBjZGJlNTgwZDRkMTgyYmZkOWQ1ZWM5YjM2OGExMTBmNDY0LgoKMjAxMS0wNS0xNyAxMToyMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRml4IGNvbXBpbGF0aW9uCgoyMDExLTA1LTE3IDExOjIwOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBSZXZlcnQgInF1ZXJ5OiBhbGxvdyBfbWFrZV93cml0YWJsZSBvbiBxdWVyeSBoYW5kbGVycyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjZjRmYmMwMDVjNWM1MzBjMmE1MDlhOTQzYTA1YjkxZDZjOWFmM2ZiLgoJICBUaGlzIGNoYW5nZSBkaWQgbm90IGltcHJvdmUgdGhlIHNpdHVhdGlvbiBmb3IgYmluZGluZ3MgYmVjYXVzZQoJICBxdWVyaWVzIGFyZSB1c3VhbGx5IGNyZWF0ZWQsIHRoZW4gZGlyZWN0bHkgcGFzc2VkIHRvIGEgZnVuY3Rpb24KCSAgYW5kIG5vdCBzdG9yZWQgZWxzZXdoZXJlLCBhbmQgdGhlIHdyaXRhYmlsaXR5IHByb2JsZW0gd2l0aAoJICBtaW5pb2JqZWN0cyB1c3VhbGx5IGhhcHBlbnMgd2l0aCBidWZmZXJzIG9yIGNhcHMgaW5zdGVhZC4KCjIwMTEtMDUtMTcgMTE6MTk6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBSZXZlcnQgImJpbjogRGVyZWZlcmVuY2UgR3N0UXVlcnkqKiBiZWZvcmUgcGFzc2luZyBpdCB0byBHU1RfUVVFUllfVFlQRV9OQU1FIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQzN2M5MmI0MDNlMGM3ZGE5YjlkNDUwOWVmNGZmYmQwNTcxMGRmMmIuCgoyMDExLTA1LTE3IDExOjE5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgUmV2ZXJ0ICJnaG9zdHBhZDogZml4IGdfcmV0dXJuXyogd2l0aCBuZXcgcXVlcnkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODc3YzFjMjhmZjk1N2NhOTI5MTFlYWRmYzc4NWY4NjYxZDllMDEyNy4KCjIwMTEtMDUtMTcgMDk6NDA6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmCgoyMDExLTA1LTE3IDA5OjM1OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IE1ha2UgYm90aCBwYXJhbWV0ZXJzIHRvIGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwoKSBjb25zdAoKMjAxMS0wNS0xNyAwOTozMzo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogVXBkYXRlIFNpbmNlIG1hcmtlcnMgdG8gdGhlIGNvcnJlY3QgdmVyc2lvbgoKMjAxMS0wNS0xNyAwOTozMzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfaW50ZXJzZWN0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2ludGVyc2VjdCgpCgoyMDEwLTA5LTEwIDE4OjMzOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QgQVBJCgkgIEFsbG93cyBjaGVja2luZyBpZiB0d28gc3RydWN0dXJlcyBjYW4gaW50ZXJzZWN0IHdpdGhvdXQgaGF2aW5nIHRvCgkgIGdvIHRocm91Z2ggR3N0Q2FwcwoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MzAwCgoyMDEwLTA5LTEwIDE4OjE0OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RydWN0dXJlOiBOZXcgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsCgkgIEFsbG93cyBjaGVja2luZyBlcXVhbGl0eSBvZiBHc3RTdHJ1Y3R1cmUgd2l0aG91dCBoYXZpbmcgdG8gY3JlYXRlCgkgIGludGVybWVkaWFyeSBHc3RDYXBzLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMwMAoKMjAxMS0wNS0xNiAxOTowOTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogc2V0IGVsZW1lbnRzIGluIFBBVVNFRAoJICBTZXQgZWxlbWVudHMgaW4gUEFVU0VEIGJlZm9yZSB0cnlpbmcgdG8gc2V0IGNhcHMgb24gcGFkcy4KCjIwMTEtMDUtMTYgMTk6MDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdDogZml4IGdob3N0cGFkIHRlc3QKCSAgV2UgbmVlZCB0byBoYXZlIGFjdGl2YXRlZCBwYWRzIGJlZm9yZSB3ZSBjYW4gcGFzcyBhcm91bmQgY2Fwcy4KCSAgRG9uJ3Qgc2V0IE5VTEwgY2FwcyBvbiBwYWRzLgoKMjAxMS0wNS0xNiAxOTowNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhdm9pZCBzZXR0aW5nIE5VTEwgY2FwcyBvbiBwYWRzCgoyMDExLTA1LTE2IDE4OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBidWZmZXIgcmVmY291bnRpbmcKCSAgV2hlbiB3ZSBmYWlsIHRvIGFsbG9jYXRlIGFuIG91dHB1dCBidWZmZXIsIHNldCB0aGUgYnVmZmVyIHBvaW50ZXIgdG8gTlVMTCBvcgoJICBlbHNlIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIHdpbGwgdHJ5IHRvIHVucmVmIGl0LgoJICBSZW1vdmUgc29tZSBvbGQgY29tbWVudHMKCjIwMTEtMDUtMTYgMTg6Mjk6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogYWxsb3cgTlVMTCBmaWx0ZXJzIGFuZCBmaXggcmVmY291bnRpbmcKCjIwMTEtMDUtMTYgMTg6MTI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBvbmx5IGFkZCB0aGUgc3RydWN0dXJlIHdoZW4gd2UgY291bGQgc2V0IHRoZSBwYXJlbnQKCjIwMTEtMDUtMTYgMTc6NTM6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGZpeCBnX3JldHVybl8qIHdpdGggbmV3IHF1ZXJ5CgoyMDExLTA1LTE2IDE3OjI0OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwoKMjAxMS0wNS0xNiAxNjo1OToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBoYW5kbGUgbW9yZSBmb3JtYXRzCgkgIFVzZSB0aGUgc2VnbWVudCBmb3JtYXQgaW5zdGVhZCBvZiBhIGhhcmRjb2RlZCBfVElNRS4KCjIwMTEtMDUtMTYgMTY6NTc6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgbW9yZSBmb3JtYXRzCgkgIERvbid0IGhhcmRjb2RlIEdTVF9GT1JNQVRfVElNRSBpbiBwbGFjZXMsIHdlIGNhbiB3b3JrIHdpdGggbWFueSBmb3JtYXRzLgoKMjAxMS0wNS0xNiAxNjo1NDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJzAuMTEnIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIgaW50byAwLjExCgoyMDExLTA1LTE2IDE2OjUzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvZ3N0YmluLmMKCSAgZ3N0L2dzdGVsZW1lbnQuYwoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RnaG9zdHBhZC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTA1LTE2IDE2OjEwOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICB1cGRhdGUgbWFudWFsIGNvZGUgZXhhbXBsZXMgZm9yIG5ldyBfZ2V0X2NhcHMoKQoKMjAxMS0wNS0xMyAwODozNDozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgbmVnb3RpYXRpb24gcmVsYXRlZCBBUEkgY2hhbmdlcwoKMjAxMS0wNS0xMSAxNTozODowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogVXBkYXRlIGZvciBuZWdvdGlhdGlvbiByZWxhdGVkIEFQSSBjaGFuZ2VzCgkgIFRoZSBmaWx0ZXIgY2FwcyBhcmUgb25seSBmb3J3YXJkZWQgYW5kIHJldHVybmVkIGluc3RlYWQKCSAgb2YgQU5ZIGNhcHMgaW4gdGhlIGNvcmUgZWxlbWVudHMgYmVjYXVzZSB0aGV5IGRvbid0IGRvCgkgIGFueXRoaW5nIGNhcHMgc3BlY2lmaWMuCgoyMDExLTA1LTExIDE1OjEyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZTogSW1wcm92ZSBuZWdvdGlhdGlvbiB3aXRoIG5ldyBnZXRjYXBzKCkgZmlsdGVyCgoyMDExLTA1LTEwIDE3OjU2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3Q6IEFkZCBhIGZpbHRlciBjYXBzIHBhcmFtZXRlciB0byBhbGwgZ2V0X2NhcHMoKSBmdW5jdGlvbnMKCSAgVGhpcyBpcyB1c2VkIHRvIHBhc3MgdGhlIHBvc3NpYmxlIGNhcHMgYW5kIHByZWZlcmVuY2VzIHRvCgkgIHRoZSBwYWQgYW5kIHRvIGFsbG93IGJldHRlciBuZWdvdGlhdGlvbiBkZWNpc2lvbnMuCgoyMDExLTA0LTE5IDIwOjA1OjA3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRqdXN0IGlucHV0IGRhdGEgcmF0ZSBlc3RpbWF0aW9uCgkgIC4uLiBiZWluZyBhd2FyZSBvZiBwb3NzaWJsZSBpbml0aWFsIGhpZ2hlciBidXJzdCByYXRlLgoKMjAxMS0wNS0xMyAxODowNzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIFJld29yayBHc3RTZWdtZW50IGhhbmRsaW5nCgkgIEltcHJvdmUgR3N0U2VnbWVudCwgcmVuYW1lIHNvbWUgZmllbGRzLiBUaGUgaWRlYSBpcyB0byBoYXZlIHRoZSBHc3RTZWdtZW50CgkgIHN0cnVjdHVyZSByZXByZXNlbnQgdGhlIHRpbWluZyBzdHJ1Y3R1cmUgb2YgdGhlIGJ1ZmZlcnMgYXMgdGhleSBhcmUgZ2VuZXJhdGVkIGJ5CgkgIHRoZSBzb3VyY2Ugb3IgZGVtdXhlciBlbGVtZW50LgoJICBnc3Rfc2VnbWVudF9zZXRfc2VlaygpIC0+IGdzdF9zZWdtZW50X2RvX3NlZWsoKQoJICBSZW5hbWUgdGhlIE5FV1NFR01FTlQgZXZlbnQgdG8gU0VHTUVOVC4KCSAgTWFrZSBwYXJzaW5nIG9mIHRoZSBTRUdNRU5UIGV2ZW50IGludG8gYSBHc3RTZWdtZW50IHN0cnVjdHVyZS4KCSAgUGFzcyBhIEdzdFNlZ21lbnQgc3RydWN0dXJlIHdoZW4gbWFraW5nIGEgbmV3IFNFR01FTlQgZXZlbnQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHBhc3MgdGhlIHRpbWluZyBpbmZvIGRpcmVjdGx5IHRvIHRoZSBuZXh0IGVsZW1lbnQuIE5vIGFjY3VtdWxhdGlvbiBpcyBuZWVkZWQgaW4KCSAgdGhlIHJlY2VpdmluZyBlbGVtZW50LCBhbGwgdGhlIGluZm8gaXMgaW5zaWRlIHRoZSBlbGVtZW50LgoJICBSZW1vdmUgZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQoKTogVGhpcyBmdW5jdGlvbiBhcyB1c2VkIHRvIGFjY3VtdWxhdGUKCSAgc2VnbWVudHMgcmVjZWl2ZWQgZnJvbSB1cHN0cmVhbSwgd2hpY2ggaXMgbm93IG5vdCBuZWVkZWQgYW55bW9yZSBiZWNhdXNlIHRoZQoJICBzZWdtZW50IGV2ZW50IGNvbnRhaW5zIHRoZSBjb21wbGV0ZSB0aW1pbmcgaW5mb3JtYXRpb24uCgoyMDExLTA1LTE2IDEwOjI1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZS1pbXBsZW1lbnQgbm90aWZ5OjpjYXBzCgoyMDExLTA1LTE0IDE0OjAyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggdXAgc29tZSBTaW5jZSBtYXJrZXJzIGFuZCB1cGRhdGUgZm9yIG5ldyBtdWx0aXF1ZXVlIGFyZ3MKCjIwMTEtMDUtMTIgMTY6NDg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERvbid0IGludGVycHJldGUgcGlwZWxpbmVzIHdpdGhvdXQgc2luayBlbGVtZW50cyBhcyBhbHdheXMgYmVpbmcgaW4gRU9TIHN0YXRlCgkgIFNvbWUgdGVzdHMgKGUuZy4gZWxlbWVudHMvY2Fwc2ZpbHRlcikgaGF2ZSBwaXBlbGluZXMgd2l0aCBkYW5nbGluZwoJICBzaW5rcGFkcyBhbmQgd2l0aG91dCBhIHNpbmsgZWxlbWVudC4gVGhlc2UgcGlwZWxpbmVzIGNhbiBuZXZlciBwb3N0CgkgIGFuIEVPUyBtZXNzYWdlIChiZWNhdXNlIHRoaXMgaXMgb25seSB2YWxpZCBieSBhIHNpbmspIGFuZCBhcyBzdWNoCgkgIHNob3VsZCBuZXZlciBnZXQgYW4gRU9TIG1lc3NhZ2UgcG9zdGVkIGJ5IHRoZSBiaW4uCgoyMDExLTA1LTEyIDE1OjUxOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogT25seSByZXRyeSB3cml0aW5nIHRvIHRoZSBzb2NrZXQgZm9yIEVBR0FJTiwgRVdPVUxEQkxPQ0sgYW5kIEVJTlRSCgkgIEZpeGVzIGluZmluaXRlIGxvb3AgaW4gc29tZSBjYXNlcywgYnVnICM2NTAwMDIuCgoyMDExLTA1LTEyIDA5OjU5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtaW5pb2JqZWN0OiBBZGQgbmV3IG1pbmlvYmplY3Qgd2VhayByZWYvdW5yZWYgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDExLTA1LTEyIDA5OjU1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IE1pbm9yIGNsZWFudXAgb2YgbGFzdCBjb21taXQKCjIwMTEtMDUtMTEgMTM6MDk6MTkgLTA0MDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgd2VhayByZWZlcmVuY2luZyBmdW5jdGlvbmFsaXR5CgkgIEFQSTogZ3N0X21pbmlfb2JqZWN0X3dlYWtfcmVmKCkKCSAgQVBJOiBnc3RfbWluaV9vYmplY3Rfd2Vha191bnJlZigpCgkgIEFkZCB3ZWFrIHJlZmVyZW5jaW5nIGZ1bmN0aW9uYWxpdHkgdG8gR3N0TWluaU9iamVjdCwgd2hpY2gKCSAgYWxsb3dzIHRvIGdldCBub3RpZmljYXRpb25zIHdoZW4gYW4gbWluaSBvYmplY3QgaXMgZGVzdHJveWVkCgkgIGJ1dCBkb2Vzbid0IGluY3JlYXNlIHRoZSByZWFsIHJlZmNvdW50LiBUaGlzIGlzIG1vc3RseQoJICB1c2VmdWwgZm9yIGJpbmRpbmdzLgoJICBGaXhlcyBidWcgIzYwOTQ3My4KCjIwMTEtMDMtMTkgMTA6Mjg6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBBZGQgc3luYyBtb2RlIHRoYXQgc3luY3MgaW5hY3RpdmUgcGFkcyB0byB0aGUgcnVubmluZyB0aW1lIG9mIHRoZSBhY3RpdmUgcGFkCgkgIEZpeGVzIGJ1ZyAjNjQ1MDE3LgoKMjAxMS0wMy0yMiAxMzoxOTo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEFkZCBtb2RlIHRvIHN5bmNocm9uaXplIGRlYWN0aXZhdGVkL25vdC1saW5rZWQgc3RyZWFtcyBieSB0aGUgcnVubmluZyB0aW1lCgkgIEZpeGVzIGJ1ZyAjNjQ1MTA3LCAjNjAwNjQ4LgoKMjAxMS0wNC0xOCAxNDoyNjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSBwb3N0IEVPUyBtZXNzYWdlcyBhZnRlciByZWFjaGluZyB0aGUgUExBWUlORyBzdGF0ZQoJICBGaXhlcyBidWcgIzY0Nzc1Ni4KCjIwMTEtMDUtMTAgMTY6Mzc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQWRkIEdzdEVsZW1lbnQ6OnN0YXRlX2NoYW5nZWQgdmZ1bmMKCSAgQVBJOiBHc3RFbGVtZW50OjpzdGF0ZV9jaGFuZ2VkCgkgIFRoaXMgaXMgYWx3YXlzIGNhbGxlZCB3aGVuIHRoZSBzdGF0ZSBvZiBhbiBlbGVtZW50IGhhcyBjaGFuZ2VkIGFuZAoJICBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUtY2hhbmdlZCBtZXNzYWdlIGlzIHBvc3RlZCBvbiB0aGUgYnVzLgoKMjAxMS0wNS0wNiAxNjo0NDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogQWRkIGRvY3MgZm9yIGFsbCB0aGUgbmV3LCBwdWJsaWMgZnVuY3Rpb25zCgoyMDExLTA1LTA2IDE2OjE1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWRkIGd1YXJkcyBhZ2FpbnN0IGludmFsaWQgcGFyYW1ldGVycyB0byB0aGUgbmV3LCBwdWJsaWMgZnVuY3Rpb25zCgoyMDExLTA1LTA2IDE2OjAwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiBSZW5hbWUgZ2hvc3RwYWQvcHJveHlwYWQgZGVmYXVsdCBmdW5jdGlvbnMKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1bGxfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdWxsX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfbGlua19kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9zZXRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX3VubGlua19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2J1ZmZlcmFsbG9jX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoYWluX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoYWluX2xpc3RfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfY2hlY2tnZXRyYW5nZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9ldmVudF9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9maXhhdGVjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2dldGNhcHNfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZ2V0cmFuZ2VfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9xdWVyeV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9xdWVyeV90eXBlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX3NldGNhcHNfZGVmYXVsdAoKMjAxMS0wNS0wNiAxNTo1MDoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIGdob3N0cGFkOiBNYWtlIGFsbCB0aGUgaW50ZXJuYWwgY2FwcyBmdW5jdGlvbnMgcHVibGljCgkgIFRoaXMgaXMgdXNlZnVsIGlmIGdob3N0cGFkL3Byb3h5cGFkcyBzaG91bGQgYmUgdXNlZCBidXQKCSAgYWRkaXRpb25hbCBjb2RlIHNob3VsZCBiZSBleGVjdXRlZCwgZS5nLiBmb3IgdHJhY2tpbmcKCSAgc2VnbWVudHMgaW4gdGhlIGV2ZW50IGZ1bmN0aW9uLgoKMjAxMS0wNS0wNiAxNToyNTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IE9ubHkgaW1wbGVtZW50IHRoZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGZ1bmN0aW9uIG9uIHByb3h5cGFkcwoJICBnaG9zdHBhZHMgaW5oZXJpdCBpdCBmcm9tIHRoZWlyIHBhcmVudCBjbGFzcy4gQWxzbyBtYWtlIGl0IHRocmVhZHNhZmUuCgoyMDExLTA1LTA2IDE1OjE2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogQVBJOiBFeHBvc2UgZ3N0X3Byb3h5X3BhZF9nZXRfaW50ZXJuYWwoKQoJICBUaGlzIGFsbG93cyB0byBnZXQgdGhlIGludGVybmFsIHBhZCBvZiBnaG9zdHBhZHMgYW5kCgkgIHByb3h5cGFkcyB3aXRob3V0IHVzaW5nIGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpCgkgIGFuZCBpcyBtdWNoIG1vcmUgY29udmVuaWVudC4KCSAgVGhlIGludGVybmFsIHBhZCBvZiBhIGdob3N0cGFkIGlzIHRoZSBwYWQgb2YgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbgoJICB0aGF0IGlzIHVzZWQgdG8gbGluayB0byB0aGUgZ2hvc3RwYWQgdGFyZ2V0LgoKMjAxMS0wNS0wNSAxNzo1NDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogV2hlbiB0cnlpbmcgdG8gZml4YXRlIHRoZSBzaW5rIHN1Z2dlc3Rpb24gcHJlZmVyIGl0cyBzdHJ1Y3R1cmUgb3JkZXIKCjIwMTEtMDUtMDUgMTE6Mjg6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogTWVyZ2Ugc3RydWN0dXJlcyB3aGVuIGludGVyc2VjdGluZyBpbnN0ZWFkIG9mIGFwcGVuZGluZyB0aGVtCgkgIFRoaXMgcHJldmVudHMgYWRkaW5nIGR1cGxpY2F0ZXMgb3ZlciBhbmQgb3ZlciBhZ2FpbiB0byB0aGUgcmVzdWx0aW5nCgkgIGNhcHMgaWYgdGhleSBhbHJlYWR5IGRlc2NyaWJlIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJlc3VsdC4KCSAgV2hpbGUgdGhpcyBjaGFuZ2VzIGludGVyc2VjdGlvbiBmcm9tIE8obiptKSB0byBPKG5eMiptKSwgaXQgcmVzdWx0cyBpbgoJICBzbWFsbGVyIGNhcHMsIHdoaWNoIGluIHRoZSBlbmQgd2lsbCBkZWNyZWFzZSBmdXJ0aGVyIHByb2Nlc3NpbmcgdGltZXMuCgkgIEZvciBleGFtcGxlIGluIGFuIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCAhIGF1ZGlvY29udmVydCBwaXBlbGluZSwKCSAgd2hlbiBmb3J3YXJkaW5nIHRoZSBkb3duc3RyZWFtIGNhcHMgcHJlZmVyZW5jZSBpbiBiYXNldHJhbnNmb3JtCgkgIChzZWUgZTI2ZGE3MmRlMjVhOTFjM2VhYWQ5ZjdjOGIyZjUzYmE4ODhhMDM5NCkgdGhpcyByZXN1bHRzIGluCgkgIDE2IGluc3RlYWQgb2YgMTkxIGNhcHMgc3RydWN0dXJlcy4KCjIwMTEtMDUtMDQgMTE6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEluIGdldGNhcHMoKSBwcmVmZXIgdGhlIGNhcHMgb3JkZXIgYW5kIGNhcHMgb2YgZG93bnN0cmVhbSBpZiBwb3NzaWJsZQoKMjAxMS0wNS0wMyAxNzoyNjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJlZmVyIGNhcHMgb3JkZXIgZ2l2ZW4gYnkgdGhlIHN1YmNsYXNzIG9mIHRoZSB0ZW1wbGF0ZSBjYXBzIG9yZGVyCgoyMDExLTA0LTIwIDIyOjUyOjM2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBkb24ndCB1bmVzY2FwZSBpbnNpZGUgcXVvdGVzCgkgIEVzY2FwZWQgY2hhcmFjdGVycyBpbnNpZGUgcXVvdGVkIHN0cmluZ3MgYXJlIHN1cHBvc2VkIHRvIGJlIHVuZXNjYXBlZCBieQoJICBkZXNlcmlhbGl6YXRpb24gZnVuY3Rpb25zLCBub3QgYnkgcGFyc2luZyBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgwMjUKCjIwMTEtMDQtMTggMTA6MDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRQoJICBSZXNldHRpbmcgdGhlIHJlc3VsdCBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gcmVzeW5jaW5nIGJlY2F1c2UKCSAgcGFkcyB0aGF0IHByZXZpb3VzbHkgZ290IHRoZSBldmVudCB3aWxsIGJlIHNraXBwZWQgYW5kIHdlCgkgIG5lZWQgdG8gY29uc2lkZXIgdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHB1c2hlcy4KCjIwMTEtMDQtMTggMDk6NTM6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA0LTE4IDA5OjQ5OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDUtMTQgMDk6MzE6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zNCA9PT0KCjIwMTEtMDUtMTQgMDE6MDA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjM0CgoyMDExLTA1LTEzIDA4OjM4OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgdW5pdCB0ZXN0IGFmdGVyIHJlbW92YWwgb2YgdGhlIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBmdW5jdGlvbnMKCjIwMTEtMDUtMDQgMTU6MzE6NTYgKzAzMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBzZXQgZmlyc3QgYnVmZmVyIHRpbWVzdGFtcCB0byAwIGZvciBsaXZlIHNvdXJjZXMKCSAgRG9pbmcgc28gYXZvaWRzIGEgbGFyZ2UgdGltZXN0YW1wIGdhcCBiZXR3ZWVuIGZpcnN0IGFuZCBzZWNvbmQgYnVmZmVyCgkgIGZvciBsaXZlIHNvdXJjZXMgd2hpY2ggdGFrZSB0aW1lIHRvIHN0YXJ0IHVwLgoJICBUaGUgZmlyc3QgYnVmZmVyIG5vdyBoYXMgYSAibGl2ZSIgdGltZXN0YW1wIGJhc2VkIG9uIHRoZSBydW5uaW5nIHRpbWUsCgkgIGFzIG90aGVyIGJ1ZmZlcnMgZG8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkzNjkKCjIwMTEtMDUtMTEgMTk6MTA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiByZW1vdmUgKGRlKXNlcmlhbGl6ZSBmdW5jdGlvbnMKCSAgQWRkIGEgR1R5cGUgdG8gdGhlIG1ldGFkYXRhIHRvIGlkZW50aWZ5IHRoZSBHc3RNZXRhSW5mby4KCSAgV2UgY2FuIHJlbW92ZSB0aGUgKGRlKXNlcmlhbGl6ZSBmdW5jdGlvbnMgZm9yIHRoZSBtZXRhZGF0YSBiZWNhdXNlIHdlIGNhbgoJICByZWdpc3RlciBHVHR5cGUgdHJhbnNmb3JtIGZ1bmN0aW9ucyBiZXR3ZWVuIHZhcmlvdXMgdHlwZXMgdG8gaW1wbGVtZW50CgkgIHNlcmlhbGl6YXRpb24gbGF0ZXIuCgoyMDExLTA1LTExIDE4OjE3OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IG1vcmUgY2xlYW51cHMKCSAgZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZSgpIC0+IF9nc3Rfc3RydWN0dXJlX3R5cGUgdG8gYXZvaWQgbWV0aG9kIGNhbGxzIGZvcgoJICBnZXR0aW5nIHRoZSBHVHlwZSB0aGF0IGluaXRpYWxpemVkIGF0IHRoZSBzdGFydC4KCSAgSGlkZSBzb21lIHN0cnVjdHVyZSBmaWVsZHMgaW4gcHJpdmF0ZSBkYXRhIHNvIHRoYXQgd2UgY2FuIGNoYW5nZSB0aGUKCSAgaW1wbGVtZW50YXRpb24uCgkgIE1vdmUgc3RydWN0dXJlIGVxdWFsaXR5IGNoZWNrIGZyb20gY2Fwcy5jIHRvIHN0cnVjdHVyZS5jIHdoZXJlIGl0IGJlbG9uZ3MuCgoyMDExLTA1LTExIDE4OjA3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBvYnNvbGV0ZSBjb2RlCgkgIFJlbW92ZSBzb21lIG9ic29sZXRlIGNvZGUuCgkgIERvbid0IHRyeSB0byByZWNvbmZpZ3VyZSB3aGVuIHdlIGRvbid0IGhhdmUgc2luayBjYXBzLgoKMjAxMS0wNS0xMSAxNjo0Njo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRGVyZWZlcmVuY2UgR3N0UXVlcnkqKiBiZWZvcmUgcGFzc2luZyBpdCB0byBHU1RfUVVFUllfVFlQRV9OQU1FCgoyMDExLTA1LTExIDE2OjAzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiB1cGRhdGUgdGhlIHN0cnVjdHVyZSB3aGVuIG5lZWRlZAoJICBXaGVuIHdlIGdldCB0aGUgc3RydWN0dXJlIG9mIGFuIGV2ZW50LCBtYWtlIHN1cmUgaXQgYWxzbyBjb250YWlucyB0aGUgZmllbGRzCgkgIHRoYXQgd2Uga2VlcCBpbiBmYXN0IHZhcmlhYmxlcywgdGhpcyB3YXkgd2UgY2FuIGVhc2lseSBzZXJpYWxpemUgYW5kIGRlYnVnCgkgIHRoZSBldmVudHMuIFdlIHdvdWxkIHByb2JhYmx5IGxhdGVyIHNpbXBseSBwcmVmZXIgdG8gcmVnaXN0ZXIgYSB0cmFuc2Zvcm0KCSAgZnVuY3Rpb24gdG8gR19UWVBFX1NUUklORyBhbmQgR19UWVBFX0JZVEVBUlJBWSBldGMuLgoKMjAxMS0wNS0xMSAxNjowMTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGNsZWFudXBzCgkgIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIHR5cGUgaXMgMCwgdGhlIGluaXQgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZQoJICBpbiB0aGUgYmVnaW5uaW5nLgoKMjAxMS0wNS0xMSAxMjowNDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGNsZWFuIHVwIHNvbWUgbWFjcm9zCgkgIEF2b2lkIGV4ZWN1dGluZyBhIG1ldGhvZCBmb3IgR1NUX1RZUEVfRVZFTlQgYnV0IGluc3RlYWQgdXNlIHRoZSB0eXBlIHZhcmlhYmxlCgkgIGRpcmVjdGx5LiBXZSBjYW4gZG8gdGhpcyBiZWNhdXNlIHdlIHJlZ2lzdGVyIGl0IGJlZm9yZSBhbnl0aGluZyBlbHNlLgoKMjAxMS0wNS0xMSAxNTo0ODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogRml4IEdTVF9ERUJVRyBwYXJhbWV0ZXJzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZm9ybWF0IHN0cmluZwoKMjAxMS0wNS0xMSAxNToyNjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHBhZCByZWNvbmZpZ3VyYXRpb24gYWdhaW4KCjIwMTEtMDUtMTEgMTU6MTg6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEZpeCBkZWFkbG9jaywgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkgYWxyZWFkeSB0YWtlcyB0aGUgcGFkJ3Mgb2JqZWN0IGxvY2sKCjIwMTEtMDUtMTEgMTE6MDY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBleGFtcGxlIG9mIGhvdyB0byBvcHRpbWl6ZSBldmVudHMKCSAgVXNlIGEgc3RydWN0dXJlIGZvciB0aGUgUW9TIGV2ZW50IGJ5ICdleHRlbmRpbmcnIHRoZSBHc3RFdmVudEltcGwgc3RydWN0dXJlLgoJICBUaGlzIHNob3VsZCBhdm9pZCBhbGxvY2F0aW9uIG9mIEdzdFN0cnVjdHVyZXMgYW5kIGl0cyBjb250ZW50cy4KCjIwMTEtMDUtMTAgMTE6MTE6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGVuc3VyZSB0aHJlYWQgc2FmZXR5IHdoZW4gYWRkaW5nIGEgcGFkCgkgIFRoaXMgc2VlbXMgdG8gYmUgYSByZWdyZXNzaW9uLCBhbmQgd2FzIGNhdXNpbmcgY3Jhc2hlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTg3OAoKMjAxMS0wNS0xMCAxODozNjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWxsb3cgX21ha2Vfd3JpdGFibGUgb24gcXVlcnkgaGFuZGxlcnMKCSAgUGFzcyBhIEdzdFF1ZXJ5ICoqIHRvIHRoZSBxdWVyeSBoYW5kbGVycyBzbyB0aGF0IHRoZXkgY2FuIG1ha2UgdGhlIHF1ZXJ5CgkgIHdyaXRhYmxlIGJlZm9yZSB1c2luZyBhIHNldHRlciBvbiBpdC4KCSAgUG9ydCBjb2RlIHRvIG5ldyBBUEkuCgoyMDExLTA1LTEwIDE2OjQ2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTEwIDE2OjQxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnQ6IHVzZSByZXF1ZXN0X25ld19wYWRfZnVsbCBhcyB0aGUgZGVmYXVsdAoJICBBZGQgR3N0Q2FwcyB0byByZXF1ZXN0X25ld19wYWQgc28gdGhhdCByZXF1ZXN0X25ld19wYWRfZnVsbCBjYW4gYmUgcmVtb3ZlZC4KCSAgRml4IGVsZW1lbnRzLgoKMjAxMS0wNS0xMCAxNjoyMzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0xMCAxNTo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWFrZSBzdXJlIHF1ZXJ5IGlzIHdyaXRhYmxlCgkgIE1ha2Ugc3VyZSB0aGUgUXVlcnkgaXMgd3JpdGFibGUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgc2V0dGVycy4KCjIwMTEtMDUtMTAgMTU6MzM6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogSGlkZSBHc3RTdHJ1Y3R1cmUgaW4gcXVlcmllcwoJICBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUgZnJvbSB0aGUgcXVlcnkgQVBJLgoJICBSZW5hbWUgc29tZSBtZXRob2RzIHRvIG1hdGNoIHRoZSBtb3JlIGNvbW1vbiBuYW1lcyBpbiBHT2JqZWN0IGxpYnJhcmllcy4KCSAgQWRkIHNvbWUgbW9yZSB1c2VmdWwgcXVlcnkgQVBJLgoKMjAxMS0wNS0xMCAxMzozNDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBtZXNzYWdlOiBoaWRlIHRoZSBtZXNzYWdlIHN0cnVjdHVyZSBmaWVsZAoJICBNYWtlIGEgcHJpdmF0ZSBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgR3N0U3RydWN0dXJlIGJpdHMgb2YgdGhlIG1lc3NhZ2UuCgkgIEFkZCBzb21lIG1vcmUgdXNlZnVsIG1hY3JvcyBsaWtlIHdlIGhhdmUgZm9yIGV2ZW50cy4KCj09PSByZWxlYXNlIDAuMTAuMzMgPT09CgoyMDExLTA1LTEwIDA4OjU1OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzMKCSAgSGlnaGxpZ2h0czoKCSAgLSBuZXcgcGFyc2VyIGJhc2UgY2xhc3M6IEdzdEJhc2VQYXJzZQoJICAtIG5ldyBjb3JlIGVsZW1lbnQ6IGZ1bm5lbAoJICAtIE9TWCBtdWx0aS1hcmNoIGZpeGVzCgkgIC0gbmV3IFFvUyB0eXBlIGZvciBRb1MgZXZlbnRzCgkgIC0gbmV3IHByb2dyZXNzIG1lc3NhZ2UgQVBJIHRvIG5vdGlmeSBhcHBsaWNhdGlvbnMgb2YgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMKCSAgLSBjb3VudGxlc3Mgb3RoZXIgZml4ZXMgYW5kIGltcHJvdmVtZW50cwoKMjAxMS0wNS0xMCAxMjoyOTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGZpeCB0aGUgbWFjcm9zIGEgbGl0dGxlCgoyMDExLTA1LTEwIDExOjUwOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBldmVudDogSGlkZSB0aGUgR3N0U3RydWN0dXJlCgkgIEhpZGUgdGhlIEdzdFN0cnVjdHVyZSBvZiB0aGUgZXZlbnQgaW4gdGhlIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHBhcnQgc28gdGhhdAoJICB3ZSBjYW4gY2hhbmdlIGl0LgoJICBBZGQgbWV0aG9kcyB0byBjaGVjayBhbmQgbWFrZSB0aGUgZXZlbnQgd3JpdGFibGUuCgkgIEFkZCBhIG5ldyBtZXRob2QgdG8gZ2V0IGEgd3JpdGFibGUgR3N0U3RydWN0dXJlIG9mIHRoZSBlbGVtZW50LgoJICBBdm9pZCBkaXJlY3RseSBhY2Npc2luZyB0aGUgZXZlbnQgc3RydWN0dXJlLgoKMjAxMS0wNS0wOSAxODo0ODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogX3Fvc19mdWxsIC0+IF9xb3MKCjIwMTEtMDUtMDkgMTc6NTE6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBzZWdtZW50OiByZW1vdmUgX2Z1bGwgdmVyc2lvbgoJICBSZW5hbWUgdGhlIF9mdWxsIHZlcnNpb25zIG9mIHRoZSBmdW5jdGlvbnMgdG8gdGhlIG5vcm1hbCBmdW5jdGlvbiBuYW1lcy4KCjIwMTEtMDUtMDkgMTY6Mzk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBzZWdtZW50OiByZW1vdmUgYWJzX3JhdGUgZnJvbSBzZWdtZW50IHN0cnVjdHVyZQoJICBSZW1vdmUgdGhlIGFic19yYXRlIGZpZWxkIGZyb20gdGhlIHNlZ21lbnQgc3RydWN0dXJlLCB3ZSBjYW4gdHJpdmlhbGx5IGNvbXB1dGUKCSAgaXQgd2hlbiBuZWVkZWQuCgoyMDExLTA1LTA5IDE2OjIxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBjYXBzOiByZW1vdmUgY2FwcyBmcm9tIGJ1ZmZlcnMgYW5kIHBhZHMKCSAgUmVtb3ZlIHRoZSBHc3RDYXBzIGZyb20gYnVmZmVycyBhbmQgcGFkcy4gV2Ugbm93IHVzZSBDQVBTIGV2ZW50cyB0byBuZWdvdGlhdGUKCSAgZm9ybWF0cyBiZXR3ZWVuIGVsZW1lbnQuCgoyMDExLTA1LTA5IDE1OjA2OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBDQVBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCB0byBjb25maWd1cmUgYmFzZXRyYW5zZm9ybS4KCSAgUmVtb3ZlIGZvcmNlX2FsbG9jIGhhY2ssIHdlIGRvbid0IG5lZWQgdGhpcyBpbiAwLjExIHdpdGggbmV3IHVwc3RyZWFtCgkgIG5lZ290aWF0aW9uLgoJICBBdm9pZCBnZXR0aW5nIHNvbWUgcGFkIGNhcHMuCgoyMDExLTA1LTA5IDE1OjA2OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMS0wNS0wOCAxMTowMjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgc3ltYm9scwoKMjAxMS0wNS0wOCAxMTowMTo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlcwoKMjAxMS0wNS0wOSAxMDo1NDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogYXZvaWQgdXNpbmcgcGFkIGNhcHMKCSAgQXZvaWQgZGlyZWN0bHkgYWNjZXNzaW5nIHRoZSBwYWQgY2FwcywgdXNlIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGluc3RlYWQuCgoyMDExLTA1LTA4IDEzOjE0OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0wOCAxMzowNzoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBDQVBTIGV2ZW50IGluc3RlYWQgb2Ygc2V0Y2FwcyBmdW5jdGlvbgoKMjAxMS0wNS0wOCAxMjo0NjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBiYXNlOiBhdm9pZCB1c2luZyBidWZmZXIgY2FwcwoJICBDb21tZW50IGFsbCBjb2RlIHVzaW5nIGJ1ZmZlciBjYXBzLgoJICBSZXdvcmsgY2Fwc2ZpbHRlciBjb2RlIGEgbGl0dGxlLgoJICBGaXggc29tZSB1bml0IHRlc3RzCgoyMDExLTA1LTA4IDEyOjQzOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgY2FwcyBldmVudCBoYW5kbGluZwoJICBGaXggcmVwbGFjZSBvZiBjYXBzIGV2ZW50cyB3aGVuIGxpbmtpbmc6IHdlIG5lZWQgdG8gdW5yZWYgdGhlIG9sZCBvbmVzLgoJICBNYWtlIHN1cmUgd2UgcGFzcyBlcnJvciB2YWx1ZXMgYXJvdW5kLgoJICBNb3ZlIGJhY2t3YXJkIGNvbXBhdCBjb2RlIGludG8gdGhlIGRlZmF1bHQgaGFuZGxlciBmb3Igbm93LgoKMjAxMS0wNS0wOCAxMjozODowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZG9uJ3QgcmVmIHRoZSBjYXBzCgkgIFVzZSBhIGRpZmZlcmVudCB3YXkgb2YgZ2V0dGluZyB0aGUgY2FwcyBmcm9tIHRoZSBjYXBzIGV2ZW50IHNvIHRoYXQgbm8KCSAgcmVmY291bnRpbmcgaGFwcGVucy4KCjIwMTEtMDUtMDggMTI6Mzc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYXZvaWQgdXNpbmcgYnVmZmVyIGNhcHMKCjIwMTEtMDUtMDYgMjM6NDA6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBwb3N0IGxvYWRzIG9mIGVtcHR5IHRhZ2xpc3RzCgkgIE9ubHkgcG9zdCBiaXRyYXRlIHVwZGF0ZXMgaWYgdGhlcmUncyBzb21ldGhpbmcgdG8gcG9zdCwgZG9uJ3QKCSAgcG9zdCBlbXB0eSB0YWdsaXN0cyBpZiBub3RoaW5nIGNoYW5nZWQuCgoyMDExLTA1LTA2IDE5OjA0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHBhZDogYXZvaWQgdXNpbmcgdGhlIG9sZCBHU1RfUEFEX0NBUFMKCSAgRG9uJ3QgdXNlIEdTVF9QQURfQ0FQUyBidXQgaW5zdGVhZCB1c2UgdGhlIG5ldyBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKQoJICBtZXRob2QuCgkgIEF2b2lkIHNldHRpbmcgY2FwcyBvbiBidWZmZXJzLgoKMjAxMS0wNS0wNiAxOTowMzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCAyIG5ldyBjYXBzIG1ldGhvZHMKCSAgQWRkIG1ldGhvZCB0byBnZXQgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGNhcHMgb24gdGhlIHBhZC4KCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbmZpZ3VyZWQgb24gYSBwYWQuCgoyMDExLTA1LTA2IDE3OjU5OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgcGFkOiBpbXBsZW1lbnQgZml4ZWQgY2FwcyB3aXRoIGFuIG9iamVjdCBmbGFnCgkgIEltcGxlbWVudCBmaXhlZCBjYXBzIHdpdGggYW4gb2JqZWN0IGZsYWcgaW5zdGVhZCBvZiBhIGN1c3RvbSBnZXRjYXBzIGZ1bmN0aW9uLgoKMjAxMS0wNS0wNiAxNzozMDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCB1c2UgYnVmZmVyIGNhcHMgZm9yIG5lZ290aWF0aW9uCgkgIERvbid0IHVzZSB0aGUgYnVmZmVyIGNhcHMgZm9yIG5lZ290aWF0aW9uIGFueW1vcmUgYnV0IHVzZSB0aGUgQ0FQUyBldmVudHMuCgkgIE1ha2UgdGhlIF9zZXRfY2FwcyBtZXRob2QgcHJvZHVjZSB0aGUgQ0FQUyBldmVudCwgYWRkIHNvbWUgYmFja3dhcmQKCSAgY29tcGF0aWJpbGl0eSBjb2RlIHRvIHRyaWdnZXIgdGhlIHNldGNhcHMgZnVuY3Rpb25zIG9uIHNyYyBhbmQgc2lua3BhZHMuCgkgIFJlbW92ZSBhbGwgbmVnb3RpYXRpb24gY29kZSBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbnMuCgkgIERvbid0IHVzZSB0aGUgR1NUX1BBRF9DQVBTIHZhcmlhYmxlIGFueW1vcmUgdG8gc3RvcmUgdGhlIGNhcHMgYnV0IHJldHJpZXZlIHRoZQoJICBjYXBzIGZyb20gdGhlIHN0aWNreSBldmVudCBhcnJheS4KCjIwMTEtMDUtMDYgMTY6MTQ6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogZG9uJ3QgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCB1bnNldCBjYXBzCgoyMDExLTA1LTA2IDE2OjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGxldCB0aGUgbm9ybWFsIGNvZGUgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxMTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IGhhbmRsZSBOVUxMIHBhZHMgaW4gc29tZSBjYXNlcwoKMjAxMS0wNS0wNiAxNjoxMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBsZXQgdGhlIHBhZCBjbGVhbiB1cCBpbiBhY3RpdmF0ZQoKMjAxMS0wNS0wNiAxNTo1NTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IG1lc3Mgd2l0aCBwYWQgY2FwcyBpbiBhY3RpdmF0ZQoJICBXaGVuIGRlYWN0aXZhdGluZyBhIHBhZCwgbGV0IHRoZSBwYWQgZGVjaWRlIHdoYXQgZmllbGRzIHRvIGNsZWFyLgoKMjAxMS0wNS0wNiAxNTo1MToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogb25seSBhbGxvdyBmaXhlZCBjYXBzIGluIGNhcHMgZXZlbnQKCjIwMTEtMDUtMDYgMTM6MDE6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgZ3N0X2V2ZW50X25ld19yZWNvbmZpZ3VyZSgpCgoyMDExLTA1LTA2IDEyOjIzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTA2IDEyOjE5OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogcmVuYW1lIGdzdF9lbGVtZW50X2xvc3Rfc3RhdGVfZnVsbCgpCgkgIFJlbmFtZSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKSB0byBnc3RfZWxlbWVudF9sb3N0X3N0YXRlKCkgYW5kCgkgIHJlbW92ZSB0aGUgb2xkIG1ldGhvZCBuYW1lLgoKMjAxMS0wNS0wNiAxMjowOTowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGVhbiB1cCB0aGUgLmggZmlsZSBhIGJpdAoKMjAxMS0wNS0wNiAxMToxNDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogaW1wbGVtZW50IG1vcmUgc3RpY2t5IGV2ZW50cwoJICBSZW1vdmUgdGhlIGNvbnRleHQgYWdhaW4sIGFkZGluZyBhbiBleHRyYSBsYXllciBvZiByZWZjb3VudGluZyBhbmQgb2JqZWN0CgkgIGNyZWF0aW9uIHRvIG1hbmFnZSBhbiBhcnJheSBpcyB0b28gY29tcGxpY2F0ZWQgYW5kIGluZWZmaWNpZW50LiBVc2UgYSBzaW1wbGUKCSAgYXJyYXkgYWdhaW4uCgkgIEFsc28gaW1wbGVtZW50IGV2ZW50IHVwZGF0ZXMgd2hlbiBjYWxsaW5nIGdzdF9wYWRfY2hhaW4oKSBhbmQKCSAgZ3N0X2V2ZW50X3NlbmRfZXZlbnQoKSBkaXJlY3RseS4KCjIwMTEtMDUtMDYgMTE6MzU6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGF2b2lkIHJlZGVmaW5pdGlvbiBvZiBzeW1ib2xzIHdoZW4gZGVidWdnaW5nIGlzIG9mZgoJICBUaGUgcmVmYWN0b3Jpbmcgb2YgZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKSBub3cgY2F1c2VzIGJ1aWxkIGZhaWx1cmUgd2hlbgoJICBkZWJ1Zy1sb2dnaW5nIGlzIHR1cm5lZCBvZmYuIEp1c3QgbW92ZSBpdCB0byB0aGUgY29uZGl0aW9uYWwgcGFydCBvZiB0aGUgaGVhZGVyLgoKMjAxMS0wNS0wNiAxMTowMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogcmVvcmRlciBldmVudHMKCSAgUmVvcmRlciB0aGUgc3RpY2t5IGV2ZW50cyBzbyB0aGF0IHRoZXkgYXJlIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSBwdXNoZWQuCgoyMDExLTA1LTA1IDE5OjI0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNpbXBsaWZ5IHNvbWUgbW9yZQoJICBJZiB3ZSBnZXQgYSBjb250ZXh0IGluIHRoZSBjaGFpbiBmdW5jdGlvbnMgd2UgYWx3YXlzIG5lZWQgdG8gZG8gYSBmdWxsIHVwZGF0ZSBvZgoJICB0aGUgY29udGV4dCBvbiB0aGUgcGVlciBwYWQuCgoyMDExLTA1LTA1IDE4OjU2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgY29udGV4dCBwYXNzaW5nIHNvbWUgbW9yZQoJICBQYXNzIHRoZSBjb250ZXh0IGRvd25zdHJlYW0gd2hlbiBpdCBnb3QgdXBkYXRlZC4KCSAgSGF2ZSB0d28gd2F5cyBvZiBpbmZvcm1pbmcgZG93bnN0cmVhbSBvZiBldmVudHMsIGRvIGEgZnVsbCBjb250ZXh0IHVwZGF0ZSB3aGVuCgkgIHRoZSBDT05URVhUX1BFTkRJTkcgZmxhZyBpcyBzZXQgYW5kIHNpbXBseSBmb3J3YXJkIHRoZSBldmVudCBvdGhlcndpc2UuCgkgIFNldCB0aGUgQ09OVEVOVF9QRU5ESU5HIGZsYWcgd2hlbiBsaW5raW5nIHBhZHMuCgkgIFdlIGRvbid0IG5lZWQgdG8gb2xkIGNvbnRleHQgYW55bW9yZSB3aGVuIHVwZGF0aW5nIHRoZSBjb250ZXh0IG9mIGEgcGFkLgoKMjAxMS0wNS0wNSAxODoyMToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgZ2V0IHRoZSBwYXJlbnQgdHdpY2UgaW4gdGhlIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDUtMDUgMTY6NTk6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCByZWZjb3VudCBsZWFrIG9mIHRoZSBwYXJlbnQgaW4gdGhlIGRlZmF1bHQgZXZlbnQgZGlzcGF0Y2ggZnVuY3Rpb24KCjIwMTEtMDUtMDUgMTY6MzI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbXByb3ZlIHBhc3NpbmcgYXJvdW5kIHRoZSBjb250ZXh0CgkgIEltcHJvdmUgcGFzc2luZyBhcm91bmQgdGhlIGNvbnRleHQsIG9ubHkgc2VuZCB0aGUgY29udGV4dCB0byB0aGUgcGVlciBlbGVtZW50CgkgIHdoZW4gdGhlIENPTlRFWFRfUEVORElORyBmbGFnIGlzIHNldC4KCjIwMTEtMDUtMDUgMTY6MDU6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0cwoKMjAxMS0wMy0xNyAxMTo1Mjo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgdGVzdHM6IFVwZGF0ZSBmb3IgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNyAxMTozMjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jcy9kZWY6IEFkZCBuZXcgc3ltYm9scywgcmVtb3ZlIG9sZCBzeW1ib2xzCgoyMDExLTAzLTE3IDExOjMyOjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IFVwZGF0ZSBldmVyeXRoaW5nIGZvciB0aGUgbmV3IEdzdEl0ZXJhdG9yIEFQSQoKMjAxMS0wMy0xNyAxMTozMTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBVcGRhdGUgZXZlcnl0aGluZyBmb3IgdGhlIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTYgMTA6NTA6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGl0ZXJhdG9yOiBSZWZhY3RvciBHc3RJdGVyYXRvciB0byBiZSBtb3JlIGJpbmRpbmcgZnJpZW5kbHkgYW5kIGhhdmUgc2FuZXIgcmVmY291bnRpbmcKCSAgRml4ZXMgYnVnICM2Mzg5ODcuCgoyMDExLTAxLTA4IDEyOjI3OjU1IC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IHJlZ2lzdGVyIGFzIGEgYm94ZWQgdHlwZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjE0OjQwIC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogdXNlIEdTbGljZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjEyOjQxIC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBmcmVlIHN0cnVjdCBpbiBnc3RfaXRlcmF0b3JfZnJlZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTAxLTA4IDEyOjA3OjU1IC0wMjAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IHN0b3JlIHNpemUgaW4gdGhlIHN0cnVjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTg3CgoyMDExLTA1LTA1IDExOjI4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE1lcmdlIHN0cnVjdHVyZXMgd2hlbiBpbnRlcnNlY3RpbmcgaW5zdGVhZCBvZiBhcHBlbmRpbmcgdGhlbQoJICBUaGlzIHByZXZlbnRzIGFkZGluZyBkdXBsaWNhdGVzIG92ZXIgYW5kIG92ZXIgYWdhaW4gdG8gdGhlIHJlc3VsdGluZwoJICBjYXBzIGlmIHRoZXkgYWxyZWFkeSBkZXNjcmliZSB0aGUgbmV3IGludGVyc2VjdGlvbiByZXN1bHQuCgkgIFdoaWxlIHRoaXMgY2hhbmdlcyBpbnRlcnNlY3Rpb24gZnJvbSBPKG4qbSkgdG8gTyhuXjIqbSksIGl0IHJlc3VsdHMgaW4KCSAgc21hbGxlciBjYXBzLCB3aGljaCBpbiB0aGUgZW5kIHdpbGwgZGVjcmVhc2UgZnVydGhlciBwcm9jZXNzaW5nIHRpbWVzLgoJICBGb3IgZXhhbXBsZSBpbiBhbiBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgcGlwZWxpbmUsCgkgIHdoZW4gZm9yd2FyZGluZyB0aGUgZG93bnN0cmVhbSBjYXBzIHByZWZlcmVuY2UgaW4gYmFzZXRyYW5zZm9ybQoJICAoc2VlIGUyNmRhNzJkZTI1YTkxYzNlYWFkOWY3YzhiMmY1M2JhODg4YTAzOTQpIHRoaXMgcmVzdWx0cyBpbgoJICAxNiBpbnN0ZWFkIG9mIDE5MSBjYXBzIHN0cnVjdHVyZXMuCgoyMDExLTA1LTA0IDExOjI5OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbiBnZXRjYXBzKCkgcHJlZmVyIHRoZSBjYXBzIG9yZGVyIGFuZCBjYXBzIG9mIGRvd25zdHJlYW0gaWYgcG9zc2libGUKCjIwMTEtMDUtMDMgMTc6MjY6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByZWZlciBjYXBzIG9yZGVyIGdpdmVuIGJ5IHRoZSBzdWJjbGFzcyBvZiB0aGUgdGVtcGxhdGUgY2FwcyBvcmRlcgoKMjAxMS0wNS0wMyAxNDoxMzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogVXNlIHRoZSByZWNvbmZpZ3VyZSBmbGFnIG9uIHRoZSBwYWQgaW5zdGVhZCBvZiB0aGUgZXZlbnQKCjIwMTEtMDUtMDMgMTQ6MTE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBuZXcgcmVjb25maWd1cmUgZmxhZyBvbiB0aGUgcGFkcyBpbnN0ZWFkIG9mIHRoZSByZWNvbmZpZ3VyZSBldmVudAoKMjAxMS0wNS0wMyAxMzo0Mjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBLZWVwIHRyYWNrIG9mIHJlY29uZmlndXJlIGV2ZW50cyBhbmQgdGhlIHBhZC1uZWVkcy1yZWNvbmZpZ3VyaW5nIHN0YXR1cwoKMjAxMS0wNS0wMyAxMzowNTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBSZW5hbWUgcmVuZWdvdGlhdGUgZXZlbnQgdG8gcmVjb25maWd1cmUKCSAgSW4gMC4xMSB0aGlzIGV2ZW50IHdpbGwgYWxzbyBkbyByZWNvbmZpZ3VyYXRpb24gb2YgYnVmZmVyIHBvb2xzCgkgIGFuZCBzaW1pbGFyIHRoaW5ncywgbm90IGp1c3QgcmVuZWdvdGlhdGlvbi4KCjIwMTAtMDMtMTcgMjE6MjQ6NTUgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZW5kIHJlbmVnb3RpYXRlIGV2ZW50IG9uIGxpbmsKCjIwMTAtMDMtMTcgMjE6MTc6MTAgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEcm9wIHJlbmVnb3RpYXRlIGV2ZW50IGlmIHRoZXJlIGlzIG5vIGdldGNhcHMgZnVuY3Rpb24gb24gYSBzaW5rIHBhZAoJICBJZiB0aGVyZSBpcyBubyBjdXN0b20gZ2V0Y2FwcyBmdW5jdGlvbiBvbiBhIHNpbmsgcGFkLCB0aGVuIGNoYW5nZXMgaW4KCSAgZG93bnN0cmVhbSBjYXBzIHdpbGwgbmV2ZXIgYmUgcHJvcGFnYXRlZCwgc28gdGhlcmUgaXMgbm8gcG9pbnQgaW4gdHJ5aW5nIHRvCgkgIHJlbmVnb3RpYXRlIHRoZSBjYXBhYmlsaXRpZXMuCgoyMDExLTA0LTI2IDE2OjM5OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IHJlbmVnb3RpYXRlIG9uY2UgYWZ0ZXIgcmVjZWl2aW5nIGEgcmVuZWdvdGlhdGUgZXZlbnQKCSAgQWxzbyBtYWtlIHRoaXMgdGhyZWFkc2FmZS4KCjIwMTEtMDEtMTcgMTQ6MTM6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgkgIE1ha2VzIGJhc2VzcmMgaGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQgYnkgdXNpbmcgYQoJICByZW5lZ290aWF0ZSBmbGFnLgoKMjAxMS0wNC0yNiAxNjo0ODowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWxzbyBjYWxsIGdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSgpIG9uIHJlbmVnb3RpYXRlIGV2ZW50cwoKMjAxMS0wMS0xNyAxNDoxMzo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIHRoZSBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCSAgTGV0IGJhc2V0cmFuc2Zvcm0gcHVzaCBhIHJlbmVnb3RpYXRlIGV2ZW50IHVwc3RyZWFtCgkgIHdoZW4gaXQgZ2V0cyBhIG5ldyBzdWdnZXN0aW9uCgoyMDExLTAxLTE3IDExOjUxOjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZGluZyBuZXcgcmVuZWdvdGlhdGUgZXZlbnQKCjIwMTEtMDUtMDUgMTM6MTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcGFzcyB0aGUgY29udGV4dCBhcm91bmQKCSAgUGFzcyB0aGUgY29udGV4dCBmcm9tIHNyY3BhZCB0byBzaW5rcGFkIGJlZm9yZSBkYXRhZmxvdyB3aGVuIHNvbWV0aGluZwoJICBjaGFuZ2VkLgoKMjAxMS0wNS0wNSAxMToxNzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHVwZGF0ZSB0aGUgY29udGV4dCBsYXp5bHkKCjIwMTEtMDUtMDUgMTE6MTY6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogaW5pdCB0aGUgR1R5cGUgZWFybHkKCjIwMTEtMDUtMDUgMTE6MTY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTEtMDUtMDUgMTA6NDA6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBhZGQgZm9yZWFjaCBmdW5jdGlvbgoJICBBZGQgYSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYWxsIHN0b3JlZCBldmVudHMuCgoyMDExLTA1LTA1IDEwOjM3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgImNvbnRleHQ6IHVzZSBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDllZjEzNDZiMWZhMGJkMmJiNDJjZDk5MWE1MmZmMzA4YTcyOGJkYjYuCgkgIFdheSB0byBtdWNoIGZvciBvbmUgY29tbWl0IGFuZCBJJ20gbm90IHN1cmUgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoZSBwYWQgY2FwcwoJICBqdXN0IGxpa2UgdGhhdC4gSXQncyBuaWNlIHRvIGhhdmUgdGhlIGJ1ZmZlciBhbmQgaXRzIHR5cGUgaW4gb253IG5pY2UgYnVuZGxlCgkgIHdpdGhvdXQgaGF2aW5nIHRvIGRyYWcgdGhlIGNvbXBsZXRlIGNvbnRleHQgd2l0aCBpdC4KCjIwMTEtMDQtMjAgMjI6NTI6MzYgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IGRvbid0IHVuZXNjYXBlIGluc2lkZSBxdW90ZXMKCSAgRXNjYXBlZCBjaGFyYWN0ZXJzIGluc2lkZSBxdW90ZWQgc3RyaW5ncyBhcmUgc3VwcG9zZWQgdG8gYmUgdW5lc2NhcGVkIGJ5CgkgIGRlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMsIG5vdCBieSBwYXJzaW5nIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODAyNQoKMjAxMS0wNC0xOCAxNDoyNjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSBwb3N0IEVPUyBtZXNzYWdlcyBhZnRlciByZWFjaGluZyB0aGUgUExBWUlORyBzdGF0ZQoJICBGaXhlcyBidWcgIzY0Nzc1Ni4KCjIwMTEtMDQtMTggMTA6MDQ6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRQoJICBSZXNldHRpbmcgdGhlIHJlc3VsdCBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gcmVzeW5jaW5nIGJlY2F1c2UKCSAgcGFkcyB0aGF0IHByZXZpb3VzbHkgZ290IHRoZSBldmVudCB3aWxsIGJlIHNraXBwZWQgYW5kIHdlCgkgIG5lZWQgdG8gY29uc2lkZXIgdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHB1c2hlcy4KCjIwMTEtMDQtMTggMDk6NTM6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA0LTE4IDA5OjQ5OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJZiBhY3RpdmF0aW5nIG9uZSBwYWQgZmFpbGVkIGVycm9yIG91dCBlYXJseSBpbnN0ZWFkIG9mIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgbmV4dCBwYWRzCgkgIElmIG9uZSBwYWQgZmFpbHMgdG8gYWN0aXZhdGUgdGhlIGNvbXBsZXRlIGFjdGl2YXRpb24gcHJvY2VzcyB3aWxsIGZhaWwKCSAgYW55d2F5IGFuZCB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG90aGVyIHBhZHMgb25seSB3YXN0ZXMgdGltZS4KCjIwMTEtMDUtMDUgMTI6Mjg6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlbW92ZSBub3dhZGF5cyB1bnVzZWQgYW5kIHVuaW5pdGlhbGl6ZWQgc2V0Y2FwcyB2YXJpYWJsZQoKMjAxMS0wNS0wNSAxMjoyNzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgoyMDExLTA1LTA0IDE4OjU5OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBjb250ZXh0OiB1c2UgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2FwcwoJICBQdXQgdGhlIHNyY3BhZCBjb250ZXh0IG9uIGJ1ZmZlcnMgaW5zdGVhZCBvZiBjYXBzLiBUaGlzIGFsbG93cyB1cyB0byBhc3NvY2lhdGUKCSAgYWxsIHRoZSByZWxldmFudCBpbmZvIGNvbnRhaW5lZCBpbiBldmVudHMgd2l0aCBhIGJ1ZmZlci4KCjIwMTEtMDUtMDQgMTU6Mjk6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5nIGluIG5ldyBtaW5pb2JqZWN0IHRlc3QKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogSW4gZnVuY3Rpb24g4oCYdGVzdF9kdXBfbnVsbF9taW5pX29iamVjdOKAmToKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzo0NTk6Nzogd2FybmluZzogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKCjIwMTEtMDUtMDQgMTU6NTM6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogdXNlIHRoZSBjb250ZXh0IHRvIHN0b3JlIHN0aWNreSBldmVudHMKCSAgU3RvcmUgdGhlIHN0aWNreSBldmVudHMgaW4gdGhlIGNvbnRleHQgb2YgYSBzb3VyY2UgcGFkLgoKMjAxMS0wNS0wNCAxNToyMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGNvbnRleHQ6IGFkZCBoZWxwZXIgb2JqZWN0IHRvIG1hbmFnZSBldmVudHMKCSAgQWRkIGEgaGVscGVyIG9iamVjdCB0byBtYW5hZ2UgdGhlIGV2ZW50cyB0aGF0IGRlZmluZSB0aGUgY29udGV4dCBvZiBhIGJ1ZmZlciBhbmQKCSAgYSBzdHJlYW0uCgoyMDExLTA1LTA0IDExOjA3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA1LTA0IDExOjAzOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBhZGQgbmV3IENBUFMgZXZlbnQKCSAgQWRkIGEgbmV3IENBUFMgZXZlbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gbmVnb3RpYXRlIGRvd25zdHJlYW0gZWxlbWVudHMuIEl0J2xsCgkgIGFsc28gc3RpY2sgb24gcGFkIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGUgR3N0Q2FwcyBmaWVsZCBvbiBwYWRzIGFuZCB0aGUKCSAgR3N0Q2FwcyBmaWVsZCBvbiBidWZmZXJzLgoKMjAxMS0wNS0wMyAxODo1ODoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtb3JlIHN0aWNreSBldmVudHMgd29yawoJICBDb3B5IHRoZSBzdGlja3kgZXZlbnRzIGZyb20gdGhlIHNyY3BhZCB0byB0aGUgc2lua3BhZCB3aGVuIGxpbmtpbmcgcGFkcy4gU2V0IHRoZQoJICBTVElDS1lfUEVORElORyBmbGFnIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzdGlja3kgZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGJlZm9yZQoJICBwdXNoaW5nIHRoZSBuZXh0IGJ1ZmZlciB0byB0aGUgZWxlbWVudC4KCjIwMTEtMDUtMDMgMTY6MTE6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBpbXByb3ZlIHBvcnRpbmcgZG9jCgoyMDExLTA1LTAyIDE4OjQ1OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jdW1lbnQKCjIwMTEtMDUtMDIgMTE6MzA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogRml4IGR1cF9taW5pX29iamVjdCBmdW5jdGlvbiB0byBoYW5kbGUgTlVMTCBndmFsdWVzCgkgIGdfdmFsdWVfZHVwX29iamVjdCBoYW5kbGVzIGd2YWx1ZXMgdGhhdCBjb250YWluIE5VTEwgcG9pbnRlcnMsCgkgIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3Qgc2hvdWxkIGRvIHRoZSBzYW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5MTk1CgoyMDExLTA1LTAzIDEzOjU1OjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBpdCBpdHMgJVRSVUUgKGNvbnN0YW50KQoJICBBcyBzcG90dGVkIGJ5IFRpbS4KCjIwMTEtMDUtMDIgMTY6MjI6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBkb2NzOiBmaXggY29weSduJ3Bhc3RlIGRvYyBoZWFkZXIgbWlzdGFrZQoKMjAxMS0wNS0wMiAxNjoyMDoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgZG9jczogYWRkIHR3byB0cml2aWFsIGRvYyBibG9icwoKMjAxMS0wNS0wMiAxNjowMzoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3MKCjIwMTEtMDUtMDIgMTY6MDA6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIEdzdERQUGFja2V0aXplcgoKMjAxMS0wNS0wMiAxNTo1Mjo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgZG9jczogaW1wcm92ZSB0aGUgc3ludGF4IGZvciB0aGUgY2Fwc2ludGVyc2VjdG1vZGUgZG9jcwoKMjAxMS0wNS0wMiAxNTo0ODowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogZml4dXAgYnJva2VuIHhyZWYKCjIwMTEtMDUtMDIgMTU6NDY6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgYXBpIHRvIC1zZWN0aW9uLnR4dAoKMjAxMS0wNS0wMiAxNTozNTo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGRvY3M6IGZpeCBndGstZG9jIHN5bnRheAoKMjAxMS0wNS0wMiAxNTozMDoxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZG9jczogZG9uJ3QgZHVwbGljYXRlIGluZm8gdGhhdCB3ZSB0YWtlIGZyb20gZWxlbWVudC1kZXRhaWxzCgoyMDExLTA0LTI4IDE1OjM3OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgbm9uIGV4aXN0aW5nIHN5bWJvbAoKMjAxMS0wNC0yOCAxNTowNToyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIGRvY3M6IHdlIGRvbid0IG5lZWQgdG8gZG9jdW1lbnQgcHJpdmF0ZSBtZW1iZXJzIGluIG9wYXF1ZSBzdHJ1Y3RzCgoyMDExLTA0LTI5IDEzOjQzOjA3ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJICBjb3JlOiBzdG9yZSBwcmVzZXRzLCByZWdpc3RyeSBhbmQgcGx1Z2lucyBpbiBYREcgZGlyZWN0b3JpZXMuCgkgIFByZXNldHMgYW5kIHBsdWdpbnMgbW92ZWQgdG8gJFhER19EQVRBX0hPTUUvZ3N0cmVhbWVyLTAuMTEvCgkgIHJvb3QgZGlyZWN0b3J5LiBSZWdpc3RyeSBtb3ZlZCB0byAkWERHX0NBQ0hFX0hPTUUvZ3N0cmVhbWVyLTAuMTEvLgoJICBGaXhlcyBidWcgIzUxODU5Ny4KCjIwMTEtMDUtMDMgMDk6NDE6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBnc3QvZ3N0YnVzLmMKCjIwMTEtMDUtMDIgMTg6MzQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBldmVudDogYWRkIHN0aWNreSBmbGFncyB0byBldmVudHMKCSAgQWRkIHRoZSBzdGlja3kgZmxhZyB0byBldmVudHMgYW5kIGEgc3RpY2t5IGluZGV4LgoJICBLZWVwIHN0aWNreSBldmVudHMgaW4gYW4gYXJyYXkgb24gZWFjaCBwYWQuCgkgIFJlbW92ZSBHU1RfRVZFTlRfU1JDKCksIGl0IGlzIGNhdXNpbmcgcmVmY3ljbGVzIHdpdGggc3RpY2t5IGV2ZW50cywgd2FzIG5vdCB1c2VkCgkgIGFuZCBpcyBub3QgdmVyeSBpbnRlcmVzdGluZyBhbnl3YXkuCgoyMDExLTA1LTAyIDExOjA5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogaW1wcm92ZSBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgcXVlcnkKCSAgVXNlIHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgdGhvc2UgdXNlZCBmb3IgdGhlIGJ1ZmZlcnBvb2wuIE1ha2Ugc3VyZSB3ZSBjYW4gcGFzcwoJICBhIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIGJ1ZmZlcnMgbmVlZGVkLgoKMjAxMS0wNC0zMCAxNjo1NTozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0YXRpY2VsZW1lbnRzLnhtbDoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuNCBwcmUtcmVsZWFzZQoKMjAxMS0wNC0yOSAyMzo0NDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBwbHVnaW5mZWF0dXJlOiBpbmNsdWRlIHBsdWdpbi5oIGluIGhlYWRlciB3aGVyZSB3ZSB1c2UgYSBHc3RQbHVnaW4gcG9pbnRlcgoJICBTaG91bGQgZml4IGlzc3VlIHdpdGggZ3N0cmVhbWVybW0gYnVpbGQgd2hlcmUgPGdzdC9nc3RpbmRleC5oPiBpcyBpbmNsdWRlZAoJICBkaXJlY3RseSBpbnN0ZWFkIG9mIGdzdC9nc3QuaC4KCjIwMTEtMDQtMjkgMTM6NDI6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBkbyBwYWRfYWxsb2MgZmFsbGJhY2sgY29ycmVjdGx5CgoyMDExLTA0LTI5IDEzOjI2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIHBhZF9hbGxvYywgdGhpcyBjYW4gbm93IGJlIGRvbmUgYmV0dGVyCgkgIFJlbW92ZSBwYWRfYWxsb2MgYW5kIGFsbCByZWZlcmVuY2VzLiBUaGlzIGNhbiBub3cgYmUgZG9uZSBtb3JlIGVmZmljaWVudGx5IGFuZAoJICBtb3JlIGZsZXhpYmxlIHdpdGggdGhlIEFMTE9DQVRJT04gcXVlcnkgYW5kIHRoZSBidWZmZXJwb29sIG9iamVjdHMuIFRoZXJlIGlzIG5vCgkgIHJldmVyc2UgbmVnb3RpYXRpb24geWV0IGJ1dCB0aGF0IHdpbGwgYmUgZG9uZSB3aXRoIGFuIGV2ZW50IGxhdGVyLgoKMjAxMS0wNC0yOSAxMjoxMTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogaW5pdCB0aGUgQUxMT0NBVElPTiBxdWVyeSBjb3JyZWN0bHkKCSAgRG9uJ3QgYWRkIHRoZSAncG9vbCcgcHJvcGVydHkgaW5zdGVhZCBvZiBhZGRpbmcgaXQgd2l0aCBhIE5VTEwgYXJyYXkuCgoyMDExLTA0LTI5IDEwOjUwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGZpeCBwYXJzaW5nIG9mIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5CgkgIEFkZCBtZXRob2RzIGZvciBwYXJzaW5nIHRoZSBjYXBzIGFuZCB0aGUgbmVlZF9wb29sIGJvb2xlYW4uCgoyMDExLTA0LTI4IDE2OjIwOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGZpeCB0eXBvIGluIG1ldGhvZCBuYW1lIGFuZCBpbXByb3ZlIGRvY3MKCSAgRml4ZWQgdHlwbyBpbiBtZXRob2QgbmFtZSBhbmQgYWRkL2ltcHJvdmUgdGhlIGRvY3MuCgoyMDExLTA0LTI4IDE1OjMxOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYWxsb2NhdGlvbi50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIHF1ZXJ5IHRvIHJlcXVlc3QgcG9vbCBhbmQgY29uZmlndXJhdGlvbgoJICBBZGQgYSBxdWVyeSB0byByZXF1ZXN0IGFsbG9jYXRpb24gcGFyYW1ldGVycyBhbmQgb3B0aW9uYWxseSBhIGJ1ZmZlcnBvb2wgYXMKCSAgd2VsbC4gVGhpcyBzaG91bGQgYWxsb3cgZWxlbWVudHMgdG8gZGlzY292ZXIgZG93bnN0cmVhbSBjYXBhYmlsaXRpZXMgYW5kIGFsc28KCSAgdXNlIHRoZSBkb3duc3RyZWFtIGFsbG9jYXRvcnMuCgoyMDExLTA0LTI3IDE4OjEwOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGZpeCB0aW1lb3V0IGhhbmRsaW5nCgoyMDExLTA0LTI3IDE3OjU2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBzb21lIGRvY3MKCjIwMTEtMDQtMjcgMTc6NTU6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IGltcHJvdmUgYXJndW1lbnQgbmFtZXMgb2Ygc2VnbWVudHMKCjIwMTEtMDQtMjcgMTE6NDk6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHBvL2JnLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuMyBwcmUtcmVsZWFzZQoKMjAxMS0wNC0yNiAxNTo0Mjo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgUmV2ZXJ0IGxvY2tmcmVlIEdzdEJ1cyBmb3IgdGhlIHJlbGVhc2UKCSAgRHJvcCBpbiBvbGQgR3N0QnVzIGNvZGUgZm9yIHRoZSByZWxlYXNlIHRvIHBsYXkgaXQgc2FmZSwgc2luY2UKCSAgcmVncmVzc2lvbnMgdGhhdCBhcmUgYXBwYXJlbnRseSBoYXJkIHRvIHRyYWNrIGRvd24gYW5kIHJlcHJvZHVjZQoJICBoYXZlIGJlZW4gcmVwb3J0ZWQgKG9uIHdpbmRvd3MvT1NYIG1vc3RseSkgYWdhaW5zdCB0aGUgbG9ja2ZyZWUKCSAgdmVyc2lvbiwgYW5kIG1vcmUgdGltZSBpcyBuZWVkZWQgdG8gZml4IHRoZW0uCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDMzOTFhODk3MDAxZDM1ZDFkMjkwZjI3ZGQxMmU5OGE4YjcyOWZiNC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0M2NkYmMxN2U2Zjk0NGNkZjAyYWVlZDc4ZDFkNWY2YmRlNTE5MGM5LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDgwZWIxNjBlMGY2MjM1MDI3MWYwNjFkYWE1ZjI4OWQ5ZDQyNzdjZjQuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzQxYjBhZGUyODc5MGZmZGIwZTQ4NGI0MWNkNzkyOWM0ZTE0NWRlYy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4NzRkNjBlNTg5OWRkNWI4OTg1NDY3OWQxYTRhZDAxNmE1OGJhNGUwLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDc5MzcwZDRiMTc4MWFmOWM5YTY1ZjJkMWUzNDk4MTI0ZDhjNGM0MTMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmNiM2U1MjM1MTk2ZWI3MWZiMjVlMGE0YTRiODc0OWQ2ZDBhODQ1My4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZDFjNDAwMTE0MzRjMWVmYWE2OTZkYzk4ZWY4NTVlZjljY2U5YjI4LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDRiZjhmMTUyNGY2ZTMzNzRiM2YzYmM1NzMyMjMzNzcyM2QwNmI5MjguCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTRkN2RiMWI1MjdiMDVmMDI5ODE5MDU3YWVmNWMxMjNhYzdlMDEzZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzQ5MwoKMjAxMS0wNC0yNSAxMToxMDo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFNtYWxsIGNvc21ldGljIGNsZWFudXBzCgkgIE1ha2Ugc3VyZSB0aGUgcmV0dXJuIHZhbHVlcyBmcm9tIGdfcmV0dXJuXyogYXJlIG9mIHRoZSByaWdodCB0eXBlLgoKMjAxMS0wNC0yNSAxMDo1NjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1peGluZyBvZiByZXR1cm4gdmFsdWVzCgoyMDExLTA0LTI1IDEwOjMwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNSAyMjowMDoxMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgbWlub3IgaW5saW5lIGRvY3VtZW50YXRpb24gZml4CgoyMDExLTA0LTI0IDE0OjAyOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzNjYWZlMSB0byA0NmRmY2VhCgoyMDExLTA0LTI0IDExOjQ0OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGNsZWFuIHVwIHByb3Blcmx5IGluIHRoZSBiaW4gdGVzdF9saW5rX3N0cnVjdHVyZV9jaGFuZ2UgdW5pdCB0ZXN0CgkgIERvbid0IGZvcmdldCB0byBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gTlVMTCBzdGF0ZSwgd2hpY2ggbWFrZXMKCSAgdmFsZ3JpbmQgaGFwcHkgYWdhaW4uCgoyMDExLTA0LTI0IDA5OjU4OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogd2hlbiByZW1vdmluZyBhIGNhY2hlZC1idXQtbm8tbG9uZ2VyLWV4aXN0aW5nIHBsdWdpbiwgb25seSByZW1vdmUgZmVhdHVyZXMgdGhhdCBiZWxvbmcgdG8gaXQKCSAgV2hlbiBhIHBsdWdpbiBmaWxlIG5vIGxvbmdlciBleGlzdHMsIGUuZy4gYmVjYXVzZSBpdCdzIGJlZW4gcmVtb3ZlZCBvcgoJICByZW5hbWVkLCBkb24ndCByZW1vdmUgYWxsIGZlYXR1cmVzIGluIHRoZSByZWdpc3RyeSBiYXNlZCBvbiB0aGUgKm5hbWUqCgkgIG9mIHRoZSBwbHVnaW4gdGhleSBiZWxvbmcgdG8sIGJ1dCBvbmx5IHJlbW92ZSB0aG9zZSB3aG8gYWN0dWFsbHkgYmVsb25nCgkgIHRvIHRoYXQgcGFydGljdWxhciBwbHVnaW4gKG9iamVjdC9wb2ludGVyKS4KCSAgVGhpcyBmaXhlcyBpc3N1ZXMgb2YgcGx1Z2luIGZlYXR1cmVzIGRpc2FwcGVhcmluZyB3aGVuIGEgcGx1Z2luIC5zbyBmaWxlCgkgIGlzIHJlbmFtZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDQwOTQKCjIwMTEtMDQtMjQgMDk6NTM6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgcGx1Z2luZmVhdHVyZTogc3RvcmUgcG9pbnRlciB0byBwbHVnaW4gaW4gYWRkaXRpb24gdG8gdGhlIHBsdWdpbiBuYW1lCgkgIFNvIHdlIGNhbiByZWxpYWJseSByZW1vdmUgcGx1Z2luIGZlYXR1cmVzIGZvciBhIHNwZWNpZmljIHBsdWdpbiBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNDA5NAoKMjAxMS0wNC0yNCAxMTowNTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHVzZSBUUkFDRSBsb2cgbGV2ZWwgdG8gbG9nIGZpbGVzIHRoYXQgZG9uJ3QgbG9vayBsaWtlIHBsdWdpbnMKCSAgQ3V0cyBkb3duIHRoZSBub2lzZSBpbiB1bmluc3RhbGxlZCBzZXR1cHMuCgoyMDExLTA0LTE5IDIwOjM1OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggbmVnb3RpYXRpb24gcmVncmVzc2lvbgoJICBGaXh1cCBwYXRjaCBmb3IgODM1OTc3NjdiMTY5ZGQ2YzM5YTA3YjYxNDRhNjUwYzFmMDk4ODI1YQoJICBVc2UgYSBzZXBhcmF0ZSB2YXJpYWJsZSBmb3Iga25vd2luZyBpZiBhIHBhZCBhbGxvYyBoYXMgYmVlbiBtYWRlCgkgIGluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIHRoZSBmbG93IHJldHVybiB0aGF0IG1pZ2h0IG5vdCBiZSB0aGUKCSAgcmVzdWx0IG9mIHRoZSBwYWQgYWxsb2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODIyMAoKMjAxMS0wNC0yMSAxMjozMzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IGFkZCBzaW1wbGUgcGlwZWxpbmUtaW4tcGlwZWxpbmUgdW5pdCB0ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyOTcKCjIwMTEtMDQtMjAgMTU6Mzk6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGFsc28gYWxsb3cgcG9wcGluZyBhIG1lc3NhZ2Ugd2l0aG91dCB0aW1lb3V0IGlmIG5vIHBvbGwgYXZhaWxhYmxlCgkgIC4uLiB3aGljaCBoYXBwZW5zIGluIHBhcnRpY3VsYXIgZmx1c2hpbmcgYSBidXMsIHBvc3NpYmx5IGFzIHBhcnQKCSAgb2YgYSBzdGF0ZSBjaGFuZ2UsIGUuZy4gd2hlbiBoYXZpbmcgYSBwaXBlbGluZSBpbiBhIHBpcGVsaW5lCgkgIGFuZCB0aGVuIGNoYW5naW5nIHN0YXRlIGJhY2sgdG8gTlVMTC4gVGhlIGludGVyaW9yIHBpcGVsaW5lCgkgIHdpbGwvbWlnaHQgdGhlbiBmbHVzaCB0aGUgYnVzLCB3aGljaCBpcyBhIGNoaWxkIGJ1cyBmcm9tIHRoZQoJICBwYXJlbnQgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIHBvbGwgYW55bW9yZSB0aGVzZSBkYXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4Mjk3CgoyMDExLTA0LTIwIDE5OjA4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA0LTIwIDE5OjAzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNC0yMCAxOTowMDowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IHRvdWNoIGJhc2VfdGltZSBvciBjbG9jayBpbiBzdGF0ZSBjaGFuZ2UKCSAgRG9uJ3QgdG91Y2ggdGhlIGJhc2VfdGltZSBvciB0aGUgY2xvY2sgd2hlbiBzZXR0aW5nIGFuIGVsZW1lbnQgdG8gdGhlIFJFQURZIG9yCgkgIE5VTEwgc3RhdGUuIEl0IGlzIHRoZSBwYXJlbnQgdGhhdCB3aWxsIG1hbmFnZSB0aGlzIGZvciB1cy4KCjIwMTEtMDQtMTkgMjA6NTI6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogSW1wbGVtZW50IGdzdF9idWZmZXJfbGlzdF9mb3JlYWNoKCkKCjIwMTEtMDQtMTkgMTk6MzA6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE5IDE4OjU3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG1ldGhvZCB0byBjb21wYXJlIGJ1ZmZlciBkYXRhCgkgIEFkZCBtZXRob2QgdG8gY29tcGFyZSB0aGUgZGF0YSBpbiBhIGJ1ZmZlci4KCjIwMTEtMDQtMTkgMTY6MjE6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgoyMDExLTA0LTE5IDE0OjA1OjIzICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdW5sb2NrIGJlZm9yZSBmcmVlaW5nIHRoZSBjYWNoZSB0byBhdm9pZCBkZWFkbG9jawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MTk5CgoyMDExLTA0LTE0IDEwOjE1OjI2ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG9uJ3QgdW5yZWYgdHJhbnMgdW50aWwgdGhlIGZ1bmN0aW9uIGlzIGRvbmUgdXNpbmcgaXQKCSAgdHJhbnMtPnByaXYtPmZvcmNlX2FsbG9jID0gRkFMU0Ugd291bGQgY3Jhc2ggaWYgdGhlIHJlZiBoZWxkIGlzIHRoZSBsYXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyMTUKCjIwMTEtMDQtMTkgMTM6MjM6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGRvY3M6IGFkZCBub3RlL3dhcm5pbmcgdG8gZ3N0X2luZGV4X2dldF93cml0ZXJfaWQoKSBkb2NzIGFib3V0IHRoZSBPQkpFQ1RfTE9DSwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2ODExCgoyMDExLTA0LTE5IDEzOjA1OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgZGVhZGxvY2sgd2hlbiBzZXR0aW5nIGV4dGVybmFsIGluZGV4CgkgIFByb3RlY3QgaW5kZXggd2l0aCBpdHMgb3duIGxvY2suIGdzdF9pbmRleF9nZXRfd3JpdGVyX2lkKCkgbWF5IHRha2UKCSAgdGhlIG9iamVjdCBsb2NrIGludGVybmFsbHkgKHRoZSBkZWZhdWx0IHJlc29sdmVyLCBHU1RfSU5ERVhfUkVTT0xWRVJfUEFUSCwKCSAgd2lsbCBhbnl3YXkpLCBzbyBpZiB3ZSdyZSB1c2luZyB0aGF0IHRvIHByb3RlY3QgdGhlIGluZGV4IGFzIHdlbGwsCgkgIHdlJ2xsIGRlYWRsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2ODExCgoyMDExLTA0LTE5IDExOjUxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBmbXRsaXN0IGNvbnN0YW50CgoyMDExLTA0LTE5IDExOjQ4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGNvbnN0LWlmeSBmb3JtYXRzIGFyZ3VtZW50cyB0byBnc3RfcXVlcnlfc2V0X2Zvcm1hdHN2KCkKCjIwMTEtMDQtMTggMTg6MTk6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE4OjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2V7c2luayxzcmN9OiBEb24ndCB0cnkgdG8gZml4YXRlIEFOWSBjYXBzCgoyMDExLTA0LTE4IDE4OjA3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6MzM6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldDogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMDQtMTggMTc6MzI6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgIGJhc2U6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjI4OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogUmVtb3ZlIEdTVF9CT0lMRVJQTEFURSBhbmQgZnJpZW5kcwoKMjAxMS0wNC0xOCAxMDo0NzoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBNYWtlIHRoZSBzaXplIHBhcmFtZXRlciBvZiBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIHVuc2lnbmVkCgkgIEludGVybmFsbHkgZ3VpbnRzIHdlcmUgdXNlZCBldmVyeXdoZXJlIGFscmVhZHkuCgoyMDExLTA0LTE4IDEwOjQxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb24ndCBhbGxvdyBmaXhhdGluZyBBTlkgY2FwcyBhbmQgcmVtb3ZlIEZJWE1FCgoyMDExLTA0LTE4IDEwOjM2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBFbmFibGUgRFVSQVRJT04gcXVlcnkgY2FjaGluZwoJICBFbGVtZW50cyBtdXN0IG5vdyBwb3N0IGEgRFVSQVRJT04gbWVzc2FnZSBvbiB0aGUgYnVzIGlmIHRoZXkKCSAgY2hhbmdlIHRoZSBkdXJhdGlvbiBpbiBQQVVTRUQgb3IgUExBWUlORy4KCjIwMTEtMDQtMTYgMTU6MjA6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBiYXNlcGFyc2UgQVBJIHRoYXQgZGlkbid0IG1ha2UgaXQKCjIwMTEtMDQtMTYgMTY6MDY6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xNiAxNToyODo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgdGVzdCBmb3IgaW5oZXJpdGluZyBtZXRhZGF0YS9wYWQgdGVtcGxhdGVzCgoyMDExLTA0LTE2IDE1OjI0OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2U6IFVwZGF0ZSBkb2NzIHRvIHNheSBjbGFzc19pbml0IGluc3RlYWQgb2YgYmFzZV9pbml0CgkgIEFuZCByZW1vdmUgYSB1c2VsZXNzIGJhc2VfaW5pdCBpbiBiYXNlc3JjCgoyMDExLTA0LTE2IDE1OjIzOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBVc2UgR19ERUZJTkVfVFlQRQoKMjAxMS0wNC0xNiAxNToyMzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBnc3Q6IERvbid0IHVzZSBiYXNlX2luaXQgYW5kIHVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE2IDE1OjAzOjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBlbGVtZW50OiBJbmhlcml0IGVsZW1lbnQgbWV0YWRhdGEgYW5kIHBhZCB0ZW1wbGF0ZXMgZnJvbSBwYXJlbnQgY2xhc3NlcwoJICBUaGlzIGFsbG93cyB0byBhZGQgcGFkIHRlbXBsYXRlcyBhbmQgc2V0IG1ldGFkYXRhIGluIGNsYXNzX2luaXQgaW5zdGVhZCBvZgoJICBiYXNlX2luaXQuIGJhc2VfaW5pdCBpcyBhIGNvbmNlcHQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGFsbW9zdCBhbGwKCSAgbGFuZ3VhZ2VzIGFuZCBjb3B5aW5nIHRoZSB0ZW1wbGF0ZXMvbWV0YWRhdGEgZm9yIHN1YmNsYXNzZXMgaXMgdGhlIG1vcmUKCSAgaW50dWl0aXZlIHdheSBvZiBkb2luZyB0aGluZ3MuCgkgIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHBhZCB0ZW1wbGF0ZXMgb2YgcGFyZW50IGNsYXNzZXMgYnkgYWRkaW5nIGEgbmV3CgkgIHRlbXBsYXRlIHdpdGggdGhlIHNhbWUgbm93LgoJICBBbHNvIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9wYWRfdGVtcGxhdGUoKSBub3cgdGFrZXMgb3duZXJzaGlwIG9mIHRoZQoJICBwYWQgdGVtcGxhdGUsIHdoaWNoIHdhcyBhc3N1bWVkIGJ5IGFsbCBjb2RlIGJlZm9yZSBhbnl3YXkuCgkgIEZpeGVzIGJ1ZyAjNDkxNTAxLgoKMjAxMS0wNC0xNiAxNDo1NjowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzIuMiBwcmUtcmVsZWFzZQoKMjAxMS0wNC0xNiAxNDo1NDowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDQtMTYgMTQ6NTI6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZW1vdmUgbmV3bGluZSBmcm9tIHRyYW5zbGF0YWJsZSBzdHJpbmcKCjIwMTEtMDQtMTYgMTM6NDk6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGRvZXNuJ3QgbmVlZCB0byBzY2FuIG9yIHVwZGF0ZSBwbHVnaW4gaW5mbwoKMjAxMS0wNC0xNiAxNDozNDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogbWFrZSBzdXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGNhbGxzIGdzdF9pbml0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzkyMgoKMjAxMS0wNC0xNiAxMDo0NToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyIGRvZXNuJ3QgbmVlZCB0byBzY2FuIG9yIHVwZGF0ZSBwbHVnaW4gaW5mbwoJICBNYWtlIHN1cmUgdGhlIHNjYW5uZXIgZG9lc24ndCBsb2FkIG9yIGludHJvc3BlY3Qgb3IgY2hlY2sgYW55IHBsdWdpbnMsCgkgIChlc3BlY2lhbGx5IG5vdCBvdXRzaWRlIHRoZSBidWlsZCBkaXJlY3RvcnkpLgoKMjAxMS0wNC0xNiAxMDozMzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IG1ha2Ugc3VyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBjYWxscyBnc3RfaW5pdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc5MjIKCjIwMTEtMDQtMTYgMTA6MTc6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBiYXNlcGFyc2UgQVBJIHRvIGxpYmdzdGJhc2UuZGVmCgoyMDExLTA0LTE2IDA5OjMzOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTYgMDk6MzI6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgZXhwb3J0cyBmb3IgdGhlIEdzdFBhcnNlQ29udGV4dCBhbmQgR3N0QnVmZmVyTGlzdEl0ZXJhdG9yIHR5cGVzCgoyMDExLTA0LTE2IDA4OjU5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTUgMjA6NTg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IG9ubHkgcnVuIGdzdC1wbHVnaW4tc2Nhbm5lciB3aXRoIC91c3IvYmluL2FyY2ggd3JhcHBlciBvbiBPUyBYID49IDEwLjUKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IERhbmllbCBNYWNrcyA8ZG1hY2tzQG5ldHNwYWNlLm9yZz4KCSAgRWFybGllciB2ZXJzaW9ucyBvZiBPU1ggZG9uJ3Qgc3VwcG9ydCBwcm9wZXIgbXVsdGlhcmNoIGFuZAoJICB0cnlpbmcgdG8gdXNlIC91c3IvYmluL2FyY2ggLWZvbyB3aXRoIHRob3NlIHZlcnNpb25zIHdvdWxkCgkgIGp1c3QgYnJlYWsgdGhpbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzU3CgoyMDExLTA0LTE1IDE5OjA3OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZXhwb3NlIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKSBmb3IgY29tcGxldGVuZXNzCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpCgoyMDExLTA0LTE1IDE4OjUyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW5pdCBmcmFtZXMgb24gdGhlIHN0YWNrIHdpdGggZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpCgkgIEZyYW1lcyBtdXN0IG5vdyBiZSBpbml0ZWQgdGhpcyB3YXksIGNhbid0IGp1c3QgemVybyB0aGVtCgkgIG91dCBhbmQgdXNlIHRoZW0uCgoyMDExLTA0LTE1IDE4OjM4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbW9yZSBkZWJ1ZyBsb2dnaW5nLCBtaW5vciBjbGVhbi11cAoJICBUcmFjZSBmcmFtZXMsIHNwbGl0IG91dCBjb2RlIHRvIHF1ZXVlIGEgZnJhbWUgZm9yIGxhdGVyLgoKMjAxMS0wNC0xNSAxODowMDoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNoYW5nZSBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCkgdG8gbm90IHRha2UgYSBHc3RCYXNlUGFyc2UgYXJndW1lbnQKCjIwMTEtMDQtMTUgMTc6NDE6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtYWtlIEdzdEJhc2VQYXJzZUZyYW1lIGhhbmRsaW5nIG1vcmUgYmluZGluZ3MtZnJpZW5kbHkKCSAgQ2hhbmdlIHNlbWFudGljcyBvZiBnc3RfYmFzZV9wYXJzZV9wdXNoX2ZyYW1lKCkgYW5kIG1ha2UgaXQgdGFrZQoJICBvd25lcnNoaXAgb2YgdGhlIHdob2xlIGZyYW1lLCBub3QganVzdCB0aGUgZnJhbWUgY29udGVudHMuIFRoaXMKCSAgaXMgbW9yZSBpbiBsaW5lIHdpdGggaG93IGdzdF9wYWRfcHVzaCgpIGV0Yy4gd29yay4gSnVzdCB0cmFuc2ZlcmluZwoJICB0aGUgY29udGVudCwgYnV0IG5vdCB0aGUgY29udGFpbmVyIG9mIHNvbWV0aGluZyB0aGF0J3Mgbm90IHJlYWxseQoJICBrbm93biB0byBiZSBhIGNvbnRhaW5lciBpcyBoYXJkIHRvIGFubm90YXRlIHByb3Blcmx5IGFuZCBwcm9iYWJseQoJICB3b24ndCB3b3JrLiBXZSBtYXJrIGZyYW1lcyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIG5vdyB3aXRoIGEgcHJpdmF0ZQoJICBmbGFnIGluIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKSwgc28gZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfZnJlZSgpCgkgIG9ubHkgZnJlZXMgdGhlIGNvbnRlbnRzIGluIHRoYXQgY2FzZSBidXQgbm90IHRoZSBmcmFtZSBzdHJ1Y3QgaXRzZWxmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfbmV3KCkKCjIwMTEtMDQtMTUgMTU6MDI6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWdpc3RlciBib3hlZCB0eXBlIGZvciBHc3RCYXNlRnJhbWVQYXJzZQoJICBUbyBtYWtlIHRoaXMgdXNhYmxlIGZvciBiaW5kaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0xNSAxMzo1Nzo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEFkZCBtaXNzaW5nICkgdG8gdGhlIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnR5IGRlc2NyaXB0aW9uCgoyMDExLTA0LTE1IDEwOjUzOjU2ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJlbW92ZSB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZQoJICBHQ0MgNC42LjAgc3BpdHMgd2FybmluZ3MgYWJvdXQgdGhlc2UuCgoyMDExLTA0LTE0IDE2OjA2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogQWRkIGJveGVkIHR5cGUgZm9yIEdzdEJ1ZmZlckxpc3RJdGVyYXRvciBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDExLTA0LTE0IDE1OjU5OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwYXJzZS5oOgoJICBwYXJzZTogQWRkIGJveGVkIHR5cGUgZm9yIEdzdFBhcnNlQ29udGV4dCBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDExLTA0LTE0IDE1OjUxOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogQWRkIHNvbWUgbW9yZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTEtMDQtMTQgMDk6MDc6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgdGhlIHNpbmtwYWQgbmFtZQoKMjAxMS0wNC0xNCAwOTowNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgcGFkcyBpbiB0aGUgbmFtZWQgcGFkcyB1bml0IHRlc3QKCjIwMTEtMDQtMTQgMDg6NTk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggY2FwcyBsZWFrcyBpbiBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9hY2NlcHRfe2FueSxhbGx9X2NhcHNfaW5fZGlyZWN0aW9uKCkKCjIwMTEtMDQtMTMgMDk6MjA6MTMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2VyOiBBbGxvdyBlbGVtZW50IG5hbWVzIHRvIGJlZ2luIHdpdGggZGlnaXRzCgoyMDExLTA0LTEzIDEwOjI0OjMzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogQWRkIHRlc3QgZm9yIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50czogRml4IHBhZCBjYWxsYmFja3Mgc28gdGhleSBoYW5kbGUgd2hlbiBwYXJlbnQgZ29lcyBhd2F5CgkgIDEpIFdlIG5lZWQgdG8gbG9jayBhbmQgZ2V0IGEgc3Ryb25nIHJlZiB0byB0aGUgcGFyZW50LCBpZiBzdGlsbCB0aGVyZS4KCSAgMikgSWYgaXQgaGFzIGdvbmUgYXdheSwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdCBncmFjZWZ1bGx5LgoJICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzYWZlbHkgbW9kaWZ5IGEgcnVubmluZyBwaXBlbGluZS4gSGFzIGJlZW4KCSAgb2JzZXJ2ZWQgd2hlbiBhIHN0cmVhbWluZyB0aHJlYWQgaXMgZG9pbmcgYSBidWZmZXJfYWxsb2MoKSB3aGlsZSBhbgoJICBhcHBsaWNhdGlvbiB0aHJlYWQgc2VuZHMgYW4gZXZlbnQgb24gYSBwYWQgZnVydGhlciBkb3duc3RyZWFtLCBhbmQgZnJvbQoJICB3aXRoaW4gYSBwYWQgcHJvYmUgKGhvbGRpbmcgU1RSRUFNX0xPQ0spIGNhcnJpZXMgb3V0IHRoZSBwaXBlbGluZSBwbHVtYmluZwoJICB3aGlsZSB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgaXRzIGJ1ZmZlcl9hbGxvYygpIGluIHByb2dyZXNzLgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2U6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDQtMTMgMTc6MjY6NTQgKzAyMDAgIEphbm5lIEdydW5hdSA8amFubmUuZ3J1bmF1QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcHJldmVudCBjYWxjdWxhdGlvbiB3aXRoIEdTVF9DTE9DS19USU1FX05PTkUgaW4gdXBkYXRlX3RpbWVfbGV2ZWwoKQoKMjAxMS0wNC0xMSAxNTowODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICB0ZXN0czogZml4IHVudXN1ZWQtYnV0LWFzc2lnbmVkLXZhcmlhYmxlIHdhcm5pbmdzIHdpdGggZ2NjIDQuNgoKMjAxMS0wNC0xMSAxMzowNDozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBkaXNhYmxlIHRlc3RfbWFueV9iaW5zIHVuaXQgdGVzdCBmb3Igbm93CgkgIEl0IGZhaWxzIG9uIHRoZSBPU1ggYm90IChib3RoIHdpdGggZ2l0IGFuZCB0aGUgbGFzdCByZWxlYXNlKSwgYW5kCgkgIGl0IGRvZXNuJ3QgcmVhbGx5IHRlc3QgYW55dGhpbmcgdXNlZnVsLCBzbyBtYXkganVzdCBhcyB3ZWxsIGRpc2FibGUKCSAgaXQgZm9yIG5vdy4KCjIwMTEtMDQtMTEgMTI6NTE6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBDYXN0IHN0cmluZyBjb25zdGFudHMgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCjIwMTEtMDQtMTEgMTI6MDQ6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogYWxsb3cgbW9yZSB0aW1lIGZvciB0aGUgdGVzdF9tYW55X2JpbnMgcGlwZWxpbmUgdG8gcHJlcm9sbAoJICBIb3BlZnVsbHkgbWFrZXMgdGhpcyB0ZXN0IHdvcmsgb24gdGhlIE9TWCBidWlsZCBib3QgYW5kIG90aGVyCgkgIG5vdC1zby1wb3dlcmZ1bCBtYWNoaW5lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjYyNAoKMjAxMS0wNC0xMSAxMToyOTowMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciBpcyBjYWxsZWQgd2l0aCB0aGUgcmlnaHQgYXJjaCBvbiBPU1gKCSAgT24gT1NYLCBHU3RyZWFtZXIgbWlnaHQgYmUgYnVpbHQgYXMgYSAnZmF0L3VuaXZlcnNhbCcgYmluYXJ5IGNvbnRhaW5pbmcKCSAgYm90aCAzMi1iaXQgYW5kIDY0LWJpdCBjb2RlLiBXZSBtdXN0IHRha2UgY2FyZSB0aGF0IGdzdC1wbHVnaW4tc2Nhbm5lcgoJICBpcyBleGVjdXRlZCB3aXRoIHRoZSBzYW1lIGFyY2hpdGVjdHVyZSBhcyB0aGUgR1N0cmVhbWVyIGNvcmUsIG90aGVyd2lzZQoJICBiYWQgdGhpbmdzIG1heSBoYXBwZW4gYW5kIGNvcmUvc2Nhbm5lciB3aWxsIG5vdCBiZSBhYmxlIHRvIGNvbW11bmljYXRlCgkgIHByb3Blcmx5LgoJICBTaG91bGQgZml4IGlzc3VlcyB3aXRoICgzMi1iaXQpIGZpcmVmb3ggdXNpbmcgYSAzMi1iaXQgR1N0cmVhbWVyIGNvcmUKCSAgd2hpY2ggdGhlbiBzcGF3bnMgYSAndW5pdmVyc2FsJyBnc3QtcGx1Z2luLXNjYW5uZXIgYmluYXJ5IHdoaWNoIGdldHMKCSAgcnVuIGluIDY0LWJpdCBtb2RlLCBjYXVzaW5nIDEwMCUgY3B1IHVzYWdlIC8gYnVzeSBsb29wcyBvciBqdXN0IGhhbmdpbmcKCSAgZmlyZWZveCB1bnRpbCBraWxsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTUzNTcKCjIwMTEtMDQtMTEgMTE6MDU6MjQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBBbGxvdyB0cmFja2luZyBvZiBidWZmZXJzIGluIEdTVF9TQ0hFRFVMSU5HIGRlYnVnIG91dHB1dAoJICBBcyBHU1RfU0NIRURVTElORyByZXBvcnRzIHdoZW4gYnVmZmVycyBwYXNzIHRocm91Z2ggcGFkcyBkdWUgdG8KCSAgZ3N0X3BhZF9wdXNoIGNhbGxzLCB0aGV5IGFyZSBhIGdvb2Qgd2F5IG9mIHRyYWNraW5nIHRoZSBwcm9ncmVzcyBvZgoJICBidWZmZXJzIHRocm91Z2ggcGlwZWxpbmVzLiBBcyBzdWNoLCBhZGRpbmcgb3V0cHV0IG9mIHRoZSBidWZmZXIgcG9pbnRlcnMKCSAgdG8gdGhlc2UgbWVzc2FnZXMgYWxsb3dzIHRyYWNraW5nIG9mIHNwZWNpZmljIGJ1ZmZlcnMsIGVhc2luZyBkZWJ1Z2dpbmcuCgoyMDExLTA0LTExIDEwOjUzOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3J0IHRvIDAuMTEKCjIwMTEtMDQtMTEgMTA6MjY6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgYW5kcm9pZC9iYXNlLm1rCgkgIGFuZHJvaWQvY29udHJvbGxlci5tawoJICBhbmRyb2lkL2RhdGFwcm90b2NvbC5tawoJICBhbmRyb2lkL2VsZW1lbnRzLm1rCgkgIGFuZHJvaWQvZ3N0LWluc3BlY3QubWsKCSAgYW5kcm9pZC9nc3QtbGF1bmNoLm1rCgkgIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rCgkgIGFuZHJvaWQvZ3N0Lm1rCgkgIGFuZHJvaWQvaW5kZXhlcnMubWsKCSAgYW5kcm9pZC9uZXQubWsKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmCgoyMDExLTA0LTExIDEwOjIwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBGSVhNRQoKMjAxMS0wMS0yNyAxNDozMzowOCArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJKiBBbmRyb2lkLm1rOgoJKiBhbmRyb2lkL05PVElDRToKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9nc3QvZ3N0Y29uZmlnLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5jOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuaDoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdHZlcnNpb24uaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci5vdXRwdXQ6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmM6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LmM6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBhbmRyb2lkL3Rvb2xzLm1rOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogbGlicy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYW5kcm9pZDogbWFrZSBpdCByZWFkeSBmb3IgYW5kcm9nZW5pemVyCgkgIFJlbW92ZSB0aGUgYW5kcm9pZC8gdG9wIGRpcgoJICBGaXhlIHRoZSBNYWtlZmlsZS5hbSB0byBiZSBhbmRyb2dlbml6ZWQKCSAgVG8gYnVpbGQgZ3N0cmVhbWVyIGZvciBhbmRyb2lkIHdlIGFyZSBub3cgdXNpbmcgYW5kcm9nZW5pemVyIHdoaWNoIGdlbmVyYXRlcyB0aGUgbmVlZGVkIEFuZHJvaWQubWsgZmlsZXMuCgkgIEFuZHJvZ2VuaXplciBjYW4gYmUgZm91bmQgaGVyZTogaHR0cDovL2dpdC5jb2xsYWJvcmEuY28udWsvP3A9dXNlci9kZXJlay9hbmRyb2dlbml6ZXIuZ2l0CgoyMDExLTA0LTA5IDIzOjU0OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZG9uJ3QgcHV0IGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgaW50byBnX3JldHVybl9pZl9mYWlsKCkKCjIwMTEtMDQtMDkgMjI6NTc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogbWlub3IgZml4ZXMgZm9yIGJhc2VwYXJzZSBkb2NzCgkgIENsYXNzIHZmdW5jIHJlZmVyZW5jZXMgc3RpbGwgYXJlbid0IHJpZ2h0LCBubyBpZGVhIHdoYXQKCSAgdGhlIGNvcnJlY3QgbWFya3VwIGZvciB0aG9zZSBpcy4KCjIwMTEtMDQtMDkgMTg6MDQ6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdW5yZWYgZXZlbnQgaW4gZGVmYXVsdF9zZW5kX2V2ZW50IGluIGNhc2UgZWxlbWVudCBoYXMgbm8gcGFkcwoJICBTcG90dGVkIGJ5ICBIYWFrb24gU3BvcnNoZWltLgoKMjAxMS0wNC0wOSAwNDowNzowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgY2hlY2s6IElnbm9yZSBuZXcgZ3N0bWV0YSBiaW5hcnkKCjIwMTEtMDQtMDkgMDQ6MDU6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRlc2lnbjogZHJhZnQtYnVmZmVyMi50eHQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAxMS0wNC0wOSAwNDowNToyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGdzdDogRG9uJ3QgZm9yZ2V0IHRvIGRpc3QgZ3N0ZWxlbWVudG1ldGFkYXRhLmgKCjIwMTEtMDQtMDggMTk6MDc6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciB2YXJpYWJsZSBuYW1lIGNsZWFuLXVwCgoyMDExLTA0LTA4IDE1OjMxOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VwYXJzZTogcmVuYW1lIF9zZXRfZnJhbWVfcHJvcHMoKSB0byBfc2V0X2ZyYW1lX3JhdGUoKQoJICBTZWVtcyBsaWtlIHRoZSBiZXN0IGZpdCB0byB3aGF0IGl0IGRvZXMsIGFuZCBpcyBzaG9ydGVyIHRoYW4KCSAgc2V0X2ZyYW1lX3Byb3BlcnRpZXMoKSB3aGljaCBtaWdodCBhbHNvIGhhdmUgYmVlbiBjb25mdXNpbmcKCSAgYmVjYXVzZSBvZiBHc3RCYXNlUGFyc2VGcmFtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wNiAxNzo0MzoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlcGxhY2UgZm9ybWF0IGZsYWdzIHdpdGggZ3N0X2Jhc2VfcGFyc2Vfc2V0X3twYXNzdGhyb3VnaCxzeW5jYWJsZSxoYXNfdGltaW5nX2luZm99CgkgIFRoaXMgaXMgbW9yZSBpbiBsaW5lIHdpdGggZS5nLiBHc3RCYXNlVHJhbnNmb3JtJ3MgQVBJLCBhbmQgbWFrZXMgZm9yIG5pY2VyCgkgIHRvIHJlYWQgY29kZS4gTm8gZ2V0dGVycyBmb3Igbm93IHNpbmNlIEkgZG9uJ3Qgc2VlIGFueSB1c2UgY2FzZSBmb3IgdGhlbSwKCSAgdGhlIEFQSSBpcyBmb3Igc3ViY2xhc3Nlcywgd2hpY2ggdXN1YWxseSBrbm93IHdoYXQgZm9ybWF0IHRoZXkncmUKCSAgZGVhbGluZyB3aXRoIGFscmVhZHkgYW5kIGhlbmNlIGtub3cgd2hhdCB0aGV5J3ZlIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wNCAxNzo1ODo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1ha2UgRFJBSU4gYW5kIFNZTkMgZmxhZ3Mgb24gYmFzZXBhcnNlLCBub3QgdGhlIGZyYW1lLCBhbmQgY2hhbmdlIHRvIERSQUlOSU5HIGFuZCBMT1NUX1NZTkMKCSAgVGhlIGZpcnN0IGJlY2F1c2UgaXQgc2VlbXMgYSBiZXR0ZXIgZml0IGNvbmNlcHR1YWxseSwgdGhlIHNlY29uZAoJICB0byBleHByZXNzIGJvb2xlYW5uZXNzLiBBbHNvIGNoYW5nZSB0aGUgYWNjZXNzb3IgbWFjcm9zIGZvciBzdWJjbGFzc2VzCgkgIHRvIEdTVF9CQVNFX1BBUlNFX0RSQUlOSU5HIGFuZCBHU1RfQkFTRV9QQVJTRV9MT1NUX1NZTkMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MTg6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBwYWRkaW5nIHRvIEdzdEJhc2VQYXJzZUZyYW1lCgkgIEVzcC4gc2luY2UgaXQncyB1c3VhbGx5IGFsbG9jYXRlZCBvbiB0aGUgc3RhY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDIgMTQ6MDg6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXggdHlwbyBpbiBkb2NzIGZvciBHU1RfQkFTRV9QQVJTRV9GT1JNQVRfRkxBR19QQVNTVEhST1VHSAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjA0OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIEdRdWV1ZSBpbnN0ZWFkIG9mIEdMaXN0IGZvciBxdWV1ZWQgZnJhbWVzCgkgIGFuZCBtYWtlIGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZSBiZWZvcmUgc2V0dGluZyBjYXBzIG9uIHF1ZXVlZAoJICBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYzNDEKCjIwMTEtMDQtMDIgMTM6MDI6MDEgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcm1lcmFsaUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBHU1RfQkFTRV9QQVJTRV9GTE9XX1FVRVVFRCB0byBxdWV1ZSBidWZmZXJzIHVudGlsIGNhcHMgYXJlIGtub3duCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBwYXJzZXIgbGlrZSBmbGFjcGFyc2Ugb3IgaDI2NHBhcnNlIHdoaWNoIG1heSBuZWVkIHRvIHByb2Nlc3MKCSAgc29tZSBidWZmZXJzIGJlZm9yZSB0aGV5IGNhbiBjb25zdHJ1Y3QgdGhlIGZpbmFsIGNhcHMsIGluIHdoaWNoIGNhc2UgdGhleSBtYXkKCSAgd2FudCB0byBkZWxheSBwdXNoaW5nIHRoZSBpbml0aWFsIGJ1ZmZlcnMgdW50aWwgdGhlIGZ1bGwgYW5kIHByb3BlciBjYXBzIGFyZQoJICBrbm93bi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjM0MQoKMjAxMS0wMy0zMSAxNTo1MDoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB0byBkb2NzIGFuZCBmaXggdXAgZ3RrLWRvYyBtYXJrdXAgYSBsaXR0bGUKCSAgQW5kIGFkZCBTaW5jZSBtYXJrZXJzLgoKMjAxMS0wMy0zMSAxNDo0ODo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlcGxhY2Ugc2V0X3NlZWsoKSB3aXRoIF9zZXRfYXZlcmFnZV9iaXRyYXRlKCkgYW5kIEZMQUdfU1lOQ0FCTEUKCSAgVGhpcyBtYWtlcyBtb3JlIHNlbnNlIGNvbmNlcHR1YWxseSwgc2luY2UgdGhlIGJpdHJhdGUgbWF5IGJlIHVzZWQKCSAgdG8gZXN0aW1hdGUgYSBzZWVrIHBvc2l0aW9uIGlmIHRoZXJlJ3Mgbm8gc2VlayB0YWJsZSBvciBqdXN0IGZvcgoJICBkdXJhdGlvbiByZXBvcnRpbmcvZXN0aW1hdGlvbiBpZiB3ZSBjYW4ndCBzZWVrLiBBbHNvLCBldmVuIGlmIHRoZQoJICBmb3JtYXQgaXMgbm90IHN5bmNhYmxlLCB3ZSBjb3VsZCBzdGlsbCBzZWVrIGJ5IHB1c2hpbmcgZGF0YSBmcm9tIHRoZQoJICBzdGFydCBhbmQgdXNpbmcgdGhlIHNlZ21lbnQgdG8gbWFrZSBkb3duc3RyZWFtIGNsaXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMjQgMTc6MzA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW5hbWUgR3N0QmFzZUZvcm1hdCB0byBHc3RCYXNlRm9ybWF0RmxhZ3MgYW5kIGZpeCB1cCBhc3NvY2lhdGVkIEFQSQoJICBBbHNvIGNoYW5nZSBnc3RfYmFzZV9wYXJzZV9zZXRfZm9ybWF0KHBhcnNlLGZsYWdzLHN3aXRjaF9vbikgdG8KCSAgZ3N0X2Jhc2VfcGFyc2Vfc2V0X2Zvcm1hdF9mbGFncyhwYXJzZSxmbGFncykgd2hpY2ggaXMgbW9yZSBpbiBsaW5lCgkgIHdpdGggdGhlIHJlc3Qgb2Ygb3VyIEFQSSBhbmQgaG93IHRoZSBmdW5jdGlvbiBpcyB1c2VkLgoKMjAxMS0wMy0xMyAyMzo0Mzo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGRvbid0IGV4cG9zZSBHc3RBZGFwdGVyIGluIHB1YmxpYyBoZWFkZXIKCSAgTm9uZSBvZiB0aGUgZXhpc3Rpbmcgc3ViY2xhc3NlcyBuZWVkcyBhY2Nlc3MgdG8gdGhhdCwgc28gdGhlcmUncwoJICBubyByZWFzb24gdG8gZXhwb3NlIGl0IGZvciBub3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTMgMjM6Mzg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb3ZlIHZhcmlvdXMgc2VnbWVudC1yZWxhdGVkIG1lbWJlcnMgaW50byB0aGUgcHJpdmF0ZSBpbnN0YW5jZSBzdHJ1Y3QKCSAgSWYgbm9uZSBvZiB0aGUgZXhpc3Rpbmcgc3ViY2xhc3NlcyB1c2VzIHRoZXNlLCB0aGVyZSdzIHByb2JhYmx5IG5vCgkgIG5lZWQgdG8gZXhwb3NlIHRoZW0gYXQgdGhlIG1vbWVudC4gS2VlcCB0aGUgc2VnbWVudCBpdHNlbGYgZXhwb3NlZAoJICB0aG91Z2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDMtMTMgMjM6MzA6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW1vdmUgdW51c2VkIEdTVF9CQVNFX1BBUlNFX3tTSU5LLFNSQ31fTkFNRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEyIDE2OjE2OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmUtaW5kZW50IGhlYWRlcgoKMjAxMS0wMy0xMiAxNTozNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCB1cCBHVHlwZSBuYW1lIGFuZCBtYWtlIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIHRocmVhZC1zYWZlCgkgIFJlbmFtZSBHVHlwZSBmcm9tIEdzdEJhc2VQYXJzZUJhZCB0byBHc3RCYXNlUGFyc2UuCgoyMDExLTAzLTEyIDE1OjI5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGFkZCBHc3RCYXNlUGFyc2Ugd2hpY2ggd2FzIG1vdmVkIGZyb20gLWJhZAoKMjAxMS0wMi0yMyAxNzoyNDoxNCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2VfbWV0YWRhdGFfd3JpdGFibGUoKSBmaXgKCjIwMTEtMDItMjEgMTM6MjQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW5hbWUgR1R5cGUgZnJvbSBHc3RBdWRpb0Jhc2VQYXJzZUJhZCB0byBHc3RCYXNlUGFyc2VCYWQKCSAgV2UgdXNlIGl0IGZvciB2aWRlbyBhcyB3ZWxsIG5vdy4KCjIwMTEtMDItMTggMTU6MDU6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDExLTAyLTE4IDE1OjA1OjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBkZWx0YS11bml0IGZsYWdzIGluc3RlYWQgb2Ygbm9uZQoKMjAxMS0wMi0xNyAxMzoyMjoyOCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBBUEkgY2hhbmdlcwoKMjAxMC0xMC0xMyAxNTozOTo1NSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IENyZWF0ZSBiYXNlcGFyc2UgbGlicmFyeQoKMjAxMS0wMi0wNyAxNDo0Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1bmUgUVVFUllfU0VFS0lORyByZXNwb25zZQoJICBFdmVuIGlmIHdlIGN1cnJlbnRseSBkbyBub3QgaGF2ZSBhIGR1cmF0aW9uIHlldCwgYXNzdW1lIHNlZWthYmxlIGlmCgkgIGl0IGxvb2tzIGxpa2Ugd2UnbGwgbGlrZWx5IGJlIGFibGUgdG8gZGV0ZXJtaW5lIGl0IGxhdGVyIG9uCgkgICh3aGljaCBjb2luY2lkZXMgd2l0aCBuZWVkZWQgaW5mb3JtYXRpb24gdG8gcGVyZm9ybSBzZWVraW5nKS4KCSAgRml4ZXMgIzY0MTA0Ny4KCjIwMTEtMDItMDggMjM6Mzk6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVcGRhdGUgbWluL21heCBiaXRyYXRlIGJlZm9yZSBmaXJzdCBwb3N0aW5nIHRoZW0KCSAgVGhpcyBhdm9pZHMgcG9zdGluZyBhbiBpbml0aWFsIG1pbi1iaXRyYXRlIG9mIEdfVUlOVE1BWCBhbmQgbWF4LWJpdHJhdGUKCSAgb2YgMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTg1NwoKMjAxMS0wMS0yMSAxNDo1MzozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1bmUgZGVmYXVsdCBkdXJhdGlvbiBlc3RpbWF0ZSB1cGRhdGUgaW50ZXJ2YWwKCSAgUmF0aGVyIHRoYW4gYSBmaXhlZCBkZWZhdWx0IGZyYW1lIGNvdW50LCBlc3RpbWF0ZSBmcmFtZSBjb3VudCB0byBhaW0gZm9yCgkgIGFuIGludGVydmFsIGR1cmF0aW9uIGRlcGVuZGluZyBvbiBmcHMgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIG9sZAoJICBmaXhlZCBkZWZhdWx0LgoKMjAxMS0wMS0xNCAxNToxNjowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVyc2UgcGxheWJhY2s7IG1pbmQga2V5ZnJhbWVzIGZvciBmcmFnbWVudCBib3VuZGFyeQoKMjAxMS0wMS0xMiAxNDo0MDozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuc3VyZSBub24tZW1wdHkgY2FuZGlkYXRlIGZyYW1lcwoKMjAxMS0wMS0xMSAxNToyNDoyMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGNsYXJpZnkgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDExLTAxLTExIDE1OjI0OjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVybHkgdHJhY2sgdXBzdHJlYW0gdGltZXN0YW1wcwoJICAuLi4gcmF0aGVyIHRoYW4gd2l0aCBhIGRlbGF5LgoKMjAxMS0wMS0xMSAxNToyMzoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG5lZWQgcHJvcGVyIGZyYW1lIGR1cmF0aW9uIHRvIG9idGFpbiBzZW5zaWJsZSBmcmFtZSBiaXRyYXRlCgoyMDExLTAxLTExIDE1OjIyOjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVyIGluaXRpYWwgdmFsdWVzIGZvciBpbmRleCB0cmFja2luZyB2YXJpYWJsZXMKCjIwMTEtMDEtMTEgMTI6MDU6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhcnJhbmdlIGZvciBjb25zaXN0ZW50IGV2ZW50IGhhbmRsaW5nCgoyMDExLTAxLTEwIDE2OjU5OjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogaGVhZGVyIHN0eWxlIGNsZWFuaW5nCgoyMDExLTAxLTEwIDE3OjA3OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBzb21lIG1vcmUgaW5pdGlhbCBmcmFtZSBtZXRhZGF0YSBpbiBwYXJzZV9mcmFtZQoJICAuLi4gYW5kIGRvY3VtZW50IGFjY29yZGluZ2x5LgoKMjAxMS0wMS0xMCAxNjo1NjozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHBhc3N0aHJvdWdoIGludG8gZm9ybWF0IGZsYWdzCgkgIEFsc28gYWRkIGEgZm9ybWF0IGZsYWcgdG8gc2lnbmFsIGJhc2VwYXJzZSB0aGF0IHN1YmNsYXNzL2Zvcm1hdCBjYW4gcHJvdmlkZQoJICAocGFyc2VkKSB0aW1lc3RhbXAgcmF0aGVyIHRoYW4gYW4gZXN0aW1hdGVkIG9uZS4gIEluIHBhcnRpY3VsYXIsIHN1Y2ggInN0cm9uZyIKCSAgdGltZXN0YW1wIHRoZW4gYWxsb3dzIHRvIGUuZy4gZGV0ZXJtaW5lIGR1cmF0aW9uLgoKMjAxMS0wMS0xMCAxNTozNDo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGludHJvZHVjZSBhIGJhc2VwYXJzZSBmcmFtZSB0byBzZXJ2ZSBhcyBjb250ZXh0CgkgIC4uLiBhbmQgYWRqdXN0IHN1YmNsYXNzIHBhcnNlcnMgYWNjb3JkaW5nbHkKCjIwMTEtMDEtMDcgMTY6Mzk6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXN0cmljdCBkdXJhdGlvbiBzY2FubmluZyB0byBwdWxsIG1vZGUgYW5kIGF2b2lkIGV4dHJhIHNldF9jYXBzIGNhbGwKCjIwMTEtMDEtMDcgMTU6NTg6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgc29tZSBkb2N1bWVudGF0aW9uCgkgIEFsc28gYWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCjIwMTEtMDEtMDYgMTE6NDE6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbGxvdyBpbmNyZWFzaW5nIG1pbl9zaXplIGZvciBjdXJyZW50IGZyYW1lIHBhcnNpbmcgb25seQoJICBBbHNvIGNoZWNrIHRoYXQgc3ViY2xhc3MgYWN0dWFsbHkgZWl0aGVyIGRpcmVjdHMgdG8gc2tpcCBieXRlcyBvcgoJICBpbmNyZWFzZXMgZXhwZWN0ZWQgZnJhbWUgc2l6ZSB0byBhdm9pZCBnb2luZyBub3doZXJlIGluIGJvZ3VzCgkgIGluZGVmaW5pdGUgbG9vcGluZy4KCjIwMTEtMDEtMTQgMTU6MjY6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFlc3BhcnNlOiBmaXggcmVmYWN0b3IgcmVncmVzc2lvbiBpbiBsb29wIGJhc2VkIHBhcnNpbmcKCjIwMTEtMDEtMDYgMTE6MTY6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwYXNzIGFsbCBhdmFpbGFibGUgZGF0YSB0byBzdWJjbGFzcyByYXRoZXIgdGhhbiBtaW5pbXVtCgkgIEFsc28gcmVkdWNlIHNvbWUgYWRhcHRlciBjYWxscyBhbmQgYWRkIGEgZmV3IGRlYnVnIHN0YXRlbWVudHMuCgoyMDEwLTEyLTEwIDE1OjU5OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHJldmVyc2UgcGxheWJhY2sgaGFuZGxpbmcKCjIwMTAtMTItMTAgMTQ6NTY6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciB0eXBvIGFuZCBkZWJ1ZyBzdGF0ZW1lbnQgY2xlYW51cAoKMjAxMC0xMi0xMCAxNDo0MDowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlZHVjZSBsb2NraW5nCgkgIC4uLiB3aGljaCBpcyBlaXRoZXIgYWxyZWFkeSBtdXRlIGFuZC9vciBpbXBsaWNpdGx5IGhhbmRsZWQgYnkgU1RSRUFNX0xPQ0suCgoyMDExLTAxLTE0IDE0OjA4OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgbG9vcCBpbiBmcmFtZSBsb2NhdGluZyBpbnRlcnBvbGF0aW9uCgoyMDExLTAxLTE0IDE2OjMwOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogYmFzZXBhcnNlOiBCZSBjYXJlZnVsIHRvIG5vdCBsb3NlIHRoZSBldmVudCByZWYKCSAgRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGlmIGl0IGhhc24ndCBiZWVuIGhhbmRsZWQsIGJlY2F1c2UgdGhlIGNhbGxlcgoJICBhc3N1bWVzIGl0IGlzIHN0aWxsIHZhbGlkIGFuZCBtaWdodCByZXVzZSBpdC4KCSAgSSByYW4gaW50byB0aGlzIHByb2JsZW0gd2hlbiB0cmFuc2NvZGluZyBhbiBBVkkgKHdpdGggbXAzIGluc2lkZSkKCSAgdG8gZ3BwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NTU1CgoyMDExLTAxLTEzIDE2OjI3OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIGJhc2VwYXJzZSBkb2NzL2NvbW1lbnQgZml4ZXMKCSAgUmVtb3ZlIGNvcHknbidwYXN0ZSBsZWZ0b3ZlcnMuCgoyMDEwLTExLTA4IDE5OjU4OjMxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW5jcmVhc2Uga2V5ZnJhbWUgYXdhcmVuZXNzCgkgIC4uLiB3aGljaCBpcyBub3QgcGFydGljdWxhciByZWxldmFudCBmb3IgYXVkaW8gcGFyc2luZywgYnV0IG1vcmUgc28KCSAgaW4gdmlkZW8gY2FzZXMuICBJbiBwYXJ0aWN1bGFyLCBhdXRvLWRldGVybWluZSBpZiBkZWFsaW5nIHdpdGggdmlkZW8gKGNhcHMpLgoKMjAxMC0xMS0zMCAxNTo0MTowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIHVuZXhwZWN0ZWQgc3RyYXkgbWV0YWRhdGEKCjIwMTAtMTEtMzAgMTU6NDA6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgcHJvcGVyIF9OT05FIG91dHB1dCB2YWx1ZSB3aGVuIGFwcGxpY2FibGUKCjIwMTAtMTEtMjUgMTg6NTY6NDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDEwLTExLTI1IDE3OjE0OjIzICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlOiBmaXggcG9zc2libGUgZGl2aXNpb24tYnktemVybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1Nzg2CgoyMDEwLTExLTE3IDE2OjIzOjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGNvcnJlY3Qgb2Zmc2V0IHdoZW4gYWRkaW5nIGluZGV4IGVudHJ5CgkgIC4uLiBiZWFyaW5nIGluIG1pbmQgdGhhdCBCVUZGRVJfT0ZGU0VUIGlzIG1lZGlhIHNwZWNpZmljIGFuZCBtYXkgbm90CgkgIHJlZmxlY3QgdGhlIGJhc2ljIG9mZnNldCBhZnRlciBoYXZpbmcgYmVlbiBwYXJzZWQuCgoyMDEwLTExLTE3IDE0OjMwOjA5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5oYW5jZW1lbnRzIGZvciB0aW1lc3RhbXAgbWFya2VkIGZyYW1lZCBmb3JtYXRzCgkgIFRoYXQgaXMsIGFzIHN1Y2ggZm9ybWF0cyBhbGxvdyBzdWJjbGFzcyB0byBleHRyYWN0IHBvc2l0aW9uIGZyb20gZnJhbWUsCgkgIGl0IGlzIHBvc3NpYmxlIHRvIGV4dHJhY3QgZHVyYXRpb24gKGlmIG5vdCBvdGhlcndpc2UgcHJvdmlkZWQpCgkgIGZyb20gKG5lYXIpIGxhc3QgZnJhbWUsIGFuZCBhIHNlZWsgY2FuIGZhaXJseSBhY2N1cmF0ZWx5IHRhcmdldCB0aGUgcmVxdWlyZWQKCSAgcG9zaXRpb24uCgkgIEZpeGVzICM2MzEzODkuCgoyMDEwLTExLTE2IDE3OjA2OjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgZnJhbWUgc2Nhbm5pbmcgcGVmb3JtZWQgYnkgX2xvb3AKCjIwMTAtMTEtMTYgMTg6MDQ6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzbGlnaHRseSBvcHRpbWl6ZSBzZW5kaW5nIG9mIHBlbmRpbmcgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMTEtMTYgMTc6MDQ6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzCgkgIEFycmFuZ2UgZm9yIHVwc3RyZWFtIGFzIHdlbGwgYXMgZG93bnN0cmVhbSBmbHVzaGluZyB3aGVuIHNlZWtpbmcuCgkgIEFsc28gZGV0ZXJtaW5lIHVwc3RyZWFtIHNpemUgYXMgd2VsbCBhcyBzZWVrYWJpbGl0eS4gIEFkanVzdCBzb21lIGNvbW1lbnRzCgkgIHRvIHJlYWxpdHkgYW5kIGVtcGxveSBkZWJ1ZyBzdGF0ZW1lbnQgaW4gcHJvcGVyIG9yZGVyLgoKMjAxMC0xMC0yOSAxNDowODo1OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBvbmx5IHVwc3RyZWFtIGR1cmF0aW9uIGlmIGl0IHByb3ZpZGVzIG9uZQoKMjAxMC0xMC0yNSAxNDoxNTo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmxvdyB1cGRhdGVfYml0cmF0ZSBjb2RlCgkgIC4uLiB3aGljaCBtYWtlcyBsb2NhbCB2YXJpYWJsZXMgcmVwcmVzZW50IHJlYWwgc3RhdGUgYmV0dGVyLCBhbmQgYXZvaWRzCgkgIHRyaWdnZXJpbmcgdW5uZWVkZWQgdXBkYXRlcy9hY3Rpb25zLgoKMjAxMC0xMC0yNSAxNDoxMzo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTAtMTAtMTEgMTc6NDk6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwZXJmb3JtIGJpdHJhdGUgaGFuZGxpbmcgYW5kIHBvc3RpbmcgYWZ0ZXIgbmV3c2VnbWVudCBzZW5kaW5nCgoyMDEwLTEwLTExIDE3OjM2OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1tZWRpYXRlbHkgcG9zdCBzdWJjbGFzcyBwcm92aWRlZCBiaXRyYXRlCgoyMDEwLTEwLTA1IDExOjE3OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBhZGQgc2tpcCBwcm9wZXJ0eSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiNWEzZDYwMzYzZDgzN2ExMGYwNTMzYzE0MWVjOTNkMTBiNzQyMzEyLgoJICBSZXZlcnRpbmcgdGhpcyBmb3Igbm93LCBzaW5jZSBubyBvbmUgcmVhbGx5IHNlZW1zIHRvIHJlbWVtYmVyIHdoeSB0aGlzCgkgIHByb3BlcnR5IGV4aXN0cyBvciB3aGF0IGl0IGNvdWxkIHBvc3NpYmx5IGJlIGdvb2QgZm9yLiBJdCBzZWVtcyB0byBoYXZlCgkgIGJlZW4gaW4gdGhlIG9yaWdpbmFsIG1wM3BhcnNlIHNpbmNlIHRoZSBiZWdpbm5pbmcgb2YgdGltZSBhbmQgd2FzIGJhY2stCgkgIHBvcnRlZCBmcm9tIHRoZXJlLgoKMjAxMC0xMC0wMyAyMzo1MDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcjogTGV0IHRoZSBmb3JtYXQgc3RyaW5nIGFncmVlIHdpdGggdGhlIHBhcmFtZXRlcnMgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDktMjIgMTU6NDQ6NDMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZGVidWcgb3V0cHV0CgkgIFdlIGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgYnVmZmVyIGFmdGVyIGdzdF9wYWRfcHVzaCgpLCBzbyB0aGUgZGVidWcKCSAgcHJpbnQgc2hvdWxkIGhhcHBlbiBiZWZvcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMDktMjkgMTY6MTI6NDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdXBwb3J0IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGluIHB1bGwgbW9kZSBvciB1cHN0cmVhbSBkcml2ZW4uCgoyMDEwLTA5LTI3IDEyOjE2OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRvbmUgVE9ET3MgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEwLTA5LTI1IDE0OjQwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGRldGVybWluZWQgc2Vla2FiaWxpdHkgaW4gYW5zd2VyaW5nIFNFRUtJTkcgcXVlcnkKCjIwMTAtMDktMjUgMTQ6MzI6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc2tpcCBwcm9wZXJ0eQoKMjAxMC0wOS0yMiAxNTowNzowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVzZSBfc2V0X2ZyYW1lX3Byb3BzIHRvIGNvbmZpZ3VyZSBmcmFtZSBsZWFkX2luIGFuZCBsZWFkX291dAoJICAuLi4gcHJvdmlkZWQgYSBjb3JyZXNwb25kaW5nIGRlY29kZXIgd2l0aCBzdWZmaWNpZW50IGxlYWRpbmcgYW5kIGZvbGxvd2luZwoJICBmcmFtZXMgdG8gY2Fycnkgb3V0IGZ1bGwgZGVjb2RpbmcgZm9yIGEgcGFydGljdWxhciBzZWdtZW50LgoKMjAxMC0wOS0yMiAxNDoxMzoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVzZSBfc2V0X2R1cmF0aW9uIHRvIGNvbmZpZ3VyZSBkdXJhdGlvbiB1cGRhdGUgaW50ZXJ2YWwKCSAgLi4uIGFzIGl0IGxvZ2ljYWxseSBiZWxvbmdzIHRoZXJlIGFzIG9uZSBvciB0aGUgb3RoZXI7IGVpdGhlciBzdWJjbGFzcwoJICBjYW4gcHJvdmlkZSBhIGR1cmF0aW9uLCBvciBhbiBlc3RpbWF0ZSBtdXN0IGJlIG1hZGUgKHJlZ3Vhcmx5IHVwZGF0ZWQpLgoKMjAxMC0wOS0yMiAxMzo1NToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGxvY2FsaXplIHVzZSBvZiBwcm92aWRlZCBmcHMgaW5mb3JtYXRpb24KCjIwMTAtMDktMjIgMTI6MTM6MTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzZWVrIHRhYmxlIGFuZCBhY2N1cmF0ZSBzZWVrIHN1cHBvcnQKCjIwMTAtMDktMjEgMTM6NTc6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXIgYW5kIG1vcmUgZXh0ZW5kZWQgc2VnbWVudCBhbmQgc2VlayBoYW5kbGluZwoJICBUaGF0IGlzLCBsb29wIHBhdXNlIGhhbmRsaW5nLCBzZWdtZW50IHNlZWsgc3VwcG9ydCwgbmV3c2VnbWVudCBmb3IgZ2FwcywgZXRjCgoyMDEwLTA5LTIxIDEwOjU3OjA0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGluZGV4IHN1cHBvcnQKCjIwMTAtMDktMjEgMDk6NTk6NTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBzdGF0ZSByZXNldAoKMjAxMC0wOS0yMCAxNjozOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByZXZlbnQgaW5kZWZpbml0ZSByZXN5bmNpbmcKCjIwMTAtMDktMjAgMTM6NTc6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzcGVjaWZpYyBFT1MgaGFuZGxpbmcgaWYgbm8gb3V0cHV0IHNvIGZhcgoKMjAxMC0wOS0yMCAxMzozMTo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkanVzdCBfc2V0X2ZyYW1lX3Byb3AgZG9jdW1lbnRhdGlvbiBhbmQgc2V0IGRlZmF1bHQgYXMgY2xhaW1lZAoKMjAxMC0wOS0yMCAxMzozMDo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBiaXRyYXRlIGNvcHktYW5kLXBhc3RlIGFuZCB1cGRhdGUgaGV1cmlzdGljCgoyMDEwLTA5LTE3IDE4OjMzOjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9zdCBkdXJhdGlvbiBtZXNzYWdlIGlmIGF2ZXJhZ2UgYml0cmF0ZXMgaXMgdXBkYXRlZAoKMjAxMC0wOS0xNyAxODoyNDoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBpc19zZWVrYWJsZSB2bWV0aG9kIGFuZCB1c2UgYSBzZXRfc2VlayBpbnN0ZWFkCgkgIFNlZWthYmlsaXR5LCBsaWtlIGR1cmF0aW9uLCBldGMgaXMgdW5saWtlbHkgdG8gY2hhbmdlIChmcmVxdWVudGx5KSwgYW5kCgkgIHRoZSBkZWZhdWx0IGFzc3VtcHRpb24gY292ZXJzIG1vc3QgY2FzZXMsIHNvIGxldCBzdWJjbGFzcyBzZXQgd2hlbiBuZWVkZWQuCgkgIEF0IHRoZSBzYW1lIHRpbWUsIGFsbG93IHN1YmNsYXNzIHRvIGluZGljYXRlIGlmIGl0IGhhcyBzZWVrLW1ldGFkYXRhICh0YWJsZSkKCSAgYXZhaWxhYmxlLCBhbmQgcG9zc2libHkgaGF2ZSBpdCBwcm92aWRlIGFuIGF2ZXJhZ2UgYml0cmF0ZS4KCjIwMTAtMDktMTcgMTc6MjE6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgYW5vdGhlciBob29rIGZvciBzdWJjbGFzcyBwcmlvciB0byBwdXNoaW5nIGJ1ZmZlcgoJICAuLi4gYW5kIGFsbG93IHN1YmNsYXNzIHRvIHBlcmZvcm0gY3VzdG9tIHNlZ21lbnQgY2xpcHBpbmcsIG9yIHRvCgkgIGVtaXQgdGFncyBvciBtZXNzYWdlcyBhdCB0aGlzIHRpbWUuCgoyMDEwLTA5LTE3IDE3OjE5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogMCBjb252ZXJ0cyB0byAwIGJ5IGRlZmF1bHQKCjIwMTAtMDktMTYgMTg6NTY6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBjb252ZXJzaW9uIHVzaW5nIGhlbHBlciBmdW5jdGlvbiBhbmQgZXhwb3J0IGRlZmF1bHQgY29udmVydAoKMjAxMC0wOS0xNiAxODozNTo0NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHN0cmVhbWxpbmUgcXVlcnkgaGFuZGxpbmcKCjIwMTAtMDktMTYgMTE6NTE6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjbGVhbnVwIHN0cnVjdCBhbmQgcmVtb3ZlIHVudXNlZCBtZW1iZXIKCjIwMTAtMDktMjIgMTY6MDc6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbGxvdyBjaGFpbmluZyBvZiBzdWJjbGFzcyBldmVudCBoYW5kbGVycwoJICBUaGlzIGFsbG93cyB0aGUgY2hpbGQgY2xhc3MgdG8gY2hhaW4gaXRzIGV2ZW50IGhhbmRsZXIgd2l0aAoJICBHc3RCYXNlUGFyc2UsIHNvIHRoYXQgc3ViY2xhc3NlcyBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSBhbGwgdGhlIGRlZmF1bHQKCSAgZXZlbnQgaGFuZGxpbmcgbG9naWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMDgtMjcgMTg6MzU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbHNvIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBmb3IgVU5FWFBFQ1RFRCBhbmQgZG8gaXQKCSAgZm9yIE5PVF9MSU5LRUQuCgoyMDEwLTA5LTA2IDE0OjEyOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbm9uLVRJTUUgc2VlayBldmVudCBpcyBzaW1wbHkgbm90IGhhbmRsZWQKCjIwMTAtMDYtMTUgMTU6MzQ6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBldmVudCByZWYgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzM6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGFyaXRobWV0aWMgb3ZlcmZsb3dzIGluIHB1bGwgbW9kZSBidWZmZXIgY2FjaGUgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzI6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBoYW5kbGluZwoJICBBbGxvdyBhIGZldyBtb3JlIHNlZWsgZXZlbnQgdHlwZSBjb21iaW5hdGlvbnMsIGFuZCByZWFsbHkgdXNlIHRoZSByZXN1bHQKCSAgb2YgZ3N0X3NlZ21lbnRfc2V0X3NlZWsgdG8gcGVyZm9ybSB0aGUgc2Vlay4gIEFsc28gYWRkIHNvbWUgZGVidWcuCgoyMDEwLTAzLTI2IDE4OjU2OjQ5ICswMDAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgZW1pdCBiaXRyYXRlIHRhZ3MgdG9vIGVhcmx5CgkgIFdlIHdhaXQgdG8gcGFyc2UgYSBtaW5pbXVtIG51bWJlciBvZiBmcmFtZXMgKDEwLCBhcmJpdHJhcmlseSkgYmVmb3JlCgkgIGVtaXRpbmcgYml0cmF0ZSB0YWdzIHNvIHRoYXQgb3VyIGVhcmx5IGVzdGltYXRlcyBhcmUgbm90IHdpbGRseQoJICBpbmFjY3VyYXRlIGZvciBzdHJlYW1zIHRoYXQgc3RhcnQgd2l0aCBhIHNpbGVuY2UuIElmIHRoZSBzdHJlYW0gZW5kcwoJICBiZWZvcmUgdGhhdCwgd2UganVzdCBlbWl0IHRoZSB0YWdzIGFueXdheS4KCSAgV2hpbGUgaXQgX3dvdWxkXyBiZSBuaWNlciB0byBiZSBzcGVjaWZ5IHRoZSB0aHJlc2hvbGQgdG8gc3RhcnQgcHVzaGluZwoJICB0aGUgdGFncyBpbiB0ZXJtcyBvZiBkdXJhdGlvbiwgdGhpcyB3b3VsZCBpbnRyb2R1Y2UgbW9yZSBjb21wbGV4aXR5IHRoYW4KCSAgdGhpcyBtZXJpdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQ5OTEKCjIwMTAtMDMtMjYgMTg6MjA6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTZXQgdGhlIGxhc3Qgc3RvcCB0byB0aGUgYnVmZmVyIHN0YXJ0dGltZSBpZiB0aGUgZHVyYXRpb24gaXMgaW52YWxpZAoJICAuLi5pbnN0ZWFkIG9mIG5vdCBzZXR0aW5nIGl0IGF0IGFsbC4KCjIwMTAtMDMtMjYgMTg6MTk6MDAgKzAxMDAgIEpvc2h1YSBNLiBEb2UgPGpvc2hAam9zaGRvZS5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFNlbmQgTkVXU0VHTUVOVCBldmVudCB3aXRoIGNvcnJlY3Qgc3RhcnQgYW5kIHBvc2l0aW9uCgkgIEluc3RlYWQgb2YgdGFraW5nIHRoZSBsYXN0IHN0b3AgKHdoaWNoIGNvdWxkIGJlIGJ1ZmZlciBlbmR0aW1lIGluc3RlYWQKCSAgb2Ygc3RhcnR0aW1lKSBhbHdheXMgdGFrZSB0aGUgYnVmZmVyIHN0YXJ0dGltZS4KCSAgRml4ZXMgYnVnICM2MTQwMTYuCgoyMDEwLTAzLTI1IDE3OjA5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogcmVtb3ZlIHVudXNlZCBHc3RCYXNlUGFyc2VDbGFzc1ByaXZhdGUgc3RydWN0dXJlCgoyMDEwLTAzLTI1IDExOjIyOjU4ICswMDAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogQWRkIGJpdHJhdGUgY2FsY3VsYXRpb24gdG8gYmFzZXBhcnNlCgkgIFRoaXMgbWFrZXMgYmFzZXBhcnNlIGtlZXAgYSBydW5uaW5nIGF2ZXJhZ2Ugb2YgdGhlIHN0cmVhbSBiaXRyYXRlLCBhcwoJICB3ZWxsIGFzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGJpdHJhdGVzLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBhCgkgIHZmdW5jIHRvIG1ha2Ugc3VyZSB0aGF0IHBlci1mcmFtZSBvdmVyaGVhZCBmcm9tIHRoZSBjb250YWluZXIgaXMgbm90CgkgIGFjY291bnRlZCBmb3IgaW4gdGhlIGJpdHJhdGUgY2FsY3VsYXRpb24uCgkgIFdlIHRha2UgY2FyZSBub3QgdG8gb3ZlcnJpZGUgdGhlIGJpdHJhdGUsIG1pbmltdW0tYml0cmF0ZSwgYW5kCgkgIG1heGltdW0tYml0cmF0ZSB0YWdzIGlmIHRoZXkgaGF2ZSBiZWVuIHBvc3RlZCB1cHN0cmVhbS4gV2UgYWxzbwoJICByYXRlLWxpbWl0IHRoZSBlbWlzc2lvbiBvZiBiaXRyYXRlIHNvIHRoYXQgaXQgaXMgb25seSB0cmlnZ2VyZWQgYnkgYQoJICBjaGFuZ2Ugb2YgPjEwIGticHMuCgoyMDEwLTAxLTE0IDExOjUwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lIGJhc2VwYXJzZSBHVHlwZSBuYW1lIHRvIGF2b2lkIHBvc3NpYmxlIGNvbmZsaWN0cwoKMjAxMC0wMS0wNSAxNTowNTowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGRvY3VtZW50YXRpb24gZml4ZXMKCjIwMDktMTItMjEgMTg6MTg6MzkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGp1c3Qgc2VlayBoYW5kbGluZyBhbmQgbmV3c2VnbWVudCBzZW5kaW5nCgkgIFBlcmZvcm0gc2FuaXR5IGNoZWNrIG9uIHR5cGUgb2Ygc2VlaywgYW5kIG9ubHkgcGVyZm9ybSBvbmUgdGhhdCBpcwoJICBhcHByb3ByaWF0ZWx5IHN1cHBvcnRlZC4gIEFkanVzdCBkb3duc3RyZWFtIG5ld3NlZ21lbnQgZXZlbnQKCSAgdG8gZmlyc3QgYnVmZmVyIHRpbWVzdGFtcCB0aGF0IGlzIHNlbnQgZG93bnN0cmVhbS4KCjIwMDktMTItMjEgMTE6NTk6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciByZWZhY3RvciBjbGVhbnVwCgkgIEFsc28gYWRkIHNvbWUgZGVidWcgbG9nZ2luZy4KCjIwMDktMTItMTggMjE6MDI6NDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXBsZW1lbnQgbGVmdG92ZXIgZHJhaW5pbmcgaW4gcHVsbCBtb2RlCgoyMDA5LTEyLTE2IDE4OjM4OjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBkZWZhdWx0IGNvbnZlcnNpb24gdXNpbmcgYnBzIGlmIG5vIGZwcyBhdmFpbGFibGUKCSAgQWxzbyBzdG9yZSBlc3RpbWF0ZWQgZHVyYXRpb24gYXMgc3VjaCwgcmF0aGVyIHRoYW4gcHJldGVuZGluZyBvdGhlcndpc2UKCSAgKGUuZy4gc2V0IGJ5IHN1YmNsYXNzKS4KCjIwMDktMTItMTggMTM6MzA6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjaGVjayBmb3IgcmVtYWluaW5nIGRhdGEgd2hlbiBkcmFpbmluZyBpbiBwdXNoIG1vZGUKCjIwMDktMTItMTggMTM6MzA6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcHVsbCBtb2RlIGNhY2hlIHNpemUgY29tcGFyaXNvbgoKMjAwOS0xMi0xMSAxMDoyNToxNiAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlOiBmaXggYSBmb3JtYXQgc3RyaW5nIGFzIHJlcG9ydGVkIG9uIGlyYy4KCjIwMDktMTAtMjkgMTU6MTg6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjdXN0b20gYnVmZmVyZmxhZyBpbmRpY2F0ZXMgbm90IHRvIGNvdW50IGZyYW1lIGluIHN0YXRzCgoyMDA5LTExLTI3IDE3OjI3OjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVmZXJlbmNlIEdzdEJhc2VQYXJzZSBub3cgbGl2ZXMgaGVyZQoKMjAwOS0xMS0yOCAxODoxMzozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHJlbmFtZSAnYWFjcGFyc2UnIHBsdWdpbiB0byBnZW5lcmljICdhdWRpb3BhcnNlcnMnIHBsdWdpbgoKMjAwOS0xMC0yOSAxNjowNTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgcGFzc3Rocm91Z2ggbW9kZSB0byBkZWZhdWx0IChkaXNhYmxlZCkgb24gYWN0aXZhdGlvbgoKMjAwOS0xMC0yOSAxNToxNjo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZQoKMjAwOS0xMC0yOCAxNDowNjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXgvZW5oYW5jZSBESVNDT05UIG1hcmtpbmcKCSAgSW4gcGFydGljdWxhciwgY29uc2lkZXIgRElTQ09OVCA9PSAhc3luYywgYW5kIGFsbG93IHN1YmNsYXNzIHRvIHF1ZXJ5CgkgIHN5bmMgc3RhdGUsIGFzIGl0IG1heSB3YW50IHRvIHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3MgZGVwZW5kaW5nCgkgIG9uIHdoZXRoZXIgc3luYyB3YXMgYWNoaWV2ZWQgZWFybGllciBvbi4KCSAgQWxzbyBhcnJhbmdlIGZvciBzdWJjbGFzcyB0byBxdWVyeSB3aGV0aGVyIGxlZnRvdmVyIGRhdGEgaXMgYmVpbmcgZHJhaW5lZC4KCjIwMDktMTEtMjMgMTU6NDg6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRpbWVzdGFtcCBoYW5kbGluZywgYW5kIGRlZmF1bHQgY29udmVyc2lvbgoJICBJbiBwYXJ0aWN1bGFyLCAob3B0aW9uYWxseSkgcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBhIG5vdGlvbiBvZiBmcmFtZXMgcGVyIHNlY29uZAoJICAoYW5kIHRoZXJlZm9yZSBhbHNvIGZyYW1lIGR1cmF0aW9uKSBhbmQgaGF2ZSBpdCB0cmFjayBmcmFtZSBhbmQgYnl0ZSBjb3VudHMuCgkgIFRoaXMgd2F5LCBzdWJjbGFzcyBjYW4gcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBmcHMgYW5kIGhhdmUgaXQgcHJvdmlkZSBkZWZhdWx0CgkgIGJ1ZmZlciB0aW1lIG1ldGFkYXRhIGFuZCBjb252ZXJzaW9ucywgdGhvdWdoIHN1YmNsYXNzIGNhbiBzdGlsbCBpbnN0YWxsCgkgIGNhbGxiYWNrcyB0byBoYW5kbGUgc3VjaCBpdHNlbGYuCgoyMDA5LTEwLTI4IDEyOjAyOjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEwLTI4IDEyOjAwOjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2VfZml4ZWRfY2FwcyBmb3Igc3JjIHBhZAoJICBBZnRlciBhbGwsIHN0cmVhbSBpcyBhcy1pcywgYW5kIHRoZXJlIGlzIGxpdHRsZSBtb2xkaW5nIHRvIGRvd25zdHJlYW0ncwoJICB0YXN0ZSB0aGF0IGNhbiBiZSBkb25lLiAgSWYgc3ViY2xhc3MgY2FuIGFuZCB3YW50cyB0byBkbyBzbywgaXQgY2FuCgkgIHN0aWxsIG92ZXJyaWRlIGFzIHN1Y2guCgoyMDA5LTExLTIwIDE3OjMyOjEzICswMTAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AZmx1ZW5kby5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMTAtMTEgMTE6MjI6MTEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYWFjcGFyc2U6IGZpeCB3YXJuaW5ncyBpbiBtYWNvc3ggc25vdyBsZW9wYXJkCgoyMDA5LTA5LTI1IDE3OjAyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogZm9yZWdvIChib2d1cykgcGFyc2luZyBvZiBhbHJlYWR5IHBhcnNlZCAocmF3KSBpbnB1dAoKMjAwOS0wOC0wNyAxMzowNzoxNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmZpbml0ZSBsb29wIHdoZW4gZHJhaW5pbmcKCjIwMDktMDgtMDcgMTM6MDY6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAwOS0wNy0xNCAxNDowODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYWFjcGFyc2U6IEFkZCBmdW5jdGlvbiBmb3IgdGhlIGJhc2VwYXJzZSBzdWJjbGFzcyB0byBwdXNoIGJ1ZmZlcnMgZG93bnN0cmVhbQoJICBBbHNvIGhhbmRsZSB0aGUgY2FzZSBncmFjZWZ1bGx5IHdoZXJlIHRoZSBzdWJjbGFzcyBkZWNpZGVzIHRvIGRyb3AKCSAgdGhlIGZpcnN0IGJ1ZmZlcnMgYW5kIGhhcyBubyBjYXBzIHNldCB5ZXQuIEl0J3Mgc3RpbGwgcmVxdWlyZWQgdG8KCSAgaGF2ZSB2YWxpZCBjYXBzIHNldCB3aGVuIHRoZSBmaXJzdCBidWZmZXIgc2hvdWxkIGJlIHBhc3NlZCBkb3duc3RyZWFtLgoKMjAwOS0wNy0xNCAxNDowNzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNlZWsgZXZlbnQgbGVha2luZwoKMjAwOS0wNi0wMSAxMzo1NjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGFnYXRlIHJldHVybiB2YWx1ZSBvZiBHc3RCYXNlUGFyc2U6OnNldF9zaW5rX2NhcHMoKQoJICBnc3RfYmFzZV9wYXJzZV9zaW5rX3NldGNhcHMoKSBwcmVzdW1hYmx5IHNob3VsZCBmYWlsIGlmIHRoZSBzdWJjbGFzcwoJICByZXR1cm5zIEZBTFNFIGZyb20gaXRzIDo6c2V0X3NpbmtfY2FwcygpIGZ1bmN0aW9uLgoKMjAwOS0wNi0wMSAxMzo0NzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdHJ5IHRvIEdTVF9MT0cgYW4gYWxyZWFkeS1mcmVlZCBjYXBzIHN0cmluZwoJICBUaGUgcHJvcGVyIHdheSB0byBsb2cgY2FwcyBpcyB2aWEgR1NUX1BUUl9GT1JNQVQgYW55d2F5LgoKMjAwOS0wNS0yNiAxOTo0Mzo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGRlYnVnIGNhdGVnb3J5CgoyMDA5LTA0LTI3IDIyOjM5OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggKHJlZ3Jlc3Npb24gaW4pIG5ld3NlZ21lbnQgaGFuZGxpbmcKCSAgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKS4gIEZpeGVzICM1ODAxMzMuCgoyMDA5LTA0LTA3IDA0OjUzOjAyICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzbGlnaHRseSBicm9rZW4gYnVmZmVyLWluLXNlZ21lbnQgY2hlY2sgKGFhY3BhcnNlLCBhbXJwYXJzZSwgZmxhY3BhcnNlKQoKMjAwOS0wNC0wNSAwMzo1MDoxOSArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggcHVzaCBtb2RlIHNlZWtpbmcgKGFhY3BhcnNlLCBhbXJwYXJzZSkKCSAgU2VuZGluZyB0aGUgZmx1c2gtc3RhcnQgZXZlbnQgZm9yd2FyZCBiZWZvcmUgdGFraW5nIHRoZSBzdHJlYW0gbG9jayBhY3R1YWxseQoJICB3b3JrcywgaW4gY29udHJhc3QgdG8gZGVhZGxvY2tpbmcgaW4gZG93bnN0cmVhbSBwcmVyb2xsX3dhaXQgKGh1bmsgMSkuCgkgIEFmdGVyIHRoYXQgd2UgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBiZWluZyBzdHVjayBpbiBhIGJ1c3kgbG9vcC4gVGhpcyBpcyBmaXhlZAoJICBieSB1cGRhdGluZyB0aGUgbWluaW11bSBmcmFtZSBzaXplIGluc2lkZSB0aGUgc3luY2hyb25pemF0aW9uIGxvb3AgYmVjYXVzZSB0aGUKCSAgc3ViY2xhc3MgYXNrcyBmb3IgbW9yZSBkYXRhIGluIHRoaXMgd2F5IChodW5rIDIpLgoJICBGaW5hbGx5LCB0aGlzIGxlYWRzIHRvIGEgdmVyeSBwcm9iYWJsZSBjcmFzaCBiZWNhdXNlIHRoZSBzdWJjbGFzcyBjYW4gZmluZCBhCgkgIHZhbGlkIGZyYW1lIHdpdGggYSBzaXplIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBkYXRhIGluIHRoZQoJICBhZGFwdGVyLiBUaGlzIG1ha2VzIHRoZSBzdWJzZXF1ZW50IGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyIGNhbGwgcmV0dXJuIE5VTEwsCgkgIHdoaWNoIGlzIG5vdCBleHBlY3RlZCAoaHVuayAzKS4KCjIwMDktMDMtMzEgMTY6MDc6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERlbGF5IG5ld3NlZ21lbnQgYXMgbG9uZyBhcyBwb3NzaWJsZS4KCSAgSWYgbmV3c2VnbWVudCBpcyBzZW50ICh0b28pIGVhcmx5LCBjYXBzIG1heSBub3QgeWV0IGJlIGZpeGVkL3NldCwKCSAgYW5kIGRvd25zdHJlYW0gbWF5IG5vdCBoYXZlIGJlZW4gbGlua2VkLgoKMjAwOS0wMi0yNyAxMToyNDozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVydCBsYXN0IGNoYW5nZSBhbmQgcHJvcGVybHkgZml4CgkgIEJhc2VwYXJzZSBpbnRlcm5hbHkgYnJlYWtzIHRoZSBzZW1hbnRpY3Mgb2YgYSBfY2hhaW4gZnVuY3Rpb24gYnkgY2FsbGluZyBpdCB3aXRoCgkgIGJ1ZmZlcj09TlVMTC4gVGhlIHJlc29uIEkgYmVsaXZlZCBpdCB3YXMgb2theSB0byByZW1vdmUgaXQgd2FzIHRoYXQgdGhlcmUgaXMKCSAgYWxzbyBhbiB1bmNoZWNrZWQgYWNjZXNzIHRvIGJ1ZmZlciBsYXRlciBpbiBfY2hhaW4uIEFjdHVhbGx5IHRoYXQgY29kZSBpcyB3cm9uZywKCSAgYXMgaXQgbW9zdCBwcm9iYWJseSB3YW50cyB0byBzZXQgZGlzY29udCBvbiB0aGUgb3V0Z29pbmcgYnVmZmVyLgoKMjAwOS0wMi0yNiAxMTowMjowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBjaGVja3MgZm9yIGJ1ZmZlcj09TlVMTAoJICBBY2NvcmRpZm4gdG8gZG9jcyBmb3IgR3N0UGFkQ2hhaW5GdW5jdGlvbiBidWZmZXIgY2Fubm90IGJlIE5VTEwuIElmIHdlIHdvdWxkCgkgIGxlYXZlIHRoZSBjaGVjaywgd2Ugd291bGQgYWxzbyBuZWVkIG1vcmUgc3VjaCBjaGVjayBiZWxvdy4KCjIwMDktMDEtMzAgMTg6MTg6MTAgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbi4KCSAgRml4IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGRlZmF1bHQgcGFyc2VfZnJhbWUgZnVuY3Rpb24gaW4gYm90aAoJICBjb3BpZXMgb2YgR3N0QmFzZVBhcnNlCgoyMDA4LTExLTEzIDE0OjIxOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgRml4IGJhc2VwYXJzZSB0eXBlIG5hbWUuCgoyMDA4LTExLTEzIDEyOjU5OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYWFjcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmg6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGFtcnBhcnNlLmg6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICAqIGdzdC9hbXJwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgQWRkIHR3byBuZXcgYmFzZXBhcnNlIGJhc2VkIHBhcnNlcnMgKGFhYyBhbmQgYW1yKSBmcm9tIEJ1ZyAjNTE4ODU3LgoKMjAxMS0wMy0yMCAwMDo1NjowOCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZVsyXTogTWFrZSBzcmMgcXVlcnkgTVQtc2FmZQoJICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvaW5nIGRvd24gd2hpbGUgdGhlIGV2ZW50IGFycml2ZXMKCjIwMTEtMDMtMjAgMDA6NTY6MDggKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBNYWtlIHNyYyBxdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wNC0wOCAxNDo1NjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBVbnJlZiBldmVudHMgaWYgdGhlIHBhcmVudCBlbGVtZW50IGRpc2FwcGVhcmVkCgoyMDExLTAzLTIxIDE2OjAxOjA1ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBNYWtlIHVwc3RyZWFtIGV2ZW50cyBNVC1zYWZlCgoyMDExLTA0LTA4IDE0OjU1OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogVW5yZWYgZXZlbnRzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoJICBBbmQgYWxzbyB1bnJlZiBldmVudHMgaWYgdGhlIGJhc2V0cmFuc2Zvcm0gc3ViY2xhc3MgaGFzIG5vCgkgIGV2ZW50IGhhbmRsZXIgYW5kIHRoZSBldmVudCBpcyBub3QgZm9yd2FyZGVkIGF0IGFsbC4KCjIwMTEtMDMtMjEgMTY6MDE6MDUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZTogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wMy0yOSAxMTo1NzowNiArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhc2VsbkBjaXNjby5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGdzdHF1ZXVlLCBnc3RxdWV1ZTI6IGNoZWNrIGlmIHBhcmVudCBvZiBwYWQgaXMgTlVMTCBpbiBfZ2V0Y2FwcwoJICBQYXJlbnQgb2YgdGhlIHBhZCAodGhlIHF1ZXVlKSBtYXkgYmUgc2V0IHRvIE5VTEwgd2hpbGUgdGhlcmUgaXMKCSAgYSBidWZmZXIgYWxsb2MgZ29pbmcgb24uCgoyMDExLTA0LTA4IDE0OjUwOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggZ2V0Y2FwcyBhbmQgZXZlbnQgZnVuY3Rpb24gZnJvbSBsYXN0IGNvbW1pdAoJICBSZXR1cm4gQU5ZIGNhcHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZCwgaS5lLiB0aGUgdGVtcGxhdGUgY2FwcwoJICBhbmQgZG9uJ3QgbGVhayBldmVudHMgaWYgdGhlIHBhcmVudCBkaXNhcHBlYXJlZC4KCjIwMTEtMDQtMDEgMDg6NDY6MTQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGFnYWluc3QgcGFkLXBhcmVudCBkaXNhcHBlYXJpbmcKCjIwMTAtMTItMTQgMTY6MDY6NDYgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogcmVzeW5jIHRvIGF2b2lkIGluZmluaXRlIGxvb3AKCjIwMTEtMDQtMDggMDk6MjA6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wNC0wOCAwOToxNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUmVtb3ZlZCB1bnVzZWQgR0NvbmQKCjIwMTEtMDQtMDggMDk6MDc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEFkZCBhbm90aGVyIGNoZWNrIGZvciB0aGUgZmx1c2hpbmcgZmxhZyBhZnRlciB0YWtpbmcgdGhlIGxvY2sKCSAgVGhpcyBwcmV2ZW50cyBhbm90aGVyIHBvdGVudGlhbCBkZWFkbG9jayB3aGVuIGZsdXNoaW5nIHRoZSBwYWQKCSAgYXQgZXhhY3RseSB0aGUgcmlnaHQgdGltZS4KCjIwMTEtMDQtMDcgMTE6MjQ6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEltbWVkaWF0ZWx5IGRyb3AgbWVzc2FnZXMgYWZ0ZXIgY2FsbGluZyB0aGUgc3luYyBoYW5kbGVyIGlmIHRoaXMgaXMgYSBzeW5jaHJvbm91cyBidXMKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IHdhaXQgZm9yZXZlciBmb3IgdGhlIG1lc3NhZ2UgdG8gYmUgcG9wcGVkIGZyb20KCSAgdGhlIHF1ZXVlIGlmIGEgc3luYyBoYW5kbGVyIHJldHVybmVkIEdTVF9CVVNfQVNZTkMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMTE6MTk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IFVzZSBhIGNvbnN0cnVjdC1vbmx5IHByb3BlcnR5IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gY2hpbGQgYnVzZXMgYW5kIG5vcm1hbCBidXNlcwoJICBUaGlzIGFsbG93cyB0byBvbmx5IGNyZWF0ZSB0aGUgc29ja2V0cGFpciB3aGVuIGl0IGlzIHJlYWxseSByZXF1aXJlZCBpbnN0ZWFkCgkgIG9mIGFsd2F5cyBjcmVhdGluZyBpdCBhbmQgaW1tZWRpYXRlbHkgZGVzdHJveWluZyBpdCBhZ2FpbiBmb3IgY2hpbGQgYnVzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDcwMDUKCjIwMTEtMDQtMDcgMjA6NDc6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3IgcXVldWUyCgoyMDExLTA0LTA3IDIwOjQ1OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlciBsZWFrIG9uIGVvcyB3aGVuIHVzaW5nIHRoZSByaW5nIGJ1ZmZlcgoKMjAxMS0wMS0xMSAxNDoyNzozNSArMDEwMCAgSWRhciBUb2xsZWZzZW4gPGl0b2xsZWZzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4ZXMgbWVtb3J5IGxlYWsgb24gb3V0X2ZsdXNoaW5nIGVycm9yIGluIGdzdF9xdWV1ZTJfY3JlYXRlX3JlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY5NzIKCjIwMTEtMDQtMDcgMTk6NDQ6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMTEtMDQtMDcgMTc6MzQ6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBtaW5vciBlbGVtZW50IGRlc2NyaXB0aW9uIGZpeAoKMjAxMS0wNC0wNyAxNjoxMzo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMDcgMTY6MDI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkKCSAgQWRkIGEgTk9fU0hBUkUgZmxhZyB0byBtZW1vcnkgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQgbm90IGJlIHNoYXJlZAoJICBiZXR3ZWVuIGJ1ZmZlcnMuCgoyMDExLTA0LTA3IDE2OjA4OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBkb2NzOiByZW1vdmUgZmlsZSBhcyB3ZSBoYXZlIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dAoKMjAxMS0wNC0wNyAxMDo0ODowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogSGFuZGxlIHRhZyBhbmQgY3VzdG9tIGRvd25zdHJlYW0gZXZlbnRzIHRoZSBzYW1lCgkgIEVzcGVjaWFsbHkgZHJvcCB0YWcgZXZlbnRzIHdoZW4gZmx1c2hpbmcgdG8gbm90IHNlbmQgdGhlbSBvdmVyCgkgIGFuZCBvdmVyIGFnYWluLgoJICBTaG91bGQndmUgYmVlbiBpbiB0aGUgbGFzdCBjb21taXQgYWxyZWFkeSBidXQgSSBmb3Jnb3QgdG8gY2FsbAoJICBnaXQgcmViYXNlIC0tY29udGludWUuLi4KCjIwMTEtMDQtMDcgMTA6NDA6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJsYQoKMjAxMS0wNC0wNyAxMDoyOTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCBzeW5jcm9uaXplZCBjdXN0b20gZG93bnN0cmVhbS9ib3RoIGV2ZW50cyBkb3duc3RyZWFtIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQKCSAgSW5zdGVhZCBvZiBqdXN0IHNpbGVudGx5IGRyb3BwaW5nIHRoZW0uIFRoZSBzYW1lIHdhcyBkb25lIGZvciB0YWcgZXZlbnRzCgkgIGJlZm9yZSBhbHJlYWR5LgoJICBGaXhlcyBidWcgIzYzNTcxOC4KCjIwMTEtMDQtMDYgMTk6MTk6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZG9uJ3QgZm9sbG93IHRoZSBwYXJlbnQgaW4gdGhlIGZhbGxiYWNrIHNoYXJlCgoyMDExLTA0LTA2IDE4OjU3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBidWZmZXI6IG1ha2UgbWVtb3J5IHdyaXRhYmxlIGluIF9wZWVrCgkgIE1ha2UgdGhlIG1lbW9yeSB3cml0YWJsZSB3aGVuIHdlIGFyZSBhc2tlZCB0byBfcGVlayB3aXRoIE1BUF9XUklURS4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgbWluaW9iamVjdC4KCjIwMTEtMDQtMDYgMTY6Mzc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggZGVidWcKCjIwMTEtMDQtMDYgMTQ6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNiAxNDowNjo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQWRkIHByaXZhdGUgQVBJIHRvIHNldCBhIEdzdEJ1cyBpbiBjaGlsZCBtb2RlCgkgIFRoaXMgaXMgdXNlZCBieSBHc3RCaW4gdG8gY3JlYXRlIGEgY2hpbGQgYnVzIHdpdGhvdXQKCSAgYSBzb2NrZXRwYWlyIGJlY2F1c2UgY2hpbGQgYnVzZXMgd2lsbCBhbHdheXMgd29yawoJICBzeW5jaHJvbm91cy4gT3RoZXJ3aXNlIHRvbyBtYW55IHNvY2tldHMgY291bGQgYmUKCSAgY3JlYXRlZCBhbmQgdGhlIGxpbWl0IG9mIGZpbGUgZGVzY3JpcHRvcnMgZm9yIHRoZQoJICBwcm9jZXNzIGNvdWxkIGJlIHJlYWNoZWQuCgkgIEZpeGVzIGJ1ZyAjNjQ2NjI0LgoKMjAxMS0wNC0wNiAxMzo1Njo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDRiZjhmMTUyNGY2ZTMzNzRiM2YzYmM1NzMyMjMzNzcyM2QwNmI5MjguCgoyMDExLTA0LTA2IDEzOjU2OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IENoZWNrIGlmIHBlbmRpbmcgbWVzc2FnZXMgYXJlIGluIHRoZSBxdWV1ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZDFjNDAwMTE0MzRjMWVmYWE2OTZkYzk4ZWY4NTVlZjljY2U5YjI4LgoKMjAxMS0wNC0wNiAxMTozODo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogbWFrZSB0ZXN0c19tYW55X2JpbnMgaW4gYmluIHVuaXQgdGVzdCBhIGJpdCBmYXN0ZXIKCSAgTm90IGRvaW5nIGV4cGVuc2l2ZSBjaGVja3Mgd2hlbiBsaW5raW5nIGVsZW1lbnRzIG1ha2VzIHRoaW5ncwoJICBtdWNoIGZhc3Rlci4KCjIwMTEtMDQtMDYgMTE6MzA6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IGFkZCBzb21lIHF1ZXVlcyB0byB0ZXN0X21hbnlfYmlucyB1bml0IHRlc3QKCSAgVG8gbGltaXQgdGhlIG51bWJlciBvZiBjYWxscyBpbiBhIHJvdyBwZXIgdGhyZWFkLgoKMjAxMS0wNC0wNiAxMjowMzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogQ2hlY2sgaWYgcGVuZGluZyBtZXNzYWdlcyBhcmUgaW4gdGhlIHF1ZXVlCgkgIFdlIGNhbid0IHJlbHkgY29tcGxldGVseSBvbiB0aGUgcG9sbCBmZCBiZWNhdXNlIHRoZSBmZCBtaWdodCBiZQoJICBjcmVhdGVkIGFmdGVyIG1lc3NhZ2VzIHdlcmUgcG9zdGVkIHRvIHRoZSBidXMuCgoyMDExLTA0LTA2IDExOjQ1OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogR3N0RGF0ZS9HRGF0ZSBoYXMgYSBhYmJyZXZpYXRpb24gbm93CgoyMDExLTA0LTAzIDE2OjExOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBhZGQgR3N0QmluIHVuaXQgdGVzdCB0aGF0IGNyZWF0ZXMgYSBsb3Qgb2YgYmlucwoJICBDdXJyZW50bHkgZmFpbHMgKGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzKSBiZWNhdXNlIHdlIGNyZWF0ZSBhCgkgIHNvY2tldCBwYWlyIGZvciBlYWNoIGJpbidzIGJ1cyBhbmQgZXhoYXVzdCB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZQoJICBmaWxlIGRlc2NyaXB0b3JzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjI0CgoyMDExLTA0LTA1IDE2OjIyOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBPbmx5IGNyZWF0ZSB0aGUgc2lnbmFsbGluZyBzb2NrZXQgcGFpciB3aGVuIHJlcXVpcmVkCgkgIE90aGVyd2lzZSBhIG5ldyBvbmUgd291bGQgYmUgY3JlYXRlZCBmb3IgZXZlcnkgc2luZ2xlIGJ1cyBhbmQKCSAgdGhlIHByb2Nlc3MgY291bGQgZWFzaWx5IHJ1biBvdXQgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCSAgRml4ZXMgYnVnICM2NDY2MjQuCgoyMDExLTA0LTA1IDE0OjM2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBBZGQgZGF0ZSBhcyBhIHR5cGUgYWJicmV2aWF0aW9uIG9mIEdEYXRlCgkgIFNlZSBidWcgIzY0NjY5Ni4KCjIwMTEtMDQtMDQgMTU6NTY6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWNjYmUwOSB0byBjM2NhZmUxCgoyMDExLTA0LTA0IDExOjE3OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNCAwMzozMzo0NiArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IHJldHJ5IHJlYWRpbmcgdGhlIGNvbnRyb2wgc29ja2V0IHRvIHJlbGVhc2UgcHJvcGVybHkgYWxsIHdha2V1cHMKCSAgaWYgc2V0LT5jb250cm9sX3BlbmRpbmcgaXMgc2V0IHRvIDAgYnV0IHdlIGRpZG4ndCBub3Qgc3VjY2VkIHJlYWRpbmcKCSAgdGhlIGNvbnRyb2wgc29ja2V0LCBmdXR1cmUgY2FsbHMgdG8gZ3N0X3BvbGxfd2FpdCgpIHdpbGwgYmUgYXdhaWtlbgoJICBieSB0aGUgY29udHJvbCBzb2NrZXQgd2hpY2ggd2lsbCBub3QgYmUgcmVsZWFzZWQgcHJvcGVybHkgYmVjYXVzZQoJICBzZXQtPmNvbnRyb2xfcGVuZGluZyBpcyBhbHJlYWR5IDAsIGNhdXNpbmcgYW4gaW5maW5pdGUgbG9vcC4KCjIwMTEtMDQtMDQgMTA6MTg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IERvbid0IGFsbG93IGludmFsaWQgR0RhdGVzIGluIGFsbCBzdHJ1Y3R1cmVzIGFuZCBkb24ndCBhbGxvdyBOVUxMIEdEYXRlcyBpbiB0YWdsaXN0cwoJICBTb21lIGNvZGUgKGUuZy4gZ3N0dm9yYmlzdGFnLmMpIGFzc3VtZXMgbm9uLU5VTEwgR0RhdGVzIGluIHRhZ2xpc3RzIGFuZAoJICBleHBsb2RlcyBvdGhlcndpc2UgYW5kIE5VTEwgb3IgaW52YWxpZCBHRGF0ZXMgZG9uJ3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheS4KCjIwMTEtMDMtMjUgMTU6NTY6MDcgKzAxMDAgIFRob21hcyBLcmlzdGVuc2VuIDx0aG9tYXMua3Jpc3RlbnNlbkBjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBkb24ndCBjYWxsIFdTQVdhaXRGb3JNdWx0aXBsZUV2ZW50cyB3aXRoIG5vIGV2ZW50cwoJICBGaXhlcyBlcnJvciBjYXVnaHQgYnkgTWljcm9zb2Z0IEFwcGxpY2F0aW9uIFZlcmlmaWVyLgoKMjAxMS0wNC0wMyAxNjoxODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIHBvaW50ZXIgdG8gcGFydC1zZWVraW5nLnR4dCBkZXNpZ24gZG9jcyB0byBldmVudCBzZWVrIGZsYWdzIGRvY3MKCjIwMTEtMDQtMDMgMTY6MTg6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBpZ25vcmUgbmV3IGZ1bm5lbCB1bml0IHRlc3QgYmluYXJ5CgoyMDExLTA0LTAyIDE0OjUxOjE4ICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEF2b2lkIHVzaW5nICJ0eXBlIiBhcyBuYW1lIGZvciBhIHZhcmlhYmxlIGFuZCBhIG1hY3JvIGFyZ3VtZW50IGluIEdTVF9CT0lMRVJQTEFURQoJICBUaGlzIGNhdXNlZCAicmUtZGVjbGFyYXRpb24iIHByb2JsZW1zLgoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuYzogSW4gZnVuY3Rpb24g4oCYY2x1dHRlcl9nc3RfdmlkZW9fc2lua19pbml0X2ludGVyZmFjZXPigJk6CgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5jOjIzMToxOiB3YXJuaW5nOiBkZWNsYXJhdGlvbiBvZiDigJhDbHV0dGVyR3N0VmlkZW9TaW5r4oCZIHNoYWRvd3MgYSBnbG9iYWwgZGVjbGFyYXRpb24gWy1Xc2hhZG93XQoJICAuL2NsdXR0ZXItZ3N0LXZpZGVvLXNpbmsuaDo2NDo0NDogd2FybmluZzogc2hhZG93ZWQgZGVjbGFyYXRpb24gaXMgaGVyZSBbLVdzaGFkb3ddCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY1MzEKCjIwMTEtMDQtMDEgMTM6NTY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogV2hlbiByZXF1ZXN0aW5nIGFuIGV4aXN0aW5nIHBhZCBwcmludCBhIGdfY3JpdGljYWwoKSBpbnN0ZWFkIG9mIHVzaW5nIGFuIGFzc2VydGlvbgoJICBTb21lIGFwcGxpY2F0aW9ucyBhcmUgcmVxdWVzdGluZyB0aGUgc2FtZSBwYWQgbmFtZSBtdWx0aXBsZSB0aW1lcwoJICBhbmQgdGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgYW5kIGRpZmZlcmVudCBmcm9tIGVsZW1lbnQgdG8gZWxlbWVudAoJICBidXQgd2UgZG9uJ3Qgd2FudCB0byBicmVhayBhcHBsaWNhdGlvbnMgdGhhdCB3b3JrIGp1c3QgZmluZS4KCSAgSW4gMC4xMSB0aGlzIGNoZWNrIHNob3VsZCBiZSBhbiBhc3NlcnRpb24gYWdhaW4sIGFsdGhvdWdoIGVsZW1lbnRzCgkgIGhhdmUgdG8gZG8gbWFudWFsIGNoZWNraW5nIGlmIHRoZSBwYWQgYWxyZWFkeSBleGlzdHMgYWdhaW4gYmVjYXVzZQoJICBpdCBjYW4ndCBiZSBkb25lIGluIGEgdGhyZWFkc2FmZSB3YXkgaGVyZS4KCjIwMTEtMDQtMDEgMTM6NTM6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogVXNlIGdpbnQ2NC9ndWludDY0IHN0cmluZyBwYXJzaW5nIGZ1bmN0aW9ucwoJICBBbmQgY2hlY2sgdGhhdCB0aGUgcmVxdWVzdGVkIHBhZCBuYW1lcyBhcmUgaW5zaWRlIHRoZSB2YWxpZAoJICBnaW50L2d1aW50IHJhbmdlLgoKMjAxMS0wNC0wMSAxMzo1MTozMSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogc3RydG9bdV1sKCkgcmV0dXJucyBhIGdbdV1sb25nCgoyMDExLTA0LTAxIDEwOjQ3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wMSAxMDo0NjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlIHdpdGggYnVmZmVybGlzdCBjaGFuZ2VzCgoyMDExLTAzLTMxIDE5OjI1OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBkb2N1bWVudCBleHBlY3RlZCBiZWhhdmlvdXIgZm9yIEFDQ1VSQVRFIGFuZCBLRVlfVU5JVCBzZWVrIGZsYWdzCgoyMDExLTAzLTMxIDE4OjM5OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IGRvbid0IGFkZCBOVUxMIGRhdGEKCjIwMTEtMDMtMzEgMTc6NTU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaAoKMjAxMS0wMy0zMSAxNzo1MTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IHNpbXBsaWZ5IGJ1ZmZlcmxpc3RzCgkgIFdlIG5vdyBoYXZlIG11bHRpcGxlIG1lbW9yeSBibG9ja3MgYXMgcGFydCBvZiB0aGUgYnVmZmVycyBhbmQgd2UgY2FuIHRoZXJlZm9yZQoJICByZWR1Y2UgdGhlIGJ1ZmZlcmxpc3QgdG8gYSBzaW1wbGUgYXJyYXkgb2YgYnVmZmVycy4KCjIwMTEtMDMtMzEgMTA6NTM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgZ3N0YWJpOiBBZGQgc29tZSBuZXcgc3RydWN0dXJlcyBmb3IgeDg2LTY0CgoyMDExLTAzLTMxIDEwOjQ2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgbGlic2FiaTogQWRkIGxvdHMgb2YgbmV3IHN0cnVjdHVyZXMgZm9yIHg4Ni02NAoKMjAxMS0wMy0zMSAxMDozMToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wMy0zMCAyMDowNToyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogZml4IGZvciBBUEkgY2hhbmdlCgoyMDExLTAzLTMwIDE5OjU4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMS1mZG8KCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGdzdC9nc3RlbGVtZW50LmMKCjIwMTEtMDMtMzAgMTk6MDE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MKCjIwMTEtMDMtMzAgMTg6NDU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDExLTAzLTMwIDE2OjQ3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IG1vcmUgQVBJIHR3ZWFrcwoJICBfdHJpbSAtPiBfcmVzaXplCgkgIF9jcmVhdGVfc3ViIC0+IGNvcHlfcmVnaW9uCgoyMDExLTAzLTMwIDE1OjI5OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jcwoKMjAxMS0wMy0zMCAxMzowNDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZGVzaWduOiB1cGRhdGUgZG9jcwoKMjAxMS0wMy0zMCAxMDo0ODo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIGFzc2lnbm1lbnQgb2YgcXVldWUgSURzIGFuZCBwYWQgbmFtZXMgdGhyZWFkc2FmZQoJICBBbHNvIGFkZCBhIHRlc3QgZm9yIG5hbWluZyBwYWRzIGJ5IHRoZSBjYWxsZXIgYW5kIHJldHVybiBOVUxMCgkgIHdoZW4gcmVxdWVzdGluZyBhbiBhbHJlYWR5IGV4aXN0aW5nIHBhZC4KCjIwMTEtMDMtMjkgMjM6NTg6NDMgKzAyMDAgIEFuZHJlYXMgRnJpc2NoIDxmcmF4aW5hc0BvcGVuZHJlYW1ib3gub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFNldCB0aGUgc2luZ2xlIHF1ZXVlIElEIHRvIHRoZSBJRCBvZiB0aGUgcmVxdWVzdGVkIHBhZCBpZiBvbmUgd2FzIGdpdmVuIGJ5IHRoZSBjYWxsZXIKCjIwMTEtMDMtMjkgMTk6MTc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGZ1cnRoZXIgbWVtb3J5IHR3ZWFraW5nCgkgIEFsbG93IGZvciBhdXRvbWF0aWMgbWVyZ2luZyBvZiBtZW1vcnkgYmxvY2sgaW4gdGhlIF9tYXAgZnVuY3Rpb24gYW5kIGF1dG9tYXRpYwoJICBmcmVlaW5nIG9mIHRoZSB0ZW1wb3JhcnkgbWVtb3J5LgoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBmdW5jdGlvbnMuCgkgIEFkZCBwb3NzaWJpbGl0eSB0byBmb3JjZSB3cml0YWJsZSBzcGFubmVkIG1lbW9yeS4KCjIwMTEtMDMtMjkgMTc6MTc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wbGVtZW50IENPUFlfTUVSR0UKCjIwMTEtMDMtMjkgMTY6NTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBjbGVhbiB1cCBfc3BhbiBhbmQgYWRkIG1vcmUgZ19yZXR1cm5faWYuLgoKMjAxMS0wMy0yOSAxNjoyMjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggc2FuaXR5IGNoZWNrcyBmb3IgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIHdpdGhvdXQgJQoKMjAxMS0wMy0yOSAxMzo1MToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG9wdGltaXplIG1lbW9yeSBoYW5kbGluZwoKMjAxMS0wMy0yOSAxMTo1Nzo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBBZGQgc29tZSBtb3JlIHNhbml0eSBjaGVja3MgdG8gdGhlIHBhZCBuYW1lIGNoZWNraW5nIG9mIHJlcXVlc3QgcGFkcyBpbiBhbGwgY2FzZXMKCSAgRXNwZWNpYWxseSBjaGVjayBpZiBhIHBhZCB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4KCjIwMTEtMDMtMjkgMTE6NTI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ2hlY2sgJXUgdG9vIHdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBwYWQgdGVtcGxhdGUgZm9yIGEgcmVxdWVzdCBwYWQKCjIwMTEtMDMtMjkgMTE6MzE6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBtb3ZlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgaW4gcHJpdmF0ZSBzdHJ1Y3QKCjIwMTEtMDMtMjggMjE6MDE6MTMgKzAyMDAgIEZyYXhpbmFzIDxhbmRyZWFzLmZyaXNjaEBtdWx0aW1lZGlhLWxhYnMuZGU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGFyYml0cmFyeSBzaW5rICsgc291cmNlIHBhZCBuYW1pbmcKCSAgVXNlIHRoZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciBmb3IgdGhlIHNpbmtwYWQgbmFtZQoJICBpZiBwb3NzaWJsZS4gTm90ZSB0aGF0IGFsbCBzYW5pdHkgY2hlY2tpbmcgZm9yIHRoaXMgbmFtZQoJICBpcyBhbHJlYWR5IGRvbmUgaW4gR3N0RWxlbWVudC4KCSAgRml4ZXMgQnVnICM2NDU5MzEKCjIwMTEtMDMtMjkgMTE6MTg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBBZGQgc29tZSBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGJlaGF2aW91ciBvZiBmdW5uZWwKCjIwMTEtMDMtMjkgMTE6MDg6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTZW5kIGEgbmV3c2VnbWVudCBldmVudCBhZnRlciBmbHVzaC1zdG9wCgoyMDExLTAzLTI5IDExOjA3OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogU29tZSByYW5kb20gY2xlYW51cAoKMjAxMS0wMy0yOSAxMDo1NjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFVzZSBhIEdzdFBhZCBzdWJjbGFzcyBmb3IgdGhlIHNpbmtwYWRzIGluc3RlYWQgb2YgdXNpbmcgdGhlIHBhZCdzIGVsZW1lbnQgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTI5IDEwOjQyOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3RhdGljZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBJbnRlZ3JhdGUgaW50byB0aGUgYnVpbGQgc3lzdGVtIGFuZCByZW5hbWUgdGhlIHR5cGVzCgoyMDExLTAzLTI5IDEwOjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEltcG9ydCBmdW5uZWwgZWxlbWVudCBmcm9tIGZhcnNpZ2h0MgoKMjAxMS0wMy0yOSAxMTowNzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBidWZmZXIgdXBkYXRlcwoKMjAxMS0wMy0yOCAyMDoyMDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMy0yOCAyMDoxMToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoKMjAxMS0wMy0yOCAxOToxOTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBmaXggc3ViYnVmZmVycwoKMjAxMS0wMy0yOCAxNjo0MDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXBsZW1ldCB0cmltIGFuZCBzZXRfc2l6ZQoKMjAxMS0wMy0yOCAxNTo1MjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBmaXhlcwoKMjAxMS0wMy0yOCAxMDoyODowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgbWV0aG9kcwoKMjAxMS0wMy0yNCAyMToyMTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgaW5pdAoKMjAxMS0wMy0yNCAyMToxODo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGZpeCByZW1haW5pbmcgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yNCAyMDowOTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB1bml0IHRlc3QKCjIwMTEtMDMtMjQgMTM6MDE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogcmVtb3ZlIG1lbW9yeSBtZXRhZGF0YSBhZ2FpbgoKMjAxMS0wMy0yNCAxMTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgbWVtb3J5OiBtb3JlIGZpeGVzCgkgIEF1dG9tYXRpY2FsbHkgbWFrZSB0aGUgbWVtb3J5IG9mIGEgYnVmZmVyIHdyaXRhYmxlIHdoZW4gdGhlIGJ1ZmZlciBpcyB3cml0YWJsZQoJICBhbmQgdGhlIG1lbW9yeSBpcyBhc2tlZCB0byBtYXBwZWQgV1JJVEUuCgkgIEFkZCBkb2NzCgoyMDExLTAzLTIzIDIwOjUyOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiBpbXBsZW1lbnRpbmcgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMiAyMDo1MTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcG9ydGluZyB0aGUgdW5pdCB0ZXN0cwoKMjAxMS0wMy0yMSAxOToxNToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHRlc3RzOiBtYWtlIHNvbWUgdGVzdHMgY29tcGlsZQoKMjAxMS0wMy0yMSAxODoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBtZW1vcnk6IHBvcnQgY29kZSB0byBuZXcgYnVmZmVyIGRhdGEgQVBJCgoyMDExLTAzLTIxIDEzOjA3OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1lbW9yeTogbW9yZSBmaXhlcwoJICBGaXggc3BhbiBhbmQgaXNfc3BhbgoJICBJbXBsZW1lbnQgYnVmZmVyIG1lbW9yeQoKMjAxMS0wMy0yMSAwOTo1MTo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIFdJUCB1c2UgbWVtb3J5IGluIGJ1ZmZlcgoKMjAxMS0wMy0yMCAxMTo0MjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1vcmUgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE5IDEwOjQ1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbW9yZSBtZW1vcnkgaW1wcm92ZW1lbnRzCgoyMDExLTAzLTE4IDIxOjQ1OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1vcmUgbWVtb3J5IG9wZXJhdGlvbnMKCjIwMTEtMDMtMTggMTk6Mjg6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1lbW9yeSBpbXBsZW1lbnRhdGlvbgoKMjAxMS0wMy0xOCAxODozNTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgQVBJIGZvciBoYW5kbGluZyBtZW1vcnkgYmxvY2tzCgkgIEFkZHMgc29tZSBBUEkgdG8gaGFuZGxlIG1lbW9yeSBibG9ja3MuCgoyMDExLTAzLTA4IDE4OjE4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogZml4IGRvY3MKCjIwMTEtMDMtMjggMjE6MjE6MDAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogUmV0dXJuIEZBTFNFIGlmIHdlIGRvbid0IGhhbmRsZSBhbiBldmVudAoJICBiYXNlc3JjJ3MgZGVmYXVsdCBldmVudCBoYW5kbGVyIHJldHVybnMgVFJVRSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlCgkgIGV2ZW50IGlzIGhhbmRsZWQgb3Igbm90LiBUaGlzIGZpeGVzIHRoZSBoYW5kbGVyIHRvIGNvbmZvcm0gd2l0aCB0aGUKCSAgZXhwZWN0ZWQgYmVoYXZpb3VyICh3aGljaCBpcyB0byBvbmx5IHJldHVybiBUUlVFIHdoZW4gdGhlIGV2ZW50IGhhcwoJICBhY3R1YWxseSBiZW5uIGhhbmRsZWQpLiBnc3RfYmluX2RvX2xhdGVuY3lfZnVuYygpIGRlcGVuZGVkIG9uIHRoaXMKCSAgKGluY29ycmVjdCkgYmVoYXZpb3VyLCBhbmQgaXMgbm93IG1vZGlmaWVkIGFzIHdlbGwuCgkgIChSZW1haW5pbmcgMS1saW5lciBjaGFuZ2UgaW4gZ3N0YmFzZXNyYy5jIGlzIHRvIGtlZXAgZ3N0LWluZGVudCBoYXBweSkKCjIwMTEtMDMtMjUgMjI6MDg6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxOTNiNzE3IHRvIDFjY2JlMDkKCjIwMTEtMDMtMjUgMTQ6NTU6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjc3ZTJiZiB0byAxOTNiNzE3CgoyMDExLTAzLTI1IDA5OjI3OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDg4MTRiNiB0byBiNzdlMmJmCgoyMDExLTAzLTI1IDA4OjU5OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFhYTI4NiB0byBkODgxNGI2CgoyMDExLTAzLTI0IDE4OjQ4OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhZWM2YjkgdG8gNmFhYTI4NgoKMjAxMS0wMy0yNCAxODoyNzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBkb2NzOiBmaXggc29tZSBndGstZG9jIHdhcm5pbmdzCgkgIERvY3VtZW50IHRoZSBxdWV1ZSBsZWFreSBlbnVtcy4KCjIwMTEtMDMtMjQgMTg6MjU6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IG1heCB2YWx1ZSBmb3IgdG8gdGhlIG1hdGNoaW5nIG9uZSBmb3IgdGhlIGRhdGF0eXBlCgkgIFRoZSBwcm9wZXJ0eSBpcyBndWludDY0LCBzbyB1c2UgR19NQVhVSU5UNjQgaW5zdGVhZCBvZiBHX01BWFVJTlQuCgoyMDExLTAzLTI0IDEzOjIyOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGRvY3M6IGNsZWFudXAgYW5kIHhyZWYgZml4ZXMKCSAgRGVhbCB3aXRoIHRoZSBoaW50cyBmcm9tIGd0ay1kb2MgYW5kIGZpeCB0aGUgeHJlZnMuIEFwcGx5IGEgd29yay1hcm91bmQgZm9yICgpCgkgIHByZWNlZGVuY2Ugb3ZlciBALiBNb3ZlICJNVCBTYWZlIiB0ZXh0IHRvIGRvYyBib2R5IGluIG1hbnkgcGxhY2VzLiBUcmltIGVvbAoJICB3aGl0ZXNwYWNlcy4KCjIwMTEtMDMtMjMgMTY6NDI6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHByaW50IGZsb3cgcmV0dXJuIGFzIGEgbmFtZSBpbiBkZWJ1ZyBsb2cKCjIwMTEtMDMtMjMgMTc6MTM6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBkbyB4cmVmcyBmb3Igbm9uIGluc3RhbGxlZCBib29rcyB0b28KCSAgR2V0IHRoZSB4cmVmcyBmcm9tIHRoZSBidWlsZGRpciBmb3IgdGhlIGJvb2tzIGluIHRoZSBzYW1lIHBhY2thZ2VzLiBUaGlzIGZpeGVzCgkgIHRoZSBjcm9zcyByZWZlcmVuY2VzIGlmIG9uZSBkb2VzIG5vdCBoYXZlIHRoZSBkb2NzIGFscmVhZHkgaW5zdGFsbGVkLgoKMjAxMC0wNC0xOSAyMDozOTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBLZWVwIGRvd25zdHJlYW0gY2FwcyBvcmRlciB3aGVuIGZpeGF0aW5nCgkgIFRoaXMgYWxsb3dzIHVzZSB0byB1c2UgdGhlIGZpcnN0IGludGVyc2VjdGluZyBmb3JtYXQgcHJlZmVyZWQgYnkgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMC0wNC0xOSAyMDo0MDo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXRhaW4gY2FwcyBvcmRlciB3aGVuIGdldHRpbmcgY2FwcwoJICBJZiB0aGUgZWxlbWVudCBnYXZlIHVzIGNhcHMgaW4gYSBzcGVjaWZpYyBvcmRlciwgbGV0J3MgcmV0YWluIHRoYXQKCSAgYnkgaW50ZXJzZWN0aW5nIGFnYWluc3QgdGhlIHRlbXBsYXRlIGJ1dCByZXRhaW5pbmcgdGhlIG9yZGVyIGdpdmVuCgkgIGJ5IHRoZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDExLTAyLTI1IDEwOjI1OjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBUZXN0cyBmb3IgdGhlIG5ldyBjYXBzIGludGVyc2VjdGlvbiBtb2RlCgkgIEFkZHMgdGVzdCBjYXNlcyBmb3IgdGhlIGNhcHMgJ2ZpcnN0JyBpbnRlcnNlY3QgbW9kZQoJICBBZGRzIGFub3RoZXIgdGVzdCBmb3IgdGhlICd6aWd6YWcnIG1vZGUKCSAgRml4ZXMgIzYxNzA0NQoKMjAxMS0wMi0yNSAwODo1MDoxMiAtMDMwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGNhcHM6IG5ldyBBUEkgOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBKdXN0IGxpa2UgZ3N0X2NhcHNfaW50ZXJzZWN0LCBidXQgYWRkcyBhIG5ldyBwYXJhbWV0ZXIgJ21vZGUnCgkgIHRoYXQgYWxsb3dzIHNlbGVjdGluZyB0aGUgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSB0byB1c2UuCgkgIEN1cnJlbnRseSB3ZSBoYXZlIEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX1pJR19aQUcgKGRlZmF1bHQpIGFuZAoJICBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9GSVJTVC4KCSAgQVBJOiBnc3RfY2Fwc19pbnRlcnNlY3RfZnVsbAoJICBBUEk6IEdzdENhcHNJbnRlcnNlY3RNb2RlCgkgIEFQSTogR1NUX0NBUFNfSU5URVJTRUNUX01PREVfWklHX1pBRwoJICBBUEk6IEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX0ZJUlNUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTEtMDMtMTIgMTc6MDE6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RsaWJzY3BwLmNjOgoJICB0ZXN0czogYWRkIGxpYnNjcHAgdW5pdCB0ZXN0IHRvIG1ha2Ugc3VyZSBnKysgbGlrZXMgb3VyIGxpYnJhcnkgaGVhZGVycwoKMjAxMS0wMy0xMiAxNjo1ODowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGVyZWFkZXIsIGJ5dGV3cml0ZXI6IGZpeCB1cCBpbmxpbmUgZnVuY3Rpb25zIHRvIG1ha2UgZysrIGhhcHB5CgkgIGdzdGJ5dGVyZWFkZXIuaDogSW4gZnVuY3Rpb24g4oCYZ3VpbnQ4KiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGFfdW5jaGVja2VkKEdzdEJ5dGVSZWFkZXIqLCBndWludCnigJk6CgkgIGdzdGJ5dGVyZWFkZXIuaDoyNDk6NzU6IGVycm9yOiBpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSDigJh2b2lkKuKAmSB0byDigJhndWludDgq4oCZCgkgIGdzdGJ5dGV3cml0ZXIuaDogSW4gZnVuY3Rpb24g4oCYZ2Jvb2xlYW4gX2dzdF9ieXRlX3dyaXRlcl9lbnN1cmVfZnJlZV9zcGFjZV9pbmxpbmUoR3N0Qnl0ZVdyaXRlciosIGd1aW50KeKAmToKCSAgZ3N0Ynl0ZXdyaXRlci5oOjE5Njo3NTogZXJyb3I6IGludmFsaWQgY29udmVyc2lvbiBmcm9tIOKAmHZvaWQq4oCZIHRvIOKAmGd1aW50OCrigJkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTU5NQoKMjAxMS0wMy0yMiAxNjoyNjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBnc3RlbGVtZW50OiBGaXggdHlwbyBpbiB0aGUgZG9jcwoJICBHU1RfRUxFTUVOVF9JTkZPIHdpbGwgcG9zdCBhIElORk8gbWVzc2FnZSwgbm90IGEgV0FSTklORwoKMjAxMS0wMy0xOCAwODoyMjoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogUmVtb3ZpbmcgdW51c2VkIGRlYnVnIGNhdGVnb3J5CgkgIHRhZ3NldHRlcidzIGRlYnVnIGNhdGVnb3J5IGhhZCBhIHR5cG8gYW5kIHdhcyB1bnVzZWQuIFJlbW92aW5nIGl0LgoKMjAxMS0wMy0xOCAxOTozNDo1NyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW46IHdpbmdvIHNpZ25lZCBjb21tZW50CgoyMDExLTAzLTIyIDExOjA0OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIG9iamVjdHMgd2hlbiBmbHVzaGluZyBhZnRlciBkZXF1ZXVlaW5nIGFuZCBiZWZvcmUgcHVzaGluZyB0aGUgb2JqZWN0CgoyMDExLTAzLTIxIDE3OjU0OjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBSZWFsbHkgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNzo1MjoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IEluY3JlbWVudCB1bmlxdWUgaXRlbSBjb3VudGVyIHdpdGggYXRvbWljIG9wZXJhdGlvbnMKCSAgQmVmb3JlIGl0IHdhcyBvbmx5IHByb3RlY3RlZCBieSB0aGUgc3RyZWFtIGxvY2sgYnV0IGV2ZXJ5IHBhZAoJICBoYXMgaXRzIG93biBzdHJlYW0gbG9jaywgbWFraW5nIHRoZSBwcm90ZWN0aW9uIHJhdGhlciB1c2VsZXNzLgoKMjAxMS0wMy0yMSAxNzoxNzoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVW5ibG9jayBhbGwgd2FpdGluZyBwYWRzIHdoZW4gc2h1dHRpbmcgZG93bgoKMjAxMS0wMy0yMSAxMjozOTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wMy0yMSAxNjoyODozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRXhpdCBsb29wIGZ1bmN0aW9uIGlmIHRoZSBwYWQgaXMgZmx1c2hpbmcKCSAgRml4ZXMgcG9zc2libGUgZGVhZGxvY2tzIHdoZW4gZmx1c2hpbmcgYW4gdW5saW5rZWQgcGFkIHRoYXQgd2FpdHMKCSAgZm9yIG90aGVyIHBhZHMgdG8gYWR2YW5jZS4KCjIwMTEtMDMtMTkgMTc6MDY6MTIgLTA1MDAgIEphc29uIEQuIENsaW50b24gPG1lQGphc29uY2xpbnRvbi5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGJ1aWxkOiBmaXggYnVpbGQgd2l0aCAtV2Vycm9yIHdpdGggR0NDIDQuNi4wCgkgIFRoaXMgdG91Y2hlcyB0aHJlZSBhcmVhcyBvZiBjb2RlLCByZW1vdmVzIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2NhcmRzCgkgIHJldHVybiB2YWx1ZXMgZnJvbSB0d28gZnVuY3Rpb25zIHdpdGggKHZvaWQpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MjY3CgoyMDExLTAzLTE5IDEwOjM5OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogQWRkIHNpbmNlIG1hcmtlciB0byBHU1RfRVZFTlRfU0lOS19NRVNTQUdFCgoyMDExLTAzLTE5IDA4OjU1OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBTdG9wIHdhaXRpbmcgZm9yIGEgcGFkIHN3aXRjaCB3aGVuIHRoZSBwYWQgaXMgZmx1c2hpbmcKCjIwMTEtMDMtMTkgMDg6NTA6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1vdmUgbG9ja2luZyBhbmQgc2lnbmFsbGluZyBtYWNyb3MgZnJvbSB0aGUgaGVhZGVyIHRvIHRoZSBzb3VyY2UgZmlsZQoKMjAxMS0wMy0xNyAyMzo0Mjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiBmaXggR1NUX1RBU0tfQlJPQURDQVNUCgkgIFN1cnByaXNpbmdseSBlbm91Z2gsIHlvdSBjYW4ndCAiYnJlYWRjYXN0IiBvbiBhIEdDb25kLgoJICBTcG90dGVkIGJ5IFJ1bmUgU8OmdHJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MDIyCgoyMDExLTAzLTE3IDE0OjIxOjE3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIb2xkIHRoZSBzZWxlY3RvciBsb2NrIHdoaWxlIHJlYWRpbmcgcHJvcGVydGllcyBvZiB0aGUgYWN0aXZlIHBhZAoKMjAxMS0wMy0xNyAxNDoxMDo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTWFrZSBzdXJlIHRoYXQgRU9TIGlzIGFsd2F5cyBzZW50IGRvd25zdHJlYW0gZm9yIHRoZSBhY3RpdmUgcGFkCgkgIEl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWQgZ290IHRoZSBFT1MgZXZlbnQKCSAgYmVmb3JlIGl0IHdhcyBhY3RpdmF0ZWQgYW5kIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBwYWQgZ290IHRoZQoJICBFT1MgZXZlbnQgYWZ0ZXIgaXQgd2FzIGRlYWN0aXZhdGVkLiBJbiB0aGF0IGNhc2Ugd2UgaGF2ZSB0bwoJICBzZW5kIHRoZSBFT1MgZXZlbnQgZnJvbSBhbiBpbmFjdGl2ZSBwYWQgZG93bnN0cmVhbS4KCjIwMTEtMDMtMTYgMTg6MTk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFJldHVybiBHU1RfRkxPV19PSyB1bnRpbCB0aGUgc2VsZWN0ZWQgcGFkIHB1c2hlZCBzb21ldGhpbmcgZG93bnN0cmVhbQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBkdXJpbmcgc3dpdGNoZXMgYXQgbm8gcG9pbnQgaW4gdGltZSBhbGwgcGFkcwoJICBoYXZlIHJldHVybmVkIG5vdC1saW5rZWQsIHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBwbGF5aW5nIGFuIGF1ZGlvLW9ubHkKCSAgZmlsZSB3aXRoIHBsYXliaW4yIGFuZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgc3RyZWFtcyBmb3IgZXhhbXBsZS4KCSAgRml4ZXMgYnVnICM2NDQ5MzUuCgoyMDExLTAzLTE3IDEwOjUzOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBSZW1vdmUgZGVwcmVjYXRlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c2luayxzcmN9X2NhcHMoKQoKMjAxMS0wMy0xNyAxMDo1MDo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlcmxpc3QuYwoKMjAxMS0wMy0xNiAxMjowMToyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9jdW1lbnQgdGhhdCBwYWQgYmxvY2tzIG9ubHkgbWFrZSBzZW5zZSBmb3Igc2luayBwYWRzIGluIHB1bGwgbW9kZSBhbmQgc3JjIHBhZHMgaW4gcHVzaCBtb2RlCgkgIFNlZSBidWcgIzY0NDkwNy4KCjIwMTEtMDMtMTYgMTE6NTM6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBUaGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkIG9mIHRoZSBwcm94eXBhZCBpcyB0aGUgZ2hvc3RwYWQKCSAgUHJldmlvdXNseSB3ZSB3ZXJlIHJldHVybmluZyB0aGUgcGVlcnBhZCwgd2hpY2ggaXMgdGhlIHRhcmdldAoJICBvZiB0aGUgZ2hvc3RwYWQuCgoyMDExLTAyLTI1IDE2OjIwOjQ5ICswMTAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBVc2UgYSBHUXVldWUgaW5zdGVhZCBvZiBhIEdMaXN0CgkgIEFkZGluZyBhIGJ1ZmZlciB0byB0aGUgZW5kIG9mIGEgR3N0QnVmZmVyTGlzdCBpcyBzdXBwb3NlZCB0byBiZSBhIGZhc3QKCSAgb3BlcmF0aW9uLCBidXQgaXQgd2FzIG5vdCBzaW5jZSB0aGUgaXRlcmF0b3IgZG9lcyBub3QgYWR2YW5jZSBpdHMKCSAgbmV4dHBvaW50ZXIgd2hlbiBhZGRpbmcgYnVmZmVycyBhbmQgR0xpc3QgZG9lcyBub3QgaGF2ZSBhIHRhaWwgcG9pbnRlci4KCSAgVXNpbmcgYSBHUXVldWUgdG8gc3RvcmUgdGhlIGJ1ZmZlcnMgbWFrZXMgaXQgZWFzaWVyIHRvIGFkZCBidWZmZXJzIHRvCgkgIHRoZSBlbmQgb2YgdGhlIGxpc3QgYW5kIHRoaXMgb3BlcmF0aW9uIHdpbGwgbm93IGJlIG11Y2ggbW9yZSBlZmZpY2llbnQuCgkgIEFkZGluZyBhbiBlbnRpcmUgR0xpc3Qgb2YgYnVmZmVycyB1c2luZwoJICBnc3RfYnVmZmVyX2xpc3RfaXRlcmF0b3JfYWRkX2xpc3QoKSB3aWxsIGhvd2V2ZXIgaGF2ZSB0byBpdGVyYXRlIG92ZXIKCSAgdGhlIGxpc3QgYmVpbmcgYWRkZWQgdG8gYmUgYWJsZSB0byB1cGRhdGUgdGhlIHRhaWwgcG9pbnRlciBpbiB0aGUKCSAgR1F1ZXVlLgoKMjAxMS0wMy0xMCAxNzo0ODoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBmaXggQUJJIGJyZWFrIHdoZW4gY29tcGlsaW5nIGdzdHJlYW1lciB3aXRoIC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRAoJICBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIHNob3VsZCBvbmx5IGFmZmVjdCB2aXNpYmlsaXR5IG9mIGRlY2xhcmF0aW9ucyBpbiBoZWFkZXJzLAoJICBub3QgYWN0dWFsbHkgcmVtb3ZlIHN5bWJvbHMuIFNlZSBHaXREZXZlbG9wZXJHdWlkZWxpbmVzIGFuZCBEZXByZWNhdGluZ0FQSQoJICBwYWdlcyBpbiB3aWtpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMTQxCgoyMDExLTAzLTEwIDE2OjQ2OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIC5kZWYgZmlsZSBmb3IgQVBJIGFkZGl0aW9uCgoyMDExLTAzLTEwIDEwOjI1OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wOSAxNjoxNTozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBwd2c6IGZpeCBlbGVtZW50IG5hbWUgInZpZGVvZHJvcCIgdG8gInZpZGVvcmF0ZSIKCjIwMTEtMDMtMDggMTI6MTE6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICB0ZXN0OiBhZGQgdGVzdHMgZm9yIG5ldyBlbGVtZW50X2ZhY3RvcnkgYXBpLgoKMjAxMC0wNi0yMyAyMjowMDowNCArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiByZXBsYWNlIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzaW5rLHNyY31fY2FwcwoJICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBjbGFyaWZ5IGhvdyB0aGUgY2FwcyBhcmUgY29tcGFyZWQgdG8gdGhlIHRlbXBsYXRlIGNhcHMgb2YKCSAgdGhlIGVsZW1lbnQgZmFjdG9yeS4gSW1wcm92ZSB0aGUgZG9jcyB0byBwb2ludCBvdXQgdGhlIGRpZmZlcmVuY2UuCgkgIERlcHJlY2F0ZTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3NyY3xzaW5rfV9jYXBzCgkgIEFQSTogYWRkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzcmN8c2lua31fe2FueXxhbGx9X2NhcHBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIxNDEKCjIwMTEtMDMtMDcgMjM6MTM6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgYSB1bml0IHRlc3QgZm9yIGdzdF9jYXBzX25ld19zaW1wbGUKCSAgQWRkIGEgdGVzdCBmb3IgdGhlIGNyYXNoIGluIGJ1ZyAjNjQyMjcxLgoKMjAxMS0wMy0wOCAxODowNTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHJlbmFtZSBkcmFmdCB0byBvZmZpY2lhbCBkb2MKCjIwMTEtMDMtMDggMTY6NTg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGltcGxlbWVudCB0cmFuc2Zvcm0gZnVuY3Rpb24KCSAgUmVwbGFjZSBzdWJidWZmZXIgYW5kIGNvcHkgdm1ldGhvZHMgYnkgYSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtIGZ1bmN0aW9uIHRoYXQKCSAgY2FuIHRoZW4gYmUgcGFyYW1ldHJpc2VkIGJ5IHRyYW5zZm9ybSBzcGVjaWZpYyBkYXRhLiBUaGlzIHNob3VsZCBhbGxvdyB1cyB0bwoJICBpbXBsZW1lbnQgbWFrZS13cml0YWJsZSBhbmQgbW9yZSBmdXR1cmUgdHJhbnNmb3JtIGZ1bmN0aW9ucy4KCjIwMTEtMDMtMDggMTc6MDY6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAzLTA4IDExOjU1OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IHRvIGNyZWF0ZSBhIGZhY3RvcnkKCjIwMTEtMDMtMDggMTA6MzY6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3RzOiBzdGFydCBhIG5ldyB0ZXN0IHN1aXRlIGZvciBlbGVtZW50IGZhY3RvcmllcwoJICBNb3ZlIG9uZSB0ZXN0IGZyb20gZ3N0ZWxlbWVudCBzdWl0ZS4KCjIwMTEtMDMtMDggMTE6MzQ6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWRkIG1pc3NpbmcgOyBpbiBleGFtcGxlIChhbmQgdHJpbSB3aGl0ZXNwYWNlKQoKMjAxMS0wMy0wOCAwOTo1ODo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkgZG9lcyBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgbWVkaWFfdHlwZSE9TlVMTCBhcyB0aGUgZnVuY3Rpb24gd2UgY2FsbCB0aGF0IGFjdHVhbCBjcmVhdGUKCSAgdGhlIHN0cnVjdHVyZSBkb2VzIGEgZnVsbCBjaGVjayBhbnl3YXkuCgoyMDExLTAzLTA4IDEwOjA2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGNhcHMsc3RydWN0dXJlOiB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTEtMDMtMDQgMDg6Mjg6MjUgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZG9uJ3QgY3JlYXRlIGJyb2tlbiBjYXBzIGZvciBpbnZhbGlkIG1lZGlhIHR5cGVzCgkgIENoZWNrIGlmIHN0cnVjdHVyZSBoYXMgYmVlbiBjcmVhdGVkIGJlZm9yZSBhcHBlbmRpbmcgaXQgdG8gdGhlIGNhcHMuIEZyZWUgdGhlCgkgIGNhcHMgaW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IgdG8gbm90IGNvbmNlYWwgaXQgYmUgcmV0dXJuaW5nIGVtcHR5IGNhcHMuCgkgIEZpeGVzICM2NDIyNzEKCjIwMTEtMDMtMDcgMTY6MjE6NDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogdXBkYXRlIGhlbGxvIHdvcmxkIGV4YW1wbGUKCSAgT3VyIGhlbGxvd29ybGQgZXhhbXBsZSB0aGF0dyBlIHJlZmVyZW5jZSBmcm9tIHRoZSBtYW51YWwgaGFzIGJlZW4gYSBiaXQKCSAgY29tcGxpY2F0ZWQgdG8gc2VydmUgYSBmaXJzdCBjb250YWN0IHdpdGggZ3N0cmVhbWVyLiBTaW5jZSB3ZSBoYXZlIGFuZAoJICBwcm9tb3RlIHBsYXliaW4yIGFzIGEgcGxheWJhY2sgYXBpIHVzZSBpdCBoZXJlLgoJICBCYXNlZCBvbiB3b3JrIGZyb20gTWF0aGlhcyBIYXNzZWxtYW5uIDxtYXRoaWFzLmhhc3NlbG1hbm5AZ214LmRlPgoJICBGaXhlcyAjNDI0MTQzCgoyMDExLTAzLTA0IDE5OjAyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBtZXRhZGF0YSBkcmFmdAoKMjAxMS0wMy0wNCAxODoxMToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlbW92ZSBGSVhNRQoJICBOb3cgdGhhdCB3ZSBkb24ndCBzdWJjbGFzcyBidWZmZXJzIGFueW1vcmUsIHRoZSBGSVhNRSBhYm91dCBsaW1pdGVkCgkgIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGNvcHkgZnVuY3Rpb24gaXMgaXJyZWxldmFudC4KCjIwMTEtMDMtMDQgMTc6NDM6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGZsYWcgcmVnaXN0cmF0aW9uCgoyMDExLTAzLTA0IDE3OjI1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBwYWQ6IG1vcmUgcHJlcm9sbCBsb2NrIHRvIGJhc2VzaW5rCgkgIE1vdmUgdGhlIHByZXJvbGwgbG9jayB0byBiYXNlc2luayB3aGVyZSBpdCBiZWxvbmdzLgoKMjAxMS0wMy0wNCAxNjowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkcmFmdAoKMjAxMS0wMy0wNCAxMjowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxODozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBkZWJ1ZwoKMjAxMS0wMy0wMyAxODoyMTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxNjozMTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogYWRkIGNhcHMgdG8gdGhlIGNvbmZpZwoJICBBZGQgdGhlIGNhcHMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiB0aGUgcG9vbC4KCSAgSW5pdGlhbGl6ZSB0aGUgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTAyIDExOjU3OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTAzLTAyIDExOjU3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbGVhc2UgYnVmZmVyIHRvIHBvb2wgaW4gZGlzcG9zZQoJICBVc2UgdGhlIGRpc3Bvc2UgbWV0aG9kIHRvIHJlbGVhc2UgdGhlIGJ1ZmZlciB0byB0aGUgcG9vbCB3aGVuIGl0IGlzIGNvbmZpZ3VyZWQuCgoyMDExLTAyLTIyIDEyOjM1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcjogYWRkIHBvb2wgdG8gYnVmZmVyIHN0cnVjdHVyZQoJICBLZWVwIGEgcG9pbnRlciB0byB0aGUgYnVmZmVycG9vbC4gUmVsZWFzZSB0aGUgYnVmZmVyIHRvIHRoZSBwb29sIHdoZW4KCSAgZmluYWxpemluZy4gTWFrZSBzdXJlIHRoZSBwb29sIHNldHMgaXRzZWxmIGFzIHRoZSBwb29sIG1lbWJlciBvZiBidWZmZXJzIHRoYXQgaXQKCSAgc2VuZHMgb3V0LgoKMjAxMS0wMi0yMiAxMjozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgcG9vbCBmbGFncyB0eXBlCgoyMDExLTAyLTIyIDExOjA1OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRvY3MKCjIwMTEtMDItMjEgMTg6NDM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBSZWZhY3RvciBzdG9wcGluZyBvZiB0aGUgcG9vbAoJICBNb3ZlIHNvbWUgbWV0aG9kcyBhcm91bmQuCgkgIE1ha2Ugc3VyZSB3ZSBjaGVjayBmb3IgY29uZmlnIHBhcnNpbmcgZXJyb3JzLgoJICBJbmNyZW1lbnQgdGhlIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYmVmb3JlIGNhbGxpbmcgYWNxdWlyZSBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlCgkgIHRoYXQgc2V0X2FjdGl2ZSgpIGRvZXNuJ3QgZnJlZSB0aGUgcG9vbCBmcm9tIHVuZGVyIHVzLgoKMjAxMS0wMi0yMSAxNzozMzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IFJld29yayBidWZmZXIgbWFuYWdlbWVudCBhIGxpdHRsZQoJICBBZGQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIGFsbG93IGZvciBidWxrIGFsbG9jYXRpb24gb2YgYnVmZmVycy4KCSAgRnJlZSBidWZmZXJzIG9ubHkgd2hlbiBhbGwgb3V0c3RhbmRpbmcgYnVmZmVycyByZXR1cm5lZC4KCSAgTWFrZSB0aGluZ3MgbW9yZSB0aHJlYWRzYWZlIHdydCBmbHVzaGluZyBhbmQgc3RhcnRpbmcvc3RvcHBpbmcgYnkKCSAga2VlcGluZyB0cmFjayBvZiBzdGFydCBhbmQgc3RvcCBtZXRob2QgY2FsbHMuCgoyMDExLTAyLTIxIDEyOjE4OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWVtb3J5IG1hbmFnZW1lbnQgY2xlYW51cHMKCSAgVXNlIGEgbG9jayB0byBwcm90ZWN0IGNvbmN1cnJlY3QgZXhlY3V0aW9uIG9mIHNldF9jb25maWcgYW5kIHNldF9hY3RpdmUuCgkgIFN0YXJ0IGZyZWVpbmcgdGhlIGJ1ZmZlcnMgd2hlbiBmbHVzaGluZyBhbmQgYWxsIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZQoJICBwb29sLgoJICBNYWtlIGEgY29weSBvZiB0aGUgY29uZmlnIHRvIGF2b2lkIGNyYXNoaW5nIHdpdGggY29uY3VycmVudCBhY2Nlc3MuCgoyMDExLTAyLTE4IDE2OjM1OjQ2ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhbHNvIGFsbG93IE5VTEwgcGFyYW1zIGluIF9hY3F1aXJlCgoyMDExLTAyLTE4IDE2OjE1OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbW9yZSB1cGRhdGVzCgkgIEtlZXAgdHJhY2sgaWYgdGhlIGJ1ZmZlciBpcyBjb25maWd1cmVkIGFuZCBibG9jayBhY3RpdmF0aW9uIHdoZW4gbm90IGNvbmZpZ3VyZWQKCSAgeWV0LgoJICBLZWVwIHRyYWNrIG9mIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYW5kIGRpc2FsbG93IGNvbmZpZ3VyYXRpb24gd2hlbiBub3QgYWxsCgkgIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZSBwb29sLiBXZSBuZWVkIHRvIGRvIHRoaXMgb3IgZWxzZSB3ZSBtaWdodCBlbmQgdXAKCSAgd2l0aCB3cm9uZyBidWZmZXJzIGluIHRoZSBwb29sLgoJICBBZGQgcmV0dXJuIHZhbHVlIHRvIHNldF9hY3RpdmUuCgkgIFNtYWxsIGNsZWFudXBzLiBGaXggZmluYWxpemUuCgoyMDExLTAyLTE4IDEyOjUwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogcmVuYW1lICdmbHVzaGluZycgdG8gJ2FjdGl2ZScKCSAgUmVuYW1lIHRoZSBmbHVzaGluZyB2YXJpYWJsZSBhbmQgbWV0aG9kcyB0byBhY3RpdmUgdG8gYmV0dGVyIG1hdGNoCgkgIHRoZSBvdGhlciBnc3RyZWFtZXIgbmFtZSBjb252ZW50aW9ucwoKMjAxMS0wMi0xNyAxODozNzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHByZWFsbG9jIHdoZW4gdW5zZXQgZmx1c2hpbmcKCSAgQWNjb3JkaW5nIHRvIHRoZSBkZXNpZ24gZG9jIHdlIG5lZWQgdG8gcHJlYWxsb2MgYnVmZmVycyB3aGVuIHdlIHVuc2V0IHRoZQoJICBmbHVzaGluZyBzdGF0ZSwgbm90IGluIHNldF9jb25maWcuCgkgIFNldCB0aGUgZmx1c2hpbmcgc3RhdGUgYmV0dGVyLgoKMjAxMS0wMi0xNyAxNzoyOToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogdXNlIHF1YXJrcyBmb3Igc3RydWN0dXJlIGZpZWxkcwoKMjAxMS0wMi0xNyAxNjo0Njo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiB1c2UgR3N0U3RydWN0dXJlIHRvIGNvbmZpZ3VyZSB0aGUgcG9vbAoJICBVc2UgYSBHc3RTdHJ1Y3R1cmUgdG8gcHJvdmlkZSB0aGUgcG9vbCB3aXRoIHRoZSByaWdodCBjb25maWd1cmF0aW9uLiBBbHNvCgkgIHByb3ZpZGUgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBjb25maWd1cmUgc3VjaCBhIHN0cnVjdHVyZS4KCSAgZG9uJ3QgcGFzcyB0aGUgY29uZmlnIGluIGFsbG9jX2J1ZmZlciwgcG9vbCBpbXBsZW1lbnRhdGlvbiB3aWxsIGFscmVhZHkgaGF2ZQoJICBwYXJzZWQgaXQgZHVyaW5nIHNldF9jb25maWcuCgkgIFVwZGF0ZSBkZWZzCgoyMDExLTAyLTE3IDEyOjU1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGZpeCBkZWZzCgoyMDEwLTExLTAyIDE4OjU2OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzaW1wbGUgYnVmZmVycG9vbCBoZWxwZXIgb2JqZWN0CgoyMDExLTAzLTAyIDExOjA4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RyZWdpc3RyeS5oCgoyMDExLTAzLTAyIDEzOjU1OjM2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogTWlub3IgdXBkYXRlIHRvIHNzaCBrZXkgZ2VuZXJhdGlvbiBjb21tYW5kcwoJICBmZC5vIHJlcXVpcmVzIFJTQSBrZXlzLCBhbmQgaW4gZ2VuZXJhbCwgdXNlcnMgd291bGQgcHJvYmFibHkgd2FudCB0bwoJICBtYWtlIGEgcGVyLXNlcnZlciBrZXkgZmlsZSByYXRoZXIgdGhhbiBvdmVyd3JpdGUgaWRfcnNhLCBpZF9yc2EucHViLgoKMjAxMS0wMi0yOCAxODo0Mzo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZXhwb3J0IHBsdWdpbiBkZXNjcmlwdGlvbiBtb3JlIHBsYXRmb3JtIGluZGVwZW5kZW50CgkgIEZpeGVzICM2NDI1MDQuCgoyMDExLTAyLTI4IDE4OjMyOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWRlN2Y2YSB0byA2YWVjNmI5CgoyMDExLTAyLTI4IDE1OjAxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgZG9jczogdHlwbyBmaXhlcwoJICBjb252aW5pZW5jZSAtPiBjb252ZW5pZW5jZQoKMjAxMS0wMi0yOCAxNDo1NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogcHJpbnQgInBhZC1hZGRlZCIsICJwYWQtcmVtb3ZlZCIgYW5kICJuby1tb3JlLXBhZHMiIHNpZ25hbHMgZm9yIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMKCSAgSXQncyBvZnRlbiBub3Qgb2J2aW91cyB0byBwZW9wbGUgdGhhdCBlbGVtZW50cyBsaWtlIGUuZy4gdXJpZGVjb2RlYmluCgkgIChvciBkZW11eGVycykgYXV0b21hdGljYWxseSBzdXBwb3J0IHRoZSBzdGFuZGFyZCBzaWduYWxzIG9mIHRoZQoJICBHc3RFbGVtZW50IGNsYXNzLCBzbyBsZXQncyBwcmludCB0aGUgdXNlZnVsIHBhZC1yZWxhdGVkIG9uZXMgZm9yCgkgIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMuCgoyMDExLTAyLTI4IDE2OjI3OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogc21hbGwgdXBkYXRlcyBhcyBzdWdnZXN0ZWQgb24gYSBibG9nCgkgIExpbmsgZnJvbSBjb252aW5pZW5jZSBhcGkgdG8gdGhlIHVuZGVybHlpbmcgYXBpLgoKMjAxMS0wMi0yOCAxMDowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCB0aW1pbmcgbWV0YWRhdGEKCjIwMTEtMDItMjggMTA6MDU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBmaXggd2hpdGVzcGFjZQoKMjAxMS0wMi0yOCAwOTozOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBhZGQgbWVtb3J5IHVuaXQgdGVzdAoKMjAxMS0wMi0yNyAyMDo1NDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHNpbXBsaWZ5IGEgYml0CgoyMDExLTAyLTI3IDIwOjQyOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBkZWZhdWx0IG1lbW9yeSBtZXRhZGF0YQoJICBBZGQgYSBtZXRhZGF0YSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9ybWFsbCBtYWxsb2NlZCBtZW1vcnkuCgoyMDExLTAyLTI3IDE5OjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzZXBhcmF0ZSBhZGQgYW5kIGdldCBtZXRob2RzCgkgIE1ha2Ugc2VwYXJhdGUgYXBpIGZvciBnZXR0aW5nIGFuZCBhZGRpbmcgbWV0YWRhdGEuIFRoaXMgYWxsb3dzIHVzIHRvIHBhc3MgZXh0cmEKCSAgcGFyYW1ldGVycyB0byB0aGUgaW5pdCBmdW5jdGlvbnMgd2hlbiBjcmVhdGluZyBtZXRhZGF0YSwgd2hpY2ggaXMgbmVlZGVkIGZvcgoJICBzcGVjaWZpYyBBUEkgaW1wbGVtZW50YXRpb25zLgoJICBBZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgbWV0YWRhdGEuCgoyMDExLTAyLTI3IDEyOjIxOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgZG9jcyBhbmQgZGVmcwoKMjAxMS0wMi0yNiAxODoxNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSB1c2VsZXNzIG1ldGhvZAoJICBSZW1vdmUgdGhlIG1ldGhvZCB0byByZXRyaWV2ZSBtZXRhZGF0YSBieSBhcGkuIE9uZSB3aWxsIGFsd2F5cyB1c2UgdGhlCgkgIEdzdE1ldGFJbmZvIHRvIGdldCBtZXRhZGF0YS4KCjIwMTEtMDItMjUgMTY6MzE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgb3duZXJfcHJpdiBub3cgdGhhdCB3ZSBoYXZlIG1ldGFkYXRhCgkgIE5vdyB0aGF0IHdlIGhhdmUgbWV0YWRhdGEgd2UgY2FuIHJlbW92ZSB0aGUgb3duZXJfcHJpdiBmaWVsZC4KCjIwMTEtMDItMjUgMTM6MjM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDItMjUgMTM6MTU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhZGF0YTogUmVuYW1lIHRvIEdzdE1ldGEKCSAgUmVuYW1lIHRvIHRoZSBzaG9ydGVyIEdzdE1ldGEKCSAgQWRkIGRvY3MKCSAgQWRkIGFwaSB0byBnZXQgbWV0YWRhdGEgYnkgQVBJCgoyMDExLTAyLTI1IDEwOjM3OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDEwLTExLTE1IDExOjQ5OjI0ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsIGF0IGJhc2UtYXJ0Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggbWVtb3J5IGNvcnJ1cHRpb24KCjIwMTAtMDQtMDcgMTE6MzQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJICBidWZmZXJtZXRhOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDItMjYgMTM6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSAgdXBkYXRlcwoKMjAwOS0xMi0yNyAyMjowMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkgIG1ldGE6IGltcHJvdmUgdGVzdCBhIGxpdHRsZQoKMjAwOS0xMi0xNyAxMjozNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJtZXRhOiBhZGQgYmVnaW5uaW5ncyBvZiBidWZmZXIgbWV0YWRhdGEKCSAgQWRkIGZpcnN0IGltcGxlbWVudGF0aW9uIG9mIGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuIFdlIHVzZSBhIHNpbXBsZSBsaW5rZWQKCSAgbGlua2VkIG9mIHNsaWNlIGFsbG9jYXRlZCBtZXRhZGF0YSBjaHVua3MuIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbnMgY291bGQgdXNlCgkgIHNvbWV0aGluZyBtb3JlIHBlcmZvcm1hbnQuCgkgIEFkZCBnZXQsIHJlbW92ZSwgaXRlcmF0ZSBtZXRob2RzIHRvIGhhbmRsZSB0aGUgbWV0YWRhdGEuCgoyMDExLTAyLTI1IDEwOjE5OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRlc2lnbjogYWRkIGFwaSB0YWcKCSAgV2Ugd2FudCB0byBmaW5kIG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBBUEkgaXQgaW1wbGVtZW50cyBhbmQgYmFzZWQgb24gdGhlCgkgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wMi0yNCAxNzoxMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogbWFrZSB3aW4zMiBidWlsZGJvdCBoYXBweQoJICBnc3R1cmkuYzo4NTQ6MTY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUgJ2Fic19jbGVhbicKCSAgZ3N0dXJpLmM6Nzg4OjE6IGVycm9yOiAnZ3N0X2ZpbGVfdXRpbHNfY2Fub25pY2FsaXNlX3BhdGgnIGRlZmluZWQgYnV0IG5vdCB1c2VkCgoyMDExLTAyLTI0IDE1OjMyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXNyYywgZmlsZXNpbms6IGZpeCBVUkkgY3JlYXRpb24gcmVncmVzc2lvbiBmb3Igbm9uLWFic29sdXRlIGxvY2F0aW9ucwoJICBQYXNzaW5nIGUuZy4gbG9jYXRpb249Zm9vIHdvdWxkIGxlYWQgdG8gd2FybmluZ3MgYmVjYXVzZSBnX2ZpbGVuYW1lX3RvX3VyaSgpCgkgIHdhbnRzIGFuIGFic29sdXRlIGZpbGUgcGF0aCBhbmQgcmV0dXJucyBOVUxMIG90aGVyd2lzZS4gVXNlIGJyYW5kLW5ldwoJICBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgaW5zdGVhZCwgd2hpY2ggd2lsbCB0cnkgaGFyZGVyIHRvIGNyZWF0ZSBhIHByb3BlcgoJICBVUkkgZm9yIHVzLgoJICBBbHNvIGFkZCB1bml0IHRlc3QuCgoyMDExLTAyLTI0IDE1OjE4OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpOiBhZGQgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIHRoYXQgdGFrZXMgcmVsYXRpdmUgZmlsZW5hbWVzCgkgIEFkZCBmdW5jdGlvbiB0aGF0ICh1bmxpa2UgdGhlIEdMaWIgZXF1aXZhbGVudCkgYWxzbyBhY2NlcHRzIHBhdGhzIHRoYXQKCSAgYXJlbid0IGFic29sdXRlIGFuZCB3aWxsIGNsZWFuIHVwIHJlbGF0aXZlIG1hcmtlcnMgc3VjaCBhcyAuLyBhbmQgLi4vCgkgIGJlZm9yZSBmb3JtaW5nIGEgVVJJLgoJICBGaXhlcyB3YXJuaW5ncyB3aXRoIGUuZy4gZmlsZXNyYyBsb2NhdGlvbj1mb28gISB0eXBlZmluZCBjYXVzZWQgYnkgdGhlCgkgIHJlY2VudCBzd2l0Y2ggdG8gZ19maWxlbmFtZV90b191cmkoKSwgYnV0IGFsc28gYWN0dWFsbHkgY3JlYXRlcyB2YWxpZAoJICBVUklzIGZvciB0aGUgZmlyc3QgdGltZS4KCSAgV2luZG93cyBjb2RlIHBhdGhzIGNvdWxkIG5lZWQgc29tZSBtb3JlIHdvcmssIGUuZy4gd2UgZG9uJ3QgY2xlYW4gdXAKCSAgdGhlIHJlbGF0aXZlIG1hcmtlcnMgdGhlcmUgZm9yIG5vdyAoYmVjYXVzZSBwYXRoIGNvdWxkIGhhdmUgXCBhbmQgLwoJICBhcyBzZXBhcmF0b3JzKS4KCSAgQVBJOiBnc3RfZmlsZW5hbWVfdG9fdXJpKCkKCjIwMTEtMDItMjQgMTY6MjA6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiByZWZpeCB0aGUgdGVzdHMgKG1pc3NpbmcgI2VuZGlmKQoKMjAxMS0wMi0yNCAxNjoxMToxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1ha2VmaWxlLmFtOiBhZGQgbmV3IGFiaSBoZWFkZXJzIHRvIG5vZGlzdF9IRUFERVJTCgoyMDExLTAyLTIxIDExOjI0OjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIGluZGV4IHN1cHBvcnQKCSAgV2hlbiBvcHRpb24gIi1pIiBpcyBnaXZlbiwgc2V0IGFuIGluZGV4IG9iamVjdCBvbiB0aGUgcGlwZWxpbmUgYW5kIGNvbXB1dGUKCSAgc3RhdGlzdGljcyBmb3IgYWxsIGluZGV4IHdyaXRlcnMuIFByaW50IGEgc3VtYXJ5IHdoZW4gc2h1dHRpbmcgZG93biB0aGUKCSAgcGlwZWxpbmUuCgoyMDExLTAyLTI0IDE1OjEyOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrIGRhdGEgZm9yIEFSTSAobGlicykKCjIwMTEtMDItMjQgMTU6MDI6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2sgZGF0YSBmb3IgQVJNCgoyMDExLTAyLTI0IDEzOjU1OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvd25lciBwcml2YXRlIGFzIGludGVybWVkaWF0ZSBzb2x1dGlvbgoJICBBZGQgYW4gb3duZXIgcHJpdmF0ZSBmaWVsZCB3aGVyZSB0aGUgb3duZXIgb2YgYSBidWZmZXIgY2FuIHN0b3JlIHNvbWUgZXh0cmEKCSAgaW5mb3JtYXRpb24uIFdlIGNhbiB1c2UgdGhpcyB0byBpbXBsZW1lbnQgbW9zdCBvZiB0aGUgc3ViY2xhc3NpbmcgdGhhdCBoYXBwZW5zCgkgIG5vdy4gTGF0ZXIgdGhpcyB3aWxsIGJlIHJlbW92ZWQgYW5kIHJlcGxhY2VkIGJ5IGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuCgoyMDExLTAyLTI0IDEwOjI4OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIHBvaXNvbmluZwoKMjAxMS0wMi0yMyAxNjo0ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwcwoJICBVc2UgdGhlIHN0b3JlZCBzaXplIGluIHRoZSBtaW5pb2JqZWN0IHRvIGZyZWUgdGhlIG1pbmlvYmplY3QuCgkgIFJlZmFjdG9yIHNvbWUgaW5pdCBtZXRob2RzLgoKMjAxMS0wMi0yMyAxNTo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlCgoyMDExLTAyLTIzIDEyOjU0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMDItMjMgMTI6NDQ6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB3YXJuIHdoZW4gbWFrZV93cml0YWJsZSByZXN1bHQgaXMgaWdub3JlZAoKMjAxMS0wMi0yMyAxMjowODowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMi0yMyAxMjowMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggdHlwZSByZWdpc3RyYXRpb24KCSAgV2UgbmVlZCB0byBoYXZlIHRoZSB0eXBlcyBvZiB0aGUgbWluaW9iamVjdHMgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZQoJICB0cmFuZm9ybXMuCgoyMDExLTAyLTIzIDEyOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBpbXByb3ZlIGNhcHMgc3RyaW5nIG1hbmFnZW1lbnQKCjIwMTEtMDItMjMgMTI6MDA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjbGVhciBmbGFncyBpbiBpbml0CgoyMDExLTAyLTIzIDEyOjMzOjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogdGVsbCB0aGF0IE9SQ19DT0RFIGNhbiBjb250YWluIGEgbGlzdCBvZiBmbGFncwoKMjAxMS0wMi0yMyAxMDozMTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogZml4IGZsYWdzCgoyMDExLTAyLTIyIDE5OjMwOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGZpeCBjb21waWxhdGlvbiBhZnRlciByZWJhc2UKCjIwMTAtMTEtMDIgMTM6MzE6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgaW1wcm92ZSB0eXBlIHJlZ2lzdHJhdGlvbgoKMjAxMC0xMS0wMiAxMjo1ODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMDktMTItMDcgMjA6MzI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZml4IG1hY3JvcwoKMjAwOS0xMi0wNSAxNToxODowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzZXQgYm94ZWQgdHlwZSBjb3JyZWN0bHkKCjIwMDktMTItMDUgMTQ6MTY6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgbWluaW9iamVjdDogc21hbGwgZml4ZXMKCSAgTWFrZSBkYXRhZmxvdyBoYXBwZW4uCgoyMDA5LTEyLTA0IDIzOjUyOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1pbmlvYmplY3Q6IG1vcmUgYm94ZWQgdHlwZSBmaXhpbmcKCSAgTW9yZSBtaW5pb2JqZWN0IGZpeGluZywgbGVha3MgaG9ycmlibHkgc29tZXdoZXJlLi4KCjIwMDktMTItMDQgMjI6MzI6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBtaW5pb2JqZWN0OiBtYWtlIHF1ZXJpZXMgYSBib3hlZCB0eXBlCgkgIE1vcmUgbWluaW9uamVjdCBzdHVmZi4KCjIwMDktMTItMDMgMjA6NDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlczogbWFrZSBtZXNzYWdlIGEgc2ltcGxlIGJveGVkIHR5cGUKCjIwMDktMTItMDIgMjE6MjE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogd29yayBvbiBtYWtpbmcgY2FwcyBhIGJveGVkIHR5cGUKCSAgTW9yZSB3b3JrIG9uIG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGFsbG9jYXRlZCBzdHJ1Y3QuCgoyMDA5LTExLTI5IDAwOjIxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWluaW9iamVjdDogbWFrZSBtaW5pb2JqZWN0IGEgYm94ZWQgdHlwZQoJICBGaXJzdCBhdHRlbXB0IGF0IG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGJveGVkIHR5cGUuCgoyMDExLTAyLTIyIDE5OjA5OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBsaWJzOiBjbGVhbnVwcyBmb3IgMC4xMQoJICBSZW1vdmUgZGVwcmVjYXRlZCBzdHVmZiwgZml4IHBhZGRpbmcsIHJlYXJyYW5nZSBtZXRob2RzLgoKMjAxMS0wMi0yMiAxNjowNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgY2xlYW51cHMKCSAgRml4IHBhZGRpbmcsIHJlbW92ZSBkZXByZWNhdGVkIHN5bWJvbHMuCgoyMDExLTAyLTIyIDE1OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMi0yMiAxNDoxMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZ3N0L2dzdGVsZW1lbnQuYwoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbQoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZgoKMjAxMS0wMi0xNCAxODowNTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEJlIHNtYXJ0ZXIgd2l0aCBwYWQgYWxsb2NzCgkgIEF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHBhZC1hbGxvY3Mgd2hlbiBvbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJZiBtdWx0aXBsZSBiYXNldHJhbnNmb3JtIGVsZW1lbnRzIGFyZSBvbiBhIHBpcGVsaW5lLCB0aGV5CgkgIHdvdWxkIGRvIGEgcGFkLWFsbG9jIGZvciBlYWNoIHJlY2VpdmVkIGJ1ZmZlciwgZWFjaCBlbGVtZW50CgkgIHdvdWxkIGRvIHRoaXMsIHNvIHdlIHdvdWxkIGhhdmUgbG90cyBvZiBwYWQgYWxsb2NzIG9uIHRoZQoJICBwaXBlbGluZSBmb3IgYSBzaW5nbGUgYnVmZmVyIGJlaW5nIHB1c2hlZCB0aHJvdWdoIGl0LgoJICBUaGlzIHBhdGNoIGF0dGVtcHRzIHRvIHJlZHVjZSB0aGlzIGFtb3VudCBieSBhdm9pZGluZwoJICBkb2luZyBwYWQtYWxsb2NzIGlmIHRoZSBlbGVtZW50IGhhcyBhbHJlYWR5IGRvbmUgaXQKCSAgYWZ0ZXIgdGhlIGxhc3QgcHVzaGVkIGJ1ZmZlci4gU28gaXQgd2lsbCBvbmx5IGJlIGFsbG93ZWQKCSAgdG8gZG8gYSBuZXcgcGFkLWFsbG9jIGFmdGVyIGl0IGhhcyBwdXNoZWQgYSBidWZmZXIsIHNvIHdlIGdldAoJICAxeDEgcGFkLWFsbG9jIGFuZCBidWZmZXIgcmF0aW8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjM3MwoKMjAxMS0wMi0yMSAxMzozOTozOCArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBnc3RfaW5kZXhfbmV3KCkgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyODY5CgoyMDExLTAyLTIxIDEyOjQ0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHByaW50IG5ldyBNRURJQTQgZmxhZyBhcyB3ZWxsCgoyMDExLTAxLTAzIDExOjM3OjA1ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3QsIGJ1ZmZlcjogc3RlYWwgbWluaW9iamVjdCBmbGFnIGZvciB1c2UgYXMgTUVESUE0IGJ1ZmZlciBmbGFnCgkgIFRoaXMgd2FzIHJlcXVpcmVkIHRvIGFkZCBhIG5ldyBNRURJQTQgYnVmZmVyIGZsYWcgZm9yIGluZGljYXRpbmcKCSAgcHJvZ3Jlc3NpdmUvbWl4ZWQgdGVsZWNpbmUgdmlkZW8gYnVmZmVycy4gVGhlcmUgaXMgbm8gc3BhY2UgZm9yCgkgIGFkZGl0aW9uYWwgZmxhZ3MgaW4gR3N0QnVmZmVyLCBzbyBzdGVhbCBvbmUgZnJvbSBHc3RNaW5pT2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNjcxCgoyMDExLTAyLTIwIDE2OjExOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBhdG9taWMgcXVldWUgZG9jcwoKMjAxMS0wMi0yMSAxMTo1NTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZCIKCSAgVGhpcyBjb21taXQgY2hhbmdlcyB0aGUgcmVxdWVzdCBwYWQgYmVoYXZpb3VyIGZvciBwbHVnaW5zIGFuZCBhcHBsaWNhdGlvbnMuCgkgIFJlb3BlbnMgQnVnICM0MDI1NjIKCSAgVGhlIHByb3BlciBmaXggZm9yIHRoYXQgYnVnIGlzIHRvIGtlZXAgdHJhY2sgb2YgY3JlYXRlZCByZXF1ZXN0IHBhZHMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYTVlNDRmZmZmYWE2ZDdhOGQ3YWY4ZGNiNzdlMzc5OTA5OTYyNTNhNS4KCjIwMTEtMDItMjEgMTA6MDM6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogYWRkIEZJWE1FLTAuMTE6IGNvbW1lbnRzCgoyMDExLTAyLTE1IDEwOjU3OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogaW1wcm92ZSBpbmRleCBkb2NzCgoyMDExLTAyLTE4IDE3OjA5OjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogc3BlbGwtY2hlY2sKCjIwMTEtMDItMTUgMTk6MTU6MTYgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcHJpbnQgYnVmZmVyIGZsYWdzCgoyMDEwLTEyLTA0IDE4OjUzOjU1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZAoJICBGaXhlcyAjNjM2MDExIGFuZCAjNDAyNTYyLgoKMjAxMS0wMi0xNyAxNDo1MDo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBmaXggY3JlYXRpb24gb2Ygd3JpdGVyIGlkIGZvciB1bnBhcmVudGVkIHBhZHMKCSAgQWxzbyBkbyBzb21lIGNsZWFudXAgaW4gdGhlIGltcGwuCgoyMDExLTAyLTE3IDEwOjM0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCAoZGUpc2VyaWFsaXNhdGlvbiBmdW5jdGlvbiBmb3IgdWNoYXIKCSAgLi4gc2luY2Ugd2Ugc2FkbHkgaGF2ZSBhIHBsdWdpbiBpbiAtZ29vZCB0aGF0IGhhcyBhIHVjaGFyIHByb3BlcnR5CgkgIChjbW1sZW5jKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNTIyCgoyMDExLTAyLTE2IDE5OjU0OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggaW5jbHVkZSBvcmRlciBhdG9taWNxdWV1ZTogZml4IGluY2x1ZGUgb3JkZXIjIFBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmcKCjIwMTAtMTAtMjggMTM6Mjc6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIHRoZSBidXMgYWxtb3N0IGxvY2tmcmVlCgkgIFVzZSBuZXcgR3N0UG9sbCBmdW5jdGlvbmFsaXR5IHRvIHdha2V1cCB0aGUgbWFpbmxvb3AuCgkgIFVzZSBhbiBhdG9taWMgcXVldWUgb24gdGhlIHdyaXRlciBzaWRlIHRvIHBvc3QgdGhlIG1lc3NhZ2VzLgoJICBUaGUgcmVhZGVyIHNpZGUgaXQgcHJvdGVjdGVkIHdpdGggdGhlIGxvY2sgc3RpbGwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IG11bHRpcGxlCgkgIGNvbmN1cnJlbnQgcmVhZGVycy4KCjIwMTEtMDItMTYgMTc6MjE6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMgZmlsZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMDItMTYgMTc6MTQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IHVzZSBjb3JyZWN0IGFycmF5IHNpemVzCgoyMDExLTAyLTE2IDE2OjIxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggZG9jcyBzb21lIG1vcmUKCjIwMTEtMDItMTYgMTY6MTk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pY3F1ZXVlOiBhZGQgcmVmY291bnRpbmcgYW5kIGRvY3MKCjIwMTEtMDItMTYgMTI6NDg6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IG1ha2Ugc3VyZSBhIG1pbiBpbml0aWFsX3NpemUgaXMgdXNlZAoKMjAxMC0xMC0yOCAxNjowMjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWNxdWV1ZTogYWRkIGFuIGF0b21pYyBxdWV1ZQoJICBBZGQgYW4gYXRvbWljIHF1ZXVlLiBUaGUgcXVldWUgY2FuIGJlIHVzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIHNpbXVsdGFuZW91c2x5CgkgIGFuZCB3aXRob3V0IHRha2luZyBhbnkgbG9ja3Mgb3IgZG9pbmcgYW55IGJsb2NraW5nIG9wZXJhdGlvbnMuIFRoaXMgbWFrZXMgaXQKCSAgaGlnaGx5IHNjYWxhYmxlIGZvciB0aGluZ3MgbGlrZSB0aGUgYnVzLCBidWZmZXJwb29scyBhbmQgb2JqZWN0IHJlY3ljbGluZy4KCjIwMTEtMDItMTYgMTc6MTQ6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGNoZWNrOiBmaXggYSBsZWFrIGluIHRoZSBidXMgdW5pdCB0ZXN0CgoyMDExLTAyLTE2IDE3OjI4OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBkZWluaXQ6IGFkZCBwcm9ncmVzcyB0eXBlIGNsYXNzIHVucmVmCgoyMDExLTAyLTE2IDE1OjEzOjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHRlbGwgYWxzbyB3aGF0IHBhZCBhIHBhZCBpcyBhbHJlYWR5IGxpbmtlZCBhZ2FpbnN0CgoyMDExLTAyLTE1IDIyOjU2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXtzaW5rLHNyY306IENoZWNrIGlmIG5vbi1VUkkgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCwgYnV0IG9ubHkgZm9yIHRoZSBVUkkgbm90IHRoZSBsb2NhdGlvbiBwcm9wZXJ0eQoKMjAxMS0wMi0xNSAyMjo0OToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGV7c3JjLHNpbmt9OiBGaXggdW5pdCB0ZXN0cwoJICBmaWxlc2luayBhbmQgZmlsZXNyYyBzaG91bGQgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgVVJJIGFzIHBhc3NlZAoJICBhbmQgbXVzdCBub3QgZXNjYXBlIHBhdGggc2VwYXJhdG9ycy4KCjIwMTEtMDItMTUgMjI6NDg6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IGVzY2FwaW5nIG9mIFVSSXMKCSAgRXNwZWNpYWxseSBkb24ndCBlc2NhcGUgLyBhcyBwYXRoIHNlcGFyYXRvcnMKCjIwMTEtMDItMTUgMjI6MDU6MzEgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogRml4IGVzY2FwaW5nIG9mIGZpbGUgdXJpcwoJICBGaXhlcyBidWcgIzY0MjM5My4KCjIwMTEtMDItMTUgMTg6MjY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IGFkZCB0aW1lb3V0IHRvIHByb2dyZXNzIG1lc3NhZ2UKCSAgQWRkIGEgdGltZW91dCBtZW1iZXIgdG8gdGhlIHByb2dyZXNzIG1lc3NhZ2VzIHRvIGxldCB0aGUgYXBwbGljYXRpb24ga25vdyBhYm91dAoJICB0aGUgdGltZW91dCBzbyB0aGF0IGl0IGNhbiBkbyBzb21lIGd1aSB0aGluZ3Mgd2l0aCBpdC4KCjIwMTEtMDItMTUgMTg6MTQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtZW50aW9uIHRpbWVvdXQgaW4gdGhlIHByb2dyZXNzIG1lc3NhZ2UKCjIwMTEtMDItMTUgMTc6MjA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtYWtlIHByb2dyZXNzIGRyYWZ0IG9mZmljaWFsCgoyMDExLTAxLTA2IDE4OjU1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IHJlbmFtZSBjYXRlZ29yeSB0byBjb2RlCgoyMDExLTAxLTA2IDE1OjU4OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogYWRkIG5ldyBtZXNzYWdlIHF1YXJrCgoyMDExLTAxLTA2IDE1OjU4OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBzdGFuZGFyZCBjYXRlZ29yaWVzCgoyMDExLTAxLTA1IDEzOjUzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZ2lzdGVyIG5ldyB0eXBlCgoyMDExLTAxLTA1IDEzOjQ4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgY2hlY2s6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIHVuaXQgdGVzdAoKMjAxMS0wMS0wNSAxMzo0MTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBwcm9ncmVzcyBtZXNzYWdlIGZ1bmN0aW9ucwoKMjAxMS0wMS0wNSAxMzozOToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogdXBkYXRlIHByb2dyZXNzIGZpZWxkCgkgIEF2b2lkIG5hbWluZyB0aGUgcHJvZ3Jlc3MgZnJlZSB0ZXh0IGZpZWxkICdtZXNzYWdlJyBhcyBpdCBjb25mbGljdHMgd2l0aCB0aGUKCSAgbWVzc2FnZSBpdHNlbGYuCgoyMDExLTAyLTE1IDE0OjQyOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiBmaWxlIHVwc3RyZWFtIGluIHB1bGwgbW9kZQoJICAuLi4gd2hpY2ggY291bGQgbGVhZCB0byBhIHByZW1hdHVyZSBlb3MgYmVpbmcgcmVwb3J0ZWQgZG93bnN0cmVhbSwKCSAgcmF0aGVyIHRoYW4gYSBzdWNjZXNzZnVsIHBhcnRpYWwgcmVhZCB3aGljaCB3b3VsZCByZXN1bHQgd2hlbgoJICBwZXJmb3JtZWQgZGlyZWN0bHkgb24gZS5nLiBiYXNlc3JjLgoKMjAxMS0wMS0yNiAxNjo0NjoyNSArMDgwMCAgQ2hlbiBSdWkgPHJ1aS5jaGVuQHRpZXRvLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmV0dXJuIHJlYWwgZXJyb3IgaW4gY29tcGF0aWJsZSBsaW5rIGNoZWNrCgkgIFdlIG5lZWQgdG8gZW5zdXJlIHdlIGNhbGwgZ3N0X3BhZF9jaGVja19saW5rKCkgd2l0aCB0aGUgdHdvIHBhZHMgaW4gdGhlIGNvcnJlY3QKCSAgb3JkZXIuIFRoZSBvcmRlciBkZXBlbmRzIG9uIHdoZXRlciB3ZSBpdGVyYXRlIHNyYyBvciBzaW5rIHBhZHMuCgkgIFNpZ25lZC1vZmYtYnk6IENoZW4gUnVpIDxydWkuY2hlbkB0aWV0by5jb20+CgoyMDExLTAyLTE0IDE3OjMxOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIHNpbmtwYWQgZm9yIGZsdXNoaW5nCgkgIENoZWNrIHRoZSBzaW5rcGFkIGZvciB0aGUgZmx1c2hpbmcgc3RhdGUgYmVmb3JlIGNhbGxpbmcgdGhlIGNoYWluZnVuY3Rpb24gb24gdGhlCgkgIHBhZC4gV2UgZG8gdGhpcyBieSBjaGVja2luZyB0aGUgY2FjaGUgKHdoaWNoIGlzIGFsc28gY2xlYXJlZCBvbiB0aGUgc3JjcGFkIHdoZW4KCSAgdGhlIHNpbmsgaXMgc2V0IHRvIGZsdXNoaW5nKS4KCSAgRml4ZXMgIzY0MTkyOAoKMjAxMS0wMi0xMSAxNzo0NzoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQ2hlY2sgZm9yIHBhZCBhbGxvYyBjYXBzIHdoZW4gc3VnZ2VzdGlvbiBpcyBub3QgZml4ZWQKCSAgSWYgYWZ0ZXIgY29tcHV0aW5nIHRoZSBzdWdnZXN0aW9uIHdpdGggZG93bnN0cmVhbSBjYXBzIHdlIHN0aWxsIGhhdmUKCSAgYSBub24tZml4ZWQgc3VnZ2VzdGlvbiBjYXBzIHRyeSB0byBpbnRlcnNlY3Qgd2l0aCB0aGUgaW5wdXQgY2FwcwoJICBvZiB0aGUgcGFkIGFsbG9jIHRvIGF2b2lkIHVzZWxlc3MgcmVuZWdvdGlhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDIxMzAKCjIwMTEtMDItMTQgMTQ6MDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXByb3ZlIGR1cmF0aW9uIGNhbGN1bGF0aW9uCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGF2ZXJhZ2UgZGlzdGFuY2UgYmV0d2VlbiBpbmNvbW1pbmcgdGltZXN0YW1wcyBhbmQKCSAgdXNlIHRoYXQgdG8gZXN0aW1hdGUgdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gYnVmZmVycyBoYXZlIG5vIGR1cmF0aW9uIHNldCBvbgoJICB0aGVtLgoKMjAxMS0wMi0xNCAxMzo0OToxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgcmF0ZSBjYWxjdWxhdGlvbgoJICBXaGVuIHRoZXJlIGlzIG5vIGR1cmF0aW9uIG9uIGlucHV0IGJ1ZmZlcnMsIGFzc3VtZSB0aGUgcmF0ZSBpcyAxLjAKCSAgaW5zdGVhZCBvZiAodGhlIHVuZGVmaW5lZCkgMC4wLgoKMjAxMS0wMi0xNCAxMzo0NzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgYXZlcmFnZSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoJICBJbXByb3ZlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgZHVyYXRpb24uIFdoZW4gd2UgaGF2ZSBubyBpbnB1dCBkdXJhdGlvbiBzZXQgb24KCSAgdGhlIGlucHV0IGJ1ZmZlcnMgc3RvcCBpcyBzZXQgdG8gc3RhcnQgYW5kIHRoZW4gd2UgZW5kIHVwIHVzaW5nIGEgMCBkdXJhdGlvbiBpbgoJICB0aGUgYXZlcmFnZSBjYWxjdWxhdGlvbi4KCjIwMTEtMDItMTQgMTI6MjE6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW5hbWUgdmFyaWFibGUKCSAgUmVuYW1lIGFuIGludGVybmFsIHZhcmlhYmxlIHRvIGJldHRlciByZWZsYWN0IHdoYXQgaXRzIHZhbHVlIG1lYW5zLgoKMjAxMS0wMi0xNCAxNTozOToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiB0cmltIHdoaXRlc3BhY2VzCgoyMDExLTAyLTE0IDE1OjM3OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IGZpeCB0eXBvIGluIHBhZC1saXN0IGxlbmd0aCBjb21wYXJpc2lvbgoJICBJdCB3YXMgY29tcGFyaW5nIHRoZSBsZW5ndGggd2l0aCBpdHNlbGYuCgkgIEZpeGVzICM2NDIwNzEuCgoyMDExLTAyLTE0IDEyOjUyOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY5NGQ3MzkgdG8gMWRlN2Y2YQoKMjAxMS0wMi0xMyAyMjo1NjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByZXR0eS1wcmludCBkYXRldGltZSB0YWdzCgoyMDExLTAyLTEwIDIzOjMwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5kb2FwOgoJICBnc3RyZWFtZXIuZG9hcDogdXBkYXRlIG1haWxpbmcgbGlzdCBob3N0CgoyMDExLTAyLTEwIDE0OjUzOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHNvbWUgY29tbWVudHMKCjIwMTEtMDItMTAgMTQ6NTA6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBrZWVwIHRyYWNrIG9mIGVhcmxpZXN0IFFvUyB0aW1lc3RhbXAKCSAgS2VlcCB0cmFjayBvZiB0aGUgZWFybGllc3QgYWxsb3dlZCB0aW1lc3RhbXAgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QKCSAgUW9TIHJlcG9ydCBhbmQgZHJvcCBidWZmZXJzIGJlZm9yZSB0aGF0IHRpbWUuIEFjdGl2YXRlIHRoaXMgZmlsdGVyCgkgIHdoZW4gdGhyb3R0bGluZyBpcyBlbmFibGVkLiBXZSBjb3VsZCBsYXRlciBhbHNvIGFjdGl2YXRlIHRoaXMgaW4gdGhlCgkgIG90aGVyIFFvUyBjYXNlcy4KCSAgU2VlICM2Mzg4OTEKCjIwMTEtMDItMTAgMTQ6MTc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgbmV3IFFvUyB0eXBlCgkgIFVzZSB0aGUgbmV3IFFvUyB0eXBlIGFuZCBzZW5kIHRocm90dGxpbmcgUW9TIG1lc3NhZ2VzLgoKMjAxMS0wMi0xMCAxMzo0MjowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzaW5rOiBhZGQgcHJvcGVydHkgdG8gY29uZmlndXJlIGEgdGhyb3R0bGUtdGltZQoJICBBZGQgYSBwcm9wZXJ0eSB0byBjb25maWd1cmUgdGhlIHRocm90dGxlIHRpbWUgb24gYSBzaW5rLiBUaGUKCSAgcHJvcGVydHkgaXMgbm90IHlldCB1c2VkLgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgUW9TIGV2ZW50IHR5cGUKCSAgQWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBRb1MgZXZlbnQgdG8gc3BlY2lmeSB0aGUgUW9TIGV2ZW50IHR5cGUuCgkgIFVwZGF0ZSBkb2NzIGFuZCBhZGQgdW5pdCB0ZXN0LgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxMjowMDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZml4IHBhcmFtZXRlciBkb2NzCgoyMDExLTAyLTEwIDEwOjQ5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkZXNpZ246IHR3ZWFrIGRvY3MgYSBsaXR0bGUKCjIwMTEtMDItMTAgMTA6MzQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIFFvUyBkb2N1bWVudAoJICBBZGQgbmV3IFFvUyB0eXBlcyBhbmQgdGFsayBhYm91dCB0aGUgbmV3IHRocm90dGxlIFFvUyBtZXNzYWdlLgoKMjAxMS0wMi0xMCAxMzo0NjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MgaW4gdGhlIGJ1ZmZlcnBvb2wgZHJhZnQKCjIwMTEtMDItMTAgMTA6MTk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50czogZml4IGctaSBhbm5vdGF0aW9uIGZvciBnc3RfZXZlbnRfbmV3X3RhZygpIHdoaWNoIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgdGFnIGxpc3QKCjIwMTEtMDItMTAgMDA6MDI6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiB0aGF0IGl0J3MgbmVjZXNzYXJ5IHRvIHNldCB0aGUgc3RhdGUgb2YgZWxlbWVudHMgYWRkZWQgdG8gYW4gYWxyZWFkeS1ydW5uaW5nIHBpcGVsaW5lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE2MzEKCjIwMTEtMDItMDkgMTY6MjI6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXJwb29sLnR4dDoKCSAgZGVzaWduOiBhZGQgZHJhZnQgZm9yIGZpcnN0IGlkZWFzIGZvciBhIGJ1ZmZlcnBvb2wgZmVhdHVyZQoJICBBZGQgYSBmaXJzdCBkcmFmdCB3aXRoIHNvbWUgaWRlYXMgYW5kIHVzZSBjYXNlcyBmb3IgdGhlIGltcGxlbWVudGF0aW9uCgkgIGZvciBidWZmZXJwb29scy4gVGhlIHB1cnBvc2UgaXMgdG8gYmUgYWJsZSB0byBtYWtlIGVsZW1lbnRzIG5lZ290aWF0ZQoJICB0aGVpciBidWZmZXIgcmVxdWlyZW1lbnRzIGFzIHdlbGwgYXMgcHJvdmlkZSBhbiBpbmZyYXN0cnVjdHVyZSB0bwoJICBwcmVhbGxvY2F0ZSBhbmQgcmV1c2UgYnVmZmVycyBpbiBhbiBlYXN5IHdheS4KCjIwMTEtMDItMDkgMTU6MjM6MTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IGNsYXJpZnkgdGhlIE5PTUlOQUxfQklUUkFURSBkb2NzCgkgIFRlbGwgdGhhdCBpdHMgYSB0YXJnZXQgYml0cmF0ZSBhbmQgYWN0dWFsIHZhbHVlcyBtaWdodCBiZSBkaWZmZXJlbnQuCgoyMDExLTAyLTAzIDE1OjE3OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IHRyaWdnZXIgcmVidWlsZCBzZXR1cCBpbiBfbmV3CgkgIEZhaWxpbmcgdG8gZG8gc28gaW4gdGhlIFdpbmRvd3MgY2FzZSAoaW1wbGljaXRseSB0cmlnZ2VyZWQgb3RoZXJ3aXNlKQoJICB3b3VsZCBoYXZlIGEgc3Vic2VxdWVudCBfd2FpdCByZXR1cm4gaW1tZWRpYXRlbHkgbGVhZGluZyB0byBoaWdoIENQVQoJICB1c2FnZSB0aW1lb3V0IGxvb3BzLgoJICBGaXhlcyAjNjQwNjc1LgoKMjAxMS0wMi0wMyAxMDo1MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtYWtlIGFkZGluZy9yZW1vdmluZyBvZiBnc3RfZGVidWdfbG9nX2RlZmF1bHQoKSB3b3JrIHByb3Blcmx5CgkgIE1ha2UgYWRkaW5nL3JlbW92aW5nIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIHdvcmsgcmVsaWFibHkgaW4gYWxsCgkgIGNpcmN1bXN0YW5jZXMuIFRoZSBwcm9ibGVtIHdhcyB0aGF0IGRlcGVuZGluZyBvbiBwbGF0Zm9ybSBhbmQgbGlua2VyCgkgIGZsYWdzIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBtaWdodCByZXNvbHZlIHRvIGRpZmZlcmVudCBhZGRyZXNzZXMsCgkgIHdoaWNoIG1hZGUgaXQgaW1wb3NzaWJsZSB0byByZW1vdmUgdGhlIGRlZmF1bHQgbG9nIGZ1bmN0aW9uIGFkZGVkCgkgIGluIGdzdF9pbml0KCkgZnJvbSBhcHBsaWNhdGlvbiBjb2RlIChiZWNhdXNlIHRoZSBwb2ludGVyIHZhbHVlcwoJICBkaWRuJ3QgbWF0Y2gpLiBUaGUgbmV3IGFwcHJvYWNoIHNob3VsZCBrZWVwIHRoaW5ncyBzaW1wbGUgYnkgcGFzc2luZwoJICBOVUxMIGZvciB0aGUgZGVmYXVsdCBmdW5jdGlvbiwgd2hpY2ggdGhlIGNvZGUgaW4gbGliZ3N0cmVhbWVyIGNhbgoJICB0aGVuIGhhbmRsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzcxCgoyMDExLTAyLTAzIDEwOjI4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIFJldmVydCAiaW5mbzogdXNlIHRoZSBwdWJsaWNseSB2aXNpYmxlIGFkZHJlc3MgdG8gZml4IHRoZSB0ZXN0cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBlYjU2Njg3YTZkZmQyMDc1MDdhNGNhMDAwZWFlNTNmOTNiNWUzM2VhLgoJICBXaGlsZSB0aGlzIGNvbW1pdCBtYXkgaGF2ZSBmaXhlZCBhIHByb2JsZW0gb24gb25lIG9mIHRoZSBidWlsZCBib3RzLAoJICBpdCBkaWRuJ3QgYWN0dWFsbHkgZml4IHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0ZWQgZm9yIHdpbjMyLgoJICBBbHNvLCBpdCBjYXVzZXMgb3RoZXIgcHJvYmxlbXMsIHN1Y2ggYXMgdGhlIGxvb2t1cCBmYWlsaW5nIHdoZW4KCSAgY2FsbGVkIGZyb20gQysrIGNvZGUgKGdzdC1waG9ub24sIGFtYXJvaykuCgkgIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQgZGlmZmVyZW50bHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3NzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTM5NgoKMjAxMS0wMi0wMiAxNTozNTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHByb3Blcmx5IGlkZW50aXR5IGRlcXVldWVkIGV2ZW50IGFzIHN1Y2gKCSAgLi4uIHdoaWNoIGF2b2lkcyB0ZXJtaW5hdGluZyB3aXRoIEVSUk9SIHJhdGhlciB0aGFuIFVORVhQRUNURUQuCgoyMDExLTAyLTAyIDAyOjA3OjU4ICswMDAwICBQZXRlciBDb2xsaW5nYm91cm5lIDxwZXRlckBwY2MubWUudWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1c2UgJEdTVF9QUkVGSVggdmFyaWFibGUKCSAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gY2hhbmdlIHRoZSBwcmVmaXggYnkgZWRpdGluZyB0aGUgc2NyaXB0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjEyCgoyMDEwLTA4LTE5IDIyOjQzOjA3ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBub2tpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgYSBuZXcgImVuY29kZWQtYnkiIHRhZwoJICBVc2VjYXNlOiBJRDN2MiBURU5DICgiRW5jb2RlZCBieSIpIGZyYW1lLgoJICBBUEk6IEdTVF9UQUdfRU5DT0RFRF9CWQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3MjY4CgoyMDExLTAxLTI5IDE4OjAyOjExICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBuZXQ6IHVzZSBzb2NrbGVuX3Qgd2hlcmUgYXBwcm9wcmlhdGUgcmF0aGVyIHRoYW4gc3BlY2lmaWMgdHlwZQoJICBJbiBwYXJ0aWN1bGFyLCBmaXhlcyBDeWd3aW4gYnVpbGQgd2hlcmUgc29ja2xlbl90IGlzIGRlZmluZWQgYXMgaW50CgkgIGluIGxpbmUgd2l0aCBuYXRpdmUgd2luMzIgYXBpIGRlZmluaXRpb24uCgoyMDExLTAxLTMxIDE1OjU4OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGhvbm91ciBhbnkgcGVyLXRocmVhZCBkZWZhdWx0IG1haW4gY29udGV4dCBzZXQgdmlhIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpCgkgIE1ha2VzIGdzdF9idXNfYWRkX3dhdGNoKCksIGdzdF9idXNfYWRkX3dhdGNoX2Z1bGwoKSwgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKCksCgkgIGFuZCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCgpIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhdXRvbWF0aWNhbGx5IHBpY2sgdXAKCSAgYW55IG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgc2V0IGZvciB0aGUgY3VycmVudCB0aHJlYWQgdmlhCgkgIGdfbWFpbl90aHJlYWRfcHVzaF90aHJlYWRfZGVmYXVsdCgpLgoKMjAxMS0wMS0yOCAxNTozNjozMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogT25seSBzZXQgZGlzY29udCBvbiB0aGUgZmlyc3QgYnVmZmVyIGFmdGVyIGRyb3BzCgkgIFJlc2V0IHRoZSBkaXNjb250IG1lbWJlciBhZnRlciBzZXR0aW5nIGRpc2NvbnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBhZnRlcgoJICBkcm9wcGluZy4KCjIwMTEtMDEtMjggMTk6MDg6MDggKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIEdzdEVsZW1lbnQ6IEZpeCB3YXJuaW5nIHdpdGggR0NDIDQuNgoJICBnc3RlbGVtZW50LmM6IEluIGZ1bmN0aW9uIOKAmGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZOKAmToKCSAgZ3N0ZWxlbWVudC5jOjEwNTI6MTg6IGVycm9yOiB2YXJpYWJsZSDigJh0bXDigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDg1MAoKMjAxMS0wMS0yNyAwOToyODowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBwcmludCB1bnNldCBidWZmZXIgdGltZXN0YW1wcyBvciBkdXJhdGlvbnMgYXMgJ25vbmUnCgkgIExpa2UgZmFrZXNpbmsgYW5kIGZha2VzcmMgZG8uCgoyMDExLTAxLTEyIDE2OjAzOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgdGFrZSBvYmplY3QgbG9jayBmb3IgcmVhZGluZyB0aGUgZm91bmQgY2FwcwoJICBPbmNlIHdlIHN3aXRjaCB0byBub3JtYWwgbW9kZSwgd2UncmUgbm90IHR5cGVmaW5kaW5nIGFueW1vcmUgYW5kIHRodXMgdGhlIGNhcHMKCSAgd2lsbCBub3QgY2hhbmdlLiBUaGVyZWZvcmUgY2FuIGF2b2lkIHRoZSBvYmplY3QgbG9jayBpbiB0aGUgZGF0YS1mbG93IHBhdGguCgkgIFRoZSBsb2NraW5nIHdhcyBhZGRlZCBpbiBvcmRlciB0byBmaXggYnVnICM2MDg4NzcuCgoyMDExLTAxLTI1IDA5OjM5OjQ1ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL29tZWdhL1RPRE8tMC4xLjA6CgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzL2NhcHR1cmluZzoKCSogZG9jcy9yYW5kb20vd3RheS9ldmVudHM6CgkqIGRvY3MvcmFuZG9tL3d0YXkvZXZlbnRzMzoKCSogZG9jcy9zbGlkZXMvb3V0bGluZToKCSAgZG9jczogZml4IGEgZmV3IG1vcmUgdHlwb3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDUwMgoKMjAxMS0wMS0yNSAxODo0ODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBkb2NzOiBmbGVzaCBvdXQgdHlwZWZpbmRlbGVtZW50IGRvY3Mgc29tZSBtb3JlCgkgIE1lbnRpb24gdGhhdCBoYXZlLXR5cGUgc2lnbmFsIG1heSBiZSBlbWl0dGVkIGZyb20gc3RyZWFtaW5nCgkgIHRocmVhZCBvciBhcHBsaWNhdGlvbiB0aHJlYWQsIGFuZCBmaXggYSB0eXBvLgoKMjAxMS0wMS0xMiAxNjowMzo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNvZGUgYW5kIGNvbW1lbnQgY2xlYW51cHMKCSAgTWFrZSBjb2RlIHR3byBwbGFjZXMgb2YgdGhlIGNvZGUgdGhlIHB1c2hlcyB0aGUgYnVmZmVyIHN0b3JlIG1vcmUgc2ltaWxhci4gTW9yZQoJICBjb21tZW50cyBhbmQgZGVidWcgbG9nZ2luZy4KCjIwMTEtMDEtMTIgMTM6MDU6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogZW5zdXJlIG1lc3NhZ2VzIGFyZSBcMCB0ZXJtaW5hdGVkCgoyMDExLTAxLTEyIDEyOjU4OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogaGFuZGxlIGludmFsaWQgbmV0d29yayBhZGRyZXNzZXMgZWFybGllcgoJICBIYW5kbGUgaW5ldF9hdG9uKCkgcmV0dXJuIGNvZGUuCgoyMDExLTAxLTEyIDEyOjQ0OjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY2hlY2tzOiBhZGQgYSBjb21tZW50IHRvIGluZGljYXRlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBsZWF2ZSBvdXQgdGhlICdicmVhaycKCjIwMTEtMDEtMTIgMTI6NDM6MDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIGRlYWQgY29kZQoJICBUaGUgR0Vycm9yIGlzIG9ubHkgdXNlZCBmb3IgdGhlIG1tYXAgb3BlcmF0aW9ucy4gSWYgd2UgaGF2ZSBhbiBlcnJvciB3ZSBoYW5kbGUKCSAgYW5kIGNsZWFuIGl0IHRoZXJlIGFscmVhZHkuCgoyMDExLTAxLTEyIDA5OjMzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZG9jczogc21hbGwgY29udHJvbGxlciBhcGkgZG9jcyBpbXByb3ZlbWVudAoKMjAxMS0wMS0xMSAxNTowOTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNhbm9uaWNhbGl6ZSBzaWduYWwgbmFtZQoKMjAxMS0wMS0xMSAxNTowOTozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZG9jczogbWVudGlvbiBoYXZlLXR5cGUgc2lnbmFsIGluIHRoZSBkb2NzLgoKMjAxMS0wMS0yNSAwOToxNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IG1pbm9yIGdzdC1sYXVuY2ggbWFuIHBhZ2UgZml4CgkgIFRyYW5zbWl0dGVyL3JlY2VpdmVyIHBpcGVsaW5lcyB3ZXJlIG1pc2xhYmVsbGVkLiBTcG90dGVkIGJ5IE1hamluLgoKMjAxMS0wMS0yNSAxNjowOToxOCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlIHRlc3Q6IFJlbW92ZSB3b3JrYXJvdW5kIGZvciBwYWRfdGFzayBoYW5ncwoJICBSZW1vdmUgY29kZSB0aGF0IGlzbid0IG5lZWRlZCBhbnkgbG9uZ2VyLCB3aGljaCBzZXRzIHRoZSBtdWx0aXF1ZXVlCgkgIHRvIFBMQVlJTkcgYW5kIGJhY2sgYmVmb3JlIHVucmVmZmluZywgaW4gb3JkZXIgdG8gYXZvaWQgYSBkZWFkbG9jawoJICB3YWl0aW5nIGZvciBnc3RwYWQgdGFza3MgdGhhdCB3ZXJlIG5ldmVyIHN0YXJ0ZWQuIFRoZSBwcm9ibGVtIHNlZW1zCgkgIHRvIGhhdmUgYmVlbiBmaXhlZCBsb25nIGFnby4KCjIwMTEtMDEtMjUgMDA6MjA6MzQgKzA4MDAgIENhaSBZdWFucWluZyA8Y2tqYWNrZXRAZ21haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgIGRlc2lnbiBkb2NzOiBmaXggMiB0eXBvcyBpbiBwYXJ0LU1ULXJlZmNvdW50aW5nCgoyMDExLTAxLTI0IDE3OjQ2OjE1ICswODAwICBZYW5nIFhpY2h1YW4gPHhpY2h1YW4ueWFuZ0B0aWV0by5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgIGRlc2lnbiBkb2NzOiBwYXJ0LWdzdGJpbi50eHQgZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWWFuZyBYaWNodWFuIDx4aWNodWFuLnlhbmdAdGlldG8uY29tPgoKMjAxMS0wMS0xOSAxNTo0ODoyNiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJsaXN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgZGVzaWduIGRvY3M6IGZpeCBhIGZldyB0eXBvcyBhbmQgYSB0aGlua28KCjIwMTEtMDEtMTEgMTc6NDM6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFQSTogQWRkIGZ1bmN0aW9uIHRvIHJlLWluaXQgcGVyaW9kaWMgR3N0Q2xvY2tJRHMKCjIwMTEtMDEtMjAgMTQ6Mzc6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBnc3RwbHVnaW5sb2FkZXI6IGRvIG5vdCBsZWFrIHRoZSBkZXNjcmlwdGlvbiBzdHJpbmcKCSAgVGhlIGRlc2NyaXB0aW9uIHN0cmluZyB3YXMgY2hhbmdlZCB0byBhbiBpbmxpbmVkIHN0cmluZyBhIHdoaWxlIGJhY2suCgkgIChCdXQ6IG5vIG5lZWQgdG8gaW50ZXJuIHRoZSBjb25zdCBzdHJpbmdzIGhlcmUsIHdlIGp1c3QgdXNlIHRoZSBpbnRlcm5pbmcKCSAgdG8gYXZvaWQgYWxsb2NhdGluZyBkdXBsaWNhdGVzIGFuZCBtYWtlIG1lbW9yeSBtYW5hZ2VtZW50IGVhc2llciwKCSAgc2luY2UgdGhlIHN0cmluZ3Mgd2lsbCBiZSBhcm91bmQgZm9yIHRoZSBsaWZlLXRpbWUgb2YgdGhlIGFwcCBhbnl3YXkpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMDcxCgoyMDExLTAxLTIyIDE1OjMzOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGNsYXJpZnkgZG9jcwoKMjAxMS0wMS0xMSAxMDozMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgYnVmZmVyaW5nIGRvYwoJICBBZGQgc3RyYXRlZ2llcyB0byBidWZmZXJpbmcgZG9jCgoyMDExLTAxLTI0IDExOjUzOjEyICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjMyIiBtYXJrZXJzIGZvciBHc3RDbG9jawoJICBTaW5jZSB0YWdzIHdlcmUgbWlzc2luZyBmb3IgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCgpCgkgIGFuZCBHU1RfQ0xPQ0tfRE9ORS4KCjIwMTEtMDEtMjQgMTA6NTY6MjEgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogRml4IEdzdFF1ZXVlMjpyaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0eSBTaW5jZSB0YWcgKDAuMTAuMzEsIG5vdCAwLjEwLjMwKQoKMjAxMS0wMS0yNCAxMDoyNjo0NSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4zMSIgbWFya2VyIGZvciBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUoKQoKMjAxMS0wMS0yNCAxNDoyMjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciByZWFkLWJleW9uZC1lbmQtb2Ytc3RyaW5nIGJ1ZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5Njc0CgoyMDExLTAxLTI0IDE0OjE2OjM3ICswMDAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZS1sYXVuY2g6IGRvbid0IHJlYWQgcGFzdCBlbmQgb2Ygc3RyaW5nIGlmIGxhc3QgY2hhcmFjdGVyIGlzIGFuIGVzY2FwZSBjaGFyCgkgIFdoZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJvcGVydHkgdmFsdWUgaXMgYSBiYWNrc2xhc2gKCSAgdGhlIHVuZXNjYXBpbmcgY29kZSByZWFkcyBvbmUgYnl0ZSBwYXNzIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY3NAoKMjAxMS0wMS0xNCAwOToyMToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBoYWNrIGEgY2hhcnNldD11dGYtOCBpbnRvIHB3Zy9hZG0gaHRtbCB2ZXJzaW9ucwoJICBTbyB0aGUgZW5jb2Rpbmcgb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50IGlzIHJlc3BlY3RlZCBhbmQKCSAgZGlzcGxheXMgcHJvcGVybHkgaW4gYnJvd3NlcnMgd2hlcmUgdGhlIGVuY29kaW5nIGF1dG9kZXRlY3Rpb24KCSAgZmFpbHMgdG8gcmVjb2duaXNlIHRoYXQgaXQncyB1dGYtOC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQ0OAoKMjAxMS0wMS0xMyAxNTo0MTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogZG9uJ3QgbGVhayB4bWwgZmlsZSBuYW1lIGlmIEdTVF9DSEVDS19YTUwgaXMgc2V0CgkgIFNwb3R0ZWQgYnkgbnZpbmVldGhAZ21haWwuY29tCgoyMDExLTAxLTIzIDIzOjQ1OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzIgPT09CgoyMDExLTAxLTIxIDEwOjI1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zMgoKMjAxMS0wMS0yMCAxOTowNzozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiY29uZmlndXJlOiByZXF1aXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiA+PSAwLjkuMTIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2E1OWQ0MTZhZjZkMGY4YjYxZTI0NjA4MzBlYjZmMTEzODkyOWVjMi4KCSAgUmV2ZXJ0aW5nIHRoaXMsIGFzIHRoZSBmZWF0dXJlIHdlIGJ1bXBlZCB0aGUgcmVxdWlyZW1lbnQgZm9yCgkgIGRpZG4ndCBhY3R1YWxseSB3b3JrIHByb3Blcmx5IG9yIGhlbHAgd2l0aCB0aGUgaXNzdWUgd2Ugd2VyZQoJICB0cnlpbmcgdG8gZml4IChhbmQgaXQgd2FzIGZpeGVkIGRpZmZlcmVudGx5IGluIHRoZSBlbmQpLgoKMjAxMS0wMS0xOCAyMjo1MTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgZG9jczogZml4IHNwZWxsaW5nIG9mICd0aHJlc2hvbGQnIGluIGFwcCBkZXYgbWFudWFsCgoyMDExLTAxLTE4IDEwOjEwOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuNCBwcmUtcmVsZWFzZQoKMjAxMS0wMS0xOCAwOTowNDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdvYmplY3QtaW50cm9zcGVjdGlvbjogdHJ5IGhhcmRlciB0byBtYWtlIGctaXItc2Nhbm5lciB1c2UgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBBcHBseSBmaXggZnJvbSBsaWJnc3RiYXNlIHRvIGFsbCBjb3JlIGxpYnMgbm93IHRoYXQgd2Uga25vdyB0aGF0IGl0CgkgIHdvcmtzLiBTaG91bGQgZml4IHByb2JsZW1zIHdpdGggZy1pci1zY2FubmVyIHVzaW5nIHRoZSB3cm9uZwoJICAoaWUuIHN5c3RlbSkgbGliZ3N0cmVhbWVyLCBsZWFkaW5nIHRvIGxpbmtpbmcgZXJyb3JzIHN1Y2ggYXMKCSAgdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ3N0X2Nsb2NrX3NpbmdsZV9zaG90X2lkX3JlaW5pdCcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTQgMDA6MjA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgZG9jczogZml4IGdhcmJsZWQgVVRGLTggY2hhcmFjdGVycyB3aGVuIGdlbmVyYXRpbmcgYXBwIGRldiBtYW51YWwgcHMvcGRmCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk0NDgKCjIwMTEtMDEtMTMgMjA6MTI6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBhbm90aGVyIGF0dGVtcHQgdG8gbWFrZSBnLWkgZmluZCB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIFR1cm5zIG91dCBnLWkgcHV0cyB0aGUgYWRkaXRpb25hbCAtTCB3ZSBzcGVjaWZ5IGF0IHRoZSBlbmQsIGhlbHBmdWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xMiAxNTo0NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVxdWlyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gPj0gMC45LjEyCgkgIEVhcmxpZXIgdmVyc2lvbnMgZG9uJ3QgaG9ub3VyIHRoZSAtTC8tLWxpYnJhcnktcGF0aCBvcHRpb24sCgkgIHdoaWNoIHdlIG5lZWQuIFNlZSBjb21taXQgNGQwY2NkYWQgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIGdpdC4KCjIwMTEtMDEtMTIgMTA6MTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogdXBkYXRlIGctaSBpbmNsdWRlIHBhdGhzIGFzIHdlbGwgZm9yIGhlYWRlciBjaGFuZ2VzCgkgIEhvcGVmdWxseSBtYWtlcyBMdWNpZCBhbmQgTWF2ZXJpY2sgYnVpbGQgYm90cyBoYXBweSBhZ2FpbgoKMjAxMS0wMS0xMSAxODozOTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjMgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTEgMTg6Mzg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZ2wucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDEtMTEgMTk6MjY6NDAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IEZpeCBoZWFkZXJzIHRvIHVzZSA8ID4gaW4gI2luY2x1ZGUgc3RhdGVtZW50cwoJICBUaGUgYmVoYXZpb3Igb2YgIiAiIGluIGluY2x1ZGUgc3RhdGVtZW50cyBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIC0KCSAgc2VlIHRoZSBDIHN0YW5kYXJkLCBzZWN0aW9uIDYuMTAuMiBvcgoJICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIxNTkzCgoyMDExLTAxLTExIDE5OjE0OjI4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGdzdG5ldDogRml4IC0tYy1pbmNsdWRlIGZvciBnaXIgZ2VuZXJhdGlvbgoJICBQcmV2aW91c2x5IGl0IHdhcyAtIHByb2JhYmx5IGR1ZSB0byBjb3B5L3Bhc3RlIGVycm9yIC0gbG9va2luZyBmb3IKCSAgZ3N0YmFzZSBoZWFkZXJzLgoJICBJdCdzIGNoYW5nZWQgbm93IHRvIG9ubHkgaW5jbHVkZSB0aGUgb25lIHB1YmxpYyBoZWFkZXIgZm9yIGdzdG5ldC5oCgoyMDExLTAxLTExIDEzOjQ3OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiBtYWtlIGctaXItc2Nhbm5lciB0cnkgaGFyZGVyIHRvIGZpbmQgdGhlIHJpZ2h0IGxpYmdzdHJlYW1lcgoJICBJdCdzIG5vdCBxdWl0ZSBjbGVhciB0byBtZSB3aHkgZy1pci1zY2FubmVyIGRvZXNuJ3QgZ2V0IHRoaXMgaW5mbyBmcm9tCgkgIHRoZSBwa2ctY29uZmlnIGZpbGUsIG5vciB3aHkgbGlidG9vbCBkb2Vzbid0IGdldCBpdCBmcm9tIHRoZSAubGEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc1NDkKCjIwMTEtMDEtMTEgMTM6MDU6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgcGtnY29uZmlnOiBhbHNvIGFkZCBsaWJkaXIgdG8gLXVuaW5zdGFsbGVkIC5wYyBmaWxlcwoJICBUaGlzIHdheSB3ZSBjYW4gZmluZCB0aGUgcGF0aHMgdG8gcGFzcyBlLmcuIGctaXItc2Nhbm5lciBmb3IKCSAgdW5pbnN0YWxsZWQgc2V0dXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MDM5CgoyMDExLTAxLTExIDE1OjQ5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGU1NzJjODcgdG8gZjk0ZDczOQoKMjAxMS0wMS0xMSAxNToxMDozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4ZSB0aGUgcHJvcGVydHkgbGluayBhbmQgdGhlIHNpY2UgZG9jcwoKMjAxMS0wMS0xMSAxMjo0NjozMSArMDAwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBmaXggY29tcGlsZXIgd2FybmluZyB3aXRoIE1pbmdXCgkgIGdzdHBvbGwuYzogSW4gZnVuY3Rpb24gJ2dzdF9wb2xsX2dldF9yZWFkX2dwb2xsZmQnOgoJICBnc3Rwb2xsLmM6NjkyOjEwOiB3YXJuaW5nOiBhc3NpZ25tZW50IG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg5MDAKCjIwMTEtMDEtMTAgMTQ6Mzc6NDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdDogb3V0cHV0c2VsZWN0b3I6IEFkZCBhbm90aGVyIG5lZ290aWF0aW9uIHRlc3QKCSAgQWRkcyBhbiB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgb3V0cHV0LXNlbGVjdG9yIHdvcmtzCgkgIHdoZW4gbmVnb3RpYXRpbmcgYmVmb3JlIHNyY3BhZHMgYXJlIHJlcXVlc3RlZAoKMjAxMS0wMS0xMCAxNDoxOToxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBJbXByb3ZlIGdldCBhbmQgc2V0IGNhcHMgZnVuY3Rpb25zCgkgIEltcHJvdmUgc2luayBwYWQgZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBieSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZQoJICBubyBzcmMgcGFkcyBleGlzdCB5ZXQKCjIwMTEtMDEtMTAgMTY6MzU6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjY2JhYTg1IHRvIGU1NzJjODcKCjIwMTEtMDEtMTAgMTQ6NTI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjQ0NWFkIHRvIGNjYmFhODUKCjIwMTEtMDEtMTAgMDk6NTk6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IHNlbGVjdG9yOiB1bnJlZiBwZWVyIHBhZAoJICBEbyBub3QgZm9yZ2V0IHRvIHVucmVmIHBlZXIncyBwYWQgb24gb3V0cHV0LXNlbGVjdG9yIG5lZ290aWF0aW9uCgkgIHRlc3RzCgoyMDExLTAxLTEwIDEzOjE4OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2Ugc3VyZSB3ZSB3YWl0IGFuZCByZWxlYXNlIHRoZSBsaXZlIGxvY2sKCSAgTWFrZSBzdXJlIHdlIHJlbGVhc2UgdGhlIGxpdmUgbG9jayBhbmQgd2FpdCBpbiBhbGwgY2FzZXMgd2hlbiB3ZSBuZWVkIHRvIHdhaXQKCSAgZm9yIHRoZSBwbGF5aW5nIG9yIGZsdXNoaW5nIHN0YXRlIGNoYW5nZS4KCSAgRml4ZXMgIzYzNTc4NQoKMjAxMS0wMS0wOCAxNDo1MjoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRG9uJ3QgcmVwbGFjZSB2YWxpZCBleGlzdGluZyBwbHVnaW5zIGJ5IGJsYWNrbGlzdGVkIG9uZXMKCSAgT25seSByZXBsYWNlIGV4aXN0aW5nIHBsdWdpbnMgYnkgYmxhY2tsaXN0ZWQgb25lcyBpZiB0aGV5IGNvcnJlc3BvbmQKCSAgdG8gdGhlIGV4YWN0IHNhbWUgcGx1Z2luLiBJZiB0aGV5J3JlIG5vdCB0aGUgc2FtZSwga2VlcCB0aGUgZXhpc3RpbmcKCSAgdmFsaWQgb25lLgoJICBGaXhlcyAjNjM4OTQxCgoyMDExLTAxLTA4IDAyOjE5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQuaW46CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBjb25maWd1cmUsIGdzdC11bmluc3RhbGxlZDogcmVtb3ZlIGEgZmV3IGJhc2hpc20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk2MQoKMjAxMS0wMS0wNyAxMjoxMzozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMxLjIgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMDcgMDI6MTg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBpbmRleGVyczogZml4IHR3byBzbWFsbCBsZWFrcwoJICBlbGVtZW50IGZhY3RvcnkgcGx1Z2luX25hbWVzIGFyZSBpbnRlcm5lZCBzdHJpbmdzIHRoZXNlIGRheXMuCgoyMDExLTAxLTA3IDAwOjUzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogbmV2ZXIgZGlzYWJsZSBnX2Fzc2VydCgpIGFuZCBjYXN0IGNoZWNrcyBmb3IgdGhlIHVuaXQgdGVzdHMKCSAgVGhlIHVuaXQgdGVzdHMgYXJlIHJpZGRsZWQgd2l0aCBnX2Fzc2VydCgpIGFuZCBmcmllbmRzLCBtYWtlIHN1cmUgd2UKCSAgZG9uJ3QgZGlzYWJsZSBhc3NlcnQgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cyBldmVuIGlmCgkgIHRoaXMgaGFzIGJlZW4gc3BlY2lmaWVkIGZvciB0aGUgcmVzdCBvZiB0aGUgY29kZSBiYXNlLCBlLmcuIHZpYQoJICAtLWRpc2FibGUtZ2xpYi1hc3NlcnRzLgoKMjAxMS0wMS0wNiAxOTo0MDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGlnbm9yZSBvbGQgbGliZ3N0dmFsdmUuc28gYW5kIGxpYmdzdHNlbGVjdG9yLnNvIHBsdWdpbnMgdG8gbWluaW1pemUgdXBncmFkZSBwYWluCgkgIElnbm9yZSBwbHVnaW5zIHdoaWNoIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIGNvcmVlbGVtZW50cywgc28gaXQncwoJICBzdGlsbCBwb3NzaWJsZSB0byBqdXN0IHVwZ3JhZGUgR1N0cmVhbWVyIGNvcmUgd2l0aG91dCBoYXZpbmcgdG8KCSAgdXBncmFkZSB0aGUgd2hvbGUgc3RhY2suCgoyMDExLTAxLTA2IDE5OjIxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBSZXZlcnQgInBhZHRlbXBsYXRlOiBhbGxvdyBkaXNhYmxpbmJnIHRoZSB0ZW1wbGF0ZSBuYW1lIGNvbmZvcm1hbmNlIGNoZWNrcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmOTAzOWMyMjA0MGUxYTM4YTM2OTFiYzRkMjk5YWY0MjdjOTYzMjU1LgoJICBXZSB1c2UgLURHX0RJU0FCTEVfQVNTRVJUUyBmb3IgcmVsZWFzZXMgYW5kIHByZS1yZWxlYXNlcywgYnV0CgkgIGRvbid0IHdhbnQgdG8gZGlzYWJsZSBwYWQgbmFtZSBjaGVja2luZyBmb3IgcmVsZWFzZXMgaW4gZ2VuZXJhbCwKCSAgSSB0aGluay4gTmVlZCBhIGJldHRlciBzb2x1dGlvbiBoZXJlLiBGaXhlcyBwYWQgdW5pdCB0ZXN0IGluCgkgIHByZS1yZWxlYXNlL3JlbGVhc2UgbW9kZS4KCjIwMTEtMDEtMDQgMTI6NDI6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSAgb3V0cHV0LXNlbGVjdG9yOiBBZGQgcGFkLW5lZ290aWF0aW9uLW1vZGUgcHJvcGVydHkKCSAgQWRkcyBnZXRjYXBzL3NldGNhcHMgdG8gb3V0cHV0LXNlbGVjdG9yIGFuZCBhZGRzIGEgcHJvcGVydHkKCSAgdG8gc2VsZWN0IHdoaWNoIHR5cGUgb2YgbmVnb3RpYXRpb24gc2hvdWxkIGJlIGRvbmUuCgkgIFRoZSBhdmFpbGFibGUgbW9kZXMgYXJlOgoJICAqIG5vbmU6ICAgbm8gbmVnb3RpYXRpb24gKGN1cnJlbnQgYmVoYXZpb3IpLCBnZXRjYXBzIHJldHVybiBBTlkgYW5kCgkgIHNldGNhcHMgYXJlbid0IHNldCBvbiBhbnkgb2YgdGhlIHBlZXJzCgkgICogYWxsOiAgICB1c2UgYWxsIHBhZHMgKGRlZmF1bHQpLCBnZXRjYXBzIHJldHVybnMgdGhlIGludGVyc2VjdGlvbiBvZgoJICBwZWVyIHBhZHMgYW5kIHNldGNhcHMgaXMgc2V0IG9uIGFsbCBwZWVycwoJICAqIGFjdGl2ZTogZ2V0Y2FwcyBhbmQgc2V0Y2FwcyBhcmUgcHJveGllZCB0byB0aGUgYWN0aXZlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA2IDE4OjE4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBkb2NzOiBtZW50aW9uIGV4dHJhIGlucHV0LXNlbGVjdG9yIHBhZCBwcm9wZXJ0aWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDYgMTc6NDc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZWwucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA5LTIzIDEyOjQ5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlIGZvciBlYWNoIGxvZyBmdW5jdGlvbiBjYWxsIG9uIE1TVkMKCSAgQXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWUgdG8gZ2V0IHRoZSBmaWxlIGJhc2VuYW1lIG9uIE1TVkMgdG8gYXZvaWQKCSAgdW5uZWNlc3Nhcnkgb3ZlcmhlYWQgd2hlbiBkb2luZyBHU1RfREVCVUc9Zm9vOjUgb3Igc28gKHNpbmNlIGl0IHdvdWxkIGJlCgkgIGRvbmUgYmVmb3JlIHRoZSBjYXRlZ29yeSBsb2cgbGV2ZWwgZmlsdGVyaW5nKS4KCjIwMTEtMDEtMDYgMTc6Mjk6NDYgKzAwMDAgIGNocmlzdGlhbiBzY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMgYW5kIGVuYWJsZSBHSVIKCjIwMTEtMDEtMDUgMTI6NTk6NDggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IEZpeCBjcmVhdGlvbiBvZiBkZWZhdWx0IG5hbWUKCSAgQ2hhbmdlIHRoZSBmaXhlZCBhbGxvY2F0aW9uICghKSB0byBnX3N0cmR1cF9wcmludGYoKS4KCjIwMTAtMTItMjAgMTM6MzA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RFbGVtZW50OiBBZGQgYSBtb3JlIGZsZXhpYmxlIHdheSB0byBnZXQgcmVxdWVzdCBwYWRzLgoJICBUaGUgbmV3IHJlcXVlc3RfbmV3X3BhZF9mdWxsIHZtZXRob2QgcHJvdmlkZXMgYW4gYWRkaXRpb25hbCBjYXBzIGZpZWxkLAoJICB3aGljaCBhbGxvd3MgZWxlbWVudHMgdG8gdGFrZSBiZXR0ZXIgZGVjaXNpb24gcHJvY2Vzcy4KCSAgQWxzbywgYWRkIGEgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoKSBmdW5jdGlvbiB0byBhbGxvdyBkZXZlbG9wZXJzIHRvIGJlCgkgIGFibGUgdG8gc3BlY2lmeSB3aGljaCBwYWQgdGVtcGxhdGUgdGhleSB3YW50IGEgcGFkIG9mLgoJICBDb252ZXJ0IGdzdHV0aWxzIHRvIHVzZSB0aGF0IG5ldyBtZXRob2QgaW5zdGVhZCBvZiB0aGUgb2xkIG9uZSB3aGVuIG1vcmUKCSAgZWZmaWNpZW50LgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgYmVpbmcgYWJsZSB0byByZXF1ZXN0IHBhZHMgaW4gYSBtb3JlIGZsZXhpYmxlIHdheSwKCSAgZXNwZWNpYWxseSB3aGVuIHRoZSBlbGVtZW50IGNhbiBwcm92aWRlIHBhZHMgd2hvc2UgY2FwcyBkZXBlbmQgb24KCSAgcnVudGltZSBjb25maWd1cmF0aW9uIGFuZCB0aGVyZWZvcmUgY2FuJ3QgcHJvdmlkZSBwcmUtcmVnaXN0ZXJlZAoJICBwYWQgdGVtcGxhdGVzLgoJICBBUEk6IEdzdEVsZW1lbnQ6OnJlcXVlc3RfbmV3X3BhZF9mdWxsCgkgIEFQSTogZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzMwMAoKMjAxMS0wMS0wNSAxNTo1MzoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSAic2VsZWN0LWFsbCIgcHJvcGVydHkKCSAgc2VsZWN0LWFsbCBtb2RlIGlzIGEgYml0IGJyb2tlbiAoZS5nLiBuZXdzZWdtZW50IGV2ZW50CgkgIGhhbmRsaW5nKSwgc28gcmVtb3ZlIHRoYXQgZm9yIG5vdy4gVGhlIGZ1bm5lbCBlbGVtZW50CgkgIGluIGZhcnNpZ2h0IHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUzOTA0MgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MzgxCgoyMDExLTAxLTA1IDE1OjM2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZW1vdmUgc2FmZXR5IGNoZWNrIGZvciBHTGliIDwgMi44CgkgIERvbid0IHdvcnJ5IGFib3V0IGFjY2lkZW50YWxseSB1c2luZyBHTGliIDwgMi44IGF0IHJ1bnRpbWUgYW55bW9yZS4KCjIwMTEtMDEtMDUgMTE6MjY6MTMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBEaXNhYmxlIHVzYWdlIG9mIEdEYXRlVGltZSBvbiBNYWNPU1gKCSAgR0xpYidzIEdEYXRlVGltZSBkb2Vzbid0IGhhbmRsZSBwcm9wZXJseSB0aGUgZ210IG9mZnNldC4gVGhlcmVmb3JlCgkgIHVzZSBvdXIgb3duIGludGVybmFsIHZlcnNpb24gaW5zdGVhZCBvbiBNYWNPU1guCgkgIFNlZSBidWcgIzYzODY2NgoKMjAxMS0wMS0wNSAxMDo1NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtb3JlIHVwZGF0ZXMgZm9yIHRoZSBwcm9ncmVzcyBtZXNzYWdlcwoKMjAxMS0wMS0wNCAxODozNjo0MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1zaWduYWxzLnhtbDoKCSAgcHdnOiBGaXggbGluayB0byBHT2JqZWN0IGRvY3VtZW50YXRpb24KCSAgQmV0dGVyIGhhdmUgZ25vbWUub3JnIHRoYW4gdmlhZ3JhIDopCgoyMDExLTAxLTAzIDIwOjMyOjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBBbHdheXMgbWFyayByZWNlcHRpb24gYXMgY29tcGxldGUgYWZ0ZXIgRVhJVAoJICBBdm9pZHMgd2FpdGluZyBmb3JldmVyIG9uIGdzdF9wb2xsX3dhaXQgd2hlbiB1c2luZyB0aGUgc2VsZWN0CgkgIGJhY2tlbmQuCgkgIEZpeGVzICM2MzcwNTcKCjIwMTEtMDEtMDQgMDA6NDg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3RpbmZvOiBkb24ndCB1c2UgcHJpbnRmIGV4dGVuc2lvbnMgaWYgR0xpYiBpc24ndCB1c2luZyB0aGUgc3lzdGVtIHByaW50ZgoJICBNaWdodCBoZWxwIHdpdGggaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODU5OQoKMjAxMS0wMS0wMyAyMDoxOTowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBGaXggZm9yIChwKXNlbGVjdCBiYWNrZW5kCgkgIFdlIG5lZWQgdG8gcmVzZXQgdGhlIHJldmVudHMgZmllbGQgb2YgZWFjaCBwb2xsZmQgd2hlbiByZWFkaW5nIHRoZSByZXN1bHRzCgkgIGZyb20gc2VsZWN0IGVsc2Ugd2UnbGwgZW5kIHVwIHdpdGggc3RyYXkgaW5mbyBmcm9tIHByZXZpb3VzIGNhbGxzIHRvCgkgIHNlbGVjdC4KCjIwMTEtMDEtMDMgMDE6MDY6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtYWtlIG5ldyBnc3RfdmFsdWVfbGlzdF9tZXJnZSgpIHdvcmsgcHJvcGVybHkKCSAgRml4IGZyZWVpbmcgb2YgcGFydGlhbGx5LWluaXRlZCBsaXN0IHZhbHVlIHdoZW4gYm90aCB2YWx1ZXMKCSAgcGFzc2VkIGFyZSBlcXVhbCBhbmQgd2Ugd2FudCB0byByZXR1cm4gYSBzaW5nbGUgbm9uLWxpc3QKCSAgdmFsdWUgYXMgcmVzdWx0LiBGaXhlcyB1bml0IHRlc3QuIEFsc28gZml4IHVwIGRvY3MgYSBiaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc3NzYKCjIwMTAtMTItMjEgMjM6MDM6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ3M6IGRvbid0IHByb2R1Y2UgZHVwbGljYXRlZCBlbnRyaWVzIHdoZW4gbWVyZ2luZyBzYW1lIHZhbHVlIHR3aWNlCgkgIEFkZCBhIHZhcmlhbnQgb2YgZ3N0X3ZhbHVlX2xpc3RfY29uY2F0KCkgdGhhdCBza2lwcyBkdXBsaWNhdGVzIGFuZCB1c2UgdGhhdCB3aGVuCgkgIG1lcmdpbmcgdGFnbGlzdHMuCgkgIEFQSTogZ3N0X3ZhbHVlX2xpc3RfbWVyZ2UoKQoKMjAxMS0wMS0wMiAxNjo1ODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjLCBiYXNlc2luazogYWRkIHNvbWUgRklYTUVzIGZvciB0aGUgdHlwZSBvZiB0aGUgYmxvY2tzaXplIHByb3BlcnR5CgoyMDEwLTEyLTMxIDEyOjA4OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBtYWtlIHBhZCdzIGdldF90eXBlIGZ1bmN0aW9uIHRocmVhZC1zYWZlCgoyMDEwLTEyLTMxIDExOjM3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNlbGVjdG9yLmM6CgkgIGNvcmVlbGVtZW50czogcmVtb3ZlIHVudXNlZCBmaWxlcwoKMjAxMC0xMi0zMSAxMjoyNzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdGVkIGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzIGZvciB0aGUgYWN0aXZlLXBhZCB3aXRoIGEgcmVjdXJzaXZlIG11dGV4CgkgIFRoaXMgd29ya3MgYXJvdW5kIGEgdGhyZWFkIHNhZmV0eSBwcm9ibGVtIGluIEdMaWIgPCAyLjI2LjAgYW5kIHNob3VsZAoJICBiZSByZW1vdmVkIHdoZW4gd2UgZGVwZW5kIG9uIDIuMjYuMC4KCSAgRml4ZXMgYnVnICM2MDc1MTMuCgoyMDEwLTEyLTMxIDE2OjUyOjU0ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjU3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGdzdGZkc2luazogZml4IHR5cG8KCSAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2FubWluZyA8V2FubWluZy5aaGFuZ0B0aWV0by5jb20+CgoyMDEwLTEyLTMxIDE2OjUwOjE3ICswODAwICBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJICBkb2NzOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzAgMTg6MDI6MDYgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IHVzZSBnX2FzY2lpX3N0cmNhc2VjbXAoKQoKMjAxMC0xMi0zMSAwMTowOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICB0ZXN0czogcmVtb3ZlIG91dHB1dC1zZWxlY3RvciB0ZXN0IHdoaWNoIG5lZWRzIGVsZW1lbnRzIGZyb20gLWJhc2UKCSAgTW92ZSBpdCB0byAtYmFzZSBpbnN0ZWFkLgoKMjAxMC0xMi0zMSAwMDo1OTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBlbmFibGUgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB1bml0IHRlc3RzIGFmdGVyIG1vdmUKCjIwMTAtMTItMzEgMDA6NDg6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBhZGQgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB0byBkb2NzCgoyMDEwLTEyLTMxIDAwOjQ1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGNvcmVlbGVtZW50czogR1NUX0JPSUxFUlBMQVRFIGFscmVhZHkgc2V0cyBwYXJlbnRfY2xhc3MKCjIwMTAtMTItMzEgMDA6NDM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3IsIG91dHB1dC1zZWxlY3RvcjogbWlub3IgY2xlYW4tdXBzCgoyMDEwLTEyLTMwIDE4OjU3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGNvcmVlbGVtZW50czogbW92ZSBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHRvIGNvcmUKCSAgTW92ZWQgdG8gY29yZSBmcm9tIGdzdC1wbHVnaW5zLWJhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDMwNgoKMjAxMC0xMS0yNCAxMjoyMjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgb3V0cHV0LXNlbGVjdG9yLXRlc3Q6IGRvbid0IGhhcmRjb2RlIHZpZGVvc2lua3MgYW5kIHVzZSBtb3JlIGNvbG9yc3BhY2UgY29udi4KCSAgVXNlIGF1dG92aWRlb3NpbmsgaW5zdGVhZCBvZiBoYXJkY29kZWQgc2lua3MuIFVzZSBhbiBhZGRpdGlvbmFsIGNvbG9yc3BhY2UKCSAgY29udmVydGVyIGJldHdlZW4gdmlkZW90ZXN0c3JjIGFuZCB0aW1lb3ZlcmxheS4KCjIwMTAtMDktMTcgMDk6NTI6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogQXZvaWQgbG9zaW5nIHRoZSBsYXN0X2J1ZmZlciB3aGVuIHN3aXRjaGluZwoJICBUaGlzIHBhdGNoIG1ha2VzIG91dHB1dHNlbGVjdG9yIHRha2UgYW4gZXh0cmEgcmVmIHdoZW4gcHVzaGluZwoJICB0aGUgbGFzdF9idWZmZXIgdG8gYXZvaWQgaXQgbG9zaW5nIGl0IGR1cmluZyB0aGUgc3dpdGNoIGZ1bmN0aW9uLgoJICBUaGlzIG1ha2VzIHJlc2VuZC1sYXRlc3QgcHJvcGVybHkgd29yayBpZiB0aGUgYWN0aXZlLXBhZCBpcyBjaGFuZ2VkCgkgIGR1cmluZyB0aGUgc3dpdGNoIGZ1bmN0aW9uIGJ1ZmZlciBwdXNoaW5nIChvbiBhIHBhZCBwcm9iZSwgZm9yIGV4YW1wbGUpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTE3CgoyMDEwLTA5LTE3IDA5OjQ0OjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IFJlY2hlY2sgcGVuZGluZyBzd2l0Y2ggYWZ0ZXIgcHVzaGluZyBidWZmZXIKCSAgVGhpcyBwYXRjaCBtYWtlcyBvdXRwdXQtc2VsZWN0b3IgYWx3YXlzIHJlY2hlY2sgaWYgdGhlcmUncyBhCgkgIHBlbmRpbmcgcGFkIHN3aXRjaCBhZnRlciBwdXNoaW5nIGEgYnVmZmVyLCBwcmV2ZW50aW5nIHRoYXQKCSAgaXQgcHVzaGVzIGEgYnVmZmVyIG9uIHRoZSAnd3JvbmcnIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxNwoKMjAxMC0xMS0wMSAyMzowNDo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGxvZyB0aW1lcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtCgoyMDEwLTExLTAxIDIyOjQwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbW92ZSByZW9jY3VyaW5nIGxvZ3MgdG8gTE9HIGFuZCByZW1vdmUgYSBkb3VibGUgaW5mbwoJICBMZXNzIGRlYnVnIHNwZXcgaW4gREVCVUcgY2F0ZWdvcnkuIE5vIG5lZWQgdG8gbG9nIHBhZCBhZ2FpbiBpZiB3ZSB1c2UKCSAgR1NUX0xPR19PQkpFQ1QocGFkLC4uLikuCgoyMDEwLTEwLTE5IDEzOjQzOjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICB2YXJpb3VzIChnc3QpOiBhZGQgbWlzc2luZyBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGZsYWdzCgkgIENhbm9uaWNhbGl6ZSBwcm9wZXJ0eSBuYW1lcyBhcyBuZWVkZWQuCgoyMDEwLTA5LTA2IDExOjAzOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3Rvcjogc3luYyB3aXRoIGNvcHkgaW4gLWJhc2UKCSAgVXNlIF9nZXRfY2Fwc19yZWZmZWQgdG8gYXZvaWQgY29waWVzLgoKMjAxMC0wOC0yNCAxMTo1MDo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogbW92ZSB0aGUgZGVidWcgaW5pdCB0byB0aGUgYm9pbGVycGxhdGUgbWFjcm8KCjIwMTAtMDgtMjQgMTE6NTA6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiB1c2UgR1NUX0JPSUxFUlBMQVRFIG1hY3JvCgoyMDEwLTAzLTIyIDEzOjE2OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgLVd3cml0ZS1zdHJpbmdzCgkgIGFuZCBmaXggaXRzIHdhcm5pbmdzCgoyMDEwLTAzLTIxIDIxOjM5OjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyB0byBjb25maWd1cmUgZmxhZ3MKCSAgQW5kIGZpeCBhbGwgd2FybmluZ3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAxMC0wMS0yNSAxMjoyMTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgUmV2ZXJ0ICJpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGdfb2JqZWN0X25vdGlmeSgpIHdpdGggdGhlIG9iamVjdCdzIG11dGV4IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdlMDY3NjE1ZmZiNTYxNGYwNjhmNzc1M2MxMGRkZTk5YWZlNDljM2MsIGl0J3MgY2F1c2luZwoJICBkZWFkbG9ja3Mgd2l0aCBwbGF5YmluMi4KCjIwMTAtMDEtMjQgMjA6NTM6MDAgKzAxMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBnX29iamVjdF9ub3RpZnkoKSB3aXRoIHRoZSBvYmplY3QncyBtdXRleAoJICBUaGlzIHdvcmtzIGFyb3VuZCB0aGUgdGhyZWFkIHVuc2FmZXR5IG9mIGdfb2JqZWN0X25vdGlmeSgpCgkgIEZpeGVzIGJ1ZyAjNjA3NTEzLgoKMjAwOS0xMS0wOSAxMTo0OToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUmVtb3ZlIHVzZWxlc3MgdmFyaWFibGVzIGFuZCBmaXggYSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGRmZDUxYWE4MmE5ZTFjOTkyNDM3NTE4Mzc5NmVhYjcwZTU3NGEyMzEuCgoyMDA5LTExLTA5IDExOjQ4OjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNYWtlIHN1cmUgdGhhdCBydW5uaW5nX3RpbWUtPnRpbWVzdGFtcCBjYWxjdWxhdGlvbiBuZXZlciBiZWNvbWVzIG5lZ2F0aXZlCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGYzNjUzODU0NTg1ODY0YTA5ZDM1ZTAzNzg1MzQwNzMzMmVhNjkwMWYuCgoyMDA5LTExLTA5IDExOjQ4OjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHN0YXJ0IHRpbWUgKGkuZS4gdGltZXN0YW1wKSBhcyB0aGUgbGFzdCBzdG9wCgkgIFVzaW5nIHRoZSBlbmQgdGltZSBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHJlcGxhY2UgYnVmZmVycywgd2hpY2ggaXMKCSAgYSBiaWcgcHJvYmxlbSBmb3Igc3VidGl0bGVzIHRoYXQgY291bGQgaGF2ZSB2ZXJ5IGxvbmcgZHVyYXRpb25zLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCAyNzAzNGJlNDYxMTIzMWNjNTVmYTNkM2UyNTNiYWE0MGM2YmZmNDFkLgoKMjAwOS0xMS0wOSAxMTo0NzoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSW1wcm92ZSBkZWJ1Z2dpbmcKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZS4KCjIwMDktMTEtMDUgMTM6NTM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgUmV2ZXJ0ICJpbnB1dHNlbGVjdG9yOiB1c2UgZ2V0X2NhcHNfcmVmZmVkKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDllYzRmNzk2YTBlM2Y4OGE4NTE3MDg3ODJjODUzYmFmNGIwNTcyNC4KCSAgV2UgY2FuJ3QgdXNlIHRoaXMgbmV3IGZ1bmN0aW9uIHlldC4KCjIwMDktMTEtMDUgMTM6Mjk6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogdXNlIGdldF9jYXBzX3JlZmZlZCgpCgoyMDA5LTExLTA0IDAwOjIxOjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYWxzbyBhZGQgaW5saW5lIHRvIHRoZSBwcm90byB0byBmaXggdGhlIGJ1aWxkCgoyMDA5LTExLTAzIDE4OjE0OjEyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGdzdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMgYW5kIHJlc3VsdGluZyB1bnVzZWQgdmFyaWFibGVzCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDhjZDFiNTIwOWI2ODk0NGUxYmU1NmNhOGJiNjllNDZkNGFiYjdhMzQuCgoyMDA5LTExLTAzIDE4OjEyOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHNhbWUgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBhcyBpbiBnc3QtcGx1Z2lucy1iYXNlCgoyMDA5LTExLTAzIDE4OjExOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSBzaXh0ZWVudGggb2YgYSBwb2xhciBiZWFyLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA2ZjRjMWFjNTgzNDFlZTE4OTIyNWQzMTNkZGZlOWFlMjRhNjVjODhjLgoKMjAwOS0xMS0wMyAxODowOTo1NSArMDEwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBSb25hbGQgQnVsdGplIGZyb20gQXV0aG9ycyBmaWVsZAoJICBSZXBsYWNlZCB3aXRoICJHU3RyZWFtZXIgbWFpbnRhaW5lcnMKCSAgPGdzdHJlYW1lci1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IiBvciBqdXN0IHJlbW92ZWQsCgkgIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIG90aGVyIGF1dGhvcnMuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDBlOWJjNTEyNWFjYTU0NmQ3NzNlZDEwMDJkZjU3M2RkOGUyZGMxMzYuCgoyMDA5LTExLTAzIDE4OjA4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHNldCBvdXRwdXQgY2FwcyBiZWZvcmUgcHVzaGluZwoJICBTZXQgdGhlIG91dHB1dCBjYXBzIG9uIHRoZSBzcmNwYWQgYmVmb3JlIHB1c2hpbmcgdGhlIGJ1ZmZlciBiZWNhdXNlIGVsc2UgY29yZQoJICB3aWxsIGRvIGEgcmF0aGVyIGV4cGVuc2l2ZSBjaGVjayB0byBzZWUgaWYgd2UgY2FuIGFjdHVhbGx5IGFjY2VwdCB0aG9zZSBjYXBzIG9uCgkgIHRoZSBzcmNwYWQuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGJkZmI0YjQ2ZDc0NmVmMjk4ZmNmNDQyNjA4NzljMzQyYWY0Y2FmYTMuCgoyMDA5LTExLTAzIDE4OjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGluc3RhbGwgYW4gYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBJbnN0YWxsIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiB1c2luZyB0aGUgZGVmYXVsdCBleHBlbnNpdmUKCSAgY2hlY2suIFdlIGFjY2VwdCB3aGF0ZXZlciBkb3duc3RyZWFtIGFjY2VwdHMgc28gd2UgcGFzcyBhbG9uZyB0aGUgYWNjZXB0Y2FwcwoJICBjYWxsIHRvIHRoZSBkb3duc3RyZWFtIHBlZXIuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDViNzJmMmFkZjk5NjczOTAzNmU4ZDliNWY5MTAwNTQ1NWQxZmZhY2UuCgoyMDA5LTEwLTI3IDExOjUxOjA1IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFJlbW92ZSBleGVjdXRhYmxlIGJpdHMgZnJvbSBub24tZXhlY3V0YWJsZSBmaWxlcy4KCjIwMDktMDktMjUgMTE6MDc6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBuZXcgc2luZ2xlIGl0ZXJhdG9yIGZvciB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkcwoJICBUaGlzIGZpeGVzIGEgZGVhZGxvY2sgYW5kIHJlbW92ZXMgc29tZSB1c2VsZXNzIGNvZGUuCgoyMDA5LTA4LTMxIDE5OjMxOjU3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBtYWtlIEdTVF9GT1JNQVRfVElNRSB0aGUgZGVmYXVsdCBzZWdtZW50IGZvcm1hdAoKMjAwOS0wOC0xOSAxNzowNTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldCBpbnRlcm5hbCBsaW5rcwoKMjAwOS0wNy0zMSAxMToyNzowMyArMDMwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLjEubXlvaGFuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogY2hlY2sgZm9yIHBlbmRpbmcgc3JjcGFkIGluIF9nZXRfcHJvcGVydHkoKQoJICBJZiB0aGVyZSBpcyBhIHBlbmRpbmcgc3JjcGFkLCByZXR1cm4gaXQgaW5zdGVhZCBvZiBhY3RpdmUgc3JjcGFkCgkgIGluIGdzdF9vdXRwdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KCkgZnVuY3Rpb24uCgoyMDA5LTA2LTEyIDEwOjE0OjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBkbyB0aGUgcGFkX2FsbG9jIGZvciB0aGUgcGFkIHRoYXQgaXMgcGVuZGluZyBhbmQgaGF2ZSBhIGZhbGxiYWNrCgkgIFdlIHNob3VsZCBkbyB0aGUgcGFkX2FsbG9jIGZvciB0aGUgcGVuZGluZyBwYWQgaWYgYW55LCBhcyB3ZSB3aWxsIHN3aXRjaCB0byB0aGF0CgkgIHBhZCBvbiBuZXh0IF9jaGFpbigpIGNhbGwuIEFsc28gZG8gYSBmYWxsYmFjayBhbGxvYywgaWYgdGhlcmUgaXMgbm8gb3V0cHV0IHlldCB0bwoJICBub3QgZmFpbCBzdGF0ZSB0cmFuc2l0aW9ucyBpbiBkeW5hbWljIHBpcGVsaW5lcy4KCjIwMDktMDYtMDEgMTY6MzE6NDIgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBzZXJpYWxpemUgc2V0dGluZyBhbmQgYWN0dWFsIGNoYW5naW5nIG9mIG5ldyBhY3RpdmUgcGFkCgoyMDA5LTA1LTA0IDEyOjI5OjU0ICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogdW5yZWYgbGF0ZXN0IGJ1ZmZlciBhbHNvIHdoZW4gcmVzZW5kaW5nIGhhcyBiZWVuIGRpc2FibGVkCgoyMDA5LTA0LTE2IDE3OjMyOjAzICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3Rvcjoga2VlcCByZWYgdG8gYnVmZmVyIGZvciByZXNlbmRpbmcgb25seSBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZAoKMjAwOS0wNi0wNCAxOTowODoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBkb24ndCBsZWFrIHBhZHMgaW4gaXRlcmF0b3IKCjIwMDktMDYtMDQgMDg6NTY6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE5vdGlmeSB3aGVuIHRoZSB0YWdzIHByb3BlcnR5IG9mIHRoZSBzZWxlY3RvciBzaW5rcGFkcyBjaGFuZ2VzCgkgIEZpcnN0IHBhcnQgb2YgYnVnICM1ODQ2ODYuCgoyMDA5LTA1LTI4IDEwOjM4OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIHNlbGVjdG9yOiByZW1vdmUgbm90IG5lZWRlZCBpbnN0YW5jZSB2YXIgKHByZXZpb3VzIGNvbW1pdCkuCgoyMDA5LTA1LTI4IDEwOjEyOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgb3V0cHV0c2VsZWN0b3I6IGltcGxlbWVudCBwYWRfYWxsb2Mgb24gYWN0aXZlIHBhZC4KCjIwMDktMDQtMjMgMTE6MDQ6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRm9yd2FyZCBzZWdtZW50IGV2ZW50cyBmb3IgdGhlIGFjdGl2ZSBwYWQgaW1tZWRpYXRlbHkuCgkgIFdoZW4gYSBzZWdtZW50IGV2ZW50IGlzIHJlY2VpdmVkIG9uIHRoZSBhY3RpdmUgcGFkLCBmb3J3YXJkIGl0IGRvd25zdHJlYW0KCSAgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiBkZWZlcnJpbmcgaXQgdW50aWwgdGhlIG5leHQgZGF0YSBidWZmZXIgYXJyaXZlcy4gVGhpcwoJICBmaXhlcyBwcm9ibGVtcyB3aXRoIHNlZ21lbnQgdXBkYXRlcyBuZXZlciBiZWluZyBzZW50IGRvd25zdHJlYW0sIGxpa2UgdGhvc2UKCSAgbmVlZGVkIGZvciBzcGFyc2Ugc3RyZWFtcywgb3IgZm9yIGNsb3NpbmcgcHJldmlvdXNseSBvcGVuZWQgc2VnbWVudHMuCgkgIFRoaXMgZml4ZXMgcGxheWJhY2sgb2YgRFZEIG1lbnVzIHdpdGggYSBzdGlsbCB2aWRlbyBmcmFtZSBhbmQgYW4gYXVkaW8gdHJhY2ssCgkgIGZvciBleGFtcGxlLgoJICBGaXhlczogIzU3Nzg0MwoKMjAwOS0wMy0yNyAxMToyMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IHJlc2V0IHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkKCSAgUmVzZXQgdGhlIGxhc3QtYnVmZmVyLCB0aGUgcGVuZGluZyBwYWQgYW5kIHRoZSBzZWdtZW50IHdoZW4gZ29pbmcgdG8gdGhlIFJFQURZCgkgIHN0YXRlLgoJICBGaXhlcyAjNTc2NzEyLgoKMjAwOS0wMy0yNCAxNToyMzowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogbWVyZ2UgdGhlIHRhZ3MKCSAgTWVyZ2UgdGhlIHRhZ3MgcmVjZWl2ZWQgb24gdGhlIGlucHV0LXNlbGVjdG9yIHNpbmtwYWRzIGluc3RlYWQgb2Ygb25seSBrZWVwaW5nCgkgIHRoZSBsYXN0IG9uZSB3ZSBzYXcuCgoyMDA5LTAyLTI1IDExOjQ1OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZG9jczogdmFyaW91cyBkb2MgZml4ZXMKCSAgTm8gc2hvcnQtZGVzYyBhcyB3ZSBoYXZlIHRoZW0gaW4gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgQWxzbyBrZWVwIHRoaW5ncyAoTWFrZWZpbGUuYW0gYW5kIHNlY3Rpb25zLnR4dCkgc29ydGVkLgoJICBSZXdvcmQgYW1iaWdvdXMgcmV0dXJucy4gTm8gdGV4dCBhZnRlciBzaW5jZSBwbGVhc2UuCgoyMDA5LTAyLTExIDE3OjIxOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggY29tcGlsYXRpb24sIGFjdGl2YXRlX3NpbmtwYWQoKSBoYXMgbm8gbm90aWZ5IHBhcmFtZXRlcgoKMjAwOS0wMi0xMCAxNjoyMjo1NCAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEFjdGl2YXRlIGFuZCBub3RpZnkgcGFkIGJlZm9yZSBwcm9jZXNzaW5nIGV2ZW50cy4KCSAgRXZlbnRzIHNob3VsZCB0cmlnZ2VyIHBhZCBzZWxlY3Rpb24gaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGFuCgkgIGV4cGxpY2l0bHkgc2VsZWN0ZWQgcGFkLCBzbyB0aGF0IGV2ZW50cyBwcmlvciB0byBmaXJzdCBidWZmZXIgZG9uJ3QgZ2V0CgkgIGxvc3QuCgoyMDA5LTAxLTMwIDE4OjI3OjAzIC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBVbnJlZiBldmVudCBpZiB3ZSBkb24ndCBmb3J3YXJkIGl0LCB1bnJlZiBwYWRzIHdoZW4gZG9uZSB3aXRoIHRoZW0uCgoyMDA4LTEyLTA0IDE3OjUxOjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRW5zdXJlIHdlIGVtaXQgbm90aWZ5OjphY3RpdmUtcGFkIHdoZW4gYXV0by1zZWxlY3RpbmcgYSBwYWQgZHVlIHRvIGl0IGhhdmluZyBhY3Rpdml0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBFbnN1cmUgd2UgZW1pdCBub3RpZnk6OmFjdGl2ZS1wYWQgd2hlbiBhdXRvLXNlbGVjdGluZyBhIHBhZAoJICBkdWUgdG8gaXQgaGF2aW5nIGFjdGl2aXR5IGFuZCB1cyBub3QgaGF2aW5nIGFuIGV4aXN0aW5nIGFjdGl2ZQoJICBwYWQuIEZpeGVzICM1NjMxNDcKCjIwMDgtMTAtMTUgMTc6NDU6MzcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogR3JhY2VmdWxseSBoYW5kbGUgdGhlIGNhc2VzIHdoZW4gd2UgZG9udCcgaGF2ZSBvdGhlcnBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfZXZlbnQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgR3JhY2VmdWxseSBoYW5kbGUgdGhlIGNhc2VzIHdoZW4gd2UgZG9udCcgaGF2ZSBvdGhlcnBhZC4KCSAgRml4ZXMgIzU1NjQzMAoKMjAwOC0xMC0wNyAxMzoxNDo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOiBDaG9vc2UgcmlnaHQgcGFkIGZvciBzZW5kaW5nIGV2ZW50cy4gRml4ZXMgIzU1NTI0NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIENob29zZSByaWdodCBwYWQgZm9yIHNlbmRpbmcgZXZlbnRzLiBGaXhlcyAjNTU1MjQ0CgoyMDA4LTA5LTA4IDIwOjI3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJlc2V0IHRoZSBzZWxlY3RvciBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfcmVzZXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3Jlc2V0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jaGFuZ2Vfc3RhdGUpOgoJICBSZXNldCB0aGUgc2VsZWN0b3Igc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDgtMDktMDEgMTM6MjM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmV1c2UgdGhlIGdldF9saW5rZWRfcGFkcyBmb3IgYm90aCBzb3VyY2UgYW5kIHNpbmtwYWRzIGJlY2F1c2UgdGhleSBhcmUgdGhlIHNhbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2V2ZW50KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIFJldXNlIHRoZSBnZXRfbGlua2VkX3BhZHMgZm9yIGJvdGggc291cmNlIGFuZCBzaW5rcGFkcyBiZWNhdXNlIHRoZXkgYXJlCgkgIHRoZSBzYW1lLgoJICBJbXBsZW1lbnQgYSBjdXN0dW0gZXZlbnQgaGFuZGxlciBhbmQgZ2V0IHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0IChzbG93ZXIpIGltcGxlbWVudGF0aW9uLgoKMjAwOC0wOC0yNyAxNTo0NToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBJbXBsZW1lbnQgdGhlIExBVEVOQ1kgcXVlcnkgaW4gYSBiZXR0ZXIgd2F5IGJ5IHRha2luZyB0aGUgbGF0ZW5jeSBvZiBhbGwgc2lua3BhZHMgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBJbXBsZW1lbnQgdGhlIExBVEVOQ1kgcXVlcnkgaW4gYSBiZXR0ZXIgd2F5IGJ5IHRha2luZyB0aGUgbGF0ZW5jeSBvZiBhbGwKCSAgc2lua3BhZHMgYW5kIHRha2luZyB0aGUgbWluL21heCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIGEgcmFuZG9tIHBhZC4KCjIwMDgtMDgtMDUgMDk6MDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogTW92ZSB0aGUgc2VsZWN0LWFsbCBsb2dpYyBpbnRvIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGFkLiBXZSB3YW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRjYXBzKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9hY3RpdmF0ZV9zaW5rcGFkKToKCSAgTW92ZSB0aGUgc2VsZWN0LWFsbCBsb2dpYyBpbnRvIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQKCSAgcGFkLiBXZSB3YW50IHRvIHJlbWVtYmVyIHRoZSBsYXN0IHBhZCB3aXRoIGFjdGl2aXR5IGluIHNlbGVjdC1hbGwgbW9kZS4KCSAgRml4IHRoZSBnZXRjYXBzIGZ1bmN0aW9uLCB3ZSBjYW4gcHJvZHVjZSB0aGUgdW5pb24gb2YgdGhlIHVwc3RyZWFtIGNhcHMKCSAgaW4gc2VsZWN0LWFsbCBtb2RlLCBub3QgdGhlIGludGVyc2VjdGlvbiBsaWtlIHByb3h5X2dldGNhcHMoKSBkb2VzLgoKMjAwOC0wNi0xOSAxMzoxODoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgb3V0cHV0LXNlbGVjdG9yOiBVc2UgQk9JTEVSUExBVEUgbWFjcm8gYW5kIHVwZGF0ZSB0ZXN0IHRvIHRoZSBsYXRlc3QgYXBpIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBVc2UgQk9JTEVSUExBVEUgbWFjcm8gYW5kIHVwZGF0ZSB0ZXN0IHRvIHRoZSBsYXRlc3QgYXBpIGNoYW5nZXMuCgoyMDA4LTA2LTEyIDE0OjQ5OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2RjMTM5NC9nc3RkYzEzOTQuYzoKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkgICogZXh0L21ldGFkYXRhL2dzdG1ldGFkYXRhZGVtdXguYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2JheWVyL2dzdGJheWVyMnJnYi5jOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3RhdWRpb3BhcnNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdHZpZGVvcGFyc2UuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9hbmFseXNlLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvZGV0ZWN0LmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvbWFyay5jOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QKCSAgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXJuaW5ncyBpZiB0aGV5IGRpZmZlci4KCSAgQWxzbyBmaXhpbmcgdXAgdGhlIENoYW5nZUxvZyBvcmRlci4KCjIwMDgtMDMtMjAgMTg6MTA6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRG8gZ19vYmplY3Rfbm90aWZ5KCkgb25seSB3aGVuIG5vdCBob2xkaW5nIHRoZSBsb2NrIHRvIGdldCB0aGUgcHJvcGVydHkgYmVjYXVzZSBvdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICBEbyBnX29iamVjdF9ub3RpZnkoKSBvbmx5IHdoZW4gbm90IGhvbGRpbmcgdGhlIGxvY2sgdG8gZ2V0IHRoZSBwcm9wZXJ0eQoJICBiZWNhdXNlIG90aGVyd2lzZSB3ZSBydW4gaW50byBhIGRlYWRsb2NrIHdpdGggdGhlIGRlZXAtbm90aWZ5IGhhbmRsZXJzCgkgIHRoYXQgYXJlIHBvc3NpYmx5IGluc3RhbGxlZC4KCjIwMDgtMDMtMjAgMTc6NDg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmVsZWFzZSB0aGUgc2VsZWN0b3IgbG9jayB3aGVuIHBhZCBhbGxvYyBoYXBwZW5zIG9uIGEgbm9uIHNlbGVjdGVkIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKToKCSAgUmVsZWFzZSB0aGUgc2VsZWN0b3IgbG9jayB3aGVuIHBhZCBhbGxvYyBoYXBwZW5zIG9uIGEgbm9uIHNlbGVjdGVkIHBhZC4KCjIwMDgtMDMtMjAgMTc6MDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogQWRkIHBhZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYmVoYXZpb3VyIG9mIHRoZSB1bnNlbGVjdGVkIHBhZCwgaXQgY2FuIHJldHVybiBPSyBvciBOLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfaW5pdCksIChnc3Rfc2VsZWN0b3JfcGFkX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9wcm9wZXJ0eSksIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpOgoJICBBZGQgcGFkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBiZWhhdmlvdXIgb2YgdGhlIHVuc2VsZWN0ZWQgcGFkLCBpdCBjYW4KCSAgcmV0dXJuIE9LIG9yIE5PVF9MSU5LRUQsIGJhc2VkIG9uIHRoZSB1c2UgY2FzZS4KCjIwMDgtMDMtMjAgMTY6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogRmlndXJlIG91dCB0aGUgbG9ja2luZyBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3J1bm5pbmdfdGltZSksIChnc3Rfc2VsZWN0b3JfcGFkX3Jlc2V0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9kaXNwb3NlKSwgKGdzdF9zZWdtZW50X3NldF9zdGFydCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfbGlua2VkX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfaXNfYWN0aXZlX3NpbmtwYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2FjdGl2YXRlX3NpbmtwYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSksIChnc3RfaW5wdXRfc2VsZWN0b3JfYmxvY2spLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIEZpZ3VyZSBvdXQgdGhlIGxvY2tpbmcgYSBiaXQgbW9yZS4KCSAgTWFyayBidWZmZXJzIHdpdGggZGlzY29udCBhZnRlciBzd2l0Y2hpbmcuCgkgIEZpeCBpbml0aWFsIHNlZ21lbnQgZm9yd2FyZGluZywgbWFrZSBzdXJlIHRvIG9ubHkgZm9yd2FyZCBvbmUgc2VnbWVudAoJICByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHNlcXVlbmNlIG9mIGJ1ZmZlcnMvc2VnbWVudHMgaXMuIFNlZSAjNTIyMjAzLgoJICBJbXByb3ZlIGZsdXNoaW5nIHdoZW4gYmxvY2tlZC4KCSAgUmV0dXJuIE5PVF9MSU5LRUQgd2hlbiBhIHN0cmVhbSBpcyBub3Qgc2VsZWN0ZWQuCgkgIE5vdCBBUEkgY2hhbmdlIGZvciB0aGUgc3dpdGNoIHNpZ25hbCBpbiB0aGUgZG9jcy4KCSAgRml4IHN0YXJ0L3RpbWUvYWNjdW0gdmFsdWVzIG9mIHRoZSBuZXcgc2VnbWVudC4KCSAgQ29ycmVjdGx5IHVubG9jayBhbmQgZmx1c2ggYSBibG9ja2luZyBzZWxlY3RvciB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwOC0wMy0xNCAxNzoyMjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBBZGQgbG90cyBvZiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3B1c2hfcGVuZGluZ19zdG9wKToKCSAgQWRkIGxvdHMgb2YgZGVidWdnaW5nLgoJICBGaXggdGltZSBtZW1iZXIgaW4gdGhlIG5ld3NlZ21lbnQgZXZlbnQuCgoyMDA4LTAzLTEzIDE2OjQ2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IFZhcmlvdXMgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZmluYWxpemUpLCAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9wdXNoX3BlbmRpbmdfc3RvcCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgQWRkZWQgdGFncyB0byB0aGUgcGFkcy4KCSAgU2VsZWN0IGFjdGl2ZSBwYWQgYmFzZWQgb24gdGhlIHBhZCBvYmplY3QgaW5zdGVhZCBvZiBpdHMgbmFtZS4KCSAgRml4IHJlZmNvdW50IGluIHNldF9hY3RpdmVfcGFkLgoJICBBZGQgcHJvcGVydHkgdG8gZ2V0IHRoZSBudW1iZXIgb2YgcGFkcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBTZWxlY3QgdGhlIGFjdGl2ZSBwYWQgYmFzZWQgb24gdGhlIHBhZCBvYmplY3QgaW5zdGVhZCBvZiBpdHMgbmFtZS4KCSAgRml4IGxvY2tpbmcgd2hlbiBzZXR0aW5nIHRoZSBhY3RpdmUgcGFkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6IChjbGVhbnVwX3BhZCksCgkgIChzZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksIChydW5faW5wdXRfc2VsZWN0b3JfYnVmZmVyX2NvdW50KToKCSAgRml4ZXMgZm9yIHBhZCBpbnN0ZWFkIG9mIHBhZG5hbWUgZm9yIHBhZCBzZWxlY3Rpb24uCgoyMDA4LTAyLTI2IDEyOjAxOjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6IEZpeCBjaGFuZ2luZyB0byBzYW1lIHBhZCB0d2ljZSBiZWZvcmUgYSBjaGFpbiBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCBjaGFuZ2luZyB0byBzYW1lIHBhZCB0d2ljZSBiZWZvcmUgYSBjaGFpbiBjYWxsLgoKMjAwOC0wMi0yNSAwODo1Mzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IEFkZGVkICJzZWxlY3QtYWxsIiBwcm9wZXJ0eSB0byBtYWtlIGl0IHdvcmsgbGlrZSBhZ2dyZWdhdG9yIGluIDAuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIEFkZGVkICJzZWxlY3QtYWxsIiBwcm9wZXJ0eSB0byBtYWtlIGl0IHdvcmsgbGlrZSBhZ2dyZWdhdG9yIGluIDAuOC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCByZXNlbmQtbGF0ZXN0IGJlaGF2b2l1ci4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCB1bml0IHRlc3RzIGZvciBzZWxlY3Rvci4KCjIwMDgtMDItMDcgMTM6NDg6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOiBBZGQgYSBmaXhtZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgQWRkIGEgZml4bWUgY29tbWVudC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCBzYW1lIGxlYWsgYXMgaW4gaW5wdXQtc2VsZWN0b3IuCgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgSW1wcm92ZSB0aGUgdGVzdC4KCjIwMDgtMDItMDEgMTc6MDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRG9uJ3QgbGVhayBldmVudCBvbiBwYWRzIHRoYXQgYXJlIG5vdCBsaW5rZWQuIEZpeGVzICM1MTI4MjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCk6CgkgIERvbid0IGxlYWsgZXZlbnQgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkLiBGaXhlcyAjNTEyODI2LgoKMjAwOC0wMS0yOSAwNzozODozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVwbGFjZSB0aGUgc3dpdGNoIHBsdWdpbiB3aXRoIHRoZSBzZWxlY3RvciBwbHVnaW4uIEFkZCBvdXRwdXQtIHNlbGVjdG9yIGFzIHRoZSBvcHBvc2l0ZSBvZiBpbnB1dC1zZWxlY3RvbyAod2FzIHN3aXRjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2VsZWN0b3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VuZHRvdWNoLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3dpdGNoLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL3NlbGVjdG9yLnZjcHJvajoKCSAgKiBnc3Qvc3dpdGNoLy5jdnNpZ25vcmU6CgkgICogZ3N0L3N3aXRjaC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC1tYXJzaGFsLmxpc3Q6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guYzoKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5oOgoJICAqIGdzdC9zd2l0Y2gvc3dpdGNoLnZjcHJvajoKCSAgKiB0ZXN0cy9pY2xlcy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFJlcGxhY2UgdGhlIHN3aXRjaCBwbHVnaW4gd2l0aCB0aGUgc2VsZWN0b3IgcGx1Z2luLiBBZGQgb3V0cHV0LQoJICBzZWxlY3RvciBhcyB0aGUgb3Bwb3NpdGUgb2YgaW5wdXQtc2VsZWN0b28gKHdhcyBzd2l0Y2gpLiBBZGQgYSB0ZXN0CgkgIGZvciBvdXRwdXQtc2VsZWN0b3IuIEFkZCBkb2NzIGZvciB0aGUgZWxlbWVudHMuIFRoZSB2Y3Byb2ogbmVlZHMKCSAgdXBkYXRlLiBGaXhlcyAjNTAwMTQyLgoKMjAxMC0xMi0zMCAwMDo0NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIHZhbHZlIGVsZW1lbnQgdG8gZG9jdW1lbnRhdGlvbgoKMjAxMC0xMi0zMCAwMDo0MTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IHNvbWUgbWlub3IgY2xlYW4tdXBzCgoyMDEwLTEyLTMwIDAwOjMwOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeCB0eXBvIGluIHByb3BlcnR5IGRlc2NyaXB0aW9uCgkgIEFuZCByZXBocmFzZSB3aGlsZSBhdCBpdCwgdG8gbWFrZSBpdCBtb3JlIGNvbmNpc2UuCgoyMDEwLTEyLTMwIDAwOjI2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogZW5hYmxlIHZhbHZlIHVuaXQgdGVzdAoKMjAxMC0xMi0zMCAwMDoyMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IGFkZCBuZXcgdmFsdmUgZWxlbWVudCB0byBidWlsZAoJICBNb3ZlZCBmcm9tIGdzdC1wbHVnaW5zLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwODA4CgoyMDEwLTEwLTE5IDIzOjQwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBmaXggdmFsdmUgdW5pdCB0ZXN0CgkgIGdzdF9idWZmZXJfcGFkX2FsbG9jKCkgbmVlZHMgc2ltcGxlIGNhcHMgb3IgTlVMTCBjYXBzLAoJICBBTlkgY2FwcyBhcmUgbm90IGFsbG93ZWQuCgoyMDEwLTA5LTI4IDEzOjUyOjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBubyBuZWVkIHRvIHJlZiB0aGUgb2JqZWN0IGluIF9jaGFpbgoJICBEb24ndCByZWYgdGhlIHBhZCBpbiBjaGFpbiwgbGlrZSBlbHNld2hlcmUKCjIwMTAtMDktMzAgMTc6NDg6MzUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBGaXggY2FwcyBsZWFrIGluIHRoZSB2YWx2ZSB0ZXN0CgoyMDEwLTA5LTMwIDE3OjI0OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogQWRkIHVuaXQgdGVzdHMKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgdmFsdmUgZWxlbWVudC4KCjIwMTAtMDktMzAgMTY6MjY6MTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogTWFrZSB0aGUgZHJvcCB2YXJpYWJsZSBpbnRvIGFuIGF0b21pYy4KCSAgVXNpbmcgYW4gYXRvbWljIGFsbG93cyB1cyB0byBhdm9pZCBsb2NraW5nIHRoZSB3aG9sZSBvYmplY3QgYWxsIHRpbWUgdGltZS4KCSAgQXMgc3VnZ2VzdGVkIGJ5IFN0ZWZhbiBLb3N0LgoKMjAxMC0wOS0zMCAxNjoyMjowNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogQ29ycmVjdGx5IHNldCB0aGUgRElTQ09OVCBmbGFnIGFmdGVyIGRyb3BwaW5nIGJ1ZmZlcnMKCjIwMTAtMDktMzAgMTY6MTY6NDcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IFJlbW92ZSBzdXBlcmZsb3VzIGNoZWNraW5nIGNhc3RzCgoyMDEwLTA5LTMwIDE2OjEzOjIzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBGaXggc3R5bGUsIGltcHJvdmUgY29tbWVudHMKCSAgTWlub3IgaW1wcm92ZW1lbnRzIHRvIHRoZSBjb21tZW50cyBhbmQgYnJlYWsgYSBmZXcgb3Zlcmx5IGxvbmcgbGluZXMKCjIwMTAtMDktMjggMTQ6MjY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG1vdmUgZGVmYXVsdDogcGFyc3QgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQgdG8gdGhlIGVuZAoJICBOb3cgc3VyZSBpZiBpdCBtYXR0ZXJzLCBidXQgdGhlIHByZXZpb3VzIGZvcm0gbG9va3Mgd2VpcmVkLgoKMjAxMC0wOS0yOCAxNDoyMzowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbW92ZSBkZWJ1Zy1jYXRlZ29yeSByZWdpc3RyYXRpb24gdG8gdHlwZSBpbml0CgoyMDEwLTA5LTI4IDE0OjE1OjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiB1c2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBvbiBwcm9wZXJ0aWVzCgoyMDEwLTA5LTI4IDE0OjA3OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBHU1RfQk9JTEVSUExBVEUgYWxyZWFkeSBzZXRzIHBhcmVudF9jbGFzcwoKMjAxMC0wMy0xOCAxNzozMDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDA5LTAyLTEwIDE4OjUyOjU0ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZG9jczogZG9jdW1lbnQgdmFsdmUgZWxlbWVudAoKMjAwOS0wMi0xMCAxNzo1NzoxNiArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiByZW5hbWUgdG8gdmFsdmUKCjIwMDktMDItMTAgMTc6NTU6NDcgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiByZS1pbmRlbnQgZ3N0IHN0eWxlCgoyMDA4LTEyLTEzIDAwOjMxOjQ1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IElnbm9yZSBlcnJvcnMgaWYgZHJvcHBpbmcgaXMgc2V0IHRvIHRydWUKCjIwMDgtMTItMTAgMTc6MDA6MzMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogQWRkIGdldGNhcHMgcHJveHlpbmcgdG8gdGhlIHZhbHZlCgoyMDA4LTA4LTIwIDE0OjExOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogUmViYXNlIHZhbHZlIG9udG8gZ3N0ZWxlbWVudCBpbnN0ZWFkIG9mIGJhc2V0cmFuc2Zvcm0KCjIwMDgtMDgtMTkgMTg6NDk6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmV2ZXJ0ICJGaXggcmVmY291bnRpbmcgaXNzdWVzIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2NWRkNDYwZjBhM2E5YzQ4ODJlNjM4Yzg2MjA4Zjc0ZWY2MmMzNDYwLgoKMjAwOC0wOC0wNSAxMTozMDo1NyArMDAwMCAgc2pvZXJkQGx1b24ubmV0IDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IEZpeCByZWZjb3VudGluZyBpc3N1ZXMgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIDIwMDgwODA1MTEzMDU3LWJlMGYyLTlkYzI3MDc4MWYwYTBmMjFjNjE2ZWQxMWRiZDFmMTk4ZmQxYjMyNmUuZ3oKCjIwMDgtMDQtMDkgMTY6MzI6MjEgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZW1vdmUgdW51c2VkIGRpc3Bvc2UgbWV0aG9kIGluIHZhbHZlCgkgIDIwMDgwNDA5MTYzMjIxLTNlMmRjLTkyY2NiMmRiODc0ZTQ2ZTBkOTJjMTU1MjA1NzdjMWJlMGUyYmM2MTcuZ3oKCjIwMDctMTItMTkgMjA6MzI6MzAgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBEb250IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoaWxlIGNhbGxpbmcgYmFzZSBhbGxvYyBmdW5jdGlvbgoJICAyMDA3MTIxOTIwMzIzMC0zZTJkYy02NTE5MTc1ZDhkODE0OTY1MTViMmQ5MDYwYWMzMTY2NTA1NjBmNjkxLmd6CgoyMDA3LTEyLTE5IDIwOjMyOjE4ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBTZXQgdGhlIERJU0NPTlQgZmxhZyBhZnRlciBkcm9wcGluZyBidWZmZXJzCgkgIDIwMDcxMjE5MjAzMjE4LTNlMmRjLWJjNWYwM2Q4OGZmNTgzNzA0MGI5MjE0ZGUwMTZjYzE0Mjc3NmRmYzIuZ3oKCjIwMDctMTItMTkgMDA6NTc6MzkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFVzZSBkbyB0aGUgYWxsb2NfYnVmZmVyIGZ1bmN0aW9uIGluIHRoZSB2YWx2ZQoJICAyMDA3MTIxOTAwNTczOS0zZTJkYy0yYTBmZGZhMmYzOGYwM2FiNDc5MWZlNWM0YWI4NWU4NzkwMTEzNjgzLmd6CgoyMDA3LTExLTIxIDIwOjA4OjU4ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogT25seSBzZXQgcGFzc3Rocm91Z2ggdG8gVFJVRSBvbiBuZXdlciB2ZXJzaW9ucyBvZiBnc3QKCSAgMjAwNzExMjEyMDA4NTgtM2UyZGMtYjE2Y2RlYWJiYzNjMDU2MmM2ZmM3YjExYjliOTc5MmM5MTBmNTY5ZS5negoKMjAwNy0xMS0yMSAxODoxNzoyOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IENvbXBhcmUgbWlub3IsIG5vdCBtYWpvcgoJICAyMDA3MTEyMTE4MTcyOS0zZTJkYy1hNTk5N2MzYjdmNWM4Njk2NjM3MDk2OTcxNGZhY2Y4ZWUyNDI2NTlkLmd6CgoyMDA3LTEwLTI2IDIyOjM3OjQ5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogTWFrZSB0aGUgdmFsdmUgZWxlbWVudCB3b3JrIHdpdGggZ3N0IDwgMC4xMC4xMwoJICAyMDA3MTAyNjIyMzc0OS0zZTJkYy0xOGY2ODVhNGU0NWZiZGNlNjc3YWM3Nzc1ODY4NzZmYzcxOWQ3MjIyLmd6CgoyMDA3LTEwLTI0IDIyOjQyOjQ2ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmVuYW1lIHZhbHZlIHRvIGZzdmFsdmUKCSAgMjAwNzEwMjQyMjQyNDYtM2UyZGMtYzU0MjE2YWYyZWYwZWYzZjFhMjIwNmQ3MjNlODdiZTJhMjNhYjhlZC5negoKMjAwNy0xMC0yNCAyMjo0MTo0NyArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogQWRkIHZhbHZlIGVsZW1lbnQKCSAgMjAwNzEwMjQyMjQxNDctM2UyZGMtZjI4YWIwYzA3M2UyODM4OTRiNjVjMjJjNGY0NDM5N2M4OTdkZWMwMS5negoKMjAxMC0xMi0zMCAxODozMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBtYWtlIHZhcmlhYmxlIHN0YXRpYwoKMjAxMC0xMi0yOSAxMTo0ODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZGVhZGxvY2sKCSAgT25seSBnbyBpbnRvIExJVkVfV0FJVCB3aGVuIHRoZSBhcmUgbm90IGxpdmVfcnVubmluZyBhbmQgb25seSBzdG9wIHdhaXRpbmcgd2hlbgoJICBsaXZlX3J1bm5pbmcgaXMgVFJVRS4gSWYgd2UgZG9uJ3QgbG9vcCwgd2UgY291bGQgZGVhZGxvY2sgd2hlbiBjYWxsZWQgZnJvbQoJICBvdXRzaWRlIG9mIGJhc2VzcmMsIHN1Y2ggYXMgYmFzZWF1ZGlvc3JjLgoJICBGaXhlcyAjNjM1Nzg1CgoyMDEwLTEyLTI4IDE2OjQwOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogYWRkIG1vcmUgc2luayB1bml0IHRlc3RzCgoyMDEwLTEyLTI4IDE2OjIzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWxzbyBwcmVyb2xsIGFzeW5jPWZhbHNlIHNpbmtzCgkgIEFsc28gcHJlcm9sbCBhc3luYz1mYWxzZSBzaW5rcyBhZnRlciBhIGZsdXNoLgoKMjAxMC0xMi0yMiAxNjo1NTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTAtMTItMjYgMjE6MjA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAibWljcm8tb3B0aW06IGlmICh4KSBpcyBjaGVhcGVyIHRoYW4gaWYgKHggPiAwKSBmb3IgdW5zaWduZWQgaW50ZWdlcnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmFhOGNhMzdlZWI5ZGViZmE2OTE5NzQxYTAyMzI1MGJmMjc4MjQ4Zi4KCSAgU2VlIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLnZpZGVvLmdzdHJlYW1lci5kZXZlbC8zMjI4MgoKMjAxMC0xMi0yNCAxNDowMjowOCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBlbGVtZW50czogcmVlbmFibGUgZmRzcmMvZmRzaW5rIG9uIE1TVkMKCjIwMTAtMTItMjIgMTY6MzY6MDkgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgRml4IEdTdGF0QnVmIGRlZmluaXRpb24gZm9yIHdpbjMyIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBvbGRlciBnbGliLiBOb3cgbWF0Y2hlcyB1cHN0cmVhbSBnbGliIGRlZmluaXRpb24uCgoyMDEwLTEyLTIyIDIyOjM2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbgoKMjAxMC0xMi0yMiAxNjo0MjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogYWRkIGRyYWZ0IGlkZWEgZm9yIHByb2dyZXNzIHJlcG9ydGluZwoKMjAxMC0xMi0yMSAxMDozMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB0eXBvCgoyMDEwLTEyLTIwIDE3OjQ2OjM2ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTY5NDYyYSB0byA0NjQ0NWFkCgoyMDEwLTEyLTE5IDEyOjQ5OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogRG9uJ3QgbGVhayBjb3BpZXMgb2YgZW1wdHkgc3RyaW5ncwoKMjAxMC0xMi0xNyAxOToxOTo0MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgYmFzZTogZG9jdW1lbnRhdGlvbiBmaXh1cHMgYW5kIGFubm90YXRpb24KCjIwMTAtMTItMTcgMTk6MTQ6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IGRvY3VtZW50YXRpb24gZml4dXBzIGFuZCBhbm5vdGF0aW9uCgkgIFJlcG9ydGVkIGJ5IGVuYWJsaW5nIHRoZSAtLXdhcm4tYWxsIG9wdGlvbiBvZiBnLWlyLXNjYW5uZXIKCjIwMTAtMTItMTcgMTU6NDg6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggZG9jdW1lbnRhdGlvbgoJICBzZWNvbmQgPT4gc2Vjb25kcwoJICBtaWNyb3NlY29uZCBhcmd1bWVudCB3YXMgZHJvcHBlZAoKMjAxMC0xMi0wNCAxNTozMjowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBVc2UgYW4gYXRvbWljIGludGVnZXIgaW5zdGVhZCBvZiBhIGxvY2sgZm9yIGNoZWNraW5nIHRhZ3MgcHJlc2VuY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjQ1NQoKMjAxMC0xMi0xNiAxMDo1NToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIGRvd25zdHJlYW0gZ2l2aW5nIGEgYnVmZmVyIHdpdGggbmV3IGNhcHMgYnV0IGludmFsaWQgc2l6ZQoJICBUaGlzIGNhbiBoYXBwZW4gZm9yIGV4YW1wbGUgd2hlbiBkb3duc3RyZWFtIHByb3Bvc2VkIG5ldyBjYXBzLCBsYXRlciBwcm9wb3NlZAoJICB0aGUgcHJldmlvdXMgY2FwcyBhZ2FpbiB3aGljaCBpbiB0dXJuIGVuYWJsZXMgcGFzc3Rocm91Z2ggbW9kZSBpbiB1cHN0cmVhbQoJICBlbGVtZW50cyBhbmQgdGhlIHdyb25nLXNpemVkIGJ1ZmZlciBhcHBlYXJzIGluIGFuIGVsZW1lbnQgd2hlcmUgdGhlIGNhcHMKCSAgY2hhbmdlIG5ldmVyIGhhcHBlbmVkLiBTaW1wbHkgYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGluIHRoaXMgY2FzZS4KCSAgU2VlIGJ1ZyAjNjM1NDYxLgoKMjAxMC0xMi0xNSAyMzoxOTo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIHRoZSBwdWJsaWNseSB2aXNpYmxlIGFkZHJlc3MgdG8gZml4IHRoZSB0ZXN0cwoJICBUaGUgLUJzeW1ib2xpYyBjaGFuZ2UgY2F1c2VzIHVzIHRvIGdldCBhIGRpZmZlcmVudCBhZGRyZXNzIHdoZW4gaW50ZXJuYWx5CgkgIGxvb2tpbmcgdXAgdGhlIGZ1bmN0aW9uIHRoYW4gd2hhdCBhcHBsaWNhdGlvbiB3b3VsZCBnZXQgd2hlbiB0aGUgdXNlIHRoZSBzeW1ib2wKCSAgdGhhdCB0aGV5IHNlZS4gVGhpcyBtYWRlIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZ2hhbmRsZXIgdG8gZmFpbCwgYXMgaXQgaXMgc2V0CgkgIGludGVybmFsbHkgYW5kIHJlbW92ZWQgZXh0ZXJuYWx5LgoKMjAxMC0xMi0xNSAxNDo1NToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDc0MmFlIHRvIDE2OTQ2MmEKCjIwMTAtMTItMTUgMTI6MTA6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgdGhlIC1Cc3ltYm9saWMtZnVuY3Rpb25zIGxpbmtlciBmbGFnIGlmIHN1cHBvcnRlZAoJICBUaGlzIGZlYXR1cmUgdHVybnMgaW50cmEgbGlicmFyeSBjYWxscyBpbnRvIGRpcmVjdCBmdW5jdGlvbiBjYWxscyBhbmQgdGh1cyBtYWtlcwoJICB0aGVtIGEgbGl0dGxlIGZhc3Rlci4gVGhlIGRvd25zaWRlIGlzIHRoYXQgdGhpcyBjYXVzZXMgcHJvYmxlbXMgZm9yIGUuZy4KCSAgTERfUFJFTE9BRCBiYXNlZCB0b29scy4gVGh1cyBhZGQgYSBjb25maWd1cmUgb3B0aW9uIHRvIHR1cm4gaXQgb2ZmLgoKMjAxMC0xMi0xNCAxOTowMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgbGFzdF9zdG9wIGNhbGN1bGF0aW9uCgkgIE9ubHkgdXBkYXRlIHRoZSBsYXN0X3N0b3AgdmFsdWUgd2hlbiB3ZSBoYWQgYSB2YWxpZCBzdG9wIHBvc2l0aW9uIGZvciB0aGUKCSAgY2xpcHBpbmcgb3IgZWxzZSB0aGUgY2xpcHBpbmcgY29kZSBhc3N1bWVzIHRoZSBzdG9wIHBvc2l0aW9uIGV4dGVuZHMgdG8gdGhlIGVuZAoJICBvZiB0aGUgc2VnbWVudCwgd2hpY2ggbWFrZXMgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyByZXR1cm4gd2VpcmQgdmFsdWVzLgoKMjAxMC0xMi0xNCAxNTo1MjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBvYmplY3QgdHlwZSBoYW5kbGluZyBpbiBxdWV1ZWQgcHJlcm9sbAoJICBGYWN0b3Igb3V0IHRoZSBtZXRob2QgdG8gZ2V0IHRoZSBvYmplY3QgdHlwZS4KCSAgV2hlbiBwcmVyb2xsLXF1ZXVlLWxlbiA+IDAsIHVzZSB0aGUgcmlnaHQgb2JqZWN0IHR5cGUgaW5zdGVhZCBvZiBpZ25vcmluZwoJICBidWZmZXItbGlzdHMuCgoyMDEwLTEyLTEzIDE2OjIyOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDAxMWJjYzggdG8gMjA3NDJhZQoKMjAxMC0xMi0xMSAxMDoxMDowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogRml4IEdJUiBidWlsZCBmb3Igc3JjZGlyICE9IGJ1aWxkZGlyCgoyMDEwLTEyLTA4IDE3OjUxOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGNvbW1pdCAnMGVhYTI1Y2JmNWMwZTRiZjg2NTQ1ZmI2N2MxODFhMGVjZDJmMTljNycgaW50byAwLjExCgoyMDEwLTEyLTA4IDEyOjE3OjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCB3cm9uZyB1c2Ugb2YgU2luY2U6IGtleXdvcmQKCjIwMTAtMTItMDggMTE6NTI6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogbWFpbnRhaW4gdGhlIHR5cGVmaW5kIGV4dGVuc2lvbiBsaXN0IG9yZGVyCgoyMDEwLTEyLTA4IDExOjUxOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGRvY3M6IGFkZCAoKSB0byB4cmVmIHRoZSBmdW5jdGlvbi4KCjIwMTAtMTItMDcgMTk6MzU6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZW1vdmUgc29tZSBkZWFkIGNvZGUsIEdTVF9ERUJVR19DT0xPUiBpcyBuZXZlciBkZWZpbmVkCgoyMDEwLTEyLTA3IDE5OjM1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IGNvbnN0LWlmeSBhcmd1bWVudHMgdG8gZ3N0X29iamVjdF9kZWZhdWx0X2Vycm9yKCkKCjIwMTAtMTItMDcgMTg6NDY6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGRvY3M6IGdzdF9lcnJvcl9nZXRfbWVzc2FnZSgpIHJldHVybnMgc3RyaW5nIGluIFVURi04LCBub3QgY3VycmVudCBsb2NhbGUKCSAgV2UgdGVsbCBnZXR0ZXh0IHRvIHJldHVybiBldmVyeXRoaW5nIGluIFVURi04IGVuY29kaW5nLgoKMjAxMC0xMi0wNSAyMDoxNzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVnaXN0ZXIgZ3N0X3BhZF9nZXRfZml4ZWRfY2Fwc19mdW5jKCkgd2l0aCB0aGUgZGVidWcgbG9nIHN5c3RlbQoKMjAxMC0xMi0wNyAxODozNTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBkb2NzOiBsaWJnc3RiYXNlOiBtb3JlIGdvYmplY3QgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBNYW55IG9mIHRoZXNlIGFyZSBzdXBlcmZsdW91cyBhbmQgd2VyZSBhZGRlZCBmb3IgY2xhcml0eS4KCjIwMTAtMTItMDcgMTg6MzU6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGdzdDogbW9yZSBnb2JqZWN0IGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgTWFueSBvZiB0aGVzZSBhcmUgc3VwZXJmbHVvdXMsIGFkZGVkIGZvciBjbGFyaXR5LgoKMjAxMC0xMi0wNyAxODo0MDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEwLTEyLTA3IDE4OjMzOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDEwLTEyLTA3IDE4OjMyOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBkaXNhYmxlIEFCSSBjaGVja3MKCjIwMTAtMTItMDcgMTg6MzI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2N1bWVudAoKMjAxMC0xMi0wNyAxODoxNDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIGdldF9jYXBzX3JlZmZlZCB2YXJpYW50cwoJICBNYWtlIHRoZSBfZ2V0X2NhcHMgZnVuY3Rpb25zIGJlaGF2ZSBsaWtlIHRoZSBfZ2V0X2NhcHNfcmVmZmVkIHZhcmlhbnRzIGFuZAoJICByZW1vdmUgdGhlIF9yZWZmZWQgdmFyaWFudHMuIFRoaXMgbWVhbnMgdGhhdCBfZ2V0X2NhcHMgZG9lc24ndCByZXR1cm4gYSB3cml0YWJsZQoJICBjYXBzIGFueW1vcmUgYW5kIGFuIGV4cGxpY2l0IF9tYWtlX3dyaXRhYmxlKCkgaXMgbmVlZGVkIGJlZm9yZSBtb2RpZnlpbmcgdGhlCgkgIGNhcHMuCgoyMDEwLTEyLTA3IDE4OjEyOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA3IDE2OjUyOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQ2xlYW4gdXAgLmggZmlsZQoKMjAxMC0xMi0wNyAxNTo1Mzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTAtMTItMDcgMTU6MzM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBlbGVtZW50OiByZXdvcmsgR3N0RWxlbWVudERldGFpbHMKCSAgQ2xlYW4gdXAgdGhlIEdzdEVsZW1lbnQgc3RydWN0dXJlCgkgIFJlcGxhY2UgR3N0RWxlbWVudERldGFpbHMgd2l0aCBtZXRhZGF0YQoKMjAxMC0xMi0wNyAxNTozMToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHJlbW92ZSBkZXByZWNhdGVkIG1ldGhvZHMKCSAgUmVtb3ZlIG1vcmUgZGVwcmVjYXRlZCBtZXRob2RzIGFuZCBmaXggdW5pdCB0ZXN0LgoKMjAxMC0xMi0wNyAxNToyMTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiByZW1vdmUgZGVwcmVjYXRlZCB0ZXN0cwoKMjAxMC0xMi0wNyAxNToyMDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IGZpeCBvYmplY3QgdW5pdCB0ZXN0CgoyMDEwLTEyLTA3IDE1OjE5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIG9iamVjdDogZml4IGRvY3MKCjIwMTAtMTItMDcgMTM6MTk6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogQWRkIC1JJCh0b3Bfc3JjZGlyKS9saWJzIHRvIGctaXItc2Nhbm5lciBjb21tYW5kcwoJICBXaXRob3V0IHRoaXMsIGl0IHdpbGwgZmFpbCBmaW5kaW5nIGFsbCBoZWFkZXJzLgoKMjAxMC0xMi0wNyAxMjo1Nzo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHJlY29tbWVuZCAiLS1nc3QtZGlzYWJsZS1yZWdpc3RyeS1mb3JrIiBhcyB3ZWxsCgkgIERpc2FibGluZyBmb3JraW5nIGhlbHBzIHdpdGggZGVidWdnaW5nIHRoZSBjYXVzZSBvZiB0aGUgY3Jhc2ggaW4gZ2RiLgoKMjAxMC0xMi0wNyAxMjo1Njo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wbHVnaW5kb2NzLnR4dDoKCSAgZG9jczogc29tZSBub3RlcyBhYm91dCBvdXIgcGx1Z2luIGRvY3Mgd29ya2Zsb3cKCjIwMTAtMTItMDcgMTE6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIG9iamVjdDogUmVtb3ZlZCBkZXByZWNhdGVkIGZpZWxkcyBhbmQgbWV0aG9kcwoJICBNYWtlIEdzdE9iamVjdCBleHRlbmQgZnJvbSBHSW5pdGlhbGx5VW5vd25lZCwgcmVtb3ZlIHRoZSBGTE9BVElORyBmbGFnIGFuZCB1c2UKCSAgR09iamVjdCBtZXRob2RzIGZvciBtYW5hZ2luZyB0aGUgZmxvYXRpbmcgcmVmLgoJICBSZW1vdmUgY2xhc3MgbG9jaywgaXQgd2FzIGEgd29ya2Fyb3VuZCBmb3IgYSBnbGliIDwgMi44IGJ1Zy4KCSAgUmVtb3ZlIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQgc2lnbmFscywgYXR0ZW1wdCB0byBpbXBsZW1lbnQgd2l0aCBub3RpZnkKCSAgYnV0IGRpc2FibGVkIGJlY2F1c2UgZGVhZGxvY2tzIGluIGRlZXAtbm90aWZ5LgoKMjAxMC0xMi0wNiAyMDowMzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IG1lbnRpb24gcmVtb3ZhbCBvZiBwcm90b2NvbCBwcm9wZXJ0eQoKMjAxMC0xMi0wNiAxOTo0MDowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGxpYnM6IHJlbW92ZSBkZXByZWNhdGVkIGNvZGUKCjIwMTAtMTItMDYgMTk6MjQ6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTAtMTItMDYgMTk6MTg6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9nc3R4bWwuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICByZW1vdmUgZGVwcmVjYXRlZCBzeW1ib2xzIGFuZCBtZXRob2RzCgoyMDEwLTEyLTA2IDEzOjUxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogQWRkIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA2IDEzOjQ4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgcGxhbjogZml4IHR5cG8KCjIwMTAtMTEtMTEgMTA6Mzg6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBwbGFuOiBhZGQgc29tZXRoaW5nIGFib3V0IEdWYXJpYW50IHJlZ2lzdHJ5CgoyMDEwLTExLTA4IDE4OjM5OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vdXNlLWNhc2VzLTAuMTEudHh0OgoJICBhZGQgc29tZSB1c2UtY2FzZXMKCjIwMTAtMTEtMDggMTQ6MDg6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDggMTI6MTQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDggMTE6MTg6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDQgMTk6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICB3b3JrIG9uIHRvZG8gbGlzdCBmb3IgMC4xMSB3b3JrCgoyMDEwLTEyLTA2IDEzOjIxOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICBtb3JlIDAuMTAgLT4gMC4xMQoKMjAxMC0xMi0wNiAxMjowMzoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBvcGVuIDAuMTEgYnJhbmNoCgoyMDEwLTEyLTA2IDExOjE4OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogcmV0dXJuIHdha2V1cCBldmVudCBpbiBHUG9sbEZECgoyMDEwLTEyLTA2IDExOjA3OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgc29tZSBkZWJ1ZyB0byBmYXN0IHB1c2ggcGF0aAoJICAuLi4gc28gd2UgZG9uJ3QgbG9vc2UgdHJhY2sgYXQgdGltZXMgaXQgaXMgbmVlZGVkIHRoZSBtb3N0LgoKMjAxMC0xMi0wNSAxNTo1ODo0OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgY2FjaGVkIENsb2NrSWQKCjIwMTAtMTItMDUgMTQ6NDY6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogRG9uJ3QgY2hlY2sgcGFkIHJlZmNvdW50IHRvbyBlYXJseQoJICBCZWNhdXNlIG9mIHRoZSBuZXcgcGFkIGNhY2hpbmcgc3lzdGVtLCB0aGUgcGVlciBwYWQgbWlnaHQgc3RpbGwKCSAgaGF2ZSBhIHJlZmVyZW5jZSBvbiBhIHBhZC4gV2UgdGhlcmVmb3JlIGRlbGF5IHRoZSByZWZjb3VudCBjaGVja2luZwoJICB0aWwgJ2FmdGVyJyB3ZSB1bmxpbmsgdGhlIHBhZCBmcm9tIGFueSBwb3RlbnRpYWwgcGVlci4KCjIwMTAtMTItMDUgMTQ6MTE6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogTWFrZSBlbGVtZW50IG5hbWVzIGNsZWFyZXIgaW4gZGVidWcgc3RhdGVtZW50cwoJICBSZXBsYWNlcyBjb25mdXNpbmcgbWVzc2FnZXMgbGlrZToKCSAgIk5hbWUgbmFtZSBpcyBub3QgdW5pcXVlIGluIGJpbiBiaW4sIG5vdCBhZGRpbmciCgkgIGJ5CgkgICJOYW1lICduYW1lJyBpcyBub3QgdW5pcXVlIGluIGJpbiAnYmluJywgbm90IGFkZGluZyIKCjIwMTAtMTItMDQgMjE6MDY6MzQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBGaXggcGVybWlzc2lvbnMgaWYgdW1hc2sgaXMgYnJva2VuCgkgIEZpeGVzOiAjNTY0MDU2LgoKMjAxMC0xMi0wNCAxNDoyMzo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlcyBhZnRlciBiYWNrc2xhc2ggaW4gTWFrZWZpbGUuYW0KCjIwMTAtMTItMDQgMTM6MTQ6MzkgKzAwMDAgIEtvb3AgTWFzdCA8a3dtQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB0ZXN0IHNvIGl0IHdvcmtzIHdpdGggRnJlZUJTRCdzIC9iaW4vc2gKCSAgVXNlICc9JyBpbnN0ZWFkIG9mICc9PScuIEZpeGVzOgoJICBjb25maWd1cmU6IHdvcmtpbmcgYysrIGNvbXBpbGVyIGZvdW5kOiB5ZXMKCSAgdGVzdDogeHllczogdW5leHBlY3RlZCBvcGVyYXRvcgoJICBodHRwOi8vYnVnemlsbGEtYXR0YWNobWVudHMuZ25vbWUub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTE3NTY5MgoKMjAxMC0xMi0wMyAxMToyOTozMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIFVzZSBnX3NucHJpbnRmKCkgaW5zdGVhZCBvZiBzbnByaW50ZigpCgoyMDEwLTEyLTAzIDE2OjQ0OjIzICswMTAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAc3Rlcmljc3Nvbi5jb20+CgoJKiBBbmRyb2lkLm1rOgoJKiBhbmRyb2lkL05PVElDRToKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9nc3QvZ3N0Y29uZmlnLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5jOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuaDoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdHZlcnNpb24uaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci5vdXRwdXQ6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmM6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LmM6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBhbmRyb2lkL3Rvb2xzLm1rOgoJICBBZGQgYnVpbGQgc3lzdGVtIGZvciBBbmRyb2lkCgoyMDEwLTEyLTAzIDE2OjAyOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBpbml0IHZhcmlhYmxlcyBpbiBfcmVpbml0KCkKCSAgUHJvcGVybHkgaW5pdGlhbGl6ZSB2YXJpYWJsZXMgaW4gX3JlaW5pdCgpIHRvbwoKMjAxMC0xMC0yMSAxODowODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIHN5bmMgY2xvY2sgd2FpdCBsb2NrZnJlZQoJICBNYWtlIHRoZSBjb21tb24gY2FzZSBsb2NrZnJlZS4KCjIwMTAtMTItMDMgMTI6MDQ6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiB1c2UgZnVuY3Rpb24gaW50cm9kdWNlZCBpbiBHTGliIDIuMjIgdW5jb25kaXRpb25hbGx5CgoyMDEwLTEyLTAzIDEyOjQyOjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogc21hbGwgY2xlYW51cHMKCjIwMTAtMTEtMDMgMTg6Mzg6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtYWtlIHN1cmUgd2UgcmVtb3ZlIHRoZSByZWFkZmQgbWVzc2FnZXMKCjIwMTAtMTEtMDMgMTg6MTY6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcG9sbDogYWRkIG1ldGhvZCB0byBnZXQgYSBHUG9sbEZECgoyMDEwLTExLTAzIDE3OjU2OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogUmVmYWN0b3IgYW5kIG1ha2UgbW9yZSBsb2NrZnJlZQoJICBSZWZhY3RvciB0aGUgd2FrZXVwIG9mIHRoZSBwb2xsIHRocmVhZC4KCSAgQWx3YXlzIG1ha2UgYSBjb250cm9sIHNvY2tldCB0byBtYWtlIHRoaW5ncyBlYXNpZXIuCgkgIE1ha2UgbW9yZSBtZXRob2RzIGxvY2tmcmVlLgoKMjAxMC0xMC0yMSAwMjowMjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1vdmUgbG9jayB0byB3aGVyZSBpdCBtYWtlcyBtb3JlIHNlbnNlCgoyMDEwLTEwLTIxIDAxOjE1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbWFrZSB0aW1lciBwb2xscyBsb2NrZnJlZQoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgdGFrZSBhIG11dGV4IGluIHRoZSBub3JtYWwgY29kZSBwYXRoIG9mIHRoZSB0aW1lcgoJICBwb2xsLgoKMjAxMC0xMi0wMiAxNzo1MTo1OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcmV0dXJuIHVwb24gaW5wdXQgd2hlbiBhbHJlYWR5IGVvcwoJICAuLi4gcmF0aGVyIHRoYW4gaGFuZ2luZyBpbmNvbWluZyB0aHJlYWQgKGFzIGNvbnNpZGVyZWQgZnVsbCBpbiBlb3MpLgoKMjAxMC0xMi0wMiAxNzo0OTowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jIHR5cG8KCjIwMTAtMTAtMTYgMTY6MTY6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHJlbW92ZSBzb21lIGNvbW1lbnRlZCBjb2RlCgoyMDEwLTEyLTAzIDEzOjUyOjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWRkIHN0ZGlvLmggZm9yIHNucHJpbnQKCjIwMTAtMTItMDMgMTE6Mjc6MTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFVzZSBhbiBvYmplY3QgYXMgZmlyc3QgYXJndW1lbnQgdG8gR1NUX1dBUk5JTkdfT0JKRUNUCgoyMDA5LTA0LTExIDE1OjA0OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIG1pY3JvLW9wdGltOiBpZiAoeCkgaXMgY2hlYXBlciB0aGFuIGlmICh4ID4gMCkgZm9yIHVuc2lnbmVkIGludGVnZXJzCgoyMDA5LTA0LTEwIDA5OjAxOjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBVc2Ugc3RydWN0dXJlIHByb3BlcnR5IGRpcmVjdGx5LCBhdm9pZCBmdW5jdGlvbiB2YXJpYWJsZS4KCSAgQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgY2FuIGFjY2VzcyB0aGUgc3RydWN0dXJlIGZpZWxkIG9mIGEgcXVlcnkgZGlyZWN0bHkuCgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxsIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKCkgdG8gZ2V0IGl0LCBhbG9uZyB3aXRoIGJlaW5nCgkgIGFibGUgdG8gcmVtb3ZlIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhhdAoJICBmdW5jdGlvbi4KCjIwMDktMDQtMTAgMDg6NTE6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiByZW1vdmUgdXNlbGVzcyB0ZXJuYXJ5IG9wZXJhdG9yIHVzYWdlLgoKMjAxMC0wOS0xNCAxMzowODo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnc3RldmVudDogVXNlIHN0cnVjdHVyZSBwcm9wZXJ0eSBkaXJlY3RseSwgYXZvaWQgZnVuY3Rpb24gdmFyaWFibGUuCgkgIEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGNhbiBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBmaWVsZCBvZiBhbiBldmVudCBkaXJlY3RseS4KCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGNhbGwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUoKSB0byBnZXQgaXQsIGFsb25nIHdpdGggYmVpbmcKCSAgYWJsZSB0byByZW1vdmUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGF0CgkgIGZ1bmN0aW9uLgoKMjAxMC0xMi0wMyAxMToxOToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcHVzaCBjYWNoZSB0byBidWZmZXJsaXN0cwoJICBBZGQgdGhlIHB1c2ggY2FoY2UgZm9yIHRoZSBidWZmZXJsaXN0IHB1c2ggY29kZSBwYXRoIGFzIHdlbGwuCgoyMDEwLTEyLTAzIDExOjExOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGNhY2hlIHRoZSBwZWVyIGNoYWluZnVuYwoJICBUaGVyZSBpcyBubyBuZWVkIHRvIGNhY2hlIHRoZSBwZWVyIGNoYWluZnVuY3Rpb24gYXMgd2UgY2FuIGp1c3QgYXMgZWZmaWNpZW50bHkKCSAgZ2V0IHRvIGl0IGZyb20gdGhlIHBlZXIgb2JqZWN0LiBBbHNvIG5vdCBjYWNoaW5nIHRoZSBjaGFpbiBmdW5jdGlvbiB3b3JrcyBiZXR0ZXIKCSAgYmVjYXVzZSB0aGVuIHdlIGF1dG9tYXRpY2FsbHkgZ2V0IHRoZSBuZXcgY2hhaW5mdW5jdGlvbnMgd2hlbiB0aGV5IGNoYW5nZS4KCjIwMTAtMTItMDMgMTA6NTI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBjbGVhciBwYWQgY2FjaGUgd2hlbiBpbnN0YWxsaW5nIHByb2JlcwoJICBNb3ZlIHRoZSBtZXRob2QgdG8gY2xlYXIgdGhlIHBhZCBjYWNoZSBpbnRvIF9wcml2YXRlLmgKCSAgQ2xlYXIgdGhlIHBhZCBjYWNoZSB3aGVuIGluc3RhbGxpbmcgcGFkIHByb2Jlcy4KCjIwMTAtMTAtMjAgMTc6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZXhwbGljaXRseSBpbmxpbmUgc29tZSBmdW5jdGlvbnMKCjIwMTAtMTAtMTMgMDI6NDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0xMC0xMyAwMjo0MjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbnZhbGlkYXRlIGNhY2hlcyBvbiBmbHVzaCBhbmQgcGFkIGJsb2NrCgoyMDEwLTEwLTEzIDAyOjIwOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHVucmVmIE5VTEwgY2FwcwoKMjAxMC0xMC0xMyAwMjoxNzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgaW52YWxpZGF0ZSBmdW5jdGlvbgoJICBNb3JlIHNtYWxsIG9wdGltaXNhdGlvbnMsIHJlbW92ZSB0aGUgdW5uZWVkZWQgdmFsaWQgYm9vbGVhbi4KCSAgQWRkIGZ1bmN0aW9uIHRvIGludmFsaWRlIHRoZSBjYWNoZS4KCSAgSW52YWxpZGF0ZSB0aGUgY2FjaGUgb24gdW5saW5rLgoKMjAxMC0xMC0xMyAwMTozNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDEwLTEwLTEzIDAxOjI1OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgcGFkIHB1c2ggY2FjaGluZwoJICBCdWlsZCB0aGUgY2FjaGUgd2hpbGUgd2UgcHVzaCBkYXRhLiBXaGVuIHdlIGRvbid0IGhhdmUgYSBjYWNoZSwgd2UgcnVuIHRoZQoJICBzbG93cGF0aCBhbmQgY29sbGVjdCBjYWNoZWFibGUgcHJvcGVydGllcy4gV2hlbiBhbGwgY29uZGl0aW9ucyBhcmUgbWV0LCBrZWVwIHRoZQoJICBjYWNoZWQgZGF0YSBhcm91bmQgc28gdGhhdCB3ZSBjYW4gbW9yZSBlZmZpY2llbnRseSBwdXNoIGRhdGEgYXJvdW5kLgoKMjAxMC0xMC0xMiAxMjoyOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBwcm90b3R5cGUgb2YgcGFkIHB1c2ggY2FjaGUKCSAgUHJvdG90eXBlIG9mIGhvdyB3ZSBjYW4gY2FjaGUgdGhlIHBlZXIgYW5kIGNhcHMgZm9yIGEgcGFkIGxpbmsuCgoyMDEwLTEyLTAzIDEyOjIzOjI3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgZG9jczogZml4IHByZXZpb3VzIGV4dHJhY3QucGwgY29tbWl0CgkgIE1ha2UgaXQgYWxzbyB3b3JrIGluIHRoZSBzcmNkaXI9YnVpbGRkaXIgY2FzZSBhZ2Fpbi4KCjIwMTAtMTAtMjAgMTE6NTg6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhdm9pZCB0YXNrIGxvY2sgZm9yIGVhY2ggaXRlcmF0aW9uCgkgIE1ha2UgdGhlIHRhc2sgc3RhdGUgYW4gYXRvbWljIHZhcmlhYmxlIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRha2luZyBhbmQgcmVsZWFzaW5nCgkgIHRoZSB0YXNrIGxvY2sgZm9yIGVhY2ggaXRlcmF0aW9uLgoKMjAxMC0xMi0wMyAxMDoxODoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IGZpeCBleGFtcGxlIG1hdGNoaW5nIGluIGV4dHJhY3QucGwKCSAgV2hlbiBidWlsZGluZyB3aXRoICRzcmNkaXIgIT0gJGJ1aWxkZGlyIG91dHB1dCB3b3VsZCBjb250YWluIHRoZSBidWlsZGRpciBwYXRoLgoJICBTdHJpcCB0aGUgcGF0aCB3aGVuIHNjYW5uaW5nIHRoZSB4bWwgZm9yIHRoZSBleGFtcGxlIG1hcmtlcnMuCgoyMDEwLTExLTE5IDE1OjA2OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBxdWVyeSBkb2MgaW1wcm92ZW1lbnRzCgkgIE1vcmUgeHJlZnMuIE1lbnRpb25lZCB0aGF0IHNvbWUgcXVlcmllcyBuZWVkIGEgcnVubmluZyBwaXBlbGluZS4KCjIwMTAtMTEtMTkgMTE6NDM6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogY2xhcmlmeSBsaXN0IGl0ZW0gdHlwZXMgaW4gY29tbWVudHMKCjIwMTAtMTEtMTkgMTA6Mjk6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IGFkZCB0d28gRklYTUUwLjExOiBjb21tZW50cwoKMjAxMC0xMS0xOSAxMDoyMzo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBhbGxvdyBkaXNhYmxpbmJnIHRoZSB0ZW1wbGF0ZSBuYW1lIGNvbmZvcm1hbmNlIGNoZWNrcwoKMjAxMC0xMS0xOCAxNjozMTozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiB0aGUgc3VwcGxpZWQgY2FwcyBtYXkgbm90IGJlIE5VTEwKCSAgVGhlcmUgaXMgYSBlYXJsaWVyIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIGNoZWNrLiBBbHNvCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCBkb2VzIG5vdCBoYXZlIHN1Y2ggYSBjaGVjay4KCjIwMTAtMTEtMDMgMTY6Mzc6MTAgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IFByaW50IHNpbmstbWVzc2FnZSBldmVudHMgbGlrZSBhIG1lc3NhZ2UgYW5kIHRoZSBHc3RNZXNzYWdlIHN0cnVjdHVyZQoKMjAxMC0xMS0wMSAxNTozMjo0MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkZXNpZ24tZG9jczogYWRkIGh0bWwgb3V0cHV0IHVzaW5nIGFzY2lpZG9jCgkgIFVuaWZ5IHRoZSBhZC1ob2MgbWFya3VwIHRvIGJlIGFzY2lpZG9jIHN0eWxlIGluIG1hbnkgcGxhY2VzLiBBZGQgYSAiaHRtbCIgdGFyZ2V0CgkgIHRvIE1ha2VmaWxlIHRvIGdlbmVyYXRlIHRoZSBvdXRwdXQuCgoyMDEwLTEwLTE5IDE0OjI3OjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogbW9yZSBkZWZhdWx0IG5hbWUgZ2VuZXJhdGlvbiBtb3JlIGVmZmljaWVudAoJICBTYXZlIH4yMDAwIG1hbGxvYy9tZW1jcHkvZnJlZSBwYWlycyBhdCBzdGFydHVwIGJ5IHJ1bm5pbmcgdG9fbG93ZXIgaW4tcGxhY2UuCgkgIEFsc28gc2tpcCB0aGUgbnVtYmVycyBhcyB3ZSBjYW4uCgoyMDEwLTEwLTE4IDE0OjQ1OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiB1c2UgdGhlIHBhcmVudF9jbGFzcyBmcm9tIEdfREVGSU5FX1RZUEUgbWFjcm8gYW5kIGRyb3AgZXh0cmEgY29weQoKMjAxMC0xMC0yMCAxNDoyNzoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgZ19pbnRlcm5fc3RyaW5nIGZvciBpbnRlcmZhY2UgbmFtZXMKCjIwMTAtMTAtMTggMTM6Mjk6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGFsc28gaW50ZXJuIHRoZSBzdGF0aWMgY2FwcwoKMjAxMC0xMi0wMyAwMDowMDowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtZXRhLWRhdGEgY2FuIGJlIE5VTEwKCjIwMTAtMTItMDIgMTY6Mjg6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGhhbmRsaW5nIG9mIHRpbWV6b25lcwoJICBGaXggcmV0dXJuaW5nIG9mIHRpbWV6b25lcyBvbiBzeXN0ZW1zIHdpdGggZ2RhdGV0aW1lCgkgIHRvIHVzZSBmbG9hdHMgb24gdGhlIG1hdGggZXhwcmVzc2lvbiB0byBhdm9pZAoJICB0cnVuY2F0aW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQuCgkgIEFsc28gYWRkcyBhIHRlc3QgZm9yIGNvdmVyaW5nIHRoaXMgY2FzZS4KCjIwMTAtMTItMDIgMTk6NDQ6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IERvbid0IGJyZWFrIEFCSQoJICBUaGUgb3JkZXIgb2YgdGhlIGZpZWxkIHdhcyB3cm9uZywgYW5kIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgZGlkbid0CgkgIGVuZCB1cCBiZWluZyB0aGUgc2FtZS4KCjIwMTAtMTEtMjUgMTg6NDg6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgYmFzZXNpbms6IHJld29yayBwb3NpdGlvbiByZXBvcnRpbmcgY29kZQoJICBVbmlmeSB0aGUgZGlmZmVyZW50IHBvc2l0aW9uIHJlcG9ydGluZyBjb2RlIHBhdGhzIHRvIG1ha2UgaXQgbW9yZQoJICB1bmRlcnN0YW5kYWJsZS4KCSAgVXNlIHN0YXJ0X3RpbWUgdG8gZ2V0IG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHBhdXNlZC4KCSAgRml4IHVuaXQgdGVzdHMgZm9yIG1vcmUgYWNjdXJhdGUgcmVwb3J0aW5nLgoKMjAxMC0xMS0yNSAxNjowNjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBlcmZvcm0gd2FpdF9wcmVyb2xsIGluIGEgd2hpbGUgbG9vcAoJICBXZSBuZWVkIHRvIGNvbnRpbnVlIGNhbGxpbmcgd2FpdF9wcmVyb2xsKCkgYXMgbG9uZyBhcyB0aGUgbmVlZF9wcmVyb2xsIHZhcmlhYmxlCgkgIGlzIHRydWUuCgoyMDEwLTExLTE3IDE2OjQ2OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZXR1cm4gaW1tZWRpYXRlbHkgZm9yIC0xIGNvbnZlcnNpb24KCSAgV2hlbiB3ZSBhcmUgYXNrZWQgdG8gY29udmVydCAtMSwgd2UgY2FuIHJldHVybiBpbW1lZGlhdGVseSB3aXRoIGEgLTEgcmV0dXJuCgkgIHZhbHVlLgoKMjAxMC0xMS0xNyAxNjo0MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYSBjb252ZXJ0IHF1ZXJ5IGNhbiBoYXZlIGEgLTEgaW5wdXQgdmFsdWUKCSAgSXQgaXMgYWxsb3dlZCB0byBwYXNzIC0xIHRvIHRoZSBzcmNfdmFsIGZvciBhIGNvbnZlcnQuCgoyMDEwLTExLTE2IDEyOjIwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGJhc2VzaW5rOiBhbHNvIHByZXJvbGwgYWZ0ZXIgYSBmbHVzaCB3aXRoIGFzeW5jPWZhbHNlCgkgIE1ha2Ugc3VyZSB0byBwcmVyb2xsIGFmdGVyIGEgZmx1c2ggZXZlbiB3aGVuIHdlIGFyZSBhc3luYz1mYWxzZS4KCSAgQWRkIHVuaXQgdGVzdC4KCSAgRml4ZXMgIzYzNDk2NQoKMjAxMC0xMS0xNSAxODoyMDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUuCgoyMDEwLTExLTE1IDE4OjE3OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogbG9jayBzcmMgc3RhdGUgdG8gYXZvaWQgZXJyb3IgY2FzZXMKCSAgTG9jayB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IG9yIGVsc2UgdGhlIHBpcGVsaW5lIG1pZ2h0IGdvIGludG8gdGhlIGVycm9yCgkgIHN0YXRlIHdoZW4gd2Ugc2V0IGl0IHRvIFBBVVNFRCBsYXRlci4KCjIwMTAtMTEtMTUgMTI6NDk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGF2b2lkIHVzaW5nIGludmFsaWQgY2xvY2sgdGltZXMKCSAgQmUgZXh0cmEgY2FyZWZ1bCB0byBub3QgdXNlIGludmFsaWQgY2xvY2sgdGltZXMgYnV0IGdpdmUgYSB3YXJuaW5nIGluc3RlYWQuIFRoaXMKCSAgc2hvdWxkIG1ha2UgdGhpbmdzIHdvcmsgYmV0dGVyIHdpdGggZmF1bHR5IGNsb2NrIGltcGxlbWVudGF0aW9ucy4KCjIwMTAtMTEtMTEgMTA6NDE6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBpbXByb3ZlIHNvbWUgY29tbWVudHMgYWJvdXQgdGhlIHppZ3phZyBpbnRlcnNlY3Rpb24KCjIwMTAtMTItMDIgMTM6MDQ6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgdW51c2VkIHN5bWJvbHMgdG8gcHJvcGVyIHNlY3Rpb25zCgoyMDEwLTEyLTAyIDEzOjAzOjU3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdERhdGVUaW1lIHNlY3Rpb24gYW5kIHVwZGF0ZSBpdCBmb3IgbGF0ZXN0IHN5bWJvbHMKCjIwMTAtMTAtMTkgMTg6MDk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE9ubHkgY2FsbCB1cGRhdGVfYnVmZmVyaW5nIGlmIG5lZWRlZC4KCSAgdXBkYXRlX2J1ZmZlcmluZyBpcyBzbyBiaWcgaXQgd2lsbCBuZXZlciBiZSBpbmxpbmVkIChhbmQgc2hvdWxkbid0KSwKCSAgd2UgdGhlcmVmb3JlIG1vdmUgdGhlIGNoZWNrIG91dHNpZGUgb2YgaXQuCgoyMDEwLTEwLTE5IDE3OjQ1OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBBdm9pZCByZS1jaGVja2luZyBtYW55IHRpbWVzIHdoZXRoZXIgYW4gaXRlbSBpcyBhIGJ1ZmZlcgoJICBBdm9pZHMgY2FsbGluZyA2IHRpbWVzIGdzdF9idWZmZXJfZ2V0X3R5cGUoKSBmb3IgZXZlcnkgaXRlbSBjb21pbmcKCSAgdGhyb3VnaCBxdWV1ZTIKCjIwMTAtMTAtMTkgMTc6NDM6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlZHVjZSBhbW91bnQgb2YgdGltZSBsb2NrcyBhcmUgdGFrZW4KCjIwMTAtMTAtMTkgMTc6NDI6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeHVwIGRvY3VtZW50YXRpb24gb2Ygc29tZSBwcm9wZXJ0aWVzCgoyMDEwLTEwLTE5IDE3OjQwOjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBdm9pZCB1c2VsZXNzIHNlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgY2FsY3VsYXRpb25zLgoJICAqIENhY2hlIHNyYyBhbmQgc2luayB0aW1lCgkgICogVXNlIGEgYm9vbGVhbiB0byBrbm93biB3aGV0aGVyIHNyYy9zaW5rIHRpbWUgbmVlZHMgdG8gYmUgcmVjYWxjdWxhdGVkCgkgIEF2b2lkcyA1MCUgb2YgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkKCjIwMTAtMTAtMjAgMTc6NDE6MjggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZS11c2luZyBHc3RDbG9ja0lEIGluc3RlYWQgb2YgY29uc3RhbnRseSByZWNyZWF0aW5nIG9uZQoJICBNYWtlcyBfc2lua193YWl0X2Nsb2NrIGF0IGxlYXN0IDIgdGltZXMgZmFzdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDE3OjQwOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2xvY2s6IE5ldyBBUEkgdG8gcmUtdXNlIGEgc2luZ2xlIHNob3QgR3N0Q2xvY2tJRAoJICBBUEk6IGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxMzo1MjowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBhc3MgYWxvbmcgbWluaW9iamVjdCB0eXBlIHRocm91Z2ggdmFyaW91cyBmdW5jdGlvbnMKCSAgQXZvaWRzIGRvaW5nIHVzZWxlc3MgR1NUX0lTXyoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxMzowODowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFN3aXRjaCBlbmFibGVfbGFzdF9idWZmZXIgdG8gYW4gYXRvbWljIGludAoJICBBdm9pZHMgaGF2aW5nIHRvIHRha2UgYSBsb2NrIHRvIHJlYWQvd3JpdGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMTkgMTU6NTM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdXNlbGVzcyBjaGVja3MgZnJvbSBlNDA2ZjcKCSAgc3JjcmVzdWx0IHdhcyBiZWluZyByZWNoZWNrZWQgaW4gcGxhY2VzIGl0IGNvdWxkbid0IGhhdmUgY2hhbmdlZC4KCSAgcXVldWUgbGV2ZWwgd2FzIGJlaW5nIHJlY2hlY2tlZCBpbiBwbGFjZXMgaXQgY291bGRuJ3QgaGF2ZSBjaGFuZ2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzgwCgoyMDEwLTEwLTEzIDEzOjUwOjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBPbmx5IGVtaXQgZ19jb25kX3NpZ25hbCB3aGVuIG5lZWRlZAoJICBLZWVwIHRyYWNrIG9mIHdoaWNoIGNvbmQgd2UncmUgd2FpdGluZyBmb3IgYW5kIG9ubHkgZW1pdCB3aGVuIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OQoKMjAxMC0xMC0yMCAxNzoxMjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IG1vdmUgZ19yZXR1cm5faWZfZmFpbCB0byB3aGVyZSBpdCBpcyBuZWVkZWQKCjIwMTAtMTEtMDMgMTE6MTQ6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgdmVyc2lvbjogVGFrZSBuYW5vIHZlcnNpb24gaW50byBhY2NvdW50IGluIEdTVF9DSEVDS19WRVJTSU9OKCkKCSAgSWYgdGhlIG5hbm8gaXMgPiAwIHRoZSBjdXJyZW50IHZlcnNpb24gc2hvdWxkIGJlIGhhbmRsZWQgdGhlIHNhbWUgYXMKCSAgbWljcm8gKyAxLgoKMjAxMC0xMS0wMSAxNjozNDo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2V0IHRoZSBldmVudCBzb3VyY2Ugb2JqZWN0IGlmIG5vbmUgaXMgc2V0IHlldCBpbiBnc3RfcGFkX3B1c2hfZXZlbnQoKQoJICBPdGhlcndpc2UgdGhlIHNvdXJjZSB3aWxsIHN0YXkgYXQgTlVMTCwgdGhlIGV2ZW50IGlzIHBhc3NlZCB0byB0aGUKCSAgcGVlcnBhZCB2aWEgZ3N0X3BhZF9zZW5kX2V2ZW50KCkgYW5kIHRoZW4gdGhlIHBlZXJwYWQgaXMgc2V0IGFzCgkgIHNvdXJjZSBvZiB0aGUgZXZlbnQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYXRpbmcgcGFkLgoKMjAxMC0xMC0zMSAxODo0ODoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQgYW5kIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0xMC0zMSAxODo0Njo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQgYW5kIG1vdmUgdmFyaWFibGUgZGVjbGFyYXRpb24gaW50byBpbm5lciBibG9jawoKMjAxMC0xMC0zMSAxODoyMzowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGUKCSAgT3RoZXIgdGhhbiBzYXZpbmcgYW4gaW1tZW5zZSBhbW91bnQgb2YgNCBieXRlcyBvZiBtZW1vcnkgdGhpcwoJICBwcmV2ZW50cyBjbGFuZyBmcm9tIGNvbXBsYWluaW5nIGFuZCBrZWVwcyB0aGUgcmluZyBidWZmZXIgc3RhdGUKCSAgaW4gYSBzaW5nbGUgdmFyaWFibGUgaW5zdGVhZCBvZiB0d28uCgoyMDEwLTEwLTIwIDEwOjE4OjE4ICswMjAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdHRhc2s6IFNldCB0aHJlYWQgbmFtZXMgb24gV2luZG93cyB3aXRoIE1TVkMgaWYgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZAoJICBGaXhlcyBidWcgIzYzMjE2OC4KCjIwMTAtMTAtMTkgMTU6NTI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJICBtYWNyb3M6IERlZmluZSByZXN0cmljdCBrZXl3b3JkIGlmIG5vdCBhdmFpbGFibGUKCSAgVGhpcyBjaGFuZ2UgYWx3YXlzIGRlZmluZXMgdGhlIHJlc3RyaWN0IGtleXdvcmQgaWYgYQoJICBub24tQzk5IEMgY29tcGlsZXIgaXMgdXNlZC4gSW4gdGhlIGNhc2Ugb2YgR0NDID49IDQKCSAgaXQgd2lsbCBiZSBkZWZpbmVkIHRvIF9fcmVzdHJpY3RfXywgaW4gYWxsIG90aGVyCgkgIGNhc2VzIHRvIG5vdGhpbmcuIFRoaXMgYWxsb3dzIHRvIHVzZSB0aGUgcmVzdHJpY3QKCSAga2V5d29yZCB1bmNvbmRpdGlvbmFsbHkuCgoyMDEwLTEyLTAxIDIzOjU3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IHRvID49IDIuMjIKCSAgU2VlIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMC0xMi0wMSAyMzo1Njo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjMxID09PQoKMjAxMC0xMS0zMCAxNzo0MDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzEKCjIwMTAtMTEtMjcgMTk6MTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBhdm9pZCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5ncyBjYXVzZWQgYnkgR1NUX0JPSUxFUlBMQVRFX0ZVTEwKCSAgVGhlIHVudXNlZCBkYXRhIHBhcmFtZXRlciBpbiB0aGUgY2xhc3NfaW5pdCB0cmFtcG9saW5lIGZ1bmN0aW9uCgkgIHNlZW1zIHRvIGNhdXNlIHdhcm5pbmdzIHdpdGggc29tZSBjKysgY29tcGlsZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1ODY5CgoyMDEwLTExLTA5IDIzOjI3OjE3IC0wMzAwICByZXluYWxkbyA8cmV5bmFsZG9Ab3BlbmRvdC5jbD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6IHNvbWUgc21hbGwgZml4ZXMgdG8gdGhlIHBsdWdpbiB3cml0ZXIncyBndWlkZQoJICBGaXggd3JvbmdseSBwbGFjZWQgZXhhbXBsZSBhbmQgd2VpcmRseSBwaHJhc2VkICdub3RlJyBsYWNraW5nIHByb3BlcgoJICBmb3JtYXR0aW5nLiBGaXggbWlzc2luZyBoaW50IGZvciBhdXRvZ2VuLnNoIGxvY2F0aW9uIGFuZCByZXBocmFzZQoJICAnYnVpbHQgYW5kIGluc3RhbGxlZCcgc2VudGVuY2UuIEZpeCB3cm9uZ2x5IHBocmFzZWQgYW5kIHJlZHVuZGFudAoJICBwYXJhZ3JhcGggaW4gUFdHCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ5MjEKCjIwMTAtMTEtMjcgMTE6MDI6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgbWFudWFsOiBJbXByb3ZlIHN0YXRlcyBkb2N1bWVudGF0aW9uCgkgIEJlIG1vcmUgZXhwbGljaXQgYWJvdXQgYmVpbmcgb24gTlVMTCBiZWZvcmUgdW5yZWZzCgoyMDEwLTExLTIwIDE0OjU0OjIzIC0wODAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBJbmNsdWRlIGV4cG9ydGVkIHBhY2thZ2VzIGluZm9ybWF0aW9uIGluIEdJUnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTM4OQoKMjAxMC0xMS0xOCAwMDoyOTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC41IHByZS1yZWxlYXNlCgoyMDEwLTExLTE4IDAwOjI5OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGNhcHMgbGVhayBpbiBlbGVtZW50IGZhY3RvcnkgbGlzdCB1dGlsaXR5IGZ1bmN0aW9ucwoKMjAxMC0xMS0xNyAyMzo1NTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2RhLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2h1LnBvOgoJKiBwby9zay5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTEtMTcgMDk6Mzk6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IEFkZCBfZnJvbV91bml4X2Vwb2NoIHZhcmlhbnRzCgkgIEFkZHMgMiB2YXJpYW50cyBmb3IgdGhlIGdzdF9kYXRlX3RpbWVfZnJvbV91bml4X2Vwb2NoIGZ1bmN0aW9uLAoJICBvbmUgZm9yIFVUQyBhbmQgYW5vdGhlciBmb3IgbG9jYWwgdGltZS4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2hfdXRjCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoX2xvY2FsX3RpbWUKCSAgRml4ZXMgIzY1MzAzMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1MDMxCgoyMDEwLTExLTAzIDE0OjIxOjAyICswMDAwICBWbGFkaW1pciBFcmVtZWV2IDx3bDI3NzZAZ21haWwuY29tPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0OiBkb24ndCByZS1kZWZpbmUgX1VTRV9NQVRIX0RFRklORVMgaWYgYWxyZWFkeSBkZWZpbmVkCgkgIFRoaXMgYXZvaWRzIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMzODg2CgoyMDEwLTExLTAxIDE2OjA2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjQgcHJlLXJlbGVhc2UKCjIwMTAtMTEtMDEgMTU6MzY6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0zMSAyMDoxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGxlYWsgcGFkIHJlZiBpbiBwdWxsIG1vZGUgd2hlbiBmbHVzaGluZwoJICBGaXggcGFkIGxlYWsgd2hlbiBxdWV1ZTIgaXMgZmx1c2hpbmcgb3IgYmVpbmcgc2h1dCBkb3duLgoKMjAxMC0xMC0zMSAxOTo0NzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGRvbid0IHNlbmQgc2Vla3MgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgdXBzdHJlYW0gaW4gcHVsbCBtb2RlCgkgIElmIGRvd25zdHJlYW0gaXMgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSwgc2hvcnQtY2lyY3VpdCBhbnkgcHVsbHMgYmV5b25kCgkgIHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIHJldHVybiBGTE9XX1VORVhQRUNURUQgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZgoJICBzZW5kaW5nIGEgc2VlayBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSB1cHN0cmVhbSwgc2luY2UgdGhpcyBtaWdodAoJICBjb25mdXNlIHVwc3RyZWFtIGVsZW1lbnRzIChhbmQvb3IgaHR0cCBzZXJ2ZXJzLCBmb3IgZXhhbXBsZSkuIEZpeGVzCgkgIHBsYXliYWNrIG9mIGFwcGxlIHRyYWlsZXJzIGluIHRvdGVtIGFuZCB5b3V0dWJlL2h0bWw1IGNsaXBzIGluCgkgIFdlYmtpdEdUSysuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI5NzcKCjIwMTAtMTAtMjggMjM6Mjg6MTUgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBpbnB1dCBwb3NpdGlvbiBmb3IgcXVlcmllcyBpZiB3ZSBoYXZlIG5vIG91dHB1dCBwb3NpdGlvbgoKMjAxMC0xMC0yOCAxMzoyOTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmV2ZXJzZSBuZWdvdGlhdGlvbgoJICBXaGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgc3VnZ2VzdHMgYSBuZXcgZm9ybWF0LCBwYXNzIHRoZSBzdWdnZXN0aW9uCgkgIHVwc3RyZWFtIGlmIHdlIGNhbid0IGNvbnZlcnQgdG8gaXQuCgkgIEZpeGVzICM2MzMxNDcKCjIwMTAtMTAtMjcgMTg6MTI6MzYgKzAyMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggdHJhY2tpbmcgb2YgdW5saW5rZWQgc3RyZWFtcy4KCSAgMzMwODJlYjllNDJjNTJlNGRmODQ4MTk1OTQ2ZjFiN2JiY2U3NjhjNSBpbnRyb2R1Y2VkIGEgYnVnCgkgIHByZXZlbnRpbmcgc3BhcnNlIHVubGlua2VkIHN0cmVhbXMgZnJvbSBhZHZhbmNpbmcgcHJvcGVybHksCgkgIGxlYWRpbmcgdG8gdGhlIHF1ZXVlIGJsb2NraW5nLgoJICBGaXhlczogIzYzMzE3NgoKMjAxMC0xMC0yNyAxODoxMTozNSArMDIwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogQWRkIGEgbXVsdGlxdWV1ZSBzcGFyc2Ugc3RyZWFtcyB0ZXN0CgoyMDEwLTEwLTI3IDEzOjE2OjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdiYmQ3MDggdG8gMDExYmNjOAoKMjAxMC0xMC0yMiAxNzozNToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC4zIHByZS1yZWxlYXNlCgoyMDEwLTEwLTE4IDE3OjQyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogY29uc3QtaWZ5IGJ5dGUgcmVhZGVyIGFyZ3VtZW50IGluIHBlZWsvc2NhbiBBUEkKCSAgQmVjYXVzZSB3ZSBjYW4uCgoyMDEwLTEwLTIyIDExOjUyOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBGaXggNjRiaXQgY29uc3RhbnQKCSAgQmFzaWNhbGx5IHdlJ3JlIG5vdCBtZWFudCB0byBwdXQgYW55dGhpbmcgbW9yZSBjb21wbGV4IHRoYW4gc2ltcGxlIG51bWJlcnMsCgkgIGR1ZSB0byB0aGUgZGVmaW5pdGlvbiBvZiBHX0dVSU5UNjRfQ09OU1RBTlQ6CgkgIEdfR1VJTlQ2NF9DT05TVEFOVCh2YWwpCSh2YWwjI1VMKQoJICBXaGljaCBwcmV2aW91c2x5IHJlc3VsdGVkIGluIC4uLi4gMSA8PCA0OVVMCgoyMDEwLTEwLTE4IDEwOjQ2OjU5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlY29tcHV0ZSBjb3JyZWN0IHJ1bm5pbmcgdGltZSBmb3IgYnVmZmVyIGVuZGluZyBmbHVzaGluZyBzdGVwCgkgIFByZXZlbnRzIGRlbGF5aW5nL2hhbmdpbmcgd2hlbiByZXN1bWluZyBQTEFZSU5HLgoJICBGaXhlcyAjNjMyNDMzLgoKMjAxMC0xMC0xNiAxOToxOTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIGRvY3M6IGZpeCBtaXNjLiBndGstZG9jIHdhcm5pbmdzIGluIGxpYnMKCSAgKGZvciBndGstZG9jIDEuMTUpCgoyMDEwLTEwLTE2IDE4OjI2OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIFJldmVydCAibGlicy9nc3QvZGF0YXF1ZXVlOiBEb2N1bWVudCBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MDcyN2MxMTc3MDM1MDdmNzkwYTg2YjA5NjJhYjNkOTE1ZTVhNDkxLgoJICBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4gZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKSBpcyBhbHJlYWR5CgkgIGRvY3VtZW50ZWQgYWJvdmUuIEFuZCB3ZSBuZWVkIHRoZSBkb2MgYmx1cmIgZm9yIF9uZXcoKSBoZXJlLgoKMjAxMC0xMC0xNiAxNzowMDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBmbGVzaCBvdXQgcmVsZWFzZSBpbnN0cnVjdGlvbnMgYSBiaXQgbW9yZQoKMjAxMC0xMC0xNiAxNjo1Mzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogYWRkIHNvbWUgZ3RrLWRvYyBTaW5jZTogbWFya2VycwoJICBBZGQgc29tZSBndGstZG9jIFNpbmNlOiBtYXJrZXJzLCBmaXggb25lIFNpbmNlOiBtYXJrZXIsCgkgIGZpeCB0eXBvLgoKMjAxMC0xMC0xNiAwMDoyNTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjIgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTYgMDA6MTQ6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZXMucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTEwLTE1IDE5OjQ1OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiB1c2VmdWwgZmFjdG9yeSBuYW1lcyBmb3IgdXJpLWhhbmRsZXJzIG91dHB1dAoJICBGaXhlcyAjNjMyMjM2LgoKMjAxMC0xMC0xNCAxMjozMTozMiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVhNjY4YmYgdG8gN2JiZDcwOAoKMjAxMC0xMC0xMiAxNToxMzo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGRhdGV0aW1lOiBVc2Ugc2Vjb25kcyBhcyBkb3VibGUKCSAgVXNlIHNlY29uZHMgYXMgZG91YmxlIHRvIG1ha2UgQVBJIHNpbWlsYXIgdG8gZ2xpYidzCgkgIGdkYXRldGltZS4gQWxzbyBtb3ZlIHRpbWV6b25lIHBhcmFtZXRlciB0byB0aGUKCSAgZmlyc3QgcG9zaXRpb24sIGp1c3QgbGlrZSBnbGliJ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMTAtMTEgMTY6MTU6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBNb3ZlIGRvYyBvdXRzaWRlIHRoZSBpZmRlZnMKCSAgTW92ZSB0aGUgZGF0ZXRpbWUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb25zIG91dHNpZGUgdGhlCgkgIGlmZGVmcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTA5LTI3IDE5OjM1OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IFVzZSBHRGF0ZVRpbWUgaWYgYXZhaWxhYmxlCgkgIFVzZSBHRGF0ZVRpbWUgaW50ZXJuYWxseSBvbiBHc3REYXRlVGltZSBpZiBnbGliIGFscmVhZHkKCSAgcHJvdmlkZXMgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMDktMjggMTc6NDY6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgZ2xpYi1wcml2YXRlOiBBZGQgaW5jbHVkZSBwcm90ZWN0aW9uIG1hY3JvCgoyMDEwLTEwLTEzIDEyOjUxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgZ3VhcmQgdG8gYnVmZmVyX3NldF9jYXBzKCkgdGhhdCBjaGVja3MgaWYgY2FwcyBhcmUgc2ltcGxlCgoyMDEwLTEwLTEzIDE1OjU2OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGFkZCBhIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUwoKMjAwOS0xMC0wMSAxMToxNDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGxpYnMvZ3N0L2RhdGFxdWV1ZTogRG9jdW1lbnQgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwKCjIwMDktMDktMjggMTM6MzU6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBiYXNlL2dzdGRhdGFxdWV1ZTogaW5saW5lIHNvbWUgZnVuY3Rpb25zLCBnZXQgbGV2ZWxzIHdpdGggbWVtY3B5LgoKMjAxMC0xMC0xMyAxMTo1NDowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIHVudXNlZCBhcmd1bWVudCBmcm9tIGZpbmRfcmFuZ2UoKQoKMjAxMC0xMC0xMyAxMTo1MjoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogY2xlYW51cCBnZXRfcHJvcGVydHkvc2V0X3Byb3BlcnR5CgoyMDEwLTEwLTEyIDE4OjQ4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhdm9pZCBnX2NvbmRfc2lnbmFsIHdoZW4gd2UgY2FuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBjb25kIHdlIGFyZSB3YWl0aW5nIG9uIGFuZCBvbmx5IHNpZ25hbCB3aGVuIHNvbWUgb3RoZXIgdGhyZWFkCgkgIGlzIHdhaXRpbmcuCgoyMDEwLTEwLTExIDE5OjI3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIGR1cGxpY2F0ZSB0eXBlIGNoZWNrIHdoZW4gZnJlZWluZyBtaW5pb2JqZWN0CgkgIGdzdF9taW5pX29iamVjdF91bnJlZigpIGhhcyBndWFyZHMgdGhhdCBjaGVjayB0aGUgdHlwZSBhbHJlYWR5LCBzbwoJICB3ZSBkb24ndCByZWFsbHkgbmVlZCB0byByZS1jaGVjayBpdCBoZXJlIGFnYWluIHdoaWxlIGdldHRpbmcgdGhlCgkgIGNsYXNzICh0aGVyZSdzIG5vdCByZWFsbHkgbXVjaCBwb2ludCB0byB0aGF0IGFueXdheSwgc2luY2Ugd2UgZG9uJ3QKCSAgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZ2V0X2NsYXNzLCBzbyB3ZSdkIGNyYXNoIGFueXdheSBpZgoJICB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgbWluaSBvYmplY3QsIHRoZSBvbmx5IHF1ZXN0aW9uIHdvdWxkCgkgIGJlIGlmIHRoZXJlJ2QgYmUgYSB3YXJuaW5nIGJlZm9yZSB0aGUgY3Jhc2ggb3Igbm90KS4KCjIwMTAtMTAtMTEgMTg6NTU6MTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBEaXJlY3RseSBpbmNyZWF0ZSBtaW5pX29iamVjdCBpbiBtaW5pX29iamVjdF9mcmVlKCkKCSAgU3BlZWRzIHVwIG1pbmlfb2JqZWN0X3VucmVmIGJ5IDI1JSBieSBhdm9pZGluZyB0aGUgdHlwZWNoZWNrIHdoaWNoCgkgIGlzIGF2b2lkYWJsZSBoZXJlIHNpbmNlIGl0IGlzIG9ubHkgY2FsbGVkIG9uIGV4aXN0aW5nIG1pbmlvYmplY3RzLgoKMjAxMC0xMC0xMSAxODozMDo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IFJlbW92ZSBjb25mdXNpbmcgREVCVUdfUkVGQ09VTlQgZGVmaW5lCgkgIHRoZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB3aWxsIGJlIHNpbGVuY2VkIGF1dG9tYXRpY2FsbHkgaWYgZGVidWdnaW5nCgkgIGlzIGRpc2FibGVkLCBhbmQgdGhlIHR5cGUgY2hlY2sgaXMgYWN0dWFsbHkgcmVxdWlyZWQuCgoyMDEwLTEwLTExIDE4OjEwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWxlYXNlIHF1ZXVlMiBsb2NrIGJlZm9yZSBub3RpZnkKCSAgTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgaG9sZCB0aGUgbG9jayB3aGVuIHdlIG5vdGlmeSB0aGUgdGVtcC1sb2NhdGlvbgoJICBwcm9wZXJ0eSwKCSAgRml4ZXMgIzYzMTg1MwoKMjAxMC0xMC0xMSAxNjo0NToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGFkZCBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMTAtMTEgMTA6Mjc6NTIgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGFwcGx5IHNpbmsgc2VnbWVudCBvbiB0aGUgc291cmNlIGlmIHF1ZXVlIGlzIGVtcHR5CgkgIEFwcGx5IHRoZSBzaW5rIHNlZ21lbnQgb24gdGhlIHNvdXJjZSBpbW1lZGlhdGx5IHdoZW4gaXQgaXMgcmVjZWl2ZWQKCSAgYW5kIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHF1ZXVlLgoJICBTb2x2ZXMgIzQ4MjE0NwoKMjAxMC0xMC0xMSAxNTo1MToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZG9jdW1lbnRhdGlvbiBmb3IgaXRlcmF0ZV9zb3VyY2VzCgoyMDEwLTEwLTExIDE2OjQxOjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogdXNlIHRoZSBndGstZG9jIHNob3J0Y3V0cyB0byBnZXQgY29sb3VyZWQgYW5kIHhyZWZlZCBleGFtcGxlCgoyMDEwLTEwLTExIDE0OjIwOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbml0aWFsaXplIHZhcmlhYmxlCgoyMDEwLTEwLTExIDEwOjU2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEltcHJvdmUgdHJhY2tpbmcgb2Ygc291cmNlIGVsZW1lbnRzCgkgIFRyYWNrIGVsZW1lbnRzIHRhZ2dlZCB3aXRoIHRoZSBJU19TT1VSQ0UgZmxhZyBpbiBhIHNpbWlsYXIgd2F5IHdlIHRyYWNrIHRoZSBzaW5rCgkgIGVsZW1lbnRzLiBUaGlzIGFsbG93cyB1cyB0byBlZmZpY2llbnRseSBkaXNwYXRjaCBkb3duc3RyZWFtIGV2ZW50cyB0byB0aGUgcmlnaHQKCSAgZWxlbWVudHMuCgoyMDEwLTEwLTExIDEwOjU1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHRhZyBhcyBhIFNPVVJDRSBlbGVtZW50CgkgIFRhZyBhbGwgZWxlbWVudHMgZGVyaXZpbmcgZnJvbSB0aGUgYmFzZXNyYyB3aXRoIHRoZSBJU19TT1VSQ0UgZmxhZy4KCjIwMTAtMTAtMTEgMTA6NTM6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgSVNfU09VUkNFIGZsYWcKCSAgQWRkIHRoZSBHU1RfRUxFTUVOVF9JU19TT1VSQ0UgZmxhZyBzbyB0aGF0IHdlIGNhbiB0YWcgc291cmNlIGVsZW1lbnRzIGxpa2Ugd2UKCSAgY2FuIHdpdGggc2luayBlbGVtZW50cy4KCjIwMTAtMTAtMDkgMTQ6MTg6NDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8b2dnLmsub2dnLmtAZ29vZ2xlbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGdfbWFwcGVkX2ZpbGVfdW5yZWYgZXhpc3RzIGFscmVhZHkgc2luY2UgR0xpYiAyLjIxLjMKCjIwMTAtMTAtMTAgMTg6MTQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlcG9ydCB0aGUgb3V0cHV0IHBvc2l0aW9uIG9uIFBPU0lUSU9OIHF1ZXJpZXMgb24gdGhlIHNyY3BhZAoJICBUaGVyZSBjYW4gYmUgYSBkaWZmZXJlbmNlIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCBsYXN0X3N0b3AuCgkgIEZpeGVzIGJ1ZyAjNjI5NDEwLgoKMjAxMC0xMC0wOCAxMjo0MzoyMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0YThhZGMgdG8gNWE2NjhiZgoKMjAxMC0xMC0wOCAxMjo1NDo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGFuZCBzaW1wbGlmeSBjb2RlCgkgIG9sZGlkIHdhcyBvbmx5IHVzZWQgd2hlbiB3ZSB3ZXJlIGRvaW5nIG11bHRpcGxlIHBvcHMgcGVyIGxvb3AuCgoyMDEwLTEwLTA4IDEyOjUwOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWUzYzliZiB0byBjNGE4YWRjCgoyMDEwLTEwLTA4IDEyOjQ4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBtaXNzaW5nIGZpbGUKCjIwMTAtMTAtMDggMTI6MTg6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bmNoZWNrZWQgdmFyaWFudHMgb2YgdGhlIHdyaXRpbmcgZnVuY3Rpb25zCgkgIFRoZXNlIGRvbid0IGNoZWNrIGlmIHRoZXJlJ3MgZW5vdWdoIGZyZWUgc3BhY2UgYXZhaWxhYmxlIGFuZCBhcmUKCSAgYXZhaWxhYmxlIGFzIGlubGluZSBmdW5jdGlvbnMgb25seS4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQyNF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MTZfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MTZfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZGF0YV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfZmlsbF91bmNoZWNrZWQKCjIwMTAtMTAtMDggMDk6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgY29udHJvbGxlciwgZGF0YXByb3RvY29sOiBtYWtlIHB1YmxpYyBlbnVtIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyB0aHJlYWQtc2FmZQoJICBOb3QgdGhhdCBpdCBpcyBsaWtlbHkgdG8gbWF0dGVyIGluIHByYWN0aWNlLCBidXQgc2luY2UgdGhlc2UgYXJlIHB1YmxpYwoJICBBUEkgdGhleSBzaG91bGQgcHJvYmFibHkgYmUgdGhyZWFkLXNhZmUuCgoyMDEwLTEwLTA4IDAwOjM4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGRhdGFwcm90b2NvbCwgbGZvY29udHJvbHNvdXJjZTogZml4IGVudW0gdmFsdWUgbmFtZSBpbiBlbnVtcyB0aGF0IGFyZSBwdWJsaWMgQVBJCgkgIFNvIHJ1bi10aW1lIGJpbmRpbmdzIGNhbiBpbnRyb3NwZWN0IHRoZSBuYW1lcyBjb3JyZWN0bHkgKHdlIGFidXNlIHRoaXMKCSAgZmllbGQgYXMgZGVzY3JpcHRpb24gZmllbGQgb25seSBpbiBlbGVtZW50cywgbm90IGZvciBwdWJsaWMgQVBJCgkgICh3aGVyZSB0aGUgZGVzY3JpcHRpb24gYmVsb25ncyBpbnRvIHRoZSBndGstZG9jIGNodW5rKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTk0NgoKMjAxMC0xMC0wOCAwOTo0NzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogRml4IHBvc3NpYmxlIGluZmluaXRlIGxvb3AgY2F1c2VkIGJ5IGFuIG92ZXJmbG93CgoyMDEwLTEwLTA3IDE4OjQ2OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IG1pbm9yIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHdoZW4gZG9pbmcgZ19vYmplY3Rfbm90aWZ5KCkgZm9yIHRoZSAibGFzdC1tZXNzYWdlIiBwcm9wZXJ0eQoJICBNYWtlIHN1cmUgcHJvcGVydHkgbmFtZXMgcGFzc2VkIHRvIGdfb2JqZWN0X25vdGlmeSgpIGFyZSBpbiB0aGUgY2Fub25pY2FsIGZvcm0KCSAgKGllLiAibGFzdC1tZXNzYWdlIiBub3QgImxhc3RfbWVzc2FnZSIpLCBzbyB0aGF0IGdfcGFyYW1fc3BlY19wb29sX2xvb2t1cCgpCgkgIGRvZXNuJ3QgaGF2ZSB0byBkbyBzdHJkdXAvY2Fub25pY2FsaXplL2ZyZWUgZm9yIGV2ZXJ5IHNpbmdsZSBub3RpZnkgY2FsbC4KCSAgVGhpcyBvbmx5IGFwcGxpZXMgd2hlbiBidWlsZGluZyBhZ2FpbnN0IG9sZGVyIEdMaWIgdmVyc2lvbnMgKDwgMi4yNikuCgoyMDEwLTEwLTA3IDE4OjI3OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBmYWtlc2luazogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGFuZCByZW1vdmUgd29yay1hcm91bmQgZm9yIG9sZCBHTGliIHZlcnNpb25zIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYsIGFuZCBhbHNvIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkgdGhyZWFkLQoJICBzYWZldHkgaXNzdWVzIHdpdGggb2xkZXIgR0xpYiB2ZXJzaW9ucyBpZiBpdCdzIG5vdCBuZWVkZWQgYW55IG1vcmUuCgoyMDEwLTEwLTA3IDE4OjIxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYuCgoyMDEwLTEwLTA3IDE4OjE5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNi4KCjIwMTAtMTAtMDcgMTc6NTM6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgYW5kIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3Igb2xkIEdMaWIgdmVyc2lvbnMgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNiwgYW5kIGFsc28gcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBnX29iamVjdF9ub3RpZnkoKSB0aHJlYWQtCgkgIHNhZmV0eSBpc3N1ZXMgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zIGlmIGl0J3Mgbm90IG5lZWRlZCBhbnkgbW9yZS4KCjIwMTAtMTAtMDcgMTc6MjM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogdXNlIG5ldyBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBmb3IgY2FwcyBub3RpZmllcyBpZiBhdmFpbGFibGUKCSAgSWYgd2UncmUgYnVpbGRpbmcgYWdhaW5zdCBHTGliID49IDIuMjYuMCwgd2UgY2FuIHVzZSB0aGUgbW9yZSBlZmZpY2llbnQKCSAgZ19vYmplY3Rfbm90aWZ5X2J5X2NhcHMoKSwgd2hpY2ggYXZvaWRzIHRoZSBwYXJhbSBzcGVjIGxvb2t1cC4KCjIwMTAtMTAtMDcgMTY6Mjc6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgdW5uZWNlc3NhcnkgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbAoJICBHT2JqZWN0IHdpbGwgZG8gdGhhdCBmb3IgdXMgd2hlbiBnX29iamVjdF9zZXQqKCkgaXMgY2FsbGVkLgoKMjAxMC0xMC0wNyAxOToxODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIHFvcyBkZXNpZ24gZG9jCgkgIEZpeCBzb21lIHR5cG9zLgoJICBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHF1YWxpdHkgZmllbGQgZm9yIHZpZGVvIGRlY29kZXJzIHRvIHNvbWV0aGluZyB0aGF0CgkgIG1ha2VzIG1vcmUgc2Vuc2UuCgoyMDEwLTEwLTA1IDE3OjAyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRlbXAgZGlyZWN0b3JpZXMgdG8gQ1JVRlRfRElSUwoKMjAxMC0xMC0wNSAxNTowNTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogdXNlIG1hdGgtY29tcGF0LmggZm9yIE1fUEkKCjIwMTAtMTAtMDUgMTQ6NDU6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogcmVtb3ZlIHJhbmRvbSBNU1ZDIGNvbXBhdGliaWxpdHkgZGVmaW5lIGZvciBNX1BJIHRoYXQgZG9lc24ndCBiZWxvbmcgaGVyZQoJICBDb2RlIHRoYXQgbmVlZHMgdGhpcyBzaG91bGQgaW5jbHVkZSBnc3QvbWF0aC1jb21wYXQuaCBvciB1c2UgR19QSS4KCjIwMTAtMTAtMDUgMTQ6MTY6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIGdzdDogYWRkIG1hdGgtY29tcGF0LmggaGVhZGVyCgkgIEFkZCBtaW5pbWFsIG1hdGgtY29tcGF0aC5oIGhlYWRlciB3aGVyZSB3ZSBjYW4gZGVmaW5lIGZhbGxiYWNrCgkgIHZlcnNpb25zIGZvciBtaXNjZWxsYW5lb3VzIG1hdGggZnVuY3Rpb25zIHRoYXQgYXJlbid0IGFsd2F5cwoJICBhdmFpbGFibGUsIHNvIHdlIGRvbid0IGhhdmUgdG8gZHVwbGljYXRlIHRoaXMgaW4gcGx1Z2lucy4KCSAgVGhlIGhlYWRlciBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdCwgc28gbmVlZHMgdG8gYmUKCSAgaW5jbHVkZWQgZXhwbGljaXRseSBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwODAyCgoyMDEwLTEwLTA1IDExOjQ3OjU5ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIHRvb2xzOiBmaXggcGFyc2luZyBvZiB0aW1lc3RhbXAgaW4gZ3N0LXBsb3QtdGltZWxpbmUKCjIwMTAtMDktMjUgMTQ6MjQ6NDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IHRha2UgcHJlcm9sbC1sb2NrIGluIGdldF9wcm9wZXJ0eQoJICBVc2UgYXRvbWljIG9wcyB0byByZWFkIGFuZCB3cml0ZSBtb3JlIHByb3BlcnRpZXMuIFRha2luZyB0aGUgcHJlcm9sbCBsb2NrIGluIGdldF9wcm9wZXJ0eQoJICBjYW4gbG9jayB1cCBhcHBsaWNhdGlvbnMgcmVhZGluZyB0aGUgcHJvcGVydHkgZHVyaW5nIHByZXJvbGwuCgoyMDEwLTEwLTAyIDE4OjExOjMyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgYSBmaXhtZSBmb3IgMC4xMQoKMjAxMC0xMC0wNCAxNTo0OToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZvcm1hdCBuZWdhdGl2ZSB2YWx1ZXMgYmV0dGVyCgkgIEZvcm1hdCBuZWdhdGl2ZSB2YWx1ZXMgcHJvcGVybHkgaW4gdGhlIGRlYnVnIGxvZy4KCjIwMTAtMTAtMDMgMjM6NDE6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBnY2MgZG9lc24ndCBub3RpY2UgdGhhdCB0aGUgY2hlY2sgYXNzZXJ0aW9uIG1hY3JvcyB3aWxsIGFib3J0CgkgIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSB0ZXN0cy4KCjIwMTAtMTAtMDMgMjM6MzI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgaW5saW5lIHZhcmlhbnRzIG9mIGFsbCBpbXBvcnRhbnQgZnVuY3Rpb25zCgoyMDEwLTEwLTAzIDE1OjI3OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBBZGQgaW5saW5lZCBhbmQgdW5jaGVja2VkIHZlcnNpb25zIG9mIHRoZSBpbXBvcnRhbnQgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfc2tpcF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9za2lwX3RvX2J5dGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDE2X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQzMl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50NjRfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQxNl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDMyX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50NjRfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQ4X3VuY2hlY2tlZAoJICBUaGlzIGFsb25lIG1ha2VzIGZsYWNwYXJzZSBhYm91dCAzIHRpbWVzIGZhc3Rlci4KCjIwMTAtMTAtMDMgMTQ6NTk6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgZ3VhcmRzIHRvIHRoZSBpbmxpbmVkIGdldF9wb3MvZ2V0X3JlbWFpbmluZy9nZXRfc2l6ZS9ldGMgZnVuY3Rpb25zCgoyMDEwLTEwLTAzIDE0OjI0OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogT3B0aW1pemUgcGVla19iaXRzL2dldF9iaXRzIGEgYml0CgkgIFVzZSBsb2NhbCB2YXJpYWJsZXMgaW5zdGVhZCBvZiBkZXJlZmVyZW5jaW5nIHRoZSBiaXRyZWFkZXIKCSAgcG9pbnRlciBhbGwgdGhlIHRpbWUgYW5kIGRvbid0IGNvcHkgdGhlIHJlYWRlciBmb3IgcGVla19iaXRzLgoKMjAxMC0wOS0yNyAxOToyOToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggc3RyaW5nIHNlcmlhbGl6YXRpb24KCSAgQ29ycmVjdGx5IHNlcmlhbGl6ZSB0em9mZnNldCBhcyBhIGdzdHZhbHVlCgoyMDEwLTA5LTI0IDEyOjIyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBhZGp1c3RfdGltZSgpCgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBlbmQgdXAgd2l0aCBuZWdhdGl2ZSB0aW1lc3RhbXBzLgoKMjAxMC0wNS0yNiAyMDoyOToyMiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVuZGVyZGVsYXkgbmVlZHMgdG8gYmUgc3VidHJhY3RlZCBpbiBhZGp1c3RfdGltZSgpCgkgIGxhdGVuY3kgaXMgYWxyZWFkeSBzaW5rLWxhdGVuY3kgKyByZW5kZXItZGVsYXksIGFuZCBoZXJlIHdlIG9ubHkKCSAgd2FudCB0byBkZWFsIHdpdGggdGhlIHNpbmstbGF0ZW5jeS4KCSAgRml4ZXMgIzYzMDQzNgoKMjAxMC0wOS0yNCAwMDoxMzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkgIHdpbjMyOiBkZWZpbmUgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBpbiB3aW4zMiBjb25maWcuaCBhcyB3ZWxsCgoyMDEwLTA5LTIzIDIwOjU3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA5LTIzIDIwOjQ4OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBHU1RfUEFSQU1fTVVUQUJMRV8qIHByb3BlcnR5IGZsYWdzCgoyMDEwLTA1LTA0IDA5OjM2OjQzICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogTWFrZSBhIFdBUk5JTkcgaW50byBhIERFQlVHIHN0YXRlbWVudAoJICBGaXhlcyBidWcgIzYzMDQzNy4KCjIwMTAtMDEtMTIgMTc6MTA6NTkgKzAxMDAgIFRyb25kIEFuZGVyc2VuIDx0cm9uZC5hbmRlcnNlbkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGZpeCByYWN5IHNodXRkb3duIGNsb2NrIGlkIGxlYWsKCSAgQ2xvY2sgSURzIHdlcmUgbGVha2VkIGlmIHRoZSBjbG9jayBnb3QgZGlzcG9zZWQgYmVmb3JlIHRoZSB3b3JrZXIgdGhyZWFkCgkgIGdvdCBhIGNoYW5jZSB0byByZWFwIHVuc2NoZWR1bGVkIGVudHJpZXMuCgkgIEZpeGVzIGJ1ZyAjNjMwNDM5LgoKMjAxMC0wOS0yMyAxODoxODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCB1c2VsZXNzIG1lbWNweQoJICBCZWNhdXNlIG9mIHRoZSBhd2t3YXJkIHJlZmNvdW50aW5nIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlciwgd2UgbWlnaHQgZW5kIHVwCgkgIHdpdGggd3JpdGFibGUgYnVmZmVycyB0aGF0IHBvaW50IHRvIHRoZSBzYW1lIGRhdGEuIENoZWNrIGZvciB0aG9zZSBjYXNlcyBzbyB0aGF0CgkgIHdlIGF2b2lkIGEgdXNlbGVzcyBtZW1jcHkgYW5kIGtlZXAgdmFsZ3JpbmQgcXVpZXQuCgkgIEZpeGVzICM2MjgxNzYKCjIwMTAtMDktMjMgMTQ6Mzc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGZpeCAnbWFrZSBjaGVjaycgYnVpbGQgZm9yIHNldHVwcyB3aGVyZSBubyBjKysgY29tcGlsZXIgaXMgYXZhaWxhYmxlCgkgIE9ubHkgdHJ5IHRvIGJ1aWxkIChwc2V1ZG8tKUMrKyB1bml0IHRlc3QgaWYgYSB3b3JraW5nIEMrKyBjb21waWxlciBoYXMgYmVlbgoJICBmb3VuZCwgb3RoZXJ3aXNlIHRoZSBidWlsZCB3aWxsIGZhaWwuIChXZSBkbyB0aGlzIHRvIG1ha2Ugc3VyZSBvdXIgaGVhZGVycwoJICBhcmUgJ0MrKyBjbGVhbicpLgoKMjAxMC0wOS0yMyAxMDowODowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19HRU9fTE9DQVRJT05fSE9SSVpPTlRBTF9FUlJPUgoJICBBZGRzIGEgbmV3IHRhZyB0byBpbmRpY2F0ZSB0aGUgZXJyb3IgaW4gaG9yaXpvbnRhbCBwb3NpdGlvbmluZwoJICBpbiBtZXRlcnMuIFRoaXMgaXMgb25lIG9mIHRoZSBhdmFpbGFibGUgJ2dwcyBlcnJvcicgZmllbGRzIGluCgkgIGV4aWYsIGZvciBleGFtcGxlLgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0hPUklaT05UQUxfRVJST1IKCjIwMTAtMDktMjMgMTU6MzQ6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IHVzZSBhIG5lc3RlZCBsb2NrIHRvIGF2b2lkIHJlZmZpbmcgdGhlIHBlZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWI0MjRiMTU3MDM2NmIxMDc0NmE3NjJlOGM5YzRjMWIzNWIyMWU5MS4KCjIwMTAtMDktMjMgMTU6MTI6MzIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIHZhciBvbmx5IHVzZWQgZm9yIGRlYnVnIHN0YXRlbWVudAoKMjAxMC0wOS0wNyAxNjo1NjozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBhIG5lc3RlZCBsb2NrIHRvIGF2b2lkIHJlZmZpbmcgdGhlIHBlZXIKCSAgRml4ZXMgIzUwMzU5MgoKMjAxMC0wNy0xNSAxNTo0NzozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkgIHRlc3RzOiByZWJ1aWxkIG9uZSB0ZXN0IHVzaW5nIGNwcAoJICBUaGlzIGFpbXMgdG8gY2F0Y2ggY3BwIGlzc3VlcyBpbiBjb3JlLiBBZGQgYysrIGJvaWxlcnBsYXRlIHRvIGNvbmZpZ3VyZS4KCjIwMTAtMDktMjEgMTg6MzM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFhMGQxZDAgdG8gNWUzYzliZgoKMjAxMC0wOS0xOSAxNjoxMDoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogSGFuZGxlIG5ldyBhc3NlcnRpb24gaW4gZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyCgoyMDEwLTA5LTE4IDE5OjI5OjA5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBBZGQgY2hlY2sgZm9yIHBhdHRlcm4gYml0cyBub3QgaW4gbWFzawoKMjAxMC0wOS0xNyAxOTo1MzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVzZSBnX2ZpbGVfdGVzdCgpIGluc3RlYWQgb2YgYWNjZXNzKCkgd2hpY2ggZG9lcyBub3QgZXhpc3Qgb24gTVNWQzYKCSAgRml4ZXMgYnVnICM2Mjk0OTQuCgoyMDEwLTA5LTE3IDE3OjM0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBmdW5jdGlvbiB0byBhZGQgYSBsaXN0IG9mIGJ1ZmZlcnMKCSAgQWRkIGEgZnVuY3Rpb24gdG8gYWRkIGEgbGlzdCBvZiBidWZmZXJzIHRvIHRoZSBidWZmZXJsaXN0LgoKMjAxMC0wOS0xNyAxNTo1MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGZ1bmN0aW9uIHRvIGdldCBhIGxpc3Qgb2YgYnVmZmVycwoJICBBZGQgYSBmdW5jdGlvbiB0byByZXRyaWV2ZSBhIGxpc3Qgb2YgYnVmZmVycyBjb250YWluaW5nIHRoZSBmaXJzdCBOIGJ5dGVzIGZyb20KCSAgdGhlIGFkYXB0ZXIuIFRoaXMgY2FuIGJlIGRvbmUgd2l0aG91dCBhIG1lbWNweSBhbmQgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8KCSAgdHJhbnNmZXIgdGhlIGxpc3QgdG8gYSBHc3RCdWZmZXJMaXN0IGxhdGVyLgoKMjAxMC0wOS0xNyAxNTowNzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZXVzZSBtb3JlIGRhdGEgaW4gX3BlZWsoKQoJICBPcHRpbWl6ZSBfcGVlaygpIHNvbWUgbW9yZSBieSByZXVzaW5nIGFscmVhZHkgYXNzZW1ibGVkIGRhdGEgd2hlbiB3ZSBjYW4uCgoyMDEwLTA5LTE3IDEzOjU3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIF90YWtlKCkgYSBsaXR0bGUgbW9yZQoJICBXaGVuIHdlIGhhdmUgYWxyZWFkeSBhc3NlbWJsZWQgc29tZSBkYXRhIGJlZm9yZSwgcmV1c2UgdGhpcyBkYXRhIGFuZCBvbmx5IGNvcHkKCSAgdGhlIHBhcnQgdGhhdCBpcyBuZXcuCgoyMDEwLTA5LTE3IDEyOjQ4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlZmFjdG9yIGFkYXB0ZXIgdGFrZQoJICBNb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBvbmUgcGxhY2UKCjIwMTAtMDktMTcgMTI6NDA6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBzdXBwb3J0IGZvciAwIHNpemVkIGJ1ZmZlcnMKCSAgQWRkIHN1cHBvcnQgZm9yIDAgc2l6ZWQgYnVmZmVycy4gVGhpcyBpcyBpbnRlcmVzdGluZyBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZQoJICB0aW1lc3RhbXAgZnVuY3Rpb25zLgoJICBGaXhlcyAjNjI5NTUzCgoyMDEwLTA5LTE3IDEwOjAxOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIHB3ZzogTWFrZSBhIHNlbnRlbmNlIGNsZWFyZXIuCgoyMDEwLTA5LTE2IDE5OjI3OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWFrZSBzdXJlIGdzdHJlYW1lciBoYXMgYmVlbiBpbml0aWFsaXplZCB3aGVuIGNyZWF0aW5nIGVsZW1lbnRzCgkgIEFkZCBnc3RfaXNfaW5pdGlhbGl6ZWQoKSBndWFyZCB0byBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoKSwgc28KCSAgcGVvcGxlIHdobyBmb3Jnb3QgdG8gY2FsbCBnc3RfaW5pdCgpIGdldCBhIHVzZWZ1bCB3YXJuaW5nIGZvciB3aGF0CgkgIHNlZW1zIHRvIGJlIGEgY29tbW9uIGVub3VnaCBtaXN0YWtlLgoKMjAxMC0wOS0xNiAwMDozNzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1pbm9yIGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlKCkgY29kZSByZWZsb3cKCSAgU3ByaW5rbGUgc29tZSBHX1VOTElLRUxZKCksIHJldHVybiBUUlVFL0ZBTFNFIGNvbnN0YW50cywgYXZvaWQgYW4KCSAgdW5uZWNlc3NhcnkgZ192YWx1ZV91bnNldCgpLCBtb3ZlIGdfdmFsdWVfaW5pdCgpK3NldF9pbnQ2NF9yYW5nZSgpCgkgIGNsb3NlciB0byB3aGVyZSB0aGV5J3JlIG5lZWRlZC4KCjIwMTAtMDktMTYgMDA6MzA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZSgpIG9wdGltaXNhdGlvbnMKCSAgRG9uJ3QgY3JlYXRlIGEgbmV3IEdWYWx1ZUFycmF5IGNvcHkgZm9yIGV2ZXJ5IHNpbmdsZSBfYWRkX2J1ZmZlcmluZ19yYW5nZSgpCgkgIGNhbGwsIGJ1dCBhcHBlbmQgdG8gdGhlIGV4aXN0aW5nIHZhbHVlIGFycmF5IG93bmVkIGJ5IHRoZSBzdHJ1Y3R1cmUgaW5zdGVhZC4KCjIwMTAtMDktMTYgMDA6MDM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG1pY3JvLW9wdGltaXNhdGlvbiBmb3Igc29tZSBzZXR0ZXIgZnVuY3Rpb25zCgkgIFNwbGl0IG91dCBmdW5jdGlvbnMgdGhhdCBkbyB0aGUgYWN0dWFsIHdvcmssIHNvIHdlIGF2b2lkIGRvaW5nCgkgIHRoZSBzYW1lIGdfcmV0dXJuX2lmX2ZhaWwoKSBjaGVja3MgbXVsdGlwbGUgdGltZXMgZm9yIGVhY2ggY2FsbC4KCjIwMTAtMDktMTUgMjM6NDI6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlX3tpZF99dGFrZV92YWx1ZSgpCgkgIEFkZCBfc2V0X3ZhbHVlKCkgdmFyaWFudHMgdGhhdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdmFsdWUgcGFzc2VkCgkgIGluc3RlYWQgb2YgbWFraW5nIGEgY29weSBvZiB0aGUgdmFsdWUuIFRoaXMgaXMgdXNlZnVsIGZvciBzZXR0aW5nCgkgIHZhbHVlcyB0byB0aGluZ3MgdGhhdCBhcmVuJ3QgcmVmY291bnRlZCAoZS5nLiBHVmFsdWVBcnJheXMgb3IKCSAgc3RyaW5ncyBvciBzdHJpbmcgYXJyYXlzLCBldGMuKS4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX3Rha2VfdmFsdWUoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfdGFrZV92YWx1ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk4MzEKCjIwMTAtMDktMTYgMTk6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRvYyBzdHJpbmcsIHdlIHBvc3QgZWxlbWVudCBtZXNzYWdlcwoKMjAxMC0wOS0xNiAxOTowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhZGQgbWVzc2FnZS1mb3J3YXJkIG9wdGlvbgoJICBBZGQgYW4gb3B0aW9uIHRvIGZvcndhcmQgYWxsIHRoZSBpbnRlcm5hbCBtZXNzYWdlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQoJICBmaWx0ZXJlZCBzdWNoIGFzIEVPUywgU0VHTUVOVCBhbmQgQVNZTkMgbWVzc2FnZXMuCgkgIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0bywgZm9yIGV4YW1wbGUsIGRldGVjdCB0aGF0IGEgcGFydGlhbCBwaXBlbGluZSBpcwoJICBwcmVyb2xsZWQgb3IgcmVhY2hlZCBlb3MuCgkgIFRoZSBvcmlnaW5hbCBtZXNzYWdlcyBhcmUgd3JhcHBlZCBpbnNpZGUgYW4gZWxlbWVudCBtZXNzYWdlIGJlY2F1c2UgdGhlIHBhcmVudAoJICBiaW5zIGFyZSBub3Qgc3VwcG9zZWQgdG8gc2VlIHRob3NlIGludGVybmFsIG1lc3NhZ2VzIGVzY2FwZS4KCjIwMTAtMDktMTIgMTY6NTA6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHVzZSBzdHJzdHIoKSBpbnN0ZWFkIG9mIGdfc3Ryc3RyX2xlbigpCgkgIFNhdmVzIHVzIGEgc3RybGVuKCkgY2FsbC4KCjIwMTAtMDktMTUgMTM6Mjk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG9ubHkgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSB3aGVuIHBlcmNlbnQgY2hhbmdlZAoKMjAxMC0wOS0xNSAxMzoxNToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWx3YXlzIHVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzCgkgIFVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXR1cyBldmVuIHdoZW4gd2UgYXJlIG5vdCB1c2luZyBhIHF1ZXVlIHNvIHRoYXQgRU9TIGNhbgoJICBwcm9wZXJseSBmaW5pc2ggdGhlIGJ1ZmZlcmluZy4KCjIwMTAtMDktMTMgMjA6Mzk6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBmbHVzaC1zdG9wIGV2ZW50IGhhbmRsaW5nCgkgIEEgZmx1c2gtc3RvcCBldmVudCB3b3VsZCBtYWtlIGEgcGFkIHVuZmx1c2hpbmcsIGNhdXNpbmcgaXQKCSAgdG8gc3RhcnQgYWN0aW5nIGFzIGFuIGFjdGl2YXRlZCBwYWQuIFRoaXMsIGZvciBleGFtcGxlLAoJICBjb3VsZCBsZWFkIHRvIHRoZSBjaGFpbiBmdW5jdGlvbiBiZWluZyBjYWxsZWQgd2hlbiBzdHVmZgoJICBpc24ndCBpbml0aWFsaXplZC4KCSAgVGhpcyBjb3VsZCBoYXBwZW5kIHdoZW4gc2V0dGluZyBxdGRlbXV4IHRvIE5VTEwgd2hpbGUgYSBzZWVrCgkgIHdhcyBiZWluZyBoYW5kbGVkIGluIHRoZSB1cHN0cmVhbSBmaWxlc3JjIChpbiBwdXNoIG1vZGUpLgoJICBUaGlzIHBhdGNoIG1ha2VzIGl0IGNoZWNrIGlmIGl0IGlzIGFjdGl2YXRlZCBiZWZvcmUgc2V0dGluZwoJICBpdCB0byB1bmZsdXNoaW5nLgoKMjAxMC0wOS0xMyAxMToxNzozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IGZpeCB3YXJuaW5ncyBwb2ludGVkIG91dCBieSBndGstZG9jCgoyMDEwLTA5LTEzIDA5OjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFza3Bvb2w6IG1ha2UgZGVidWcgb25seSBjb2RlIGNvbmRpdGlvbmFsCgoyMDEwLTA5LTEwIDE1OjA3OjAzIC0wNDAwICBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+CgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgaW50cm9zcGVjdGlvbjogQnVpbGQgd2l0aCBsYXRlc3QgZy1pCgkgIEhpZGUgYSBjb21wYXRpYmlsaXR5IHR5cGVkZWYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkyNDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDYxNgoKMjAxMC0wOS0wOSAyMjoyNDozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGRvbid0IGxlYWsgZW50cmllcyBmb3IgYmxhY2tsaXN0ZWQgZmlsZXMKCjIwMTAtMDktMDkgMjE6NTk6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGNoZWNrczogYW5kIGNoZWNrIHRoZSByaWdodCBlbnYtdmFyIChmaXh1cCBsYXN0IGNvbW1pdCkKCjIwMTAtMDktMDkgMjE6NTY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICB0ZXN0czogYWxsb3cgcnVubmluZyBzdGF0ZSB0ZXN0cyBmb3IgYWxsIGVsZW1lbnRzCgkgIE5vdyBvbmUgY2FuIHVzZSBHU1RfTk9fU1RBVEVfSUdOT1JFX0VMRU1FTlRTPTEgbWFrZSBnZW5lcmljL3N0YXRlcy5jaGVjawoJICB0byB0cnkgZWxlbWVudHMgdGhhdCB3b3VsZCBub3JtYWx5IGJlIHNraXBwZWQuCgoyMDEwLTA5LTA2IDE1OjE2OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGF2b2lkIHN0cmluZyBjcmVhdGlvbiB3aGVuIG5vdCBuZWVkZWQKCjIwMTAtMDktMDkgMTY6MTE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaWRlbnRpdHkgaXMgR0FQIGZsYWcgYXdhcmUsIG5vIG5lZWQgdG8gbGV0IGl0IGJlIHVuc2V0IGJ5IGJhc2V0cmFuc2Zvcm0KCjIwMTAtMDktMDkgMTU6NTc6MTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIGEgc3luYyBidXMgaGFuZGxlciBhbmQgbW92ZSBzdGF0ZS1jaGFuZ2UgbG9nZ2luZyB0aGVyZQoJICBUaGUgc3luYyBoYW5kbGVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc2FnZXMsIHRoZSBldmVudCBsb29wIHdlIHByZXZpb3VzbHkgdXNlZAoJICB3YXMgbm90LiBJbiB0aGUgc3luYyBoYW5kbGVyIHRyaWdnZXIgcGlwZWxpbmUgZG90IGR1bXBzIGFuZCBjYWxsIGFjY2VzcyBmb3IgYQoJICBmaWxlIGluIHRtcC1kaXIgdG8gYWRkIG1hcmtlcnMgaW50ZXJjZXB0YWJsZSBieSBzdHJhY2UgYW5kIGNvLgoKMjAxMC0wOS0wOCAxODo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzaW1wbGlmeSBjb2RlIGEgYml0CgkgIE5vIG5lZWQgdG8gY2FsbCBnX3NsaXN0X2xlbmd0aCgpIGhlcmUuCgoyMDEwLTA5LTA4IDA5OjM3OjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGEgdW5jaGVja2VkIHZhcmlhbnQgZm9yIHB1bGwKCSAgQWRkIGludGVybmFsIF9nZXRfcmFuZ2VfdW5jaGVja2VkIHRoYXRzIGlzIGNhbGxlZCBmcm9tIF9nZXRfcmFuZ2UgYW5kCgkgIF9wdWxsX3JhbmdlLgoKMjAxMC0wOS0wNyAyMzo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdWdseS9iYWQvZmZtcGVnIHBrZy1jb25maWcgZGlycyB0byBQS0dfQ09ORklHX1BBVEgKCSAgU28gd2UgY2FuIGZpZ3VyZSBvdXQgcGx1Z2luIGRpcmVjdG9yaWVzIG9mIG90aGVyIG1vZHVsZXMgcHJvcGVybHkgaW4KCSAgdGhlIHVuaW5zdGFsbGVkIHNldHVwIGNhc2UsIGZvciB1bml0IHRlc3RzIHRoYXQgbmVlZCBlbGVtZW50cyBmcm9tCgkgIG90aGVyIG1vZHVsZXMuCgoyMDEwLTA5LTA3IDEyOjAxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MgZm9yIHJlY2VudCBjaGFuZ2VzCgkgIEFuZCBzb3J0ZWQgaGllcmFyY2h5CgoyMDEwLTA5LTA3IDExOjQxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzJlMTBiZiB0byBhYTBkMWQwCgoyMDEwLTA5LTA3IDExOjA5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBkb24ndCB1c2UgZ3N0X3N0cnVjdHVyZV9mb3JlYWNoKCkgb24gTlVMTCBwb2ludGVycwoKMjAxMC0wOS0wNiAyMDoxOToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDktMDYgMjA6MTY6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBhZGQgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9FTkNPREUKCSAgTm8gaWRlYSB0aG91Z2ggd2h5IHdlIGV2ZW4gaGF2ZSBHU1RfTElCUkFSWV9FUlJPUl9FTkNPREUgb3Igd2hlbiBvbmUKCSAgd291bGQgd2FudCB0byB1c2UgdGhhdCBpbnN0ZWFkIG9mIEdTVF9TVFJFQU1fRVJST1JfRU5DT0RFLgoKMjAxMC0wOS0wNiAyMDowNjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGF2b2lkIHBvaW50bGVzcyBzdHJpbmcgY29weWluZwoJICBUaGVyZSdzIG5vIG5lZWQgdG8gY3JlYXRlIHRoZXNlIHRhYmxlcyB3aXRoIGR1cGxpY2F0ZXMgb2YgdGhlCgkgIHVudHJhbnNsYXRlZCBlcnJvciBtZXNzYWdlIHN0cmluZyBjb25zdGFudHMsIHdlIGNhbiBqdXN0IHVzZQoJICBvbGQtZmFzaGlvbmVkIHN3aXRjaC9jYXNlIGFuZCBjYWxsIGdldHRleHQgZGlyZWN0bHkuIFRoaXMgYWxzbwoJICBtYWtlcyB0aGluZ3Mgc2xpZ2h0bHkgbW9yZSB0aHJlYWQgc2FmZSBhbmQgbW9yZSByb2J1c3QgdG8gYmFkCgkgIGlucHV0IChpbnZhbGlkIGVycm9yIGNvZGVzKS4KCjIwMTAtMDktMDYgMTg6MzM6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgY2hlY2s6IEF2b2lkIGVycm9yOiBhcnJheSBzdWJzY3JpcHQgaXMgYWJvdmUgYXJyYXkgYm91bmRzCgkgIENvdWxkIGhhdmUgY29tZSB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIgZm9yIG15IDIwMDB0aCBjb21taXQKCSAgdG8gR1N0cmVhbWVyLi4uCgoyMDEwLTA5LTA2IDE3OjAxOjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGdpdmUgYSBwcmFjdGljYWwgZXhhbXBsZSBmb3IgdGhlIGdzdF9vYmplY3RfaGFzX2FuY2hlc3RvcgoKMjAxMC0wOS0wNiAxNDozMzo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgdGhlIHBhcmVudF9jbGFzcyBkZWZpbmVkIGJ5IEdfREVGSU5FX1RZUEUKCjIwMTAtMDktMDYgMTQ6MzI6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IHR1bmUgc2tpcHBpbmcgY2hlY2tzIGlmIHdlIGhhdmUgZGlzYWJsZWQgc3Vic3lzdGVtcwoJICBTa2lwIEFCSSB0ZXN0cyBpZiBzb21lIHN1YnN5c3RlbXMgYXJlIG9mZi4gUmVtb3ZlIERJU0FCTEVfR1NUX0RFQlVHIGZyb20KCSAgc2tpcHBpbmcgZXhwb3J0IGNoZWNrcyBhcyB0aGlzIGlzIHNhZmUgbm93LgoKMjAxMC0wOS0wNiAxNDowOTo1MiArMDMwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBVc2UgdGhlIGNvcnJlY3QgdmFyaWFibGUgZm9yIGRlYnVnIG1lc3NhZ2UKCSAgRGVidWcgcHJpbnQgd2FzIHVzaW5nIGEgdmFyaWFibGUgdGhhdCB3YXMgbm90IGluaXRpYWxpemVkLgoKMjAxMC0wOC0xMCAxNDowNToyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQtZGV0YWlsczogYWxsb3cgZm9yIGFyYml0cmFyeSBlbGVtZW50IGRldGFpbHMKCSAgQWRkIGEgR3N0U3RydWN0dXJlIHRvIEdzdEVsZW1lbnRDbGFzcyBhbmQgR3N0RWxlbWVudEZhY3RvcnkuIEFkZCBzZXR0ZXJzL2dldHRlci4KCSAgSGFuZGxlIGl0IGluIHRoZSByZWdpc3RyeSBjb2RlLiBQcmludCBpdGVtcyBpbiBnc3QtaW5zcGVjdC4KCSAgRml4ZXMgIzM5Njc3NC4KCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YV9kYXRhKCksIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFfZGF0YV9kZXRhaWwoKQoKMjAxMC0wOS0wNSAxODo1Nzo1NiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzZDlhY2YgdG8gYzJlMTBiZgoKMjAxMC0wOS0wNSAxMjoxMzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGNhMWM4NjcgdG8gZDNkOWFjZgoKMjAxMC0wOS0wNSAxMDoyMjoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBzeW1ib2xzIGZyb20gR3N0RWxlbWVudEZhY3RvcnlMaXN0CgkgIEFuZCBoZXJlJ3MgYSByZW1pbmRlciBzaW5jZSBJIGZvcmdvdCB0byBwdXQgdGhlbSBpbiBteSBwcmV2aW91cwoJICBjb21taXQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2ZpbHRlcgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfaXNfdHlwZQoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2RlYnVnCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX3JhbmtfY29tcGFyZV9mdW5jCgkgIEFQSTogR3N0RWxlbWVudEZhY3RvcnlMaXN0VHlwZQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BTlkKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQVVESU9WSURFT19TSU5LUwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BVURJT19FTkNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09EQUJMRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFTVVYRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVQQVlMT0FERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfRU5DT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9GT1JNQVRURVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUFYX0VMRU1FTlRTCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0FVRElPCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0lNQUdFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX01FVEFEQVRBCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX1NVQlRJVExFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX1ZJREVPCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0FOWQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NVVhFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9QQVJTRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfUEFZTE9BREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1NJTksKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfU1JDCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1ZJREVPX0VOQ09ERVIKCjIwMTAtMDgtMzEgMTE6Mzc6NDIgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGJ1ZmZlcmluZ19yYW5nZXMgcXVlcnkgc3VwcG9ydAoJICBGaXhlcyBidWcgNjIzMTIxCgoyMDEwLTA5LTAzIDE5OjU4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogT25seSBmaWxsIHRoZSBzdGFydC9zdG9wIHZhbHVlcyBvZiB0aGUgYnVmZmVyaW5nIHJhbmdlcyBpZiBhIG5vbi1OVUxMIHBvaW50ZXIgd2FzIHByb3ZpZGVkCgoyMDEwLTA4LTMxIDExOjM1OjEyICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cXVlcnk6IG5ldyBidWZmZXJpbmdfcmFuZ2VzIEFQSQoJICBBZGRlZCBhIG5ldyBxdWVyeSB0eXBlIHRvIHJldHJpZXZlIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgYXJlYXMgb2YgdGhlCgkgIG1lZGlhIGN1cnJlbnRseSBidWZmZXJlZC4gU2VlIGJ1ZyA2MjMxMjEuCgkgIEFQSTogZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfZ2V0X25fYnVmZmVyaW5nX3JhbmdlcwoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9udGhfYnVmZmVyaW5nX3JhbmdlCgoyMDEwLTA4LTE2IDE5OjAxOjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgR3N0RWxlbWVudEZhY3Rvcnk6IEFkZCBsaXN0aW5nIGZlYXR1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjYxODEKCjIwMTAtMDktMDIgMTI6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IG1lbnRpb24gR1NUX0RFQlVHX09QVElPTlMsIE9SQ19DT0RFLCBHX0RFQlVHIGFuZCBHX1NMSUNFIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBNZW50aW9uIGEgZmV3IG1vcmUgdXNlZnVsIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgJ1J1bm5pbmcgR1N0cmVhbWVyCgkgIGFwcGxpY2F0aW9ucycgc2VjdGlvbiBvZiB0aGUgQVBJIHJlZmVyZW5jZS4KCjIwMTAtMDktMDIgMTQ6MTU6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBmaXggdXNlIG9mIGVtcHR5IHN1YmJ1ZmZlcnMKCSAgUmVtb3ZlIGEgc2hvcnQgY3V0IHRoYXQgd2FzIGlnbm9yaW5nIHNyYy0+ZGF0YSBhbGxvY2F0aW9uIG1vZGUuIEFsbAoJICB0aGUgY2FsbGVkIGNvZGUtcGF0aCBiZWxvdyBoYW5kbGUgc2l6ZT09MC4KCjIwMTAtMDktMDIgMDA6MDE6MjUgKzAxMDAgIEplZmZyZXkgUy4gU21pdGggPHdoeWRvdWJ0QHlhaG9vLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIEZpeCBjYXN0cyBpbiBhIGJ1bmNoIG9mIGlubGluZSBmdW5jdGlvbnMgdG8gbWFpbnRhaW4gY29ycmVjdCBjb25zdC1uZXNzCgkgIE1ha2UgY29kZSBpbmNsdWRpbmcgR1N0cmVhbWVyIGhlYWRlcnMgY29tcGlsZSB3aXRoIC1XY2FzdC1xdWFsIGJ5CgkgIG1haW50YWluaW5nIGNvbnN0LW5lc3Mgd2hlbiBjYXN0aW5nLiBBbHNvIGZpeCBmdW5jdGlvbiBzaWduYXR1cmUgb2YKCSAgZ3N0X2J5dGVfd3JpdGVyX3NldF9wb3MoKTogdGhlIGJ5dGUgd3JpdGVyIHNob3VsZCBub3QgYmUgbWFya2VkIGFzCgkgIGNvbnN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3OTEwCgoyMDEwLTA4LTMxIDE4OjQwOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB1c2UgbmV3IEFHX0dTVF9QS0dfQ09ORklHX1BBVEggbTQgbWFjcm8gZnJvbSBjb21tb24KCSAgU2V0cyB1cCBhIEdTVF9QS0dfQ09ORklHX1BBVEggdmFyaWFibGUgZm9yIHVzZSBpbiBNYWtlZmlsZS5hbQoJICAoYXZvaWRzIHRyYWlsaW5nICc6JyBpbiBQS0dfQ09ORklHX1BBVEggdXNlZCkuIEEgdXNlZnVsIHNpZGUKCSAgZWZmZWN0IG9mIHRoaXMgaXMgYWxzbyB0aGF0IHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQKCSAgaXMgbm93IGxvZ2dlZCBpbiB0aGUgY29uZmlndXJlIG91dHB1dC4KCjIwMTAtMDktMDEgMTE6MzQ6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBtYW51YWw6IGltcHJvdmUgY2xvY2sgZG9jcyBhIGxpdHRsZQoKMjAxMC0wOS0wMSAxMTowNjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBtZW1vcnkgbGVha3MgaW4gdGhlIGludDY0cmFuZ2UgdGVzdHMKCjIwMTAtMDgtMjQgMTI6Mjc6MzAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIG5ldyBHc3RJbnQ2NFJhbmdlIHR5cGUKCSAgbmV3IEdzdEludDY0UmFuZ2UgdG8gc3RvcmUgZ2ludDY0IHJhbmdlcy4KCSAgQVBJOiBHU1RfVFlQRV9JTlQ2NF9SQU5HRQoJICBBUEk6IGdzdF92YWx1ZV9zZXRfaW50NjRfcmFuZ2UKCSAgQVBJOiBnc3RfdmFsdWVfZ2V0X2ludDY0X3JhbmdlX21pbgoJICBBUEk6IGdzdF92YWx1ZV9nZXRfaW50NjRfcmFuZ2VfbWF4CgkgIEZpeGVzIGJ1ZyAjNjI3ODI2LgoKMjAxMC0wOC0zMCAyMToyNjoxOCAtMDMwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBUcml2aWFsIGNsZWFudXAgZm9yIEdTVF9ERUJVR19DQVRFR09SWV9HRVQKCjIwMTAtMDgtMzAgMTY6MDI6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBSZS1pbnN0YXRlIHRoZSBkZWZhdWx0IGZvciBjb2xvciB1c2FnZQoJICBUaGlzIHdhcyBhY2NpZGVudGx5IHJlbW92ZWQgaW4gN2E3MjIwOTFiNmQxYjVkN2Y5NDA0ZmRlZjRjNjk1YTI5YTY1YTk4OQoKMjAxMC0wOC0zMCAxMjo0NzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBVc2UgZ19zdHJjbXAwIGluc3RlYWQgb2Ygc3RyY21wCgkgIEF2b2lkcyBzZWdmYXVsdHMgd2hlbiB1c2luZyBOVUxMIGFyZ3VtZW50cy4KCjIwMTAtMDgtMjcgMTU6MzU6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkIHNpbGVudCBwcm9wZXJ0eSB0byBzdXBwcmVzcyBzaWduYWwgZW1pc3Npb24KCSAgQWxsb3cgdG8gdHVybiBvZmYgc2lnbmFsIGVtaXNzaW9uIGFuZCB0aGVyZWZvcmUgZXh0cmEgbG9ja2luZyBpZiB0aGlzIGlzIG5vdCBuZWVkZWQuCgkgIEZpeGVzICM2MjEyOTkKCjIwMTAtMDgtMjggMTA6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBZGQgZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpIHRvIHRoZSBkb2NzIGFuZCBleHBvcnRlZCBzeW1ib2xzCgoyMDEwLTA4LTI4IDE3OjUxOjE0ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgY2hlY2tzIGZvciBkZXByZWNhdGVkIGZsb3cgY2hlY2sgbWFjcm9zCgkgIEdTVF9GTE9XX0lTX0ZBVEFMKCkgYW5kIEdTVF9GTE9XX0lTX1NVQ0NFU1MoKSBhcmUgZGVwcmVjYXRlZCwKCSAgc28gYXJlbid0IGF2YWlsYWJsZSBmb3IgdGhlIHRlc3RzdWl0ZSBhbnkgbW9yZS4KCjIwMTAtMDgtMjggMDk6MzU6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggaW52ZXJ0ZWQgYXNzZXJ0aW9uIGxvZ2ljIGluIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKQoKMjAxMC0wOC0yOCAwOTozMDoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB1dGlsczogQWRkIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKSB0byBjb21wYXJlIGZyYWN0aW9ucwoJICBBbmQgdXNlIGl0IGZvciB0aGUgZnJhY3Rpb24gY29tcGFyaXNvbnMgaW4gZ3N0dmFsdWUuYyBpbnN0ZWFkCgkgIG9mIHVzaW5nIGNvbXBhcmlzb25zIGJ5IGZpcnN0IGNvbnZlcnRpbmcgdGhlIGZyYWN0aW9ucyB0byBkb3VibGUuCgkgIFNob3VsZCBmaXggYnVnICM2MjgxNzQuCgkgIEFQSTogZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpCgoyMDEwLTA4LTI4IDE3OjA0OjQzICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgdGVzdHM6IEFkZCBhIGNvdXBsZSBvZiBleHRyYSBjYXBzIHN0cmluZ3MgdG8gdGVzdAoKMjAxMC0wOC0yNyAxNjo1MjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZG8gYW4gaW5maW5pdGUgbG9vcCBpbiB0aGUgbG9vcCBmdW5jdGlvbgoJICBJbnN0ZWFkIHJldHVybiBhZnRlciBldmVyeSBpdGVyYXRpb24sIHdoaWNoIG1ha2VzIHN1cmUgdGhhdCB0aGUKCSAgc3RyZWFtIGxvY2sgaXMgcmVsZWFzZWQgZm9yIGEgc2hvcnQgdGltZSBhZnRlciBldmVyeSBpdGVyYXRpb24sCgkgIHRhc2sgc3RhdGUgY2hhbmdlcyBhcmUgY2hlY2tlZCwgZXRjIGFuZCB0aGlzIGFsbG93cyB0aGUgdGFzawoJICB0byBiZSBzdG9wcGVkIHByb3Blcmx5LgoKMjAxMC0wOC0yNyAxNjo0OToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRmx1c2ggdGhlIGRhdGEgcXVldWUgaWYgZG93bnN0cmVhbSByZXR1cm4gV1JPTkdfU1RBVEUgdG9vCgoyMDEwLTA4LTI2IDIzOjM5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGVsZW1lbnRzOiBTdG9wIHVzaW5nIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCjIwMTAtMDgtMjYgMjM6Mzc6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogU3RvcCB1c2luZyBHU1RfRkxPV19JU19GQVRBTCgpCgkgIEFuZCBkb2N1bWVudCB0aGUgc3BlY2lhbCBoYW5kbGluZyBvZiBXUk9OR19TVEFURS4KCjIwMTAtMDgtMjYgMjM6MDc6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IERlcHJlY2F0ZSBHU1RfRkxPV19JU19GQVRBTCgpIGFuZCBHU1RfRkxPV19JU19TVUNDRVNTKCkKCSAgVGhlIHByb2JsZW0gd2l0aCBib3RoIG1hY3JvcyBpcywgdGhhdCB0aGV5IHN1Z2dlc3Qgc29tZXRoaW5nIHRoYXQgaXNuJ3QgdHJ1ZS4KCSAgSWYgR1NUX0ZMT1dfSVNfRkFUQUwgaXMgdHJ1ZSwgdGhlcmUgY291bGQgc3RpbGwgYmUgYSBwcm9ibGVtIGZvciBtYW55IGVsZW1lbnRzCgkgIGFuZCB0aGV5IHNob3VsZCBzdG9wIHdoYXQgdGhleSdyZSBjdXJyZW50bHkgZG9pbmcgYW5kIHJldHVybiB0aGF0IHZhbHVlCgkgIHVwc3RyZWFtIChlLmcuIG5vdC1saW5rZWQgaW4gYSBwYXJzZXIpLiBJZiBHU1RfRkxPV19JU19TVUNDRVNTIGlzIGZhbHNlLCBpdAoJICBjb3VsZCBzdGlsbCBiZSB0aGF0IHRoaXMgaXMgIm9rIiBmb3IgdGhlIGVsZW1lbnQgKGUuZy4gbm90LWxpbmtlZCBmb3IgYSBkZW11eGVyCgkgIG9uIGEgZmV3IG9mIGl0cyBwYWRzIGJ1dCBub3QgYWxsKS4KCSAgSXQncyBiZXR0ZXIgdG8gbm90IGhhdmUgdGhlc2UgImNvbnZlbmllbmNlIiBtYWNyb3MgYnV0IGluc3RlYWQgbGV0IHBlb3BsZQoJICAqdGhpbmsqIGFib3V0IHRoZSBoYW5kbGluZyBvZiBkaWZmZXJlbnQgZmxvdyByZXR1cm5zLCB0aGF0IG1ha2VzIHNlbnNlIGZvcgoJICB0aGVpciBlbGVtZW50LiBBbmQgd2Ugc2hvdWxkIGRvY3VtZW50IHRoZSBleHBlY3RlZCBoYW5kbGluZyBvZiBmbG93IHJldHVybnMgZm9yCgkgIGRpZmZlcmVudCBjbGFzc2VzIG9mIGVsZW1lbnRzIGluIHRoZSBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUuCgkgIEZpeGVzIGJ1ZyAjNjI4MDE0LgoKMjAxMC0wOC0yNyAxMToxMTowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazoga2VlcCBwcm9wZXJ0aWVzIGluIG9yZGVyCgoyMDEwLTA4LTI3IDEwOjIyOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBUkdfIC0+IFBST1BfIGZvciBwcm9wZXJ0eSBjb25zdGFudHMKCjIwMTAtMDgtMjYgMTc6MDQ6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBvbi1kaXNrIGJ1ZmZlcmluZyBhZ2FpbgoKMjAxMC0wOC0yNiAxNToxMjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWNvdmVyIGZyb20gaW52YWxpZCBkb3duc3RyZWFtIHN1Z2dlc3Rpb25zCgkgIFdoZW4gd2UgYXJlIGhhbmRsaW5nIGEgYnVmZmVyIGFuZCBuZWVkIHRvIGFsbG9jYXRlIGFuIG91dHB1dCBidWZmZXIsIGhhbmRsZSB0aGUKCSAgY2FzZSB3aGVuIGRvd25zdHJlYW0gc3VnZ2VzdHMgdXMgYSBmb3JtYXQgdGhhdCB3ZSBjYW4ndCBjb252ZXJ0IHRoZSBpbnB1dCBidWZmZXIKCSAgdG8uIEluIHRoYXQgY2FzZSwgY2hlY2sgaWYgdGhlcmUgaXMgYW5vdGhlciBmb3JtYXQgYXZhaWxhYmxlIGRvd25zdHJlYW0gaW5zdGVhZAoJICBvZiBmYWlsaW5nLgoJICBGaXhlcyAjNjIxMzMyIGFuZCBzZWUgYWxzbyAjNjE0Mjk2CgoyMDEwLTA4LTI2IDEzOjQ2OjM0ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IGxvYWQgdGhlIGdzdC1weXRob24gcGx1Z2luIGxvYWRlciB3aXRoIEdfTU9EVUxFX0JJTkRfTEFaWS4KCjIwMTAtMDgtMTYgMTQ6MTI6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQQoJICBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQSBmb3IgcmVwcmVzZW50aW5nIGFyYml0cmFyeSBwcml2YXRlCgkgIGRhdGEgdGhhdCBhcHBsaWNhdGlvbnMgbWlnaHQgd2FudCB0byBzdG9yZSBpbnRvIHRhZ3MuIEV4aWYvaWQzLAoJICBmb3IgZXhhbXBsZSwgaGF2ZSB0YWdzIGZvciB0aGlzLgoJICBBUEk6IEdTVF9UQUdfQVBQTElDQVRJT05fREFUQQoJICBGaXhlcyAjNjI2NjUxCgoyMDEwLTA4LTI0IDEyOjQ2OjM4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZ3N0LWxhdW5jaDogRml4IE9JTF9DUFVfRkxBR1MgZG9jcyBmb3IgT3JjCgoyMDEwLTA4LTI0IDE2OjI0OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogcmVtb3ZlIE9JTF9DUFVfRkxBR1MgZnJvbSBtYW4gcGFnZQoJICBXZSdyZSB1c2luZyBPUkMgaW5zdGVhZCBvZiBsaWJPaWwgbm93LgoKMjAxMC0wOC0yMyAxODoyMDoyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBWYWxncmluZCBkZWZpbmUgaXMgSEFWRV9WQUxHUklORF9WQUxHUklORF9ICgoyMDEwLTA3LTI3IDE4OjI0OjQ0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIEFsbG93IGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQoKSBiZWZvcmUgZ3N0X2luaXQoKQoJICBDYWxsaW5nIGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQoKSBiZWZvcmUgaW5pdGlhbGl6YXRpb24KCSAgc2VlbXMgbGlrZSB0aGUgIm9idmlvdXMiIG9yZGVyLgoKMjAxMC0wOC0yMyAxMzowNjoxOSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeCBzZWdmYXVsdCBpbiB0ZXN0CgoyMDEwLTA4LTIzIDEwOjU4OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogaW50ZXJuIGFsbCBHc3RQbHVnaW5EZXNjIG1lbWJlcnMgd2hlbiB1bnBhY2tpbmcKCjIwMTAtMDgtMjMgMTA6NTY6MzAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGZpeCBsZWFrIHdoZW4gbmFtaW5nIHBhcmVudGVkIG9iamVjdAoKMjAxMC0wOC0yMCAwMzowNzo1OCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIGEgZ3N0X2lzX2luaXRpYWxpemVkKCkgQVBJCgkgIEZvciBvbmUsIHRoaXMgd2lsbCBhbGxvdyBsaWJyYXJpZXMgdGhhdCBleHBlY3QgYXBwbGljYXRpb25zIHRvCgkgIGluaXRpYWxpemUgR1N0cmVhbWVyIGJlZm9yZSB1c2luZyB0aGVpciBBUEkgdG8gaGF2ZSBhIGNoZWNrIGZvciB0aGlzCgkgIGNvbmRpdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzQzOAoKMjAxMC0wOC0yMCAxODowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZWxheCB0aGUgc291cmNlIGVsZW1lbnQgY2hlY2sKCSAgV2hlbiB0aGVyZSBpcyBhIHNpbmsgaW5zaWRlIGEgYmluLCB0aGUgU0lOSyBmbGFnIGlzIHNldCBvbiB0aGUgYmluLiBXaGVuIHdlIGFyZQoJICB0cnlpbmcgdG8gaXRlcmF0ZSB0aGUgc291cmNlIGVsZW1lbnRzLCBhbHNvIGluY2x1ZGUgdGhlIGJpbnMgd2l0aCB0aGUgU0lOSyBmbGFnCgkgIGJlY2F1c2UgdGhleSBjb3VsZCBhbHNvIGNvbnRhaW4gc291cmNlIGVsZW1lbnRzLCBpbiB3aGljaCBjYXNlIHRoZXkgYXJlIGFsc28gYQoJICBzb3VyY2UuCgkgIFRoaXMgc29sdmVzIHRoZSBjYXNlIHdoZXJlIHNlbmRpbmcgYW4gRU9TIHRvIGEgcGlwZWxpbmUgZGlkbid0IGdldCBkaXNwYXRjaGVkIHRvCgkgIGFsbCBzb3VyY2UgZWxlbWVudHMuCgkgIFNlZSAjNjI1NTk3CgoyMDEwLTA4LTE5IDE3OjA3OjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogYWRkZWQgdW5pdCB0ZXN0IGZvciBuZXdzZWdtZW50IGV2ZW50cwoKMjAxMC0wMy0wNSAxNzoxODoyMyArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBQdXNoIG5ld3NlZ21lbnQgd2hlbiBsaW5raW5nIGluIFBMQVlJTkcKCSAgRml4ZXMgIzYxMTkxOAoKMjAxMC0wOC0xMiAyMDoyMzo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogbGlua19tYW55IHNob3VsZCBhY3RpdmF0ZSBwYWRzIGlmIG5lZWRlZAoJICBnc3RfZWxlbWVudF9saW5rX21hbnkgZG9lcyBzb21lIG1hZ2ljIGFuZCBjcmVhdGVzIGdob3N0cGFkcwoJICBpZiBuZWVkZWQsIGJ1dCBpdCBkaWRuJ3Qgc2V0IHRoZSBuZXdseSBjcmVhdGVkIGdob3N0cGFkIHRvCgkgIGFjdGl2ZSBpZiBuZWVkZWQuIFRoaXMgcGF0Y2ggZml4ZXMgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjY3ODQKCjIwMTAtMDgtMTkgMTE6MTE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBGaXggbWVtb3J5IGxlYWsgaW4gdGhlIHVuaXQgdGVzdCBieSB1bnJlZmZpbmcgR3N0RGF0ZVRpbWUgaW5zdGFuY2UgYWZ0ZXIgdXNhZ2UKCjIwMTAtMDgtMTkgMTA6MDM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogZml4IGNvbW1lbnRzIGluIHRlc3QKCjIwMTAtMDgtMTkgMDk6NTg6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBHX0dVSU5UNjRfRk9STUFUIHdoZXJlIG5lZWRlZAoJICBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMTAtMDgtMTggMTU6MzE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluCgoyMDEwLTA4LTE4IDE1OjEyOjQ1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4ZWQgcmFjeSB1bml0IHRlc3RzCgkgIEZpeGVzICM2MDAwMDQKCjIwMTAtMDgtMTYgMTg6MDE6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHBsdWdpbnM6IGFkZCBleGFtcGxlIGxhdW5jaCBsaW5lcyBhbmQgbW9yZSBleHBsYW5hdGlvbiB0byB0aGUgZG9jcy4KCSAgVGhlIHBsdWdpbnMgd2hlcmUgYWxtb3N0IHVuZG9jdW1lbnRlZCA6LyAuLi4KCjIwMTAtMDgtMTMgMTY6MTk6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjb21waWxhdGlvbgoKMjAxMC0wNy0wNyAwODoyMDoyMSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYSBzcGVjaWFsIGNhc2UgZHVyaW5nIHJhbmdlIG1hbmFnZW1lbnQKCSAgV2hlbiBhIHJhbmdlIGNvbnRhaW5lZCBubyBkYXRhLCBpZiBpdCB3YXMgbmV3IG9yIG5ld2x5IGVtcHR5LCBpdCB3b3VsZAoJICBiZSBtaXNoYW5kbGVkIGlmIGl0IHdlcmUgdGhlIGN1cnJlbnQgcmFuZ2UuCgoyMDEwLTA3LTA1IDEzOjQzOjA1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBsb2NraW5nIGFyb3VuZCBpbml0X3JhbmdlcwoJICBUaGlzIGZpeGVzIGEgc2VnZmF1bHQgd2hlcmUgdGhlIHJlYWR5IHRvIHBhdXNlZCBzdGF0ZSBjaGFuZ2UgY2F1c2VzCgkgIGZyZWVpbmcgYW5kIGFsbG9jYXRpb24gb2YgbmV3IHJhbmdlcyB3aGlsZSBhbm90aGVyIHRocmVhZCBpcyB0cnlpbmcgdG8KCSAgdXNlIHRoZW0uCgoyMDEwLTA3LTAyIDE3OjQwOjA4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE1vcmUgcmluZyBidWZmZXIgZml4ZXMKCSAgLSBTZXQgcmVhZGluZ19wb3MgY29ycmVjdGx5IGluIF9jcmVhdGVfcmVhZCAoKQoJICAtIFNlZWsgdG8gZGF0YSBpZiBpdCBpcyBmdXJ0aGVyIHRoYW4gUVVFVUVfTUFYX0JZVEVTIChxdWV1ZSkgLQoJICBjdXJfbGV2ZWwuYnl0ZXMgYXdheS4gVGhpcyBzaG91bGQgYXZvaWQgYSBzaXR1YXRpb24gd2hlcmUgdGhlIHJpbmcKCSAgYnVmZmVyIGlzIGZ1bGwgYnV0IHRoZSBkYXRhIG9mZnNldCBmcm9tIHdoaWNoIHdlIHNoYWxsIHJlYWQgaXMgbm90IGluCgkgIHRoZSByaW5nIGJ1ZmZlci4KCSAgLSBPbmx5IHVwZGF0ZSB0aGUgbWF4X3JlYWRpbmdfcG9zIHRvIGEgbG93ZXIgdmFsdWUgdG8gcHJvdGVjdCBkYXRhIHdoZW4KCSAgbmVjZXNzYXJ5CgkgIC0gQWx3YXlzIHNpZ25hbCBhbiBBREQgaW4gX2xvY2tlZF9lbnF1ZXVlICgpIHNvIHRoYXQgYW4gRU9TIHVubG9ja3MgdGhlCgkgIHJlYWRlcgoJICAtIE1vcmUgdXNlZnVsIGRlYnVnIG91dHB1dAoKMjAxMC0wNi0yOCAxNzo1MDowNiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByaW5nIGJ1ZmZlciBmaXhlcwoJICBPbmUgbXVzdCBub3QgYWZmZWN0IHRoZSB2YWx1ZXMgb2YgdGhlIGN1cnJlbnQgcmFuZ2UgYmFzZWQgb24gYSByZWFkCgkgIHJlcXVlc3QgYmVmb3JlIHRoZSBjb3JyZWN0IHJhbmdlIGlzIGFjdGl2YXRlZC4KCjIwMTAtMDYtMjUgMTI6NTg6MjcgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGJ1Z3MKCSAgdXBkYXRlX2J1ZmZlcmluZyAoKSBuZWVkcyB0byBiZSBjYWxsZWQgZXZlcnkgdGltZSB3ZSB3cml0ZSB0byB0aGUgcmluZwoJICBidWZmZXIgc28gdGhhdCBhcHBsaWNhdGlvbnMgZG9uJ3QgZ2V0IHN0dWNrIHdhaXRpbmcgZm9yIGEgMTAwJSBidWZmZXJlZAoJICBtZXNzYWdlIHdoaWxlIHF1ZXVlMiBpcyB3YWl0aW5nIGZvciBzcGFjZQoJICBfY3JlYXRlX3dyaXRlICgpIG11c3Qgb25seSBiZSBjYWxsZWQgZm9yIHRlbXAgZmlsZS9yaW5nIGJ1ZmZlciBjYXNlcwoKMjAxMC0wNi0xOCAxNzo0Mzo0MCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBleHRlbmQgcmluZyBidWZmZXIgdG8gc3VwcG9ydCByYW0gbW9kZQoKMjAxMC0wNi0xOCAxNDozNjozMyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBtZXJnZSB3cml0ZSBidWZmZXIgZnVuY3Rpb25zIGFuZCBmaXggYnVncwoJICBDYWNoZWQgZGF0YSBjb3VsZCBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gc28gaXQgaXMgbm93IHByb3RlY3RlZCB1bnRpbAoJICBpdCBpcyByZWFkLiBTaW1pbGFybHkgZGF0YSB3YXMgb3ZlcnJlYWQgYXMgX2hhdmVfZGF0YSAoKSB3YXMgYWx3YXlzCgkgIGxvb2tpbmcgZm9yIHRoZSBvcmlnaW5hbGx5IHJlcXVlc3RlZCBkYXRhIGV2ZW4gaWYgcGFydCBvZiBpdCBoYWQgYmVlbgoJICByZWFkIGFscmVhZHkuCgoyMDEwLTA2LTE3IDEwOjE4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzbWFsbCBjbGVhbnVwCgoyMDEwLTA2LTE2IDE4OjI1OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwIHdyaXRlX3RvX3JpbmdfYnVmZmVyCgkgIFVzZSBjdXJfbGV2ZWwuYnl0ZXMgdG8gc2VlIGhvdyBtdWNoIHNwYWNlIGlzIGZyZWUgaW4gdGhlIHJpbmdidWZmZXIuCgkgIFNpbXBseWZ5IHRoZSB3cml0ZSBmdW5jdGlvbiwgYXZvaWQgdGFraW5nIHN1YmJ1ZmZlcnMsIG1vdmUgd2FpdGluZyBmb3IgZnJlZQoJICBzcGFjZSBpbiBvbmUgc3BvdCwgdXNlIHNpbXBseSBjb3VudGVyIHRvIHdyaXRlIGRhdGEgb2YgYSBidWZmZXIuCgoyMDEwLTA2LTE2IDE3OjAzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwcwoJICBBZGQgYSBtYWNybyB0byBnZXQgdGhlIG1heCBzaXplIG9mIHRoZSBxdWV1ZSBpbiBieXRlcywgd2hpY2ggZGVwZW5kcyBvbiB0aGUKCSAgbWF4X2xldmVsLmJ5dGVzIGFuZCB0aGUgcmluZ19idWZmZXJfbWF4X3NpemUuCgkgIFNvbWUgY2xlYW51cHMuCgoyMDEwLTA2LTE2IDE2OjIzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTA2LTE2IDE2OjEzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwcwoJICBNYWtlIHN1cmUgdGhlIGN1cl9sZXZlbC5ieXRlcyBpcyB1cGRhdGVkIGFmdGVyIHdlIGNoYW5nZSB0aGUgd3JpdGluZ19wb3Mgb3IgdGhlCgkgIG1heF9yZWFkaW5nX3Bvcy4KCSAgUmVmYWN0b3IgZ2V0X2ZyZWVfc3BhY2UoKQoJICBBZGQgc29tZSBjb21tZW50cwoKMjAxMC0wNi0xNiAxMjowMDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIHVubmVlZGVkIHNpZ25hbAoKMjAxMC0wNi0xNiAxMjowMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlcmluZyBtb2RlIGNvcnJlY3RseQoKMjAxMC0wNi0xNiAxMToyMDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGNhbGN1bGF0aW9uIG9mIGF2YWlsYWJsZSByaW5nYnVmZmVyIGRhdGEKCjIwMTAtMDYtMTYgMTE6MTE6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlYWRpbmdfcG9zIGlzIHVwZGF0ZWQgaW4gY3JlYXRlX3JlYWQgb25seQoKMjAxMC0wNi0xNiAxMToxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3IgYW5kIGFkZCBkZWJ1ZwoKMjAxMC0wNi0xNiAxMToxMDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGZsdXNoaW5nCgoyMDEwLTA2LTE2IDExOjA5OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgZGVidWcKCjIwMTAtMDYtMTUgMTc6MjY6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHRyeSB0byB3cml0ZSAwIGJ5dGVzCgoyMDEwLTA2LTE1IDE2OjEyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOyBjbGVhbnVwcyBhbmQgZml4ZXMKCSAgTWFrZSBhIG1hY3JvIGZvciBzb21lIGZyZXF1ZW50IGNoZWNrcwoJICBFbWl0IHRoZSByZW1vdmVkIHNpZ25hbCBpbiBhbGwgY2FzZXMgd2hlbiB3ZSByZW1vdmUgc29tZXRoaW5nCgoyMDEwLTA2LTE1IDEyOjM3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvcmluZ3MKCSAgQ2hlY2sgYW5kIGhhbmRsZSBzZWVrIGVycm9ycwoJICBSZWZhY3RvciB0aGUgd2FpdF9mcmVlX3NwYWNlIGZ1bmN0aW9uLgoKMjAxMC0wNi0xNiAxMjoyNDoyNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcCB0byBjb250cm9sIHJpbmcgYnVmZmVyCgoyMDEwLTA2LTA2IDA5OjMwOjQ4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENsZWFuIHVwIGFuZCBpbXByb3ZlIGNvZGUKCjIwMTAtMDUtMjYgMDQ6MTE6NDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGNvbmRpdGlvbnMgd2hlcmUgYmVoYXZpb3VyIHNob3VsZCBkaWZmZXIgYmV0d2VlbiByaW5nIGJ1ZmZlciBhbmQgdGVtcCBmaWxlCgoyMDEwLTA1LTE5IDE2OjA0OjE1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB1c2VmdWwgZGVidWcgbWVzc2FnZXMgYW5kIGZpeCBhbiBhc3N1bXB0aW9uIGluIF9oYXZlX2RhdGEgKCkKCjIwMTAtMDUtMTggMTc6NDI6MDcgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlcmluZyBwZXJjZW50YWdlIGluIHJpbmcgYnVmZmVyIG1vZGUKCjIwMTAtMDUtMTggMTc6MjE6NDAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdmFyaW91cyByaW5nIGJ1ZmZlciBmaXhlcwoJICAtIG1ha2UgX2dldF9yYW5nZSAoKSBlbWl0IHRoZSBkZWwgc2lnbmFsIG9uY2UgYSBidWZmZXIgaGFzIGJlZW4gcmVhZAoJICAtIHVzZSBkbyB7fSB3aGlsZSAoKTsgZm9yIHdhaXQgY29kZSBhcyBxdWV1ZSBpcyBsb2NrZWQgYW5kIG5vIGRhdGEgY291bGQKCSAgaGF2ZSBiZWVuIHJlYWQgaW4gdGhlIG1lYW4gdGltZSBzbyBpdCBtYWtlcyBubyBzZW5zZSB0byBjaGVjayBiZWZvcmUKCSAgd2FpdGluZwoJICAtIG1ha2UgX2lzX2ZpbGxlZCAoKSBtb3JlIHJvYnVzdAoKMjAxMC0wNS0wNyAwOTozMDo0NCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByaW5nIGJ1ZmZlciB3b3JrIGluIHByb2dyZXNzCgoyMDEwLTA1LTA1IDEwOjIxOjU1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCB1c2UtcmluZy1idWZmZXIgYW5kIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnRpZXMKCjIwMTAtMDYtMTUgMDg6NTk6MTEgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIFNULUVyaWNzc29uIGNvcHlyaWdodAoKMjAxMC0wOC0xMyAxNzoyMzozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZThkYjFkIHRvIGVjNjAyMTcKCjIwMTAtMDgtMTIgMjI6MDg6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHhyZWZzIGdsaWIgc3ltYm9sIGluIGRvY3MKCjIwMTAtMDgtMTIgMTY6MDU6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBnc3Rjb2xsZWN0cGFkczogRml4IGRvY3MgYWJvdXQgR3N0Q29sbGVjdERhdGEgbGlzdAoJICBBZGQgdG8gdGhlIGRvY3MgdGhlIGZhY3QgdGhhdCBpcyBvbmx5IHNhZmUgdG8gaXRlcmF0ZQoJICBHc3RDb2xsZWN0UGFkJ3MgZGF0YSBsaXN0IGluc2lkZSB0aGUgY29sbGVjdGVkIGNhbGxiYWNrLgoJICBGaXhlcyAjNjEwMzY2CgoyMDEwLTA4LTEwIDEwOjU2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmQyMDU0YiB0byAzZThkYjFkCgoyMDEwLTA4LTA0IDExOjI0OjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX05BTUUgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIGZvciByZXByZXNlbnRpbmcgYXBwbGljYXRpb24gdXNlZCB0byBjcmVhdGUKCSAgYSBtZWRpYQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2MDI3CgoyMDEwLTA4LTA4IDE3OjU3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IEluaXRpYWxpemUgdGhlIEdUeXBlIGNhY2hlIGZvciB0aGUgYnVmZmVybGlzdCBhZ2FpbgoJICBUaGlzIHdhcyBhY2NpZGVudGlhbGx5IHJlbW92ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCjIwMTAtMDgtMDYgMTk6Mzg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogRG9uJ3QgY2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcwoJICBHc3RNaW5pT2JqZWN0OjpmaW5hbGl6ZSBkb2VzIG5vdGhpbmcgYW5kIHRoaXMgcHJldmVudHMgYQoJICBydW50aW1lLXR5cGUtY2hlY2sgY2FzdCBhbmQgZnVuY3Rpb24gY2FsbCBwZXIgYnVmZmVyIGxpc3QuCgoyMDEwLTA3LTIwIDA5OjIzOjExIC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogbWFrZSBfZ2V0X3R5cGUoKSBpbiBnc3QvKiB0aHJlYWQgc2FmZQoJICBUaGlzIGlzIG5vdCByZWFsbHkgbmVjZXNzYXJ5IGhlcmUgYmVjYXVzZSBldmVyeXRoaW5nIGlzCgkgIGluaXRpYWxpemVkIGZyb20gZ3N0X2luaXQoKSBhbHJlYWR5IGJ1dCB1c2luZyBHX0RFRklORV9UWVBFKCkKCSAgcmVtb3ZlcyBzb21lIGNvcHkmcGFzdGUgYm9pbGVycGxhdGUgY29kZS4KCjIwMTAtMDgtMDYgMTk6MzQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcGx1Z2luczogQWRkIGRlY2xhcmF0aW9ucyBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb25zIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0yMCAwOToyMzo1NCAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHBsdWdpbnM6IE1ha2UgKl9nZXRfdHlwZSgpIGluIHBsdWdpbnMvKiB0aHJlYWQgc2FmZQoJICBJdCdzIG5vdCByZWFsbHkgbmVlZGVkIGhlcmUgYnV0IHVzaW5nIEdfREVGSU5FX1RZUEUoKSByZWR1Y2VzCgkgIHNvbWUgY29weSZwYXN0ZSBib2lsZXJwbGF0ZSBjb2RlLgoKMjAxMC0wOC0wNiAxODo0Mzo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzdXJlIHRoZSBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIGNoYW5naW5nIGl0CgoyMDEwLTA4LTA1IDEzOjU2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIwMDRkMDMgdG8gYmQyMDU0YgoKMjAxMC0wOC0wNSAxMDowNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHNwZWVkIHVwIHBhZCBsaW5raW5nIHV0aWxpdHkgZnVuY3Rpb25zIGJ5IG5vdCB0cnlpbmcgcGFkcyB0aGF0IHdpbGwgbmV2ZXIgd29yawoJICBJbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSwgd2hlbiB0cnlpbmcgdG8gZmluZCBhIGNvbXBhdGlibGUgcGFkIG9uIGFuCgkgIGVsZW1lbnQgZm9yIGEgZ2l2ZW4gcGFkLCB0aGVyZSdzIG5vIHBvaW50IGluIGNoZWNraW5nIHRoZSBlbGVtZW50J3Mgc2luayBwYWRzCgkgIGlmIHRoZSBwYWQgdG8gbGluayBpcyBhIHNpbmsgcGFkIGFzIHdlbGwsIG9yIHRoZSBlbGVtZW50J3Mgc291cmNlIHBhZHMgaWYgdGhlCgkgIGdpdmVuIHBhZCBpcyBhIHNvdXJjZSBwYWQgYWxyZWFkeSwgc2luY2UgdGhvc2Ugd291bGQgbmV2ZXIgYmUgYWJsZSB0byBsaW5rCgkgIGFueXdheS4gU2hvdWxkIHNwZWVkIHVwIGxpbmtpbmcgdXNpbmcgdGhlIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhIGxpdHRsZSBiaXQsCgkgIG9yIGF0IGxlYXN0IHJlZHVjZSBkZWJ1ZyBsb2cgb3V0cHV0LgoKMjAxMC0wOC0wNSAxMDozMjo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdGFrZSB0aGUgdGltZXN0YW1wIGEgdGljayBsYXRlcgoJICBUaGUgbG9nZ2luZyBpcyBub3QgYW4gYXRvbWljIG9wZXJhdGlvbiBhbmQgYmVjYXVzZSBvZiB0aGUgbXVsdGktdGhyZWFkaW5nIHdlIGVuZAoJICB1cCB3aXRoIG91dC1vZi1vcmRlciBsb2cgbGluZXMuIFRvb2xzIHRoYXQgcHJlc2VudCB0aGUgbG9nLWZpbGUgc2hvdWxkIHByb2JhYmx5CgkgIHJlc29ydCB0aGUgbGluZXMuIFRoaXMgY2hhbmdlIGp1c3QgdGFrZXMgdGhlIHRpbWVzdGFtcCBhIGJpdCBjbG9zZXIgdG8gdGhlCgkgIGFjdHVhbCBsb2dnaW5nLgoKMjAxMC0wOC0wNSAwOTozNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGRlYnVnOiBsb2dnaW5nIGltcHJvdmVtZW50cwoJICBVc2UgdGhlIGV2ZW50IHNlcmlhbGlzYXRpb24uIExvZyBmb3JtYXRzIG5hbWUgaW5zdGVhZCBvZiBudW1iZXIuCgoyMDEwLTA3LTE1IDE1OjQ2OjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZG9uJ3QgdXNlIGMrKyBrZXl3b3JkcyBhcyB2YXJpYWJsZSBuYW1lcwoKMjAxMC0wNy0xNSAxMTozNzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGxvZyBzZWVrIGV2ZW50IGRldGFpbHMKCjIwMTAtMDctMTIgMTA6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBnc3QtY29udHJvbGxlciBjaGFwdGVyCgkgIFRoZSBkb2NzIHdlcmUgc3RpbGwgZGVzY3JpYmluZyBkZXByZWNhdGVkIGFwaS4gVXBkYXRlIGl0IHRvIHRlbGwgYWJvdXQKCSAgY29udHJvbC1jb3VyY2VzLgoKMjAxMC0wNy0wOSAxNTo1ODo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgdGVzdHM6IGNsZWFuIHVwIGV2ZW50bG9vcCBpbiBleGFtcGxlcwoJICBEb24ndCBsZWFrIHRoZSBidXMuIERvbid0IHBhcnNlIG1lc3NhZ2VzIHdpdGggdGhlIG1ldGhvZCBmb3IgZXJyb3JzICh0cmlnZ2VycwoJICBnb2JqZWN0IHdhcm5pbmcpLgoKMjAxMC0wNy0wOCAxNDowODoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgcGlwZWxpbmUKCSAgQ2F0Y2ggZXJyb3JzIGFuZCB3YXJuaW5ncyBvbiB0aGUgYnVzLiBUaGlzIGZpeGVzIGhhbmdpbmcgcGlwZWxpbmVzIGluIHRoZSBjYXNlCgkgIG9mIGJ1Z3MgZWxzZXdoZXJlLiBBbHNvIHByaW50IHN0YXRlLWNoYW5nZSBtZXNzYWdlcyB0byBnaXZlIG1vcmUgZGV0YWlsIG9uIHRoZSBwcm9ncmVzcy4KCjIwMTAtMDctMDYgMTg6MjA6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBjbGVhbnVwIGxhc3QgY2hhbmdlIGluIGNhcHNuZWdvIGJlbmNobWFyawoJICBBIHBhZCBuYW1lIGlzIG5vdCBhIGZhY3RvcnkgbmFtZS4KCjIwMTAtMDctMDYgMTQ6Mjk6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBkb2NzOiBtb3JlIGRvY3MgZm9yIGdzdF9wYXJzZV9sYXVuY2ggYW5kIGNvCgkgIFRlbGwgYWJvdXQgbGltaXRlZCByZXVzYWJpbGl0eSBvZiBzb21lIHBhcnNlZCBwaXBlbGluZXMuCgoyMDEwLTA3LTA1IDE2OjMyOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBwYWQgaW5mbyBvdXRwdXQgaW1wcm92ZW1lbnRzCgkgIERvbid0IHByaW50IGVtcHR5IHF1ZXJ5IHR5cGVzLiBBbHNvIHByaW50IGNhcHMtdm1ldGhvZHMuCgoyMDEwLTA3LTA2IDE2OjQ3OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbG9nIGVsZW1lbnQ6cGFkIG5hbWVzIHdpdGggY2FwcwoKMjAxMC0wNi0zMCAxMTo0NjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBiZXR0ZXIgZXJyb3IgbG9nZ2luZyBpbiBsaW5rX3BhZHNfZmlsdGVyZWQKCjIwMTAtMDYtMjQgMTA6MDA6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0czogYWRkIGNvbW1lbnRzIHRlbGxpbmcgdGhlIG1lYW5pbmcgb2YgdGhlIGFiYnJldmlhdGlvbnMKCjIwMTAtMDctMDUgMTI6MTk6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBzb21lIGNhcHMgbWFuaXB1bGF0aW9uCgkgIEFmdGVyIHRoZSBpbnRlcnNlY3Qgd2UgaGF2ZSB3cml0YWJsZSBjYXBzLiBDb3B5IHRoZSB0ZW1wbGF0ZSBjYXBzIHNvIHRoYXQgYWxzbwoJICB0aGVyZSB3ZSBoYXZlIHdyaXRhYmxlIGNhcHMuCgoyMDEwLTA4LTA1IDAxOjA5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogYWRkIGJhc2ljIHVuaXQgdGVzdCBmb3IgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNDIwMwoKMjAxMC0wOC0wNSAwMTowNjo1NyArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBNYWtlIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpIHJldHVybiBlbXB0eSBjYXBzIGlmIGl0J3Mgd2hhdCB0aGUgb3RoZXIgc2lkZSBoYXMKCSAgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkgd291bGQgcmV0dXJuIHRoZSBwYWQgdGVtcGxhdGUgY2FwcyBpZiB0aGUgb3RoZXIgc2lkZQoJICByZXR1cm5lZCBlbXB0eSBjYXBzIG9yIGlmIHRoZSBpbnRlcnNlY3Rpb24gb2YgYWxsIHRoZSBjYXBzIG9uIHRoZSBvdGhlciBzaWRlCgkgIHdhcyBlbXB0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNDIwMwoKMjAxMC0wOC0wNCAxOToxOTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hlY2sgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIElTTyBDODkgb3IgQzk5IGFuZCB3aGljaCBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZAoJICBUaGlzIGZpcnN0IGNoZWNrcyB3aGF0IGlzIHJlcXVpcmVkIGZvciBJU08gQzk5IHN1cHBvcnQgYW5kIHNldHMgdGhlIHJlbGV2YW50CgkgIGNvbXBpbGVyIHBhcmFtZXRlcnMgYW5kIGlmIG5vIEM5OSBjb21waWxlciBpcyBmb3VuZCwgaXQgY2hlY2tzIGZvciBhCgkgIEM4OSBjb21waWxlci4gVGhpcyBlbmFibGVzIHVzIHRvIGNoZWNrIGZvciBhbmQgdXNlIEM4OS9DOTkgZnVuY3Rpb25zCgkgIHRoYXQgZ2NjIGhpZGVzIGZyb20gdXMgd2l0aG91dCB0aGUgY29ycmVjdCBjb21waWxlciBwYXJhbWV0ZXJzLgoKMjAxMC0wOC0wNCAxMzo0NzoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogRml4IGRvY3MKCSAgRml4IHR5cG8gaW4gZG9jcyBmb3IgdGhlIHVuc2lnbmVkIHBlZWsgZnVuY3Rpb25zCgoyMDEwLTA3LTA1IDEwOjAwOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlbW92ZSBcbiBmcm9tIGRlYnVnIHN0YXRlbWVudHMKCjIwMTAtMDgtMDMgMTE6Mzc6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZml4IGJ1aWxkIHdpdGggZ3RrLWRvYyBmcm9tIGdpdAoJICBGb3Igc29tZSByZWFzb24gdGhlIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24gR1NUX0NBVF9MRVZFTF9MT0dfdmFsaXN0IGlzCgkgIG5vdyBwaWNrZWQgdXAsIHdoaWNoIHRoZW4gYnJlYWtzIHRoZSBidWlsZCBiZWNhdXNlIGl0J3Mgbm90IGRvY3VtZW50ZWQsCgkgIHNvIGFkZCBpdCB0byB0aGUgc2VjdGlvbnMgZmlsZS4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+LgoJICBGaXhlcyAjNjI1ODYyLgoKMjAxMC0wNy0xNSAyMzowNTowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGFkZCBjb21tZW50IGFuZCBtb3JlIGxvZ2dpbmcKCjIwMTAtMDctMjkgMTc6Mjc6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb3dubG9hZCBtb2RlOyBwcmV2ZW50IHJhbmdlIGNvcnJ1cHRpb24gZHVlIHRvIHJhY2UKCSAgQ3VycmVudCByYW5nZSB3YXMgYmVpbmcgdXBkYXRlZCBpbiB0aGUgdGhyZWFkIHBlcmZvcm1pbmcgc2VlaywgYnV0IGFzCgkgIG5vIGxvY2tzIHdlcmUga2VwdCBmb3IgYSBzaG9ydCBzZWN0aW9uLCBkYXRhIGZsb3cgY291bGQgcmVzdW1lIGJlZm9yZQoJICBjdXJyZW50IHJhbmdlIHVwZGF0ZWQsIHNvIGRhdGEgZm9yIHRoZSBuZXcgcmFuZ2Ugd291bGQgYmUgYWNjZXB0ZWQgYXMKCSAgZnJvbSB0aGUgcHJldmlvdXMgcmFuZ2UuCgkgIFJhdGhlciwgcmFuZ2Ugc2hvdWxkIGJlIHVwZGF0ZWQgaW4gc2VyaWFsaXplZCBtYW5uZXIgYmFzZWQgb24KCSAgbmV3c2VnbWVudCBldmVudC4KCjIwMTAtMDUtMjIgMTY6MzM6MTEgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtIGZpeCBmb3IgdXBzdHJlYW0gY2Fwcy1yZW5lZ290aWF0aW9uCgkgIElmIGluaXRpYWxseSBwYXNzLXRocm91Z2ggY2FwcyBhcmUgbmVnb3RpYXRlZCBiZXR3ZWVuIGEgdHJhbnNmb3JtIGVsZW1lbnQncwoJICBzaW5rIGFuZCBzcmMgcGFkcywgYnV0IHRoZW4gdGhlIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIGRpZmZlcmVudCBjYXBzCgkgIG9uIGEgYnVmZmVyIGZyb20gcGFkX2FsbG9jKCksIGJhc2V0cmFuc2Zvcm0gZ2V0cyBzdHVjayB3aXRoIHByb3h5X2FsbG9jPVRSVUUKCSAgZXZlbiB0aG91Z2ggdGhlIHVwc3RyZWFtIHBlZXIgZG9lc24ndCBhY2NlcHQgdGhlIGNhcHMsIGNhdXNpbmcKCSAgZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKCkgdG8gYmUgY2FsbGVkIG9uIGVhY2ggYnVmZmVyIGluIF9idWZmZXJfYWxsb2MoKToKCSAgaWYgKCFnc3RfY2Fwc19pc19lcXVhbCAobmV3Y2FwcywgY2FwcykpIHsKCSAgR1NUX0RFQlVHX09CSkVDVCAodHJhbnMsICJjYXBzIGFyZSBuZXciKTsKCSAgLyogd2UgaGF2ZSBuZXcgY2Fwcywgc2VlIGlmIHdlIGNhbiBwcm94eSBkb3duc3RyZWFtICovCgkgID4+ICAgIGlmIChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMgKHBhZCwgbmV3Y2FwcykpIHsKCSAgLyogcGVlciBhY2NlcHRzIHRoZSBjYXBzLCByZXR1cm4gYSBidWZmZXIgaW4gdGhpcyBmb3JtYXQgKi8KCSAgR1NUX0RFQlVHX09CSkVDVCAodHJhbnMsICJwZWVyIGFjY2VwdGVkIG5ldyBjYXBzIik7CgkgIHdoaWNoIGlzIHRha2luZyB+NDBtcy9mcmFtZS4KCSAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuICAoMSkgaWYgdGhlIGJ1ZmZlciByZXR1cm5lZCBmcm9tIHBhZF9hbGxvYygpIGhhcwoJICBuZXcgY2FwcywgdHJpZ2dlciB0aGUgZGVjaXNpb24gd2hldGhlciB0byBwcm94eSB0aGUgYnVmZmVyLWFsbG9jIHRvIGJlCgkgIHJldmlzaXRlZCwgYW5kICgyKSBkaXNhYmxlIHByb3h5IGlmIHBlZXIgZG9lcyBub3QgYWNjZXB0IG5ldyBjYXBzLiAgKFRoZSBmaXJzdAoJICBwYXJ0IG1heSBub3QgYmUgc3RyaWN0bHkgbmVlZGVkLCBidXQgc2VlbWVkIGxpa2UgYSBnb29kIGlkZWEuKQoJICBOb3RlIHRoYXQgdGhpcyBpc3N1ZSB3b3VsZCBub3QgYXJpc2UgZXhjZXB0IGluIGNhc2Ugb2YgZG93bnN0cmVhbSBlbGVtZW50cwoJICB3aG8gaGF2ZSBvbiB0aGVpciB0ZW1wbGF0ZS1jYXBzLCBzb21lIHRoYXQgd291bGQgYmUgc3VpdGFibGUgZm9yIHBhc3MtdGhyb3VnaCwKCSAgYnV0IGF0IHJ1bnRpbWUgcGljayBtb3JlIHJlc3RyaWN0aXZlIGNhcHMgKGZvciBleCwgYWZ0ZXIgcXVlcnlpbmcgYSBkcml2ZXIgZm9yCgkgIHdoYXQgZm9ybWF0cyBpdCBhY3R1YWxseSBzdXBwb3J0cykuCgoyMDEwLTA3LTI3IDE0OjMwOjUxICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxhdGlvbiBvbiB3aW5kb3dzCgkgIEZpeCBtaXNtYXRjaGVkIGJyYWNrZXRzICgjNjI1Mjk1KS4KCjIwMTAtMDctMjcgMDc6MjE6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggbG9jYWx0aW1lIHVzYWdlCgkgIGxvY2FsdGltZSBvbmx5IHRha2VzIG9uZSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgYSBzdGF0aWNhbGx5CgkgIGFsbG9jYXRlZCB0bSBzdHJ1Y3QuIFVzZSBpdCBjb3JyZWN0bHkuCgkgIEZpeGVzICM2MjUzNjgKCjIwMTAtMDMtMjkgMTg6MDU6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBUcnkgc3VnZ2VzdGluZyBjYXBzIG9uIGJhZCBjYXBzIHBhZF9hbGxvYwoJICBXaGVuIGJhc2V0cmFuc2Zvcm0gcmVjZWl2ZWQgYW4gdW5zdXBwb3J0ZWQgY2FwcyBvbiBwYWRfYWxsb2MKCSAgaXQganVzdCByZXR1cm5lZCBub3QtbmVnb3RpYXRlZC4gVGhpcyBwYXRjaCBtYWtlcyBpdCBxdWVyeQoJICB0aGUgYWxsb3dlZCBjYXBzIGJldHdlZW4gaGlzIHNpbmtwYWQgYW5kIHVwc3RyZWFtJ3Mgc3JjcGFkCgkgIHRvIGZpbmQgYSBjYXBzIHRvIHN1Z2dlc3QuCgkgIFRoaXMgaGFwcGVucyB3aGVuIGRpbmFtaWNhbGx5IHN3aXRjaGluZyBwaXBlbGluZSBlbGVtZW50cwoJICBhbmQgdXBzdHJlYW0gcGFkX2FsbG9jcyB3aXRoIHRoZSBwcmV2aW91cyBjYXBzIHRoYXQgd2FzCgkgIGJlaW5nIHVzZWQuCgkgIEZpeGVzICM2MTQyOTYKCjIwMTAtMDctMjYgMTg6NTM6NTcgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZmx1c2ggYWdhaW4gYWZ0ZXIgZXZlcnkgbGluZSBvZiBkZWJ1ZyBvdXRwdXQKCSAgZ19wcmludGVycigpIHVzZWQgdG8gZG8gdGhpcyBmb3IgdXMuIEFsc28gdXNlIGxpYmMncyBmcHJpbnRmKCkgZnVuY3Rpb25zLAoJICB0byBtYWtlIHN1cmUgdGhlIHN0ZGVyciBwb2ludGVyIHdlIHVzZSBpcyBhY3R1YWxseSBjb21wYXRpYmxlIHdpdGggdGhlCgkgIGxpYmMgbGlua2VkIGFnYWluc3QgYnkgR1N0cmVhbWVyICh3aGljaCBhcHBhcmVudGx5IG1heSBub3QgYWx3YXlzIGJlIHRoZQoJICBzYW1lIGFzIHdoYXQgR0xpYiBpcyBsaW5rZWQgYWdhaW5zdCBvbiB3aW5kb3dzKSwgYW5kIHdlIGRvbid0IG5lZWQgdGhlCgkgIGZ1bmN0aW9uYWxpdHkgZW5zdXJlZCBieSBnX2ZwcmludGYoKS4KCSAgRml4ZXMgIzYyNTI5NS4KCjIwMTAtMDctMjYgMTg6NTM6MzUgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDYtMjMgMTE6MzE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGRzIHRlc3RzIGZvciBkYXRldGltZQoJICBBZGRzIHRlc3RzIGZvciBkYXRldGltZSBmaWVsZHMgaW4gZ3N0dmFsdWUgdGVzdHMKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNi0yMyAxMTozMDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHN0cnVjdHVyZTogQWRkcyBkYXRldGltZSBnZXR0ZXIgZnVuY3Rpb24KCSAgQWRkcyBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUgZnVuY3Rpb24KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNi0yMSAyMzo0Mjo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19EQVRFX1RJTUUgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIHRoYXQgcmVwcmVzZW50cyBhIGRhdGUgYW5kIHRpbWUgYSBtZWRpYSB3YXMKCSAgY3JlYXRlZAoJICBBUEk6IEdTVF9UQUdfREFURV9USU1FCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjEgMjI6MDg6MjEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IEFkZCBkYXRldGltZSBnZXQgZnVuY3Rpb25zCgkgIEFkZHMgX2RhdGVfdGltZV9nZXQgYW5kIF9kYXRlX3RpbWVfZ2V0X2luZGV4IGZ1bmN0aW9ucyB0bwoJICB0YWdsaXN0LgoJICBBUEk6IGdzdF90YWdfbGlzdF9nZXRfZGF0ZV90aW1lCgkgIEFQSTogZ3N0X3RhZ19saXN0X2dldF9kYXRlX3RpbWVfaW5kZXgKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yMSAyMjowNDoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZHMgZGF0ZXRpbWUgZnVuY3Rpb25zCgkgIEFkZHMgYSBkYXRldGltZSBmdW5jdGlvbnMgdG8gZ3N0dmFsdWUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0xNiAxNDowOToxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RkYXRldGltZTogQWRkcyBHc3REYXRlVGltZQoJICBBZGRzIEdzdERhdGVUaW1lIHRvIHJlcHJlc2VudCBkYXRlcyArIHRpbWUgKyB0aW1lem9uZQoJICBpbmZvcm1hdGlvbi4KCSAgVGVzdHMgaW5jbHVkZWQuCgkgIEFQSTogR3N0RGF0ZVRpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9kYXkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9tb250aAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3llYXIKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9ob3VyCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbWljcm9zZWNvbmQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9taW51dGUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9zZWNvbmQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF90aW1lX3pvbmVfb2Zmc2V0CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXcKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19sb2NhbF90aW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbm93X2xvY2FsX3RpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19ub3dfdXRjCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9yZWYKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3VucmVmCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjYgMTQ6NTk6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCB1c2FnZSBvZiBnbGliX2NoZWNrX3ZlcnNpb24oKQoJICBJdCByZXR1cm5zIE5VTEwgaWYgdGhlIGluc3RhbGxlZCBHTGliIHZlcnNpb24gaXMgYXMgbGVhc3QgYXMKCSAgbmV3IGFzIHRoZSByZXF1aXJlZCB2ZXJzaW9uIGFuZCBzb21lIGV4cGxhbmF0b3J5IHN0cmluZyBvdGhlcndpc2UuCgoyMDEwLTA3LTIzIDIwOjQ2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBtYWtlIGdzdC1pbnNwZWN0IHByaW50IHRoZSByZWxlYXNlIGRhdGUgdGltZSBzdGFtcAoKMjAxMC0wNi0yMSAxNzozNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgbmV3IEFHX0dTVF9TRVRfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FX1dJVEhfTkFOTyBtYWNybwoKMjAxMC0wNi0yMCAwMTo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBzYXZlIGFuZCBsb2FkIHJlbGVhc2UgZGF0ZSB0aW1lIGluIEdzdFBsdWdpbkRlc2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzA0MAoKMjAxMC0wNi0yMCAwMDozMzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCByZWxlYXNlIGRhdGV0aW1lIGZpZWxkIHRvIEdzdFBsdWdpbkRlc2MgYW5kIHNldCBpdCBpZiBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FIGlzIGRlZmluZWQKCSAgVGhpcyBpcyBhIHN0cmluZyBkZXNjcmliaW5nIGEgZGF0ZSBhbmQvb3IgZGF0ZS90aW1lIGluIGEgc2ltcGxlIHN1YnNldCBvZgoJICB0aGUgSVNPLTg2MDEgZm9ybWF0LCBuYW1lbHkgZWl0aGVyICJZWVlZLU1NLUREIiBvciAiWVlZWS1NTS1ERFRISDpNTVoiICh3aXRoCgkgICdUJyB0aGUgZGF0ZS90aW1lIHNlcGFyYXRvciBhbmQgdGhlICdaJyBpbmRpY2F0aW5nIFVUQykuCgkgIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBmaWVsZCBpcyB0byBrZWVwIHRyYWNrIG9mIHBsdWdpbiBhbmQgZWxlbWVudCB2ZXJzaW9ucwoJICBvbiBhbiBhYnNvbHV0ZSB0aW1lbGluZSwgc28gaXQncyBwb3NzaWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggb25lIGlzIG5ld2VyIHdoZW4KCSAgY29tcGFyaW5nIHR3byBkYXRlIHRpbWUgbnVtYmVycy4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGV4cHJlc3MgJ3JlcGxhY2VzJy10eXBlCgkgIHJlbGF0aW9uc2hpcHMgYmV0d2VlZW4gcGx1Z2lucyBhbmQgZWxlbWVudCBmYWN0b3JpZXMgaW4gZnV0dXJlLCBldmVuIGFjcm9zcwoJICBkaWZmZXJlbnQgbW9kdWxlcyBhbmQgcGx1Z2luIG1lcmdlcyBvciBzcGxpdHMgKHNvdXJjZSBtb2R1bGUgdmVyc2lvbiBudW1iZXJzCgkgIGFyZW4ndCBwYXJ0aWN1bGFybHkgdXNlZnVsIGhlcmUsIHNpbmNlIHRoZXkgY2FuIG9ubHkgbWVhbmluZ2Z1bGx5IGJlIGNvbXBhcmVkCgkgIHdpdGhpbiB0aGUgc2FtZSBtb2R1bGUpLiBJdCBhbHNvIGFsbG93cyBhcHBsaWNhdGlvbnMgYW5kIGxpYnJhcmllcyB0byByZWxpYWJseQoJICBjaGVjayB0aGF0IGEgcGx1Z2luIGlzIHJlY2VudCBlbm91Z2ggd2l0aG91dCBtYWtpbmcgYXNzdW1wdGlvbnMgYWJvdXQgbW9kdWxlcwoJICBvciBtb2R1bGUgdmVyc2lvbnMuCgkgIFdlIHVzZSBhIHN0cmluZyBoZXJlIHRvIGtlZXAgdGhpbmdzIHNpbXBsZSBhbmQgY2xlYXIsIGVzcC4gb24gdGhlIGJ1aWxkIHN5c3RlbQoJICBzaWRlIG9mIHRoaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzA0MAoKMjAxMC0wNy0yMCAwOToyNToyMCAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IG1ha2UgKl9nZXRfdHlwZSgpIGluIHRlc3RzIHRocmVhZCBzYWZlCgkgIEV2ZW4gaWYgaXQgc2hvdWxkbid0IGJlIG5lZWRlZCBoZXJlLiBTZWUgIzYyMzQ5MS4KCjIwMTAtMDYtMDQgMTE6MjQ6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogd3JpdGUgZGVidWdnaW5nIG91dHB1dCB0byBmaWxlIGlmIEdTVF9ERUJVR19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldAoJICBUaGlzIGNoYW5nZXMgYmVoYXZpb3VyIHNsaWdodGx5IGluIHRoYXQgd2Ugbm8gbG9uZ2VyIG91dHB1dCB0aGluZ3MKCSAgdmlhIGdfcHJpbnRlcnIoKSwgc28gYW55IG5vbi1zdGFuZGFyZCBnbGliIHByaW50ZXJyIGhhbmRsZXJzIGFyZSBubwoJICBsb25nZXIgY2FsbGVkIHdoZW4gR1NUX0RFQlVHIGlzIGVuYWJsZWQuIEhvd2V2ZXIsIHRoaXMgc2VlbXMgbm90CgkgIHJlYWxseSBkZXNpcmFibGUgaW4gbW9zdCBjYXNlcyBhbnl3YXksIGFuZCB0aGUgR0xpYiBkb2NzIGFsc28gc2F5CgkgIHRoYXQgbGlicmFyaWVzIHNob3VsZCBub3QgdXNlIGdfcHJpbnRlcnIoKSBmb3IgbG9nZ2luZy4KCSAgT3RoZXIgc3RkZXJyIG91dHB1dCAoZS5nLiB3YXJuaW5ncywgb3IgYXBwbGljYXRpb24gbWVzc2FnZXMpIHdpbGwKCSAgb2YgY291cnNlIG5vdCBiZSBjYXB0dXJlZCBpbiB0aGUgbG9nIGZpbGUgdGhpcyB3YXkuCgkgIEdTVF9ERUJVR19GSUxFPS0gd2lsbCByZWRpcmVjdCBkZWJ1ZyBvdXRwdXQgdG8gc3Rkb3V0LgoKMjAxMC0wNy0yMCAyMDo0OToxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBc3N1bWUgcGFkcyBhcmUgY29tcGF0aWJsZSBpZiB3ZSBkb24ndCBoYXZlIHRlbXBsYXRlcwoJICBUaGlzIGlzIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBpZiB3ZSBoYWQgYSBwYWQgdGVtcGxhdGUgY2FwcyBvZgoJICBHU1RfQ0FQU19BTlkgb24gYW55IG9mIHRoZSBwYWRzIChpLmUuIHRoZSBhY3R1YWwgY2hlY2sgd2lsbCBiZSBkb25lCgkgIGR1cmluZyBjYXBzIG5lZ290aWF0aW9uKS4KCjIwMTAtMDctMTcgMjE6Mjg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsbG93IHRoZSBzdWJjbGFzcyB0byBhZGQgbmV3IGZpZWxkcyB0byBjYXBzIHdoZW4gZ2V0dGluZyBuZXcgY2FwcyBmcm9tIGRvd25zdHJlYW0KCSAgVGhpcyB3YXMgYWxyZWFkeSBkb25lIGluIGFsbCBvdGhlciBjYXNlcyB3aGVyZSBuZXcgY2FwcyBhcmUgaGFuZGxlZAoJICBleGNlcHQgdXBzdHJlYW0gbmVnb3RpYXRpb24uCgoyMDEwLTA3LTEyIDE0OjM5OjAwICswMjAwICBNaWNoYWVsIEJ1bmsgPGJ1bmtAaWF0LnVuaS1sZWlwemlnLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcyBhbmQgYWRkIHNvbWUgbWlzc2luZyBsaW5rcyBpbiB0aGUgYXBwIGRldiBtYW51YWwKCSAgRml4ZXMgIzYyNDE2NC4KCjIwMTAtMDctMTIgMTQ6MjI6NTAgKzAyMDAgIE1pY2hhZWwgQnVuayA8YnVua0BpYXQudW5pLWxlaXB6aWcuZGU+CgoJKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICBkb2NzOiBmaXggdHlwbyBvbiBnc3QtaW5zcGVjdCBtYW4gcGFnZQoJICBTZWUgIzYyNDE2NC4KCjIwMTAtMDctMDMgMTU6MDg6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGZpeCBzb21lIHNpbGx5IGxpc3QgaXRlcmF0aW9uIGNvZGUKCSAgZ19saXN0X2xlbmd0aCgpIGlzIG5vdCB0aGUgYmVzdCB3YXkgdG8gY2hlY2sgaWYgYSBsaXN0IGlzIGVtcHR5IG9yIG5vdC4KCjIwMTAtMDctMTYgMTc6NTM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiB1c2UgR1N0YXRCdWYgdW5jb25kaXRpb25hbGx5IGFuZCBhZGQgdHlwZWRlZiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAgTm8gbmVlZCB0byBjbHV0dGVyIHRoZSBjb2RlIHdpdGggI2lmICNlbHNlICNlbmRpZi4KCSAgU2VlICM2MjM4NzUuCgoyMDEwLTA3LTE2IDE3OjMzOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IFVzZSBhIGNvbnN0IEdzdFN0cnVjdHVyZSAqIGFzIHBhcmFtZXRlciBmb3Igc29tZSBtb3JlIGdzdF9zdHJ1Y3R1cmVfZ2V0IHZhcmlhbnRzCgoyMDEwLTA3LTE0IDE5OjQ3OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICItbGF1bmNoOiBkaXNhYmxlIENMT0NLX0xPU1QgbWVzc2FnZSBoYW5kbGluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxZjhlYmE2MTFhNjNmNDU3NjZjMzhjNjQwMjg4ZTQyYjI3YjEwYmQ0LgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBub3cgKGFuZCBpZiBub3Qgc2hvdWxkIGJlIGZpeGVkKSBhbmQgdGhlCgkgIGNsb2NrLWxvc3QgaGFuZGxpbmcgaXMgbm93IG5lZWRlZCBmb3IgcGxheWJpbjIgZ2FwbGVzcyBwbGF5YmFjay4KCSAgU2VlIGJ1ZyAjNTc5MTI3LgoKMjAxMC0wNy0wOCAyMTowNDo1NCArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnliaW5hcnk6IEZpeCBjb21wYXRpYmlsaXR5IHdpdGggR0xpYiAyLjI1IHdoZW4gdXNpbmcgTVNWQwoJICBOZXdlciBHTGliIHVzZXMgYSBuZXcgdHlwZSBmb3IgZ19zdGF0KCkgYW5kIGZyaWVuZHMgdG8gaW1wcm92ZQoJICBXaW5kb3dzIGNvbXBhdGliaWxpdHkuIE9uIFBPU0lYIHRoaXMgaXMgYSB0eXBlZGVmIHRvIHN0cnVjdCBzdGF0LgoJICBGaXhlcyBidWcgIzYyMzg3NS4KCjIwMTAtMDctMDggMDc6NDg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBJZiB0aGUgY3VycmVudGx5IHVzZWQgY2xvY2sgZ2V0cyBsb3N0IHVwZGF0ZSBpdCB0aGUgbmV4dCB0aW1lIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8gcGxheWluZwoJICBGaXhlcyBidWcgIzYyMzgwNi4KCjIwMTAtMDctMDUgMTk6MzM6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJldHVybiB2YWx1ZXMgaW4gc3RyZWFtIHRpbWUgZm9yIHRoZSBQT1NJVElPTiBxdWVyeQoJICBGaXhlcyBidWcgIzYyMzYyMi4KCjIwMTAtMDctMDUgMTg6NTQ6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW1wbGVtZW50IEdzdEVsZW1lbnQ6OmdldF9xdWVyeV90eXBlcygpCgoyMDEwLTA3LTA2IDEwOjEzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgYW5zd2VyIHRoZSBTRUdNRU5UIHF1ZXJ5IGluIHB1bGwgbW9kZQoJICBPdGhlcndpc2UgdGhlIGVsZW1lbnQgaGFuZGxpbmcgdGhlIHNlZWtzIHNob3VsZCBhbnN3ZXIgdGhpcyBxdWVyeS4KCSAgRml4ZXMgYnVnICM2MjM2MjIuCgoyMDEwLTA3LTA1IDEwOjM2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgUE9TSVRJT04gcXVlcnkKCSAgRml4ZXMgYnVnICM2MjM1NDEuCgoyMDEwLTA2LTI1IDE2OjMxOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IERvIG5vdCBjYWxsIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSB3aGVuIGNhcHMgY2hhbmdlCgkgIEluc3RlYWQganVzdCBjaGVjayB0aGF0IHRoZSBjYXBzIGludGVyc2VjdCB3aXRoIHRoZSBwYWQgdGVtcGxhdGUuCgkgIFRoZSBlbGVtZW50cyBzaG91bGQgcHJvcGVybHkgYWNjZXB0L3JlZnVzZSB0aGUgY2FwcyBpbiBzZXRjYXBzKCkuCgkgIFNoYXZlcyBvZmYgY2FsbGluZyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhY2NlcHRjYXBzIHdoaWNoIGRvZXMKCSAgYW4gZXhwZW5zaXZlIGdzdF9wYWRfZ2V0X2NhcHMoKSAoc28gaWYgeW91IGhhdmUgNTAgb2YgdGhvc2UgZWxlbWVudHMgaW4KCSAgYSByb3csIHlvdSdkIGJlIGRvaW5nIGZhY3RvcmlhbCg1MCkgZ3N0X3BhZF9nZXRfY2Fwcy4uLikuCgkgIERvZXMgbm90IGJyZWFrIGFueSBtb2R1bGUgdW5pdCB0ZXN0IGFuZCBtb3N0IGFwcHMgd29yayBmaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNzQwCgoyMDEwLTA3LTA4IDE2OjI0OjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZAoKMjAxMC0wNy0xNiAxMToxNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50LgoKPT09IHJlbGVhc2UgMC4xMC4zMCA9PT0KCjIwMTAtMDctMTQgMjM6NTk6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMwCgoyMDEwLTA3LTE0IDE3OjU4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RlLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA3LTE1IDEyOjAxOjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGNvbW1hIGF0IHRoZSBlbmQgb2YgdGhlIGxhc3QgZW51bSB2YWx1ZQoJICBGaXhlcyB0aGUgYnVpbGQgZm9yIGMrKy4KCjIwMTAtMDctMTEgMTk6MDA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBjaGVja3M6IGFkZCB1bml0IHRlc3QgZm9yIHJlY2VudCB0YWdsaXN0IG1lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSBmaXgKCSAgU2VlICM2MjQxMTMuCgoyMDEwLTA3LTExIDE4OjU5OjUzICswMTAwICBFZHVhcmRvIERvYmF5IDxlZHVkb2JheUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgZm9yIG1vcmUgdGhhbiB0d28gc3RyaW5ncwoJICBGaXhlcyAjNjI0MTEzLgoKMjAxMC0wNy0wOCAxMzo0Njo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBuZXcgYmFzZXNpbmsgdW5pdCB0ZXN0IGJpbmFyeQoKMjAxMC0wNy0wOCAxMzo0MzoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSAtcCBzaG9ydGhhbmQgZm9yIC0tbm8tc2lndXNyLWhhbmRsZXIKCSAgSXQncyBub3QgcmVhbGx5IG5lZWRlZCwgYW5kIGRvZXNuJ3QgbWFwIGFueSBsb25nZXIgYWZ0ZXIgdGhlIGxvbmcgb3B0aW9uCgkgIGhhcyBiZWVuIHJlbmFtZWQuCgoyMDEwLTA3LTA2IDE1OjQ3OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjQgcHJlLXJlbGVhc2UKCSAgQWxzbyBidW1wIGxpYnRvb2wgdmVyc2lvbnMgbm93ICh3aGljaCBJIG1lYW50IHRvIGRvIGZvciB0aGUgZmlyc3QKCSAgcHJlLXJlbGVhc2UgYnV0IGZvcmdvdCkuCgoyMDEwLTA3LTA2IDIzOjQ0OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDctMDYgMTY6MjE6MDUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogYWRkIGFjY2Vzc29ycyBmb3IgdGhlIGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlcl9lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19sYXN0X2J1ZmZlcl9lbmFibGVkCgoyMDEwLTA3LTA2IDEyOjE4OjQ1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBuZXcgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LgoJICBBZGQgYSBuZXcgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LiBXaGVuIGZhbHNlLCBpdCBkaXNhYmxlcyBzdG9yaW5nIHRoZSBsYXN0CgkgIHJlY2VpdmVkIGJ1ZmZlciBpbiBiYXNlc2luazo6bGFzdC1idWZmZXIuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBjYXNlcyB3aGVyZQoJICBidWZmZXJzIG5lZWQgdG8gYmUgcmVsZWFzZWQgYXNhcC4KCSAgQVBJOiBHc3RCYXNlU2luazo6ZW5hYmxlLWxhc3QtYnVmZmVyCgoyMDEwLTA3LTA2IDEwOjQ4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgY2hlY2tzOiByZXdyaXRlIGdzdHRhZ3NldHRlciB0ZXN0IHRvIHVzZSBmZXdlciBnX3VzbGVlcCgpCgkgIFNvbWV0aGluZyBhYm91dCB0aGF0IHNlZW1zIHRvIGludGVyYWN0IGJhZGx5IHdpdGggc29tZSBzY2hlZHVsZXJzLAoJICBzbyBkbyB0aGluZ3MgZGlmZmVyZW50bHkuCgkgIEZpeGVzICM2MjM0NjkuCgoyMDEwLTA3LTA2IDEwOjE5OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSB0byBkb2NzCgkgIEFQSTogYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwKCSAgU2VlICM2MjM1ODkuCgoyMDEwLTA3LTA2IDEwOjI4OjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBJbXByb3ZlIGdzdF92YWx1ZV97c2V0fGdldH1fY2FwcyBkb2NzCgoyMDEwLTA3LTA2IDEwOjM1OjA5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBleHBvcnQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbAoKMjAxMC0wNy0wNiAxMDozMToyNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IHJlbW92ZSBBQkkgY2hlY2tzIGZvciBHc3RDbG9ja0VudHJ5LgoKMjAxMC0wNy0wNSAxODo0NTo1NSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogZG9jdW1lbnQgdGhhdCBHc3RDbG9ja0VudHJ5IHNob3VsZCBiZSB0cmVhdGVkIGFzIGFuYSBvcGFxdWUgc3RydWN0dXJlLgoKMjAxMC0wNy0wNSAxMzoxMDowOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogdXNlIHRoZSBuZXcgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4KCSAgVXNlIHRoZSBuZXcgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCBpbiBnc3RfY2xvY2tfc2V0X21hc3Rlci4KCSAgQWxzbyBhZGQgc29tZSB0ZXN0cy4KCjIwMTAtMDctMDUgMTM6MDE6NTMgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGZpeCByZWZjb3VudGluZyBidWcgaW4gZ3N0X2Nsb2NrX3NldF9tYXN0ZXIuCgkgIE1ha2Ugc3VyZSBjbG9jay0+Y2xvY2tpZCBpcyB1bnJlZmZlZCBiZWZvcmUgY2xvY2stPm1hc3Rlci4KCSAgZ3N0X2Nsb2NrX2lkX3Vuc2NoZWR1bGUgKGNsb2NrLT5jbG9ja2lkKSB0cmllcyB0byBhY2Nlc3MgY2xvY2stPm1hc3Rlci4gSWYKCSAgY2xvY2stPm1hc3RlciBpcyB1bnJlZmZlZCBiZWZvcmUgYW5kIGl0J3MgZGVhbGxvY2F0ZWQsIF91bnNjaGVkdWxlIGNvdWxkIGFjY2VzcwoJICBmcmVlJ2QgbWVtb3J5LgoKMjAxMC0wNy0wNSAxMjo1Njo0MCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLgoJICBBZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4gSXQncyB0aGUgc2FtZSBhcyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyBidXQKCSAgYWxsb3dzIHBhc3NpbmcgYSBHRGVzdHJveU5vdGlmeSB0byBkZXN0cm95IHVzZXJfZGF0YS4KCjIwMTAtMDctMDUgMTc6NTA6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGltcHJvdmUgdGhlIGFwaSBkb2NzIGZvciBuZXcgR3N0UGFkTGlua0NoZWNrcyBhbmQgaXRzIHVzZQoKMjAxMC0wNy0wNSAxMjoyMTo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvUkVBRE1FOgoJICBSRUFETUU6IHVwZGF0ZSBhZnRlciByZW1vdmFsIG9mICJvbGQiIGRpci4KCSAgUmVtb3ZlICJvbGQiIGFuZCBhZGQgYSBsaW5lIGFib3V0ICJleGFtcGxlcyIuCgoyMDEwLTA3LTA0IDE3OjM0OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL1RPRE86CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvZXZlbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvZXZlbnRzL3NlZWsuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyL2hlbGxvd29ybGQyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy9waW5ncG9uZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy9xdWV1ZTMuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0L3F1ZXVlNC5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9SdWxlczoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2FwcF9maXhhdGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHMuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHNfc3RyaW5nczoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NvbXBhdGliaWxpdHkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZXJhdG9zdGhlbmVzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9maXhlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tY29udmVydC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tbXVsdGlwbHktYW5kLXplcm8uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc2V0cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N0cmluZy1jb252ZXJzaW9ucy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3RydWN0dXJlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2NhdGVnb3J5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvY29tbWFuZGxpbmUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9vdXRwdXQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9kbG9wZW5fZ3N0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1pbnNwZWN0LWNoZWNrLmluOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X3NpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9SRUFETUU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2R5bmFtaWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbGlua2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vcmVnaXN0cnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vc3RhdGljLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYzIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMl9zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW5fcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWFpbmxvb3AuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9vYmplY3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8xNTk1NjYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLzE1OTg1Mi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9xdWV1ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc3RhdGljcmVjLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGguYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGkuYzoKCSAgUmVtb3ZlIG9sZCAwLjggdGVzdHMgYW5kIGV4YW1wbGVzIGZyb20gZ2l0IHRyZWUKCSAgRG9lc24ndCByZWFsbHkgbG9vayBsaWtlIGFueXRoaW5nJ3Mgd29ydGgga2VlcGluZy4KCjIwMTAtMDctMDMgMTY6Mzk6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogc2tpcCBzaWxseSB0ZXN0IHRoYXQgc2VnZmF1bHRzIHdoZW4gaW4gYSBDS19GT1JLPW5vIGVudmlyb25tZW50CgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNToxMzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgIGNoZWNrczogbWFrZSBmYWtlc3JjIGNoZWNrIHdvcmsgaW4gYSBDS19GT1JLPW5vIGVudmlyb25tZW50CgkgIFJlc2V0IGhhdmVfZW9zIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCB0ZXN0LgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTQ6MDk6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICBjaGVja3M6IHJ1biB0ZXN0cyBjYWxsaW5nIGdzdF9kZWluaXQoKSBsYXN0IHNvIHRoaW5ncyB3b3JrIHdpdGggQ0tfRk9SSz1ubwoJICBCZWNhdXNlIGdzdF9pbml0KCkgd2lsbCBmYWlsIG9uY2UgZ3N0X2RlaW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE0OjA0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGNoZWNrczogZG9uJ3QgYXNzdW1lIGVsZW1lbnQgZmFjdG9yeSBpcyBub3QgbG9hZGVkIHlldAoJICBJdCBtYXkgYWxyZWFkeSBiZSBsb2FkZWQgaWYgY2hlY2sgaXMgYmVpbmcgcnVuIHdpdGggQ0tfRk9SSz1uby4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAxIDE5OjU4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIGRvY3M6IGZpeCBhIGNvdXBsZSBvZiB0eXBvcyBpbiB0aGUgbWFudWFsCgkgIFNwb3R0ZWQgYnkgQWxleGFuZGVyIFNhcHJ5a2luLgoJICBGaXhlcyAjNjIyMzc5LgoKMjAxMC0wNy0wMSAxNzo1NjozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IE1ha2Ugc3VyZSBfbm9ybWFsaXplKCkgaXMgYXBwbGllZCBvbiBhbGwgc3RydWN0dXJlcy4KCSAgV2UgbmVlZCB0byB1c2UgZ3N0X2NhcHNfZ2V0X3NpemUoKSBpbiB0aGUgbG9vcCBjb3VudGVyIHNpbmNlIHNvbWUKCSAgc3RydWN0dXJlcyBjb3VsZCBiZSBhZGRlZCB3aGlsZSBpdGVyYXRpbmcuCgkgIEZpeGVzICM2MjMzMDEKCjIwMTAtMDYtMzAgMTM6MTY6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgIGRvY3M6IHVwZGF0ZSAnWE1MIGluIEdTdHJlYW1lcicgc2VjdGlvbiBpbiBhcHBsaWNhdGlvbiBkZXZlbG9wZXIncyBtYW51YWwKCjIwMTAtMDYtMjkgMTg6NDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS4zIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI1IDE5OjAzOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGltcGxlbWVudCBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIE91ciBhY2NlcHRjYXBzIGZ1bmN0aW9uIGNhbiBzaW1wbHkgZm9yd2FyZCB0aGUgcXVlcnkuCgoyMDEwLTA2LTI4IDE1OjI4OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBhdXRvbWFrZSByZXF1aXJlbWVudCB0byAxLjEwCgkgIEZvciBtYWludGFpbmFiaWxpdHkgcmVhc29ucyBhbmQgJChidWlsZGRpcikuCgkgIEZpeGVzICM2MjI5NDQuCgoyMDEwLTA2LTI4IDEzOjU2OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1lbnRpb24gLS1lb3Mtb24tc2h1dGRvd24gb24gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAxMC0wNi0yOCAxMDoyMDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IERvbid0IHVzZSBHX0dOVUNfQ09OU1QgZm9yIHRoZSB1aW50NjQgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhleSBhcmUgYWN0dWFsbHkgKm5vdCogY29uc3QgZnVuY3Rpb25zIGJlY2F1c2Ugb24gYXJjaGl0ZWN0dXJlcwoJICB3aXRob3V0IGludDEyOCBpbnN0cnVjdGlvbnMgdGhlIHBhcmFtZXRlcnMgd2VyZSBjaGFuZ2VkLgoJICBnY2MgcmUtdXNlZCB0aGUgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2sgZm9yIG11bHRpcGxlIGNhbGxzIHRob3VnaAoJICBhbmQgdGhlIGNoYW5nZWQgcGFyYW1ldGVycyB3ZXJlIHVzZWQgZm9yIHRoZSBzZWNvbmQgY2FsbCB0aGVuLgoJICBGaXhlcyBidWcgIzYyMzAwMy4KCjIwMTAtMDYtMjYgMTc6NDg6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDYtMjYgMTc6NDc6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNi0yNiAxMDoxNjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgZXhhbXBsZXM6IHJlbW92ZSB4bWwgZXhhbXBsZSBidWlsZCBzeXN0ZW0gYml0cyBhbmQgcHVyZ2UgZnJvbSB0cmVlCgkgIEZpeGVzIG1ha2UgZGlzdGNoZWNrLgoKMjAxMC0wNi0yNiAwOTo1OTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIHhtbDoga2VlcCBkdW1teSBnc3RfeG1sX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIGctaSBldmVuIGlmIHJlc3Qgb2YgR3N0WE1MIGlzIHJlbW92ZWQKCSAgQWRkIGEgbWluaW1hbCBnc3RfeG1sX2dldF90eXBlKCkgZnVuY3Rpb24sIHNvIHRoYXQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRvZXNuJ3QKCSAgYnJlYWsgdGhlIGNvbXBpbGF0aW9uIGlmIHdlJ3JlIGNvbXBpbGluZyB3aXRoIEdTVF9SRU1PVkVfREVQUkVDQVRFRCBkZWZpbmVkIG9yCgkgIC0tZGlzYWJsZS1sb2Fkc2F2ZSBoYXZpbmcgYmVlbiBwYXNzZWQgdG8gY29uZmlndXJlLiBVbnRpbCBzb21lb25lIGZpZ3VyZXMgb3V0CgkgIGEgYmV0dGVyIHdheSBhdCBsZWFzdC4KCjIwMTAtMDYtMjYgMDE6MDE6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICBEb24ndCBpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+IGZyb20gcHVibGljIGhlYWRlcnMgaWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyBkZWZpbmVkCgkgIFNpbmNlIGV2ZXJ5dGhpbmcgR3N0WE1MIHJlbGF0ZWQgaGFzIGJlZW4gZGVwcmVjYXRlZCwgd2UgY2FuIG5vdyBza2lwIHRoZQoJICBsaWJ4bWwgaW5jbHVkZXMgZnJvbSB0aGUgcHVibGljIGhlYWRlcnMgd2hlbiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzCgkgIGRlZmluZWQuCgkgIFNlZSAjNDYzNDM1LgoKMjAxMC0wNi0yNiAwMDoxODoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICBleGFtcGxlczogYWRkIG1pc3Npbmcgc3RkbGliLmggaW5jbHVkZSBpbiB0eXBlZmluZCBleGFtcGxlCgoyMDEwLTA2LTI1IDIxOjIzOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkb3QtZHVtcDogdGVybWluYXRlIHRydW5jYXRlZCBzdHJpbmdzIGFuZCBlc2NhcGUgc3BlY2lhbCBjaGFycwoJICBGaXhlcyBzeW50YXggZXJyb3JzIGluIGdlbmVyYXRlZCBkb3QgZmlsZXMgZm9yIGNhcHMgd2l0aCBzdHJpbmdzLgoKMjAxMC0wNi0yNSAxODo1MjowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vcmUgZG9jdW1lbnRhdGlvbiByZWdhcmRpbmcgdGhlIG5ldyBmbGFncwoKMjAxMC0wNi0yNSAxODoxODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtYWtlIHRoZSBOT1RISU5HIGxpbmsgY2hlY2sgZmxhZyBiZSAwCgkgIE1ha2UgdGhlIHBhZCBsaW5rIGNoZWNrIG9mIE5PVEhJTkcgYmUgMC4gVGhpcyB3YXkgd2UgaGF2ZSBhIGZsYWcgZm9yIGVhY2gKCSAgZmVhdHVyZSBhbmQgMCB3aGVuIG5vIGZsYWdzIGFyZSBzZXQuCgoyMDEwLTA2LTI1IDE4OjI0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgR3N0WE1MIHRlc3RzCgoyMDEwLTA2LTI1IDE4OjEzOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvZ3N0eG1sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdHhtbDogRGVwcmVjYXRlIEdzdFhtbCBhbmQgcmVsYXRlZCBmdW5jdGlvbnMKCSAgUGlwZWxpbmUgc2VyaWFsaXNhdGlvbiB0byBhbmQgZnJvbSBYTUwgaXMgaG9ycmlibHkgYnJva2VuIGZvciBhbGwKCSAgYnV0IHRoZSBtb3N0IHNpbXBsZSB1c2UgY2FzZXMsIGFuZCB3aWxsIGxpa2VseSBuZXZlciBiZSBmaXhlZC4KCSAgTWFrZSBzdXJlIGV2ZXJ5b25lIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlc2UgdG9vbHMgaXMgYXdhcmUgb2YKCSAgdGhpcywgdG8gYXZvaWQgZnJ1c3RyYXRpb24uIFNlZSBjb3VudGxlc3MgYnVnIHJlcG9ydHMgaW4gYnVnemlsbGEuCgkgIEZpeGVzIGJ1ZyAjNjIyNjg1LgoKMjAxMC0wNi0yNSAxODoxMTozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogRml4IGJ1aWxkIHdpdGggR1NUX1JFTU9WRV9ERVBSRUNBVEVECgoyMDEwLTA2LTI0IDEyOjE5OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBVc2UgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwKCSAgV2UncmUgdGVzdGluZyBjYXBzIG5lZ290aWF0aW9uLCBub3QgcGFkIGxpbmtpbmcuIEJyaW5ncyB0aGUgc3RhcnR1cAoJICB0aW1lIGRvd24gMTAwIGZvbGQuCgoyMDEwLTA2LTI0IDE3OjUzOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICB0b29sczogZGVwcmVjYXRlIGdzdC14bWxsYXVuY2ggYW5kIHByaW50IGZhdCB3YXJuaW5nIGlmIHNvbWVvbmUgdHJpZXMgdG8gdXNlIGl0CgkgIFBpcGVsaW5lIHNlcmlhbGlzYXRpb24gdG8gYW5kIGZyb20gWE1MIGlzIGhvcnJpYmx5IGJyb2tlbiBmb3IgYWxsCgkgIGJ1dCB0aGUgbW9zdCBzaW1wbGUgdXNlIGNhc2VzLCBhbmQgd2lsbCBsaWtlbHkgbmV2ZXIgYmUgZml4ZWQuCgkgIE1ha2Ugc3VyZSBldmVyeW9uZSBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZXNlIHRvb2xzIGlzIGF3YXJlIG9mCgkgIHRoaXMsIHRvIGF2b2lkIGZydXN0cmF0aW9uLiBTZWUgY291bnRsZXNzIGJ1ZyByZXBvcnRzIGluIGJ1Z3ppbGxhLgoKMjAxMC0wNi0yNCAxNzoyMjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVuYW1lIG5ldyAtLW5vLXBsYXkgY29tbWFuZCBsaW5lIG9wdGlvbiB0byAtLW5vLXNpZ3Vzci1oYW5kbGVyCgkgIC0tbm8tcGxheSBzZWVtcyBhIGJpdCBjb25mdXNpbmcuCgkgIEZpeGVzICM2MjE4NjcuCgoyMDEwLTA2LTI0IDE1OjA3OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDczZmY5M2EgdG8gYTUxOTU3MQoKMjAxMC0wNi0yMyAxMTowMjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSAgYmluYXJ5cmVnaXN0cnk6IGlnbm9yZSB0aGUgcGx1Z2luIGNhY2hlIGlmIHRoZSBmaWx0ZXIgZW52aXJvbm1lbnQgaGFzIGNoYW5nZWQKCSAgTWFrZSBzdXJlIHRoYXQgd2UgcHJvcGVybHkgdXBkYXRlIHRoZSByZWdpc3RyeSBhbmQgdGhlIGNhY2hlIGZpbGUgd2hlbmV2ZXIKCSAgdGhlIGZpbHRlciBlbnZpcm9ubWVudCBjaGFuZ2VzIG9yIHRoZXJlJ3Mgbm8gbW9yZSBmaWx0ZXIgc2V0LgoKMjAxMC0wNS0yNyAxMjozNjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW5sb2FkaW5nOiBhZGQgc3VwcG9ydCBmb3Igd2hpdGVsaXN0aW5nIGJhc2VkIG9uIHBsdWdpbiBvciBzb3VyY2UgbW9kdWxlIG5hbWUgYW5kIHBhdGgKCSAgVGhpcyBmZWF0dXJlIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgdXNlIGluIHBsdWdpbiBtb2R1bGVzJyB1bml0IHRlc3RzLgoJICBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNpdHVhdGlvbjogZ3N0LXBsdWdpbnMtZ29vZCBpcyBidWlsdCBhZ2FpbnN0IGFuCgkgIGluc3RhbGxlZCBHU3RyZWFtZXIgY29yZS4gQW4gb2xkZXIgdmVyc2lvbiBvZiBnc3QtcGx1Z2lucy1nb29kIGlzIGFsc28KCSAgaW5zdGFsbGVkIGluIHRoYXQgcHJlZml4LCBhbG9uZyB3aXRoIHJhbmRvbSBvdGhlciBwbHVnaW4gbW9kdWxlcy4gTm93LAoJICB3aGVuIGRvaW5nICdtYWtlIGNoZWNrJyBpbiB0aGUganVzdC1idWlsdCBnc3QtcGx1Z2lucy1nb29kIHRyZWUsIHdlCgkgIHdhbnQgdG8gb25seSBsb2FkIHBsdWdpbnMgZnJvbSBHU3RyZWFtZXIgY29yZSwgZ3N0LXBsdWdpbnMtYmFzZSwgYW5kCgkgIGdzdC1wbHVnaW5zLWdvb2QsIGJ1dCBub3QgcmFuZG9tIG90aGVyIG1vZHVsZXMgKHdlIGRvbid0IHdhbnQgYW55IHVuaXQKCSAgdGVzdHMgdG8gZmFpbCBqdXN0IGJlY2F1c2Ugc29tZSBtb2R1bGUgaW4gZ3N0LXBsdWdpbnMtYmFkIGhhcyBhIGJyb2tlbgoJICBwbHVnaW5faW5pdCwgZm9yIGV4YW1wbGUpLiBBbHNvLCB3ZSB3YW50IHRvIG9ubHkgbG9hZCBnc3QtcGx1Z2lucy1nb29kCgkgIG1vZHVsZXMgZnJvbSB0aGUgbG9jYWxseS1idWlsdCBzb3VyY2UgdHJlZSwgYnV0IG5vdCBhbnkgb2YgdGhlIG9sZGVyCgkgIGdzdC1wbHVnaW5zLWdvb2QgbW9kdWxlcyBpbnN0YWxsZWQuIFRoaXMgaXMgdXN1YWxseSBhc3N1cmVkIGJ5IGxvYWRpbmcKCSAgdGhlIG9uZXMgaW4gdGhlIHNvdXJjZSB0cmVlIGZpcnN0IChieSBhZGRpbmcgdGhhdCBwYXRoIGZpcnN0IHRvIHRoZQoJICByaWdodCBlbnZpcm9ubWVudCB2YXJpYWJsZXMpLCBidXQgaXQgZ2V0cyB0cmlja3kgd2hlbiBwbHVnaW5zIGFyZQoJICBtb3ZlZCwgcmVtb3ZlZCwgbWVyZ2VkLCBvciByZW5hbWVkLCBvciB0aGUgcGx1Z2luIGZpbGVuYW1lIGNoYW5nZXMuCgkgIE5vdGUgdGhhdCAnbWFrZSBjaGVjaycgc2hvdWxkIHJlYWxseSB3b3JrIHJpZ2h0IHdpdGhvdXQgZG9pbmcKCSAgJ21ha2UgaW5zdGFsbCcgb3IgdW5pbnN0YWxsaW5nIHRoZSBvbGQgZ3N0LXBsdWdpbnMtZ29vZCBwYWNrYWdlIChvcgoJICBhbnkgb3RoZXIgZ3N0LXBsdWdpbnMtZm9vIHBhY2thZ2UpIGZpcnN0LgoJICBFbnRlciBHU1RfUExVR0lOX0xPQURJTkdfV0hJVEVMSVNULiBUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIG1heQoJICBjb250YWluIHNvdXJjZS1wYWNrYWdlQHBhdGgtcHJlZml4IHBhaXJzIHNlcGFyYXRlZCBieSB0aGUgcGxhdGZvcm0KCSAgc2VhcmNoIHBhdGggc2VwYXJhdG9yIChHX1NFQVJDSFBBVEhfU0VQQVJBVE9SX1MpLiBUaGUgc291cmNlIHBhY2thZ2UKCSAgYW5kIHBhdGggcHJlZml4IGFyZSBzZXBhcmF0ZWQgYnkgdGhlICdAJyBjaGFyYWN0ZXIuIFRoZSBwYXRoIHByZWZpeCBpcwoJICBlbnRpcmVseSBvcHRpb25hbCwgYXMgaXMgdGhlICdAJyBzZXBhcmF0b3IgaWYgbm8gcGF0aCBpcyBnaXZlbi4KCSAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBmaWx0ZXIgYmFzZWQgb24gcGx1Z2luIG5hbWVzIGluc3RlYWQgb2YgdGhlIG5hbWUKCSAgb2YgdGhlIHNvdXJjZS1wYWNrYWdlIGJ5IHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgcGx1Z2luIG5hbWVzIHNlcGFyYXRlZAoJICBieSBjb21tYXMgYmVmb3JlIHRoZSBvcHRpb25hbCBwYXRoIHByZWZpeC4KCSAgSW4gc2hvcnQsIHRoZSBmb2xsb3dpbmcgbWF0Y2ggcGF0dGVybnMgYXJlIHBvc3NpYmxlOgoJICBwbHVnaW4xLHBsdWdpbjJAcGF0aHByZWZpeCBvcgoJICBwbHVnaW4xLHBsdWdpbjJAKiBvciBqdXN0CgkgIHBsdWdpbjEscGx1Z2luMiBvcgoJICBzb3VyY2UtcGFja2FnZUBwYXRocHJlZml4IG9yCgkgIHNvdXJjZS1wYWNrYWdlQCogb3IganVzdAoJICBzb3VyY2UtcGFja2FnZQoJICBTbyBmb3Igb3VyIGdzdC1wbHVnaW5zLWdvb2QgdW5pdCB0ZXN0IGV4YW1wbGUgYWJvdmUsIHdlICB3b3VsZCBzZXQgdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlIG9uICpuaXggdG8gc29tZXRoaW5nIGxpa2UgdGhpcyAod2lsbCBsaWtlbHkgYmUgYQoJICByZWxhdGl2ZSBwYXRoIGluIHByYWN0aWNlKToKCSAgZ3N0cmVhbWVyOmdzdC1wbHVnaW5zLWJhc2U6Z3N0LXBsdWdpbnMtZ29vZEAvcGF0aC90by9zcmMvZ3N0LXBsdWdpbnMtZ29vZAoJICBGaXhlcyAjNjE5ODE1IGFuZCAjNjE5NzE3LgoKMjAxMC0wNi0yMyAxNzoyNDowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RnaG9zdHBhZDogV2UgZG9uJ3QgbmVlZCBhbnkgY2hlY2tzIHdoZW4gbGlua2luZyB0YXJnZXQgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMjMgMTc6MDA6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogTmV3IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsIG1ldGhvZAoJICBMaW5rcyB0aGUgZWxlbWVudHMgd2l0aCB0aGUgc3BlY2lmaWVkIHBhZCBsaW5raW5nIGNoZWNrcy4KCSAgQVBJOmdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMjMgMTY6NDU6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgbmV3IHBhZCBsaW5raW5nIG1ldGhvZCB3aXRoIGNvbmZpZ3VyYWJsZSBjaGVja3MuCgkgIFRvIGJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIHdlIGRvbid0IG5lZWQgYWxsIGNoZWNrcyB0byBiZSB2YWxpZGF0ZWQuCgkgIEFQSTogZ3N0X3BhZF9saW5rX2Z1bGwKCSAgQVBJOiBHc3RQYWRMaW5rQ2hlY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0xNSAxODoyNjowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19JTUFHRV9PUklFTlRBVElPTiB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgdG8gaW5mb3JtIGFib3V0IHRoZSBpbWFnZSBvcmllbnRhdGlvbiBhbmQgaG93CgkgIHRvIHJvdGF0ZSBhbmQgZmxpcCBpdCBiZWZvcmUgZGlzcGxheS4KCSAgTm90ZSB0aGF0IHRoaXMgdGFnIGlzIGEgc3RyaW5nIHdpdGggYSBwcmVkZWZpbmVkIHNldCBvZgoJICBwb3NzaWJsZSB2YWx1ZXMuCgkgIEFQSTogR1NUX1RBR19JTUFHRV9PUklFTlRBVElPTgoJICBGaXhlcyAjNjE5NTA4CgoyMDEwLTA2LTIyIDE4OjUzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3RvYmplY3Q6IGRlcHJlY2F0ZSBnc3Rfb2JqZWN0X3tzZXR8Z2V0fV9uYW1lX3ByZWZpeCgpCgkgIFRoZSBuYW1lIHByZWZpeCBzdHVmZiBoYXMgbmV2ZXIgYmVlbiB1c2VkIGZvciBhbnl0aGluZyBhbmQgaXQgZG9lc24ndAoJICBsb29rIGxpa2Ugd2UnbGwgZXZlciB3YW50IHRvIHVzZSBpdCBmb3IgYW55dGhpbmcuCgkgIEZpeGVzICM2MjEwMDYuCgoyMDEwLTA2LTIyIDEwOjIwOjUzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucyBmb3IgR3N0UGFkSW50TGlua0Z1bmN0aW9uCgkgIEZpeGVzIGJ1aWxkIHdpdGggbGF0ZXN0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBmcm9tIGdpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjAyNQoKMjAxMC0wNi0yMSAxMTo0MTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lcmdpbmcgb2YgcmFuZ2VzCgkgIFdoZW4gd2UgbWVyZ2UgdHdvIHJhbmdlcywgZG9uJ3QgdXBkYXRhIHRoZSBjdXJyZW50IHJhbmdlIHdyaXRpbmdfcG9zIHdpdGgKCSAgd2hlcmVldmVyIHdlIHdlcmUgd3JpdGluZyBlYXJsaWVyIGluIHRoZSBtZXJnZWQgcmFuZ2UuICBTcG90dGVkIGJ5IGJpbGJvZWQuCgoyMDEwLTA2LTE5IDExOjE5OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYWxzbyBza2lwIC5kZXBzIGRpcnMgd2hlbiBzY2FubmluZyBmb3IgcGx1Z2lucwoJICBObyBuZWVkIHRvIGRlc2NlbmQgaW50byAuZGVwcyBkaXJzIGluIHVuaW5zdGFsbGVkIHNldHVwcywgd2Uga25vdwoJICB0aGVzZSBkb24ndCBjb250YWluIGFueSBwbHVnaW5zLgoKMjAxMC0wNi0xNyAxMTozOTowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGdzdF90YWdfbGlzdF9wZWVrX3N0cmluZ19pbmRleCB0byBhdm9pZCBhIGNvcHkKCSAgQWRkcyBhIHZhcmlhdGlvbiBvZiB0aGUgX2dldF9zdHJpbmdfaW5kZXggZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGNvcHkKCSAgdGhlIHN0cmluZy4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfcGVla19zdHJpbmdfaW5kZXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTg5NgoKMjAxMC0wNi0xOCAxMjowMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogbWFrZSBzdXJlIGJ1ZmZlcnMnIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIGNhcHMgb24gdGhlbQoJICBGaXhlcyB3YXJuaW5ncyB3aGVuIHVzaW5nIHBsYXliaW4yIHdpdGggZHZiOi8vIHN0cmVhbXMsIHdoZXJlIHR5cGVmaW5kCgkgIGNvbWVzIGFmdGVyIG1wZWd0c3BhcnNlLgoKMjAxMC0wNi0xNyAxNTo1Mjo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgZG9jczogdXBkYXRlIGludHJvc3BlY3RlZCBwbHVnaW4gZG9jcyBmb3IgZ3N0ZG9jLXNjYW5vYmogY2hhbmdlcwoJICBVcGRhdGUgY29tbW9uIGZvciBsYXRlc3QgZ3N0ZG9jLXNjYW5vYmogYW5kIGluc3BlY3QgeG1sIGZpbGVzIGZvcgoJICBlc2NhcGluZyBhbmQgcGFkIHRlbXBsYXRlIG9yZGVyIGNoYW5nZXMuCgoyMDEwLTA2LTE3IDEzOjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEluaXRpYWxpemUgaml0dGVyIHRvIHByZXZlbnQgcHJpbnRpbmcgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpZiB3YWl0aW5nIGZvciB0aGUgY2xvY2sgZmFpbGVkCgoyMDEwLTA2LTE3IDEwOjM0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDYtMTcgMDk6MzM6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBmaXggYW5vdGhlciB0eXBvIGFuZCBzb21lIGluYWNjdXJhY2llcwoJICBGaXggYSB3cm9uZyBzdGF0ZW1lbnQgYW5kIGZsZXNoIG91dCBzZWN0aW9uIG9uIG1lc3NhZ2VzIGFuZCBxdWVyaWVzCgkgIGEgYml0LgoKMjAxMC0wNi0xNyAwOTowNTo1OCArMDIwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogRml4IGFub3RoZXIgdHlwbwoKMjAxMC0wNi0xNyAwOTowNToyOCArMDIwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogRml4IHR5cG8KCjIwMTAtMDYtMTYgMTM6MTE6MDYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgYW4gYWxsb3ctbm9uZSBhbm5vdGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MjYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogQWRkIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgVGhlc2UgYXJlIHJlcXVpcmVkIHRvIGtub3cgaG93IHRvIHVucmVmL3JlZiBhbmQKCSAgY29udmVydCB0by9mcm9tIGEgR1ZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjEzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjA2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjA5OjU3IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzowMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogbWFrZSBzeW5jIHByb3BlcnR5IHdvcmsgY29ycmVjdGx5CgkgIERvbid0IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGdldF90aW1lcyB2bWV0aG9kIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgc3luYwoJICBwcm9wZXJ0eS4KCSAgU2V0IHRoZSBkZWZhdWx0IHN5bmMgcHJvcGVydHkgdG8gRkFMU0UuIEl0IHVzZWQgdG8gYmUgc2V0IHRvIFRSVUUgYnV0IGJlY2F1c2UKCSAgdGhlIGdldF90aW1lcyB3YXMgTlVMTCwgaXQgYWx3YXlzIGJlaGF2ZWQgbGlrZSBGQUxTRS4KCSAgRml4ZXMgIzYyMTUzMAoKMjAxMC0wNi0xNSAxODo0ODo1MyArMDIwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEltcHJvdmUgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoKSBkb2NzCgkgIEZpeGVzIGJ1ZyAjNjIxNjYwLgoKMjAxMC0wNi0xNSAxNjo0OTowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTMzOWNjYyB0byAzNTYxN2MyCgoyMDEwLTA2LTE1IDE2OjUzOjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVhZGIxY2EgdG8gOTMzOWNjYwoKMjAxMC0wNi0xNSAxNjozNDozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4OWI3IHRvIDVhZGIxY2EKCjIwMTAtMDYtMTUgMTU6MzE6MTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzgwNDk4OCB0byA1N2M4OWI3CgoyMDEwLTA2LTE1IDExOjQ4OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZXZlcnQgIkdzdFBhZDogQWRkIEdTVF9QQURfTkVHT1RJQUJMRSBHc3RQYWRGbGFnIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRjMzhlNzVkODhiZDg5MjE4OTU4MjFmN2FmZWQwMWNhYjMwZTQ2YzkuCgkgIGJvb20KCjIwMTAtMDYtMTUgMTE6NDg6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdzdHBhZDogUmV0dXJuIHBhZCB0ZW1wbGF0ZSBpbiBnZXRfY2FwcyBpZiBwYWQgaXMgbm90IG5lZ290aWFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzQ2MDMyMWE2MDA0Mzg5NjZkNzE1MmFiMmI0MzE4YmU0OGVhZGNlMC4KCSAgY3JhY2sKCjIwMTAtMDYtMTUgMTE6NDg6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBmaXggY29tbWVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZTkyY2I0YTdkNTZjZGZhNDY3NDMxNWM2NGI1OGMxYjFiOWQ4MjA4LgoJICB3aGF0ZXZlci4uLgoKMjAxMC0wNi0xNSAxMTo0Nzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogb25seSBjbGVhciBuZWdvdGlhYmxlIHdoZW4gZ29pbmcgdG8gTlVMTCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZjVlYzFmNzM3YzNiMzc1MzhiMjMwN2FlZjE2MGQ5ZDIxZjFjNDIyLgoJICBibGVlZWVoCgoyMDEwLTA2LTE1IDEwOjQ2OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGFkZCBkdW1teSBUUkFDRSBsb2cgbGV2ZWwgbWFjcm9zIGZvciB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBGb3Jnb3QgdGhvc2Ugd2hlbiBhZGRpbmcgdGhlIG9yaWdpbmFsIEFQSSwganVzdCBsaWtlIHRoZSBBUEkgbWFya2VycwoJICBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgkgIEFQSTogR1NUX1RSQUNFCgkgIEFQSTogR1NUX1RSQUNFX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfVFJBQ0UKCSAgQVBJOiBHU1RfQ0FUX1RSQUNFX09CSkVDVAoJICBBUEk6IEdTVF9MRVZFTF9UUkFDRQoJICBGaXhlcyBjb21waWxhdGlvbiB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcKCjIwMTAtMDYtMTUgMDE6MTU6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCBtb3JlIGVycm9ycyB0byBzdGRlcnIgYW5kIHN1cHByZXNzIG1vcmUgb3V0cHV0IGluIHF1aWV0IG1vZGUKCSAgSWYgLS1xdWlldCBpcyBnaXZlbiwgZG9uJ3QgcHJpbnQgYW55dGhpbmcgYnV0IGVycm9ycy4gQWxzbywgbWFrZQoJICBzdXJlIGVycm9ycyBhcmUgYWx3YXlzIHByaW50ZWQgdG8gc3RkZXJyIGFuZCBub3QgdG8gc3Rkb3V0LgoJICBGaXhlcyAjNjIxNTk1LgoKMjAxMC0wNi0xNCAxODowNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG9ubHkgY2xlYXIgbmVnb3RpYWJsZSB3aGVuIGdvaW5nIHRvIE5VTEwKCSAgRG9uJ3QgY2xlYXIgdGhlIG5lZ290aWFibGUgZmxhZyB3aGVuIGdvaW5nIHRvIFJFQURZIGJlY2F1c2UgdGhlbiBpdCB3aWxsIG5ldmVyCgkgIGJlIHNldCB0byBUUlVFIGFnYWluLgoKMjAxMC0wNi0xNCAxNzozMzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggY29tbWVudAoKMjAxMC0wNS0xNyAxNTowNjozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogUmV0dXJuIHBhZCB0ZW1wbGF0ZSBpbiBnZXRfY2FwcyBpZiBwYWQgaXMgbm90IG5lZ290aWFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODY0NAoKMjAxMC0wNS0xNyAxNTowNDo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgR1NUX1BBRF9ORUdPVElBQkxFIEdzdFBhZEZsYWcKCSAgQSBwYWQgaXMgJ25lZ290aWFibGUnIHdoZW4gaXRzIGNvbnRhaW5lciBlbGVtZW50IGlzIGluIGEgc3RhdGUgZ3JlYXRlcgoJICB0aGFuIEdTVF9TVEFURV9SRUFEWQoJICBBUEk6Z3N0X3BhZF9pc19uZWdvdGlhYmxlCgkgIEFQSTpnc3RfcGFkX3NldF9uZWdvdGlhYmxlCgkgIEFQSTpHU1RfUEFEX05FR09USUFCTEUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODY0NAoKMjAxMC0wNi0xNCAxNjo1MTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHVzZSBtZXRob2QgdG8gc2V0IHN5bmMgcHJvcGVydHkKCSAgVXNlIHRoZSBiYXNlc2luayBtZXRob2QgdG8gY29uZmlndXJlIHRoZSBzeW5jIHByb3BlcnR5IGluc3RlYWQgb2YgcG9raW5nIHRoZQoJICBwYXJlbnQgc3RydWN0dXJlLgoKMjAxMC0wNi0xNCAxNjo1MDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgZnVuY3Rpb24KCSAgVXNlIHRoZSBkZWZhdWx0IGdldF90aW1lcyBmdW5jdGlvbiBvZiBiYXNlc2luayBzbyB0aGF0IHdlIGhvbm91ciB0aGUgc3luYwoJICBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG5ldmVyIHN5bmNocm9uaXppbmcgdG8gdGhlIGNsb2NrLgoJICBGaXhlcyAjNjIxNTMwCgoyMDEwLTA2LTE0IDE2OjIwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZXZhbHVhdGUgcHJveHlfYWxsb2Mgd2hlbiByZWNvbmZpZ3VyZWQKCSAgV2hlbiB3ZSByZWNvbmZpZ3VyZSB0aGUgdHJhbnNmb3JtIGVsZW1lbnQsIG1ha2Ugc3VyZSB3ZSByZWV2YWx1YXRlIHRoZSBwcm94eWluZwoJICBvZiBidWZmZXJfYWxsb2MgdGhlIG5leHQgdGltZSBhcm91bmQuCgkgIEZpeGVzICM2MjEzMzIKCjIwMTAtMDYtMTQgMTU6Mzk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIGNhcHM6IERvbid0IHVzZSBpbnZhbGlkIGZyYWN0aW9uIHJhbmdlIGluIHRoZSB1bml0IHRlc3QKCjIwMTAtMDYtMTQgMTU6MzA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgc29tZSBtb3JlIGFzc2VydGlvbnMgYW5kIGNoZWNrcyBmb3IgdmFsaWQgaW5wdXQgcGFyYW1ldGVycwoKMjAxMC0wNS0yNyAxNToxMzoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgcHJvZ3Jlc3NpdmUgbWFza2VkX3NjYW4KCSAgUmV0YWluIHRoZSBsYXN0IHNjYW5uZWQgYnVmZmVyIGVudHJ5IGFuZCBvZmZzZXQsIHNvIHdlIGNhbiByZXN1bWUgYnVmZmVyCgkgIHNjYW5uaW5nIHRoZXJlIGluIGNhc2Ugb2YgYSB0eXBpY2FsIHByb2dyZXNzaXZlIHNjYW4uCgkgIEFsc28gcG90ZW50aWFsbHkgb3B0aW1pemUgX2NvcHkgc3Vic2VxdWVudGx5IG9jY3VycmluZyBpbiB0aGF0IGFyZWEuCgoyMDEwLTA1LTI3IDEyOjE1OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZXh0ZW5kZWQgbWFza2VkX3NjYW5fdWludDMyX3BlZWsgdGhhdCBhbHNvIHByb3ZpZGVzIG1hdGNoaW5nIHZhbHVlCgkgIEFsc28gYWRkIHRvIC5kZWYgYW5kIGRvY3MuCgkgIEZpeGVzICM2MTk4MjguCgkgIEFQSTogZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCjIwMTAtMDYtMTQgMTM6Mzg6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCAuZGVmIGZpbGUKCjIwMTAtMDYtMTQgMTI6MjU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogYWRkIFNpbmNlOiB0YWcgZm9yIG5ldyBnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUKCjIwMTAtMDYtMTEgMTU6MzY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogZml4IGV4YW1wbGUgdG8gdXNlIGEgY2F0ZWdvcnkgbmFtZSB0aGF0IGFjdHVhbGx5IGV4aXN0cwoKMjAxMC0wNi0xNCAxMTozOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjYXBzOiBOZXcgZ3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlKCkgbWV0aG9kCgkgIFRoaXMgYWxsb3dzIHJlbW92aW5nIHN0cnVjdHVyZXMgZnJvbSBjYXBzIHdpdGhvdXQgdGhlbSBiZWluZyBmcmVlZC4gSGVscGZ1bCB3aGVuCgkgIHBsdWdpbnMgbmVlZCB0byBtb3ZlIGFyb3VuZCBzdHJ1Y3R1cmVzIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFuIGV4cGVuc2l2ZSBzdHJ1Y3R1cmUKCSAgY29weS4KCSAgQVBJOmdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNTI3CgoyMDEwLTA2LTE0IDEzOjEwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBEb24ndCBhZGQgR19USFJFQURTX01BTkRBVE9SWSB0byBHU1RfQUxMX0NGTEFHUwoJICBJdCdzIGFscmVhZHkgaW5jbHVkZWQgaW4gR0xJQl9FWFRSQV9DRkxBR1MKCjIwMTAtMDYtMTQgMTM6MDc6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSBHTElCX0VYVFJBX0NGTEFHUwoKMjAxMC0wNi0xNCAxMzowMjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdhMGZkZjUgdG8gYzgwNDk4OAoKMjAxMC0wNi0xNCAxMzowMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggcHJpbnRmIGZvcm1hdAoKMjAxMC0wNi0xNCAxMjozOTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBpbXBsZW1lbnQgY3VzdG9tIGFjY2VwdF9jYXBzIG1ldGhvZAoJICBJbXBsZW1lbnQgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbi4gV2UgY2FuIHNpbXBseSBjaGVjayBpZiB0aGVyZSBpcyBhbgoJICBpbnRlcnNlY3Rpb24gd2l0aCB0aGUgbmV3IGNhcHMuIFRoaXMgbWFrZXMgdGhlIGFjY2VwdCBjYXBzIGZ1bmN0aW9uIG11Y2ggZmFzdGVyLgoJICBTZWUgIzYyMTE5MAoKMjAxMC0wNi0xNCAxMjozNjo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIGFjY2VwdF9jYXBzIHZtZXRob2QKCSAgQWxsb3cgc3ViY2xhc3NlcyB0byBvdmVycmlkZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiBiZWNhdXNlIGluIHNvbWUgY2FzZXMgYQoJICBjdXN0b20gaW1wbGVtZW50YXRpb24gY2FuIGJlIG11Y2ggbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmUuCgkgIFNlZSAjNjIxMTkwCgoyMDEwLTA2LTE0IDExOjMwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmRhM2JhYiB0byA3YTBmZGY1CgoyMDEwLTA2LTExIDE4OjQ5OjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUmVtb3ZlIHRyYW5zZm9ybV9zaXplCgkgIEdzdEJhc2VUcmFuc2Zvcm0gbm93IGFzc3VtZXMgdGhhdCB0aGUgc2l6ZSBpcyB0aGUgc2FtZSBpZiB0aGVyZSBpcyBub3QKCSAgdHJhbnNmb3JtX3NpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjEzMzQKCjIwMTAtMDYtMTEgMTg6NDY6MzAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBc3N1bWUgc2l6ZSBpcyB0aGUgc2FtZSBpZiBubyB0cmFuc2Zvcm1fc2l6ZS9nZXRfdW5pdF9zaXplCgkgIFN1YmNsYXNzZXMgdGhhdCBkb24ndCBpbXBsZW1lbiB0cmFuc2Zvcm1fc2l6ZSBzaG91bGQgYmUgYXNzdW1lZCB0byBwcm9kdWNlIG91dHB1dAoJICBidWZmZXJzIG9mIHRoZSBzYW1lIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjEzMzQKCjIwMTAtMDYtMTQgMDg6MTg6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBEb24ndCBpbml0aWFsaXplIGFycmF5cyBmcm9tIHZhcmlhYmxlcwoKMjAxMC0wNi0xNCAwODoxMTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBTdG9yZSByZXN1bHQgb2Ygc3RydG9sIGluIGFuIHVudXNlZCB2YXJpYWJsZSB0byByZWFsbHkgZml4IGEgY29tcGlsZXIgd2FybmluZy4uLgoKMjAxMC0wNi0xMyAyMDo1MjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDYXN0IHJldHVybiB2YWx1ZSB0byB2b2lkIHRvIHByZXZlbnQgY29tcGlsZXIgd2FybmluZwoKMjAxMC0wNi0xMyAxODoxMjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHJ0cG9vbC10ZXN0OiBQcmV2ZW50IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMyAxODowNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIHN1cmUgd2UgaGF2ZSBhIHZhbGlkIG9iamVjdCB0byByZW5kZXIgaW4gX3JlbmRlcl9vYmplY3QoKQoKMjAxMC0wNi0xMyAxODowMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBzb21lIGFzc2VydGlvbiBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIHBhcmFtZXRlcnMgdG8gcHVibGljIEFQSQoKMjAxMC0wNi0xMyAxNzowODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmVtb3ZlIHNvbWUgZGVhZCBhc3NpZ25tZW50cwoKMjAxMC0wNi0xMyAxNzowNjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBidWZmZXJzdHJlc3M6IENoZWNrIGlmIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBhbmQgYnVmZmVycyBtYWtlcyBzZW5zZQoKMjAxMC0wNi0xMyAxNzowMzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIHJlYWQtbWV0YWRhdGE6IFN0b3AgaWYgc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgYmFjayB0byBOVUxMIGZhaWxzCgoyMDEwLTA2LTEzIDE2OjU5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICBjb21wbGV4aXR5OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cyBhbmQgdW51c2VkIHZhcmlhYmxlcwoKMjAxMC0wNi0xMyAxNjozMToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IERvbid0IGlnbm9yZSBmYWlsdXJlIHRvIG9wZW4gdGhlIHRlbXBvcmFyeSBmaWxlIGxvY2F0aW9uCgkgIEFuZCBpbW1lZGlhdGVseSBsZWF2ZSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIG9uIGZhaWx1cmVzLgoKMjAxMC0wNi0xMyAxNjoyNzozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGl0ZXJhdG9yIGFnZ3JlZ2F0aW9uIG9mIGFsbCBwYWRzIGluIHRoZSBpbnRlcm5hbCBsaW5rcyBmYWxsYmFjawoJICBnX2xpc3RfcHJlcGVuZCgpIHJldHVybnMgdGhlIG5ldyBoZWFkIG9mIHRoZSBsaXN0IGFuZCBub3QKCSAgdXNpbmcgdGhpcyB3aWxsIGNyZWF0ZSBhIG1lbW9yeSBsZWFrIGFuZCBhIHNpbmdsZS1lbGVtZW50IGxpc3QuCgoyMDEwLTA2LTEzIDE1OjI1OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIG5ldyBGSVhNRSBmb3IgMC4xMSBhbmQgdXBkYXRlIGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSBkb2NzCgkgIFRoZSBjb21wYXJlIGZ1bmN0aW9uIHNob3VsZCBvbmx5IHVucmVmIHRoZSBlbGVtZW50IGlmIGl0J3MKCSAgbm90IHRoZSBtYXRjaGluZyBlbGVtZW50LgoJICBBbHNvIHRoZSBGSVhNRSBpbiBfZm9sZCgpIGlzIG5vdCByZWxldmFudCBiZWNhdXNlIHRoZSByZWYvdW5yZWYKCSAgaGFwcGVucyBpbiB0aGUgZm9sZCBmdW5jdGlvbi4KCjIwMTAtMDYtMTMgMTE6MjQ6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBJZiB0aGUgaXRlcmF0b3IgcmVzeW5jIGluIGZpbmRfY3VzdG9tKCkganVzdCByZXRyeQoKMjAxMC0wNi0xMiAwODoyNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDczM2ZjYTkgdG8gNmRhM2JhYgoKMjAxMC0wNi0xMiAwODowNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIGZvdXJjY3MKCjIwMTAtMDYtMTEgMjI6NTY6MTMgKzAwMDAgIE1hcnRpbiBCaXNzb24gPG1hcnRpbi5iaXNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogRml4ZWQgc2VyaWFsaXphdGlvbiBmb3Igc2hvcnQgZm91cmNjcy4KCSAgIlkxNiAiIGFuZCAiWTggICIgd2VyZSBub3QgZGlzcGxheWVkIHByb3Blcmx5IGJlY2F1c2UgdGhlIHNwYWNlCgkgIGNoYXJhY3RlciBpcyBub3QgYWxudW0uICBBIHVuaXQgdGVzdCBpcyBhbHNvIGluY2x1ZGVkLgoJICBGaXhlcyBidWcgIzYyMTI4Mi4KCjIwMTAtMDYtMTEgMTY6MTI6MzMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IHJhbmtzIHdpdGggb2Zmc2V0cyBmcm9tIG5hbWVzCgoyMDEwLTA2LTA5IDEyOjM5OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmFkMTQ1YiB0byA3MzNmY2E5CgoyMDEwLTA2LTA5IDEyOjMwOjQ5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDc2ODNjMSB0byBmYWQxNDViCgoyMDEwLTA2LTA5IDEyOjE3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY29tbWVudCB0eXBvIGV2ZW4gbW9yZQoKMjAxMC0wNi0wOSAxMjowNjo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIChmb3JtYXQgYW5kIHNlYXJjaCBwYXRoKS4KCSAgUmVtb3ZlIG9ic29sZXRlIHhtbCByZWdpc3RyeSBjYWNoZSBleHRlbnNpb24uIFRlbGwgdGhhdCBjb250ZW50IGFuZCBsb2NhdGlvbiBpcwoJICBpbnRlcm5hbCBkZXRhaWwuIERvY3VlbW50IHRoZSBwbHVnaW4gc2VhcmNoIG9yZGVyLgoKMjAxMC0wNi0wOSAxMjowNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBjb21tZW50czogYWRkIGEgZmV3IGNvbW1lbnRzIHRvIHRoZSBzcGFyc2VseSBkb2N1bWVudGVkIHBsdWdpbiBsb2FkZXIKCjIwMTAtMDYtMDggMTE6NDE6MTEgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY29tbWVudCB0eXBvCgoyMDEwLTA2LTA4IDEyOjEyOjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgZ3N0X2NhcHNfYXBwZW5kX3N0cnVjdHVyZV91bmNoZWNrZWQoKSBtYWNybyBvbmNlIG1vcmUKCjIwMTAtMDYtMDggMTI6MTA6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBhIHNhZmVyIG5hbWUgZm9yIHRlbXBvcmFyeSB2YXIuIHRvIG5vdCBzaGFkb3cgb25lIGZyb20gb3V0ZXIgc2NvcGUKCjIwMTAtMDYtMDcgMTI6MjA6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogdXNlIGdsaWIgdHlwZXMgaW4gbW9yZSBwbGFjZXMKCSAgRG8gYSBidW5jaCBvZiBjaGFyIC0+IGdjaGFyLCBpbnQgLT4gZ2ludCwgZG91YmxlIC0+IGdkb3VibGUgY2hhbmdlcy4KCjIwMTAtMDYtMDcgMTI6MDc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZToganVzdCBjb21wdXRlIHN0cmxlbigpIG9uY2UKCjIwMTAtMDYtMDcgMTA6MTY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHdhaXQgZm9yIGRhdGEgd2hlbiBFT1MKCSAgV2hlbiBpbiBkb3dubG9hZCBtb2RlIGFuZCB3ZSBuZWVkIHRvIHByb3ZpZGUgZGF0YSBmb3IgYW4gb2Zmc2V0IHRoYXQgd2UgZG9uJ3QKCSAgaGF2ZSwgYWxzbyBwZXJmb3JtIGEgc2VlayB0byB0aGUgcmVxdWVzdGVkIGxvY2F0aW9uIHdoZW4gd2UgYXJlIEVPUy4gVGhlIHJlYXNvbgoJICB3aHkgd2Ugc2hvdWxkbid0IHdhaXQgZm9yIG1vcmUgZGF0YSBpcyBiZWNhdXNlIGFmdGVyIEVPUywgdGhlcmUgc2ltcGx5IHdpbGwgYmUKCSAgbm8gbW9yZSBkYXRhIGFuZCB3ZSBlbmQgdXAgd2FpdGluZyBmb3JldmVyLgoJICBGaXhlcyAjNjIwNTAwCgoyMDEwLTA2LTA3IDA4OjE4OjQwICswMjAwICBNYXJ0aW4gQmlzc29uIDxtYXJ0aW4uYmlzc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgc2hvcnQgZm91cmNjcyBmcm9tIHN0cmluZ3MKCSAgRm9yIGV4YW1wbGUgIlkxNiAiIGFuZCAiWTggICIuCgoyMDEwLTA2LTA2IDIzOjE5OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogdXNlIGdsb2JiaW5nIGZvciBzZWxlY3RpdmUgdGVzdCBpbnZvY2F0aW9uIHZpYSBHU1RfQ0hFQ0tTCgkgIFVzZSBnbGliIGdsb2JiaW5nIGluc3RlYWQgb2Ygc2ltcGxlIHN0cmluZyBtYXRjaGluZyB0byBhbGxvdyBlLmcuCgkgIEdTVF9DSEVDS1M9InRlc3RfaW50ZXIqIiBtYWtlIGdzdC9nc3RjYXBzLmNoZWNrCgoyMDEwLTA2LTA2IDIxOjIwOjIxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGNhcHNuZWdvOiBhbHNvIG1lYXNzdXJlIHBpcGVsaW5lIGJ1aWxkaW5nIHRpbWUKCjIwMTAtMDYtMDUgMjM6MTg6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCBhIGNhcHMtY29weQoJICBXZSBjYW4gc2ltcGx5IHRydW5jYXRlIHRoZSBjYXBzLCBhcyAnb3RoZXJjYXBzJyBpcyB0aGUgcmVzdWx0IG9mIGludGVyc2VjdAoJICBvcGVyYXRpb25zIGFuZCB0aHVzIG91cnMgYW5kIHdyaXRhYmxlLgoKMjAxMC0wNi0wMyAwMTo0OTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGluZm86IGFkZCBuZXcgVFJBQ0UgbG9nIGxldmVsIGFuZCBtb3ZlIHJlZmNvdW50aW5nIHRoZXJlIGZyb20gTE9HIGxldmVsCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZWFzaWx5IGdldCBhICo6NSBkZWJ1ZyBsb2cgd2l0aG91dCBhbGwKCSAgdGhlIHJlZmNvdW50aW5nIG5vaXNlLCBhbmQgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGxpbmVzCgkgIG91dHB1dCBmb3IgYSBub3JtYWwgbG9nICg0Nm0gdG8gMjhtIGZvciBhIDIwbWluIHZpZGVvKS4gVGhlIGZ1bGwgbG9nCgkgIGluY2x1ZGluZyByZWZjb3VudGluZyBpbmZvcm1hdGlvbiBjYW4gc3RpbGwgYmUgZ290dGVuIHVzaW5nICo6Ny4KCSAgRml4ZXMgIzYyMDQ2MC4KCjIwMTAtMDYtMDQgMTc6MTA6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmb3Igc3RhbmRhcmQgcHJvcGVydGllcwoKMjAxMC0wNi0wMyAxNzoyMTowMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbEBiYXNlLWFydC5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIGdzdF9iYXNlX3NpbmtfcXVlcnkgcmV0dXJuIFRSVUUgaWYgdGhlIHNlZ21lbnQgcXVlcnkgc3VjY2VlZGVkLgoJICBGaXhlcyBidWcgIzYyMDQ5MC4KCjIwMTAtMDYtMDEgMjM6NDg6NTkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxN2Y4OWU1IHRvIDQ3NjgzYzEKCjIwMTAtMDYtMDEgMjI6NTQ6MjAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZDdjYTA0IHRvIDE3Zjg5ZTUKCjIwMTAtMDUtMjQgMTc6MjU6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogSW1wcm92ZSByZWFkYWJpbGl0eSBmb3IgZ3N0X3BhZF9maXhhdGVfY2FwcygpCgkgIEp1c3QgdHJ1bmNhdGUgYW5kIHRoZW4gZml4YXRlLiBXZSBjaGVjayBmb3IgZW1wdHkgY2FwcyBpbiB0aGUgYmVnaW4gYW5kIGEKCSAgZml4YXRlLWZ1bmMgdGhhdCBlbXB0aWVzIGEgY2FwcyB3b3VsZCBiZSBicm9rZW4uIEl0IGFsc28gaGVscHMgbGF6eSBjYXBzIGltcGwuCgkgIGluIGJ1ZyA2MTg4NTMgYnkgYXZvaWRpbmcgdGhlIGdzdF9jYXBzX2dldF9zaXplKCkuCgoyMDEwLTA2LTAxIDExOjQ2OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBsb2cgcGx1Z2lucyBhdmFpbGFibGUgdG8gdW5pdCB0ZXN0cyBhbmQgdGhlaXIgcGF0aHMKCjIwMTAtMDYtMDEgMTE6NDU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIHdpbjMyOiBjb21taXQgTWFrZWZpbGUgY2hhbmdlcyBmb3Igd2luMzItdXBkYXRlIGFzIHdlbGwKCjIwMTAtMDUtMzEgMTU6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgd2luMzI6IGFkZCBwcmUtZ2VuZXJhdGVkIHZlcnNpb25zIG9mIGdzdG1hcnNoYWwuW2NoXSBhcyB3ZWxsCgkgIGFuZCBwdXQgdGhlbSBuZXh0IHRvIHRoZSBwcmUtZ2VuZXJhdGVkIGVudW10eXBlcyBmaWxlcyBmb3IgdGhvc2UKCSAgbm90IHVzaW5nIGF1dG90b29scyBmb3IgYnVpbGRsaW5nIEdTdHJlYW1lci4KCjIwMTAtMDUtMjcgMTU6MTA6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhbHNvIGNoZWNrIGZvciBhZGFwdGVyIGJ1ZmZlciBtZXJnaW5nIGluIHVuaXQgdGVzdAoKMjAxMC0wNS0yNyAxMjo1MDoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IF90cnlfdG9fbWVyZ2VfdXAKCSAgVGhhdCBpcywgcHJvdmlkZSBjb3JyZWN0IHJldHVybiB2YWx1ZSAoYXMgZG9jdW1lbnRlZCksIGFuZCBhY3R1YWxseQoJICBsb29wIHRvIGNvbnNpZGVyIG1vcmUgdGhhbiB0aGUgZmlyc3QgMiBidWZmZXJzLgoKMjAxMC0wNS0yNyAxMjo0ODoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggZG9jdW1lbnRhdGlvbiBnbGl0Y2gKCjIwMTAtMDUtMjYgMTE6NTQ6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzNTdiMGRiIHRvIGZkN2NhMDQKCjIwMTAtMDUtMjUgMTk6MTc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiB1bmxvY2sgX2dldF9zdGF0ZSgpIG9uIGVycm9yCgkgIFdoZW4gYW4gZXJyb3IgbWVzc2FnZSBpcyByZWNlaXZlZCBvbiB0aGUgYnVzLCBtYXJrIHRoZSBiaW4gYXMgYmVpbmcgaW4gdGhlIGVycm9yCgkgIHN0YXRlIGFuZCB1bmxvY2sgYWxsIGN1cnJlbnQgX2dldF9zdGF0ZSgpIGNhbGxzIHdpdGggYW4gZXJyb3IuCgkgIEZpeGVzICM1MDU3NzAKCjIwMTAtMDUtMjQgMTk6MDc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBjaGVja3M6IGFkZCBtdWx0aS10aHJlYWQgdGVzdCBmb3IgdGFnc2V0dGVyCgkgIFNlZSAjNjE5NTMzLgoKMjAxMC0wNS0yNCAxOTowNjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogbWFrZSBzdXJlIG9ubHkgb25lIHRocmVhZCBjcmVhdGVzIHRoZSBUYWdEYXRhCgoyMDEwLTA1LTI0IDE4OjE2OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBwcm90ZWN0IHRhZ3NldHRlciBvcGVyYXRpb25zIHdpdGggYSBsb2NrCgkgIFNvIHdlIGRvbid0IGNyYXNoIHdoZW4gYSBtdXhlciB0cmllcyB0byBhZGQgdGFncyBmcm9tIHR3bwoJICB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUsIGVnLiBiZWNhdXNlIGl0IHJlY2VpdmVkIHRhZyBldmVudHMKCSAgb24gdHdvIGlucHV0IHBhZHMgc2ltdWx0YW5lb3VzbHkuCgkgIFNlZSAjNjE5NTMzLgoKMjAxMC0wNS0yMiAyMzoyNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIG91ciBtYWNyb3MgbW9yZSBvZnRlbiBpbiB0aGUgY29kZQoKMjAxMC0wNS0yMiAyMzowNzoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGFwcGVuZF9zdHJ1Y3R1cmVfdW5jaGVja2VkCgkgIFRoaXMgaXMgdXNlZnVsIHdoZW4gd2Uga25vdyB0aGF0IGNhcHMgaXMgIU5VTEwsIHdyaXRhYmxlIGFuZCBzdHJ1Y3R1cmUgaXMKCSAgIU5VTEwgdG9vLgoKMjAxMC0wNS0yMiAyMjo0Njo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IHJlbmFtZSB0ZXN0c3VpdGUKCSAgUHJldmlvdXMgbmFtZSB3YXMgb25seSBhcHBsaWNhYmxlIHRvIGEgZmV3IG9mIHRoZSB0ZXN0cy4KCjIwMTAtMDUtMjIgMjI6NDU6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogeHJlZiBmdW5jdGlvbiBuYW1lCgoyMDEwLTA1LTIyIDIyOjQ0OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2Ugb3VyIG1hY29zIG1vcmUKCjIwMTAtMDUtMjIgMjI6MzM6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbGF6eWNhcHMudHh0OgoJICBkZXNpZ246IG1vcmUgcGxhbm5pbmcgb24gbGF6eSBjYXBzLgoKMjAxMC0wNS0yMiAxMDowMTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQVBJOiBBZGQgZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfc3RyaW5nKCkKCjIwMTAtMDUtMTkgMTY6MjE6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbGF6eWNhcHMudHh0OgoJICBkZXNpZ246IGNvbGxlY3QgaWRlYXMgZm9yIGhhdmluZyBsYXp5IGNhcHMKCSAgRGVzaWduIGRvYyBmb3IgaGF2aW5nIG9uIHRoZSBmbHkgZXZhbHVhdGVkIGNhcHMgKHNlZSBidWcgIzYxODg1MykuCgoyMDEwLTA1LTE5IDE1OjU3OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGFkZCBsaW5rcyBmb3IgR1NvdXJjZSBwcmlvcml0aWVzCgkgIE5vdyBpdCBpcyB4cmVmZmVkIHdpdGggdGhlIGdsaWIgZG9jcywgd2hlcmUgdGhlIHByaW9yaXR5IHNjYWxlIGlzIGV4cGxhaW5lZC4KCjIwMTAtMDUtMTkgMTQ6MDg6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBhZGQgY29tbWFuZGxpbmUgcGFyYW1ldGVycyBmb3IgY2Fwc25lZ28KCSAgQWxsb3cgdG8gc3BlY2lmeSB0aGUgZ3JhcGggc2l6ZSBhbmQgb2ZmZXIgdHdvIGZsYXZvdXJzIChhdWRpby92aWRlbykuCgoyMDEwLTA1LTE5IDA5OjU2OjUxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogYWRkIGEgYmVuY2htYXJrIGZvciBjYXBzbmVnb3RpYXRpb24KCSAgVGhlIHRlc3QgYnVpbGRzIGEgdHJlZSBsaWtlIGdyYXBoIGhhdmluZyBjb252ZXJzaW9uIGFuZCBiYXNldHJhbnNmb3JtIGVsZW1lbnRzLgoKMjAxMC0wNS0xOCAxNzo1MTowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgYmVuY2htYXJrczogdXNlIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSBpbnN0ZWFkIG9mIG93biBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0xOCAxODozODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBqaXR0ZXIgdG8gZGVidWcgb3V0cHV0CgoyMDEwLTA1LTE4IDE4OjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2xlYW51cCB0eXBlIHJlZ2lzdHJhdGlvbiBhIGxpdHRsZQoJICBXZSBjYW4gbWFrZSBzb21lIHN0cnVjdHMgY29uc3Qgc3RhdGljIHdpdGggbGl0dGxlIGVmZm9ydC4KCjIwMTAtMDUtMTcgMTM6MDk6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHByaW50IFdBUk5JTkcgZGVidWcgc3RhdGVtZW50cyBmb3Igbm9ybWFsIHRoaW5ncyBsaWtlIEVPUywgcGFydCBJSQoKMjAxMC0wNS0xNCAxODoyMjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRkNjdiZDYgdG8gMzU3YjBkYgoKMjAxMC0wNS0xNCAxMTo1MjowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY29tbWVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwCgkgIE1ha2UgY29tbWVudCBtb3JlIHNwZWNpZmljLCByZXBvc2l0aW9uIGl0IGFuZCBhZGQgbW9yZSBvZiB0aGUga2luZC4KCSAgTW92ZSBvbmUgaWZkZWYnZWQgZnVuY3Rpb24gYXJvdW5kLgoKMjAxMC0wNS0xMyAwODoyMTozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNpbXBsaWZ5IGZyYWN0aW9ucyBiZWZvcmUgZG9pbmcgY2FsY3VsYXRpb25zIHRoYXQgY291bGQgY2F1c2Ugb3ZlcmZsb3dzCgkgIC4uLiB0byBwcmV2ZW50IHNvbWUgdW5uZWNlc3Nhcnkgb3ZlcmZsb3dzIGZyb20gaGFwcGVuZW5pbmcuCgoyMDEwLTA1LTEzIDA4OjAwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogR0NEIGlzIDAgaWYgYm90aCBwYXJhbWV0ZXJzIGFyZSAwLCBkb24ndCBkaXZpZGUgYnkgemVybwoJICBBbmQgdHVybiBvdmVyZmxvdyBjaGVja3MgZnJvbSBhc3NlcnRpb25zIGludG8gc2ltcGxlIGNoZWNrcyB0bwoJICByZXR1cm4gRkFMU0UuCgoyMDEwLTA1LTEzIDA3OjUxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogU2ltcGxpZnkgcmVzdWx0IG9mIGdzdF9mcmFjdGlvbl9tdWx0aXBseSgpCgoyMDEwLTA1LTEwIDEzOjI1OjA0IC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDx0cmlzdGFuQHNhdC5xYy5jYT4KCgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgZmFxOiB1cGRhdGVkIGxpbmUgYWJvdXQgamFjayBvdXRwdXQKCjIwMTAtMDUtMDMgMTE6MzI6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IFJlYWQgcmV0dXJuIHZhbHVlIHRvIG1ha2UgY2xhbmcvaWNjIGhhcHB5CgoyMDEwLTA1LTA2IDE2OjQxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZG9uJ3QgY2hlY2sgdHdpY2UgZm9yIGNoYW5nZWQgY2FwcyBwZXIgcHVzaCIKCSAgV2UgbmVlZCB0byBjaGVjayB0aGUgcGFkIGNhcHMgb24gdGhlIHNyY3BhZCBhcyB3ZWxsIGFzIG9uIHRoZSBzaW5rcGFkLiBSZXZlcnQKCSAgdGhpcyBjb21taXQgYXMgaXQgcmVtb3ZlcyB0aGUgY2hlY2sgb24gdGhlIHNyY3BhZCBhbmQgY2FuIGxlYXZlIHRoZSBzcmNwYWQKCSAgdW5uZWdvdGlhdGVkIChvciBuZWdvdGlhdGVkIHdpdGggd3JvbmcgY2FwcykKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwN2RjMWU1YjQ5NTgwYTg5YmZlZjI3ZmYyNzQ3NmQ1MWZiM2NlMmMyLgoKMjAxMC0wNS0wNiAxNzowMjo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGNoZWNrIHR3aWNlIGZvciBjaGFuZ2VkIGNhcHMgcGVyIHB1c2gKCSAgZ3N0X3BhZF9jaGFpbl9kYXRhX3VuY2hlY2tlZCgpIGRvZXMgdGhlIHNhbWUgY2hlY2sgYWxyZWFkeS4KCjIwMTAtMDUtMDYgMTY6NTE6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZWZsb3cgdG8gdHJ1bmNhdGUgY2FwcyBqdXN0IG9uY2UKCSAgV2UgZ2V0IHdyaXRhYmxlIGNhcHMgZnJvbSB0aGUgaW50ZXJzZWN0aW9uICh1bmxlc3MgaXQgZmFpbGVkKS4gQXMgd2UgdHJ1bmNhdGUKCSAgdGhvc2UgYW55d2F5LCB3ZSBkb24ndCBuZWVkIHRvIG1hbnVhbHkgY29weSB0aGUgZmlyc3Qgc3RydWN0dXJlLgoKMjAxMC0wNS0wNCAxMzoyOTowMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiBmaXggZ3N0LXJ1biB3cmFwcGVyIHRvIHdvcmsgb24gV2luZG93cwoJICBGaXhlcyAjNjE3NjI1CgoyMDEwLTA1LTAzIDAwOjI2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZG9jczogZG9jdW1lbnQgdGhhdCBnc3RfYnl0ZV93cml0ZXJfcHV0X3N0cmluZyooKSB3cml0ZXMgdGhlIHRlcm1pbmF0b3IgdG9vCgoyMDEwLTA1LTA1IDEyOjAxOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBjbGFyaWZ5IHRoZSBwdWxsX3JhbmdlIGZ1bmN0aW9ucwoJICBDbGFyaWZ5IHRoZSBnc3RfcGFkX3B1bGxfcmFuZ2UoKSwgR3N0QmFzZVNyYzo6Y3JlYXRlKCksIGdzdF9wYWRfZ2V0X3JhbmdlKCkKCSAgYW5kIEdzdFBhZEdldFJhbmdlIGZ1bmN0aW9ucyBhIGxpdHRsZS4KCSAgRml4ZXMgIzYxNzczMwoKMjAxMC0wNS0wNCAxMTo0NTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMC0wNC0zMCAxMToyNzoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIHJlZmZlZCBfZ2V0X2NhcHMoKSB2ZXJzaW9uCgkgIFdlIGRvbid0IG5lZWQgdG8gaGF2ZSBhIHdyaXRhYmxlIGNvcHkgc28gd2UgY2FuIHVzZSB0aGUgX3JlZmZlZAoJICB2ZXJzaW9uIGluc3RlYWQuCgoyMDEwLTA0LTI5IDIxOjU3OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgZ2VvIGxvY2F0aW9uIGRpcmVjdGlvbiB0YWdzCgkgIEFkZHMgMyBuZXcgZ2VvIGxvY2F0aW9uIHRhZ3MgaW52b2x2aW5nIGRpcmVjdGlvbiBhbmQKCSAgbW92ZW1lbnQgb2YgY2FwdHVyZS4gVGhvc2UgYXJlOgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NBUFRVUkVfRElSRUNUSU9OCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fTU9WRU1FTlRfRElSRUNUSU9OCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fTU9WRU1FTlRfU1BFRUQKCSAgRml4ZXMgIzYxNzIyMwoKMjAxMC0wNC0xNiAwNjo1NzowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIEdTVF9UQUdfREVWSUNFX01BTlVGQUNUVVJFUiBhbmQgR1NUX1RBR19ERVZJQ0VfTU9ERUwKCSAgQWRkcyB0aG9zZSBuZXcgdGFncyB0byBkZXNjcmliZSB0aGUgZGV2aWNlIG1hbnVmYWN0dXJlciBhbmQKCSAgbW9kZWwgdXNlZCB0byBjcmVhdGUgbWVkaWFzLgoJICBBUEk6IEdTVF9UQUdfREVWSUNFX01BTlVGQUNUVVJFUgoJICBBUEk6IEdTVF9UQUdfREVWSUNFX01PREVMCgkgIEZpeGVzICM2MTU5NDEKCjIwMTAtMDUtMDIgMTk6NDM6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIHB3ZzogcmVtb3ZlIGNvbmZ1c2luZyBtZXRhZGF0YSBleGFtcGxlIHdpdGggMC44IGNvZGUKCSAgRml4ZXMgIzUzNDMxNC4KCjIwMTAtMDUtMDIgMTk6MzA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBtYW51YWw6IGFkZCBtaW5pbWFsIHRhZyByZWFkaW5nIGV4YW1wbGUKCSAgU2hvdWxkIHByb2JhYmx5IHB1dCB0aGF0IGludG8gdGVzdHMvZXhhbXBsZXMgYW5kIGZpZ3VyZSBvdXQgaG93IHRvCgkgIGdldCBpdCBpbmNsdWRlZCBhdXRvbWF0aWNhbGx5LCBidXQgY2FuJ3QgYmUgYm90aGVyZWQgcmlnaHQgbm93LgoKMjAxMC0wNC0zMCAxMzoxMDoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIDIuMjAKCSAgU2VlIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMC0wNC0yOSAyMzoyOTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogb25seSB3YXJuIGlmIG1ldGFkYXRhIGlzIG5vdCB3cml0YWJsZSB3aGVuIGl0IHNob3VsZCBiZSwgZG9uJ3QgcmV0dXJuIGFzIHdlbGwKCSAgTWFrZSBzdXJlIHdlIGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBwYXRoIGluIGdpdCB2ZXJzaW9ucyBhbmQgaW4gcmVsZWFzZXMsCgkgIHNvIGp1c3Qgd2FybiB3aGVuIG1ldGFkYXRhIGlzbid0IHdyaXRhYmxlIHdoZW4gd2Ugd2FudCBpdCB0byBiZSBpbnN0ZWFkCgkgIG9mIGJhaWxpbmcgb3V0LgoKMjAxMC0wNC0yOSAyMzoyNjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtYWtlICdhZGRpbmcgZmx1c2hpbmcgcGFkJyB3YXJuaW5nIG1vcmUgdXNlZnVsCgkgIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGlzc3VlIHdpdGggZ2hvc3QgcGFkcywgbGV0J3MgbWFrZQoJICB0aGUgd2FybmluZyBtb3JlIGhlbHBmdWwgYW5kIHRlbGwgcGVvcGxlIHdoYXQgdGhleSBuZWVkCgkgIHRvIGRvIHRvIGZpeCBpdC4KCjIwMTAtMDQtMjggMTc6MTU6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLXAgb3B0aW9uIHRvIGRpc2FibGUgcGxheSBoYW5kbGVyLgoJICBTYW1lIGxvZ2ljIGFzIGZvciB0aGUgZmF1bHQgaGFuZGxlci4gVGhpcyBpcyB1c2VmdWwgZm9yIHNvbWUgZGVidWcvdHJhY2luZyB0b29scwoJICB0aGF0IG5lZWQgdG8gZ3JhYiBTSUdVU1IxIGFuZCBTSUdVU1IyIHRoZW0gc2VsZi4KCjIwMTAtMDQtMTUgMTA6MzY6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcGxlbWVudCBwZXJjZW50YWdlIHBvc2l0aW9uIGFuZCBkdXJhdGlvbiBxdWVyaWVzCgkgIElmIHVwc3RyZWFtIGRvZXMgbm90IGhhbmRsZSB0aGVtLCB0aGVuIGltcGxlbWVudCB0aG9zZSBvdXJzZWxmLgoKMjAxMC0wNC0xNCAxNzo0NzozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIGdzdF9wYWRfcGVlcl9xdWVyeSBpbnN0ZWFkIG9mIHJlaW52ZW50aW5nLgoKMjAxMC0wNC0xNCAxNzo0Njo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgcXVlcmllczogYWRkIG1vcmUgbG9nZ2luZwoJICBMb2cgaHVtYW4gcmVhZGFibGUgZm9ybWF0cyBhbmQgbG9nIHF1ZXJ5IHJlc3VsdC4KCjIwMTAtMDQtMTkgMjA6MzU6MzYgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY2FwczogRG8gbm90IGFsbG93IGZpeGF0aW5nIGVtcHR5IGNhcHMKCSAgUGFzc2luZyBlbXB0eSBjYXBzIHRvIGdzdF9wYWRfZml4YXRlX2NhcHMoKSBpcyBpbnZhbGlkLCBhcyBlbXB0eSBjYXBzCgkgIGNhbm5vdCBiZSBmaXhhdGVkLgoKMjAxMC0wNC0yNiAyMTo1MjowNyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogVXNlIEdfR05VQ19XQVJOX1VOVVNFRF9SRVNVTFQgZm9yIG1ha2Vfd3JpdGFibGUoKQoJICBQZW9wbGUgb2Z0ZW4gY2FsbAoJICBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIChjYXBzKTsKCSAgaW5zdGVhZCBvZgoJICBjYXBzID0gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSAoY2Fwcyk7CgkgIGFuZCBjYXVzZSBhIGJ1Zy4gV2FybmluZyBhYm91dCBhbiB1bnVzZWQgcmV0dXJuIHZhbHVlIGhlbHBzIGhlcmUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2NTQxI2MyIGZvciBhbiBleGFtcGxlLgoKMjAxMC0wNC0yMyAwNjoyNDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0OiBVc2UgR0Vycm9yIGJveGVkIHR5cGUgZnJvbSBHT2JqZWN0IDIuMjUuMiBpbnN0ZWFkIG9mIG91ciBvd24gaWYgcG9zc2libGUKCjIwMTAtMDQtMjkgMTQ6NTA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudC4KCjIwMTAtMDQtMTUgMTc6MTE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgZXZlbnRzCgo9PT0gcmVsZWFzZSAwLjEwLjI5ID09PQoKMjAxMC0wNC0yNyAyMzo0MjoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjkKCjIwMTAtMDQtMjcgMjM6NDA6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTA0LTI3IDA5OjQyOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIHRlc3RzIGZvciBjb250cm9sbGVyCgkgIFRoZSB0ZXN0cyB2ZXJpZnkgdGhhdCBidWcgIzYxNjg0NiBpcyBpbmRlZWQgZml4ZWQuCgoyMDEwLTA0LTI2IDE1OjQzOjE3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogRml4IGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9pdGVyCgkgIFRoZSBsb2dpYyBpbiB0aGF0IGZ1bmN0aW9uIGlzIGJyb2tlbi4gVmFyaW91cyBOVUxMLWNoZWNraW5nIGJhbmRhaWRzIGZvcgoJICBndWFyYW50ZWVkIG5vbi1OVUxMIHZhcmlhYmxlcyBkaWRuJ3QgZXZlbiBoZWxwIHRoZXJlLgoJICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgcHJldmlvdXMgaXRlbSBleGlzdHMKCSAgYmVmb3JlIGZldGNoaW5nIGl0IGluc3RlYWQgb2YgYWZ0ZXIuIFRoaXMgbWFrZXMgYWxsIG90aGVyIHRlc3RzCgkgIHVubmVjZXNzYXJ5LgoJICBJbiBwYXJ0aWN1bGFyLCBpdCBtYWtlcyB0aGUgY2hlY2sgZm9yIGFuIGVtcHR5IGxpc3QgdW5uZWNlc3NhcnksIGJlY2F1c2UKCSAgZm9yIGVtcHR5IGxpc3RzIHRoZSBvbmx5IGl0ZXIgaXMgdGhlIGJlZ2luIGl0ZXIgKGFuZCB0aGUgZW5kIGl0ZXIpIGFuZAoJICBzbyB0aGUgbmV3IGNoZWNrIGNhdGNoZXMgdGhhdCBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2ODQ2CgoyMDEwLTA0LTI1IDIxOjE1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjguMyBwcmUtcmVsZWFzZQoKMjAxMC0wNC0yMCAxNzoxNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZG9hcDogdXBkYXRlIHJlcG9zaXRvcnkgaW5mbyBmcm9tIGN2cy0+Z2l0IGFuZCBtYWludGFpbmVycwoKMjAxMC0wNC0yMyAxNDozOToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZjODU4NjcgdG8gNGQ2N2JkNgoKMjAxMC0wNC0xNiAyMDowOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBDb25zaXN0ZW50bHkgdXNlIE15RmlsdGVyIGluc3RlYWQgb2Ygc29tZXRpbWVzIEV4YW1wbGVGaWx0ZXIgaW4gdGhlIGV4YW1wbGUKCSAgRml4ZXMgYnVnICM2MTU1NzkuCgoyMDEwLTA0LTE2IDE0OjIyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZW51bXMgZm9yIGN1c3RvbSBmbG93IHJldHVybiBzdWNjZXNzIGFuZCBlcnJvciBjb2RlcwoJICBUaGlzIHdheSBwZW9wbGUgY2FuIGp1c3QgI2RlZmluZSB0aGVpciBvd24gY3VzdG9tIGZsb3cgcmV0dXJucyB0bwoJICBvbmUgb2YgdGhlc2Ugd2l0aG91dCBoYXZpbmcgdGhlIGNvbXBpbGVyIChlc3AuIGdjYy00LjUpIGNvbXBsYWluCgkgIGFib3V0IGNvbXBhcmluZyBpbnRlZ2VycyB0byBhbiBlbnVtIG9yIHRoZSBlbnVtIG5vdCBiZWluZyBsaXN0ZWQKCSAgRml4ZXMgIzYxNTg4MC4KCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTU18xCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUl8xCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SXzIKCjIwMTAtMDQtMTUgMjI6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IFVzZSBjb3JyZWN0IHNldHRlciBmb3IgZG91YmxlIEdWYWx1ZXMKCjIwMTAtMDQtMTUgMTE6MDg6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogZG9jIGZpeGVzCgkgIEFkZHMgbWlzc2luZyAnOicgdG8gdGFncyBkb2NzCgoyMDEwLTA0LTE1IDExOjM4OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggYm9ndXMgdmFyaWFibGUgdHlwZQoJICBUaGUgcmVzdWx0IG9mIGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSgpIGlzIG5vdCBhIEdzdEl0ZXJhdG9yICouCgoyMDEwLTA0LTE0IDEyOjIwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjguMiBwcmUtcmVsZWFzZQoKMjAxMC0wNC0xNCAxMjoxMjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA0LTE0IDEyOjQzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBsb2cgd2hhdCBzdHJ1Y3R1cmUgc3RyaW5nIHdlIGZhaWxlZCB0byBwYXJzZQoKMjAxMC0wNC0xNCAxNzo1NjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCByZWZjb3VudCB3aGVuIHJlbW92aW5nIGVsZW1lbnRzIGR1cmluZyBzdGF0ZSBjaGFuZ2UKCSAgV2hlbiBhbiBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSBhIGJpbiBiZWNhdXNlIGl0IGNhdXNlZCBhIHN0YXRlIGNoYW5nZSBlcnJvciwKCSAgZG9uJ3QgdW5yZWYgdGhlIGNoaWxkIHR3aWNlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBlcnJvci4KCSAgRml4ZXMgIzYxNTc1NgoKMjAxMC0wNC0xNCAxMTo1MDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICB0ZXN0czogbW9yZSBMREZMQUdTIC0+IExEQUREIGZpeGVzCgoyMDEwLTA0LTE0IDExOjQwOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6ICQoTElCTSkgYmVsb25ncyBpbnRvIExJQkFERCBub3QgTERGTEFHUwoKMjAxMC0wNC0wOCAwOToxNDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHdoZW4gYnVpbGRpbmcgZXhlY3V0YWJsZXMsIHB1dCBsaWJzIHRvIGxpbmsgdG8gaW50byBMREFERCBpbnN0ZWFkIG9mIExERkxBR1MKCSAgVXNlIGZvb19MREFERCBpbnN0ZWFkIG9mIGZvb19MREZMQUdTIHRvIHNwZWNpZnkgdGhlIGxpYnJhcmllcyB0byBsaW5rIHRvLgoJICBUaGlzIHNob3VsZCBtYWtlIHN1cmUgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGxpbmtlciBpbiB0aGUgcmlnaHQKCSAgb3JkZXIuIFNlZSAjNjE1Njk3LgoKMjAxMC0wNC0xNCAxMToxOToxNCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSAtV2Nhc3QtYWxpZ24KCSAgQXBwYXJlbnRseSBnY2Mgd2FybnMgdGhhdCBHc3RNaW5pT2JqZWN0IGlzIG5vdCBjYXN0YWJsZSB0bwoJICBHc3RFdmVudC9NZXNzYWdlL0J1ZmZlciBkdWUgdG8gdGhlbSBjb250YWluaW5nIDY0Yml0IHZhcmlhYmxlcywgZXZlbgoJICB0aG91Z2ggQVJNIGhhY2tlcnMgY2xhaW0gdGhhdCB0aG9zZSBvbmx5IG5lZWQgNGJ5dGUgYWxpZ25tZW50LiBBbmQgYXMKCSAgbG9uZyBhcyBnY2MgYmVoYXZlcyB0aGF0IHdheSwgdGhpcyB3YXJuaW5nIGlzIG5vdCB2ZXJ5IHVzZWZ1bC4KCSAgU28gd2UnbGwgcmVtb3ZlIHRoZSB3YXJuaW5nIHVudGlsIHRoaXMgcHJvYmxlbSBpcyBmaXhlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTY5OAoKMjAxMC0wNC0xMyAxMDo0ODo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIHN1cGVyZmx1b3VzIHJldHVybiBzdGF0ZW1lbnRzIGF0IGVuZCBvZiBBQ19UUllfe0xJTkssQ09NUElMRX0gYmxvY2tzCgkgIFNwb3R0ZWQgYnkgSkYgTWVydGVucy4gU2VlICM2MTQ3NjcuCgoyMDEwLTA0LTA1IDEzOjQ2OjIzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBDaGFuZ2UgY2hlY2sgZm9yIHVpbnQxMjhfdAoJICBDaGVjayBmb3IgYWJpbGl0eSB0byBkaXZpZGUgdWludDEyOF90IHZhbHVlcywgc2luY2UgdGhhdCB3aGF0CgkgIHdlIGFjdHVhbGx5IHVzZSBpdCBmb3IgKGluIGdzdHV0aWxzLmMpLiAgVGhlIGV4aXN0ZW5jZSBvZiBhCgkgIHVpbnQxMjhfdCB0eXBlIGRvZXNuJ3QgbWVhbiB0aGUgY29tcGlsZXIgY2FuIGFjdHVhbGx5IGdlbmVyYXRlCgkgIGNvZGUgZm9yIGl0LiAgQWxzbyBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgbGluayB0aGUKCSAgcmVzdWx0IHN1Y2Nlc3NmdWxseS4KCSAgRml4ZXMgYnVnICM2MTQ3NjcuCgoyMDEwLTA0LTEyIDE1OjEzOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBtaW5vciBtb3ZpbmctcGx1Z2lucyBhZGRpdGlvbgoKMjAxMC0wNC0wOSAxNTo0ODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBtYWtlIC1xIGJlIG1vcmUgcXVpZXQKCSAgQ29udmVydCBzb21lIGdfcHJpbnQgaW50byBQUklOVCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBwcmludGVkIHdoZW4gdGhlIC1xIG9wdGlvbgoJICBpcyBzZWxlY3RlZC4KCjIwMTAtMDQtMDkgMTU6MTk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMC0wNC0wOSAxMzoxMjozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBmZHNyYzogYWxsb3cgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlcyBvbiB0aGUgdXJpCgkgIFBhcnNlIGEgc2l6ZT12YWx1ZSBmcm9tIHRoZSBxdWVyeSBzdHJpbmcgdG8gc3BlY2lmeSBhIHNpemUuIFRoaXMgaXMgaW50ZXJlc3RpbmcKCSAgd2hlbiByZWFkaW5nIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgdGhhdCBhY3R1YWxseSBoYXMgYSBzaXplIChhbmQgaXMgbm90CgkgIHN0YXQtYWJsZSwgc3VjaCBhcyB0aGUgc29ja2V0IG9mIGFuIGh0dHAgY29ubmVjdGlvbikKCjIwMTAtMDQtMDkgMTI6MzU6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHdoZW4gRU9TIHdlIGtub3cgdGhlIGR1cmF0aW9uCgkgIFdoZW4gd2UgYXJlIEVPUywgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbiB1cHN0cmVhbSBxdWVyeSBmb3IgdGhlIGR1cmF0aW9uIGluIGJ5dGVzCgkgIGJlY2F1c2Ugd2UgYWxyZWFkeSBrbm93IGl0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3Qgd3JpdHRlbiBieXRlLgoKMjAxMC0wNC0wOSAxMzowODoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEluaXRpYWxpemUgdHlwZWZpbmQvZWxlbWVudCBmYWN0b3J5IHJlZ2lzdHJ5IGNodW5rcyB3aXRoIHplcm9lcwoJICBUaGlzIG1ha2VzIHZhbGdyaW5kIHN0b3AgY29tcGxhaW5pbmcgYWJvdXQgcmVhZGluZyB1bml0aWFsaXphdGVkIG1lbW9yeSwKCSAgd2hpY2ggaXMgbm90IGluaXRpYWxpemVkIGJlY2F1c2UgaXQncyBqdXN0IGNvbXBpbGVyLWFkZGVkIHN0cnVjdCBwYWRkaW5nLi4uCgoyMDEwLTA0LTA5IDExOjE5OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDY2YThjMyB0byBmYzg1ODY3CgoyMDEwLTA0LTA4IDEwOjEwOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGFkZCBuZXcgLnN2ZyBmaWxlIGluIGRvY3MKCjIwMTAtMDQtMDggMTA6NDc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IHVzZSBpbmZvcm1hbGZpZ3VyZSB0YWcgdG8gbm90IHN5bnRheCBoaWdobGlnaHQgdGhlIGNvbnRlbnQKCjIwMTAtMDMtMjUgMTA6MzU6MTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3QtdW5pdmVyc2UuZG90OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgY29uY2VwdCBtYXAKCSAgQWRkIGEgZ3JhcGh2aXogZG90IGZpbGUuIEFkZCBydWxlcyB0byByZW5kZXIgaXQgdG8gc3ZnIGFuZCBpbmNsdWRlIGluIGRvY3MuCgkgIE5vZGVzIGFyZSBjbGlja2FibGUuIEl0IGlzIGFuIGF0dGVtcHQgdG8gc2hvdyBob3cgdGhpbmdzIGZpdCB0b2dldGhlci4KCjIwMTAtMDQtMDcgMTk6MzA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZG9jczogYWRkIGEgZmV3IGNvZGUgc25pcHBldHMgdGhhdCBzaG93IGhvdyB0byB1c2UgZ3N0X21lc3NhZ2VfcGFyc2VfKigpLgoKMjAxMC0wNC0wNyAxOTowNTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBidW1wIGF1dG9jb25mIHJlcXVpcmVtZW50IHRvIDIuNjAgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbi5tNAoJICBSZXF1aXJlIGF1dG9jb25mIDIuNjAgKHdoaWNoIHdhcyByZWxlYXNlZCBpbiBKdW5lIDIwMDYpLgoJICBGaXhlcyAjNjAwNzE4LgoKMjAxMC0wNC0wNyAxMjoyOTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IG1vcmUgY29tcGlsZXIgd2FybmluZ3MKCSAgRml4ICdncmFtbWFyLnRhYi5jOjgxNTo2OiB3YXJuaW5nOiAiWVlFTkFCTEVfTkxTIiBpcyBub3QgZGVmaW5lZCcKCSAgY29tcGlsZXIgd2FybmluZyBhbmQgdGhlIHNhbWUgZm9yIFlZTFRZUEVfSVNfVFJJVklBTC4gVGhlIHR3bwoJICB0cmFuc2xhdGVkIHN0cmluZ3MgYXJlbid0IHBhcnRpY3VsYXJseSBoZWxwZnVsLCBzbyBqdXN0IGRlZmluZQoJICBZWUVOQUJMRV9OTFMgdG8gMC4KCjIwMTAtMDQtMDcgMTI6MjQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIEZpeCAnZ3JhbW1hci55OjY2ODogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGdfZnJlZeKAmSBkaXNjYXJkcyBxdWFsaWZpZXJzCgkgIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZScgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDQtMDcgMTY6MDU6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBhZGQgU2luY2U6IG1hcmtlcnMKCjIwMTAtMDQtMDcgMDk6MzE6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgdGVzdHM6IGdzdHN5c3RlbWNsb2NrOiBkb24ndCBsZWFrIHRoZSBzeXN0ZW0gY2xvY2sKCjIwMTAtMDQtMDUgMDA6MDE6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IG91dCBvZiBzb3VyY2VkaXIgYnVpbGQgZm9yIGNoZWNrCgkgIE1vdmUgdGhlIGludGVybmFsIGhlYWRlciB0byBub2Rpc3QgKGFzIHdlIGNvcHkgaXQgYXJvdW5kIGFueXdheSkuCgkgIFVzZSBidWlsZGRpciBpbiBwYXR0ZXJuIHN1YnN0aXR1dGlvbiBmb3IgaXQuCgkgIEZpeGVzICM2MTQ4My4KCjIwMTAtMDQtMDYgMTc6NDY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MKCjIwMTAtMDItMjMgMDk6MTY6NTUgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgS2VlcCB0cmFjayBvZiBwZW5kaW5nIG5ld3NlZ21lbnQgaW4gZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgdG8gYXZvaWQgcHVzaGluZyBuZXdzZWdtZW50IHVwZGF0ZSBiZWZvcmUgbmV3c2VnbWVudC4KCjIwMTAtMDQtMDQgMTU6MjE6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQGVuc29uaWMtZGVza3RvcC5sb2NhbGRvbWFpbj4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBpbXByb3ZlIGV2ZW50IGRvY3MKCSAgUmVwaHJhc2UgZmlyc3QgcGFyYWdyYXBoIG9mIHNlY3Rpb24gZG9jcy4gQWRkIGRldGFpbCB0byBlb3MgZXZlbnQgZG9jcy4KCjIwMTAtMDMtMjkgMDg6NDM6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBBZGQgLS1sZWF2ZS1wcmVwcm9jZXNzb3Itc3BhY2UgZm9yIGluZGVudCAyLjIuMTEKCSAgSXQgd2FzIHByZXZpb3VzbHkgYnJva2VuLCB3aGljaCBpcyB3aHkgd2UgbmV2ZXIgbmVlZGVkIGl0LiBUaGlzIGtlZXBzIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkgd2l0aCBpbmRlbnQgPD0gMi4yLjExCgoyMDEwLTAzLTMxIDEwOjQzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBwb2ludCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciB0byAubGEgZmlsZXMKCSAgUG9pbnQgZy1pci1zY2FubmVyIHRvIHRoZSAubGEgZmlsZSBvZiBvdXIgbGlicmFyeSwgd2hpY2ggaG9wZWZ1bGx5CgkgIG1ha2VzIGl0IGZpbmQgdGhlIHJpZ2h0IGRlcGVuZGVuY2llcyBpbiBhbGwgY2FzZXMgKGllLiBvdXIgbG9jYWxseQoJICBidWlsdCBsaWJnc3RyZWFtZXIgYW5kIG5vdCB0aGUgc3lzdGVtLWluc3RhbGxlZCBvbmUpLiBUaGlzIGlzIGFsc28KCSAgaG93IGl0J3MgZG9uZSBpbiBHdGsrIGFuZCBob3cgaXQncyBkb2N1bWVudGVkIGluIHRoZSB3aWtpLCBzZWUKCSAgaHR0cDovL2xpdmUuZ25vbWUub3JnL0dPYmplY3RJbnRyb3NwZWN0aW9uL0F1dG90b29sc0ludGVncmF0aW9uCgkgIEJhc2VkIG9uIHBhdGNoZXMgYnkgVmluY2VudCBVbnR6IGFuZCBBbGFuIEtub3dsZXMuCgkgIEZpeGVzICM2MDM3MTAuCgoyMDEwLTA0LTAyIDAxOjE2OjE2ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcEB0ZWNub2NvZGUuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IFVzZSBHX0dOVUNfQ09OU1QgaW5zdGVhZCBvZiBHX0dOVUNfUFVSRSBmb3IgY29udmVyc2lvbiBmdW5jdGlvbnMKCSAgRml4ZXMgYnVnICM2MTQ2MjkuCgoyMDEwLTA0LTAxIDEzOjE5OjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHRlc3RzOiBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIG5ld3NlZ21lbnQgZXZlbnQKCjIwMTAtMDQtMDEgMTI6MzQ6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIGNvbW1vbjogVXBkYXRlIHRvIGxhdGVzdCByZXZpc2lvbiBmb3IgbmV3IHN1cHByZXNzaW9ucwoKMjAxMC0wMy0zMSAyMjowNzo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgdXBkYXRpbmcgcGxheWJhY2sgcmF0ZQoJICBUZXN0cyBpZiBhIHNlZWsgd2l0aCBib3RoIHBvc2l0aW9ucyBiZWluZyBHU1RfU0VFS19UWVBFX05PTkUgaXMgaGFuZGxlZC4KCjIwMTAtMDMtMzEgMTY6NTU6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIGNvcHkgYW5kIGNvbnYgZnVuY3Rpb24gdG8gYnVmZmVyMiBkcmFmdAoKMjAxMC0wMy0zMSAxMDo1NDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVyMiBkcmFmdAoKMjAxMC0wMy0zMSAxMToyNjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBpbXByb3ZlIGNvbW11bmljYXRpb24gcGljdHVyZSBhbmQgc2VjdGlvbgoJICBJbmRpY2F0ZSB0aGF0IG9ubHkgbWVzc2FnZXMgZ28gdmlhIGJ1cy4gQWxzbyBhZGQgcXVlcmllcyBiZXR3ZWVuIGVsZW1lbnRzLgoKMjAxMC0wMy0zMSAxMDoyNDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXZlbnQ6IFVzZSBjb3JyZWN0IHR5cGUgZm9yIHRoZSBtZXNzYWdlIHBhcmFtZXRlciBpbiBnc3RfZXZlbnRfe25ldyxwYXJzZX1fc2lua19tZXNzYWdlCgkgIFRoZSBzdHJ1Y3Qgd29ya2Fyb3VuZCB3YXMgb25seSBuZWNlc3NhcnkgaW4gZ3N0ZXZlbnQuaCwgZ3N0dXRpbHMuaCBrbm93cyBhYm91dCBHc3RNZXNzYWdlCgoyMDEwLTAzLTMxIDA5OjU2OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGFkZCBjb21tdW5pY2F0aW9uIG92ZXJ2aWV3IHRvIGRvY3MKCSAgQWRkIGEgc2VjdGlvbiB0byB0aGUgYmFzaWNzIHRoYXQgc2hvdyBidWZmZXJzLCBldmVudHMsIG1lc3NhZ2VzIGFuZCBxdWVyaWVzCgkgIHRvZ2V0aGVyIGFuZCBkZXNjcmliZSB0aGUgYmFzaWNzLgoKMjAxMC0wMy0zMCAxNTo1NjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IGFkZCBnaXJkaXIgYW5kIHR5cGVsaWJkaXIgdmFyaWFibGVzIHRvIC5wYyBmaWxlcwoJICBTbyB0aGF0IHRoZSAtYmFzZSBsaWJzIGNhbiBmaWd1cmUgb3V0IHRoZSByaWdodCBpbmNsdWRlIHBhdGhzIGZvciB0aGUKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRvb2xzIGV2ZW4gaWYgY29yZSBnb3QgaW5zdGFsbGVkIGludG8gYSBwcmVmaXgKCSAgdGhhdCdzIG5vdCB0aGUgc2FtZSBwcmVmaXggYXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGlzIGluc3RhbGxlZCBpbgoJICBvciBpdCdzIGJlaW5nIGJ1aWxkIGluIGFuIHVuaW5zdGFsbGVkIGdzdHJlYW1lciBzZXR1cC4KCjIwMTAtMDMtMzAgMTU6MjI6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5nCgoyMDEwLTAzLTMwIDE1OjIwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkqIG00Ly5naXRpZ25vcmU6CgkqIG00L01ha2VmaWxlLmFtOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGJ1aWxkOiBtYWtlIGF1dG90b29scyBwdXQgaXRzIG00IGZpbGVzIGludG8gbTQvIGluc3RlYWQgb2YgY29tbW9uL200LwoJICBUaGlzIGlzIGhvdyB3ZSBkbyBpdCBpbiB0aGUgb3RoZXIgbW9kdWxlcywgYW5kIGdldHMgcmlkIG9mIHRoZSBhbm5veWluZwoJICBkaXJ0eSBzdGF0dXMgZm9yIGNvbW1vbiB3aGVuIGRvaW5nIGdpdCBzdGF0dXMgKGF0IGxlYXN0IG9uY2UgeW91IGNsZWFuCgkgIG91dCB0aGUgb2xkIGZpbGVzIGZyb20gdGhlcmUpLgoKMjAxMC0wMy0zMCAxMjozMzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBidWlsZDogYnVpbGQgZXhhbXBsZXMgc3ViZGlyZWN0b3JpZXMgaW4gcGFyYWxsZWwgaWYgcmVxdWVzdGVkCgoyMDEwLTAzLTI4IDIwOjU1OjA5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWZhY3RvciBjYXBzIHN1Z2dlc3Rpb24gb24gcGFkX2FsbG9jCgkgIFJlZmFjdG9yIHRoZSBoYW5kbGluZyBvZiBzaW5rIHN1Z2dlc3Rpb24gY2FwcyB2YXJpYWJsZQoJICBzbyB0aGF0IGl0IGFsd2F5cyBoYXMgYSByZWYgdG8gdGhlIGNhcHMgaXQgcG9pbnRzIHRvLgoJICBNYWtlcyB0aGUgY29kZSBjbGVhcmVyLgoKMjAxMC0wMy0yOSAxNjozNDowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogYWRkIGEgY29tbWVudCBleHBsYWluaW5nIHRoZSByZWFzb24gZm9yIHVzaW5nIGZ1Y250aW9uIHByb3RvcyBoZXJlLgoKMjAxMC0wMy0yOSAxNjoxMzo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogYWx3YXlzIGRlZmluZSBkdW1teSBkZWJ1ZyBjYXRlZ29yeSBhcyBhIGZ1bmN0aW9uIHByb3RvdHlwZQoJICBJdCBkb2VzIG5vdCBzZWVtIHRvIG1ha2Ugc2Vuc2UgdG8gZGVmaW5lIHRoaXMgYXMgYSBmdW5jdGlvbiBvbmx5IGlmIHdlIGhhdmUKCSAgdmFyYXJncyBtYWNyb3MuCgoyMDEwLTAzLTI4IDE1OjEwOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogZml4IHJlZGVjbGFyYXRpb24gZXJvcnMgd2hlbiBidWlsZGluZyB3aXRoIC0tZ3N0LWRpc2FibGUtZ3N0LWRlYnVnCgkgIEdpdmUgZHVtbXkgc3ltYm9scyBhIHVuaXFlIG5hbWUuCgoyMDEwLTAzLTI4IDE0OjQ5OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogbW92ZSBzb21lIHByb3RvdHlwZXMgb3V0IG9mICNpZm5kZWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIE1vdmUgdGhlIHByb3RvdHlwZXMgdXAgdG9nZXRoZXIuIFdlIG9ubHkgZGVmaW5lIHRoZSBtYWNyb3MgZGlmZmVyZW50bHkuCgkgIEZpeGVzIGJ1ZyAjNjE0MTY3IG1vc3RseS4KCjIwMTAtMDMtMjkgMTY6MDU6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IHJlYWRkIHRoZSB1c2Ugb2YgR3N0RGVidWdGdW5jUHRyIHR5cGVkZWYgYW5kIHRlbGwgd2h5CgkgIFRoaXMgcmV2ZXJ0cyB0aGUgcmVsYXRlZCBjaGFuZ2VzIGZyb20gM2Y0OTU0ZTQyZDA0NDBhN2E1OThhOTA4MzI1YzQ1ZWE5ZGIwNzZlNAoJICBhbmQgZmZiMGE0ZTE5MDVhODczMTkxZjhjODAyMzQ2MjYxZThjNDQzNTA2NS4KCjIwMTAtMDMtMjkgMTA6MjI6NDMgKzAxMDAgIEFsYW4gS25vd2xlcyA8YWxhbkBha2JraG9tZS5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgbmV0OiBmaXggdHlwbyBpbiBuZXQgY2xpZW50IGNsb2NrIHN0cnVjdHVyZQoJICBJdCdzIHNvY2thZGRyX2luLCBub3Qgc29ja2FkZHJfaWQuCgoyMDEwLTAzLTI2IDE3OjEyOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogYWRkIGNydWZ0IGFsZXJ0IGZvciBjb21tb24vc2hhdmUqCgoyMDEwLTAzLTI4IDIxOjAyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IEZpeCBidWlsZCBhdCBsZWFzdCB1bnRpbCB0aGUgY29ycmVjdCBmaXggaXMgZm91bmQKCSAgU2VlIGJ1ZyAjNjE0MTY3LgoKMjAxMC0wMy0yOCAxOToxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogTWFrZSBzdHJ1Y3R1cmUgYWJicmV2aWF0aW9ucyBhcnJheSBvbmUtdGltZSBpbml0aWFsaXphdGlvbiB0aHJlYWRzYWZlCgoyMDEwLTAzLTI4IDE4OjA1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIEZJWE1FIDAuMTEgZm9yIHVzaW5nIEdTbGljZSBmb3IgYWxsb2NhdGlvbgoKMjAxMC0wMy0yOCAxODowNTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIGdzdDogVXNlIEdTbGljZSBpbnN0ZWFkIG9mIG5vcm1hbCBnX21hbGxvYyBpbiBtb3JlIHBsYWNlcwoKMjAxMC0wMy0yOCAxMzoxNDowNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYnVpbGQ6IG1vcmUgc29tZSBwcm90b3R5cGVzIG91dCBpZiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwoJICBUaGUgYnVpbGQgd2FzIGZhaWxpbmcgYmVjYXN1ZSBvZiBhIG5ldyB3YXJuaW5nLiBUaGVyZSBhcmUgc3RpbGwgZmFpbHVyZXMKCSAgKHRyYWNrZWQgdmlhIGJ1ZyAjNjE0MTY3KS4KCjIwMTAtMDMtMjUgMjA6MDQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3bHktYWRkZWQgc3RyaW5ncwoKMjAxMC0wMy0yNSAxOTo1NjowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBmaXggaW50ZXJtaXR0ZW50IG1ha2UgZGlzdGNoZWNrIGZhaWx1cmVzCgkgIFVzZSAuTk9UUEFSQUxMRUwgd2hlbiBidWlsZGluZyBkb2NzLiBUaGlzIGF2b2lkcyBpbnRlcm1pdHRlbnQKCSAgbWFrZSBkaXN0Y2hlY2sgZmFpbHVyZXMgbGlrZSAnY3A6IGNhbm5vdCBjcmVhdGUgcmVndWxhciBmaWxlCgkgIGBidWlsZC9pbWFnZS5lbnRpdGllcyc6IEZpbGUgZXhpc3RzJyB3aGVuIHVzaW5nIC1qTi4KCSAgRml4ZXMgIzU5MDcxOC4KCjIwMTAtMDMtMjUgMTg6NTc6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgRklYTUUgMC4xMSB0byByZW1vdmUgR3N0RWxlbWVudERldGFpbHMgZnJvbSB0aGUgcHVibGljIEFQSQoJICBJdCdzIG5vdCBuZWNlc3NhcnkgYW55bW9yZSB0byBleHBvc2UgdGhpcyBhcyBwdWJsaWMgQVBJIGFuZCB0aGlzIGFsbG93cwoJICBlYXNpZXIgZXh0ZW5zaW9uIG9mIHRoZSBlbGVtZW50IGRldGFpbHMgYnkgbmV3IGZpZWxkcy4KCjIwMTAtMDMtMjUgMTg6NDM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGhhbmRsZSB3cml0ZSBlcnJvcnMKCSAgSGFuZGxlIHdyaXRlIGVycm9ycyB0byB0aGUgdGVtcG9yYXJ5IGRvd25sb2FkIGZpbGUgYW5kIHBvc3QgZXJyb3JzIHdoZW4KCSAgc29tZXRoaW5nIHdlbnQgd3JvbmcuCgoyMDEwLTAzLTI1IDE4OjEzOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgZWxlbWVudCBxdWVyeSBmdW5jdGlvbgoJICBBZGQgYW4gZWxlbWVudCBxdWVyeSBmdW5jdGlvbiB0aGF0IGlzIGEgbGl0dGxlIG1vcmUgZWZmaWNpZW50IHRoYW4gdGhlIGdlbmVyaWMKCSAgZGVmYXVsdCBxdWVyeSBoYW5kbGVyLgoKMjAxMC0wMy0yNSAxODoxMjowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCSAgTWVudGlvbiB0aGF0IGEgRFVSQVRJT04gbWVzc2FnZSBkb2VzIG5vdCBtZWFuIHRoYXQgb25lIGNhbiBzYWZlbHkgcXVlcnkgdGhlCgkgIGR1cmF0aW9uIG9uIGEgYmluLCB0aGF0IG9ubHkgd29ya3Mgd2hlbiB0aGUgYmluIGlzIHByZXJvbGxlZC4KCjIwMTAtMDMtMjUgMTg6MDU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBmaXhlZCBGSVhNRQoKMjAxMC0wMy0yNSAxNzozNjo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRkIHRoZSBidWZmZXJpbmcgcGVyY2VudCBpbiBCVUZGRVJJTkcgcXVlcnkKCjIwMTAtMDMtMjUgMTc6MjE6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGltcHJvdmUgYnVmZmVyIGxldmVsIG1lYXN1cmVtZW50IGluIGRvd25sb2FkIG1vZGUKCSAgS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBidWZmZXIgbGV2ZWwgaW4gdGhlIGN1cnJlbnQgcmFuZ2UgaW4gZG93bmxvYWQgbW9kZSBzbwoJICB0aGF0IHdlIHBvc3QgdGhlIGNvcnJlY3QgYnVmZmVyaW5nIG1lc3NhZ2VzLgoKMjAxMC0wMy0yNSAxNTo1NDoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGRvbid0IHVzZSBmYW5jeSBzaGVsbCBmZWF0dXJlcyB3aGVuIGludm9raW5nIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIEl0J3MgUE9TSVgsIGJ1dCB0Y3NoIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IGl0LgoKMjAxMC0wMy0yNSAxMzo0NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGZpeCBQS0dfQ09ORklHX1BBVEggdXNlZCB3aGVuIGNhbGxpbmcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgT3VyIG93biBwa2djb25maWcgZGlyZWN0b3J5IHNob3VsZCBjb21lIGZpcnN0LCBzbyB0aGF0IHBrZy1jb25maWcgdXNlcwoJICB0aGUgaW4tdHJlZSBsaWJnc3RyZWFtZXIgYW5kIG5vdCBzb21lIGV4dGVybmFsIG9uZSB3aGVuIC0tcGtnPWdzdHJlYW1lci0wLjEwCgkgIGlzIHBhc3NlZCB0byBnLWlyLXNjYW5uZXIuCgkgIFNlZSAjNjAzNzEwLgoKMjAxMC0wMy0yNSAxMDoyNzowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBHc3RBZGFwdGVyOiBhZGQgYSB1bmNoZWNrZWQgdmFyaWFudCBvZiBmbHVzaCBmb3IgaW50ZXJuYWwgdXNhZ2UKCSAgVHJpbXMgb2ZmIDEwLTIwJSBjcHUgdGltZSB3aGVuIHVzaW5nIGdzdF9hZGFwdGVyX3Rha2VbX2J1ZmZlcl0KCjIwMTAtMDMtMTkgMTU6MTA6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkIG5ldyBfVVNFUl9SQVRJTkcgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIGZvciB1c2VyIGZhdm9yaXRlIG1lZGlhIHJhdGluZy4KCSAgVXNlciByYXRpbmcgaW5mb3JtcyBob3cgbXVjaCAoZnJvbSAwIHRvIDEwMCkgYSB1c2VyCgkgICdsaWtlcycgYSBtZWRpYS4KCSAgSGF2aW5nIGFuIHBlcmNlbnQgdWludCByYW5nZSBmb3IgdGhpcyBpcyBlYXN5IHRvIG1hcCBpbnRvIG90aGVyIHNjYWxlcywKCSAgbGlrZSBzb21lIHBsYXllcnMgdGhhdCBhbGxvdyB1c2VycyB0byBhdHRyaWJ1dGUgJ3N0YXJzJyB0byBpdHMKCSAgbWVkaWEuCgkgIEFQSTogR1NUX1RBR19VU0VSX1JBVElORwoJICBGaXhlcyAjNTIwNjk3CgoyMDEwLTAzLTI0IDE5OjAyOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgbW9yZSBpbmZvIGluIHRoZSBidWZmZXJpbmcgcXVlcnkKCSAgQWRkIHRoZSBlc3RpbWF0ZWQgZG93bmxvYWQgdGltZSBhbmQgZXN0aW1hdGVkIHRpbWUgbGVmdCB0byB0aGUgYnVmZmVyaW5nIHF1ZXJ5CgkgIHJlc3VsdHMgYWxvbmcgd2l0aCB0aGUgZXN0aW1hdGVkIGRvd25sb2FkIGFuZCBwbGF5YmFjayBzcGVlZC4KCjIwMTAtMDMtMjQgMTg6MTg6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGltcGxlbWVudCBmbHVzaGluZyBpbiBkb3dubG9hZCBidWZmZXJpbmcKCSAgTWFpbnRhaW4gYSBzZXBhcmF0ZSB2YXJpYWJsZSB0byBjb250cm9sIHNyYyBhbmQgc2luayBmbG93cmV0dXJuIHZhbHVlcyBzbyB0aGF0CgkgIHdlIGNhbiB1bmxvY2sgdGhlIHNyYyBwYXJ0IHdpdGhvdXQgc2h1dHRpbmcgZG93biB0aGUgc2luayBwYXJ0LgoJICBBZGQgZmx1c2hpbmcgZm9yIHVwc3RyZWFtIHB1bGwgYmFzZWQgZWxlbWVudHMgdGhhdCB1bmJsb2NrcyBvdXIgZ2V0cmFuZ2UKCSAgZnVuY3Rpb24uIFRoaXMgaW1wbGVtZW50cyBzZWVraW5nIHdoZW4gYmxvY2tpbmcgZm9yIG1vcmUgZGF0YS4KCSAgQWRkIHNvbWUgYXJiaXRyYXJ5IHRocmVzaG9sZCBiZWZvcmUgYXR0ZW1wdGluZyBhIHNlZWsuIEFkZCBhIEZJWE1FIGZvciB0aGlzCgkgIGJlY2F1c2Ugd2UgbmVlZCB0byBmaW5kIGEgc2Vuc2libGUgdGhyZXNob2xkIGJhc2VkIG9uIHRoZSBpbnB1dCByYXRlLgoKMjAxMC0wMy0yNCAxODo1MDowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTVjZDUxNCB0byBjMWQwN2RkCgoyMDEwLTAzLTI0IDE3OjMyOjU0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSB1bnVzZWQgY29kZQoJICBPUFRfQ0ZMQUdTIHdhcyBuZXZlciBBQ19TVUJTVCgpJ2VkIHNvIGl0IHdhc24ndCB1c2VkLiBBbmQgdGhlIGxhc3QgdGltZQoJICBpdCB3YXMgdG91Y2hlZCB3YXMgaW4gMjAwNS4KCjIwMTAtMDMtMjQgMTU6NDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IG1ha2UgZGlzdGNoZWNrCgkgIFRoZSBjaGFuZ2UgZnJvbSBHU1RfQUxMX0NGTEFHUyB0byBHU1RfT1BUSU9OX0NGTEFHUyBkcm9wcGVkIHRoZSBpbmNsdWRlcywKCSAgcHV0dGluZyB0aGVtIGJhY2sgZml4ZXMgbWFrZSBkaXN0Y2hlY2suCgoyMDEwLTAzLTI0IDE1OjE1OjIzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIEZpeCB0ZXN0cyBhZnRlciBzZXRfZWxlbWVudF9kZXRhaWxzKCkgZGVwcmVjYXRpb24KCjIwMTAtMDMtMjQgMTM6MzM6NTggKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZTogRml4IGFuZCByZXN0cnVjdHVyZSBsb2dpYwoKMjAxMC0wMy0xOSAyMjozNjowNyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscygpCgkgIFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKSBpbnN0ZWFkLiBJZiB5b3Ugd2FudCB0bwoJICBjb252ZXJ0IGF1dG9tYXRpY2FsbHksIGhlcmUncyBhIHNjcmlwdDoKCSAgZm9yIGZpbGUgaW4gYGdpdCBncmVwIC1sIEdzdEVsZW1lbnREZXRhaWxzYDsgZG8KCSAgc2VkIC1pIC1uIC1yICcKCSAgMWgKCSAgMSFICgkgICQgewoJICBnCgkgIHMvKChcL1wqW15cbl0qXCpcLyk/XG4pKlteXG5dKkdzdEVsZW1lbnREZXRhaWxzIC4qID1ccypHU1RfRUxFTUVOVF9ERVRBSUxTXHMqXCgoXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqKFwiW15cIl0qXCJccyopKilcKTtcbiooLiopZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgXCgoW14sXSopLFxzKlteKV0qXCkvXG5cblw1Z3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIChcNiwgXDMpLwoJICBzLygoXC9cKlteXG5dKlwqXC8pP1xuKSpbXlxuXSpHc3RFbGVtZW50RGV0YWlscyAuKiA9XHMqXHtccyooXCJbXlwiXSpcIixccypcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqKFwiW15cIl0qXCJccyopKilcfTtcbiooLiopZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgXCgoW14sXSopLFxzKlteKV0qXCkvXG5cblw1Z3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIChcNiwgXDMpLwoJICBwCgkgIH0nICRmaWxlCgkgIH4vZ3N0L2dzdHJlYW1lci90b29scy9nc3QtaW5kZW50ICRmaWxlCgkgIGRvbmUKCjIwMTAtMDMtMjQgMTA6NTc6MDggKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTAtMDMtMjMgMTk6MjU6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiByZW1vdmUgdW51c2VkIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUyBmcm9tIE1ha2VmaWxlLmFtCgoyMDEwLTAzLTIzIDE5OjIzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBtYXBwaW5nIGZvciAodWludCkgdG8gYWxsb3cgZGVzZXJpYWxpc2F0aW9uIG9mIHVuc2lnbmVkIGludGVnZXJzCgkgIFVuc2lnbmVkIGludHMgYXJlIHVzZWQgaW4gdGFnbGlzdHMsIHdvdWxkIGJlIG5pY2UgdG8gYmUgYWJsZSB0bwoJICBkZXNlcmlhbGlzZSB0aGVtLCBlc3AuIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgdGFnaW5qZWN0IEFQSS4KCjIwMTAtMDMtMjMgMTk6MjU6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGltcGxlbWVudCBzZWVraW5nIGluIGRvd25sb2FkIG1vZGUKCSAgV2hlbiBpbiBkb3dubG9hZCBtb2RlIGFuZCB0aGUgcmVxdWVzdGVkIG9mZnNldCBpcyB0b28gZmFyIGF3YXksIGF0dGVtcHQgdG8gZG8gYQoJICBzZWVrIHJlcXVlc3QgdG8gZmV0Y2ggdGhlIGRhdGEuCgkgIEtlZXAgdHJhY2sgb2YgYWxsIGRvd25sb2FkZWQgcGFydHMgYW5kIG1lcmdlIHJhbmdlcyB3aGVuIG5lZWRlZC4KCSAgRml4ZXMgIzYwMDg3NwoKMjAxMC0wMy0yMiAxMTowNjoyMSAtMDMwMCAgQW5kcsOpIERpZWIgTWFydGlucyA8YW5kcmUuZGllYkBnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIGdpdC11cGRhdGUuc2g6IHVzZSBhdXRvZ2VuLnNoIGluc3RlYWQgb2YgYXV0b3JlZ2VuLnNoIG9uIGZyZXNoIHJlcG9zaXRvcmllcy4KCSAgRml4ZXMgIzYxMzU5My4KCjIwMTAtMDMtMjIgMTc6MTA6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nZXR0ZXh0Lmg6CgkgIGdldHRleHQ6IGJ1aWxkIGZpeGVzOiAjaWYgLT4gI2lmZGVmCgoyMDEwLTAzLTIyIDEzOjE2OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgQWRkIC1Xd3JpdGUtc3RyaW5ncwoJICBhbmQgZml4IGl0cyB3YXJuaW5ncwoKMjAxMC0wMy0xOCAxMDoyMjowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IG1ha2UgZGVsYXllZCBzZXQgcmVjdXJzaXZlCgkgIFJpZ2h0IG5vdyBkZWxleWVkIHNldCB3b3VsZCBvbmx5IHRyeSBmb3IgZmlyc3Qgc2V0IG9mIGNoaWxkcmVuLiBXZSBuZWVkIHRvIGtlZXAKCSAgdHJ5aW5nIHRvIHN1cHBvcnQgYXJiaXRyYXJ5IGRlZXAgaGllcmFyY2hpZXMgKGxpa2UgaW4gcGxheWJpbjIgd2l0aCBhdXRvKnNpbmtzKS4KCSAgQWxzbyBHc3RCaW4gd291bGQgbmVlZCB0byBhY3R1YWx5IGVtaXQgdGhlIGNoaWxkLWFkZGVkL3JlbW92ZWQgc2lnbmFsIGFzIGl0CgkgIGltcGxlbWVudHMgdGhlIGlmYWNlLiBGaXhlcyAjNjEzMjE1LgoKMjAxMC0wMy0yMiAwODo0MDozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJICBwa2djb25maWc6IFVzZSBATElCTUAgaW5zdGVhZCBvZiAtbG0KCjIwMTAtMDMtMTkgMDE6MDI6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgcGtnY29uZmlnOiBhZGQgYmFjayBzdXBwb3J0IGZvciBidWlsZGRpciAhPSBzcmNkaXIgY2FzZSBpbiB1bmluc3RhbGxlZCBzZXR1cAoJICBBdHRlbXB0IHRvIGFkZCBiYWNrIHN1cHBvcnQgZm9yIGJ1aWxkZGlyICE9IHNyY2Rpci4gVXNlIGFic29sdXRlIHBhdGhzCgkgIGluc3RlYWQgb2YgcmVsYXRpdmUgcGF0aHMgYmFzZWQgb24gcGNmaWxlZGlyIHRoaXMgdGltZSB0byBtYWtlIHRoaW5ncwoJICBjbGVhcmVyIC0gdGhlcmUncyBub3QgcmVhbGx5IGFueSBuZWVkIGZvciB1bmluc3RhbGxlZCB0cmVlcyB0byBiZQoJICByZWxvY2F0YWJsZSB3aXRob3V0IHJlLXJ1bm5pbmcgY29uZmlndXJlLgoKMjAxMC0wMy0xOCAxMToxODozOSArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBRb1MgbWVzc2FnZSBwb3N0aW5nCgkgIEFuZCBzb21lIG1vcmUgZm9yIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE4IDEzOjQxOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGNhdGNoLCBwYXJzZSBhbmQgc3RvcmUgUW9TIGV2ZW50IHZhbHVlcwoJICBDYXRjaCwgcGFyc2UgYW5kIHN0b3JlIHRoZSBRb1MgdmFsdWVzIGZyb20gUW9TIGV2ZW50cyBmb3IgbGF0ZXIgdXNlLgoKMjAxMC0wMy0xNyAxNToyOTo0OCArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW1wbGVtZW50IFFvUyBtZXNzYWdlIHBvc3RpbmcgaW4gYmFzZXNpbmsKCSAgUG9zdCBRb1MgbWVzc2FnZXMgd2hlbiBmcmFtZXMgYXJlIGRyb3BwZWQuCgkgIFRoaXMgZ29lcyBhIGxpdHRsZSBmdXJ0aGVyIHRvd2FyZHMgcmVzb2x2aW5nIGJ1ZyAjMzIyOTQ3CgoyMDEwLTAzLTE3IDE5OjI2OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogaW1wcm92ZSBkb2NzIGEgbGl0dGxlCgoyMDEwLTAzLTE3IDE5OjE2OjQyICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgUW9TIG1lc3NhZ2UgdG8gaW5mb3JtIGFwcHMgb2YgbG9zdCBkYXRhCgkgIFRoaXMgaGFzIGJlZW4gaW1wbGVtZW50ZWQgYXMgcGVyIHBhcnQtcW9zLnR4dCBhbmQgcGFydGlhbGx5IGFkZHJlc3NlcwoJICBidWcgIzMyMjk0NwoKMjAxMC0wMy0xNyAxNjo0NDowNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIHRlc3Q6IFJlbW92ZSBuZWVkbGVzcyBjYXN0CgkgIEdzdFZhbHVlQXJyYXkubmFtZSBpcyBjb25zdCBub3cKCjIwMTAtMDMtMTcgMTQ6MzM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgUmV2ZXJ0ICJBZGQgc3JjZGlyIHRvIGluY2x1ZGVzIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcyIKCSAgSSBkb24ndCBrbm93IGhvdyB0aGlzIGV2ZXIgd29ya2VkLCBhcyBpdCBzZWVtcyB0byBwdXQgLUkuLy4uCgkgIGFuZCAtSS4vLi4vbGlicyB2ZXJiYXRpbSBpbnRvIHRoZSBpbmNsdWRlcywgYXQgbGVhc3Qgd2l0aAoJICBjdXJyZW50IGF1dG90b29scyB2ZXJzaW9ucy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyNzlhODBmZjI3YmE0YzkwZjUyOTgxZTg5ZTcxMGViMTE4MWJjMjAxLgoKMjAxMC0wMy0xNyAxNTo0Njo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogYXZvaWQgY29uZnVzaW9uIGJldHdlZW4gZXZlbnRzIGFuZCBtZXNzYWdlcwoKMjAxMC0wMy0xNyAxMjoxODoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogTWFyayBwcm9wZXJ0eV9uYW1lIGluIEdzdFZhbHVlQXJyYXkgYXMgY29uc3QKCSAgVGhpcyB3b24ndCBhbmQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGZyb20gYW55IEFQSQoKMjAxMC0wMy0xNyAxMjo0NTo0OSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTAtMDMtMTYgMDk6NTY6MTYgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nICJTaW5jZTogMC4xMC4yNiIgbWFya2VyIGZvciBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpCgoyMDEwLTAzLTE2IDA5OjQyOjIxICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGZpeCBzaW5jZSB0YWcgZm9yIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkX3R5cGVkKCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9oYXNfZmllbGRfdHlwZWQgd2FzIGFkZGVkIGluIDAuMTAuMjYsIG5vdCAwLjEwLjE2LgoJICBBcHBhcmVudCB0eXBvIGluIGNvbW1pdCBmOWUzYjcyZiB3aGVuIHRoZSBBUEkgd2FzIGFkZGVkLgoKMjAxMC0wMy0xNyAxMDo1MzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgZG9jczogZml4IFNpbmNlIG1hcmtlcnMgZm9yIGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQqKCkKCSAgQXMgdGhlIGhlYWRlcnMgd2VyZSBicm9rZW4gaW4gMC4xMC4yNiB0aGUgZnVuY3Rpb25zIHdlcmVuJ3QgcmVhbGx5CgkgIHVzYWJsZSBiYWNrIHRoZW4sIHNvIHdlIHNob3VsZCBhZHZlcnRpc2UgdGhlbSBhcyBiZWluZyB0aGVyZSBvbmx5CgkgIHNpbmNlIDAuMTAuMjcuCgkgIFNwb3R0ZWQgYnkgTWFydCBSYXVkc2VwcC4KCjIwMTAtMDMtMTYgMTc6NTY6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBnc3Q6IHVzZSAjaWYgR0xJQl9DSEVDS19WRVJTSU9OIGluc3RlYWQgb2YgI2lmbmRlZiBHTElCTUFDUk8KCSAgZm9yIGJldHRlciBncmVwcGFiaWxpdHkgYXQgdGhlIHRpbWUgd2UgYnVtcCBHTGliIHZlcnNpb24gcmVxdWlyZW1lbnRzLgoKMjAxMC0wMy0xNCAxMTo0NzoyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkZWFjdGl2YXRlIHBhZCBpZiB3ZSBjYW4ndCBnZXQgbGVuZ3RoIG9yIGl0J3MgYSBsZW5ndGggb2YgemVyby4KCSAgRml4ZXMgaXNzdWVzIHdoZW4gcmUtdXNpbmcgdHlwZWZpbmQgYWZ0ZXIgYSBmaWxlIG9mIGxlbmd0aCB6ZXJvLgoKMjAxMC0wMy0xNiAxMDozMjoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWNjZXB0IG5vbi1maXhlZCBjYXBzIHN1Z2dlc3Rpb25zCgkgIFdoZW4gZG9pbmcgcGFkX2FsbG9jcywgdXNlIG5vbi1maXhlZCBjYXBzIHN1Z2dlc3Rpb25zIGFuZAoJICB0cnkgdG8gZml4YXRlIHRoZW0gYmVmb3JlIHVzaW5nLiBUaGlzIG1ha2VzIHBvc3NpYmxlIHRvCgkgIGhhdmUgc3VnZ2VzdGVkIGJ1ZmZlciBzaXplIHdpdGggMCBpbiBiYXNldHJhbnNmb3JtIGp1c3QKCSAgdG8gc2lnbmFsIHVwc3RyZWFtIGEgcmVuZWdvdGlhdGlvbiBpcyBuZWVkZWQKCSAgRml4ZXMgIzU3NjIzNAoJICBGaXhlcyAjNjA5MDQ2CgoyMDEwLTAzLTE2IDEwOjQwOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiBtZXJnZSBRb1MgbWVzc2FnZSBmaWVsZHMKCSAgVGhlcmUgd2FzIGFscmVhZHkgYSBzZWN0aW9uIGFib3V0IFFvUyBtZXNzYWdlcyB0aGF0IGlzIG5vdyBtZXJnZWQgd2l0aCB0aGUgbmV3CgkgIGluZm9ybWF0aW9uLgoKMjAxMC0wMy0xNiAxMDo0NDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBtZW50aW9uIGhvdyB0byBidWlsZCBhZnRlciB1c2luZyB0aGUgcHJvamVjdCBzdGFtcAoKMjAxMC0wMy0xNiAwOTo1Njo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogc25wcmludGYgbmVlZHMgdG8gaW5jbHVkZSAic3RkaW8uaCIKCjIwMTAtMDMtMTUgMTg6NDg6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBRT1MgZG9jcyB0byBpbmNsdWRlIFFPUyBtZXNzYWdlcwoJICBBZGQgc29tZSBkb2NzIGFib3V0IHRoZSB2YWx1ZXMgbmVlZGVkIGZvciBhIFFvUyBtZXNzYWdlIGFuZCBzb21lIHVzZQoJICBjYXNlcy4KCSAgU2VlICMzMjI5NDcKCjIwMTAtMDMtMTUgMTc6MDc6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHVzZSBiaW9uaWMvbGliYyBmcmllbmRseSBhcmd1bWVudHMgdG8gcHJjdGwKCSAgcHJjdGwgaXMgc3VwcG9zZWQgdG8gdGFrZSA1IGFyZ3VtZW50cy4gSXQgdXNlZCB0byB3b3JrIHdpdGggMiBhcmd1bWVudHMgb24gc29tZQoJICB2ZXJzaW9ucyBvZiBsaWJjIGJlY2F1c2UgaXQgaXMgZGVmaW5lZCBhcyBhIHZhcmFncyBmdW5jdGlvbiB0aGVyZS4KCSAgU2VlICM2MTE5MTEKCjIwMTAtMDMtMTUgMTU6MDc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiB1cGRhdGUgZG9jcy4KCjIwMTAtMDMtMTUgMTQ6NDQ6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogV29yayBhcm91bmQgZ3RrLWRvYyBwcm9ibGVtCgoyMDEwLTAzLTE1IDE0OjQ0OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBVc2UgY29ycmVjdCBndGstZG9jIHdvcmthcm91bmQKCjIwMTAtMDMtMTUgMTQ6MDU6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBIYW5kbGUgaXRlcmF0b3IgcmVzeW5jcyBpbiBnc3RfcGFkX3Byb3h5X3NldGNhcHMoKQoJICBGaXhlcyBidWcgIzYxMjg4MS4KCjIwMTAtMDMtMTUgMTQ6NDg6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGNvbmZpZ3VyZSB0aGUgb2JqZWN0IG5hbWUgYXMgdGhyZWFkIG5hbWUKCSAgV2hlbiB3ZSBoYXZlIHByY3RsIGF2YWlsYWJsZSwgdXNlIGl0IHRvIHNldCB0aGUgY29uZmlndXJlZCBvYmplY3QgbmFtZSBhcyB0aGUKCSAgdGhyZWFkIG5hbWUgZm9yIGJldHRlciBkZWJ1Z2dpbmcuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IFJvYmVydCBTd2Fpbi4KCjIwMTAtMDMtMTUgMTM6NDg6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2V0IGEgZ29vZCBuYW1lIG9uIHRoZSB0YXNrIG9mIHRoZSBwYWQKCSAgVXNlIHRoZSBlbGVtZW50OnBhZCBuYW1lcyB0byBjb25maWd1cmUgYSBnb29kIG5hbWUgZm9yIHRoZSBwYWQgdGFzay4KCjIwMTAtMDMtMTUgMTI6MTM6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICB0YXNrOiByZXRhYgoKMjAxMC0wMy0xNSAxMDoyNjoxOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBsb2dnaW5nOiByZW1vdmUgZXh0cmEgbmV3bGluZQoKMjAxMC0wMy0wNCAyMzozNjo1MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHR1cm4gZ19yZXR1cm5faWZfZmFpbCBpbnRvIGdfYXNzZXJ0LgoJICBUaGlzIGVpdGhlciBtdXN0IG5ldmVyIGhhcHBlbiAod2hpY2ggbWFrZXMgc2Vuc2UgaW4gdGhpcyBjYXNlKSBhbmQgdGh1cyBzaG91bGQKCSAgdXNlIGFzc2VydCgpIG9yIHdlIHNob3VsZCB1c2UgYSB0cmFkaXRpb25hbCBpZiAocG9sbF9kYXRhLT5tZXNzYWdlKSByZXR1cm47CgkgIHRvIGF2b2lkIGRpZmZlcm5ldCBiZWhhdmlvdXIgb2YgaW50ZW5hbCBhcGkgd2hlbiBjb21waWxpbmcgd2l0aAoJICBHX0RJU0FCTEVfQ0hFQ0tTLgoKMjAxMC0wMy0wMyAyMzozNzowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogbW92ZSB0aGUgY2hlY2sgdG8gdGhlIHB1YmxpYyBhcGkuCgkgIFRoaXMgYXZvaWRzIGNyZWF0aW5nIGVtcHR5IGNhcHMgYW5kIGRlc3Ryb3lpbmcgdGhlbSBpbiB0aGUgY2FzZSBvZiBhbiBlcnJvci4gV2UKCSAgYWxzbyBhdm9pZCBkb3VibGUgY2hlY2tpbmcgaW4gb3RoZXIgY29kZSBwYXRoIHdoZXJlIHdlIGNhbGwgdGhlIGludGVybmFsIGFwaS4KCjIwMTAtMDMtMDMgMjM6MzQ6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHRoaXMgaXMgaW50ZXJuYWwgQVBJIHdoZXJlIHdlIG5lZWQgdG8gZW5zdXJlICFOVUxMIGhpZ2hlciB1cAoKMjAxMC0wMy0wMyAyMTo1MDoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHRoaXMgaXMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2hlcmUgd2UgYWxyZWFkeSBlbnN1cmUgIU5VTEwgd2hlbiBjYWxsaW5nCgoyMDEwLTAyLTI2IDA5OjI5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY2FzZSBvZiBwYWQgZmxhZwoJICBEdWUgdG8gYSB0eXBvIHRoZSBjb2RlIHdhcyBhbHdheXMgc2hvd2luZyB0aGUgZmxhZyBhcyAncycgKGxvd2VyIGNhc2UpLgoJICBGaXhlcyAjNjExMDc1CgoyMDEwLTAyLTIzIDIzOjUwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBkZWJ1ZzogYWRkIHByZXR0eSBwcmludGVyIGZvciBldmVudHMKCSAgQWRkZXIgaXMgdXNpbmcgR1NUX1BUUl9GT1JNQVQgZm9yIGV2ZW50cyBhbHJlYWR5LCBzbyB3ZSBtaWdodCBhY3R1YWx5CgkgIGltcGxlbWVudCB0aGlzIGFuZCBwcmludCBvdXQgc29tZSB1c2VmdWwgaW5mby4KCjIwMTAtMDMtMTMgMTE6MDM6NTkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgQWRkIHNvbWUgMC4xMSBGSVhNRXMgZm9yIEdzdFBsdWdpbkluaXRGdW5jCgkgIFNlZSA4ZmU2MzAwMGRlMzFiYjJiY2YzNDZkNTkyMzBkZWEwNjExNzk5N2NkIGZvciB3aHkgaGF2aW5nIGEgVFJVRS9GQUxTRQoJICByZXR1cm4gdmFsdWUgaXMgYSBiYWQgaWRlYS4KCSAgSSd2ZSBzY2FubmVkIGEgZmV3IHBsdWdpbnMgYW5kIHRoZXkgZ2VuZXJhbGx5IGdldCBpdCB3cm9uZyBhbmQgYXJlbid0CgkgIHVubG9hZGFibGUgd2hlbiB0aGV5IHJldHVybiBGQUxTRS4KCjIwMTAtMDMtMTIgMTk6MDc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5ncwoKMjAxMC0wMy0xMiAxOTowNToxNiArMDAwMCAgTGVvIFNpbmdlciA8bHNpbmdlckBjYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGZpeCBjb21waWxhdGlvbiBlcnJvciBpZiBIQVZFX1JFR0lTVEVSX1BSSU5URl9TUEVDSUZJRVIgaXMgdW5kZWZpbmVkCgkgIFVzZSAjaWYgSEFWRV9GT08gaW5zdGVhZCBvZiAjaWZkZWYgSEFWRV9GT08uCgkgIEZpeGVzICM2MTI3MzMuCgoyMDEwLTAzLTEyIDE2OjQyOjQ3ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbnM6IERvIG5vdCBldmVyIHVubG9hZCBhIHBsdWdpbiBhZnRlciBjYWxsaW5nIGludG8gaXQKCSAgVGhpcyBpcyB3aGF0IGNhbiBoYXBwZW4gaW4gYSBwbHVnaW5faW5pdCBmdW5jdGlvbjoKCSAgLSBBbiBlbGVtZW50IGJhc2VkIG9uIEdzdEJhc2VTaW5rIGlzIHJlZ2lzdGVyZWQKCSAgLSBPdGhlciBlbGVtZW50cyBmYWlsIHRvIHJlZ2lzdGVyCgkgIC0gVGhlIHBsdWdpbl9pbml0IGZ1bmN0aW9uIHJldHVybnMgRkFMU0UKCSAgTm93IGlmIHRoaXMgdGhlIHBsdWdpbiBpcyB0aGUgZmlyc3QgcGx1Z2luIHRvIGxpbmsgYWdhaW5zdAoJICBsaWJnc3RiYXNlLnNvLCBpdCB3aWxsIGhhdmUgY2F1c2VkIGxpYmdzdGJhc2Uuc28gdG8gYmUgbG9hZGVkIGFuZCBzdGF0aWMKCSAgc3RyaW5ncyBmcm9tIHRoYXQgbGlicmFyeSB3aWxsIGhhdmUgYmVlbiBhZGRlZCB0byBnb2JqZWN0IHdoaWxlCgkgIHJlZ2lzdGVyaW5nIEdzdEJhc2VTaW5rLgoJICBTbyB1bmxvYWRpbmcgdGhlIHBsdWdpbiB3aWxsIGNhdXNlIHRob3NlIHN0cmluZ3MgdG8gZ28gc3RhbGUgYW5kIHRoZQoJICBuZXh0IHBsdWdpbiB1c2luZyBHc3RCYXNlU2luayB3aWxsIGNyYXNoLiBTbyB3ZSBtdXN0IG5vdCB1bmxvYWQgbW9kdWxlcwoJICBhZnRlciBjYWxsaW5nIGludG8gdGhlbSBldmVyLgoJICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU3MjgwMAoKMjAxMC0wMy0xMiAxNTozNjozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IERvbid0IHBhc3MgTlVMTCB0byB0aGUgR1NlcXVlbmNlIEFQSQoKMjAxMC0wMy0xMiAxMzozMzowMCArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBGaXggZXJyb3IgcmV0dXJuIHZhbHVlIGFuZCBtYWtlIHRoZSBzY3JpcHQgZXhpdCBvbiBlcnJvcnMKCSAgTmV3ZXIgdmVyc2lvbnMgb2YgQkFTSCAoNC54Pykgc2VlbSB0byBkaXNsaWtlIHVzaW5nIC0xIGZvciBhIHJldHVybi4gRXZlbgoJICB0aG91Z2ggaXQncyBkb2N1bWVudGVkIGFzIGJlaW5nIHNpZ25lZCwgQkFTSCBjb21wbGFpbnMgYWJvdXQgaXQsIHNvIHVzZQoJICAyNTUgaW5zdGVhZC4KCjIwMTAtMDMtMTIgMTM6NTQ6MjkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGUyNzJmNzEgdG8gNTVjZDUxNAoKMjAxMC0wMi0xNyAxMzowMjo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiBVc2UgR19WQUxVRV9DT0xMRUNUX0lOSVQgaWYgYXZhaWxhYmxlCgkgIFRoaXMgYnJpbmdzIHRvdGFsIGNhbGwgc3BlZWR1cHMgYmV0d2VlbiA1JSBhbmQgMjUlLgoJICBnc3RfY2Fwc19zZXRfc2ltcGxlX3ZhbGlzdDogKzUlCgkgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdDogKyAxMCUKCSAgZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsaXN0OiArMjUlCgkgIGdzdF90YWdfbGlzdF9hZGRfdmFsaXN0OiArNSUKCSAgTWVhc3VyZWQgdXNpbmcgdmFsZ3JpbmQgd2hlbiBydW4gb3ZlciB0aGUgZGlzY292ZXJ5IG9mIDIwMCBtZWRpYSBmaWxlcy4KCSAgRml4ZXMgIzYxMDI1NgoKMjAxMC0wMy0xMSAyMDoyOToyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgd2luMzI6IEZpeCBidWlsZCBmYWlsdXJlcyBvZiB0ZXN0cwoKMjAxMC0wMy0wOSAyMDozODo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIG5ldyBnZW8gbG9jYXRpb24gdGFncwoJICBBZGRzIG5ldyB0YWdzIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NPVU5UUlksCgkgIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NJVFkgYW5kIEdTVF9UQUdfR0VPX0xPQ0FUSU9OX1NVQkxPQ0FUSU9OLgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NPVU5UUlkKCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DSVRZCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fU1VCTE9DQVRJT04KCSAgRml4ZXMgIzYxMjQxMAoKMjAxMC0wMy0xMSAxODozNjozMiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICB3aW4zMjogQWRkIHByb3RvdHlwZSBmb3IgRGxsTWFpbigpCgoyMDEwLTAzLTExIDExOjQ2OjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTEyLTI4IDE3OjI1OjIwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3N0cmVhbWVyOiByZW1vdmUgdW5uZWVkZWQgY2FzdHMKCSAgR19QQVJBTV9TUEVDX1ZBTFVFX1RZUEUgZG9lcyBhbiBleHBlbnNpdmUgdHlwZSBjaGVjaywgd2hlcmVhcyB0aGUKCSAgdmFsdWVfdHlwZSBmaWVsZCBpcyBhIHB1YmxpYyBmaWVsZCwgc28gd2UgY2FuIGp1c3QgdXNlIGl0IGRpcmVjdGx5LgoKMjAxMC0wMy0xMSAxMTozOTo0MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgLVdpbmxpbmUgZmxhZyBhZ2FpbgoJICBJdCB0cmlnZ2VycyBmb3IgYSBsb3Qgb2YgR1N0cmVhbWVyIEFQSSAoZXZlbiB0aG91Z2ggdGhvc2UgdHJpZ2dlcnMgYXJlCgkgIHdyb25nIG1vc3Qgb2YgdGhlIHRpbWUpLgoJICBJIG1pc3NlZCBpdCBiZWNhdXNlIGl0IG9ubHkgdHJpZ2dlcnMgd2l0aCAtTzIsIGFuZCBJIHdhcyB1c2luZyAtTzAuCgoyMDEwLTAzLTExIDExOjIwOjM1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRmOGE3YzggdG8gZTI3MmY3MQoKMjAxMC0wMy0xMSAxMToxMDo0NCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBBZGQgYSBidW5jaCBtb3JlIHdhcm5pbmcgZmxhZ3MgdG8gY29uZmlndXJlCgkgIE5vbmUgb2YgdGhlc2UgZmxhZ3MgY2F1c2Ugd2FybmluZ3MgYW55bW9yZSwgc28gbm8gZml4ZXMgbmVjZXNzYXJ5LgoJICBUaGUgZmxhZ3MgYXJlOgoJICAtV2Zvcm1hdC1ub25saXRlcmFsCgkgIC1XZm9ybWF0LXNlY3VyaXR5CgkgIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgLVdjYXN0LWFsaWduCgkgIC1XaW5saW5lCgkgIC1XaW5pdC1zZWxmCgkgIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMKCSAgLVdhZGRyZXNzCgkgIC1XYWdncmVnYXRlLXJldHVybgoJICAtV25vLW11bHRpY2hhcgoJICAtV25lc3RlZC1leHRlcm5zCgoyMDEwLTAzLTAyIDIyOjU4OjA2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5oOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBGaXhlcyBmb3IgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcwoJICBBbHNvIGFkZHMgdGhvc2UgZmxhZ3MgdG8gdGhlIGNvbmZpZ3VyZSB3YXJuaW5nIGZsYWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTEgMDk6Mzk6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBwcmludGYgZm9ybWF0CgkgIFVzZSAldSB0byBwcmludCB1bnNpZ25lZCBpbnRlZ2Vycy4KCjIwMTAtMDMtMTEgMTA6Mjk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdGVzdHM6IGNhc3QgdGhlIGFyZy4gdG8gZml4IHRoZSBidWlsZCB3aXRoIG5ldyBjb21waWxlciBvcHRzLgoJICBUaGlzIGlzIHVnbHkuIEkgYW0gbm90IHN1cmUgaWYgd2UgcmVhbGx5IHdhbnQgdG8gaGF2ZSBzdWNoIGNhc3RzIGFsbCBvdmVyIHRoZQoJICBwbGFjZS4KCjIwMTAtMDMtMTEgMTA6MTQ6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBpMThuOiBkZWZpbmUgZHVtbXkgbmdldHRleHQgaWYgaTE4biBpcyBkaXNhYmxlZC4KCSAgV2UgY2Fubm90IGJsaW5kbHkgdXNlIGdldHRleHQgZnVuY3Rpb24gYW5kIG5vdCBkZWZpbmUgdGhlbSB3aGVuIG5vdCB1c2luZyBnZXR0ZXh0LgoKMjAxMC0wMy0xMSAxMDowMDo0NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGkxOG46IGZpeCB0aGUgYnVpbGQgd2l0aCBpMThuIGRpc2FibGVkLgoJICBEb24ndCBpbmNsdWRlIGdldHRleHQuaCBpZiAhRU5BQkxFX05MUy4KCjIwMTAtMDMtMDQgMTA6NDQ6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFsbG93IGNvbmZpZ3VyYWJsZSBtZW1vcnkgYWxpZ25tZW50LiBGaXhlcyAjNTk2ODMyCgkgIFRoZSBhbGlnbm1lbnQgZ3VhcmFudGVlZCBieSBtYWxsb2MgaXMgbm90IGFsd2F5cyBzdWZmaWNpZW50LiBFLmcuIHZlY3RvcgoJICBpbnN0cnVjdGlvbnMgb3IgaGFyZHdhcmUgc3Vic3lzdGVtcyB3YW50IHNwZWNpZmljYWxseSBhbGlnbmVkIGJ1ZmZlcnMuIFRoZQoJICBhdHRhY2hlZCBwYXRjaCB3aWxsIHVzZSBwb3NpeF9tZW1hbGlnbiBpZiBhdmFpbGFibGUgdG8gYWxsb2NhdGUgYnVmZmVycy4KCSAgVGhlIGRlc2lyZWQgYWxpZ25tZW50IGNhbiBiZSBzZXQgd2hlbiBydW5uaW5nIGNvbmZpZ3VyZSB1c2luZyB0aGUgbmV3CgkgIC0td2l0aC1idWZmZXItYWxpZ25tZW50IG9wdGlvbi4KCjIwMTAtMDMtMTAgMjE6NTE6NTAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTcyMGE3ZCB0byBkZjhhN2M4CgoyMDEwLTAzLTEwIDIwOjUyOjA2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJICBNZXJnZSBicmFuY2ggJ3dvcmsnCgoyMDEwLTAzLTAzIDExOjQ1OjM4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgRml4ZXMgZm9yIC1Xd3JpdGUtc3RyaW5ncwoJICBUaGlzIGNoYW5nZXMgc29tZSBBUElzIGluIGNvbXBhdGlibGUgd2F5czoKCSAgLSBTb21lIGZ1bmN0aW9ucyBub3cgdGFrZSAiY29uc3QgY2hhciAqIiBhcmd1bWVudHMsIG5vdCAiY2hhciAqIgoJICAtIFNvbWUgc3RydWN0cyBub3cgaGF2ZSAiY29udHMgY2hhciAqIiBtZW1iZXJzLCBub3QgImNoYXIgKiIKCSAgVGhlIGNoYW5nZXMgbWF5IGNhdXNlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHdpdGggdGhlIHJpZ2h0IHdhcm5pbmcKCSAgZmxhZ3MuIFlvdSd2ZSBiZWVuIHdhcm5lZC4KCSAgQWxzbyBhZGRzIC1Xd3JpdGUtc3RyaW5ncyBhcyBhIHdhcm5pbmcgZmxhZyBpbiBjb25maWd1cmUuYWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDMgMTA6MzE6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgRml4ZXMgLVd1bmRlZiB3YXJuaW5ncwoJICAuLi4gYW5kIGFkZHMgdGhhdCBmbGFnIHRvIGNvbmZpZ3VyZS5hYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjMxOjA1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogUmVtb3ZlIHVubmVlZGVkIGdfdGhyZWFkX2V4aXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjI2OjE0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEZpeGVzIGZvciAtV29sZC1zdHlsZS1kZWZpbml0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDIgMjM6NTE6MTggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSAgTWFrZSBjb2RlIHNhZmUgZm9yIC1XcmVkdW5kYW50LWRlY2xzCgkgIEFkZHMgdGhhdCB3YXJuaW5nIHRvIGNvbmZpZ3VyZS5hYwoJICBJbmNsdWRlcyBhIHRpbnkgY2hhbmdlIG9mIHRoZSBHU1RfQk9JTEVSUExBVEVfRlVMTCgpIG1hY3JvOgoJICBUaGUgZ2V0X3R5cGUoKSBmdW5jdGlvbiBpcyBubyBsb25nZXIgZGVjbGFyZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMjA6NDM6MzUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMGI2ZTA3MiB0byA5NzIwYTdkCgoyMDEwLTAzLTAzIDEwOjAwOjQxICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1ha2Ugc3VyZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IHJ1biB3aXRoIC1XZXJyb3IKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAxNzowMzoyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBVcGRhdGUgdG8gY29tbW9uLyBjaGFuZ2VzIHRvIEVSUk9SX0NGTEFHUwoKMjAxMC0wMy0xMCAxOToxNzo0MiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIFJldmVydCAicmVnaXN0cnk6IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24iCgkgIFR1cm5zIG91dCAgdGhlIGZ1bmN0aW9uIGlzIG5vdCB1bnVzZWQsIGJ1dCB3YXMgaW4gYW4gI2lmZGVmIFdJTjMyCgkgIHNlY3Rpb24uCgkgIFdob29wcy4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1N2Q1ZGI0MjRjNjhhYjVhNjFmMzNjZTM2Y2UwMTc5ZWIzMDI1MWFjLgoKMjAxMC0wMy0xMCAxNjowOTozMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3Y2M1ZWI0IHRvIDBiNmUwNzIKCjIwMTAtMDMtMDIgMjE6MDc6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoJICBBY3R1YWxseSwgdGhlcmUgd2FzIHR3byBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLCBidXQgb25seSBvbmUgd2FzCgkgIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMDIgMTY6MjA6MTUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW1vdmUgdW51c2VkIGdzdF9lbGVtZW50X2RlZmF1bHRfZXJyb3IoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDA3OjE1OjE1ICswMDAwICBKZXJlbXkgSHVkZGxlc3RvbiA8amVyZW15aHVAZnJlZWRlc2t0b3Aub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgbXVscSBpbnN0ZWFkIG9mIG11bCBhcyBzb21lIGFzc2VtYmxlcnMgY2FuJ3QgZ3Vlc3MgdGhlIHNpemUgb2YgdGhlIG9wZXJhbmRzCgkgIEZpeGVzIGJ1ZyAjNjEyMzcwLgoKMjAxMC0wMy0xMCAwMTowOToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdhYTY1YjUgdG8gN2NjNWViNAoKMjAxMC0wMy0wOSAyMToyMDoyNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ0ZWNjZTcgdG8gN2FhNjViNQoKMjAxMC0wMi0yNiAxNjowMzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IE1ha2Ugc29tZSBtb3JlIHJ1bGVzIHNpbGVudCBpZiByZXF1ZXN0ZWQKCjIwMTAtMDItMjYgMTU6MzI6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBhdXRvbWFrZSAxLjExIHNpbGVudCBydWxlcyBpbnN0ZWFkIG9mIHNoYXZlIGlmIGF2YWlsYWJsZQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSB1c2Ugc29tZXRoaW5nIHRoYXQgaXMgc3RpbGwgbWFpbnRhaW5lZCBhbmQKCSAgYWxzbyBicmluZ3MgYmFjayBsaWJ0b29sIDEuNSBzdXBwb3J0LgoKMjAxMC0wMi0yMiAxNjoyNTo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogT3B0aW1pemUgZ2V0X3ZhbHVlX2FycmF5KCkKCSAgRG9uJ3QgY29udmVydCBmcm9tIEdWYWx1ZSB0byB0aGUgYWN0dWFsIHR5cGUgZm9yIGV2ZXJ5IHNpbmdsZQoJICB2YWx1ZS4KCjIwMTAtMDItMjIgMTU6MTg6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBPcHRpbWl6ZSBnZXRfdmFsdWVfYXJyYXkoKQoJICBUaGlzIG1ha2VzIGl0ID4xMHggZmFzdGVyIGlmIG1vcmUgdGhhbiBhIHNpbmdsZSB2YWx1ZSBpcyByZXF1ZXN0ZWQKCSAgYnkgbm90IHNlYXJjaGluZyBpbiB0aGUgR1NlcXVlbmNlIGZvciBldmVyeSB2YWx1ZSBhbmQgY29udmVydGluZwoJICB0aGUgdmFsdWUgZnJvbSBHVmFsdWUgdG8gdGhlIHJlYWwgdmFsdWUgdHlwZS4KCjIwMTAtMDItMjEgMTc6MzY6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBiZW5jaG1hcmsgZm9yIGdldHRpbmcgYSB2YWx1ZSBhcnJheSBvZiB0aGUgY29udHJvbCBwb2ludHMKCjIwMTAtMDMtMDggMjM6Mjg6MDQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgRml4IHR5cG9zIGluIGRvY3VtZW50YXRpb24KCjIwMTAtMDMtMDggMjM6MDQ6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBjYXBzOiBGYWlsIHdoZW4gZnJhY3Rpb25zIGFyZSBmb2xsb3dlZCBieSByYW5kb20gdGV4dAoJICBQcmV2aW91cyBjb2RlIHRyZWF0ZWQgIjEvMXlvdXJtb20iIHRoZSBzYW1lIGFzICIxLzEiIGFuZCAiMXdpbXNtb20iIHRoZQoJICBzYW1lIGFzICIxIi4gTm93IHRoZSBjb2RlIGlzIHN0cmljdGVyIGFuZCB3aWxsIGZhaWwgdG8gY29udmVydCBhCgkgIGZyYWN0aW9uIHdoZW4gZm9sbG93ZWQgYnkgZ2FyYmFnZSB0ZXh0LgoKMjAxMC0wMy0wOSAxNzozMjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjI4ID09PQoKMjAxMC0wMy0wOCAyMzowOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjgKCjIwMTAtMDMtMDggMjM6MDY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAzLTA4IDIyOjA1OjI5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgY2FwczogQWxsb3cgMS9tYXggYXMgdGhlIG1pbmltYWwgZnJhY3Rpb24gdmFsdWUgPiAwCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBmb3JtYXRzIHRoYXQgcmVxdWlyZSBhIHZhbGlkIGZyYW1lcmF0ZSAobGlrZQoJICB0aGVvcmFlbmMpLgoKMjAxMC0wMy0wNCAxNToyMTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgo9PT0gcmVsZWFzZSAwLjEwLjI3ID09PQoKMjAxMC0wMy0wNSAyMzo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjcKCjIwMTAtMDMtMDUgMjM6NDE6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAzLTA0IDE4OjM5OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IGRvbid0IHBhc3Mgbm9uLW9iamVjdHMgYXMgZmlyc3QgYXJndW1lbnQgdG8gR1NUX0RFQlVHX09CSkVDVCgpCgkgIFRoaXMgbWF5IGNhdXNlIGNyYXNoZXMgd2hlbiBsb2dnaW5nIGlzIGVuYWJsZWQsIGVzcGVjaWFsbHkgb24gd2luZG93cy4KCSAgSXQncyBub3Qgc2FmZSB0byBwYXNzIHJhbmRvbSBwb2ludGVycyB0byBnX3R5cGVfY2hlY2tfaW5zdGFuY2VfaXNfYSgpLgoJICBGaXhlcyAjNjExNzE5LgoKMjAxMC0wMy0wMyAxOTo1NDo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi40IHByZS1yZWxlYXNlCgoyMDEwLTAzLTAzIDE5OjQ5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDMtMDMgMTI6MDY6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGRvY3M6IGZpeCB1cCBieXRld3JpdGVyIGRvYyBjaHVua3MgZm9yIGZsb2F0IGZ1bmN0aW9ucyBhcyB3ZWxsCgoyMDEwLTAzLTAzIDExOjI4OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBmaXggaGVhZGVycyBmb3IgZmxvYXQvZG91YmxlIHdyaXRpbmcgZnVuY3Rpb25zCgkgIFRoZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBnc3RfYnl0ZV93cml0ZXJfcHV0X3tmbG9hdDMyfGZsb2F0NjR9XyooKSBhbmQgbm90CgkgIGdzdF9ieXRlX3dyaXRlcl9wdXRfe2Zsb2F0fGRvdWJsZX1fKigpLgoJICBTcG90dGVkIGJ5OiBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoyMDEwLTAzLTAxIDEyOjAyOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IHRyeSB0byBtYWtlIGNvbW1lbnQgZm9yIHRyYW5zbGF0b3JzIG1vcmUgaGVscGZ1bAoKMjAxMC0wMi0yNiAxNTo0Njo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggZW1lcmdlbmN5IHJlbmRlcmluZyB0aW1lc3RhbXAgdHJhY2tpbmcKCSAgU3BlY2lmaWNhbGx5LCBpZiBhbGwgKGluY2x1ZGluZyBpbml0aWFsKSBidWZmZXJzIHR1cm4gdXAgbGF0ZSwKCSAgZW1lcmdlbmN5IHJlbmRlcmluZyBzaG91bGQgYWxzbyBraWNrIGluIGFwcHJvcHJpYXRlbHkuCgkgIEZpeGVzICM2MTEwODcuCgoyMDEwLTAyLTI0IDAwOjMwOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDItMjQgMDA6Mjk6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ubC5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDItMTkgMTM6MjY6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IERvbid0IHBhc3MgTlVMTCBwb2ludGVycyB0byBHU2VxdWVuY2UgQVBJCgkgIFRoaXMgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlcy4gRml4ZXMgYnVnICM2MTA0NDQuCgoyMDEwLTAyLTE5IDEzOjIwOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogQWRkIGNvbnN0IHF1YWxpZmllcnMgdG8gdmFsdWVzIGluIHRoZSBfc2V0IGZ1bmN0aW9ucwoJICBUaGUgdmFsdWVzIGFyZSBub3QgbW9kaWZpZWQgYW5kIGFyZSBjb3BpZWQsIGEgY29uc3QgYmVmb3JlIHRoZSBwYXJhbWV0ZXIKCSAgc2hvdWxkIG1ha2UgdGhpcyBldmVuIG1vcmUgb2J2aW91cy4KCjIwMTAtMDItMTggMDk6MTc6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgY29udHJvbGxlcjogQWRkIHNvbWUgRklYTUUgMC4xMSBjb21tZW50cwoKMjAxMC0wMi0xNyAxMDowNDo1NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGNvcmVsZW1lbnRzOiBDb21iaW5lIHJlZHVuZGFudCBjb2RlCgoyMDEwLTAyLTE3IDAxOjI3OjIyICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBmZHNpbmsgYW5kIGZkc3JjIHdpdGggTVNWQwoKMjAxMC0wMi0xOCAxNDo1ODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL3ZpLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuMiBwcmUtcmVsZWFzZQoKMjAxMC0wMi0xOCAxMzoxMjozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIHNvbWUgbW9yZSB0ZW1wb3JhcnkgZG9jcyBjcnVmdAoKMjAxMC0wMi0xOCAxMzowOToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGZpeCBpbmRlbnRpbmcgaW4gd2luMzItdXBkYXRlIHRhcmdldAoJICBObyBpZGVhIHdoeSB3ZSBuZWVkIHRvIHJ1biBnc3QtaW5kZW50IHR3aWNlIG9uIHRoYXQgZmlsZSwgYnV0IGl0CgkgIG9ubHkgc2VlbXMgdG8gc2V0dGxlIG9uIGEgZmluYWwgZm9ybWF0IHdpdGggbWluaW1hbCBkaWZmIHRvIHRoZQoJICBvbmUgaW4gZ2l0IGFmdGVyIHR3byBydW5zLgoKMjAxMC0wMi0xOCAxMzowODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogbW9yZSBkZWJ1ZyBsb2dnaW5nIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTAtMDItMTggMTE6NTI6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogSW1wcm92ZSBkb2NzIGFib3V0ICdkYXRhJyBhdHRyaWJ1dGUKCSAgQWRkcyBhIHJlbWluZGVyIHRvICdkYXRhJyBhdHRyaWJ1dGUgZG9jCgkgIEZpeGVzICM2MTAzNjYKCjIwMTAtMDItMTggMTc6MTU6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBtZW1pbmRleDogYXZvaWQgYnVzeSBsb29wIHdoZW4gZG9pbmcgRVhBQ1QgbG9va3VwCgkgIEZpeGVzICM2MTAzNjcuCgoyMDA5LTEyLTIyIDExOjA5OjEwICswODAwICBKb2hhbiBCaWxpZW4gPGpvYmlAbGl0bC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlCgkgIHN0YXRlIGFuZCBwZW5kaW5nIGFyZSAib3V0IiBhcmd1bWVudHMuCgkgIEZpeGVzICM2MDUxODkuCgoyMDEwLTAyLTE3IDEyOjE2OjM3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBmaWxlc3JjOiBEb24ndCB1c2UgZXhwZW5zaXZlIGNhc3QgY2hlY2tzIGluIF9jcmVhdGUKCSAgX2NyZWF0ZSgpIGlzIGEgcGFkIGZ1bmN0aW9uIHNldCBieSBvdXJzZWx2ZXMsIHRoZXJlZm9yZSB3ZSdyZSBzdXJlIGJhc2VzcmMKCSAgaXMgYSBHc3RGaWxlU3JjLgoJICBTcGVlZHMgdXAgX2NyZWF0ZSgpIGJ5IDE3JSBhbmQgdGhlIHRvdGFsIGNhbGwgYnkgOCUgKGluc3RydWN0aW9uIGNhbGxzIG1lYXN1cmVtZW50cwoJICBkb25lIHdpdGggdmFsZ3JpbmQpLgoJICBGaXhlcyAjNjEwMjQ2CgoyMDEwLTAyLTE3IDEyOjE0OjA5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IERvbid0IHVzZSBleHBlbnNpdmUgY2FzdCBjaGVja3MgaW4gZ2V0X3JhbmdlLgoJICBfZ2V0X3JhbmdlKCkgaXMgYSBwYWQgZnVuY3Rpb24gc2V0IGJ5IG91cnNlbHZlcywgdGhlcmVmb3JlIHdlJ3JlIGNlcnRhaW4gdGhhdAoJICB0aGUgcGFyZW50IGlzIGEgR3N0QmFzZVNyYy4KCSAgU3BlZWRzIHVwIF9nZXRfcmFuZ2UgYnkgMzglLCBhbmQgdGhlIHRvdGFsIGNhbGwgYnkgMzAlLiAodmFsZ3JpbmQgaW5zdHJ1Y3Rpb24KCSAgY2FsbHMgbWVhc3VyZW1lbnRzKS4KCSAgRml4ZXMgIzYxMDI0NgoKMjAxMC0wMi0xNyAxMTozMTowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogY2xlYW51cCBwYXJhbWV0ZXIgaW5pdGlhbGlzYXRpb24gYW5kIGFkZCBjb21lbW50K2xvZ2dpbmcKCSAgSW5pdGlhbGl6ZSBuZXdfZmQgd2l0aCBERUZBVUxUX0ZEIGFuZCBmZCB3aXRoIC0xLiBTZXR0aW5nIHRoZSBwcm9wZXJ0eSB3aWxsIHNldAoJICBuZXdfZmQgYW5kIGluIF91cGRhdGVfZmQoKSB3ZSBjZWhjayBmZCBhZ2FpbnN0IC0xLiBBbHNvIGFkZCBhIGNvbWVudCBhYm91dCB0aGUKCSAgd2FybmluZyB3ZSBnZXQgaW4gdGhlIGxvZyBmcm9tIGdzdF9wb2xsX3JlbW92ZV9mZCgpLiBXZSBjb3VsZCBnZXQgcmlkIG9mIHRoZQoJICB3YXJuaW5nIGlmIHdlIHdhbnQgYnkgdHJhY2tpbmcgaWYgZmQgaGFzIGJlZW4gYWRkZWQgdG8gZmRzZXQuCgoyMDEwLTAyLTE3IDA5OjU1OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkgIGRlc2lnbjogd3JpdGUgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGFnLWhhbmRsaW5nCgkgIERvY3VtZW50IHRoZSB0YWdoYW5kbGluZyBpbiBnc3RyZWFtZXIuIExpc3QgZ2FwcyBhbmQgcHJvcG9zZSBuZXcgbWVjaGFuaXNtcyB0bwoJICBkZWFsIHdpdGggdGhlbS4KCjIwMTAtMDItMTYgMTA6Mjc6MTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBibGFuayBsaW5lcyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMTAtMDItMTYgMTE6MzA6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogdG9vbHMvdG9vbHMuaDoKCSAgdG9vbHM6IGNhbGwgZ19zZXRfcHJnbmFtZSgpIGJlZm9yZSBkb2luZyB0aGUgb3B0aW9uIHBhcnNpbmcKCSAgZ19zZXRwcmduYW1lIGlzIGltcGxpY2l0bHkgY2FsbGVkIGJ5IGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgd2l0aCBhIGNoZWNrCgkgIHRvIHNlZSBpZiBpdCdzIGJlZW4gc2V0IGFscmVhZHksIHNvIHNldCBpdCBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKQoJICBNb3ZlIHZlcnNpb24gcHJpbnRpbmcgYmFjayB1bnRpbCBhZnRlciB0aGUgb3B0aW9ucyBoYXZlIGJlZW4gcGFyc2VkLAoJICBvdGhlcndpc2UgaXQgd29uJ3Qgd29yaywgc2luY2UgaXQgZXZhbHVhdGVzIGEgZmxhZyBzZXQgYnkgdGhlCgkgIG9wdGlvbiBwYXJzZXIuCgoyMDEwLTAyLTE2IDExOjI0OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJ0b29sczogTW92ZSBnc3RfdG9vbHNfcHJpbnRfdmVyc2lvbiBjYWxsIHRvIGF2b2lkIHdhcm5pbmcgZnJvbSBuZXcgR0xpYi4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTNkZDk1ZjAyZWYzZmE1MzBmNTRjZTgxZThmZmJhOTZmM2I2NzljYi4KCSAgVGhpcyBjb21taXQgbWFkZSAtLXZlcnNpb24gbm90IHdvcmsgYW55IGxvbmdlci4gVGhlIGdfc2V0cHJnbmFtZSgpCgkgIHdhcm5pbmcgaXMgZml4ZWQgaW4gcmVjZW50IEdMaWIgdmVyc2lvbnMuCgoyMDEwLTAyLTE2IDA4OjI2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBidWlsZDogbWFrZSBzdXJlIGdzdC1wbHVnaW4tc2Nhbm5lciBnZXRzIGluc3RhbGxlZCB3aGVyZSB3ZSBleHBlY3QgaXQKCSAgQWRkIGNoZWNrIHRvIG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgcmVhbGx5IGdldHMgaW5zdGFsbGVkIHdoZXJlCgkgIHdlIHdpbGwgbG9vayBmb3IgaXQgbGF0ZXIsIGllLiBwYXRocyBhbmQgcHJlZml4ZXMgYXJlIHNldCBhdCBjb25maWd1cmUKCSAgdGltZSBhbmQgbm90IHNwZWNpZmllZCB2aWEgbWFrZS4KCSAgRml4ZXMgIzYwOTk0MS4KCjIwMTAtMDItMTUgMjM6MDI6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGRvY3M6IHByZWZlciBzaG9ydCBkZXNjIGZyb20gR3N0RWxlbWVudERldGFpbHMKCjIwMTAtMDItMTUgMDE6MjQ6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZG9jczogZml4IGd0ay1kb2MgY2h1bmsgZm9yIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QoKQoKMjAxMC0wMi0xMyAxNToyODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kYXRhdXJpc3JjLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBkYXRhdXJpc3JjCgkgIFJlcXVpcmVzIGZpeGVzIGZyb20gY29yZSBnaXQsIHNvIGJ1bXAgY29yZSByZXF1aXJlbWVudCB0byBnaXQgYXMgd2VsbC4KCjIwMTAtMDItMTUgMDA6MzE6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHBvIGZpbGVzIGZvciBuZXcgY29tbWVudHMKCjIwMTAtMDItMTUgMDA6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogd3JhcCBsb25nIHN0cmluZyBjb25zdGFudHMKCSAgQW5kIGZpeCBpbmRlbnRpbmcgaXNzdWUKCjIwMTAtMDItMTUgMDA6MjE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogYWRkIHNvbWUgY29tbWVudHMgZm9yIHRyYW5zbGF0b3JzIHNvIHRhZyBtbmVtb25pY3MgZ2V0IHRyYW5zbGF0ZWQgY29ycmVjdGx5CgkgIFdlIHdhbnQgJ3ByZXZpZXcgaW1hZ2UnIHRyYW5zbGF0ZWQgYXMgYSBub3VuLCBub3QgYXMgJ3ByZXZpZXcgW3RoZV0gaW1hZ2UnLgoKMjAxMC0wMi0wNCAxNzo0MzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHJpbnQgV0FSTiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBub3JtYWwgdGhpbmdzIGxpa2UgRU9TCgoyMDEwLTAyLTE0IDIzOjE1OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTZkYzc5MyB0byA0NGVjY2U3CgoyMDEwLTAyLTEzIDE1OjE4OjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlc2V0IHRoZSB3b3JraW5nIG1vZGUgd2hlbiBnb2luZyB0byBSRUFEWS9OVUxMCgkgIFRoaXMgYWxsb3dzIHByb3Blcmx5IHJlLXVzaW5nIHR5cGVmaW5kIChlbHNlIGl0IHdvdWxkIHRoaW5rIGl0J3MKCSAgYWxyZWFkeSBkb25lIHRoZSB0eXBlZmluZGluZyB3aGVuIGJlaW5nIHJlLXVzZWQgd2l0aCBhbm90aGVyCgkgIHN0cmVhbSkuCgoyMDEwLTAxLTIyIDExOjM4OjU5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBZGRzIGEgdGVzdCBmb3IgX2ZpbGwKCjIwMTAtMDEtMjIgMDk6MTk6MzEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGV3cml0ZXI6IGFkZCBfZmlsbCBmdW5jdGlvbgoJICBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIEdzdEJ5dGVXcml0ZXIgdGhhdCB3cml0ZXMKCSAgYSBjb25zdGFudCB2YWx1ZSB0byBhIG1lbW9yeSBhcmVhIChha2EgbWVtc2V0KS4KCSAgVXNlZnVsIGZvciBhZGRpbmcgcGFkZGluZyB0byBidWZmZXJzLgoJICBBbHNvIHVwZGF0ZXMgLmRlZiBmaWxlIGFuZCBkb2NzLgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9maWxsKCkKCjIwMTAtMDEtMjggMTE6NTc6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEF2b2lkIG1lc3NpbmcgcGFkcyBhY3RpdmF0aW9uCgkgIFR5cGVmaW5kIG1pZ2h0IG1lc3MgdXAgcGFkcyBtb2RlcyAocHVsbC9wdXNoKSBpZiBhCgkgIGRvd25zdHJlYW0gZWxlbWVudCBpcyBwbHVnZ2VkIGFuZCBpdHMgcGFkcyBhY3RpdmF0ZWQKCSAgaW4gJ3N0ZXAgMicgb2YgdHlwZWZpbmQgcGFkcyBhY3RpdmF0aW9uLgoJICBUaGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUgZm9sbG93aW5nIHN0ZXBzIGRvbid0IGNoZWNrCgkgIGlmIHdlIGFscmVhZHkgZW1pdHRlZCB0eXBlZm91bmQgZHVlIHRvIHVwc3RyZWFtIHNldHRpbmcKCSAgY2FwcyBvbiBidWZmZXJzIGJlaW5nIHB1bGxlZCBpbiB0aGUgdHlwZWZpbmQgaGVscGVycy4KCSAgQXZvaWQgdGhhdCBieSBjaGVja2luZyBpZiB0eXBlZm91bmQgaXMgYWxyZWFkeSBlbW1pdGVkLgoJICBGaXhlcyAjNjA4MDM2CgoyMDEwLTAyLTEyIDE0OjQ5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogTWFrZSBsb2NraW5nIG9mIHRoZSBzZWdtZW50IGEgYml0IG1vcmUgc3RyaWN0IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoJICBVcGRhdGluZyB0aGUgc2VnbWVudCB2YWx1ZXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hpbGUgaG9sZGluZyB0aGUKCSAgU1RSRUFNX0xPQ0sgYW5kIE9CSkVDVF9MT0NLLiBUaGlzIG1lYW5zLCByZWFkaW5nIGNhbiBiZSBkb25lIGFzCgkgIGxvbmcgYXMgb25lIG9mIHRoZW0gaXMgaGVsZCwgbm90IGJvdGgsIHdoaWNoIHJlbW92ZXMgc29tZSBsb2NrLXVubG9jawoJICBibG9ja3MgZnJvbSBwZXJmb3JtYW5jZSBjcml0aWNhbCBjb2RlIHBhdGhzLgoJICBBbHNvIGRvY3VtZW50LCB0aGF0IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkgKm11c3QqIGJlIGNhbGxlZCBpbgoJICBzdGF0ZXMgPD0gUkVBRFkgYW5kIGFkZCBhbiBhc3NlcnRpb24gZm9yIHRoaXMuIENoYW5naW5nIHRoZSBmb3JtYXQKCSAgbGF0ZXIgd2lsbCBjb21wbGV0ZWx5IG1lc3MgdXAgdGhlIHNlZ21lbnQgaW5mb3JtYXRpb24uCgoyMDEwLTAyLTA4IDA5OjEyOjAxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgcHdnOiBzZXZlcmFsIHR5cG8gZml4ZXMKCSAgRml4ZXMgIzYwOTI4Ni4KCjIwMTAtMDItMDkgMTc6NTI6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFByb3RlY3Qgc2VnbWVudCB2YWx1ZXMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIFRoaXMgY291bGQgaGFwcGVuIGVhc2lseSBpbiB0aGUgcXVlcnkgZnVuY3Rpb25zIG9yIHdoZW4gdGhlIHNpemUgaXMgc2V0CgkgIG9uIGFwcHNyYyBmcm9tIHNvbWUgbm9uLXN0cmVhbWluZyB0aHJlYWQuCgoyMDEwLTAyLTA0IDIxOjExOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogUHJvdGVjdCBpbnRlcm5hbCBmaWVsZHMgZnJvbSBjb25jdXJyZW50IGNoYW5nZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwoJICBGaXhlcyBidWcgIzYwODg3Ny4KCjIwMTAtMDItMTEgMjA6MTQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCBsZWFrIHRpbWVvdXQgR1NvdXJjZQoKMjAxMC0wMi0xMSAwMDoxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBmbGVzaCBvdXQgcmVsZWFzZSBkb2Mgc29tZSBtb3JlCgoyMDEwLTAyLTExIDAxOjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgTUFJTlRBSU5FUlMsIGFkZCBteXNlbGYKCjIwMTAtMDItMTEgMTk6NDk6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCSAgU2x1c2h5IGZyZWV6ZSByZW1haW5zIGluIGVmZmVjdC4KCj09PSByZWxlYXNlIDAuMTAuMjYgPT09CgoyMDEwLTAyLTEwIDE5OjE3OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjYKCjIwMTAtMDItMTAgMTU6MzI6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAyLTA5IDE1OjUyOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBkZWZpbmUgR1NUX1BMVUdJTl9TQ0FOTkVSX0lOU1RBTExFRCBpbiB3aW4zMiBjb25maWcuaAoJICBFdmVuIGlmIGl0J3Mgbm90IHVzZWQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIHRoaW5ncyB0bwoJICBjb21waWxlLgoKMjAxMC0wMi0wOSAxMDoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IE1TVkMgZG9lc24ndCBzZWVtIHRvIGxpa2UgI3dhcm5pbmcKCSAgVmlzdWFsIFN0dWRpbyBjb21wbGFpbnMgYWJvdXQgImludmFsaWQgcHJlcHJvY2Vzc29yIGNvbW1hbmQgJ3dhcm5pbmcnIgoJICBldmVuIGlmIHRoZSBpZmRlZiBkb2Vzbid0IHRyaWdnZXIsIHNvIGp1c3QgcmVtb3ZlIHRoaXMgYWdhaW4uCgoyMDEwLTAyLTEwIDE0OjQwOjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogRml4IG11bHRpcXVldWUgdGVzdCBmb3IgbGF0ZXN0IGNvbW1pdHMuCgkgIFRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGZhY3QgdGhhdCBtdWx0aXF1ZXVlIHdpbGwgbm93IG9wZXJhdGUgc29tZXdoYXQKCSAgc2ltaWxhcmx5IHRvIHRoZSBmbG93IGFnZ3JlZ2F0aW9uIGxvZ2ljIG9mIGRlbXV4ZXJzIGFuZCB0aGVyZWZvcmUKCSAgd2lsbCBzdG9wcCB3aGVuZXZlciBhbGwgZG93bnN0cmVhbSBwYWRzIHJldHVybiBOT1RfTElOS0VEIGFuZC9vcgoJICBVTkVYUEVDVEVEIGFuZCB0aGVyZSdzIG5vIG1vcmUgYnVmZmVycyB0byBwdXNoLgoJICBUaGUgbGF0ZXN0IGNvbW1pdHMgc2hvdWxkIG5vdCBhZmZlY3QgYW55IHJlZ3VsYXIgdXNlLWNhc2UsIGJ1dCB0aGUgYnVnCgkgIHJlcG9ydCB3aWxsIGJlIGtlcHQgb3BlbiBzbyB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIGNhbiBiZSByZS1lc3RhYmxpc2hlZAoJICBpZiBuZWVkZWQuCgkgIEZpeGVzICM2MDk0ODYKCjIwMTAtMDItMDkgMTU6NTE6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3Qgc3RvcCB0aHJlYWRzIG9uIFVORVhQRUNURUQgYW5kIGZvcndhcmQgZmxvdyByZXR1cm5zLgoJICBXaGVuIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgR1NUX0ZMT1dfVU5FWFBFQ1RFRCB3ZSB3YW50IHRvOgoJICAqIGxldCB0aGUgZGF0YXF1ZXVlIHRhc2sgcnVubmluZwoJICAqIGZvcndhcmQgdGhlIGZsb3cgcmV0dXJuIHVwc3RyZWFtLgoJICBUaGlzIGFsbG93cyB1cHN0cmVhbSBlbGVtZW50cyB0byBwdXNoIEVPUywgYW5kIGhhdmUgdGhhdCBFT1MgZXZlbnQgY29tZQoJICBkb3duc3RyZWFtLgoJICBGaXhlcyAjNjA5Mjc0CgoyMDEwLTAyLTA5IDEzOjM1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmV2ZXJ0ICJtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmYmRmNGRjZWRhZDg2OTJmMWUzZDg4Mzg1NTExODg5ODdlNDYyZTc0LgoJICBQYXJ0bHkgZml4ZXMgIzYwOTI3NAoKMjAxMC0wMS0yOCAwNzoyNzo0OSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiBGaXggaXNzdWVzCgoyMDEwLTAyLTA3IDA5OjU5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIFJldmVydCAiZG9jczogZml4IEFTQ0lJIGFydCBzbyB0aGF0IGl0ZXJhdG9ycyBhcmUgYWxpZ25lZCBwcm9wZXJ0eSB0byB0aGUgZGlhZ3JhbSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhZTYwZDA2ZTllNDAxZDFlZDRkZTVlZjI1YjVjMjgzZGIwNjk2YTMxIChmaXhlczogIzYwOTE2NikKCjIwMTAtMDItMDQgMTg6MzA6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjUuMyBwcmUtcmVsZWFzZQoKMjAxMC0wMi0wNCAxNzo0NTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdHJhbnNsYXRpb24gdXBkYXRlcwoKMjAxMC0wMi0wMSAxMjo1MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtCgoyMDEwLTAyLTAxIDE3OjQwOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBnc3RieXRld3JpdGVyOiBGaXggZGlmZmVyZW50IGZ1bmN0aW9uIG5hbWVzIGluIC5oIGFuZCAuYwoJICBnc3RfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9idWZmZXIgd2Fzbid0IGRlY2xhcmVkCgkgIGluIC5oLCBpbnN0ZWFkIHRoZXJlIHdhcyBfcmVzZXRfYW5kX2dldF9kYXRhX2FzX2J1ZmZlci4KCSAgUmVwbGFjZSBpdCB3aXRoIHRoZSByZWFsIGZ1bmN0aW9uIG5hbWUsIHRoYXQgaXMgc21hbGxlcgoJICBhbmQgbWF0Y2hlcyBnc3RfYnl0ZV93cml0ZXJfZnJlZV9hbmRfZ2V0X2J1ZmZlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4NzI2CgoyMDEwLTAxLTMxIDE3OjMwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgU2luY2U6IG1hcmtlcnMgdG8gYnVmZmVyIGxpc3QgZG9jcwoKMjAxMC0wMS0zMCAxODo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZml4IHR5cG8gaW4gd2FybmluZyBtZXNzYWdlCgkgIFNwb3R0ZWQgYnkgYnNyZWVyZW5qQGdtYWlsLmNvbS4KCSAgRml4ZXMgIzYwODQ0Mi4KCjIwMTAtMDEtMzAgMTU6MTc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNWQ0N2E2IHRvIDk2ZGM3OTMKCjIwMTAtMDEtMzAgMTM6NDU6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBkb24ndCBzcGV3IHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KClzIGlmIEdMaWIgPj0gMi4yMy4yCgkgIExhdGUgZ190aHJlYWRfaW5pdCgpIGlzIGZpbmUgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zIGFuZCBkb25lIGF1dG9tYXRpY2FsbHkKCSAgZnJvbSBnX3R5cGVfaW5pdCgpIHRoZXJlLCBzbyBkb24ndCB3YXJuIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXNuJ3QgY2FsbGVkCgkgIGdfdGhyZWFkX2luaXQoKSB5ZXQgd2hlbiBnc3RfaW5pdCgpIGlzIGNhbGxlZCB3aXRoIG5ldyBHTGliIHZlcnNpb25zLgoJICBGaXhlcyAjNjA4Mzk4LgoKMjAxMC0wMS0yOSAwOTo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IGRvbid0IHB1dCAtREdfVEhSRUFEU19NQU5EQVRPUlkgaW50byBvdXIgcGtnLWNvbmZpZyBDRkxBR1MKCSAgSWYgd2UgZm9yY2UgLURHX1RIUkVBRFNfTUFOREFUT1JZIG9udG8gYXBwcywgdGhlbiBnX3RocmVhZF9zdXBwb3J0ZWQoKQoJICB3aWxsIGFsd2F5cyBldmFsdWF0ZSB0byBUUlVFLCBzbyB0aGUgdHlwaWNhbCB0aHJlYWQgaW5pdGlhbGlzYXRpb24KCSAgYm9pbGVycGxhdGUgY29kZSBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBnX3RocmVhZF9pbml0KE5VTEwpOyB3aWxsCgkgIG5vIGxvbmdlciB3b3JrLCBhbmQgdGhlIHRocmVhZGluZyBzeXN0ZW0gbm90IGJlIGluaXRpYWxpc2VkIGFuZCB1cwoJICBwcmludGluZyBhIHdhcm5pbmcgaW4gZ3N0X2luaXQuIFRoaXMgbWF5IGJlIGZpbmUgaW4gbW9zdCBjYXNlcywgc2luY2UKCSAgbGF0ZSBpbml0aWFsaXNhdGlvbiBpcyBhbGxvd2VkIGFuZCBhdXRvbWF0aWNhbGx5IGRvbmUgaW4gZ190eXBlX2luaXQoKQoJICBzaW5jZSBHTGliIDIuMjMuMiwgYnV0IGxldCdzIGJlIGNhdXRpb3VzIGFuZCBvbmx5IHVzZSB0aGlzIGRlZmluZSB3aGVuCgkgIGNvbXBpbGluZyBHU3RyZWFtZXIgaXRzZWxmLgoJICBTZWUgIzYwODM5OC4KCjIwMTAtMDEtMjggMTU6NTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFRha2Ugc3RhcnRfdGltZSBhZnRlciBjaGFpbmluZyB1cCB0b28KCSAgUmVmYWN0b3IgdGhlIGNvZGUgdG8gdGFrZSB0aGUgY3VycmVudCBzdGFydF90aW1lIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoJICBNYWtlIHN1cmUgd2UgYWxzbyBjYWxsIHRoZSBzdGFydF90aW1lIHVwZGF0ZSBjb2RlIGFmdGVyIHdlIGNoYWluZWQgdXAgdG8gdGhlCgkgIHBhcmVudCBiaW4uCgkgIEZpeGVzICM2MDc4NDIKCjIwMTAtMDEtMjggMDA6MDc6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IGFkZCBzdGFydCBmdW5jdGlvbiBzbyB3ZSBjYW4gZXJyb3Igb3V0IHByb3Blcmx5IGlmIG5vIHVyaSBpcyBzZXQKCSAgQWxzbyBzYXZlIGEgc2V0IFVSSSBhZnRlciBpdCBoYXMgYmVlbiBwYXJzZWQgc3VjY2Vzc2Z1bGx5LCBzbyB0aGF0IF9nZXRfdXJpKCkKCSAgYWN0dWFsbHkgd29ya3MuCgoyMDEwLTAxLTI3IDIzOjQ2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBkb24ndCBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBzZXR0aW5nIHRoZSBVUkkgZmFpbGVkCgkgIFRoZXJlJ3MgYSBnYm9vbGVhbiByZXR1cm4gZm9yIHRoYXQsIGFuZCB0aGUgbWVzc2FnZXMgZG9uJ3QgcmVhbGx5CgkgIGFkZCBhbnl0aGluZyB1c2VmdWwuCgoyMDEwLTAxLTI3IDIzOjM5OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJICBkYXRhdXJpc3JjOiBtdXN0IHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB1c2luZyBHU1RfRUxFTUVOVF9FUlJPUgoKMjAxMC0wMS0yNiAxODo1OTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMjUuMiBwcmUtcmVsZWFzZQoKMjAxMC0wMS0yNyAwMDoyMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2tzOiBmaXggc3B1cmlvdXMgZ2hvc3QgcGFkIGNoZWNrIGZhaWx1cmUKCjIwMTAtMDEtMjYgMTk6MzU6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiB1cGRhdGUgd2luZG93cyBoZWFkZXJzIHRvIGxhdGVzdCB2ZXJzaW9uCgoyMDEwLTAxLTI2IDE5OjMyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHVwZGF0ZSB0byByZWxlYXNlIG5vdGVzCgoyMDEwLTAxLTI2IDE4OjQ1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcwoKMjAxMC0wMS0yNiAxODozOTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHRlc3RzOiBmaXggd2FybmluZyBpbiBydHBvb2wtdGVzdAoJICBUaGUgc3RyZWFtIHN0YXR1cyBtZXNzYWdlIG9iamVjdCBtYXkgYmUgb2YgYSBub24tR09iamVjdCB0eXBlLCBlLmcuCgkgIEdfVFlQRV9QT0lOVEVSIChzZWUgR3N0QXVkaW9TcmMpLCBzbyBwcmludCB0aGF0IHByb3Blcmx5IGluc3RlYWQKCSAgb2YgYXNzdW1pbmcgdGhlIHZhbHVlIGhvbGRzIGFuIG9iamVjdC4KCjIwMTAtMDEtMjYgMTI6NDM6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlcgoJICBXaGVuIHdlIHJlY2VpdmUgYW4gVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGZyb20gZG93bnN0cmVhbSwgd2UgbXVzdCBub3Qgc2h1dGRvd24KCSAgdGhlIHB1c2hpbmcgdGhyZWFkIGJlY2F1c2UgdXBzdHJlYW0gd2lsbCBhdCBzb21lIHBvaW50IHB1c2ggYW4gRU9TIHRoYXQgd2Ugc3RpbGwKCSAgbmVlZCB0byBwdXNoIGZ1cnRoZXIgZG93bnN0cmVhbS4KCSAgVG8gYWNoaWV2ZSB0aGlzLCBjb252ZXJ0IHRoZSBVTkVYUEVDVEVEIHJldHVybiB2YWx1ZSB0byBPSy4gQWRkIGEgZml4bWUgc28gdGhhdAoJICB3ZSBpbXBsZW1lbnQgdGhlIHJpZ2h0IGxvZ2ljIHRvIHByb3BhZ2F0ZSB0aGUgZmxvd3JldHVybiB1cHN0cmVhbSBhdCBzb21lIHBvaW50LgoJICBBbHNvIGNsZWFuIHVwIHRoZSB1bml0IHRlc3QgYSBsaXR0bGUuCgkgIEZpeGVzICM2MDgxMzYKCjIwMTAtMDEtMjYgMDg6NTI6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IEZpeCBiYXNpY3MtYnVzIGRvY3MKCSAgRml4IHdyb25nIGluZm9ybWF0aW9uIGFib3V0IGJ1cyB3YXRjaCBmdW5jdGlvbnMgaW4gdGhlCgkgIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IG1hbnVhbC4KCSAgRml4ZXMgIzYwODEyNwoKMjAxMC0wMS0yNSAxMjoxMjozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuYzoKCSAgZGF0YXVyaXNyYzogUmVtb3ZlIHJvbGUgYXR0cmlidXRlIGZyb20gbGlua3MKCjIwMTAtMDEtMjUgMTE6NTY6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RkYXRhdXJpc3JjLmM6CgkgIGRhdGF1cmlzcmM6IEFkZCBkb2NzIGFuZCBpbnRlZ3JhdGUgaW50byBidWlsZCBzeXN0ZW0KCSAgRml4ZXMgYWdhaW4gYnVnICM1OTY4ODUuCgoyMDEwLTAxLTI1IDExOjEyOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXVyaXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGF1cmlzcmMuaDoKCSAgZGF0YXVyaXNyYzogQWRkIGRhdGE6IFVSSSBzb3VyY2UgZWxlbWVudAoJICBUaGlzIGlzIHNsaWdodGx5IGJhc2VkIG9uIHRoZSBXZWJLaXQgZGF0YTogVVJJIHNvdXJjZQoJICBidXQgc3VwcG9ydHMgbW9yZSBwYXJ0cyBvZiBSRkMgMjM5Ny4KCSAgRml4ZXMgYnVnICM1OTY4ODUuCgoyMDEwLTAxLTI0IDIzOjEyOjIyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYmluOiBhbHNvIHJlbW92ZSBwcml2YXRlIGZ1bmN0aW9uIGZyb20gZGVmIGZpbGUKCjIwMTAtMDEtMjQgMjM6MDQ6MjcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIGEgaW50ZXJmYWNlIHZtZXRob2QgaW1wbGVtZW50YXRpb24gc3RhdGljCgkgIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhbnkgdHJvdWJsZXMgLSB0aGUgbWV0aG9kcyB3YXNuJ3QgaW4gYW55IGhlYWRlci4KCjIwMTAtMDEtMjQgMjI6MjI6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IHJlbW92ZSA7IGFmdGVyIH0KCjIwMTAtMDEtMjIgMTg6MDA6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBzb21lIGRvY3MgdG8gbWFyayBuZXcgcHJvcGVydHkKCjIwMTAtMDEtMjIgMTc6NTU6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkZCBvcHRpb24gdG8gcmVtb3ZlIHRoZSB0ZW1wLWZpbGUKCSAgQWRkIGFuIG9wdGlvbiB0byBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgdGVtcCBmaWxlIChUUlVFIGJ5IGRlZmF1bHQpLiBUaGlzCgkgIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIGZvciB0aGUgYXBwbGljYXRpb24gdG8ga2VlcCB0aGUgdGVtcCBmaWxlIGJ5IG90aGVyIG1lYW5zCgkgIHRoYW4gaGFyZGxpbmtpbmcgb3IgaG9sZGluZyBhbiBmZCBvcGVuLgoJICBGaXhlcyAjNjA3NzM5CgoyMDEwLTAxLTIyIDAyOjAyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBsZWFrIHVyaSBzdHJpbmcKCjIwMTAtMDEtMjEgMTY6MTk6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5kZXguaDoKCSAgZ3N0aW5kZXg6IHJldGFiIC5oIGZpbGUKCjIwMTAtMDEtMjAgMTQ6MTM6MTEgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBSdW4gZ190aHJlYWRfaW5pdCgpIHVuY29uZGl0aW9uYWxseQoJICBTaW5jZSB3ZSBkZWZpbmUgR19USFJFQURTX01BTkRBVE9SWSwgZ190aHJlYWRfc3VwcG9ydGVkKCkgZXZhbHVhdGVzIHRvCgkgIFRSVUUgdW5jb25kaXRpb25hbGx5LCBzbyBjYWxsaW5nIGdfdGhyZWFkX2luaXQoKSBuZXZlciBoYXBwZW5lZC4KCjIwMTAtMDEtMjAgMTA6NTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIG9uIHdpbjMyCgkgIE1vdmUgdmFyaWFibGUgdGhhdCdzIG9ubHkgdXNlZCBvbiB1bml4IGludG8gdGhlIHVuaXggYmxvY2sgc28gdGhhdAoJICB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbiBhYm91dCB0aGUgdW51c2VkIHZhcmlhYmxlIG9uIHdpbjMyCgkgIChzZWUgIzU5NzY2MikuCgoyMDEwLTAxLTIwIDA5OjQ1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiB0cnkgc2Nhbm5lciBzZXQgdmlhIGVudiB2YXIgYmVmb3JlIHVzaW5nIHRoZSBpbnN0YWxsZWQgb25lCgkgIElmIHRoZSBHU1RfUExVR0lOX1NDQU5ORVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LCB3ZSBzaG91bGQgdHJ5CgkgIHRoZSBzY2FubmVyIHNwZWNpZmllZCB0aGVyZSBmaXJzdCwgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBzY2FubmVyIGJpbmFyeQoJICBpcyB1c2VkIGZvciB1bmluc3RhbGxlZCBzZXR1cHMgYW5kIGJ1aWxkcyBmcm9tIHNvdXJjZSB3aGVuIHRoZXJlJ3MKCSAgYWxyZWFkeSBhbiBpbnN0YWxsZWQgdmVyc2lvbi4KCjIwMTAtMDEtMjAgMDY6NTg6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGJ1aWxkOiBEZWZpbmUgR19USFJFQURTX01BTkRBVE9SWSBldmVyeXdoZXJlCgkgIFdlIHJlcXVpcmUgdGhyZWFkcyB0byBiZSBzdXBwb3J0ZWQgaW4gYW55IGNhc2UgYW5kIGRlZmluaW5nIHRoaXMKCSAgd2lsbCBzaW1wbGlmeSB0aGUgbXV0ZXgsIGNvbmRpdGlvbiB2YXJpYWJsZSwgZXRjLiBtYWNyb3MgZnJvbSBndGhyZWFkCgkgIHRvIG5vdCBhbHdheXMgY2hlY2sgaWYgdGhyZWFkcyBhcmUgcmVhbGx5IHN1cHBvcnRlZC4KCSAgRml4ZXMgYnVnICM2MDc0ODEuCgoyMDEwLTAxLTA4IDIwOjU2OjE4ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcGx1Z2lubG9hZGVyOiBkaXNhYmxlIGV4dGVybmFsIHBsdWdpbiBsb2FkZXIgb24gV2luZG93cyB1bnRpbCBpdCBpcyBwb3J0ZWQgcHJvcGVybHkKCSAgU2VlICM1OTc2NjIuCgoyMDEwLTAxLTIwIDAxOjA5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3BhcnNlLmw6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZ3N0X3ByaXZhdGUuaDogbWFrZSBzdXJlIGdzdF9wcml2YXRlLmggaXMgaW5jbHVkZWQgYmVmb3JlIGdsaWIuaAoJICBGb3IgdGhlIHJlYXNvbiBvdXRsaW5lZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGdzdF9wcml2YXRlLmggKGlubGluZQoJICBmdW5jdGlvbnMgaW4gZ2xpYiBtYXkgbmVlZCB0aGUgZ19sb2dfZG9tYWluIHZhcmlhYmxlKS4gQWxzbyBpbmNsdWRlCgkgIGdzdF9wcml2YXRlLmggYmVmb3JlIHVzaW5nIGFueSBHX09TXyogZGVmaW5lcywgZXNwLiBpbiBwbHVnaW4gbG9hZGVyLgoKMjAxMC0wMS0yMCAwMTozMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZG9jczogbWlub3IgZ3RrLWRvYyBtYXJrdXAgZml4ZXMKCjIwMTAtMDEtMjAgMDA6NTM6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNGNlYzg5IHRvIDE1ZDQ3YTYKCjIwMTAtMDEtMTkgMTY6Mzk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIGRvY3M6IHNtYWxsIGRvY3MgdXBkYXRlcwoKMjAxMC0wMS0xOSAxNDowNzoyMyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBkaXJlY3RseSBzZXQgdGhlIGNhcHMgd2hlbiBwdXNoaW5nIGJ1ZmZlciB3aXRoIGRpZmZlcmVudCBjYXBzLgoJICBUaGlzIGNoZWNrIGlzIG5vdCBuZWNlc2FycnkgYXMgd2UgYXJlIG5vdCBuZWdvdGlhdGluZyBhbnltb3JlLiBBbmQgaXQgY2FuCgkgIGJlIHdyb25nIGlmIHVwc3RyZWFtIGNhbid0IHByb2R1Y2UgdGhpcyBjYXBzIGFueW1vcmUsIGJ1dCBkb3duc3RyZWFtIGNhbgoJICBwcm9jZXNzIHRoZW0gZmluZS4KCjIwMTAtMDEtMTggMTM6NTc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogVGhlIEdWYWx1ZSBjb2xsZWN0aW9uIGZ1bmN0aW9uIGNhbiBub3QgYXNzdW1lIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGluaXRpYWxpemVkCgkgIC4uLmFuZCBpdCB3aWxsIHVzdWFsbHkgYmUgZWl0aGVyIGZpbGxlZCBieSB6ZXJvZXMgb3IgcmFuZG9tIHZhbHVlcy4KCSAgRml4ZXMgYnVnICM2MDcyODMuCgoyMDEwLTAxLTE2IDIxOjUyOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBPbmx5IHVzZSBzdWdnZXN0ZWQgY2FwcyBpbiBidWZmZXIgYWxsb2NhdGlvbiBpZiBhIHNpemUgd2FzIHN1Z2dlc3RlZCB0b28KCjIwMTAtMDEtMTYgMTk6NDE6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHJlbW92ZSBzdXBlcmZsdW91cyBndWFyZCBhZ2FpbnN0IE5VTEwKCSAgQWxsIGNhbGxlcnMgb2YgdGhpcyBzdGF0aWMgZnVuY3Rpb24gYWxyZWFkeSBjaGVjayBmb3IgTlVMTC1uZXNzCgkgIHRoZW1zZWx2ZXMsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdhaW4gKGFuZCBpZiB3ZSBkbyBpdCwgd2Ugc2hvdWxkCgkgIHByb2JhYmx5IGRvIHNvIGJlZm9yZSBkZXJlZmVyZW5jaW5nIHRoZSBwb2ludGVyIGZvciB0aGUgZmlyc3QgdGltZSkuCgoyMDA5LTEyLTE3IDE5OjQ1OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbWljcm8tb3B0aW1pc2Ugc29tZSBnZXR0ZXJzCgkgIEF2b2lkIGNoZWNraW5nIHRoZSBHVHlwZSBvZiB0aGUgdmFsdWUgdHdpY2UgKG9uY2Ugb24gb3VyIHNpZGUgYW5kCgkgIG9uY2UgaW4gZ192YWx1ZV9nZXRfKigpKSBieSBieS1wYXNzaW5nIGdfdmFsdWVfZ2V0KCkgYW5kIGFjY2Vzc2luZwoJICB0aGUgR1ZhbHVlIHN0cnVjdHVyZSBkaXJlY3RseS4KCjIwMTAtMDEtMTUgMTg6MzY6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiB1cGRhdGUgZG9jcyBhIGxpdHRsZQoKMjAxMC0wMS0xNSAwMDo0NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBtaW5vciByZWxlYXNlIGRvY3MgdXBkYXRlCgoyMDEwLTAxLTE0IDIwOjE5OjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBIYW5kbGUgYnVmZmVycyB3aXRoIE5VTEwgY2FwcyBjb3JyZWN0bHkKCSAgVGhpcyBtZWFucyB0aGF0IHRoZSBjYXBzIGRpZG4ndCBjaGFuZ2Ugc28gZG9uJ3QgdHJ5IHRvIGhhbmRsZQoJICB0aGUgTlVMTCBjYXBzIGFzIHRoZSBuZXcgY2Fwcy4KCjIwMTAtMDEtMTQgMTA6NDQ6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIGRvY3M6IE1vdmUgZmllbGQgc3BlY2lmaWMgU2luY2UgbWFya2VycyBhdCB0aGUgc2FtZSBsaW5lCgkgIEZpeGVzIGdvYmplY3QtaW50cm9zcGVjdGlvbiB3YXJuaW5ncyBhYm91dCBTaW5jZSBiZWluZyBkZWZpbmVkIG11bHRpcGxlIHRpbWVzLgoKMjAxMC0wMS0xMyAxMDoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJICBmYXE6IHJlbW92ZSByZXZpc2lvbiBoaXN0b3J5IHRoYXQgbm8gb25lIHVwZGF0ZXMgb3IgY2FyZXMgYWJvdXQgYW55d2F5CgoyMDEwLTAxLTEzIDA5OjMyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJICBmYXE6IGZpeCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBvbiBjZ2l0CgkgIEZpeCBsaW5rIHRvIGdzdC11bmluc3RhbGxlZCBub3cgdGhhdCBpdCdzIGJlZW4gbW92ZWQsIGFuZCBmaXggYSB0eXBvCgkgIHdoaWxlIHdlJ3JlIGF0IGl0LiBBbHNvIGFkZCBhIG5ldyBzZWN0aW9uIHRvICdCdWlsZGluZyBHU3RyZWFtZXIgZnJvbQoJICBnaXQnIHRoYXQgcG9pbnRzIHRvIHRoZSAnSG93IGRvIEkgZGV2ZWxvcCBhZ2FpbnN0IGFuIHVuaW5zdGFsbGVkIGNvcHkKCSAgb2YgR1N0cmVhbWVyJyBzZWN0aW9uLgoKMjAxMC0wMS0xMyAxMDozMjo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogUkVBRE1FOgoJICBkb2NzOiB3ZSdyZSBpbiBnaXQgc2luY2UgYSB3aGlsZQoKMjAxMC0wMS0xMyAxMDozMToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkqIFJFQURNRToKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJKiBkb2NzL2ZhcS9mYXEueG1sOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogbW92ZSBnc3QtdW5pbnN0YWxsZWQgZnJvbSBkb2NzL2ZhcSB0byBzY3JpcHRzCgkgIERvbid0IGluY2x1ZGUgdGhlIGxvbmcgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBpbiB2ZXJiYXRpbSBpbiB0aGUgZmFxIGFueW1vcmUKCSAgKHRoZXJlIGlzIGEgbGluayB0byBjZ2l0KS4gRGlzdCB0aGUgc2NyaXB0IHVuZGVyIGl0cyBuZXcgbG9jYXRpb24uCgoyMDEwLTAxLTEyIDIxOjM0OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogYXZvaWQgc29tZSBtb3JlIHVubmVjZXNzYXJ5IG1hbGxvYy9mcmVlcwoKMjAxMC0wMS0xMiAyMDoyMTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIHNvbWUgdW5uZWNlc3Nhcnkgc3RyZHVwL2ZyZWUgd2hlbiByZWFkaW5nIHRoZSBiaW5hcnkgcmVnaXN0cnkKCSAgU3RyaW5ncyBpbiB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFyZSBOVUwtdGVybWluYXRlZCwgc28gd2UgY2FuIGp1c3QgdXNlIHRoZW0KCSAgZGlyZWN0bHkgaWYgd2Ugb25seSBuZWVkIHRoZW0gdGVtcG9yYXJpbHksIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSBtYWxsb2NzCgkgIGFuZCBmcmVlcy4KCjIwMTAtMDEtMTIgMTc6Mzg6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHVzZSBuZXcgdHlwZWZpbmQgZnVuY3Rpb24KCSAgUmVmYWN0b3IgYSBsaXR0bGUuCgkgIFVzZSB0aGUgbmV3IHR5cGVmaW5kIGhlbHBlciBmdW5jdGlvbiB0aGF0IHVzZXMgdGhlIGV4dGVuc2lvbiB0byBzcGVlZCB1cAoJICB0eXBlZmluZGluZy4KCjIwMTAtMDEtMTIgMTc6MzQ6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB0eXBlZmluZDogYWRkIGEgbmV3IG1ldGhvZCB0aGF0IGFsc28gdXNlcyB0aGUgZmlsZSBleHRlbnNpb24KCSAgQWRkIGEgbWV0aG9kIHRvIHBlcmZvcm0gZ2V0X3JhbmdlIHR5cGVmaW5kaW5nIHRoYXQgYWxzbyB1c2VzIHRoZQoJICB1cmkvbG9jYXRpb24gZXh0ZW5zaW9uIGFzIGFuIGV4dHJhIGhpbnQuIEl0IHdpbGwgZmlyc3QgdHJ5IHRvIGNhbGwgdGhlCgkgIHR5cGVmaW5kIGZ1bmN0aW9ucyBvZiB0aGUgZmFjdG9yaWVzIHRoYXQgaGFuZGxlIHRoZSBnaXZlbiBleHRlbnNpb24uIFRoZSByZXN1bHQKCSAgaXMgdGhhdCBpbiB0aGUgY29tbW9uIGNhc2UsIHdlIG9ubHkgY2FsbCBvbmUgdHlwZWZpbmQgZnVuY3Rpb24sIHdoaWNoIHNwZWVkcyB1cAoJICB0aGUgdHlwZWZpbmRpbmcgYSBsb3QuCgoyMDEwLTAxLTExIDE0OjU4OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiB1cGRhdGUgUW9TIGRvY3VtZWVudAoJICBBZGQgc29tZSBpZGVhcyBhYm91dCBhIG5ldyBRb1MgbWVzc2FnZS4KCSAgU2VlIGFsc28gIzMyMjk0NwoKMjAxMC0wMS0xMSAxMTozODozMiArMDEwMCAgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogbWFrZSByZWxlYXNlX3BhZCB0aHJlYWRzYWZlCgkgIFByb3RlY3QgdGhlIC0+cmVtb3ZlZCBmaWVsZCB3aXRoIHRoZSBvYmplY3QgbG9jayBhcyB3ZWxsLiBUYWtlIHRoZSBEWU4gbG9jawoJICBlYXJsaWVyIHNvIHRoYXQgd2UgY2FuIG1hcmsgdGhlIHBhZCByZW1vdmVkIGFuZCBhdm9pZCBhIHJhY2UgaW4gcGFkX2FsbG9jLgoJICBGaXhlcyAjNjA2NDM1CgoyMDA5LTEyLTExIDE3OjQ2OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIGJ1czogd2hpdGVzcGFjZSBmaXhlcwoKMjAxMC0wMS0xMCAyMTo0OToyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBkZWZlciBnZXR0aW5nIHRoZSBjbGFzc2VzIHVudGlsIHdlIGFjdHVhbHkgbmVlZCB0aGVtCgkgIFRoaXMgZnVuY3Rpb24gaGFzIGEgbG90IG9mIGVhcmx5IHJldHVybnMuIEdpdmUgdGhlbSBzb2VtIG1vcmUgYmVuZWZpdC4KCjIwMTAtMDEtMTAgMjE6NDA6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYXZvaWQgZXh0cmEgaG9wIGluIGdzdF9lbGVtZW50X2xpbmsKCSAgTm8gbmVlZCB0byBjYWxsIGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCB3aXRoIGZpbHRlcj1OVUxMLCB3aGljaCB3b3VsZAoJICBjYWxsIGdzdF9lbGVtZW50X2xpbmtfcGFkcygpIGluIHRoYXQgd2F5LiBDYWxsIGl0IGRpcmVjdGx5IHRvIHNhdmUgYSBjYWxsIGFuZAoJICBleHBlbnNpdmUgZ29iamVjdCB0eXBlIGNoZWNrcy4KCjIwMTAtMDEtMTAgMTc6Mzk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJlbW92ZSBzb21lIGNydWZ0IGZyb20gaGVhZGVyIGZpbGUKCSAgUmVtb3ZlIHNvbWUgY3J1ZnQgZnJvbSB0aGUgZ3N0Y2hlY2sgaGVhZGVyIGZpbGUgdGhhdCdzIG5vdCBuZWVkZWQKCSAgYW55IGxvbmdlciBub3cgdGhhdCB3ZSBzaGlwIHdpdGggb3VyIG93biBjb3B5IG9mIGxpYmNoZWNrLgoKMjAxMC0wMS0wNyAxNzo0MToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbWlkaS54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogcmVtb3ZlIGVtcHR5IG1pZGkgc2VjdGlvbgoKMjAxMC0wMS0wNyAxMzo0ODoyNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMTAtMDEtMDcgMTM6NDc6NTAgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlCgoyMDEwLTAxLTA2IDIwOjA4OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0ZWQgc3RyaW5ncwoKMjAxMC0wMS0wNiAyMDowNjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBkb2NzOiBtaW5vciBkb2N1bWVudGF0aW9uIGZpeGVzIGZvciByZWNlbnRseS1hZGRlZCB0YWdzCgkgIE1lbnRpb24gdGhlIHR5cGUgb2YgdGhlIHRhZyBpbiB0aGUgZ3RrLWRvYyBibHVyYiwgc28gcGVvcGxlIGtub3cKCSAgd2hpY2ggYWNjZXNzb3IgQVBJIHRvIHVzZSwgYW5kIGZpeCB1cCB0aGUgZG9jIGJsdXJicyB0byBtYXRjaCB0aGUKCSAgYWN0dWFsIHRhZyBkZWZpbmUuCgoyMDEwLTAxLTA2IDIwOjA0OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ3M6IGZpeCB1cCB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHNvbWUgbmV3IHRhZ3MKCSAgRml4IHVwIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3Igc29tZSByZWNlbnRseS1hZGRlZCB0YWdzIHRvIG1hdGNoIHRoZQoJICBleGlzdGluZyBzdHJpbmdzOiB3ZSB3YW50IHNob3J0IG1uZW1vbmljLWxpa2Ugc3RyaW5ncyBoZXJlIHRoYXQgc3RhcnQKCSAgd2l0aCBhIGxvd2VyIGNhc2UgbGV0dGVyLgoKMjAxMC0wMS0wNiAxOToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkZXByZWNhdGUgdXNlbGVzcyBnc3RfcmVnaXN0cnlfeG1sX3tyZWFkfHdyaXRlfV9jYWNoZSgpCgkgIFRoZSBvbmx5IHJlYXNvbiB0aGVzZSB0d28gZnVuY3Rpb25zIGFyZSBzdGlsbCBhcm91bmQgaXMgdGhhdCBhdCBzb21lCgkgIHBvaW50IGluIHRoZSBwYXN0IHRoZXkgd2VyZSBpbiBhIHB1YmxpYyBoZWFkZXIsIHNvIHdlIGNhbid0IHJlYWxseQoJICByZW1vdmUgdGhlbSBub3cgZXZlbiB0aG91Z2ggdGhleSBzaG91bGQgaGF2ZSBiZWVuIHByaXZhdGUgYWxsIGFsb25nCgkgIChhbmQgYXJlbid0IHJlYWxseSBwYXJ0aWN1bGFybHkgdXNlZnVsKS4gU2luY2UgdGhlc2UgYXJlIGp1c3QgZW1wdHkKCSAgc3R1YnMgbm93IHRoYXQgZG8gbm90aGluZyBidXQgcmV0dXJuIEZBTFNFIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4KCSAgMC4xMSBhbnl3YXksIHdlIG1heSBqdXN0IGFzIHdlbGwgZGVwcmVjYXRlIHRoZW0gZm9ybWFsbHkuCgoyMDEwLTAxLTA2IDE5OjE4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgZG9jczogYWRkIFNpbmNlIG1hcmtlcnMgdG8gdGFzayBwb29sIGRvY3MgYW5kIGRvY3VtZW50IHRhc2sgZnVuY3Rpb24KCjIwMTAtMDEtMDYgMTg6NTA6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IG1vdmUgU0hBVkVfSU5JVCBiZWhpbmQgYWxsIGNoZWNrcwoJICBNb3ZlIFNIQVZFX0lOSVQgYmVoaW5kIGFsbCBvdGhlciBjaGVja3MsIGluIHBhcnRpY3VsYXIgQUdfR1NUX0NIRUNLX0NIRUNLUy4KCSAgVGhpcyBzaG91bGQgZml4IHByb2JsZW1zIHdpdGggaGVhZGVyIGNoZWNraW5nIGFuZCBjaGVja2luZyBmb3IgbG9jYWx0aW1lX3IsCgkgIHdoaWNoIGNhdXNlcyBjb21waWxhdGlvbiBlcnJvcnMgd2l0aCBjbGVhbiBjaGVja291dHMgd2hlcmUgY29tbW9uL3NoYXZlIGhhcwoJICBub3QgYmVlbiBjcmVhdGVkIHlldCB3aGVuIHRob3NlIGNoZWNrcyBhcmUgcnVuLiBJdCBzZWVtcyBsaWtlIFNIQVZFX0lOSVQKCSAgY2hhbmdlcyB0aGUgZW52aXJvbm1lbnQgc28gdGhhdCBjaGVja3MgZGVwZW5kaW5nIG9uIGEgY29tcGlsZXIgbmVlZCBzaGF2ZQoJICB0byBleGlzdCBhdCB0aGF0IHBvaW50LCB3aGljaCB3aWxsIGZhaWwgaWYgQUNfT1VUUFVUIGhhc24ndCBjcmVhdGVkIGl0IHlldC4KCSAgRml4ZXMgIzYwNTkzMC4KCjIwMTAtMDEtMDUgMDE6MzU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSAgY2hlY2s6IHBhdGNoIGludGVybmFsIGNoZWNrIGNvcHkgc29tZSBtb3JlIHNvIHRoYXQgZmFpbHVyZXMgYWN0dWFsbHkgZmFpbAoJICBJbmNsdWRlIHVuaXN0ZC5oIHNvIHRoYXQgX1BPU0lYX1ZFUlNJT04gaXMgYWN0dWFsbHkgZGVmaW5lZCB3aGVuCgkgIGl0IHNob3VsZCBiZSBkZWZpbmVkLiBXaXRob3V0IHRoYXQsIHN0dWZmIGxpa2UgZmFpbF9pZigxKSBkb2Vzbid0CgkgIGFjdHVhbGx5IGZhaWwsIHByZXN1bWFibHkgYmVjYXVzZSBvdGhlciBwYXJ0cyBvZiB0aGUgY29kZSBkbyBpbmNsdWRlCgkgIHVuaXN0ZC5oIGFuZCB0aGVuIGhhdmUgX1BPU0lYX1ZFUlNJT04gZGVmaW5lZC4KCSAgRml4ZXMgIzYwNDU2NSBldmVuIG1vcmUuCgoyMDEwLTAxLTA1IDAwOjA5OjEwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIG1pc3NpbmcgcmV0dXJuczogdGFnCgoyMDA5LTEyLTMwIDIyOjU2OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzZXQgaXRlcmF0ZV9pbnRlcmFsX2xpbmtzIGZ1bmN0aW9uIG9uIHNvdXJjZSBwYWQKCjIwMDktMTItMjcgMTk6MzM6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogcmVtb3ZlIHVubmVlZGVkIGNhc3RzCgoyMDA5LTEyLTAyIDE5OjQ3OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVtb3ZlIHN1YmJ1ZmZlciBzdWJjbGFzcwoJICBNb3ZlIHRoZSBwYXJlbnQgYnVmZmVyIHBvaW50ZXIgaW50byB0aGUgR3N0QnVmZmVyIHN0cnVjdCBzbyB0aGF0IHdlIGNhbgoJICByZW1vdmUgdGhlIHN1YmJ1ZmZlciBjbGFzcyBhbmQgdHlwZS4gVGhpcyBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0IGFsbG93cyB1cyB0bwoJICBtb3JlIG5hdHVyYWxseSBpbXBsZW1lbnQgbWV0aG9kcyB0byBnZXQgdGhlIHJlYWwgdHlwZSBhbmQgcGFyZW50CgkgIG9mIGEgc3ViYnVmZmVyIChTZWUgIzU0NTUwMSkuCgkgIEl0IHNob3VsZCBhbHNvIGJlIHNsaWdodGx5IGZhc3RlciBiZWNhdXNlIHRoZXJlIGlzIG5vIGV4dHJhIG9iamVjdCBoaWVyYXJjaHkgdG8KCSAgaW5pdGlhbGl6ZSBhbmQgZnJlZS4KCjIwMDktMTItMjQgMTk6MjU6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBkb24ndCBrZWVwIGJ1ZmZlcnMgcmVmZmVkIGxvbmdlciB0aGFuIG5lZWRlZAoJICBNYWtlIHN1cmUgd2UgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlciBlYXJseSB3aXRob3V0IGluY3JlYXNpbmcgaXRzIHJlZmNvdW50CgkgIHdoZW4gd2UgZ28gaW4gdGhlIGNvbGxlY3QgZnVuY3Rpb24uIFRoaXMgcmVkdWNlcyB0aGUgYW1vdW50IG9mIGNvcGllcyBuZWVkZWQgaW4KCSAgb3JkZXIgdG8gbWFrZSB0aGUgYnVmZmVyIHdyaXRhYmxlIGluIG1vc3QgY2FzZXMuCgoyMDA5LTEyLTI0IDE3OjIyOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYXZvaWQgdW5uZWVkZWQgY2FzdHMKCjIwMDktMTItMjQgMTY6NTM6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhdm9pZCBkb2luZyBzdWJidWZmZXJzIHdoZW4gd2UgY2FuCgkgIEluIHNvbWUgY2FzZXMgd2UgY2FuIGF2b2lkIGFsbG9jYXRpbmcgYSBzdWJidWZmZXIgYW5kIGluc3RlYWQgc2ltcGx5IHJlZgoJICB0aGUgYnVmZmVyLiBDYWxsZXJzIHNob3VsZCBwZXJmb3JtIF9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgaW4gYWxsCgkgIGNhc2VzIG5vdy4KCjIwMDktMTItMjQgMTU6MjU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBjb2xsZWN0cGFkczogYWRkIGFiaWxpdHkgdG8gaW5zdGFsbCBjbGlwcGluZyBmdW5jdGlvbnMKCSAgQWRkIGEgbWV0aG9kIHRvIGluc3RhbGwgYSBjbGlwcGluZyBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIGEgYnVmZmVyIGlzCgkgIHJlY2VpdmVkLiBVc2VycyBvZiBjb2xsZWN0cGFkcyBjYW4gdGhlbiBwZXJmb3JtIGNsaXBwaW5nIG9uIHRoZSBpbmNvbW1pbmcKCSAgYnVmZmVycy4KCSAgQWxzbyByZXRhYiB0aGUgaGVhZGVyIGZpbGUgYSBsaXR0bGUuCgkgIFNlZSAjNTkwMjY1CgoyMDA5LTEyLTI0IDE1OjEzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgYnVmZmVyMiBpZGVhcwoKMjAwOS0xMi0yNCAxNDo0MDo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGF2b2lkIHNvbWUgbW9yZSB0eXBlIGNoZWNrcwoKMjAwOS0xMi0yNCAxNDoyMjo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogYXZvaWQgc29tZSB0eXBlIGNoZWNrcwoJICBBdm9pZCB0eXBlIGNoZWNrcyB3aGVuIHdlIGNhbgoJICBEb24ndCBuZWVkIHRvIHBlZWsgdGhlIHBhcmVudF9jbGFzcywgdGhlIGJvaWxlcnBsYXRlIGRvZXMgdGhhdCBmb3IgdXMuCgoyMDA5LTEyLTIzIDIxOjM5OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGFsc28gcHJpbnQgbGVha2VkIG9iamVjdHMKCSAgTWFrZSB0aGUgLVQgb3B0aW9uIGFsc28gcHJpbnQgdGhlIGxlYWtlZCBvYmplY3RzCgoyMDA5LTEyLTIzIDIxOjM3OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBpbmNsdWRlIHR5cGUgbmFtZSBpbiBsZWFrZWQgb2JqZWN0cwoJICBXaGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBHT2JqZWN0LCBwcmludCB0aGUgdHlwZSBuYW1lIGFsb25nIHdpdGgKCSAgdGhlIHBvaW50ZXIgZm9yIGVhc2llciBkZWJ1Z2dpbmcuCgoyMDA5LTEyLTIzIDIxOjIwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHByb2JsZW0gd2l0aCBkZXN0cm95IGNhbGxiYWNrIG5vdCBiZWluZyBjYWxsZWQKCSAgV2hlbiB3ZSB1bmJsb2NrIGEgcGFkIHdpdGggdGhlIHNhbWUgdXNlcl9kYXRhLCB0aGUgZGVzdHJveSBjYWxsYmFjayBpcyBub3QKCSAgY2FsbGVkLiBUaGlzIGxlYWRzIHRvIHJlZmNvdW50aW5nIGxlYWtzIHRoYXQgY2Fubm90IGJlIGF2b2lkZWQuIEluc3RlYWQgYWx3YXlzCgkgIGNhbGwgdGhlIGRlc3Ryb3kgbm90aWZ5IHdoZW5ldmVyIHdlIGluc3RhbGwgYSBuZXcgcGFkIGJsb2NrLgoJICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGZpeGVzIGEgbmFzdHkgcGFkIGxlYWsgaW4gZGVjb2RlYmluMi4KCSAgQWxzbyB1cGRhdGUgdGhlIHVuaXQgdGVzdCB0byBoYXZlIG1vcmUgYWNjdXJhdGUgY29tbWVudHMgYW5kIHRlc3QgdGhlIHJlcXVpcmVkCgkgIGJlaGF2aW91ci4KCjIwMDktMTItMjIgMjI6NTI6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHNtYWxsIGNsZWFudXBzLCB1c2Ugc29tZSBHX0xJS0VMWQoKMjAwOS0xMi0yMiAxNToyOToyNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBEb24ndCBjcmFzaCBpZiB0aGVyZSBpcyBubyBzb3VyY2UgcGFkCgoyMDA5LTEyLTIxIDE5OjExOjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDdjYjIzYSB0byAxNGNlYzg5CgoyMDA5LTEyLTIxIDExOjU4OjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGdzdHRhZ2xpc3Q6IEFkZHMgbmV3IHRhZ3MKCSAgQWRkcyB0aGUgZm9sbG93aW5nIG5ldyB0YWdzOgoJICBHU1RfVEFHX1NIT1dfTkFNRQoJICBHU1RfVEFHX1NIT1dfU09SVE5BTUUKCSAgR1NUX1RBR19TSE9XX0VQSVNPREVfTlVNQkVSCgkgIEdTVF9UQUdfU0hPV19TRUFTT05fTlVNQkVSCgkgIEdTVF9UQUdfTFlSSUNTCgkgIEdTVF9UQUdfQ09NUE9TRVJfU09SVE5BTUUKCSAgR1NUX1RBR19HUk9VUElORwoJICBGaXhlcyAjNTk5NzU5CgoyMDA5LTEyLTE5IDE0OjI3OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBhbHdheXMgY2FsbCBvdXIgY2hlY2sgY2hlY2tzIGZvciB0aGUgU1VCVU5JVCBjb25kaXRpb25hbAoJICBUaGUgU1VCVU5JVCBjb25kaXRpb25hbCBuZWVkcyB0byBiZSBzZXQgZXZlbiBpZiBjaGVjayBpcyBkaXNhYmxlZC4gQWxzbwoJICByZW1vdmUgYSBGSVhNRSB0aGF0IGlzIG5vdCBuZWVkZWQgYW55IGxvbmdlciAvIGFmdGVyIGFsbC4KCjIwMDktMTItMTggMjE6Mjg6MzUgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJICBjaGVjazogcGF0Y2ggaW50ZXJuYWwgY2hlY2sgY29weSBzbyBpdCB3b3JrcyB3aXRoIG91ciBidWlsZCBzeXN0ZW0KCSAgRml4ZXMgIzYwNDU2NS4KCjIwMDktMTItMTggMjE6MjY6MDEgKzAwMDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogdXBkYXRlIGF1dG90b29scyBhbmQgZG9jcyBzdHVmZiBmb3IgbmV3IGNoZWNrIHZlcnNpb24KCjIwMDktMTItMTcgMjA6MDk6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJICBjaGVjazogdXBkYXRlIGludGVybmFsIGxpYmNoZWNrIHRvIDAuOS44CgoyMDA5LTEyLTE1IDE4OjU1OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBwcmludGYgZm9ybWF0IGZpeGVzCgoyMDA5LTEyLTE0IDE2OjIyOjE2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRvY3M6IGxpbmsgYnVzIGFuZCB0YXNrcwoJICBBZGQgYSBsaW5rIGZyb20gYnVzIHNlY3Rpb24gZG9jcyB0byB0aGUgdGFzayBkb2NzLiBBZGQgYSBwYXJhZ3JhcGggdG8gdGFzayBkb2NzCgkgIHRvIHRlbGwgYWJvdXQgbWVzc2FnZXMgYW5kIHRoZSBidXMuCgoyMDA5LTEyLTE0IDE1OjExOjQyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2NzOiBhZGQgbW9yZSBkb2NzIGFyb3VuZCBHc3RTdGF0ZSBhbmQgR3N0U3RhdGVDaGFuZ2UKCSAgVGFrZSByZXZpZXdlZCBkb2NzIGZyb20gZG9jcy9kZXNpZ24vcGFydC1zdGF0ZSB0byBoYXZlIHRoYXQgbW9yZSBwcm9taW5lbnQKCSAgaW5zaWRlIHRoZSBhcGkgZG9jcy4gQWRkIGEgZmV3IHNlbnRlbmNlcyB0byBsaW5rIHRoaW5ncyBiZXR0ZXIgdG9nZXRoZXIuCgoyMDA5LTEyLTE0IDE1OjExOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3M6IHJldmlldyBhbmQgZml4IHNwZWxsaW5nCgoyMDA5LTEyLTE0IDExOjA1OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZ3N0ZWxlbWVudGZhY3Rvcnk6IHNldCBvYmplY3QgbmFtZSBlYXJsaWVyIGlmIGFwcGxpY2FibGUKCSAgU2V0dGluZyBhbiBvYmplY3QgbmFtZSBpcyBuaWNlIGZvciBwcm9wZXIgZGVidWcgbG9nZ2luZy4gSWRlYWxseSB0aGlzIHdvdWxkCgkgIHN0aWxsIGhhcHBlbnMgZWFybGllciAoLmUuZyB3aGVuIHBhZHMgYXJlIGFkZGVkIHRvIGFuIGVsZW1lbnQsIGl0cyBub3QgeWV0IHNldCkuCgoyMDA5LTEyLTE0IDExOjA3OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWRkIGZpeG1lLTAuMTEgY29tbWVudAoKMjAwOS0xMi0wOCAxMTozMDozOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb21tZW50OiBzbWFsbCBjb21tZW50IGNvcnJlY3Rpb24KCjIwMDktMTItMTEgMTY6MjY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbmV2ZXIgc2tpcCBhIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIE5ldmVyIHNraXAgdGhlIHN0YXRlIGNoYW5nZSB0byBwbGF5aW5nLCBldmVuIGlmIHRoZSBlbGVtZW50IGlzIGFscmVhZHkgaW4gdGhlCgkgIHJpZ2h0IHN0YXRlLiBXZSBuZWVkIHRoaXMgYmVjYXVzZSB3ZSBhbHNvIGRpc3RyaWJ1dGUgdGhlIGJhc2VfdGltZSB3aGlsZSBkb2luZwoJICB0aGUgc3RhdGUgY2hhbmdlIGFuZCBza2lwcGluZyB0aGlzIHN0ZXAgd291bGQgbGVhdmUgc29tZSBlbGVtZW50cyB3aXRob3V0IGEgbmV3CgkgIGJhc2VfdGltZS4KCSAgRml4ZXMgIzYwMDMxMwoKMjAwOS0xMi0xMSAxNjoxOToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBzb21lIG1vcmUgZGVidWdnaW5nCgoyMDA5LTEyLTA4IDE3OjIxOjQ3ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHJlbGVhc2UgcGFkcyBpbiBkaXNwb3NlCgkgIE1ha2Ugc3VyZSB0byByZWxlYXNlIGFsbCByZXF1ZXN0LXBhZHMgaW4gdGhlIGRpc3Bvc2UtbWV0aG9kLCBpbiBjYXNlIG9mIGEKCSAgc2h1dGRvd24tcmFjZSwgd2hlcmUgYSBwYWQtYWxsb2MgaXMgYWJvdXQgdG8gaGFwcGVuLgoJICBGaXhlcyAjNjA0MDkxCgoyMDA5LTEyLTA5IDEzOjI3OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdXNlIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBwb2ludGVycwoKMjAwOS0xMi0wOSAwNzoyNTozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IE1vdmUgZ3N0X3Rvb2xzX3ByaW50X3ZlcnNpb24oKSBmb3IgdGhlIHJlbWFpbmluZyB0b29scwoKMjAwOS0xMi0wMyAxMjozMToxOSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IE1vdmUgZ3N0X3Rvb2xzX3ByaW50X3ZlcnNpb24gY2FsbCB0byBhdm9pZCB3YXJuaW5nIGZyb20gbmV3IEdMaWIuCgkgIGdfc2V0cHJnbmFtZSBpcyBpbXBsaWNpdGx5IGNhbGxlZCBieSBnX29wdGlvbl9jb250ZXh0X25ldygpIHdpdGggYSBjaGVjawoJICB0byBzZWUgaWYgaXQncyBiZWVuIHNldCBhbHJlYWR5LgoJICBGaXhlcyBidWcgIzYwNDA5My4KCjIwMDktMTItMDggMTY6NDA6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggcHJveHlfc2V0Y2FwcyB0byBvbmx5IGl0ZXJhdGUgcGFkcyBvZiBvdGhlciBkaXJlY3Rpb24KCjIwMDktMTItMDggMTY6MjE6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBwcm94eV9nZXRjYXBzCgkgIE1ha2UgaXQgcmV0dXJuIHRoZSBwYWR0ZW1wbGF0ZSBjYXBzIG9uIGVycm9ycyBhbmQgbm8gcGFyZW50LgoJICBPbmx5IGludGVyc2VjdCBwYWRzIG9mIHRoZSBvcG9zaXRlIGRpcmVjdGlvbiBvZiB0aGUgc291cmNlIHBhZC4KCjIwMDktMTItMDggMTY6MTQ6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBSZW5hbWUgcHJveHkgaXRlcmF0b3IgZm9sZCBmdW5jdGlvbnMgdG8gaGF2ZSBhIG1vcmUgbWVhbmluZ2Z1bCBuYW1lCgoyMDA5LTEyLTA4IDE2OjA5OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogSWYgb25lIGludGVyc2VjdGlvbiBnYXZlIGVtcHR5IGNhcHMgZG9uJ3QgY29udGludWUgaXRlcmF0aW5nIG92ZXIgdGhlIG90aGVyIHBhZHMKCjIwMDktMTItMDggMTU6MjQ6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQWxsb3cgdXBkYXRlIE5FV1NFR01FTlQgZXZlbnRzIGFmdGVyIEVPUwoJICBUaGlzIGFsbG93cyBkZW11eGVycyB0byB1cGRhdGUgdGhlIHNlZ21lbnQgc3RvcCBvZiBhbiBhbHJlYWR5CgkgIGZpbmlzaGVkIHN0cmVhbS4gVGhpcyBtaWdodCBiZSBuZWVkZWQgaWYgc29tZSBzdHJlYW0gZ29lcyB0bwoJICBFT1MgYmVmb3JlIHRoZSBkdXJhdGlvbiBvZiB0aGUgbG9uZ2VzdCBzdHJlYW0gaXMga25vd24gdG8gcHJvcGVybHkKCSAgc2V0IHRoZSBzZWdtZW50IHN0b3Agb2YgYWxsIHN0cmVhbXMgdG8gdGhlIHNhbWUgdmFsdWUgaW4gdGhlIGVuZC4KCjIwMDktMTItMDcgMjA6NTI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFVzZSBwbGFpbiBjYXN0aW5nIGluc3RlYWQgb2YgdHlwZWNoZWNraW5nCgoyMDA5LTEyLTA3IDA5OjQ1OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBVc2UgZmFzdCBnc3RfdmFsdWVfbGlzdF97c2l6ZXxnZXRfdmFsdWV9IG1hY3JvIGFjY2Vzc29ycwoJICBnc3RfdmFsdWVfbGlzdF9zaXplIGFuZCBnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUgd2lsbCBkbyBhIHNlcmllcyBvZgoJICBleHRyYSBjaGVja3MgZHVlIHRvIGJlaW5nIHB1YmxpYyBtZXRob2RzLgoJICBXaGVuIHdlIHVzZSB0aGVtIGZyb20gd2l0aGluIGdzdHZhbHVlLmMgd2UgY2FuIGRpcmVjdGx5IHVzZSB0aGVtIHdpdGhvdXQKCSAgdGhlIGV4dHJhIGNoZWNrcy4KCjIwMDktMTItMDcgMDk6NDQ6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogRG9uJ3QgdXNlIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSwgdXNlIHRoZSBzaWduYWwgSUQgZGlyZWN0bHkKCjIwMDktMTEtMTggMDk6MDE6MzUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IGF2b2lkIGV4cGVuc2l2ZSB0eXBlY2hlY2tzLCBhbmQgYXZvaWQgZ2V0dGluZyByZWYgdG8gcGFyZW50LgoJICBTcGVlZHMgdXAgdGVlIHByb2Nlc3NpbmcgMiB0byA1IHRpbWVzLgoKMjAwOS0xMS0xMiAwOTowNzowMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBdm9pZCBkb3VibGUgc3RyZHVwIHdoZW4gc2V0dGluZyBOVUxMIG5hbWVzLgoJICBJbnN0ZWFkIG9mIGNoYWluaW5nIHVwIHRvIGdzdF9vYmplY3Rfc2V0X25hbWUgKHdoaWNoIGRvZXMgdHlwZWNoZWNraW5nCgkgIGFuZCBzdHJkdXAncyB0aGUgbmFtZSBhZ2FpbiksIGp1c3QgdXNlIHRoZSBhbHJlYWR5IGFsbG9jYXRlZCBuZXcKCSAgbmFtZS4KCjIwMDktMTItMDQgMTI6MTY6MzIgLTA4MDAgIFBldGVyIHZhbiBIYXJkZW5iZXJnIDxwdmhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgcHdnOiBtYWtlIHRoZSBlbnVtIGV4YW1wbGUgKGJhc2VkIG9uIHZpZGVvdGVzdHNyYykgYWN0dWFsbHkgbWF0Y2ggdmlkZW90ZXN0c3JjCgoyMDA5LTEyLTA0IDE2OjI4OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJZ25vcmUgc3RhdGUgY2hhbmdlIGZhaWx1cmVzIGZyb20gY2hpbGRyZW4gdGhhdCB3ZXJlIHJlbW92ZWQgZnJvbSB0aGUgYmluIGFscmVhZHkKCSAgRml4ZXMgYnVnICM1ODQ0NDEuCgoyMDA5LTEyLTA0IDE1OjAwOjQ0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogVXNlIEdNYXBwZWRGaWxlIGZvciByZWFkaW5nIHRoZSByZWdpc3RyeQoJICBGaXhlcyBidWcgIzYwMzc4Ny4KCjIwMDktMTItMDMgMTk6NDg6MTEgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogU3Vic3RpdHV0ZSBkZXByZWNhdGVkIEdMaWIgc3ltYm9sOiBnX21hcHBlZF9maWxlX2ZyZWUKCSAgVXNlIGdfbWFwcGVkX2ZpbGVfdW5yZWYgaWYgR2xpYiA+PSAyLjIyIGlzIGF2YWlsYWJsZQoJICBGaXhlcyBidWcgIzU2MDQ0Mi4KCjIwMDktMTEtMjcgMjA6MTY6MTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTaHV0IGRvd24gdGhlIHBhZCB0YXNrIHdoZW4gdGhlIGluaXRpYWwgc2VlayBmYWlscy4KCSAgU2V0IHRoZSBwYWQgZmx1c2hpbmcgYW5kIHN0b3AgdGhlIHBhZCB0YXNrIHdoZW4gdGhlIGluaXRpYWwgc2VlayBmYWlscwoJICBkdXJpbmcgYWN0aXZhdGlvbi4gQXZvaWRzIHJhY3kgY2FsbHMgaW50byB0aGUgX2NyZWF0ZSgpIGZ1bmN0aW9uIHdoZW4KCSAgQmFzZVNyYzo6c3RvcCgpIGhhcyBhbHJlYWR5IHJ1bi4KCSAgRml4ZXM6ICM2MDMwNTkKCSAgQWxzbywgZml4IHNvbWUgbWlzc3BlbGxlZCBjb21tZW50cy4KCjIwMDktMTItMDMgMjA6NTU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBhZnRlciBzdHJpbmcgY2hhbmdlcwoJICAoVGhlIHF1ZXVlMiBzdHJpbmdzIGNvdWxkIHVzZSBzb21lIHRpZHlpbmcgdXApCgoyMDA5LTEyLTAzIDIwOjUzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzaW5rLCBmaWxlc3JjOiBwcmludGYgZm9ybWF0IGZpeGVzCgkgIGdzdGZpbGVzaW5rLmM6Mzk5OiBlcnJvcjogZm9ybWF0IOKAmCVk4oCZIGV4cGVjdHMgdHlwZSDigJhpbnTigJksIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlIOKAmHNpemVfdOKAmQoJICBnc3RmaWxlc2luay5jOjM5OTogZXJyb3I6IGZvcm1hdCDigJglZOKAmSBleHBlY3RzIHR5cGUg4oCYaW504oCZLCBidXQgYXJndW1lbnQgOSBoYXMgdHlwZSDigJhnc2l6ZeKAmQoJICBnc3RmaWxlc3JjLmM6NTg4OiBlcnJvcjogZm9ybWF0IOKAmCUwOGxseOKAmSBleHBlY3RzIHR5cGUg4oCYbG9uZyBsb25nIHVuc2lnbmVkIGludOKAmSwgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg4oCYb2ZmX3TigJkKCjIwMDktMTItMDMgMTY6NDQ6MjggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIHNwZWNpYWwgY2FzZSBmb3Igb25seSBvbmUgcGFkIGNvbmVjdGVkCgkgIEl0IGlzIG5vdCBlYXN5IHRvIHNldHVwIGEgdGVlIG9uIHRoZSBmbHksIHRodXMgYXBwcyBuZWVkIHRvIGFkZCB0aGVtIGFsd2F5cyBpZgoJICB0aGV5IG1pZ2h0IG5lZWQgdGhlbS4gVGhpcyBjaGFuZ2VzIHRoZSBjb2RlIHNvLCB0aGF0IGlmIG9ubHkgb25lIHNyYy1wYWQgaXMKCSAgYWN0aXZlLCB3ZSBwdXNoIGJ1ZmZlcnMgZGlyZWN0bHkuIEluIHRoZSBub3JtYWwgY29kZSBwYXRoIGFsbCBidWZmZXJzIGFyZSBwdXNoZWQKCSAgd2l0aCBhbiBleHRyYSByZWYsIHRoYXQgZm9yY2VzIGZvbGxvd3VwIGlucGxhY2UgZWxlbWVudHMgdG8gY29weSB0aGUgZGF0YS4KCjIwMDktMTItMDMgMTY6MTE6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogb25seSBtZXNzYWdlIG9uY2UgcGVyIHJlY2VpdmVkIGJ1ZmZlcgoJICBBdm9pZHMgY2hlY2tpbmcgZm9yIGVhY2ggc291cmNlIHBhZC4gVGhlIG1lc3NhZ2VzIHdvdWxkIGJlIGFsbW9zdCBpZGVudGljYWwKCSAgYW55d2F5LgoKMjAwOS0xMi0wMyAxNToyNzoyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1yZWdpc3RyeS1jaGFuZ2UtaG9va3MudHh0OgoJICBkcmFmdHM6IHBsYW5uaW5nCgoyMDA5LTEyLTAzIDE2OjA1OjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IHJlbW92ZSB1bnVzZWQgb2Zmc2V0IG1lbWJlcgoKMjAwOS0xMi0wMyAxNjowMjozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBvbmx5IG5vdGlmeSBhbGxvYy1wYWQgcHJvcGVydHkgaWYgY2hhbmdlZC4KCjIwMDktMTItMDIgMTM6Mjk6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGZpeCBkb2NzIGZvciBfY29weSgpCgoyMDA5LTEyLTAxIDIyOjM3OjUxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IEZpeCBjaGVjayBmb3IgV2luZG93cwoKMjAwOS0xMi0wMSAxODowOTowNCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgTWFrZSBnY2MgaW5saW5lIGFzc2VtYmx5IGNvbmRpdGlvbmFsIG9uIGdjYwoKMjAwOS0xMi0wMSAxOToyOToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBNYWtlcyBjcmVhdGluZyBxdWV1ZSBlbGVtZW50cyAzLTQgdGltZXMgZmFzdGVyIGFuZCBhdm9pZHMgY29udGVudGlvbiBvbiB0aGUKCSAgZ2xvYmFsIGZ1bmNwdHIgbG9jay4KCjIwMDktMTItMDEgMTk6Mjc6NDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjL2Jhc2VzaW5rOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgTWFrZXMgYmFzZXNyYy9iYXNlc2luayBpbml0aWFsaXphdGlvbiAzLTQgdGltZXMgZmFzdGVyIGFuZCBhdm9pZHMKCSAgY29udGVudGlvbiBvbiB0aGUgZ2xvYmFsIGZ1bmNwdHIgbG9jawoKMjAwOS0xMi0wMSAxNzo1NDo1NiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RnaG9zdHBhZDogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIFRoaXMgbWFrZXMgZ2hvc3RwYWQvcHJveHlwYWQgY3JlYXRpb24gNSB0aW1lcyBmYXN0ZXIgYW5kIGF2b2lkcyBjb250ZW50aW9uCgkgIG92ZXIgdGhlIGdsb2JhbCBmdW5jcHRyIGxvY2suCgkgIEkgYWxzbyBtb3ZlZCB0aGUgdHdvIGNsYXNzIGluaXQgZG93biBpbiB0aGUgY29kZSB0byBhdm9pZCBoYXZpbmcgdG8gZm9yd2FyZAoJICBkZWNsYXJlIGFsbCB0aGUgdmFyaW91cyBmdW5jdGlvbnMuCgoyMDA5LTEyLTAxIDE3OjU0OjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IE9ubHkgcmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmNlLgoJICBUaGlzIG1ha2VzIHBhZCBpbml0aWFsaXphdGlvbiAyIHRpbWVzIGZhc3RlciBhbmQgd2l0aG91dCBhbnkgY29udGVudGlvbgoJICBvdmVyIHRoZSBkZWJ1ZyBmdW5jcHRyIGdsb2JhbCBsb2NrLgoKMjAwOS0xMi0wMSAxNzo1MzowMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IEFQSTogQWRkIEdTVF9ERUJVR19SRUdJU1RFUl9GVU5DUFRSIG1ldGhvZC4KCSAgVGhpcyBpcyBhIHZhcmlhbnQgb2YgR1NUX0RFQlVHX0ZVTkNQVFIgd2hpY2ggZG9lcyBub3QgcmV0dXJuIGFueXRoaW5nLgoKMjAwOS0xMi0wMSAxNTowNTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg3YmY0MjggdG8gNDdjYjIzYQoKMjAwOS0xMi0wMSAxNDowODoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlIG5ldyBBR19HU1RfUExBVEZPUk0gbWFjcm8KCjIwMDktMTItMDEgMTQ6MTA6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkYTRjNzVjIHRvIDg3YmY0MjgKCjIwMDktMTEtMjggMjI6Mjk6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGlwIHN0ZXBwaW5nIGJvdW5kYXJpZXMKCSAgUm91bmRpbmcgZXJyb3JzIHdpdGggdGhlIGZsb2F0aW5nIHBvaW50IHJhdGUgY291bGQgbWFrZSBpdCBzbyB0aGF0IHdlCgkgIGRvbid0IGVuZCB1cCBleGFjdGx5IGF0IHRoZSByZXF1aXJlZCBzdGVwcGluZyBkdXJhdGlvbi4KCSAgVXNlIHRoZSBzZWdtZW50IGNsaXBwaW5nIGJvdW5kYXJpZXMsIHdoaWNoIGFyZSBub3Qgc3ViamVjdCB0byByYXRlCgkgIGFkanVzdGVtZW50cywgaW5zdGVhZCB0byBkZXRlY3Qgd2hlbiB3ZSByZWFjaGVkIHRoZSBzdGVwcGluZyBkdXJhdGlvbi4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbyByZWxhdGVkIHRvIGdvaW5nIHRvIHRoZSBQQVVTRUQgc3RhdGUuCgoyMDA5LTExLTI4IDE3OjAyOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIGRvY3M6IGZpeCBhbm90aGVyIHR5cG8KCjIwMDktMTEtMjggMTU6NDA6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBmaXggdHlwbwoKMjAwOS0xMS0yNyAxODo1NDozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTNhMjQ4NSB0byBkYTRjNzVjCgoyMDA5LTExLTI3IDEzOjQyOjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnc3RldmVudDogZml4IGRvY3MKCSAgRml4IGZsdXNoIHN0b3BzIGRvY3MsIHRob3NlIGFyZSBzZXJpYWxpemVkLCBub3Qgb3V0IG9mIGJvdW5kcy4KCSAgUHJvYmFibHkgYSBjb3B5IGFuZCBwYXN0ZSBtaXN0YWtlLgoKMjAwOS0xMS0yNyAxNjozOTozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IGJyb2tlbiB4cmVmcwoKMjAwOS0xMS0yNyAxNjozOTozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIGRvY3M6IGZpeCBicm9rZW4geHJlZnMKCjIwMDktMTEtMjcgMTY6Mzk6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHNlY3Rpb24gdG8gbGlicy1kb2NzCgoyMDA5LTExLTI3IDE0OjE4OjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIGRvY3M6IG1ha2UgbGlua3Mgd29yayAobmVlZHMgcmVjZW50IGd0ay1kb2MpCgoyMDA5LTExLTI3IDE0OjE3OjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2NzCgoyMDA5LTExLTI3IDE0OjE2OjU0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGRvY3M6IGVuYWJsZSBkb2NzIGZvciBHc3RPYmplY3RDbGFzcyB0byBmaXggbGlua3MKCjIwMDktMTEtMjcgMTQ6MTU6MDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0b2JqZWN0OiBhZGQgRklYTUUtMC4xMSBjb21tZW50cwoKMjAwOS0xMS0yNSAxODoyNTowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHhtbC5jOgoJICBkb2NzOiBiZXR0ZXIgd2F5IHRvIGxpbmsgY2xhc3MgbWV0aG9kcwoKMjAwOS0xMS0yNSAxODoyNDoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVzZSAnKicgaW5zdGVhZCBvZiB4eHggdG8gYXZvaWQgY3JlYXRpbmcgYSBicm9la24geHJlZgoKMjAwOS0xMS0yNSAxNzozNzozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogZml4IG1vcmUgYm9ndXMgeHJlZnMKCjIwMDktMTEtMjUgMTc6Mjc6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIEdzdFBsdWdpbkZsYWdzCgkgIFRoaXMgYWxzbyBtYWtlcyBsaW5rcyB0byB0aGVtIHdvcmsuCgoyMDA5LTExLTI1IDE1OjM5OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBkb2NzOiBpbXByb3ZlIEdzdE1peGVyIGFuZCBHc3RUdW5lciBkb2NzCgkgIE1lbnRpb24gdGhhdCBlbGVtZW50cyBpbXBsZW1lbnRpbmcgR3N0TWl4ZXIgYW5kIEdzdFR1bmVyIG5lZWQgdG8gYmUKCSAgaW4gdGhlIHJpZ2h0IHN0YXRlIGJlZm9yZSB0aGV5IGNhbiBiZSB1c2VkLiBBbHNvIG1lbnRpb24gR0xpYgoJICBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgZmlsZW5hbWVzIHRvIGFuZCBmcm9tIFVSSXMuCgkgIEZpeGVzICM2MDI4NzcuCgoyMDA5LTExLTI1IDE2OjQ0OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2NzOiBmaXggeHJlZnMgaW4gZG9jcwoJICBGaXggdHlwb3MgaW4geHJlZnMsIGxpbmtzIHRvIG5vbiBleGlzdGluZyBmdW5jdGlvbnMgYW5kIHJld29yayBwbHVyYWwgZm9ybXMuCgoyMDA5LTExLTI1IDE0OjQxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIGRvY3M6IHJlbW92ZSBndGtkb2MgaGVhZGVyIGFzIHRoZXNlIHRoaW5ncyBkb24ndCBjb21lIHVwIG9uIG91ciBkb2NzIGV2ZW4KCjIwMDktMTEtMjUgMTQ6MjM6NTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jIHN0cmluZwoKMjAwOS0xMS0yNSAxNDoyMTo1MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGRvY3VtZW50IG5ldyBldmVudCBpbiBlbnVtCgoyMDA5LTExLTI1IDE0OjE4OjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogZml4IGd0ay1kb2Mgc3ludGF4IGZvciBkb2MtYmxvYiBzdGFydAoKMjAwOS0xMS0yMyAxMTozNDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0xMS0yMyAxMTozMzo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBmaXggZ3JhbW1hcgoKMjAwOS0xMS0yMSAxNjozNzozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2VzcmM6IEFkZCBnc3RfYmFzZV9zcmNfbmV3X3NlYW1sZXNzX3NlZ21lbnQoKQoJICBNZXJnZSBuZXcgZnVuY3Rpb24gZnJvbSByZXNpbmR2ZCBpbnRvIHRoZSBwcmltYXJ5IEdzdEJhc2VTcmMgZm9yCgkgIHN0YXJ0aW5nIGEgbmV3IHNlYW1sZXNzIHNlZ21lbnQuCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCjIwMDktMTEtMjAgMTY6MDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIFNvbWUgZ2NjIHZlcnNpb25zIHdhcm4gYWJvdXQgYnl0ZXdyaXRlciB3cml0aW5nIHRvIG1lbW9yeSBhY2Nlc3NlZAoJICB2aWEgYSBjb25zdCBndWludDggcG9pbnRlciwgZGVzcGl0ZSBvdXIgZXhwbGljaXQgY2FzdCB0byBndWludDggKi4KCSAgV29yayBhcm91bmQgdGhhdCBieSB1c2luZyBhbiBpbnRlcm1lZGlhcnkgdmFyaWFibGUuCgkgIEZpeGVzICM1OTg1MjYuCgoyMDA5LTExLTIwIDA5OjMzOjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY2hlY2s6IE9ubHkgY2hlY2sgZm9yIGdtcC9nc2wgaWYgYnVpbGRpbmcgb2YgdGVzdHMgaXMgbm90IGRpc2FibGVkCgoyMDA5LTExLTE5IDE5OjAwOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDbGFtcCB0aGUgYmFzZSB0aW1lIGNvcnJlY3RseSBpbiBwb3NpdGlvbiByZXBvcnRpbmcKCSAgV2hlbiBjbGFtcGluZyB0aGUgYmFzZSB0aW1lLCBjb3JyZWN0bHkgdXNlICdub3cnLCBpbnN0ZWFkIG9mCgkgICctbm93JyAtIHRoZSBpbnRlbnQgaXMgdG8gcHJldmVudCAnbm93LWJhc2UnIGV2ZXIgYmVpbmcKCSAgbmVnYXRpdmUsIHdoaWNoIHdvdWxkIGNhdXNlIGEgcG9zaXRpb24gcmVwb3J0IG91dHNpZGUgdGhlIHNlZ21lbnQuCgkgIEZpeGVzOiAjNjAyNDE5CgoyMDA5LTExLTA5IDEwOjUyOjQyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZ3N0cGx1Z2luOiBBZGQgQysrIGVzY2FwZSBmb3IgZ3N0X3BsdWdpbl9kZXNjIGRlZmluZQoJICBJbiBvcmRlciB0byBwcm9wZXJseSBleHBvcnQgdGhlIGdzdF9wbHVnaW5fZGVzYyBzeW1ib2wKCSAgZnJvbSBETExzIGluIE1TVkMsIGl0IG5lZWRzIHRvIGJlIGV4dGVybiAiQyIuCgoyMDA5LTExLTE5IDEyOjU5OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlL2dyYW1tYXIueTogcmVtb3ZlIHVudXNlZCBFUlJPUiBkZWZpbmUKCjIwMDktMTEtMTkgMTA6Mjk6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxODYxMjUyIHRvIDUzYTI0ODUKCjIwMDktMTEtMTYgMTU6NDc6NTcgKzAyMDAgIFByaWl0IExhZXMgPHBsYWVzQHBsYWVzLm9yZz4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZml4IHN5bWJvbCBleHBvcnRpbmcgd2hlbiBidWlsZGluZyB1bmRlciBldF9FRSBsb2NhbGUKCSAgW0EtWl0gcmVnZXhwIGZhaWxzIHVuZGVyIGV0X0VFIGxvY2FsZSBiZWNhdXNlIFogaW4gRXN0b25pYW4gYWxwaGFiZXQgaXMKCSAgbG9jYXRlZCBhZnRlciBTIGFuZCB0aGVyZWZvcmUgY2hhcmFjdGVycyBzdGFydGluZyB3aXRoICdUVVYuLi4nIGFyZSBub3QKCSAgaW4gdGhlIHJhbmdlIGFueW1vcmUuCgkgIEZpeGVzIGJ1ZyAjNjAyMDkzLgoKMjAwOS0xMS0xOCAwNzo1OTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBIYW5kbGUgdGhlIG5ldyBzaW5rLW1lc3NhZ2UgZXZlbnQKCjIwMDktMTEtMTggMDc6NTI6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFQSTogQWRkIHNpbmstbWVzc2FnZSBldmVudAoJICBnc3RfZXZlbnRfbmV3X3NpbmtfbWVzc2FnZSgpCgkgIGdzdF9ldmVudF9wYXJzZV9zaW5rX21lc3NhZ2UoKQoJICBUaGlzIGV2ZW50IGlzIHVzZWQgZm9yIHNlbmRpbmcgYSBHc3RNZXNzYWdlIGRvd25zdHJlYW0gYW5kIHN5bmNocm9uaXplZAoJICB3aXRoIHRoZSBzdHJlYW0sIHRvIGJlIHBvc3RlZCBieSB0aGUgc2luayBvbmNlIGl0IHJlYWNoZXMgdGhlIHNpbmsuCgkgIEZpeGVzIGJ1ZyAjNjAyMjc1LgoKMjAwOS0xMS0xNiAwMDoxMjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcGx1Z2luLXNjYW5uZXI6IHJlbmFtZSBwbHVnaW4tc2Nhbm5lciBoZWxwZXIgYmluYXJ5IHRvIGdzdC1wbHVnaW4tc2Nhbm5lcgoJICBhbmQgaW5zdGFsbCBpbnRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeSAkKGxpYmV4ZWNkaXIvZ3N0cmVhbWVyLTAuMTApIHNvIHRoYXQKCSAgZXZlcnl0aGluZyBpcyB2ZXJzaW9uZWQgcHJvcGVybHkuCgkgIE5PVEU6IHJ1biAnbWFrZSBjbGVhbicgYWZ0ZXIgdXBkYXRpbmc7IGlmIHlvdSBhcmUgcnVubmluZyBhbiB1bmluc3RhbGxlZCBzZXR1cCwKCSAgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgeW91ciBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0ICh1bmxlc3MgaXQncyBzeW1saW5rZWQKCSAgdG8gZ3N0cmVhbWVyIGNvcmUgbWFzdGVyKSBhbmQgZXhpdC9lbnRlciB5b3VyIHVuaW5zdGFsbGVkIGVudmlyb25tZW50IHRvIGdldAoJICB0aGUgdXBkYXRlZCBlbnZpcm9ubWVudC4gSWYgeW91IGFyZSBydW5uaW5nIGFuIGluc3RhbGxlZCBzZXR1cCwgeW91IHNob3VsZAoJICBydW4gJ21ha2UgdW5pbnN0YWxsJyBiZWZvcmUgbWVyZ2luZyB0aGlzIGNoYW5nZSBvciByZW1vdmUgdGhlIG9sZAoJICBwbHVnaW4tc2Nhbm5lciBiaW5hcnkgbWFudWFsbHkuCgkgIEZpeGVzICM2MDE2OTguCgoyMDA5LTExLTE4IDA5OjEwOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgUmV2ZXJ0ICJzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIHR5cGUgdHdpY2UiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjg2NDE4N2JmNWZkZmFmNzFmMmUwMzg5NDllNDAzYTQyZTZkYWYwZS4KCSAgUmV2ZXJ0aW5nIHRoaXMgYXMgaXQgY2hhbmdlcyBiZWhhdmlvdXIgYW5kIHRoZSBkb2N1bWVudGF0aW9uIGlzCgkgIGFtYmlndW91cyBhYm91dCB3aGV0aGVyIHRoZSBjYWxsZXIgbXVzdCBjaGVjayB0aGUgdHlwZSBmaXJzdCBvcgoJICBub3QgKGNhbGwgbXVzdCBjaGVjayB0eXBlIHZzLiByZXR1cm5zIE5VTEwgaWYgbm90IGEgc3RyaW5nKS4gSWYKCSAgR0xpYiBoYXMgYmVlbiBjb21waWxlZCB3aXRoIEdfRElTQUJMRV9DSEVDS1MgdGhlbiBnX3ZhbHVlX2dldF9zdHJpbmcoKQoJICBtYXkgcmV0dXJuIGNvbXBsZXRlIGdhcmJhZ2UgZXZlbiBpZiB0aGUgdmFsdWUgZG9lcyBub3QgY29udGFpbgoJICBhIHN0cmluZy4gQmV0dGVyIHBsYXkgaXQgc2FmZSwgZXNwLiBzaW5jZSB0aGUgZXh0cmEgY2hlY2sgaXMganVzdAoJICBhbiBpbnRlZ2VyIGNvbXBhcmlzb24uIEZvciBmdW5kYW1lbnRhbCB0eXBlcyB3ZSBjb3VsZCByZXR1cm4gdmFsdWVzCgkgIGZyb20gdGhlIEdWYWx1ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkgaWYgd2UgcmVhbGx5IHdhbnRlZCB0byBieXBhc3MKCSAgdGhlIGV4dHJhIGNoZWNrLgoKMjAwOS0xMS0xNyAxNzowNjowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIHR5cGUgdHdpY2UKCjIwMDktMTEtMTcgMTg6MzU6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgc3RlcCBldmVudCBxdWFyawoKMjAwOS0xMS0xNyAxMDowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHBhdGhzIGZvciBnc3QtcWEtc3lzdGVtCgoyMDA5LTExLTE3IDA5OjA2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogc2V0IEdTVF9QTFVHSU5fU0NBTk5FUiB3aGVuIGNhbGxpbmcgZ3RrZG9jLXNjYW5nb2JqCgkgIE90aGVyd2lzZSB0aGUgZG9jcyBidWlsZCB3b24ndCB3b3JrIHByb3Blcmx5CgoyMDA5LTExLTE2IDEzOjU4OjEwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIHNvbWUgYmxhbmsgbGluZXMgKHByZXZpb3VzIGdzdC1pbmRlbnQgZmFpbHVyZSkKCjIwMDktMTEtMTYgMTM6NTM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiB1c2UgbG9jYWwgdmFyaWFibGUgZWFybGllcgoKMjAwOS0xMS0xNiAxMzo0OTozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIGVudW0gdHlwZXMgdHdpY2UuCgkgIEdfVkFMVUVfSE9MRFNfRU5VTSh2YWx1ZSkgaXMgZGVmaW5lZCBhcyBHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAodmFsdWUsCgkgIEdfVFlQRV9FTlVNKS4gSnVzdCBjaGVjayBmb3IgdGhlIHJpZ2h0IGVudW0tdHlwZSByaWdodCBhd2F5LgoKMjAwOS0xMS0xNCAyMjozNTowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNoZWNrOiBBZGQgYSBkZWJ1ZyBzdGF0dXMgdG8gdGhlIHN5c3RlbWNsb2NrIHRlc3QKCSAgTmV4dCB0aW1lIGl0IGZhaWxzIG9uIGEgYnVpbGRib3Qgd2UgY2FuIHNlZSB3aGljaCBjbG9jayBpZAoJICByZXR1cm4gaXQgaXMgZ2V0dGluZy4KCjIwMDktMTEtMTYgMTg6MjU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBUT0RPOiByZW1vdmUgc3RlcHBpbmcgZnJvbSBUT0RPCgkgIFJlbW92ZSB0aGUgZnJhbWUgc3RlcHBpbmcgQVBJIGZyb20gdGhlIFRPRE8gbGlzdC4KCjIwMDktMTEtMTYgMTQ6MDI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggcG9zaXRpb24gcmVwb3J0aW5nCgkgIE9ubHkgdXBkYXRlIHRoZSBjdXJyZW50IHN0cmVhbSB0aW1lIGFmdGVyIHdlIGNoZWNrZWQgaWYgd2UgZ290IGEgbmV3IHN0ZXAKCSAgZXZlbnQuIFRoaXMgaW1wcm92ZXMgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyBieSB0aGUgc2luay4KCSAgU2VlICM1OTU5NTgKCjIwMDktMTEtMTYgMDk6NDk6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBUEk6IEFkZCBtdWx0aXBsaWNhdGlvbiBhbmQgYWRkaXRpb24gZnVuY3Rpb25zIGZvciBmcmFjdGlvbnMKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fYWRkKCkKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fbXVsdGlwbHkoKQoJICBUaGVzZSB3b3JrIG9uIHBsYWluIGludGVnZXJzIGluc3RlYWQgb2YgR1ZhbHVlcyB0bwoJICBrZWVwIHRoZSBvdmVyaGVhZCBhcyBsb3cgYXMgcG9zc2libGUuCgoyMDA5LTExLTE2IDA5OjI5OjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogQVBJOiBBZGQgZnJhY3Rpb24gaGVscGVyIGZ1bmN0aW9ucwoJICBnc3RfdXRpbF9ncmVhdGVzdF9jb21tb25fZGl2aXNvcigpCgkgIGdzdF91dGlsX2RvdWJsZV90b19mcmFjdGlvbigpCgkgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSgpCgkgIFVzaW5nIHRoZXNlIGluc3RlYWQgb2YgZ29pbmcgb3ZlciBHVmFsdWUgaGFzIG11Y2ggbG93ZXIgb3ZlcmhlYWQuCgkgIEFsc28gYWRkIGZsb2F0PC0+ZnJhY3Rpb24gdHJhbnNmb3JtIGZ1bmN0aW9ucyBmb3IgR1ZhbHVlLgoKMjAwOS0xMS0xMyAxNTo0NTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkZWJ1ZzogYWRkIG1vcmUgZGVidWcgbG9nZ2luZyB0byBoZWxwIHRyYWNraW5nIHBhcnNpbmcgZXJyb3JzCgoyMDA5LTExLTEzIDExOjQyOjAyICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYXZvaWQgcmFjZSB3aGVuIHJlY3ljbGluZyBidWZmZXJzCgkgIEF2b2lkIGEgcmFjZSB3aGVyZSBhIG1pbmlvYmplY3QgaXMgcmVjeWNsZWQgYW5kIHF1aWNrbHkgZnJlZWQsIHdoaWNoIGNhdXNlcyB0aGUKCSAgZ190eXBlX2ZyZWVfaW5zdGFuY2UoKSB0byBiZSBjYWxsZWQgb24gdGhlIHNhbWUgb2JqZWN0IHR3aWNlLgoJICBSZWYgdGhlIG9iamVjdCBiZWZvcmUgY2FsbGluZyB0aGUgZmluYWxpemUgbWV0aG9kIGFuZCBjaGVjayBpZiB3ZSBzdGlsbCBuZWVkIHRvCgkgIGZyZWUgaXQgYWZ0ZXJ3YXJkLgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBjYXNlLgoJICBGaXhlcyAjNjAxNTg3CgoyMDA5LTExLTEyIDE3OjAyOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgd2hpdGVzcGFjZTogcmVtb3ZlIGJsYW5rcyBpbiBkb2MtY29tbWVudAoKMjAwOS0xMS0wNiAxNTo0Mjo1NyArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEltcG9ydCBfcHJpdl9nc3RfZGxsX2hhbmRsZSBpbnRvIGdzdHJlZ2lzdHJ5LmMKCSAgRml4ZXMgYnVnICM2MDE2NjguCgoyMDA5LTExLTEyIDE0OjEwOjA2ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IERvIG5vdCBsaXN0IGxpYmdzdGNoZWNrIGFzIGEgcmVxdWlyZW1lbnQgZm9yIHRlc3RzL2V4YW1wbGVzL21hbnVhbAoJICBGaXhlcyBidWcgIzYwMTY2OS4KCjIwMDktMTEtMTEgMTc6MTI6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEZpeCB0cmVhdGluZyBiYXNlX3RpbWUgYXMgdW5zaWduZWQgaW4gcG9zaXRpb24gY2FsY3VsYXRpb24KCSAgRWxlbWVudCBiYXNlX3RpbWUgaXMgYSBzaWduZWQgcXVhbnRpdHksIHdoaWNoIGxlYWRzIHRvIGJhc2VzaW5rIHJldHVybmluZwoJICBhIHBvc2l0aW9uIG9mIDAgd2hlbiBkZWFsaW5nIHdpdGggYSBuZWdhdGl2ZSBiYXNlIHRpbWUgLSB3aGljaCBhcmUgcXVpdGUKCSAgbGVnYWwgd2hlbiBjbG9ja3MgKHN1Y2ggYXMgdGhlIGF1ZGlvIGNsb2NrKSBhcmUgY2xvc2UgdG8gMC4KCSAgVGhpcyBkb2Vzbid0IG1hbmlmZXN0IGluIG5vcm1hbCBwaXBlbGluZXMsIG9mIGNvdXJzZSAtIGJ1dCBjYW4gaGFwcGVuCgkgIChhdCBsZWFzdCkgd2hlbiBtYW51YWxseSBzZXR0aW5nIHRoZSBiYXNlIHRpbWUgb24gYSBwaXBlbGluZS4KCjIwMDktMTEtMTAgMTg6MDM6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IEFQSTogQWRkIGdzdF97ZGVmYXVsdCx9X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3RfY29va2llKCkKCSAgVGhpcyByZXR1cm5zIHRoZSBpbnRlcm5hbCBmZWF0dXJlIGxpc3QgY29va2llLCB3aGljaCBjaGFuZ2VzIGV2ZXJ5CgkgIHRpbWUgYSBmZWF0dXJlIGlzIGFkZGVkIG9yIHJlbW92ZWQuIFRoaXMgY2FuIGJlIHVzZWQgYnkgZWxlbWVudHMKCSAgdG8gY2hlY2sgaWYgdGhleSBzaG91bGQgdXBkYXRlIHRoZWlyIGNhY2hlZCBmZWF0dXJlIGxpc3RzLgoKMjAwOS0xMS0xMCAxMTo1NTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwcmludGYgZm9ybWF0CgkgIENhc3QgdGhlIHZhcmlhYmxlIHRvIGdpbnQgdG8gY29uZm9ybSB0byB0aGUgcHJpbnRmIGZvcm1hdCB1c2VkLgoJICBJdCBpcyBjYXN0ZWQgcmF0aGVyIHRoYW4gY2hhbmdpbmcgdGhlIGZvcm1hdCBiZWNhdXNlIHRoZQoJICBtZXNzYWdlIGlzIGNyZWF0ZWQgd2l0aCBhIGNhc3QgdG8gZ2ludCB0b28uCgoyMDA5LTExLTEwIDEwOjEwOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgY3Jhc2hpbmcgZHVlIHRvIG5lZ2F0aXZlIHBlcmNlbnQKCSAgcXVldWUyIHdvdWxkIGNyYXNoIHdoZW4gdXNpbmcgc21hbGwgYnVmZmVyIHNpemVzIGJlY2F1c2UKCSAgaXQgd291bGQgb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB0aGUgcGVyY2VudGFnZSwgcmVzdWx0aW5nCgkgIGluIHRoZSBidWZmZXJpbmcgR3N0TWVzc2FnZSBub3QgYmVpbmcgY3JlYXRlZCBhbmQgdHJ5aW5nIHRvIGJlCgkgIHVzZWQuIFRoaXMgcGF0Y2ggdXNlcyBhIGdpbnQ2NCBpbnN0ZWFkIG9mIGEgZ2ludCB0byBkbyB0aGUKCSAgcGVyY2VudGFnZSBtYXRoLCBtYWtpbmcgaXQgaGFyZGVyIHRvIG92ZXJmbG93LgoKMjAwOS0xMS0xMCAwOTo1MjozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBzbWFsbCBkb2MgdHlwbwoKMjAwOS0xMS0xMCAwMDo1NzowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGZpeCBjb21waWxhdGlvbiB3aXRoIGRlYnVnZ2luZyBkaXNhYmxlZAoJICBBZGQgdWdseSBpZmRlZiB0byBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgd2hlbiBjb21waWxpbmcgd2l0aAoJICBkZWJ1ZyBsb2dnaW5nIGRpc2FibGVkLgoKMjAwOS0xMS0wOSAxNjoyMDo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtcmVnaXN0cnktY2hhbmdlLWhvb2tzLnR4dDoKCSAgcGxhbm5pbmc6IGFkZCB0aG91Z2h0cyBhYm91dCBmb3JlaWduIHJlZ2lzdHJ5IGNhY2hlIHVwZGF0ZXMKCjIwMDktMTEtMDkgMTQ6NTU6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGFsbG93IHRvIGdldCBwbHVnaW4taW5zdGFsbC1pbmZvIGZvciBhbGwgaW5zdGFsbGVkIHBsdWdpbnMKCSAgSWYgbm8gcGx1Z2luIGlzIGdpdmVuLCBwcmludCB0aGUgaW5mbyBmb3IgYWxsIHBsdWdpbnMuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYQoJICBzdGFydGluZyBwb2ludCB0byBnZW5lcmF0ZSBhIHByb2ZpbGUgYWJvdXQgd2hhdCB0aGUgZ3N0cmVhbWVyIGluc3RhbGxhdGlvbiBjYW4KCSAgcG90ZW50aWFseSBoYW5kbGUgKGUuZy4gZm9yIE1UUCBvciBETE5BKS4KCjIwMDktMTEtMDkgMTI6NDI6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIGRvY3M6IGRvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgcGFkCgoyMDA5LTExLTA3IDIwOjIyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogd2FrZSB1cCBsZXNzIG9mdGVuIHRvIGNoZWNrIGlmIHdlJ3ZlIGJlZW4gaW50ZXJydXB0ZWQKCSAgQ2hlY2sgaWYgd2UndmUgYmVlbiBpbnRlcnJ1cHRlZCBvbmx5IGZvdXIgdGltZXMgcGVyIHNlY29uZCBpbnN0ZWFkCgkgIG9mIHR3ZW50eSB0aW1lcyBwZXIgc2Vjb25kLCB0byB3YWtlIHVwIHRoZSBjcHUgbGVzcyBvZnRlbiBhbmQKCSAgc2F2ZSBwb3dlciAoc2VlIGJ1ZyAjNjAwOTIyKS4KCjIwMDktMTEtMDUgMjE6MTg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogYWRkIGRlZmluZSB0byBmb3JjZSBwcmludGYgZm9ybWF0IGNoZWNraW5nIGZvciBkZWJ1ZyBtZXNzYWdlcwoJICBGb3JjZSBwcmludGYgZm9ybWF0IGNoZWNraW5nIGZvciBkZWJ1ZyBtZXNzYWdlcyBpZiBHU1RfRElTQUJMRV9QUklOVEZfRVhURU5TSU9OCgkgIGlzIGRlZmluZWQuIFRoaXMgaXMgdXNlZnVsIHRvIHF1aWNrbHkgY2hlY2sgY29kZSBmb3IgcHJpbnRmIGZvcm1hdCBtaXNtYXRjaGVzCgkgIGluIGRlYnVnZ2luZyBtZXNzYWdlcyB0aGF0IHdvdWxkIHVzdWFsbHkgbm90IGJlIGNhdWdodCAod2l0aCBnbGliYytnY2MgYW5kCgkgIHByaW50ZiBleHRlbnNpb25zIGJlaW5nIHVzZWQpLgoJICBUbyB1c2U6IG1ha2UgY2xlYW47IG1ha2UgQ0ZMQUdTPSctZyAtTzIgLURHU1RfRElTQUJMRV9QUklOVEZfRVhURU5TSU9OJwoKMjAwOS0xMS0wNSAyMTowOToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBNYWtlIHN1cmUgd2UgdXNlIHRoZSBsb2NhbCBsaWJnc3RiYXNlIGFuZCBub3QgYSBzdHJheSBvdXRzaWRlIG9uZS4KCSAgVGhlb3JldGljYWxseSB3ZSBzaG91bGQgYWxzbyBkbyB0aGlzIGZvciBhbGwgbG9jYWwgbGlicmFyaWVzIHRvIG1ha2Ugc3VyZQoJICB3ZSBkb24ndCB0ZXN0IHdpdGggYSAnc3RyYXknIG91dHNpZGUgbGlicmFyeS4KCjIwMDktMTEtMDUgMTg6MzY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDA5LTExLTA1IDE1OjU5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIGxvb2tpbmcgdXAgR3N0VGFnSW5mbyB0d2ljZSBpbiBhIHJvdwoJICBQYXNzIHRoZSBpbmZvIHN0cnVjdHVyZSB0byBvdXIgaW50ZXJuYWwgZnVuY3Rpb24gaWYgYWxyZWFkeSBhdmFpbGFibGUuCgkgIEFsc28gY2xlYW4gdXAgd2FybmluZ3MgZm9yIHVua25vd24gdGFncy4KCjIwMDktMTEtMDUgMTg6NTU6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgZ3N0cmVnaXN0cnljaHVua3M6IFdlJ3JlIGNlcnRhaW4gcGx1Z2luX25hbWUgaXMgYW4gaW50ZXJuIHN0cmluZy4KCSAgVGhlIG9ubHkgcGxhY2UgdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gY3JlYXRlcyB0aGUgcGx1Z2luX25hbWUgYXJndW1lbnQKCSAgd2l0aCBnX2ludGVybl9zdHJpbmcoKS4KCSAgU2hhdmVzIG9mZiAxJSBmcm9tIHJlZ2lzdHJ5IGxvYWRpbmcuCgoyMDA5LTExLTA0IDE5OjMzOjU4ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBpbXBsZW1lbnQgYnVmZmVyaW5nLWxlZnQgYXJndW1lbnQgdG8gYnVmZmVyIG1lc3NhZ2VzCgkgIFVzaW5nIHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwgb2YgdGhlIHF1ZXVlLCBhbmQgdGhlIGF2ZXJhZ2UgaW5wdXQKCSAgcmF0ZSwgd2UgY2FuIGRldGVybWluZSBob3cgbG9uZyBpdCB3aWxsIHRha2UgdG8gZmluaXNoIGRvd25sb2FkaW5nCgkgIHRoZSB3aG9sZSBzdHJlYW0gdG8gdGhlIHRlbXBvcmFyeSBmaWxlLgoJICBGaXhlcyAjNjAwNzI2CgoyMDA5LTExLTA1IDE1OjEzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTExLTA1IDE0OjAyOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggbG9ja2luZwoKMjAwOS0xMS0wNSAxNDoyOTo1MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBkb24ndCByZWxlYXNlIG11dGV4IHR3aWNlCgoyMDA5LTExLTA1IDE0OjI5OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNraXAgdHlwZSBjaGVjayBpbiBpbnRlcm5hbCBhcGkKCjIwMDktMTEtMDUgMTI6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5kZW50YXRpb24gZml4CgoyMDA5LTExLTA1IDEyOjU0OjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBuZXcgYXBpIGZyb20gX3JlZmVkIHRvIF9yZWZmZWQuCgkgIER1ZSB0byBwb3B1bGFyIGRlbWFuZCByZW5hbWUgdGhlIG5ldyBhcGkgYXMgd2Ugc3RpbGwgY2FuLgoJICBBUEk6IGdzdF9wYWRfZ2V0X2NhcHNfcmVmZmVkKCksIGdzdF9wYWRfcGVlcl9nZXRfY2Fwc19yZWZmZWQoKQoKMjAwOS0xMS0wNCAyMjo0Mjo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYWNjZXNzIHBhZHRlbXBsYXRlIGxpc3QgZGlyZWN0bHkgdG8gYXZvaWQgY2FsbCBhbmQgdHlwZSBjaGVjay4KCjIwMDktMTEtMDQgMTg6NTg6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgYSBGSVhNRSAwLjExIGZvciBoYXZpbmcgZmx1c2ggZXZlbnRzIHRoYXQgZG9uJ3QgcmVzZXQgcnVubmluZyB0aW1lCgoyMDA5LTExLTA0IDE3OjUyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBhIHByaW50ZiBjb21waWxlIHdhcm5pbmcgb24gNjQtYml0IHBsYXRmb3JtcwoKMjAwOS0xMS0wNCAxNzoxNTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IE1ha2Ugc3VyZSB0aGF0IG5vYm9keSBzZXRzIHRoZSBwcm94eXBhZCBvciBnaG9zdHBhZCBpdHNlbGYgYXMgdGFyZ2V0CgkgIERvaW5nIHRoaXMgd2lsbCBsZWFkIHRvIHZlcnkgaW50ZXJlc3RpbmcgY3Jhc2hlcywgbGlrZSBzdGFjayBvdmVyZmxvd3MuCgoyMDA5LTExLTA0IDExOjM1OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBwbHVnaW4gbG9hZGVyOiBEb24ndCBmYWlsIGFmdGVyIGEgc2hvcnQgcmVhZC93cml0ZQoJICBUaGUgbG9naWMgdG8gaGFuZGxlIHNob3J0IHJlYWRzL3dyaXRlcyB3YXMgaW5jb3JyZWN0LCBjYXVzaW5nIHRoZQoJICBwYWNrZXQgaGFuZGxlciB0byBhdHRlbXB0IHRvIGhhbmRsZSBpbmNvbXBsZXRlIHBhY2tldHMuCgkgIEdyb3cgdGhlIHBhY2tldCB0cmFuc21pdCBidWZmZXIgaW4gcHJvcG9ydGlvbiB0byBvYnNlcnZlZCB1c2FnZSwKCSAgY2F1c2luZyBmZXdlciByZWFsbG9jcy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbiB0aGUgcmVnaXN0cnkgY2h1bmtzIGNvZGUuCgoyMDA5LTExLTA0IDAxOjUxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbiBsb2FkZXI6IERvbid0IGNyYXNoIG9uIGJvZ3VzIHBsdWdpbiBkZXRhaWxzCgkgIFdoZW4gaW52YWxpZCByZWdpc3RyeSBjaHVua3MgYXJlIHJlY2VpdmVkIGZyb20gdGhlIGNoaWxkLCBhbmQgcGFyc2luZwoJICBmYWlscywgZG9uJ3QgYWNjZXNzIGFuIGludmFsaWQgcGx1Z2luIHBvaW50ZXIuIEluc3RlYWQgYXR0ZW1wdCB0bwoJICBmaWd1cmUgb3V0IHdoaWNoIHBsdWdpbiBjYXVzZWQgdGhlIHByb2JsZW0gYW5kIGJsYWNrbGlzdCBpdC4KCjIwMDktMTEtMDQgMDE6NTQ6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IFVzZSB0aGUgc2FtZSBsb2dpYyB0byBmaW5kIGdudWluZGVudCBhcyB0aGUgZ2l0IGhvb2sKCjIwMDktMTEtMDMgMTc6MzA6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIGJ1aWxkOiBpbmNsdWRlIHN0ZGlvLmggZm9yIEZJTEUKCjIwMDktMTEtMDMgMDE6MTg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBhZGQgYW5vdGhlciBleGFtcGxlIHRvIHRoZSBnc3QtbGF1bmNoIG1hbiBwYWdlCgkgIEFkZCBhbiBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIHJlZmVyIHRvIHNwZWNpZmljIHBhZHMgYnkgbmFtZQoJICB3aGVuIGNvbnN0cnVjdGluZyBhIHBpcGVsaW5lIHN0cmluZy4gRml4ZXMgIzYwMDM4Mi4KCjIwMDktMTEtMDIgMDg6NDg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGdzdHR5cGVmaW5kOiBhdm9pZCBvbmUgbW9yZSBydW4tdGltZSB0eXBlIGNoZWNrCgoyMDA5LTExLTAyIDA5OjIyOjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBUEk6IEFkZCBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZHssX3R5cGVkfQoKMjAwOS0xMS0wMiAwODoyODoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBnc3R0eXBlZmluZDogVXNlIF9DQVNUIHZhcmlhbnRzIHdoZW4gdGhlIHR5cGUgaGFzIGFscmVkeSBiZWVuIGNoZWNrZWQuCgkgIFRoaXMgYXZvaWRzIGNoZWNraW5nIHRoZSB0eXBlIG5fdHlwZWZpbmRlcnMgKiA0IHRpbWVzIHdoZW4gbG9hZGluZyB0aGUKCSAgcmVnaXN0cnkuCgoyMDA5LTExLTAxIDExOjI0OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogSW1wbGVtZW50IGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MKCSAgVGhlIGludGVybmFsbHkgbGlua2VkIHBhZCBvZiB0aGUgZ2hvc3QgcGFkIGlzIGl0cwoJICBwcm94eSBwYWQsIHdoaWNoIGlzIHRoZSBwYWQgdGhhdCBpcyBsaW5rZWQgdG8gdGhlIGdob3N0CgkgIHBhZHMgdGFyZ2V0LgoKMjAwOS0xMC0zMSAxNjo1NjoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IE1ha2Ugc3VyZSB0aGF0IHNpZ25hbCB1c2VyIGRhdGEgaXMgZnJlZWQgYnkgc2V0dGluZyBhIEdDbG9zdXJlTm90aWZ5CgkgIC4uLmluc3RlYWQgb2YgdXNpbmcgYSBzZWNvbmQgbWVjaGFuaXNtIGFuZCBzdG9yaW5nIHRoZSB1c2VyIGRhdGEKCSAgaW5zaWRlIHRoZSBHT2JqZWN0cyBxZGF0YS4KCjIwMDktMTAtMzEgMTY6NDk6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBzdHJ1Y3RzCgoyMDA5LTEwLTMxIDE2OjQzOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogQWx3YXlzIGdldCBEZWxheWVkTGluayBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvYmplY3RzIHFkYXRhCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGl0IGlzIGFsd2F5cyB2YWxpZC4KCjIwMDktMTAtMzEgMDk6NDg6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHF1ZXVlMiBoYXMgbW92ZWQgdG8gY29yZQoKMjAwOS0xMC0yOSAxMTo0MTozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIHF1ZXVlMjogQWRkIHRvIHRoZSBkb2NzCgoyMDA5LTEwLTI5IDExOjM4OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlICJRdWV1ZSAyIiBhcyBsb25nIG5hbWUKCjIwMDktMTAtMjkgMTE6MzU6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgR1NUX0JPSUxFUlBMQVRFX0ZVTEwoKSBhbmQgYWRkIHBhZCB0ZW1wbGF0ZXMvc2V0IGRldGFpbHMgaW4gYmFzZV9pbml0CgoyMDA5LTEwLTI5IDExOjMwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpCgoyMDA5LTEwLTI5IDExOjMwOjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBJbnRlZ3JhdGUgaW50byBjb3JlcGx1Z2lucwoKMjAwOS0xMC0yOSAxMToyMTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IE1vdmUgc3RydWN0IGRlY2xhcmF0aW9ucyB0byBhIHNlcGFyYXRlIGhlYWRlcgoKMjAwOS0xMC0yOSAxMToxODoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE1vdmUgcXVldWUyIHRvIGdzdHJlYW1lciBjb3JlcGx1Z2lucwoJICBGaXhlcyBidWcgIzU5OTk5Ni4KCjIwMDktMTAtMjggMDA6NTk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHNpeHRlZW50aCBvZiBhIHBvbGFyIGJlYXIuCgoyMDA5LTEwLTI3IDE1OjIzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbgoKMjAwOS0wOC0wNiAxMjoxODozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gcGF1c2luZyB0YXNrIGlmIHNvIGFwcHJvcHJpYXRlCgkgIElmIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgYW4gZXJyb3Igd2hpbGUgdXBzdHJlYW0gaGFzIGFscmVhZHkKCSAgcHV0IGFsbCBkYXRhIGludG8gcXVldWUyIChpbmNsdWRpbmcgRU9TKSwgdXBzdHJlYW0gd2lsbCBubyBsb25nZXIKCSAgY2hhaW4gaW50byBxdWV1ZTIsIHNvIGl0IGlzIHVwIHRvIHF1ZXVlMiB0byBwZXJmb3JtIHNvbWUKCSAgRU9TIGhhbmRsaW5nIC8gbWVzc2FnZSBwb3N0aW5nIGluIHN1Y2ggY2FzZXMuICBTZWUgIzU4OTk5MS4KCjIwMDktMDctMTQgMTc6MDM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGxlYWsgYW5kIGltcHJvdmUgYnVmZmVyaW5nCgkgIEtlZXAgdHJhY2sgb2YgdGhlIG1heCByZXF1ZXN0ZWQgcG9zaXRpb24gYW5kIGNvbXBhcmUgdGhpcyB0byB0aGUgd3JpdGUgcG9zaXRpb24KCSAgaW4gdGhlIHRlbXAgZmlsZSB0byBnZXQgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGJ1ZmZlcmVkIGRhdGEuCgkgIEZpeCBtZW1sZWFrIG9mIGFsbCBpbmNvbW1pbmcgYnVmZmVycy4KCSAgRml4ZXMgIzU4ODU1MQoKMjAwOS0wNy0xMCAyMTowMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmbHVzaCBkaWZmZXJlbnRseSwgYXZvaWRpbmcgZGVhZGxvY2tzCgkgIERvbid0IGZsdXNoIHRoZSBmaWxlIGJ5IGNsb3NpbmcgYW5kIG9wZW5pbmcgaXQgYnV0IGluc3RlYWQgdXNlIGdfZnJlb3Blbi4gVGhpcwoJICBhdm9pZHMgYSBkZWFkbG9jayBpbiBzaHV0ZG93biBiZWNhdXNlIHdlIGVtaXQgdGhlIHRlbXAtbG9jYXRpb24gcHJvcGVydHkgY2hhbmdlCgkgIHdpdGggdGhlIHdyb25nIGxvY2sgaGVsZC4KCjIwMDktMDctMTAgMTk6NDk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHRlbXAtdGVtcGxhdGUgcHJvcGVydHkKCSAgQWRkIGEgbmV3IHRlbXAtdGVtcGxhdGUgcHJvcGVydHkgc28gdGhhdCBxdWV1ZTIgY2FuIHNlY3VyZWx5IGFsbG9jYXRlIGEKCSAgdGVtcG9yYXJ5IGZpbGVuYW1lLiBEZXByZWNhdGUgdGhlIHRlbXAtbG9jYXRpb24gcHJvcGVydHkgZm9yIHNldHRpbmcgdGhlCgkgIGxvY2F0aW9uIGJ1dCBzdGlsbCB1c2UgaXQgdG8gbm90aWZ5IHRoZSBhbGxvY2F0ZWQgdGVtcCBmaWxlLgoKMjAwOS0wMy0yMCAxNDoxNzoxOSArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHdpbjMyOiBmaXggc2Vla2luZyBpbiBsYXJnZSBmaWxlcwoJICBGaXggU2Vla2luZyBpbiBsYXJnZSBmaWxlcyBieSB1c2luZyB0aGUgNjQtYml0IHNlZWsgZnVuY3Rpb25zLgoJICBGaXhlcyAjNTc2MDE5CgoyMDA4LTA4LTA3IDE1OjU4OjU4ICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGV4dC9hbHNhL2dzdGFsc2FwbHVnaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvY2RwYXJhbm9pYS9nc3RjZHBhcmFub2lhc3JjLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L29nZy9nc3RvZ2dkZW11eC5jOiAoZ3N0X29nZ19kZW11eF9wbHVnaW5faW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NyYy5jOiAoX2RvX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9wYnV0aWxzL3BidXRpbHMuYzogKGdzdF9wYl91dGlsc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvdGFnL3RhZ3MuYzogKGdzdF90YWdfcmVnaXN0ZXJfdGFnc19pbnRlcm5hbCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9wbHVnaW5faW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGwuYzogKHBsdWdpbl9pbml0KToKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyCgkgIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCjIwMDgtMDctMTAgMjE6MDY6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENsZWFudXAgUGx1Z2luIGRvY3MuIExpbmsgdG8gc2lnbmFscyBhbmQgcHJvcGVydGllcy4gRml4IHN1Yi1zZWN0aW9uIHRpdGxlcy4gRHJvcCBtZW50aW5pbmcgdGhhdCBhbGwgb3VyIGV4YW1wbGUgcGlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLW92ZXJyaWRlcy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hZGRlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsc2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2NvbnZlcnQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3JhdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3Jlc2FtcGxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW90ZXN0c3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2RwYXJhbm9pYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlY29kZWJpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZmbXBlZ2NvbG9yc3BhY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nbm9tZXZmcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxpYnZpc3VhbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9nZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBhbmdvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcGxheWJhY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWV1ZTIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdWJwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRjcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRoZW9yYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXR5cGVmaW5kZnVuY3Rpb25zLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdXJpZGVjb2RlYmluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3JhdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3NjYWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW90ZXN0c3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm9sdW1lLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm9yYmlzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXh2aW1hZ2VzaW5rLnhtbDoKCSAgKiBleHQvYWxzYS9nc3RhbHNhbWl4ZXIuYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhc2luay5jOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzcmMuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3NpbmsuYzoKCSAgKiBleHQvZ2lvL2dzdGdpb3NyYy5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc2luay5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc3JjLmM6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc2luay5jOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NyYy5jOgoJICAqIGV4dC9vZ2cvZ3N0b2dnZGVtdXguYzoKCSAgKiBleHQvb2dnL2dzdG9nZ211eC5jOgoJICAqIGV4dC9wYW5nby9nc3RjbG9ja292ZXJsYXkuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dHJlbmRlci5jOgoJICAqIGV4dC9wYW5nby9nc3R0aW1lb3ZlcmxheS5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFlbmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYXBhcnNlLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2VuYy5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzcGFyc2UuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc3RhZy5jOgoJICAqIGdzdC9hZGRlci9nc3RhZGRlci5jOgoJICAqIGdzdC9hdWRpb2NvbnZlcnQvZ3N0YXVkaW9jb252ZXJ0LmM6CgkgICogZ3N0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAqIGdzdC9hdWRpb3Rlc3RzcmMvZ3N0YXVkaW90ZXN0c3JjLmM6CgkgICogZ3N0L2ZmbXBlZ2NvbG9yc3BhY2UvZ3N0ZmZtcGVnY29sb3JzcGFjZS5jOgoJICAqIGdzdC9nZHAvZ3N0Z2RwZGVwYXkuYzoKCSAgKiBnc3QvZ2RwL2dzdGdkcHBheS5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOgoJICAqIGdzdC90Y3AvZ3N0bXVsdGlmZHNpbmsuYzoKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNpbmsuYzoKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOgoJICAqIGdzdC92aWRlb3NjYWxlL2dzdHZpZGVvc2NhbGUuYzoKCSAgKiBnc3QvdmlkZW90ZXN0c3JjL2dzdHZpZGVvdGVzdHNyYy5jOgoJICAqIGdzdC92b2x1bWUvZ3N0dm9sdW1lLmM6CgkgICogc3lzL3hpbWFnZS94aW1hZ2VzaW5rLmM6CgkgICogc3lzL3h2aW1hZ2UveHZpbWFnZXNpbmsuYzoKCSAgQ2xlYW51cCBQbHVnaW4gZG9jcy4gTGluayB0byBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLiBGaXggc3ViLXNlY3Rpb24KCSAgdGl0bGVzLiBEcm9wIG1lbnRpbmluZyB0aGF0IGFsbCBvdXIgZXhhbXBsZSBwaXBlbGluZXMgYXJlICJzaW1wbGUiCgkgIHBpcGVsaW5lcy4KCjIwMDgtMDYtMjQgMTY6MjI6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRG8gbm90IGRvdWJsZSBub3RpZnkuIFJlbW92ZSB0aGUgdW5zdWVkIHJldHVybiB2YWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBEbyBub3QgZG91YmxlIG5vdGlmeS4gUmVtb3ZlIHRoZSB1bnN1ZWQgcmV0dXJuIHZhbHVlLgoKMjAwOC0wNC0xMSAwMToyNTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtleWZyYW1lLWZvcmNlLnR4dDogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtleWZyYW1lLWZvcmNlLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFNldCBidWZmZXJpbmcgbW9kZSBpbiB0aGUgbWVzc2FnZXMuCgkgIFNldCBidWZmZXJpbmcgcGVyY2VudCBpbiB0aGUgcXVlcnkuCgkgICogdGVzdHMvZXhhbXBsZXMvc2Vlay9zZWVrLmM6ICh1cGRhdGVfZmlsbCksIChtc2dfc3RhdGVfY2hhbmdlZCksCgkgIChkb19zdHJlYW1fYnVmZmVyaW5nKSwgKGRvX2Rvd25sb2FkX2J1ZmZlcmluZyksIChtc2dfYnVmZmVyaW5nKToKCSAgRG8gc29tZSBtb3JlIGZhbmN5IHRoaW5ncyBiYXNlZCBvbiB0aGUgYnVmZmVyaW5nIG1ldGhvZCBpbiB1c2UuCgoyMDA4LTA0LTA5IDIxOjQwOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBJbmNsdWRlIGV4dHJhIGJ1ZmZlcmluZyBzdGF0cyBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2Nsb3NlX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc3JjX2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pOgoJICBJbmNsdWRlIGV4dHJhIGJ1ZmZlcmluZyBzdGF0cyBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2UuCgkgIEltcGxlbWVudCBCVUZGRVJJTkcgcXVlcnkuCgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZG9fYXN5bmNfc3RhcnQpLAoJICAoZG9fYXN5bmNfZG9uZSksICh0eXBlX2ZvdW5kKSwgKHNldHVwX3N0cmVhbWluZyksIChzZXR1cF9zb3VyY2UpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIE9ubHkgYWRkIGRlY29kZWJpbjIgd2hlbiB0aGUgdHlwZSBpcyBmb3VuZCBpbiBzdHJlYW1pbmcgbW9kZS4KCSAgTWFrZSB1cmlkZWNvZGViaW4gYXN5bmMgdG8gUEFVU0VEIGV2ZW4gd2hlbiB3ZSBkb24ndCBoYXZlIGRlY29kZWJpbjIKCSAgYWRkZWQgeWV0LgoKMjAwOC0wNC0wMiAxMTowODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXBkYXRlIHRoZSBlc3RpbWF0ZWQgaW5wdXQgZGF0YSB3aGVuIHdlIHB1c2ggb3V0IGEgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfb3V0X3JhdGVzKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBVcGRhdGUgdGhlIGVzdGltYXRlZCBpbnB1dCBkYXRhIHdoZW4gd2UgcHVzaCBvdXQgYSBidWZmZXIuCgkgIEFkZCBzb21lIGRlYnVnIGluZm8gYWJvdXQgdGhlIHRlbXAgZmlsZS4KCSAgT25seSBmb3J3YXJkIHNyYyBldmVudHMgd2hlbiB3ZSBhcmUgbm90IHVzaW5nIGEgdGVtcCBmaWxlLgoJICBEb24ndCBibG9jayB0aGUgZHVyYXRpb24gcXVlcnksIHdlIG5lZWQgdG8gZmluZCBzb21ldGhpbmcgYmV0dGVyLgoJICBEb24ndCBsZWFrIHRoZSB0ZW1wIGZpbGVuYW1lLgoKMjAwOC0wMy0yNCAxNDowODoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVGhlIHF1ZXVlIGlzIG5ldmVyIGZpbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBidWZmZXJzIGluIHRoZSBxdWV1ZSBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pc19maWxsZWQpOgoJICBUaGUgcXVldWUgaXMgbmV2ZXIgZmlsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGF0IGFsbC4KCSAgRml4ZXMgIzUyMzk5My4KCjIwMDgtMDMtMjIgMTU6MDA6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYW1peGVyZWxlbWVudC5jOgoJICAoZ3N0X2Fsc2FfbWl4ZXJfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBleHQvYWxzYS9nc3RhbHNhc2luay5jOiAoZ3N0X2Fsc2FzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzcmMuYzogKGdzdF9hbHNhc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9jZHBhcmFub2lhL2dzdGNkcGFyYW5vaWFzcmMuYzoKCSAgKGdzdF9jZF9wYXJhbm9pYV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zaW5rLmM6IChnc3RfZ2lvX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zcmMuYzogKGdzdF9naW9fc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc2luay5jOiAoZ3N0X2dpb19zdHJlYW1fc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3N0cmVhbXNyYy5jOiAoZ3N0X2dpb19zdHJlYW1fc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NpbmsuYzogKGdzdF9nbm9tZV92ZnNfc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzcmMuYzogKGdzdF9nbm9tZV92ZnNfc3JjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9vZ2cvZ3N0b2dnbXV4LmM6IChnc3Rfb2dnX211eF9jbGFzc19pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzogKGdzdF90ZXh0X292ZXJsYXlfY2xhc3NfaW5pdCk6CgkgICogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzogKGdzdF90ZXh0X3JlbmRlcl9jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOiAoZ3N0X3RoZW9yYV9kZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFlbmMuYzogKGdzdF90aGVvcmFfZW5jX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhcGFyc2UuYzogKGdzdF90aGVvcmFfcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNlbmMuYzogKGdzdF92b3JiaXNfZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2ZpbHRlcnRlbXBsYXRlLmM6CgkgIChnc3RfYXVkaW9fZmlsdGVyX3RlbXBsYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zaW5rLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zcmMuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvY2RkYS9nc3RjZGRhYmFzZXNyYy5jOgoJICAoZ3N0X2NkZGFfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2ludGVyZmFjZXMvbWl4ZXJ0cmFjay5jOgoJICAoZ3N0X21peGVyX3RyYWNrX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0YmFzZXJ0cGRlcGF5bG9hZC5jOgoJICAoZ3N0X2Jhc2VfcnRwX2RlcGF5bG9hZF9jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdGJhc2VydHBwYXlsb2FkLmM6CgkgIChnc3RfYmFzZXJ0cHBheWxvYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvY29udmVydC9nc3RhdWRpb2NvbnZlcnQuYzoKCSAgKGdzdF9hdWRpb19jb252ZXJ0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3JhdGUvZ3N0YXVkaW9yYXRlLmM6IChnc3RfYXVkaW9fcmF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgIChnc3RfYXVkaW9yZXNhbXBsZV9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW90ZXN0c3JjL2dzdGF1ZGlvdGVzdHNyYy5jOgoJICAoZ3N0X2F1ZGlvX3Rlc3Rfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nZHAvZ3N0Z2RwcGF5LmM6IChnc3RfZ2RwX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IChnc3RfcGxheV9iYXNlX2Jpbl9jbGFzc19pbml0KSwKCSAgKHByZXJvbGxfdW5saW5rZWQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmM6IChnc3RfcGxheV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtaW5mby5jOiAoZ3N0X3N0cmVhbV9pbmZvX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1zZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zdHJlYW1fc2VsZWN0b3JfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zdWJwYXJzZS9nc3RzdWJwYXJzZS5jOiAoZ3N0X3N1Yl9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdG11bHRpZmRzaW5rLmM6IChnc3RfbXVsdGlfZmRfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcGNsaWVudHNpbmsuYzogKGdzdF90Y3BfY2xpZW50X3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BjbGllbnRzcmMuYzogKGdzdF90Y3BfY2xpZW50X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNpbmsuYzogKGdzdF90Y3Bfc2VydmVyX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3RjcC9nc3R0Y3BzZXJ2ZXJzcmMuYzogKGdzdF90Y3Bfc2VydmVyX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOiAoZ3N0X3ZpZGVvX3JhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvc2NhbGUvZ3N0dmlkZW9zY2FsZS5jOiAoZ3N0X3ZpZGVvX3NjYWxlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3Rlc3RzcmMvZ3N0dmlkZW90ZXN0c3JjLmM6CgkgIChnc3RfdmlkZW9fdGVzdF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZvbHVtZS9nc3R2b2x1bWUuYzogKGdzdF92b2x1bWVfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxlbGVtZW50LmM6IChnc3RfdjRsZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bG1qcGVnc2luay5jOiAoZ3N0X3Y0bG1qcGVnc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bG1qcGVnc3JjLmM6IChnc3RfdjRsbWpwZWdzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bC9nc3R2NGxzcmMuYzogKGdzdF92NGxzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3hpbWFnZS94aW1hZ2VzaW5rLmM6IChnc3RfeGltYWdlc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOiAoZ3N0X3h2aW1hZ2VzaW5rX2NsYXNzX2luaXQpOgoJICBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZQoJICBzdGF0aWMgc3RyaW5ncyAoaS5lLiBhbGwpLiBUaGlzIGdpdmVzIHVzIGxlc3MgbWVtb3J5IHVzYWdlLAoJICBmZXdlciBhbGxvY2F0aW9ucyBhbmQgdGh1cyBsZXNzIG1lbW9yeSBkZWZyYWdtZW50YXRpb24uIERlcGVuZAoJICBvbiBjb3JlIENWUyBmb3IgdGhpcy4gRml4ZXMgYnVnICM1MjM4MDYuCgoyMDA3LTEyLTE0IDE4OjQ2OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVc2Ugc2VwYXJhdGUgdGltZXJzIGZvciBpbnB1dCBhbmQgb3V0cHV0IHJhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAocmVzZXRfcmF0ZV90aW1lciksICh1cGRhdGVfaW5fcmF0ZXMpLCAodXBkYXRlX291dF9yYXRlcyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCk6CgkgIFVzZSBzZXBhcmF0ZSB0aW1lcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgcmF0ZXMuCgkgIFBhdXNlIG1lYXN1cmluZyB0aGUgb3V0cHV0IHJhdGUgd2hlbiB3ZSBibG9jayBmb3IgbW9yZSBkYXRhLgoJICBTZWUgIzUwMzI2Mi4KCjIwMDctMTItMTQgMDk6MjQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFBhdXNlIHRoZSB0aW1lciB0byBtZWFzdXJlIHRoZSBpbnB1dCByYXRlIHdoZW4gd2UgYmxvY2sgYmVjYXVzZSB0aGUgcXVldWUgaXMgZmlsbGVkLiBTZWUgIzUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUGF1c2UgdGhlIHRpbWVyIHRvIG1lYXN1cmUgdGhlIGlucHV0IHJhdGUgd2hlbiB3ZSBibG9jayBiZWNhdXNlIHRoZQoJICBxdWV1ZSBpcyBmaWxsZWQuIFNlZSAjNTAzMjYyLgoKMjAwNy0xMS0zMCAxNzo0NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IFJlZmFjdG9yIHNvbWUgY29tbW9uIGNvZGUgdG8gZmlsdGVyIGZhY3RvcmllcyBhbmQgY2hlY2sgY2FwcyBjb21wYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZmFjdG9yeWxpc3RzLmM6IChjb21wYXJlX3JhbmtzKSwgKHByaW50X2ZlYXR1cmUpLAoJICAoZ2V0X2ZlYXR1cmVfYXJyYXkpLCAoZGVjb2RlcnNfZmlsdGVyKSwgKHNpbmtzX2ZpbHRlciksCgkgIChnc3RfZmFjdG9yeV9saXN0X2dldF9kZWNvZGVycyksIChnc3RfZmFjdG9yeV9saXN0X2dldF9zaW5rcyksCgkgIChnc3RfZmFjdG9yeV9saXN0X2ZpbHRlcik6CgkgICogZ3N0L3BsYXliYWNrL2dzdGZhY3RvcnlsaXN0cy5oOgoJICBSZWZhY3RvciBzb21lIGNvbW1vbiBjb2RlIHRvIGZpbHRlciBmYWN0b3JpZXMgYW5kIGNoZWNrIGNhcHMgY29tcGF0LgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluMi5jOiAoZ3N0X2RlY29kZV9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfZGVjb2RlX2Jpbl9pbml0KSwgKGdzdF9kZWNvZGVfYmluX2Rpc3Bvc2UpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfY29udGludWUpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfZmFjdG9yaWVzKSwKCSAgKGdzdF9kZWNvZGVfYmluX2F1dG9wbHVnX3NlbGVjdCksIChhbmFseXplX25ld19wYWQpLAoJICAoZmluZF9jb21wYXRpYmxlcyk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9wbGF5X2Jpbl9pbml0KSwgKGdzdF9wbGF5X2Jpbl9maW5hbGl6ZSksCgkgIChhdXRvcGx1Z19mYWN0b3JpZXNfY2IpLCAoYWN0aXZhdGVfZ3JvdXApOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChwcm94eV91bmtub3duX3R5cGVfc2lnbmFsKSwKCSAgKHByb3h5X2F1dG9wbHVnX2NvbnRpbnVlX3NpZ25hbCksCgkgIChwcm94eV9hdXRvcGx1Z19mYWN0b3JpZXNfc2lnbmFsKSwgKHByb3h5X2F1dG9wbHVnX3NlbGVjdF9zaWduYWwpLAoJICAocHJveHlfZHJhaW5lZF9zaWduYWwpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8gYW5kIHVzZSBmYWN0b3IgZmlsdGVyaW5nIGNvZGUuCgoyMDA3LTExLTE2IDE1OjQ0OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogQWRkIHBsYXliaW4yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL3Rlc3Q3LmM6ICh1cGRhdGVfc2NhbGUpLCAod2FybmluZ19jYiksIChlcnJvcl9jYiksCgkgIChlb3NfY2IpLCAoYWJvdXRfdG9fZmluaXNoX2NiKSwgKG1haW4pOgoJICBBZGQgcGxheWJpbjIuCgkgIEFkZGVkIGdhcGxlc3MgcGxheWJhY2sgZXhhbXBsZS4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uaDoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOiAoZ3N0X3BsYXlfYmluX3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgICogZ3N0L3BsYXliYWNrL3Rlc3QuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCksCgkgIChwYWRfcmVtb3ZlZF9jYik6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbWluZm8uaDoKCSAgQ2hhbmdlIGVtYWlsLgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2dldF90eXBlKSwKCSAgKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KSwgKGluaXRfZ3JvdXApLCAoZ3N0X3BsYXlfYmluX2luaXQpLAoJICAoZ3N0X3BsYXlfYmluX2Rpc3Bvc2UpLCAoZ3N0X3BsYXlfYmluX3NldF91cmkpLAoJICAoZ3N0X3BsYXlfYmluX3NldF9zdWJ1cmkpLCAoZ3N0X3BsYXlfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGxheV9iaW5fZ2V0X3Byb3BlcnR5KSwgKGdzdF9wbGF5X2Jpbl9oYW5kbGVfbWVzc2FnZSksCgkgIChwYWRfYWRkZWRfY2IpLCAocGFkX3JlbW92ZWRfY2IpLCAobm9fbW9yZV9wYWRzX2NiKSwgKHBlcmZvcm1fZW9zKSwKCSAgKGRyYWluZWRfY2IpLCAodW5saW5rX2dyb3VwKSwgKGFjdGl2YXRlX2dyb3VwKSwKCSAgKHNldHVwX25leHRfc291cmNlKSwgKGdzdF9wbGF5X2Jpbl9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BsYXlfYmluMl9wbHVnaW5faW5pdCk6CgkgIEFkZGVkIHJhdyBmaXJzdCB2ZXJzaW9uIG9mIHBsYXliaW4yLiBEb2VzIGNoYWluZWQgb2dncyBhbmQgZ2FwbGVzcwoJICBwbGF5YmFjayBmaW5lLiBObyBzdXBwb3J0IGZvciByYXcgc2lua3MgeWV0LiBObyB2aXN1YWxpc2F0aW9ucyBvcgoJICBzdWJ0aXRsZXMgeWV0LgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jOiAoZ3N0X3BsYXlfc2lua19nZXRfdHlwZSksCgkgIChnc3RfcGxheV9zaW5rX2NsYXNzX2luaXQpLCAoZ3N0X3BsYXlfc2lua19pbml0KSwKCSAgKGdzdF9wbGF5X3NpbmtfZGlzcG9zZSksIChnc3RfcGxheV9zaW5rX3Zpc191bmJsb2NrZWQpLAoJICAoZ3N0X3BsYXlfc2lua192aXNfYmxvY2tlZCksIChnc3RfcGxheV9zaW5rX3NldF92aWRlb19zaW5rKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X2F1ZGlvX3NpbmspLCAoZ3N0X3BsYXlfc2lua19zZXRfdmlzX3BsdWdpbiksCgkgIChnc3RfcGxheV9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfcGxheV9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChwb3N0X21pc3NpbmdfZWxlbWVudF9tZXNzYWdlKSwgKGZyZWVfY2hhaW4pLCAoYWRkX2NoYWluKSwKCSAgKGFjdGl2YXRlX2NoYWluKSwgKGdlbl92aWRlb19jaGFpbiksIChnZW5fdGV4dF9lbGVtZW50KSwKCSAgKGdlbl9hdWRpb19jaGFpbiksIChnZW5fdmlzX2VsZW1lbnQpLCAoZ3N0X3BsYXlfc2lua19nZXRfbW9kZSksCgkgIChnc3RfcGxheV9zaW5rX3NldF9tb2RlKSwgKGdzdF9wbGF5X3NpbmtfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X3BsYXlfc2lua19yZWxlYXNlX3BhZCksIChnc3RfcGxheV9zaW5rX3NlbmRfZXZlbnRfdG9fc2luayksCgkgIChnc3RfcGxheV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X3BsYXlfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5c2luay5oOgoJICBBZGRlZCBFbGVtZW50IHRoYXQgYWJzdHJhY3RzIHRoZSBzaW5rcyBhbmQgdGhlaXIgcGlwZWxpbmVzIGZvciBwbGF5YmluMi4KCjIwMDctMTAtMTUgMTE6Mzg6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gU2VlICM0ODY3NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gU2VlICM0ODY3NTguCgoyMDA3LTA5LTIxIDE0OjM3OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsYXRpb24gd3J0IHByaW50ZiBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9wdXNoX29uZSk6CgkgIEZpeCBjb21waWxhdGlvbiB3cnQgcHJpbnRmIGFyZ3VtZW50cy4KCjIwMDctMDktMTcgMTc6MjQ6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGEgYnVuY2ggb2YgY29tcGlsZSB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuYzogKGdzdF90ZXh0X292ZXJsYXlfaW5pdCksCgkgIChnc3RfdGV4dF9vdmVybGF5X3NldF9wcm9wZXJ0eSk6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNkZWMuYzogKHZvcmJpc19oYW5kbGVfZGF0YV9wYWNrZXQpOgoJICAqIGdzdC1saWJzL2dzdC9hdWRpby9nc3RiYXNlYXVkaW9zaW5rLmM6CgkgIChnc3RfYmFzZV9hdWRpb19zaW5rX3JlbmRlcik6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RydGNwYnVmZmVyLmM6IChnc3RfcnRjcF9udHBfdG9fdW5peCksCgkgIChnc3RfcnRjcF91bml4X3RvX250cCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0c3AvZ3N0cnRzcG1lc3NhZ2UuYzogKGdzdF9ydHNwX21lc3NhZ2VfZ2V0X3R5cGUpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9zZWVrL3NlZWsuYzogKHNldF9zY2FsZSk6CgkgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGUgd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCSAgKiBnc3QvYXVkaW9yYXRlL2dzdGF1ZGlvcmF0ZS5jOgoJICBBbHdheXMgcHVsbCBpbiBjb25maWcuaCBiZWZvcmUgaW5jbHVkaW5nIGFueSBzeXN0ZW0gaGVhZGVycy4KCjIwMDctMDktMTcgMTY6MjI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFsc28gZml4ICM0NzY1MTQgZm9yIHF1ZXVlMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBBbHNvIGZpeCAjNDc2NTE0IGZvciBxdWV1ZTIuCgoyMDA3LTA4LTEwIDEwOjA4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ2NTAyOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvdmlkZW9yYXRlL2dzdHZpZGVvcmF0ZS5jOgoJICBQcmludGYgZm9ybWF0IGZpeGVzICgjNDY1MDI4KS4KCjIwMDctMDYtMjggMTE6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVzZSBvdGhlciBtZXRyaWNzIGFzIHdlbGwgd2hlbiBlc3RpbWF0aW5nIHRoZSBidWZmZXIgbGV2ZWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGFwcGx5X3NlZ21lbnQpLCAodXBkYXRlX2J1ZmZlcmluZyk6CgkgIFVzZSBvdGhlciBtZXRyaWNzIGFzIHdlbGwgd2hlbiBlc3RpbWF0aW5nIHRoZSBidWZmZXIgbGV2ZWwuCgoyMDA3LTA2LTI4IDEwOjIxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHBsYXliYXNlYmluLmM6IFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogKG1ha2VfZGVjb2RlciksIChzZXR1cF9zb3VyY2UpOgoJICBTbWFsbCBkZWJ1ZyBpbXByb3ZlbWVudC4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChhcHBseV9zZWdtZW50KSwgKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAocGx1Z2luX2luaXQpOgoJICBUd2VhayB0aGUgcmF0ZSBlc3RpbWF0aW9uIHBlcmlvZC4KCSAgV2hlbiBjYWxjdWxhdGluZyB0aGUgYnVmZmVyIGZpbGxlZG5lc3MgaW4gcmF0ZSBlc3RpbWF0aW9uIG1vZGUsIGRvbid0CgkgIG1peCBpdCB3aXRoIG90aGVyIG1ldHJpY3MuCgoyMDA3LTA2LTE2IDAzOjQyOjE0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGUgZXJyb3IgZnJvbSBpZ25vcmVkIHJldHVybiB2YWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBGaXggY29tcGlsZSBlcnJvciBmcm9tIGlnbm9yZWQgcmV0dXJuIHZhbHVlLgoKMjAwNy0wNi0xMyAxODoyMDo1NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGJ1aWxkIG9uIE1hY09TWC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKToKCSAgRml4IGJ1aWxkIG9uIE1hY09TWC4KCjIwMDctMDYtMTIgMDg6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBhIGRpdmlzaW9uIGJ5IHplcm8gd2hlbiB0aGUgbWF4IHBlcmNlbnQgaXMgPD0gMC4gRml4ZXMgIzQ0NjU3Mi4gYWxzbyB1cGRhdGUgdGhlIGJ1ZmZlcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoZXMgYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSk6CgkgIEZpeCBhIGRpdmlzaW9uIGJ5IHplcm8gd2hlbiB0aGUgbWF4IHBlcmNlbnQgaXMgPD0gMC4gRml4ZXMgIzQ0NjU3Mi4KCSAgYWxzbyB1cGRhdGUgdGhlIGJ1ZmZlcmluZyBzdGF0dXMgd2hlbiByZWNlaXZpbmcgZXZlbnRzLiBGaXhlcyAjNDQ2NTUxLgoKMjAwNy0wNi0xMSAxMTozMjoyNiArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFdhaXQgZm9yIHByZXJvbGwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZm9yd2FyZCBhIGR1cmF0aW9uIHF1ZXJ5IHVwc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfcGVlcl9xdWVyeSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFdhaXQgZm9yIHByZXJvbGwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZm9yd2FyZCBhIGR1cmF0aW9uIHF1ZXJ5IHVwc3RyZWFtLgoJICBGaXhlcyAjNDQ1NTA1LgoKMjAwNy0wNi0wNyAwOToxMToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGNvbXBpbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfZ2V0X3JhbmdlKToKCSAgRml4IGNvbXBpbGF0aW9uLgoKMjAwNy0wNi0wNiAxMzozNjoyNiArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFkZCBwdWxsIGJhc2VkIHNjaGVkdWxpbmcgYW5kIGZpeCBzb21lIGRlYWRsb2Nrcy4gRml4ZXMgIzQ0NDUyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfZ2V0X3JhbmdlKSwgKGdzdF9xdWV1ZV9zcmNfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBBZGQgcHVsbCBiYXNlZCBzY2hlZHVsaW5nIGFuZCBmaXggc29tZSBkZWFkbG9ja3MuIEZpeGVzICM0NDQ1MjMuCgkgIERvZXMgbm90IHlldCBjb21wbGV0ZWx5IHdvcmsgYmVjYXVzZSBkdXJhdGlvbiBxdWVyaWVzIHVwc3RyZWFtIHdvbid0CgkgIGJsb2NrIHlldC4KCjIwMDctMDYtMDYgMDk6MDg6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIG1vcmUgZnNlZWtvIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCk6CgkgIFNvbWUgbW9yZSBmc2Vla28gY2hlY2tzLgoKMjAwNy0wNi0wNSAxNzowMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogSW5jbHVkZSBzdGRpbyB0byBkZWZpbmUgZnNlZWtvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaGF2ZV9kYXRhKSwKCSAgKGdzdF9xdWV1ZV9jcmVhdGVfcmVhZCksIChnc3RfcXVldWVfcmVhZF9pdGVtX2Zyb21fZmlsZSksCgkgIChnc3RfcXVldWVfb3Blbl90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKToKCSAgSW5jbHVkZSBzdGRpbyB0byBkZWZpbmUgZnNlZWtvLgoKMjAwNy0wNi0wNSAxNjoxNDoyMyArMDAwMCAgVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEFkZCBzdXBwb3J0IGZvciBmaWxlYmFzZWQgYnVmZmVyaW5nLiBGaXhlcyAjNDQxMjY0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3F1ZXVlX3dyaXRlX2J1ZmZlcl90b19maWxlKSwgKGdzdF9xdWV1ZV9oYXZlX2RhdGEpLAoJICAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKSwgKGdzdF9xdWV1ZV9yZWFkX2l0ZW1fZnJvbV9maWxlKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaXNfZW1wdHkpLCAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksCgkgIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwgKGdzdF9xdWV1ZV9zZXRfdGVtcF9sb2NhdGlvbiksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KToKCSAgQWRkIHN1cHBvcnQgZm9yIGZpbGViYXNlZCBidWZmZXJpbmcuIEZpeGVzICM0NDEyNjQuCgoyMDA3LTA1LTE3IDE1OjIyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBUd2VhayB0aGUgYnVmZmVyaW5nIHRocmVzaG9sZHMgYSBsaXR0bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9yYXRlcyk6CgkgIFR3ZWFrIHRoZSBidWZmZXJpbmcgdGhyZXNob2xkcyBhIGxpdHRsZS4KCSAgVXBkYXRlIHRoZSBidWZmZXIgc2l6ZSB3aXRoIHRoZSBwcmV2aW91c2x5IGNhbGN1bGF0ZSByYXRlIGluc3RlYWQgb2YKCSAgb25seSB3aGVuIHdlIGNhbGN1bGF0ZSBhIG5ldyByYXRlIHNvIHRoYXQgd2UgZ2V0IHNtb290aGVyIGJ1ZmZlcmluZwoJICB1cGRhdGVzLgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fYmFzZV9pbml0KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9pbml0KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9maW5hbGl6ZSksIChnc3RfdXJpX2RlY29kZV9iaW5fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF91cmlfZGVjb2RlX2Jpbl9nZXRfcHJvcGVydHkpLCAodW5rbm93bl90eXBlKSwKCSAgKGFkZF9lbGVtZW50X3N0cmVhbSksIChub19tb3JlX3BhZHNfZnVsbCksIChub19tb3JlX3BhZHMpLAoJICAoc291cmNlX25vX21vcmVfcGFkcyksIChuZXdfZGVjb2RlZF9wYWQpLCAoYXJyYXlfaGFzX3ZhbHVlKSwKCSAgKGdlbl9zb3VyY2VfZWxlbWVudCksIChoYXNfYWxsX3Jhd19jYXBzKSwgKGFuYWx5c2Vfc291cmNlKSwKCSAgKHJlbW92ZV9kZWNvZGVycyksIChtYWtlX2RlY29kZXIpLCAocmVtb3ZlX3NvdXJjZSksCgkgIChzb3VyY2VfbmV3X3BhZCksIChzZXR1cF9zb3VyY2UpLCAoZGVjb2Rlcl9xdWVyeV9pbml0KSwKCSAgKGRlY29kZXJfcXVlcnlfZHVyYXRpb25fZm9sZCksIChkZWNvZGVyX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLAoJICAoZGVjb2Rlcl9xdWVyeV9wb3NpdGlvbl9mb2xkKSwgKGRlY29kZXJfcXVlcnlfcG9zaXRpb25fZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X2xhdGVuY3lfZm9sZCksIChkZWNvZGVyX3F1ZXJ5X2xhdGVuY3lfZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X3NlZWtpbmdfZm9sZCksIChkZWNvZGVyX3F1ZXJ5X3NlZWtpbmdfZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X2dlbmVyaWNfZm9sZCksIChnc3RfdXJpX2RlY29kZV9iaW5fcXVlcnkpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NoYW5nZV9zdGF0ZSksIChwbHVnaW5faW5pdCk6CgkgIE5ldyBlbGVtZW50IHRoYXQgaW50ZXJncmF0ZXMgYSBzb3VyY2UsIG9wdGlvbmFsIGJ1ZmZlcmluZyBlbGVtZW50IGFuZAoJICBkZWNvZGViaW4uCgoyMDA3LTA1LTE3IDEzOjM2OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBmaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLAoJICAoYXBwbHlfc2VnbWVudCksIChhcHBseV9idWZmZXIpLCAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChyZXNldF9yYXRlX3RpbWVyKSwgKHVwZGF0ZV9yYXRlcyksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9pc19maWxsZWQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfbG9vcCksCgkgIChwbHVnaW5faW5pdCk6CgkgIGZpeCBidWlsZC4KCjIwMDctMDUtMTcgMTE6NTc6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBPbiBvdXIgd2F5IHRvIHBsYXliaW4yIHRoaXMgaXMgdGhlIG5ldyBuZXR3b3JrIHF1ZXVlIHRoYXQgZG9lcyBidWZmZXJpbmcgYWxsIGJ5IGl0c2VsZiB1c2luZyBoaWdoIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCksIChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZmluYWxpemUpLAoJICAoZ3N0X3F1ZXVlX2dldGNhcHMpLCAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9xdWV1ZV9hY2NlcHRjYXBzKSwgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X3NlZ21lbnQpLAoJICAoYXBwbHlfYnVmZmVyKSwgKHVwZGF0ZV9idWZmZXJpbmcpLCAocmVzZXRfcmF0ZV90aW1lciksCgkgICh1cGRhdGVfcmF0ZXMpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfaXNfZW1wdHkpLAoJICAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KSwgKHBsdWdpbl9pbml0KToKCSAgT24gb3VyIHdheSB0byBwbGF5YmluMiB0aGlzIGlzIHRoZSBuZXcgbmV0d29yayBxdWV1ZSB0aGF0IGRvZXMgYnVmZmVyaW5nCgkgIGFsbCBieSBpdHNlbGYgdXNpbmcgaGlnaCBhbmQgbG93IHdhdGVybWFya3MuIEl0IGNhbiBhbHNvIG1lYXN1cmUgdXAgYW5kCgkgIGRvd25zdHJlYW0gYmFuZHdpZHRoIHRvIG9wdGltYWxseSBzaXplIHRoZSBxdWV1ZS4KCjIwMDktMTAtMjggMjI6MDM6NDQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IEZpeCBtZW1sZWFrIG9mIHVudXNlZCBkZWxheWVkIGxpbmtzCgkgIEF0dGFjaCB0aGUgRGVsYXllZExpbmsgc3RydWN0dXJlIHRvIHRoZSBlbGVtZW50LCBzbyB0aGF0IHdoZW4KCSAgdGhlIGVsZW1lbnQgaXMgZGlzcG9zZWQsIHRoZSBEZWxheWVkTGluayBpcyBmcmVlZC4KCjIwMDktMDktMDkgMTU6Mzc6MTEgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBtYWtlIF9maXhhdGVfY2FwcygpIGFsc28gdHJ1bmNhdGUgd2hlbiBuZWVkZWQKCSAgVGhlIGRlZmF1bHQgZ3N0X3BhZF9maXhhdGVfY2FwcygpIHByZXZpb3VzbHkgd291bGQgb25seSBmaXhhdGUgZWFjaCBpbmRpdmlkdWFsCgkgIHN0cnVjdC4gSW4gY2FzZSB0aGVyZSBhcmUgbXVsdGlwbGUgc3RydWN0cywgdGhlIHJlc3VsdGluZyBjYXBzIHdvdWxkIHN0aWxsIG5vdAoJICBiZSBmaXhlZC4gSW4gdGhlIHNwaXJpdCBvZiBob3cgaW5kaXZpZHVhbCBzdHJ1Y3RzIGFyZSBmaXhhdGVkLCB0aGlzIHBhdGNoCgkgIGNoYW5nZXMgZ3N0X3BhZF9maXhhdGVfY2FwcygpIHRvIHJlbW92ZSBhbGwgYnV0IHRoZSBmaXJzdCBzdHJ1Y3QuCgkgIEZpeGVzICM1OTU4ODYKCjIwMDktMDktMjEgMTE6NDQ6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBmaXggZG9jcwoKMjAwOS0xMC0yOCAwOToyNjozMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBvcHRpbWlzYXRpb24gOiBVc2UgZ19vYmplY3RfbmV3diB3aGVyZSBwb3NzaWJsZS4KCSAgVGhpcyBhdm9pZHM6CgkgICogdHJpcGxlLWNoZWNraW5nIGZvciB0aGUgR1R5cGUgd2hlbiB0eXBlLWNoZWNraW5nIGlzIGVuYWJsZWQgKHNlZSAjNTk3MjYwKQoJICAqIEF2b2lkcyBnb2luZyB0aHJvdWdoIGFuIGV4cGVuc2l2ZSBuby1hcmd1bWVudCBjaGVja2luZyB3aGljaCBsYW5kZWQgaW4KCSAgZ2xpYi0yLjIyCgkgICogQXZvaWRzIGdvaW5nIHRocm91Z2ggMiBleHRyYWMgZnVuY3Rpb25zIChnX29iamVjdF9uZXcgLT4gZ19vYmplY3RfbmV3X3ZhbGlzdCkKCjIwMDktMTAtMjggMTA6MTU6MTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvY3M6IGluY2x1ZGUgYW5ub3RhdGlvbiBnbG9zc2FyeSB0byBoYXZlIHdvcmtpbmcgbGlua3MuCgoyMDA5LTEwLTI4IDEwOjE0OjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGFubm90YXRpb25zOiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X2luaXRfY2hlY2sgdG9vCgoyMDA5LTEwLTI4IDA5OjU4OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHRlbGwgbW9yZSBhYm91dCB3aGF0IGhhcHBlbnMgaW4gZ3N0X2luaXQuCgkgIEFkZCBsaW5rcyB0byBnc3RfdXBkYXRlX3JlZ2lzdHJ5IGFuZCB0aGUgZW52LXZhcnMuCgoyMDA5LTEwLTI4IDA5OjIxOjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gT0dJIGFuZCByZXBocmFzZSBzZWN0aW9ucyBkb2NzCgkgIFRoZSBPR0kgbGlua3MgYXJlIGRlYWQsIHNvIHJlbW92ZSB0aGVtLiBBbHNvIHJlbW92ZSB0aGUgcGFyYWdyYXBoIHRoYXQgcG9pbnRlZAoJICB0byBPR0kgYW5kIERTLiBPbmx5IG1lbnRpb25pbmcgRFMgdGhlcmUgbWFkZSBpdCBhIGJ1dCBwb2ludGxlc3MuIEFkZCBhIGdlbmVyaWMKCSAgcGFyYWdyYXBoIGluc3RlYWQgdGhhdCB0ZWxscyBhIGJpdCBhYm91dCB0aGUgdXNlY2FzZXMgZ3N0cmVhbWVyIGNvdmVycy4KCjIwMDktMTAtMjggMDA6Mjk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICBSZW1vdmUgR1NUX0RFQlVHX0ZVTkNQVFIgd2hlcmUgdGhleSdyZSBwb2ludGxlc3MKCSAgVGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiB1c2luZyBHU1RfREVCVUdfRlVOQ1BUUiB3aXRoIEdPYmplY3QKCSAgdmlydHVhbCBmdW5jdGlvbnMgc3VjaCBhcyBnZXRfcHJvcGVydHksIHNldF9wcm9wZXJ5LCBmaW5hbGl6ZSBhbmQKCSAgZGlzcG9zZSwgc2luY2UgdGhleSdsbCBuZXZlciBiZSB1c2VkIGJ5IGFueW9uZSBhbnl3YXkuIFNhdmVzIGEKCSAgZmV3IGJ5dGVzIGFuZCBwb3NzaWJseSBhIHRlbnRoIG9mIGEgcG9sYXIgYmVhci4KCjIwMDktMTAtMjggMDA6MDc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IHNwcmlua2xlIHNvbWUgR1NUX0RFQlVHX0ZVTkNQVFIKCjIwMDktMTAtMjcgMTU6NDc6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkZXNpZ246IGFkZCBzb21lIGlkZWFzIGZvciBTS0lQIG1vZGUgdHJpY2ttb2RlcwoKMjAwOS0xMC0yMyAxMDoyMDowMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBidWZmZXJpbmcgaXMgaW1wbGVtZW50ZWQgbm93CgoyMDA5LTEwLTIyIDIxOjI0OjI0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBtYWtlIHN1cmUgcGVyY2VudCBpbmNyZWFzZXMKCSAgS2VlcCB0cmFjayBvZiB0aGUgbGFzdCBwb3N0ZWQgcGVyY2VudCBtZXNzYWdlIGFuZCBtYWtlIHN1cmUgdGhlIG5leHQgcGVyY2VudAoJICBtZXNzYWdlcyBhcmUgc3RyaWN0bHkgaW5jcmVhc2luZy4KCjIwMDktMTAtMjIgMTY6Mzg6MTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcmVmYWN0b3IgYnVmZmVyaW5nIGNvZGUKCSAgTW92ZSB0aGUgYnVmZmVyaW5nIHVwZGF0ZSBjb2RlIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gY2FsbCBpdAoJICB3aGVuIHRoZSBidWZmZXJpbmcgc3RhdGUgY2hhbmdlcyBkdWUgdG8gRU9TLgoJICBBdm9pZCBkaXZpZGluZyBieSAwLgoKMjAwOS0xMC0yMiAxNDowOTowMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogYWRkIGJ1ZmZlcmluZyBzdXBwb3J0CgkgIEFkZCBzdXBwb3J0IGZvciBidWZmZXJpbmcgbW9kZSB3aGVyZSB3ZSBwb3N0IEJVRkZFUklORyBtZXNzYWdlcyBiYXNlZCBvbiB0aGUKCSAgbGV2ZWwgb2YgdGhlIHF1ZXVlcy4gSXQgY3VycmVudGx5IG9wZXJhdGVzIG9uIHRoZSBmaXJzdCBxdWV1ZSB0aGF0IGdvZXMgb3ZlciBvcgoJICB1bmRlciB0aGUgaGlnaC9sb3cgdGhyZXNob2xkcy4KCjIwMDktMTAtMjIgMTQ6MDc6MzEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG9uJ3QgY2hlY2sgdmlzaWJsZSBpdGVtcyBpbiBidWZmZXJpbmcKCSAgSW4gYnVmZmVyaW5nIG1vZGUgd2Ugd2FudCB0byBpZ25vcmUgdGhlIG1heCB2aXNpYmxlIGl0ZW1zIHRvIGRlY2lkZSB3aGVuIHRoZQoJICBxdWV1ZSBpcyBmaWxsZWQuIEluc3RlYWQsIHdlIG9ubHkgbG9vayBhdCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFuZC9vciB0aW1lIGluIHRoZQoJICBxdWV1ZS4KCjIwMDktMTAtMjEgMTE6MzA6NDAgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGhvb2sgdXAgbG93L2hpZ2ggcGVyY2VudAoJICBIb29rIHVwIHRoZSBsb3cvaGlnaCBwZXJjZW50IHByb3BlcnRpZXMgZm9yIHRoZSBidWZmZXJpbmcgbW9kZS4KCjIwMDktMTAtMjEgMTE6MjQ6NDcgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGhvb2sgdXAgcHJvcGVydHkgZm9yIGJ1ZmZlcmluZwoKMjAwOS0xMC0yMiAxNToyMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzbWFsbCBjbGVhbnVwcwoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2lvbgoJICBGaXggc29tZSB0eXBvCgoyMDA5LTEwLTIyIDA5OjQxOjUyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGFkZCBGSVhNRSBmb3Igd3JvbmcgY29kZQoJICBOZWVkcyBmdXJ0aGVyIGludmVzdGlnYXRpb24KCjIwMDktMTAtMjEgMTQ6MjA6MjkgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZml4IGRlYnVnIG91dHB1dAoKMjAwOS0xMC0yMSAxNDoxNTowNSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBzaGFkb3dpbmcgZnVuY3Rpb24gYXJndW1lbnQKCSAgRG9uJ3Qgc2hhZG93IHRoZSBzcSBhcmd1bWVudCBpbiB0aGUgdW5kZXJydW5fY2IgZnVuY3Rpb24gYnV0IHVzZQoJICBhIGRpZmZlcmVudCB2YXJpYWJsZSBuYW1lIHRvIGl0ZXJhdGUgdGhlIG90aGVyIHF1ZXVlcy4KCSAgVXNlIHRoZSBzYW1lIHZhcmlhYmxlIG5hbWUgaW4gdGhlIG92ZXJydW5fY2IgZnVuY3Rpb24uCgoyMDA5LTEwLTIxIDE0OjEyOjEyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IG1ha2UgcXVldWUgYXJnIGV4cGxpY2l0CgkgIE1ha2UgdGhlIHF1ZXVlIGFyZ3VtZW50IHRvIElTX0ZJTExFRCBleHBsaWNpdAoKMjAwOS0xMC0yMSAxMToxNzowOCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmaXggcHJvcGVydGllcwoJICBGaXggcHJvcGVydGllcywgbWFrZSB0aGUgZXh0cmEtc2l6ZSBwcm9wZXJ0aWVzIGFzIG5vdCBpbXBsZW1lbnRlZC4KCjIwMDktMTAtMjUgMjE6MzU6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGFsbG93IHRvIGhpZGUvc2hvdyBwYWQgc3RhdHVzIHdpdGggZ3JhcGhkZXRhaWxzIGZsYWcKCjIwMDktMTAtMjQgMTM6MTQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogUmVtb3ZlIG9ic29sZXRlIEZJWE1FCgkgIEl0J3Mgbm90IG5lY2Vzc2FyeSAoYW5kIG5vdCBhIGdvb2QgaWRlYSkgdG8gY2FjaGUgdGhlIHR5cGVmaW5kIGZhY3RvcnkKCSAgbGlzdCBhbnltb3JlLgoKMjAwOS0xMC0yNCAxMTo1ODoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiBwcml2YXRlIGlzIGEgQysrIGtleXdvcmQsIGRvbid0IHVzZSBpdAoJICAuLi5vdGhlcndpc2UgQysrIGNvbXBpbGVycyB3aWxsIGNvbXBsYWluIHdoZW4gaW5jbHVkaW5nIGdzdHJlZ2lzdHJ5LmgKCjIwMDktMTAtMjQgMTA6MjE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9jczogYWRkIFNpbmNlIHRhZyB0byBkb2NzIGZvciBuZXcgQVBJCgkgIEFuZCB0ZWxsIGd0ay1kb2MgdGhhdCBHc3RSZWdpc3RyeVByaXZhdGUgaXMgcHJpdmF0ZS4KCjIwMDktMTAtMjEgMDk6NDg6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kOiBLZWVwIHR5cGVmaW5kIGZhY3RvcmllcyBzb3J0ZWQgaW4gdGhlIHJlZ2lzdHJ5LiBGaXhlcyAjNTk5MTQ3CgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBkbyB0aGUgc29ydGluZyBldmVyeXRpbWUgd2UgdXNlIHR5cGVmaW5kCgkgIFRoZSBiZWhhdmlvdXIgb2YgZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9saXN0IGhhcyBzdWJ0bGVseSBjaGFuZ2VkCgkgIGluIHRoZSBzZW5zZSB0aGF0IHRoZSBvcmRlciB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQsIHdoZXJlYXMgbm93CgkgIGl0IHJldHVybnMgdGhlbSBzb3J0ZWQgYnkgcmFuayBhbmQgdGhlbiBieSBuYW1lLgoKMjAwOS0xMC0yMSAwOTo0NTo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogQ2FjaGUgZWxlbWVudCBhbmQgdHlwZWZpbmQgZmFjdG9yaWVzLiBGaXhlcyA1OTg4OTYKCSAgVGhpcyBhdm9pZHMgdW5uZWVkZWQgbGlzdC9maWx0ZXJpbmcgaWYgdGhlIHJlZ2lzdHJ5IGhhc24ndCBjaGFuZ2VkCgoyMDA5LTEwLTIxIDA5OjQwOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHBsdWdpbmZlYXR1cmU6IEFQSSA6IG5ldyBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9jb3B5KCkgbWV0aG9kCgkgIFRoaXMgYWxsb3dzIGNvcHlpbmcgQU5EIGluY3JlbWVudGluZyB0aGUgcmVmY291bnQgYXQgdGhlIHNhbWUgdGltZSwKCSAgYXZvaWRpbmcgYSBkb3VibGUgaXRlcmF0aW8gb2YgdGhlIEdMaXN0CgoyMDA5LTEwLTI0IDEwOjA1OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBnc3RyZWdpc3RyeTogQWRkIGEgY29va2llIGZvciBkZXRlY3RpbmcgZmVhdHVyZSBsaXN0IGNoYW5nZXMKCSAgV2UgYWxzbyBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZSwgc2luY2Ugd2Ugd2lsbCBuZWVkIHRvIGFkZCBtb3JlCgkgIGRhdGEgdGhlcmUgaW4gZm9sbG93aW5nIHBhdGNoZXMuCgoyMDA5LTEwLTIzIDEzOjE5OjA0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgbWVzc2FnZTogZG9uJ3QgdXNlIHR5cGVjaGVja2luZyBjYXN0IG1hY3JvcwoJICBTaW1wbHkgdXNlIGNhc3RpbmcgbWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIG1lc3NhZ2UgZmllbGRzIGxpa2Ugd2UgZG8gZm9yCgkgIGJ1ZmZlcnMgYW5kIGV2ZW50cy4gQXZvaWRzIHNvbWUgY29zdGx5IHR5cGVjaGVja2luZyB0aGF0IGRvZXMgbm90IHJlYWxseSBidXkgdXMKCSAgbXVjaC4KCjIwMDktMTAtMjMgMTM6MTM6NTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBSZXZlcnQgImdzdG1lc3NhZ2U6IEF2b2lkIGV4cGVuc2l2ZSBzcmMvdHlwZS90aW1lc3RhbXAgZmV0Y2guIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDYxY2Y5M2EzMzRiNzlhMmQ4NDkzZTUzMWNjNDRiYTQ1YTQyMDk4MDUuCgoyMDA5LTEwLTIzIDE3OjUxOjI3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZ3N0bWVzc2FnZTogQXZvaWQgZXhwZW5zaXZlIHNyYy90eXBlL3RpbWVzdGFtcCBmZXRjaC4KCSAgSWYgd2UndmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhIHZhbGlkIG1lc3NhZ2UsIHVzZSB0aGUgZW50cmllcwoJICBkaXJlY3RseS4KCjIwMDktMTAtMjMgMTc6NDc6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVc2UgaW5saW5lZCB2ZXJzaW9uIG9mIF9pc19hbnkoKS9faXNfZW1wdHkoKQoJICBDQVBTX0lTX0FOWSBhbmQgQ0FQU19JU19FTVBUWSBhcmUgdGhlIGVxdWl2YWxlbnQgb2YgdGhlaXIgZ3N0X2NhcHNfKgoJICBjb3VudGVycGFydCBleGNlcHQgdGhhdCB0aGV5IGF2b2lkIHRoZSB0eXBlY2hlY2tpbmcgYW5kIGFyZSBpbmxpbmVkLgoJICBDQVBTX0lTX0VNUFRZX1NJTVBMRSBvbmx5IGNoZWNrcyBmb3IgZW1wdHkgY2FwcyAod2l0aG91dCBjaGVja2luZyBpZgoJICB0aGUgY2FwcyBpcyBBTlkpLgoKMjAwOS0xMC0yMiAxNjo0MjoxMyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFRPRE86IGFkZCBpdGVtIHRvIFRPRE8gbGlzdAoJICBXZSBjdXJyZW50bHkgZG8gYSBsaXR0bGUgdG9vIG11Y2ggd29yayB3aGVuIHdlIHB1c2ggdGhlIGZpcnN0IGJ1ZmZlciBhcm91bmQKCSAgcmVzdWx0aW5nIGluIGV4Y2Vzc2l2ZSBjYXBzIGNoZWNraW5nLiBXZSBjYW4gcHJvYmFibHkgbWFrZSB0aGlzIGEgbGl0dGxlIGxlc3MKCSAgZXhwZW5zaXZlLgoKMjAwOS0xMC0yMiAxMjo1Mjo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGdzdHBpcGVsaW5lOiBTaW1wbGlmeSBiYXNlIHRpbWUgY2hlY2tpbmcgc2xpZ2h0bHkKCSAgU2ltcGxpZnkgY2hlY2tpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgYmFzZSB0aW1lIC0gZG9uJ3QgcmUtY2hlY2sKCSAgdGhlIHZhbHVlIG9mIGEgbG9jYWwgdmFyaWFibGUgdGhhdCB3YXMgc2V0IDMgbGluZXMgZWFybGllci4KCjIwMDktMTAtMjIgMTM6MTU6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogT3B0aW1pc2F0aW9uOiBBdm9pZCB0eXBlLWNoZWNraW5nIGluIHNvcnRpbmcgbWV0aG9kLgoJICBXZSBhbHJlYWR5IGtub3cgdGhlIGxpc3Qgb25seSBjb250YWlucyBwbHVnaW4gZmVhdHVyZXMKCjIwMDktMTAtMjIgMTM6MTM6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogT3B0aW1pc2F0aW9uIDogQ2FzdCB3aGVuIHdlJ3JlIHN1cmUgb2YgdGhlIHR5cGUuCgkgIEFsc28gZGlyZWN0bHkgYWNjZXNzIEdzdEVsZW1lbnRGYWN0b3J5LT51cmlfdHlwZSBpbnN0ZWFkIG9mIGdvaW5nCgkgIHRocm91Z2ggYSBmdW5jdGlvbiB0aGF0IHdpbGwgKG9uY2UgYWdhaW4pIGNoZWNrIHdoZXRoZXIgaXQncyBhCgkgIEdzdEVsZW1lbnRGYWN0b3J5CgoyMDA5LTEwLTIyIDEyOjMzOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHMvZmFrZXNpbms6IEFkZCBzb21lIGRlYnVnZ2luZwoKMjAwOS0xMC0yMiAxMjozMzowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzL2ZhZWtzaW5rOiBMb3dlciB0aGUgbnVtYmVyIG9mIHRocmVhZHMgdG8gYXZvaWQgdGltZW91dHMKCSAgV2UganVzdCBlbmQgdXAgd2l0aCB3YXkgdG9vIG11Y2ggY29udGVudGlvbiBpbiBnbGliIG90aGVyd2lzZS4KCjIwMDktMTAtMTkgMDk6MDY6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZ3N0cmVnaXN0cnk6IFVzZSBoYXNoIHRhYmxlIHdoZW4gZmluZGluZyBhIGZlYXR1cmUuIEZpeGVzICM1OTg4OTUKCjIwMDktMTAtMjEgMTY6MjY6MDEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGltcGxlbWVudCBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBJbXBsZW1lbnQgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBvbiB0aGUgc2lua3BhZC4gV2UgY2FuIGFjY2VwdCBhbnkgY2FwcyBhcwoJICBsb25nIGFzIGl0IGlzIGFjY2VwdGVkIGJ5IGFsbCBkb3duc3RyZWFtIHBlZXIgZWxlbWVudHMuCgoyMDA5LTEwLTIxIDEzOjM4OjU3IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBhdm9pZCBsb2NrIGZvciB0YWtpbmcgdGhlIGNvdW50ZXIKCSAgVGhlIGNvdW50ZXIgZm9yIGluY29tbWluZyBkYXRhIGlzIGFscmVhZHkgcHJvdGVjdGVkIHdpdGggdGhlIFNUUkVBTV9MT0NLIHNvIHdlCgkgIGRvbid0IG5lZWQgdG8gYWRkIGFub3RoZXIgbG9jayBhcm91bmQgaXQuCgoyMDA5LTEwLTIwIDIzOjI4OjU0IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICByZWdpc3RyeTogaGFzaCB0aGUgcGx1Z2luIGJhc2VuYW1lCgkgIE1haW50YWluIGEgaGFzaHRhYmxlIG9mIHRoZSBwbHVnaW4gYmFzZW5hbWUuIFdlIGNhbiB0aGVuIHVzZSB0aGlzCgkgIGhhc2h0YWJsZSB0byBzcGVlZHVwIHRoZSBzZWFyY2ggZm9yIGFuIGV4aXN0aW5nIHBsdWdpbiBhbmQgYXZvaWQKCSAgYSB3aG9sZSBsb3Qgb2Ygc3RyY21wIGNhbGxzLgoKMjAwOS0xMC0yMCAyMzoyNzo0MSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogc3BlZWQgdXAgX3N0cmxlbgoJICBNYWtlIHRoZSBfc3RybGVuIGZ1bmN0aW9uIGEgbGl0dGxlIHRpZ2h0ZXIKCjIwMDktMTAtMjAgMjE6NDM6NTggLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IG5hbWUgaXMgbmV2ZXIgTlVMTAoJICBXaGVuIGxvb2tpbmcgdXAgYSBmZWF0dXJlIGJ5IG5hbWUsIHdlIG5ldmVyIGNhbGwgdGhpcyBpbnRlcm5hbAoJICBmdW5jdGlvbiB3aXRoIE5VTEwgc28gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBmb3IgaXQuCgoyMDA5LTEwLTIwIDIxOjM5OjExIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiByZWZhY3RvciBwbHVnaW4gbG9va3VwCgkgIFdlIGtlZXAgbG9va3VwIHBsdWdpbnMgYnkgdGhlaXIgYmFzZW5hbWUuIEF2b2lkIGNyZWF0aW5nIGEgYmFzZW5hbWUKCSAgZnJvbSBhIGZpbGVuYW1lIGlmIHdlIGNhbi4KCjIwMDktMTAtMjAgMjE6MDE6NTUgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGRvIHF1aWNrIGNoZWNrIGZvciAuIGZpbGVzCgkgIERvIGEgcXVpY2sgY2hlY2sgZm9yIC4gZmlsZXMgYmVmb3JlIGNhbGxpbmcgdGhlIHN0cmNtcCBmdW5jdGlvbnMKCjIwMDktMTAtMjAgMTI6MjE6MDkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOgoJICBSZW1vdmUgZXhlY3V0YWJsZSBiaXRzIG9uIHhtbCB1bml0IHRlc3QuCgoyMDA5LTEwLTE5IDE2OjQ3OjEwICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IEZpeCBkb2NzIGZvciBnc3RfY2Fwc19zZXRfc2ltcGxlKCkKCjIwMDktMTAtMTkgMTM6MDI6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IE1vZGlmeSBkb2NzIHN0cmluZyBzbGlnaHRseS4KCSAgQXBwYXJlbnRseSBzdGFydGluZyB0aGUgbGFzdCBsaW5lIG9mIGEgZG9jcyBzdHJpbmcgd2l0aCAncmV0dXJucycgYm90aAoJICBjb25mdXNlcyBhbmQgZW5yYWdlcyBndGstZG9jLiBVc2UgYSBzbGlnaHRseSBkaWZmZXJlbnQgd29yZGluZyBpbnN0ZWFkLgoKMjAwOS0xMC0xOSAxMjoyOTozNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IFdoZW4gYSBwbHVnaW4gaXMgYmxhY2tsaXN0ZWQsIG91dHB1dCBhIEdTVF9FUlJPUiBsaW5lLgoKMjAwOS0xMC0xOSAxMzozMDoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0OiBDaGVjayB3ZSdyZSBub3QgaGFuZGxpbmcgTlVMTCBwb2ludGVycy4KCjIwMDktMTAtMTkgMTM6Mjk6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scy9nc3QtaW5zcGVjdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoKMjAwOS0xMC0xNCAxMDo1NDozMiArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IERvIG5vdCBwb2lzb24gZ3N0X3RyYWNlX2FkZF9lbnRyeSgpCgkgIFNpbmNlIGdzdF90cmFjZV9hZGRfZW50cnkoKSBpcyBhIG1hY3JvLCBnY2Mgd2lsbCBiYXJmIHdoZW4gaXQgaXMKCSAgZGVmaW5lZCBpbiBjYXNlIGl0IGhhcyBiZWVuIHBvaXNvbmVkIGR1ZSB0byB0cmFjZSBzdXBwb3J0IGJlaW5nCgkgIGRpc2FibGVkLgoKMjAwOS0xMC0xOCAyMzoxODo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBqdXN0IGNhc3QgaW4gaW50ZXJuYWwgQVBJIHdoZXJlIHdlIGhhdmUgY2hlY2tlZCBwYXJhbWV0ZXJzIGFscmVhZHkKCjIwMDktMTAtMTggMjM6MTU6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiB1c2UgZ19zbGljZSBmb3IgY29udHJvbGxlZCBwcm9wZXJ0eSBzdHJ1Y3R1cmVzCgkgIFVzZSBnX3NsaWRlIGluc3RlYWQgb2Ygbm9tYWwgZ19uZXcsIEFsc28gZG9uJ3QgaW5pdCBzdHJ1Y3Qgd2l0aCAwIGFzIHdlIG5lZWQgdG8KCSAgaW5pdCBpdCBhbnl3YXkgd2l0aCB0aGUgcmVhbCB2YWx1ZXMuCgkgIEFsc28gam9pbiB0aGUgMyBmbGFncyBjaGVja3MgaW50byBvbmUuCgoyMDA5LTEwLTE4IDE3OjE3OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBsaWJzL2Jhc2UvdHlwZWZpbmRoZWxwZXI6IFJlbW92ZSB1c2VsZXNzIHR5cGVjaGVja2luZyBpbiB0aWdodCBsb29wCgkgIFRoZSBsaXN0IGFnYWluc3Qgd2hpY2ggd2UgcnVuIHRoZSBjb21wYXJlZnVuYyB3aWxsIG9ubHkgY29udGFpbgoJICBHc3RQbHVnaW5GZWF0dXJlLCB0aGVyZWZvcmUgcmVtb3ZlIHRoZSA2IGV4cGVuc2l2ZSB0eXBlIGNoZWNrcyB3ZSBkbwoJICBmb3IgZXZlcnkgc2luZ2xlIGNvbXBhcmlzaW9uLgoKMjAwOS0xMC0xNiAxMjozOTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCB0eXBvIGluIGRvY3MKCjIwMDktMTAtMTYgMDk6NDM6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IEFkZCBuZXcgQVBJIHN5bWJvbAoKMjAwOS0xMC0xNiAxMDoxMzo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NWQxNTMwIHRvIDA3MDJmZTEKCjIwMDktMTAtMDcgMTU6MzI6MTggKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgSW1wcm92ZSBjYXBzIHNldHRlcnMgQVBJCgkgIFRoaXMgcGF0Y2ggYWRkcyBnc3RfY2Fwc19zZXRfdmFsdWUoKSBhbmQgYWxsb3dzIGdzdF9jYXBzX3NldF9zaW1wbGUoKSB0bwoJICB3b3JrIG9uIG5vbi1zaW1wbGUgY2Fwcy4gU2VlIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZ1bmN0aW9ucwoJICBhYm91dCB3aGF0IHRoZXkgZG8uCgkgIFRoZSBpbnRlbnRpb24gb2YgdGhlc2UgY2hhbmdlcyBpcyB0byBlYXNlIHdvcmtpbmcgd2l0aCBjYXBzIGluIGNhcHMKCSAgdHJhbnNmb3JtIGZ1bmN0aW9ucy4gQW4gZXhhbXBsZSBmb3IgdGhpcyB3b3VsZCBiZSBmZm1wZWdjb2xvcnNwYWNlLAoJICB3aGVyZSB0aGUgY2FwcyB0cmFuc2Zvcm0gZnVuY3Rpb24gY291bGQgYmUgY2hhbmdlZCB0byBsb29rIHJvdWdobHkgbGlrZQoJICB0aGlzIChwc2V1ZG9jb2RlIGFoZWFkKToKCSAgcmVzdWx0ID0gZ3N0X2NhcHNfY29weSAodGVtcGxhdGVfY2Fwcyk7CgkgIHZhbHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKGNhcHMsIDApLAoJICAid2lkaCIpOwoJICBnc3RfY2Fwc19zZXRfdmFsdWUgKHJlc3VsdCwgdmFsdWUpOwoJICAvKiBzYW1lIGZvciBoZWlnaHQsIGZyYW1lcmF0ZSBhbmQgcGFyICovCgkgIHJldHVybiBjYXBzOwoJICB3aGljaCBpcyBtdWNoIGNsZWFuZXIgYW5kIGVhc2llciB0byB1bmRlcnN0YW5kIHRoYW4gdGhlIGN1cnJlbnQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzY5MAoKMjAwOS0xMC0wMiAxMDoxNTo1NSArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvTWFrZWZpbGUuYW06CgkgIEFkZCBYTUxfTElCUyB3aGVuIGJ1aWxkaW5nIHRlc3RzIHRoYXQgdXNlIHhtbC1zcGVjaWZpYyBmdW5jdGlvbnMKCjIwMDktMTAtMTUgMTY6MzU6NTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL01ha2V2YXJzOgoJICBwbzogRG9uJ3QgY3JlYXRlIGJhY2t1cCAucG8gZmlsZXMKCSAgQXMgd2VsbCBhcyBwcmV2ZW50aW5nIGNyZWF0aW9uIG9mIHVzZWxlc3MgYmFja3VwIGZpbGVzLCBpdCB3b3JrcwoJICBhcm91bmQgYSBidWcgaW4gZ2V0dGV4dCAwLjE3IG9uIE9TL1gKCjIwMDktMTAtMTUgMTY6MzA6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJhY2UgaW4gUExBWUlORy0+UEFVU0VELT5QTEFZSU5HCgkgIFdoZW4gd2UgcXVpY2tseSBzd2l0Y2ggZnJvbSBQTEFZSU5HIHRvIFBBVVNFRCBhbmQgYmFjayB0byBQTEFZSU5HIGl0J3MgcG9zc2libGUKCSAgaW4gc29tZSBjYXNlcyB0aGF0IHRoZSB0YXNrIHJlZnVzZXMgdG8gc3RhcnQsIFRoaXMgaXMgYmVjYXVzZSB3aGVuIHdlIGdvIHRvCgkgIFBBVVNFRCwgd2UgdW5zY2hlZHVsZSB0aGUgY2xvY2sgdGltZW91dCwgd2hpY2ggY291bGQgcmV0dXJuIFVOU0NIRURVTEVEIHdoZW4KCSAgd2UncmUgYmFjayB0byBQTEFZSU5HLCBjYXVzaW5nIHRoZSB0YXNrIHRvIFBBVVNFIGFnYWluIHdpdGggYSB3cm9uZy1zdGF0ZS4KCSAgVGhpcyBwYXRjaCBjaGVja3MgaWYgd2UgYXJlIHJ1bm5pbmcgd2hlbiB3ZSByZXR1cm4gd2l0aCBhbiBVTlNDSEVEVUxFRCByZXR1cm4KCSAgdmFsdWUgYW5kIGlmIHdlIGFyZSwgdHJ5IHRvIGNyZWF0ZSBhIG5ldyBidWZmZXIuCgkgIEZpeGVzICM1OTc1NTAKCjIwMDktMTAtMTUgMTI6MTY6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgZG9jczogY2xhcmlmeSBwcmVzZXQgYXBpIGRvY3MKCjIwMDktMTAtMTQgMTc6NTc6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBkb2NzOiBmaXggY29udHJvbGxlciBzZWN0aW9ucyBkb2NzCgoyMDA5LTEwLTE0IDEwOjQwOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MzgwZDRiIHRvIDg1ZDE1MzAKCjIwMDktMTAtMTQgMTA6MTY6MzEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggYSBkb2N1bWVudGF0aW9uIHR5cG8KCjIwMDktMTAtMTQgMDg6NTc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiAuLi5hbmQgYWRkIG1pc3NpbmcgZW5kaWYKCjIwMDktMTAtMTQgMDg6NTc6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBBbHNvIGRvbid0IHJ1biBtYWtlIGNoZWNrLWV4cG9ydHMgaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTEwLTE0IDA4OjUwOjMxICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogT25seSBydW4gbWFrZSBjaGVjay1leHBvcnRzIGlmIG5vIHB1YmxpYyBBUEkgd2FzIGRpc2FibGVkCgkgIEZpeGVzIGJ1ZyAjNTk4Mjk3LgoKMjAwOS0xMC0xNCAwODozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogUmVwbGFjZSByZWN1cnNpdmUgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKSB3aXRoIGFuIGl0ZXJhdGl2ZSB2ZXJzaW9uCgkgIFRoaXMgaXMgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2FuJ3QgZG8gdGFpbAoJICByZWN1cnNpb24gaGVyZSBhbmQgaGFzIHRvIGtlZXAgYWxsIHN0YWNrIGZyYW1lcy4KCSAgTm90IHRoYXQgZWZmaWNpZW5jeSBpcyB0aGF0IGltcG9ydGFudCBoZXJlIGJ1dCBJIGFscmVhZHkgaGFkCgkgIHRoZSBpdGVyYXRpdmUgdmVyc2lvbiBzb21ld2hlcmUgZWxzZSBhbmQgYm90aCBhcmUgZWFzeSB0byByZWFkLgoKMjAwOS0xMC0xNCAwODoyOTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQWRkIHNpbXBsZSB1bml0IHRlc3QgZm9yIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkKCjIwMDktMTAtMTMgMTk6MTI6NTAgKzAzMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS4xLm15b2hhbmVuQG5va2lhLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogZml4IHRpbWVzdGFtcCBjb21wYXJpc3Npb24sIEZpeGVzICM1OTc0MDcKCjIwMDktMTAtMTIgMjE6NTE6NTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IERpc2FibGUgdGhlIHRlc3RfZmFpbF9hYnN0cmFjdF9uZXcoKSB0ZXN0IGVudGlyZWx5IG9uIE9TL1gKCSAgRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIGZyb20gdGhlIGZ1bmN0aW9uIGJlaW5nIGNvbXBpbGVkIGJ1dCBub3QKCSAgdXNlZC4KCjIwMDktMTAtMTIgMTQ6NTc6MzUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBkZWJ1ZzogTWFyayB0aGUgR1NUX1BPTEwgc3ltYm9sIGFzIGV4dGVybiB0byBhdm9pZCBtdWx0aXBseS1kZWZpbmVkIGVycm9yCgoyMDA5LTEwLTEyIDE0OjQ3OjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gdG8gNjM4MGQ0YjM3MGYwNzhmMGNjYTcyNDA0MjhlYTlmNjYzOTU3MWZmNQoKMjAwOS0xMC0xMiAxNDoyNDowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdHBvbGw6IE1ha2UgdGhlIG5ldyBHU1RfUE9MTCBkZWJ1ZyBjb21wbGV0ZWx5IHByaXZhdGUKCSAgTWFrZSB0aGUgR1NUX1BPTEwgZGVidWcgY2F0ZWdvcnkgc3ltYm9sIHByaXZhdGUgdG8gbGliZ3N0cmVhbWVyLCBhcwoJICB0aGVyZSBzaG91bGQgYmUgbm8gZXh0ZXJuYWwgdXNlcnMgb2YgaXQuCgoyMDA5LTEwLTEyIDE0OjIyOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogRGlzYWJsZSBhIGZhaXJseSBzaWxseSBnc3RvYmplY3QgdGVzdCBvbiBPUy9YCgkgIFRoaXMgdGVzdCB1c2VkIHRvIFNJR0JVUyBvbiBPUy9YIGJ1dCBub3cgU0lHU0VHVidzIGluc3RlYWQgb24KCSAgU25vdyBMZW9wYXJkLiBJdCdzIG5vdCB3b3J0aCB0aGUgZWZmb3J0IHRvIGZpZ3VyZSBvdXQgd2hpY2ggcGxhdGZvcm0KCSAgc2hvdWxkIHByb2R1Y2Ugd2hpY2ggZXJyb3IgZm9yIHdoYXQgaXMgZnVuZGFtZW50YWxseSBhIHByZXR0eSBzaWxseQoJICB0ZXN0LCBzbyBqdXN0IGRpc2FibGUgaXQgb24gT1MvWAoKMjAwOS0xMC0xMiAxMzo1MDo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSAgbGlicy9nc3QvY2hlY2s6IE1ha2Ugd3JpdGluZyB0aHJlYWRzYWZlLiBCYWNrcG9ydGVkIGZyb20gbGliY2hlY2sgdHJ1bmsKCjIwMDktMTAtMTIgMTM6NDk6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkgIGxpYnMvZ3N0L2NoZWNrOiBSdW4gZ3N0LWluZGVudCBvbiBsaWJjaGVjay4KCjIwMDktMTAtMTIgMTI6MDI6MzQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGdzdHBsdWdpbmxvYWRlcjogRG9uJ3Qgd2FpdCBmb3JldmVyIG9uIGdzdF9wb2xsX3dhaXQuCgkgIFRoaXMgYWxsb3dzIHRoZSBtYWNvc3ggdmVyc2lvbnMgdG8gcHJvcGVybHkgZXJyb3Igb3V0IHdoZW4gZmRzIGFyZSBjbG9zZWQuCgkgIFRoaXMgaXMgb25seSBhIHRlbXBvcmFyeSBmaXggdW50aWwgdGhlIHBsdWdpbmxvYWRlciBpcyBzd2l0Y2hlZCB0byBub3QKCSAgdXNlIEdzdFBvbGwgYnV0IEdJT0NoYW5uZWxzLgoKMjAwOS0xMC0xMiAxMjowMTo1OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IE9ubHkgdGFrZSBpbnRvIGFjY291bnQgYWN0aXZlIGZkcwoJICBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IHNlbGVjdCBwcm9wZXJseSBlcnJvcnMgb3V0IG9uIG1hY29zeCAoc2lnaCkKCjIwMDktMTAtMTIgMTA6MDc6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBBZGQgc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwOS0xMC0xMiAxMDowMTowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IFVzZSB0aGUgZXJyb3IgZmRzZXQgd2hlbiB1c2luZyBzZWxlY3QvcHNlbGVjdC4KCSAgVGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgZGV0ZWN0IGZkcyB0aGF0IGFyZSBjbG9zZWQgb3IgdGhhdCBnb3QKCSAgYW4gZXJyb3IKCjIwMDktMTAtMTIgMDk6NTA6NDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBEb24ndCB1c2UgcG9sbCBvbiBzeXN0ZW1zIHdpdGggYnJva2VuIHBvbGwKCjIwMDktMTAtMTIgMDk6NTA6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0OiBBZGQgZGVidWdnaW5nIGNhdGVnb3J5IEdTVF9QT0xMIGZvciBnc3Rwb2xsCgoyMDA5LTEwLTEyIDA5OjQ3OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IERldGVjdCBicm9rZW4gcG9sbCgpCgoyMDA5LTEwLTA5IDE3OjQ0OjI4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBsZXRzIGtlZXAgLTEgZm9yIHNlZ21lbnN0IGFzIHRoZXkgYXJlIGd1aW50NjQgYW5kIG5vdCBHc3RDbG9ja1RpbWUKCjIwMDktMTAtMDkgMTc6MTE6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBHU1RfQ0xPQ0tfVElNRV9OT05FIGFuZCBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCBtb3JlCgoyMDA5LTEwLTA4IDIzOjEwOjQwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IHZhbGdyaW5kIHdhcm5pbmdzIGJ5IHplcm9pbmcgcGFkZGluZyBieXRlcy4KCjIwMDktMTAtMDggMTc6MTk6MzggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBjaGVjazogSG9wZWZ1bGx5IGZpeCBhbiAnbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZyBvbiBPUy9YCgoyMDA5LTEwLTA4IDE2OjIxOjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBhIGRlYnVnIGZvcm1hdCBzdHJpbmcgaGFyZGVyIHRvIHNhdGlzZnkgT1MvWCdzIGdjYy4KCjIwMDktMTAtMDggMTY6MDU6MDggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGZvcm1hdCBzdHJpbmcgZm9yIGRlYnVnIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTEwLTA4IDE1OjIxOjQ4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogTW92ZSBzdGRpbiBhbmQgc3Rkb3V0IG91dCBvZiBoYXJtJ3Mgd2F5CgkgIEluIHRoZSBwbHVnaW4gbG9hZGVyIHN1YnByb2Nlc3MsIG1vdmUgc3RkaW4gYW5kIHN0ZG91dCB0byBuZXcgZmQncwoJICBzbyB0aGF0IHBsdWdpbnMgcHJpbnRpbmcgdGhpbmdzIGR1cmluZyBwbHVnaW4gaW5pdCBvciAoKmdhc3AqKQoJICBwb3NzaWJseSByZWFkaW5nIGZyb20gc3RkaW4gZG9uJ3QgaW50ZXJmZXJlIHdpdGggdGhlIGRhdGEgc2VudCB0bwoJICBhbmQgZnJvbSB0aGUgcGFyZW50LgoKMjAwOS0xMC0wOCAxMToxNzoxNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBwbHVnaW4gZG9jczogQWRkIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBpbnNwZWN0IGVudmlyb25tZW50CgoyMDA5LTEwLTA4IDEwOjU5OjE1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDM3Zjg5OGIgdG8gYTNlM2NlNAoKMjAwOS0xMC0wOCAxMDozOToyOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmVzOiBJZ25vcmUgdGhlIGJ5dGV3cml0ZXIgY2hlY2sgYmluYXJ5CgoyMDA5LTEwLTA4IDEwOjM2OjU2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEZpeCBlcnJvciBoYW5kbGluZyBpbiB0aGUgcmVnaXN0cnkgbG9hZGVyCgkgIFdoZW4gdGhlIHBsdWdpbi1zY2FubmVyIGxvYWQgZmFpbHMgKGJlY2F1c2UgdGhlIGhlbHBlciBjYW4ndCBiZQoJICBzcGF3bmVkKSwgbWFrZSBzdXJlIHRvIGxvYWQgdGhlIHBsdWdpbiB0aGF0IGZhaWxlZCBpbi1wcm9jZXNzLCBzbwoJICB0aGF0IGFsbCBwbHVnaW5zIGRvIGdldCBsb2FkZWQuCgoyMDA5LTEwLTA4IDEwOjI2OjI3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBGaXggdGVzdCBydW4gaW4gdGVzdHMvZXhhbXBsZXMvbWFudWFsCgkgIEFkZCB0aGUgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGNoZWNrIGVudmlyb25tZW50IGhlcmUgdG9vCgkgIHNvIHRoYXQgaXQgZG9lc24ndCBmYWlsIHdoZW4gbm8gaW5zdGFsbGVkIHNjYW5uZXIgaXMgYXZhaWxhYmxlLgoKMjAwOS0xMC0wOCAwOTozNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBhZGQgYmFjayBmaXggdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIHJldmVydGVkCgoyMDA5LTEwLTA4IDEwOjQ3OjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBtb3JlIHF1ZXVlIG9wdGltaXphdGlvbnMKCSAgU3BsaXQgZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKCkgaW50byB2YXJpYW50IGZvciBidWZmZXIgYW5kIGV2ZW50IHRvIGdldCByaWQgb2YKCSAgdGhlIGlmKCkgYW5kIG1ha2UgdGhlIGNvZGUgbW9yZSByZWFkYWJsZSAoY29uc3RhbnQgYm9vbGVhbiBwYXJhbWV0ZXJzIGFyZSBuZXZlcgoJICBuaWNlKS4gUmVtb3ZlcyB0aGUgaWYgKGl0ZW0pIGNoZWNrcyBhcyB3ZSBkZXJlZmVyZW5jZSB0aGUgcG9pbnRlciBiZWZvcmUgYW55d2F5LgoJICBBbHNvIGFwcGx5IHRoZSBzYW1lIGlkZWEgb2YgcmV1c2luZyB0aGUgcHJldmlvdXMga25vd2xlZGdlIGluCgkgIGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSB0byByZW1vdmUgbW9yZSB0eXBlIGNoZWNrcy4KCjIwMDktMTAtMDggMTA6NTE6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzcGxpdCBnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcKCSAgU3BsaXQgZ3N0X211bHRpX3F1ZXVlX2l0ZW1fbmV3IGludG8gYnVmZmVyIGFuZCBldmVudCB2YXJpYW50IHRvIG1ha2Ugc2F2ZSBhbiBpZgoJICBhbmQgbWFrZSBjb2RlIG1vcmUgcmVhZGFibGUuCgoyMDA5LTEwLTA4IDA4OjU1OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHBsdWdpbnMvZ3N0ZmlsZXNyYzogTWFrZSBhIGZhc3QtcGF0aCBmb3IgbGVuZ3RoID09IDAgYnVmZmVyIGNyZWF0aW9uLgoJICBJZiB0aGUgcmVxdWVzdGVkIGxlbmd0aCBpcyAwLCB3ZSBkb24ndCBuZWVkIHRvIHJlYWQgYW55dGhpbmcgZnJvbSB0aGUgZmlsZS4KCjIwMDktMTAtMDggMDg6NTU6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgZ3N0L2NoZWNrL2NvbnNpc3RlbmN5Y2hlY2tlcjogQ2hlY2sgdHlwZSBvZiBtaW5pb2JqZWN0IGluIHByb2JlCgoyMDA5LTEwLTA4IDA4OjUzOjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBnc3QvYmFzZS9iYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIGNvZGUgd2FzIHByZXZpb3VzbHk6CgkgICogY2hlY2tpbmcgaWYgcmV0IHdhcyAhPSBPSwoJICAqIC4uIGJ1dCBpZiBpdCB3YXMgRkxPV19TVEVQLCBzd2l0aCBpdCB0byBPSwoJICAqIC4uIGFuZCB0aGVuIG5vdCB1c2luZyByZXQKCSAgSW5zdGVhZCB3ZSBqdXN0IG1ha2UgaXQgbW9yZSBjb21wYWN0IGJ5IGNoZWNraW5nIGlmIGl0J3MgT0sgb3IgU1RFUC4KCjIwMDktMTAtMDggMDg6NTM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgb2JqZWN0IGlzIG5vIGxvbmdlciB1c2VkIGFmdGVyIHRoYXQgbGluZQoKMjAwOS0xMC0wOCAwODo1MjoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBnc3RpbmRleDogTWFrZSBzdXJlIHdyaXRlciBpcyBub24tTlVMTC4KCSAgRml4ZXMgdGhlIE5VTEwgZGVyZWZlcmVuY2UgYSBmZXcgbGluZXMgbG93ZXIgKHdoZXJlIGl0IGdldHMgdGhlIG9iamVjdCB0eXBlKS4KCjIwMDktMDktMjkgMDg6MTM6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBiZW5jaG1hcmtzOiBDbGVhbiB1cCBnc3RidWZmZXJzdHJlc3MuCgoyMDA5LTEwLTA4IDAyOjQyOjE2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIGJlbmNobWFya3M6IEZpeCB0aGUgY29tcGxleGl0eSBhbmQgbWFzcy1lbGVtZW50cyBiZW5jaG1hcmtzCgoyMDA5LTEwLTA4IDAyOjIwOjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGVja3M6IEZpeCBzdHJpbmcgbGVha3MgaW4gdGhlIG5ldyBjaGlsZHByb3h5IHRlc3QKCjIwMDktMTAtMDggMDI6MDM6MDggKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IElnbm9yZSBhbiBlbXB0eSBkZXBlbmRlbmN5IGxpc3QuCgkgIElmIGEgcGx1Z2luIHJlZ2lzdGVycyBhbiBlbXB0eSBkZXBlbmRlbmN5IHNldCwganVzdCBpZ25vcmUgaXQgcmF0aGVyCgkgIHRoYW4gc2VyaWFsaXNpbmcgYW5kIGNoZWNraW5nIGFuIGVtcHR5IHNldC4KCjIwMDktMTAtMDggMDI6MDE6NTQgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggb2ZmLWJ5LW9uZSBlcnJvci4gSW1wcm92ZSBkZWJ1Zy4KCSAgRml4IGFuIG9mZi1ieS1vbmUgZXJyb3IgaW4gdGhlIHNpemUgZ3VhcmQgZm9yIHVucGFja19lbGVtZW50LCBhbmQKCSAgaW1wcm92ZSB2YXJpb3VzIGRlYnVnIHN0YXRlbWVudHMgaW4gdGhlIGZhaWx1cmUgcGF0aHMuCgkgIEFsc28sIHN3YXAgc29tZSBnX25ldzAgdG8gZ19tYWxsb2MwIGZvciB0aGUgZnVuIG9mIGl0LgoKMjAwOS0xMC0wNyAxNjowMjo1OCAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBVc2UgX3dmb3BlbiBvbiB3aW4zMiB0byBvcGVuIGZpbGVzIHdpdGggbm9uLWFzY2lpIGZpbGVuYW1lcyBjb3JyZWN0bHkuCgoyMDA5LTEwLTA3IDIzOjMxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogdGFncyBpbiBkb2NzIGZvciBuZXdseS1hZGRlZCBBUEkKCjIwMDktMTAtMDggMDA6MDg6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJldmVydCB0d28gb2YgdGhlIGNoYW5nZXMKCSAgSXQgb25seSBuZWVkZWQgZm9yIHRoZSBub24gY29uc3RhbnQgc3RyaW5nLgoKMjAwOS0xMC0wNyAyMzozNjo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIGEgIiVzIiBmb3JtYXQgc3RyaW5nIHdoZW4gcHJpbnRpbmcgdGhlIG1lbW9yeSBkdW1wIGxpbmUKCSAgV2Uga25vdyB0aGF0IHRoZSBjb250ZW50IGlzIHNhdmUsIGJ1dCB0aGUgY29tcGlsZXIgZG9lcyBub3QuCgoyMDA5LTEwLTA3IDIzOjIzOjA4ICswMzAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZG9uJ3QgZm9ybWF0IHRoZSBzdHJpbmcgdHdpY2UKCSAgV2Ugd2VyZSBmb3JtYXR0aW5nIHRoZSBzdHJpbmcgb25jZSBhbmQgdGhlbiBwYXNzaW5nIHRoZSBzdHJpbmcgYXMgYSBmb3JtYXQKCSAgc3RyaW5nIHRvIHRoZSBsb2cgZnVuY3Rpb25zLgoKMjAwOS0xMC0wNyAxMTo0Mzo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBhZGQgdmFyaWFudHMgb2YgZ3N0X3BhZF9nZXRfY2FwcygpIHRoYXQgZG9uJ3QgY29weSBjYXBzLiBGaXhlcyAjNTkwOTQxCgkgIEluIG1vc3QgcGxhY2VzIGluIGNvcmUgYW5kIGJhc2VjbGFzc2VzIHdlIGp1c3QgbmVlZCB0aGUgY2FwcyB0byBkbyBjYXBzLQoJICBpbnRlcnNlY3Rpb25zLiBJbiB0aGF0IGNhc2UgcmVmJ2VkIGNhcHMgYXJlIGVub3VnaCAobm8gbmVlZCB0byBjb3B5KS4KCSAgVGhpcyBwYXRjaCBhbHNvIHN3aXRjaGVzIHRoZSBjb2RlIHRvIHVzZSB0aGUgbmV3IGZ1bmN0aW9ucy4KCSAgQVBJOiBnc3RfcGFkX2dldF9jYXBzX3JlZmVkKCksIGdzdF9wYWRfcGVlcl9nZXRfY2Fwc19yZWZlZCgpCgoyMDA5LTA5LTI2IDIzOjQzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGFkZCBnaG9zdHBhZCB0ZXN0IGZvciBzZXR0aW5nIHRhcmdldCBhZ2FpbiBhZnRlciBwYWQgaXMgbGlua2VkCgoyMDA5LTA5LTI2IDIzOjQyOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IHJlbW92ZSBlbXB0eSBsaW5lcyBmcm9tIHdyb25nIGluZGVudCBydW4KCjIwMDktMTAtMDcgMjA6Mzg6NDkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBjaGVjazogRml4IGNvbXBpbGF0aW9uIG9mIHRoZSBieXRld3JpdGVyIHRlc3QKCjIwMDktMTAtMDcgMTg6MDc6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBieXRlIHdyaXRlciBhbmQgcmVhZGVyIEFQSSB0byAuZGVmIGZpbGUKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfKigpCgoyMDA5LTA4LTIwIDE0OjI0OjE5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IHNwZWxsaW5nIGluIGNvbW1lbnQKCjIwMDktMTAtMDcgMTg6NDA6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZsdXNoIHF1ZXVlIHVwb24gZmF0YWwgZmxvd3JldHVybiBhbmQgcmVsZWFzZSB1cHN0cmVhbSB0aHJlYWQKCjIwMDktMDktMjIgMTU6NDQ6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBmaXggQVBJIGRvY3VtZW50YXRpb24gdHlwbwoKMjAwOS0xMC0wNyAxODozNzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBieXRld3JpdGVyOiBBZGQgdG8gdGhlIGRvY3MKCjIwMDktMTAtMDUgMTE6MjQ6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBZGQgdW5pdCB0ZXN0CgoyMDA5LTEwLTAzIDEzOjMwOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIGEgZ2VuZXJpYyBieXRlIHdyaXRlcgoJICBGaXhlcyBidWcgIzU5MDY2OS4KCjIwMDktMTAtMDMgMTU6NTc6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBiaXRyZWFkZXIvYnl0ZXJlYWRlcjogQVBJOiBBZGQgZ3N0XyhiaXR8Ynl0ZSlfcmVhZGVyX2dldF9zaXplKCkKCSAgLi4uIGFuZCBHU1RfKEJZVEV8QklUKV9SRUFERVIoKSBjYXN0cy4KCjIwMDktMTAtMDMgMTI6MzQ6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXIsYml0cmVhZGVyOiBSZW1vdmUgRklYTUUgMC4xMSB0byByZW1vdmUgbm9uLWlubGluZWQgZnVuY3Rpb25zCgkgIFRoZSBub3JtYWwgZnVuY3Rpb25zIGFyZSBhbHdheXMgdXNlZnVsIHRvIGhhdmUgZm9yIGJpbmRpbmdzLCBlc3BlY2lhbGx5CgkgIHJ1bnRpbWUtY3JlYXRlZCBiaW5kaW5ncyBsaWtlIFNlZWQgb3IgbmV3IEdPYmplY3QtSW50cm9zcGVjdGlvbiBiYXNlZAoJICBQeXRob24gYmluZGluZ3MuCgoyMDA5LTEwLTA3IDE2OjM2OjMxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgY2hlY2s6IEF0dGVtcHQgdG8gZml4IHR5cGUtcHVubmluZyB3YXJuaW5nIGluIHRoZSBnc3RpdGVyYXRvciB0ZXN0CgoyMDA5LTEwLTA3IDE2OjAwOjEyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogTWFrZSBzdXJlIHRvIGluaXQgdGhlIGRhdGFwcm90b2NvbCBsaWIuCgkgIENhbGwgdGhlIGdzdF9kcF9pbml0KCkgZnVuY3Rpb24gdG8gZW5zdXJlIHRoYXQgdGhlIGRlYnVnCgkgIGNhdGVnb3J5IGlzIGluaXRpYWxpc2VkLCB0byBhdm9pZCBnX2NyaXRpY2FscyB3aGVuIHJ1bm5pbmcgd2l0aAoJICBHU1RfREVCVUc9NQoKMjAwOS0xMC0wNyAxNTo0Nzo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgY2hlY2s6IFVzZSBHU1RfREVCVUcgaW5zdGVhZCBvZiBnX21lc3NhZ2UgaW4gdGhlIGdkcCB0ZXN0CgoyMDA5LTEwLTA3IDE1OjE0OjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEFkZCBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgY2hlY2sgZW52aXJvbm1lbnQKCjIwMDktMTAtMDcgMTQ6MzQ6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBpbXByb3ZlIHBsdWdpbiBsb2FkZXIgZmFpbHVyZSBtZXNzYWdlIGZvciB1bmluc3RhbGxlZCBzZXR1cHMKCSAgRXZlcnlvbmUgcnVubmluZyBhbiB1bmluc3RhbGxlZCBnaXQgc2V0dXAgaXMgZ29pbmcgdG8gd29uZGVyIGFib3V0CgkgIHRoaXMgZmFpbHVyZSBuZXh0IHRpbWUgdGhleSB1cGRhdGUsIHNvIGxldCdzIG1lbnRpb24gdGhlIHNvbHV0aW9uCgkgIGluIHRoZSBlcnJvciBtZXNzYWdlLgoKMjAwOS0xMC0wNyAxMzo1OTo0NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEJlZWYgdXAgdGhlIHRlc3QgZm9yIF9fdWludDEyOF90IG9uIEdDQwoJICBHQ0MgMy40LjMgb24gdGhlIFNQQVJDIGJ1aWxkYm90IGNyYXNoZXMgd2hlbiBhY3R1YWxseQoJICB1c2luZyBfX3VpbnQxMjhfdC4gQmVlZiB1cCB0aGUgY29uZmlndXJlIHRlc3QgdG8gZGV0ZWN0IHRoYXQgdGhlCgkgIHR5cGUgaXMgYWN0dWFsbHkgdXNhYmxlLgoKMjAwOS0xMC0wNyAwOTo1Njo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCSAgQW5kIGFkZCBBUEk6IG1hcmtlciBpbiBjb21taXQgbWVzc2FnZSB0aGF0IHdhcyBvbWl0dGVkIGluIHRoZSBvcmlnaW5hbAoJICBjb21taXQ6CgkgIEFQSTogZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKQoKMjAwOS0xMC0wNyAwOTo1NToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkgIGJlbmNobWFya3M6IGFkZCBidWZmZXJzdHJlc3MgYmluYXJ5IHRvIC5naXRpZ25vcmUKCjIwMDktMTAtMDcgMDk6NDI6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byAyLjE4CgkgIEJ1bXAgR0xpYiByZXF1aXJlbWVudCBhcyBwZXIgdGhlIHJlbGVhc2UgcGxhbm5pbmcgZG9jcy4KCjIwMDktMTAtMDcgMTA6Mzc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTEwLTA3IDExOjEyOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBmbGlwIHRoZSBHX1VOTElLRUxZCgkgIEl0cyBsaWtlbHkgdGhhdCB3ZSBoYXZlIGNhcHMgYW5kIHVubGlrZWx5IChlcnJvcikgb3RoZXJ3aXNlLgoKMjAwOS0xMC0wNyAxMTowNDo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBxdWV1ZSBhcGkgdG8gdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZAoKMjAwOS0wOS0yOCAxNToyNToyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IEF2b2lkIGluc3RhbmNlIGNoZWNrCgkgIFdlIGtub3cgZWFybGllciBvbiBpbiB0aGUgY29kZSB3aGV0aGVyIHdlJ3JlIGhhbmRsaW5nIGFuIGV2ZW50IG9yIGEgYnVmZmVyLAoJICBqdXN0IHBhc3MgdGhhdCBpbmZvcm1hdGlvbiB0aHJvdWdoLgoJICBUaGlzIGNvbW1pdCBhbmQgdGhlIHByZXZpb3VzIGNvbW1pdCByZWR1Y2UgaW5zdHJ1Y3Rpb24gZmV0Y2g6CgkgICogd2hlbiBwdXNoaW5nIGJ1ZmZlciAoX2NoYWluKSBieSAxMCUKCSAgKiB3aGVuIHBvcHBpbmcgYnVmZmVyIChfbG9vcCkgYnkgMyUKCjIwMDktMDktMjggMTU6MjQ6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBDYWNoZSBpbnB1dC9vdXRwdXQgdGltZSwgYXZvaWQgZXhwZW5zaXZlIGNhbGxzLgoJICAqIENhY2hlIHRoZSBpbnB1dC9vdXRwdXQgdGltZQoJICAqIE9ubHkgcmVjYWxjdWxhdGUgaXQgd2hlbiBuZWVkZWQuCgkgIEF2b2lkcyA1MCUgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lCgoyMDA5LTEwLTA3IDEwOjAwOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJ1aWxkOiBzcHJpbnRmLCBzc2NhbmYgbmVlZCBzdGRpby5oCgoyMDA5LTEwLTA1IDExOjQ2OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGluaXRpYWxpemUgZ3ZhbHVlIGluIF92YWxpc3QgZnVuY3Rpb24uIEZpeGVzICM1OTU2MDIKCSAgUmVmbG93IHRoZSBjb2RlIHRvIG1vdmUgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb25zLiBJbml0aWFsaXplCgkgIGd2YWx1ZSBsaWtlIHdlIGRvIGluIHRoZSBzZXR0ZXIuIEFkZCBhIHVuaXQtdGVzdCBtb2R1bGUgd2l0aCB0d28gc2ltcGxlIHRlc3RzCgkgIHRoZSBjYXRjaGUgdGhpcyBidWcuCgoyMDA5LTEwLTAxIDE3OjM5OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBkb24ndCBpbnRlcnNlY3Qgd2l0aCBhbnkgaW4gcHJveHlfcGFkX2dldF9jYXBzCgkgIFdlIGluaXRpYWxpemUgdGhlIGNhcHMgd2l0aCBhbnkgYW5kIGlmIGEgcGFkIGhhcyBOVUxMIGNhcHMsIGp1c3Qgc2tpcCBpdCBpbnN0ZWFkCgkgIG9mIGludGVyc2VjdGluZyB3aXRoIGFueS4gQWxzbyBhZGQgYnJhbmNoIHByZWRpY3Rpb24gaGVyZS4KCjIwMDktMDktMzAgMTY6NDE6MDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2NzOiByZW5hbWUgYWdncmVnYXRvciB0byBhZGRlciBpbiB0aGUgZG9jcy4KCjIwMDktMDktMzAgMDk6NDc6MjMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgbWFuOiBmaXggY29weSBhbmQgcGFzdCBtaXN0YWtlIGZvciAtcSBvcHRpb24KCjIwMDktMTAtMDcgMDk6NTQ6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEV4dGVuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWxsb3cgdXNpbmcgYW4gdW5pbnN0YWxsZWQgZ3N0cmVhbWVyLXNoYXJwCgoyMDA5LTA5LTI4IDE1OjE5OjQ0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogVXNlIG5ldyBHc3REYXRhUXVldWUgY29uc3RydWN0b3IKCjIwMDktMDktMjggMTU6MTg6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IG5ldyBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBjYWxsYmFja3MuCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGF2b2lkIGdvaW5nIHRocm91Z2ggZ2xpYidzIHNpZ25hbGxpbmcgc3lzdGVtCgoyMDA5LTA5LTI4IDEzOjE5OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogVXNlIGNhY2hlZCB2YWx1ZSBpbnN0ZWFkIG9mIGV4cGVuc2l2ZSBvYmplY3QgZ2V0LgoJICBUaGUgdGFzayB3aWxsIGFsd2F5cyBleGlzdCBhcyBsb25nIGFzIGl0cyBvd25lciAoaS5lLiB0aGUgcGFkKSBhbmQgdGhhdAoJICBvd25lcidzIG93bmVyIChpLmUuIG11bHRpcXVldWUpIGV4aXN0LgoJICBSZWR1Y2VzIHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24gZmV0Y2hlcyBieSAzNiUuCgoyMDA5LTA5LTI4IDE1OjQxOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL3F1ZXVlOiBVc2UgcHJldmlvdXMga25vd2xlZGdlIG9mIGRhdGEgdHlwZSB0byBhdm9pZCB0eXBlY2hlY2suCgkgIFdlIGtub3cgd2hldGhlciB3ZSBoYXZlIGEgYnVmZmVyIG9yIGFuIGV2ZW50LCB1c2UgdGhhdCBpbnN0ZWFkIG9mIGdvaW5nCgkgIHRyb3VnaCB0aGUgZXhwZW5zaXZlIEdMaWIgdHlwZWNoZWNrLgoJICBUaGUgb3ZlcmFsbCBpbnN0cnVjdGlvbiBmZXRjaCByZWR1Y3Rpb24gaW50cm9kdWNlZCBieSB0aGlzIGNvbW1pdCBhbmQgdGhlCgkgIDIgcHJldmlvdXMgY29tbWl0czoKCSAgKiByZWNlaXZpbmcgYSBidWZmZXIgKF9jaGFpbikgYnkgMjAlCgkgICogcG9wcGluZyBhIGJ1ZmZlciAoX2xvb3ApIGJ5IDE0JQoJICBOdW1iZXJzIGFjcXVpcmVkIHRocm91Z2ggY2FsbGdyaW5kIHBhc3NpbmcgMTAwMDAwIGJ1ZmZlcnMgdGhyb3VnaCBxdWV1ZS4KCjIwMDktMDktMjggMTU6MjA6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcGx1Z2lucy9xdWV1ZTogQXZvaWQgdXNlbGVzcyBzZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIGNhbGN1bGF0aW9ucy4KCSAgKiBDYWNoZSBzcmMgYW5kIHNpbmsgdGltZQoJICAqIFVzZSBhIGJvb2xlYW4gdG8ga25vdyB3aGV0aGVyIHNyYy9zaW5rIHRpbWUgbmVlZCB0byBiZSByZWNhbGN1bGF0ZWQKCSAgQXZvaWRzIDUwJSBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKQoKMjAwOS0wOS0yOCAxMzoyMTowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcGx1Z2lucy9xdWV1ZTogSnVzdCBjYXN0IHRvIHRoZSBvYmplY3QgcGFyZW50IGluc3RlYWQgb2YgdHlwZWNoZWNraW5nLgoKMjAwOS0wOS0yMyAxNjoxOTozMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJlbmNobWFyazogTmV3IGJlbmNobWFyayBmb3IgdGVzdGluZyBjb250ZW50aW9uIHdoZW4gY3JlYXRpbmcgYnVmZmVycwoKMjAwOS0wOS0yMyAxNjoxNzowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRG9uJ3QgYWN0aXZhdGUgdHJhY2luZyBpZiBub3QgcmVxdWVzdGVkLgoKMjAwOS0xMC0wNyAwODozNzowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogaW5pdCBtb3JlIHZhcmlhYmxlcyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIG9zeAoJICBJbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgYW5kIG1ha2UgdGhlIGJ1aWxkIGJvdCBoYXBweQoJICAodGhlIGNvbXBpbGVyIG1vc3QgbGlrZWx5IGNvbXBsYWlucyBhYm91dCB0aGlzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93CgkgIGhlcmUgdGhhdCBmYWlsX3VubGVzcyB3aWxsIGFib3J0L2V4aXQgaW4gdGhlIHBhdGggd2hlcmUgaXQgZmFpbHMpLgoKMjAwOS0wOS0yNiAxMTo0MzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogSW1wcm92ZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uCgkgIFBhZHMgaGF2ZSB0aGVpciBHc3RTaW5nbGVRdWV1ZSBzdG9yZWQgYXMgZWxlbWVudCBwcml2YXRlIGRhdGEKCSAgc28gdGhlcmUncyBubyBuZWVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBzaW5nbGUgcXVldWVzCgkgIGV2ZXJ5IHRpbWUuIEFsc28gZXZlcnkgcGFkIG9ubHkgaGFzIGEgc2luZ2xlIGludGVybmFsIGxpbmsgc28KCSAgdXNlIGEgc2luZ2xlIGl0ZXJhdG9yIGluc3RlYWQgb2YgYSBjb21wbGV4IGN1c3RvbSBpdGVyYXRvci4KCSAgU2V0IHRoZSBlbGVtZW50IHByaXZhdGUgZGF0YSBvZiB0aGUgcGFkIHRvIE5VTEwgd2hlbiBmcmVlaW5nIHRoZQoJICBzaW5nbGUgcXVldWUuCgoyMDA5LTA5LTE3IDE2OjMwOjQzIC0wNDAwICBKb2hhbiBCaWxpZW4gPGpvYmlAbGl0bC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgaW50cm9zcGVjdGlvbjogQWRkIGFubm90YXRpb25zIGZvciBnc3RfZWxlbWVudF9xdWVyeV97ZHVyYXRpb24scG9zaXRpb259CgkgIEZpeGVzIGJ1ZyAjNTk1NTExLgoKMjAwOS0xMC0wNSAwMDoxMToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmVyc2lvbiBvZiBnc3RfYnl0ZV9yZWFkZXJfc2tpcAoKMjAwOS0xMC0wNyAwMDo0Nzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb24gZmlsZXMgZm9yIG5ldyBhbmQgY2hhbmdlZCBzdHJpbmdzCgoyMDA5LTA5LTI4IDIyOjQzOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiB0YWtlIGxvY2tzIGFyb3VuZCBzbWFsbGVyIHNlY3Rpb24KCSAgV2UgZG9uJ3QgbmVlZCB0aGUgaG9sZCB0aGUgcHJveHkgbXV0ZXggbG9ja2VkIGZvciBnZXR0aW5nIHRoZSBpbnRlcm5hbCBwYWQgYW5kCgkgIGZvciBsaW5raW5nIHRoZSBuZXcgdGFyZ2V0IHBhZCB3aGVuIHdlIHJldGFyZ2V0LiBTbyB0YWtlIHRoZSBsb2NrIGEgbGl0dGxlIGxhdGVyCgkgIGFuZCByZWxlYXNlIGl0IGVhcmxpZXIuCgkgIEZpeGVzICM1OTYzNjYKCjIwMDktMTAtMDQgMTk6NTE6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBpbml0IHZhcmlhYmxlIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgb24gb3N4CgkgIEluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBhbmQgbWFrZSB0aGUgYnVpbGQgYm90IGhhcHB5CgkgICh0aGUgY29tcGlsZXIgbW9zdCBsaWtlbHkgY29tcGxhaW5zIGFib3V0IHRoaXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cKCSAgaGVyZSB0aGF0IGZhaWxfdW5sZXNzIHdpbGwgYWJvcnQvZXhpdCBpbiB0aGUgcGF0aCB3aGVyZSBpdCBmYWlscykuCgoyMDA5LTEwLTAzIDIxOjA4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3N0OiByZW1vdmUgbW9yZSB1bm5lY2Vzc2FyeSBjYXN0IHdoZW4gdXNpbmcgZ19zaWduYWxfKigpCgoyMDA5LTEwLTAzIDIwOjQ5OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZGF0YXF1ZXVlLCBlbGVtZW50czogYXZvaWQgdW5uZWNlc3NhcnkgcnVudGltZSB0eXBlIGNoZWNrcwoKMjAwOS0xMC0wNSAxNjo0MTo1MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogVXBkYXRlIHRoZSByZWxlYXNlIHNjcmlwdAoJICBSZW1vdmUgb2xkIGNydWZ0IGZyb20gdGhlIHJlbGVhc2Ugc2NyaXB0LCBhbmQgY2hhbmdlIHNvbWUgQ1ZTCgkgIHJlZmVyZW5jZXMgdG8gZXF1aXZhbGVudCBnaXQgY29tbWFuZHMKCjIwMDktMTAtMDQgMTQ6MzA6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBBZGQgYSBtYWdpYyBudW1iZXIgYW5kIG1heGltdW0gc2l6ZSBsaW1pdC4KCSAgR3VhcmQgYWdhaW5zdCBhIGhvc3RpbGUgY2hpbGQgcHJvY2VzcyB0aGF0IHNlbmRzIGJvZ3VzIGRhdGEKCSAgZHVlIHRvIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGFkZGluZyBhIG1hZ2ljIG51bWJlciB0byBlYWNoIHBhY2tldCwKCSAgYW5kIGxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgYW55IG1lc3NhZ2UgdG8gMzJNQgoKMjAwOS0wMi0wOSAxMzozMzowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICByZWdpc3RyeTogQWxzbyBjaGVjayB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGNodW5rIHZlcnNpb24gb2YgdGhlIGNoaWxkLgoJICBXaGVuIHRyeWluZyB0byBmaW5kIGEgZnVuY3Rpb24gcGx1Z2luLXNjYW5uZXIsIGluY2x1ZGUgYSBjaGVjayBvbiB0aGUKCSAgdmVyc2lvbiBvZiB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGNodW5rcyBpdCBzZW5kcywgdG8gbWFrZSBzdXJlIGl0J3MKCSAgd2hhdCB3ZSB1bmRlcnN0YW5kLgoKMjAwOS0wMi0wNiAwOTo0OTozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgcmVnaXN0cnk6IFN1cHBvcnQgaW5zdGFsbGVkL3VuaW5zdGFsbGVkIHBsdWdpbi1zY2FubmVyIGhlbHBlcgoJICBBZGQgYSBzaW1wbGUgdmVyc2lvbiBjaGVjayB3aGVuIHN0YXJ0aW5nIHRoZSBwbHVnaW4tc2Nhbm5lciBzbyB3ZSBjYW4KCSAgdmVyaWZ5IHdlJ3JlIHRhbGtpbmcgdG8gb25lIHRoYXQgdGFsa3MgdGhlIHNhbWUgbGFuZ3VhZ2UuCgkgIEZpcnN0IHRyeSBhIHBsdWdpbi1zY2FubmVyIGluIHRoZSBpbnN0YWxsZWQgcGF0aCwgdGhlbiB0cnkgb25lIHZpYSB0aGUKCSAgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgaWYgdGhhdCBkb2Vzbid0IHdvcmsuCgkgIFVwZGF0ZSB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0LgoJICBJbnN0YWxsIHRoZSBwbHVnaW4tc2Nhbm5lciB0byB0aGUgbGliZXhlYyBkaXIKCjIwMDktMDEtMzAgMTQ6MTg6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFJlbW92ZSBjaGVja2luZyBmb3IgYW5kIG1lbnRpb25zIG9mIGZvcmsgd2hlcmUgcG9zc2libGUuCgkgIFdlIG5vIGxvbmdlciB1c2UgZm9yaygpIGRpcmVjdGx5LCBpbnN0ZWFkIHVzaW5nIGdsaWIncyBzcGF3bgoJICBmdW5jdGlvbmFsaXR5LCBzbyBkb24ndCBjaGVjayBmb3IgaXQsIGFuZCBkb24ndCB1c2UgaXQgaW4gdGhlCgkgIGRvY3VtZW50YXRpb24gbm90ZXMuCgoyMDA5LTAxLTMwIDEzOjA2OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmUtZW5hYmxlIGFuZCBmaXggZGlzYWJsZWQgYml0IG9mIHRoZSByZWdpc3RyeSB0ZXN0CgoyMDA5LTAxLTMwIDEzOjA0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgT25seSBsb2FkIHRoZSByZWdpc3RyeSBjYWNoZSBvbmNlIHBlciBwcm9jZXNzLgoJICBXaGVuIHVwZGF0aW5nIHRoZSByZWdpc3RyeSwgd2UgZG9uJ3QgbmVlZCB0byByZS1yZWFkIHRoZSByZWdpc3RyeSBjYWNoZQoJICBhbmQgd2FzdGUgdGltZSByZXBsYWNpbmcgYWxsIG91ciBleGlzdGluZywgaG9wZWZ1bGx5IGlkZW50aWNhbCwgcGx1Z2lucwoJICBhbmQgZmVhdHVyZXMgdGhhdCB3ZSdyZSBhYm91dCB0byByZS1zY2FuIGFueXdheS4KCjIwMDktMDEtMjkgMTM6MjI6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgdGhlIHJlZ2lzdHJ5LgoJICBBZGQgdGhlIGZ1bGwgc2V0IG9mIGRlYnVnIGFib3V0IHdoeSBpdCdzIGRlY2lkZWQgdGhhdCBhIGdpdmVuIHBsdWdpbiBpcwoJICBzdGFsZSBvciBub3QsIGFuZCBpbmNsdWRlIHRoZSBwbHVnaW4gbmFtZSB3aGVuIGZpbmFsaXppbmcgaXQuCgoyMDA5LTAxLTIzIDIxOjE1OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEFkZCByZXN0YXJ0aW5nIG9mIHRoZSBwbHVnaW4gbG9hZGVyIGFuZCBibGFja2xpc3Rpbmcgb2YgYnJva2VuIGZpbGVzCgoyMDA5LTAxLTIzIDE1OjQ3OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIFBsdWdpbiBsb2FkZXIgcGhhc2UgMgoJICBwaGFzZSAyIC0gbWFrZSB0aGUgcGx1Z2luIGxvYWRlciByZWNlaXZlIHRoZSBsaXN0IG9mIHBsdWdpbnMgdG8gbG9hZCBhbmQKCSAgc2VuZCBiYWNrIHRoZSByZXN1bHRzIGFzeW5jaHJvbm91c2x5LCBzbyB3ZSBkb24ndCBjb250ZXh0IHN3aXRjaCBiYWNrCgkgIGFuZCBmb3J0aCBzbyBtdWNoLgoKMjAwOS0wMy0xNCAyMzowNzo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9wbHVnaW4tc2Nhbm5lci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cmVnaXN0cnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlZ2lzdHJ5OiBBZGQgcmVnaXN0cnkgaGVscGVyIHBoYXNlIDEKCSAgUGhhc2UgMSBvZiBhZGRpbmcgdGhlIHJlZ2lzdHJ5IHNjYW4gaGVscGVyCgoyMDA5LTA5LTE0IDIzOjMxOjEwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogUmVhcnJhbmdlIHNvbWUgdGhpbmdzLgoJICBQcmVwYXJlIHRvIGxhbmQgdGhlIGV4dGVybmFsIHBsdWdpbiBoZWxwZXIgcHJvY2VzcwoKMjAwOS0xMC0wNiAxOTo0MTozOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjUuMQoKPT09IHJlbGVhc2UgMC4xMC4yNSA9PT0KCjIwMDktMTAtMDUgMTI6NTc6MDMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgUmVsZWFzZSAwLjEwLjI1CgoyMDA5LTEwLTA1IDEyOjQxOjQyICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMTAtMDEgMTY6MjQ6NTIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuNCBwcmUtcmVsZWFzZQoKMjAwOS0wOS0zMCAxNTo1MjozMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGxpYmdzdGNoZWNrOiBEb24ndCB1c2UgY2hhcmFjdGVyIGNsYXNzZXMgaW4gc2VkIGV4cHJlc3Npb25zCgkgIEFwcGFyZW50bHkgdGhlIHNlZCB0aGF0IHNoaXBzIG9uIFNvbGFyaXMgMTAgZG9lc24ndCBzdXBwb3J0IGNoYXJhY3RlcgoJICBjbGFzc2VzIGxpa2UgWzphbG51bTpdLCBzbyBkb24ndCB1c2UgdGhlbS4gV2UgZG9uJ3QgbmVlZCB0aGVtIGZvciB0aGUKCSAgc3ltYm9sIG5hbWVzIHRoYXQgYXJlIGJlaW5nIGV4dHJhY3RlZCBhbnl3YXkuCgkgIEFsc28sIHVzZSAkKFNFRCkgaW5zdGVhZCBvZiAnc2VkJwoJICBGaXhlczogIzU5Njg3NwoKMjAwOS0wOS0xNyAwMToyMDowMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuMyBwcmUtcmVsZWFzZQoKMjAwOS0wOS0xNSAwOTo0MToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCBHTVAgc2NhbGluZyB1bml0IHRlc3QKCSAgR01QIG9ubHkgdXNlcyAidW5zaWduZWQgbG9uZyBpbnQiLCB3aGljaCBpcyAzMiBiaXQKCSAgb24gMzIgYml0IGFyY2hpdGVjdHVyZXMgYW5kIGNhbid0IGhvbGQgYSBndWludDY0LgoJICBUaGlzIHJlc3VsdGVkIGluIGZhbHNlIHVuaXQgdGVzdCBmYWlsdXJlcyBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcy4KCSAgRml4ZXMgYnVnICM1OTUxMzMuCgoyMDA5LTA5LTE0IDEyOjQ3OjI2IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIEZpeCBvdXQtb2YtdHJlZSBidWlsZAoKMjAwOS0wOS0xNCAxNDowNzo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jczogR1NUX01FU1NBR0VfU1RSRUFNX1NUQVRVUyBpcyBpbXBsZW1lbnRlZCBub3dhZGF5cy4KCSAgRG9jcyB3ZXJlIHN0aWxsIG1lbnRpb24gaXQgYXMgIm5vdCB5ZXQgaW1wbGVtZW50ZWQiLgoKMjAwOS0wOS0xMiAxMzo1MjowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBCdWlsZCBwa2djb25maWcgYmVmb3JlIGFsbCBsaWJyYXJpZXMgYW5kIHNldCBQS0dfQ09ORklHX1BBVEgKCSAgVGhpcyB3YXkgZy1pci1zY2FubmVyIGNhbiBmaW5kIHRoZSBnc3RyZWFtZXItMC4xMCBwa2ctY29uZmlnIGZpbGUuCgoyMDA5LTA5LTEyIDEzOjUxOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgaW50cm9zcGVjdGlvbjogRG9uJ3QgdHlwZWRlZiBHc3RUYWdMaXN0IHRvIEdzdFN0cnVjdHVyZSBmb3IgZ29iamVjdC1pbnRyb3NwZWN0aW9uCgoyMDA5LTA5LTExIDIzOjIxOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vTElOR1VBUzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjIgcHJlLXJlbGVhc2UKCjIwMDktMDktMTEgMjI6NDI6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIERvbid0IHVzZSBDKysgc3R5bGUgY29tbWVudHMKCjIwMDktMDktMTEgMjI6MjI6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IERpc2FibGUgcmVzdHJpY3Rpb24gdGhhdCBzdHJ1Y3R1cmUgY2hhbmdlcyBhcmUgc2luayBwYWRzCgkgIFRoZSBzdHJ1Y3R1cmVfY2hhbmdlIG1lc3NhZ2Ugd2FzIG9yaWdpbmFsbHkgZW1pdHRlZCBvbiBzb3VyY2UgcGFkcyBhbmQKCSAgdGhlbiByZWNlbnRseSBjaGFuZ2VkIHRvIGJlIHNpbmsgcGFkcy4gVGhpcyBjYXVzZXMgYSBmYWlsdXJlIGluIHRoZQoJICBnc3QtcHl0aG9uIHRlc3RzdWl0ZS4gRGlzYWJsZSB0aGUgcmVzdHJpY3Rpb24gc28gdGhhdCB0aGUgcHVibGlzaGVkCgkgIGJlaGF2aW91ciBpcyBzdGlsbCBhbGxvd2VkLgoKMjAwOS0wOS0xMSAxODoyNDoxOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBjaGVjazogRml4IHZlcnNpb24gY2hlY2sgdGVzdHMKCSAgQWNjb21vZGF0ZSB0aGUgc2xpZ2h0bHkgY2hhbmdlZCBzZW1hbnRpY3MgaW4gdGhlIHBsdWdpbiB2ZXJzaW9uIGNoZWNrCgkgIHdoZXJlIGEgQ1ZTIHZlcnNpb24ganVzdCBiZWZvcmUgYSByZWxlYXNlIGlzIGFjY2VwdGFibGUuCgoyMDA5LTA5LTExIDIxOjIwOjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGRvbid0IGNyYXNoIGluIGNsZWFuaW5nIHVwIG9uIGVycm9yLgoJICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHBvaW50ZXJzLgoKMjAwOS0wNy0yMCAxMjo1NDowMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkZWJ1ZzogdXNlIGR1bW15IGNvZGUgdG8gYXZvaWQgc3B1cmlvdXMgc2VtaWNvbG9ucwoJICBGaXhlcyBidWcgIzU4OTE3My4KCjIwMDktMDktMTAgMTE6NTM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMTAgMTE6NDE6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBpbXByb3ZlIHZlcnNpb24gY2hlY2sKCSAgQWxzbyBwYXJzZSB0aGUgbmFubyBvZiB0aGUgdmVyc2lvbiBhbmQgYXNzdW1lIHRoYXQgWC5ZLlotMS4xID49IFguWS5aCgkgIFdpdGggdGhpcyBjaGFuZ2Ugd2UgY2FuIGFsc28gY2hlY2sgZGV2ZWxvcG1lbnQgdmVyc2lvbnMgYWdhaW5zdCB0aGUgdmVyc2lvbiBvZgoJICB0aGUgdXBjb21taW5nIHJlbGVhc2UuCgoyMDA5LTA5LTEwIDEwOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBub3QgdHlwZWRlZiBHc3RUYWdMaXN0IHRvIGJlIGEgR3N0U3RydWN0dXJlCgkgIFNlZSBidWcgIzUxODkzNC4KCjIwMDktMDktMDkgMTY6Mjk6MTAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IHR5cG8gaW4gaW5saW5lIGRvY3VtZW50YXRpb24KCjIwMDktMDktMDkgMTc6NTc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA5LTA5IDE4OjM4OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogQWRkIGEgY29tbWVudCB0byB0aGUgc2NhbGluZyBmdW5jdGlvbnMgdG8gZXhwbGFpbiB3aHkgdGhlIHJvdW5kaW5nIGlzIGNvcnJlY3QKCjIwMDktMDktMDkgMTY6NDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGRvbid0IHVucmVmIE5VTEwgY2FwcwoJICBDYXBzIGNhbiBiZSBOVUxMIHNvIGRvbid0IGNhbGwgdW5yZWYgb24gaXQgdW5jb25kaXRpb25hbGx5LCBpbnN0ZWFkIHVzZSBhbgoJICBleGlzdGluZyBleGl0IHBhZCBmb3IgdGhlIGZ1bmN0aW9uLgoKMjAwOS0wOS0wOSAxNDo1MzoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIGdjYydzIF9fdWludDEyOF90IGZvciA2NGJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNjYWxpbmcKCSAgVGhpcyBpcyBhdmFpbGFibGUgaW4gbmV3ZXIgZ2NjIHJlbGVhc2VzIGFuZCBpdCBzaG91bGQgb25seSBleGlzdAoJICBvbiBwbGF0Zm9ybXMgdGhhdCBwcm92aWRlIHNvbWUgbmF0aXZlIDEyOGJpdCBpbnRlZ2VyIGFyaXRobWV0aWMKCSAgaW5zdHJ1Y3Rpb25zLgoJICBUaGUgeDg2LTY0IGFzc2VtYmx5IGZvciB0aGlzIGlzIHN0aWxsIGtlcHQgZm9yIG5vbi1nY2MgY29tcGlsZXJzCgkgIHRoYXQgZG9uJ3QgcHJvdmlkZSBfX3VpbnQxMjhfdCBtYWdpYy4KCjIwMDktMDktMDkgMDk6Mzg6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtYnVmZmVycG9vbHMudHh0OgoJICBkZXNpZ246IGFkZCBpZGVhcyBmb3IgYnVmZmVyIG1hbmFnZW1lbnQKCSAgUmlnaHQgbm93IHdlJ3JlIG9wZXJhdGluZyBzdWJvcHRpbWFsIHdoZW4gdGFsa2luZyB0byBrZXJuZWwgaW50ZXJmYWNlcy4gV3JpdGUKCSAgZG9lc24gc29tZSBpZGVhcy4KCjIwMDktMDktMDcgMTg6Mjc6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZpeCB3aGl0ZXNwYWNlCgoyMDA5LTA5LTAzIDE5OjA2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGZpeCB3aGl0ZXNwYWNlCgoyMDA5LTA5LTA3IDE2OjE0OjU3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBkb2NzOiBGaXggdHlwbyBpbiBnc3RfdmFsdWVfdW5pb24oKQoKMjAwOS0wOS0wNiAxOTo0Mzo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYml0cmVhZGVyLCBieXRlcmVhZGVyOiBhZGQgc29tZSBGSVhNRSAwLjExIGNvbW1lbnRzIGFuZCBmaXggaW5kZW50aW5nCgoyMDA5LTA5LTA0IDE3OjE1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIHVuY2hlY2tlZCBhbmQgaW5saW5lIHZlcnNpb25zIG9mIHRoZSBmbG9hdCBnZXR0ZXJzL3BlZWtlcnMKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2Zsb2F0Kl91bmNoZWNrZWQoKQoKMjAwOS0wOS0wNCAxNjo1MjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmVyc2lvbnMgb2YgdGhlIG1vc3QgY29tbW9uIGdldHRlcnMgYW5kIHNldHRlcnMKCjIwMDktMDktMDIgMTE6MjA6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZWQgX3VuY2hlY2tlZCgpIHZhcmlhbnRzIGZvciBzb21lIGZ1bmN0aW9ucwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfKl91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfKl91bmNoZWNrZWQoKQoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl97cGVlayxnZXQsZHVwfV9kYXRhX3VuY2hlY2tlZCgpCgoyMDA5LTA5LTA1IDEyOjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogU3RyaXAgR3N0IHByZWZpeCBmcm9tIGFsbCB0eXBlcy9mdW5jdGlvbnMKCjIwMDktMDktMDUgMTI6MjI6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBGaXggZm9yIG91dC1vZi10cmVlIGJ1aWxkcwoKMjAwOS0wOS0wNSAxMjowNDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBvdXQtb2YtdHJlZSBidWlsZAoKMjAwOS0wOS0wNSAxMTo1MTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBidWlsZCBpZiBnaXItcmVwb3NpdG9yeSBpcyBub3QgaW5zdGFsbGVkCgoyMDA5LTA5LTA1IDA5OjM2OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbmV0OiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDUgMDk6MzQ6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICBkYXRhcHJvdG9jb2w6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoJICBCZWNhdXNlIG9mIGEgYnVnIGluIGdvYmplY3QtaW50cm9zcGVjdGlvbiB0aGlzIGlzIGRpc2FibGVkIGZvciBub3cuCgoyMDA5LTA5LTA1IDA5OjI4OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIGNvbnRyb2xsZXI6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOToyNzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOToyMzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgZ3N0YmFzZTogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA0IDIwOjU2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1NTA2MTYuCgoyMDA5LTA5LTA1IDEwOjE5OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTRmOTVlMyB0byAxOWZhNGYzCgoyMDA5LTA5LTA0IDE5OjM3OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggZG9jcyBmb3IgZ3N0X2J5dGVfcmVhZGVyX3tnZXR8cGVla31fZmxvYXQqKCkKCjIwMDktMDktMDQgMTE6MzU6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDQgMDk6NTE6MjYgKzAyMDAgIEF1cmVsaWVuIEdyaW1hdWQgPGdzdGVsenpAeWFob28uZnI+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogT25seSB1bnJlZiBFT1MgbWVzc2FnZSBhZnRlciBpdCBpcyBub3QgdXNlZCBhbnltb3JlCgkgIEZpeGVzIGJ1ZyAjNTk0MTA3LgoKMjAwOS0wOS0wMiAxODo1NDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBzdGF0ZXM6IHBvc3Qgc3RydWN0dXJlIGNoYW5nZSBvbiBzaW5rcGFkcwoJICBQb3N0IHRoZSBzdHJ1Y3R1cmUgY2hhbmdlIG1lc3NhZ2VzIG9uIHRoZSBzaW5rcGFkcyBvZiB0aGUgZWxlbWVudHMuIFRoaXMgYWxsb3dzCgkgIHVzIHRvIGNhdGNoIHVubGlua2VkIHBhZHMgZWFybGllciB3aXRob3V0IGVuZGluZyB1cCB3aXRoIGluY29uc2lzdGVudCBlbGVtZW50CgkgIGRlZ3JlZXMuCgoyMDA5LTA5LTAyIDE4OjEzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGF2b2lkIGZhbHNlICdsb29wIGRldGVjdGVkJyB3YXJuaW5ncwoJICBXaGVuIHdlIGRldGVjdCBhIHBhZCB1bmxpbmsgaW4gcHJvZ3Jlc3MsIHdlIHdpbGwgbm90IGJlIHVwZGF0aW5nIHRoZSBkZWdyZWUgb2YKCSAgdGhlIHBhcmVudCBlbGVtZW50LiBUaGlzIGNhbiBjYXVzZSBmYWxzZSBsb29wIGRldGVjdGVkIHdhcm5pbmdzIGJlY2F1c2UgdGhlCgkgIGRlZ3JlZSBjb3VudGVyIGlzIGludmFsaWQuIEhhbmRsZSB0aGlzIGNhc2UgYnkgbWFya2luZyB0aGUgaXRlcmF0b3IgYXMgJ2RpcnR5JwoJICB3aGVuIHdlIGRldGVjdCBhIHBhZCB1bmxpbmsgYW5kIGF2b2lkIGVtaXRpbmcgdGhlIHdhcm5pbmcgaW4gdGhpcyBjYXNlLiBXZSBoYXZlCgkgIHRvIGNvbnRpbnVlIG91ciBzdGF0ZSBjaGFuZ2UgYXMgZ29vZCBhcyB3ZSBjYW4sIHdlIHdpbGwgZXZlbnR1YWxseSByZXN5bmMgd2hlbgoJICB0aGUgcGFkIHVubGluayBjb21wbGV0ZWQuCgoyMDA5LTA5LTAxIDE2OjQ5OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAxIDE2OjQ5OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDEgMTI6MDc6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBkaXN0OiBEb24ndCBsaXN0IHRoZSBzdHJlYW1zIHN1YmRpciB0d2ljZSBpbiBleGFtcGxlcyBNYWtlZmlsZQoJICBMaXN0aW5nIHRoZSAnc3RyZWFtcycgc3ViZGlyIHR3aWNlIGluIERJU1RfU1VCRElSUyBicmVha3MgZGlzdGNoZWNrLgoKMjAwOS0wOS0wMSAxMjowNTo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IERvbid0IHByb3BhZ2F0ZSBhIE5VTEwgY2FjaGVkIGluZGV4IHRvIGFkZGVkIGVsZW1lbnRzCgkgIFdoZW4gYW4gZWxlbWVudCBpcyBhZGRlZCB0byB0aGUgYmluLCBvbmx5IHNldCB0aGUgaW5kZXggaWYgd2UgaGF2ZSBhCgkgIGNhY2hlZCBpbmRleCwgcmF0aGVyIHRoYW4gc2V0dGluZyBhIE5VTEwgaW5kZXggb24gZWxlbWVudHMgdGhhdCBtaWdodAoJICBoYXZlIGEgZGVmYXVsdCBpbmRleCBvYmplY3Qgb2YgdGhlaXIgb3duLgoKMjAwOS0wNy0xOSAyMToyMzoxOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogQWRkIGEgbm90ZSBhYm91dCByZWdlbmVyYXRpbmcgdGhlIGNoYW5nZWxvZyBpbiB0aGUgcmVsZWFzZSBzY3JpcHQKCjIwMDktMDktMDEgMTA6MDM6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZG9uJ3QgdGFrZSBvYmplY3QgbG9jayBmb3IgZ19jcml0aWNhbCgpIGFuZCBmbGVzaCBvdXQgd2FybmluZyBtZXNzYWdlIHNvbWUgbW9yZQoKMjAwOS0wOS0wMSAxMDoyMTozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBzaW5nbGUgaXRlcmF0b3IKCjIwMDktMDktMDEgMTA6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBPbmx5IHZpc2l0IHRoZSBlbGVtZW50IGEgc2luZ2xlIHRpbWUgaW4gdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOS0wMSAwNzoyNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBzaW5nbGUgaXRlcmF0b3IgZm9yIE5VTEwgb2JqZWN0cyBhbmQgbm9uLUdUeXBlSW5zdGFuY2Ugb2JqZWN0cwoJICBGaXhlcyBidWcgIzU5MzcxOS4KCjIwMDktMDktMDEgMDA6MDA6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRlYnVnOiBtb3JlIGRldGFpbCBpbiB3cm9uZy1zdGF0ZS1vbi1kaXNwb3NlIGVycm9yLgoJICBBbHNvIHRlbGwgaW4gd2hpY2ggc3RhdGUgdGhlIGVsZW1lbnQgYWN0dWFseSBpcyBhbmQgaWYgaXQgaXMgZXZlbnR1YWx5CgkgIHN0YXRlLWxvY2tlZC4KCjIwMDktMDgtMzEgMjA6Mzg6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IGZpeCBkb2NzIGZvciBfbmV3X3NpbmdsZSgpLgoKMjAwOS0wOC0zMSAxNjo1NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBkb2NzOiBpdCdzIGl0cwoJICBUaGUgcGFuZGEgc2F5cyBubyEKCjIwMDktMDgtMjkgMjA6NDQ6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHJlZ2lzdHJ5OiBmaWxsIGluIGVsZW1lbnRmYWN0b3J5IHdoZW4gcmVnaXN0ZXJpbmcgZWxlbWVudAoJICBlbGVtZW50ZmFjdG9yeSBmaWVsZCBpcyBmaWxsZWQgaW4gYnkgZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0LAoJICBidXQgaXQgbmVlZHMgc29tZSBpbmZvIHNldCBvbiB0aGUgZWxlbWVudCdzIHR5cGUsIHNvIGhhdmUgaXQKCSAgYXZhaWxhYmxlIHByaW9yIHRvIGNsYXNzIHN0cnVjdHVyZSBjcmVhdGlvbiBzcGlubmluZyB1cC4KCSAgVGhpcyBhZmZlY3RzIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIHdlbGwta25vd24vcHVibGljIHR5cGUgKGUuZy4gcGlwZWxpbmUpCgkgIGFuZCBjYW4gYmUgY3JlYXRlZCBieSBvdGhlciBtZWFucyB0aGFuIGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZQoJICAod2hpY2ggd2lsbCBhbHNvIGZpbGwgaW4gdGhlIGVsZW1lbnQncyBmYWN0b3J5KS4KCjIwMDktMDgtMzEgMTE6NDU6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSAxMjhiaXRzIGRpdmlzaW9uIG9uIHg4Nl82NAoKMjAwOS0wOC0yOSAwNDo0NDo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeCBjb21waWxhdGlvbiBvZiB3aW4zMiBjb2RlCgkgIEZpeGVzICM1OTM0NjAuCgoyMDA5LTA4LTI4IDE4OjM3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGNhY2hlIGluZGV4CgkgIENhY2hlIHRoZSBsYXN0IGluZGV4IHRoYXQgd2FzIHNldCB3aXRoIF9zZXRfaW5kZXgoKSBhbmQgcmV0dXJuIHRoaXMgaW4gdGhlCgkgIF9nZXRfaW5kZXgoKSBjYWxsLgoJICBTZXQgdGhlIGNhY2hlZCBpbmRleCBvbiBuZXdseSBhZGRlZCBlbGVtZW50cy4KCSAgRml4ZXMgIzU2Njg4MQoKMjAwOS0wOC0yOCAxODozNTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGJldHRlciB0eXBlIGNoZWNrcwoJICBBZGQgR1NUX0NMT0NLIHR5cGVjaGVjayBmb3IgX3NldF9jbG9jaygpLgoJICBBbGxvdyBzZXR0aW5nIE5VTEwgaW5kZXhlcyBvbiBlbGVtZW50IChjbGVhciB0aGUgY3VycmVudCBpbmRleCkKCSAgU29tZSB3aGl0ZXNwYWNlIGZpeGVzLgoKMjAwOS0wOC0yOCAxODoxNDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ7IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTg6MDY6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlIHRvIGRlZnMKCjIwMDktMDgtMjggMTg6MDM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxNzo1OToxNSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBDaGVjayBzdWdnZXN0ZWQgY2FwcyBmb3IgcHJveHkgYWxsb2MKCSAgQmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIHJlc29sdmUgYSBzdWdnZXN0aW9uIGhlcmUgd2UgZG9uJ3QgbmVlZAoJICB0byBjaGVjayBvbiBjYXBzIGZvciBwcm94eV9hbGxvYyBidXQgd2UgbmVlZCB0byBjaGVjayBvbiB0aGUKCSAgc3VnZ2VzdGVkIGNhcHMgaW5zdGVhZC4KCjIwMDktMDgtMjggMTc6NDk6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTc6MDI6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IHVzZSBwcmVmb3JtYW5jZSBjb3VudGVycyBvbiB3aW5kb3dzCgkgIEJhc2VkIG9uIGNsb2NrIGltcGxlbWVudGF0aW9uIGJ5IEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgkgIFRyeSB0byBnZXQgdGhlIHRpbWUgb24gd2luZG93cyB1c2luZyB0aGUgcGVyZm9ybWFuY2UgY291bnRlcnMuIFRoZXNlIGhhdmUgYSBtdWNoCgkgIGhpZ2hlciByZXNvbHV0aW9uIGFuZCBhY2N1cmFjeSB0aGFuIHRoZSByZWd1bGFyIGdldGN1cnJlbnR0aW1lKCkuIEJlIGNhcmVmdWwgdG8KCSAgZmFsbCBiYWNrIHRvIHJlZ3VsYXIgZ2V0Y3VycmVudHRpbWUoKSBvciBwb3NpeCBjbG9ja3Mgd2hlbiBwZXJmb3JtYW5jZSBjb3VudGVycwoJICBhcmUgbm90IGF2YWlsYWJsZS4KCjIwMDktMDgtMjggMTY6MDc6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IGZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wOC0yOCAxNTozMjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIHNoaWZ0IGluc3RlYWQgb2YgZGl2aXNpb24KCSAgV2UgY2FuIHVzZSBhIHNoaWZ0IGZvciBzY2FsaW5nIHRoZSBkZW5vbWluYXRvciBpbnN0ZWFkIG9mIGEgZGl2aWRlIHNpbmNlIHRoZQoJICBkZW5vbSBpcyBhbHdheXMgcG9zaXRpdmUuIFRoaXMgYXZvaWRzIGhhdmluZyB0aGUgY29tcGlsZXIgZ2VuZXJhdGUgY29kZSBmb3IgdGhlCgkgIGRpZmZlcmVudCByb3VuZGluZyBydWxlcyB3aGVuIHNjYWxpbmcgbmVnYXRpdmUgdmFsdWVzLgoKMjAwOS0wOC0yOCAxMzo0NTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbWFrZSBpbmxpbmluZyBleHBsaWNpdAoKMjAwOS0wOC0yOCAxMjo0Mzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogb3B0aW1pemUgZm9yIHg4Nl82NCB3aXRoIHNvbWUgaW5saW5lIGFzbQoJICA2NGJpdCB4ODYgaGFzIG5hdGl2ZSA2NHg2NC0+MTI4IGJpdCBtdWx0aXBseSB0aGF0IHdlIGNhbiB1c2Ugd2l0aCBzb21lIGlubGluZQoJICBhc3NlbWJsZXIgdG8gc3BlZWQgdXAgbGFyZ2UgbXVsdGlwbGljYXRpb25zLgoJICBVc2UgYnNyIHRvIGZpbmQgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9zIG1vcmUgZWZmaWNpZW50bHkuCgoyMDA5LTA4LTI4IDEyOjMzOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmYWN0b3Igb3V0IHRoZSBsZWFkaW5nIHplcm8gY291bnQgY29kZQoKMjAwOS0wOC0yOCAxMjozMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcGFzcyBjb3JyZWN0aW9uIGZhY3RvciBhcm91bmQKCSAgUGFzcyB0aGUgY29ycmVjdGlvbiBmYWN0b3IgYXJvdW5kIHRvIGdldCByaWQgb2YgdGhlIGVudW0sIHNvbWUgY29kZQoJICBhbmQgc29tZSBicmFuY2hlcy4KCjIwMDktMDgtMjggMTI6MjE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDgtMjggMTI6MTk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1vdmUgY29tbW9uIGNvcnJlY3Rpb24gY29kZSBpbiBhIG1hY3JvCgoyMDA5LTA4LTI0IDE4OjAxOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yNiAxNjo1MTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEFsbG93IHRvIHVzZSBOVUxMIGFzIG9iamVjdCBmb3IgdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOC0yNiAxNjozOToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiBBUEk6IEFkZCBnc3RfaXRlcmF0b3JfbmV3X3NpbmdsZSgpCgkgIFRoaXMgYWxsb3dzICJpdGVyYXRpb24iIG92ZXIgYSBzaW5nbGUgb2JqZWN0IG9mIHNvbWUgdHlwZSwKCSAgd2hpY2ggaGFwcGVucyBvZnRlbiBmb3IgdGhlIEdzdFBhZEl0ZXJJbnRMaW5rc0Z1bmN0aW9uIGZvciBleGFtcGxlLgoKMjAwOS0wOC0yNCAxNzo1NzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXR1cm4gcmVzdWx0IG9mIF9zZXRfY2FwcygpCgoyMDA5LTA4LTI0IDE3OjU2OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yMiAxNDoyMjozMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0eG1sLmg6CgkgIEl0J3MgX19HTlVDX18sIG5vdCBfR05VQ18KCSAgVGhpcyBhcHBlYXJzIHRvIGJlIGFuIDggeWVhciBvbGQgYnVnLgoKMjAwOS0wOC0yMSAwOTo1OTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiBhZGQgbGluayB0byBjZ2l0IHRhcmJhbGwgZG93bmxvYWQgb2YgZ3N0LXRlbXBsYXRlIGluIFBXRwoJICBTbyBwZW9wbGUgd2hvIGNhbid0IHVzZSBnaXQgZm9yIHNvbWUgcmVhc29uIHN0aWxsIGNhbiBnZXQgaG9sZAoJICBvZiB0aGUgY29kZS4gU2VlICM1OTEwNjkuCgoyMDA5LTA4LTIwIDExOjU0OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBndWFyZCB0byBnc3RfcGx1Z2luX2ZlYXR1cmVfdHlwZV9uYW1lX2ZpbHRlcgoJICBTbyB3ZSBkb24ndCBqdXN0IGNyYXNoIGlmIHRoZXJlJ3MgYSByZWZjb3VudGluZyBidWcgc29tZXdoZXJlIGVsc2UuCgoyMDA5LTA4LTE5IDE2OjI0OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogRG9uJ3QgdGFsayBhYm91dCB0aGUgZGVwcmVjYXRlZCBsaWJnbm9tZSBhbmQgR05PTUUtVkZTCgkgIEluc3RlYWQgdGFsayBhYm91dCBHSU8gYW5kIGNoYW5nZSB0aGUgb3B0aW9uIHBhcnNpbmcgZXhhbXBsZSB0bwoJICBub3QgaW5pdGlhbGl6ZSBsaWJnbm9tZSBidXQgb25seSBHVEsuCgkgIEZpeGVzIGJ1ZyAjNTkyMjMzLgoKMjAwOS0wOC0xOSAxNToyNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IExpbmsgcnRwb29sLXRlc3QgdG8gbGlicHRocmVhZCBmb3IgdXNpbmcgdGhlIFBPU0lYIHRocmVhZHMKCSAgQWxzbyB0aGUgb3RoZXIgc3RyZWFtcyBleGFtcGxlIGNhbiBydW4gd2l0aG91dCBwdGhyZWFkcyB0aGVyZWZvcmUKCSAgZW5hYmxlIGl0IGV2ZW4gaWYgcHRocmVhZHMgYXJlIG5vdCBhdmFpbGFibGUuCgkgIEZpeGVzIGJ1ZyAjNTkyMzE0LgoKMjAwOS0wOC0xOCAxNDo0NToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICB0b29sczogVXNlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldF9pbnRlcm5hbF9saW5rcwoKMjAwOS0wOC0xOCAxNDo0NTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFVzZSBpdGVyYXRlX2ludGVybmFsX2xpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXRfaW50ZXJuYWxfbGlua3MKCjIwMDktMDgtMTggMTQ6MDU6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIGdzdHBhZDogQWRkIHNvbWUgRElTQUJMRV9ERVBSRUNBVEVEIG1hcmtlcnMgaW4gdGhlIGhlYWRlciB0b28KCSAgVGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgc2luY2Ugc29tZSB0aW1lIGFuZAoJICB0aGVyZSBhbHJlYWR5IHdlcmUgR1NUX1JFTU9WRV9ERVBSRUNBVEVEIG1hcmtlcnMgaW4gdGhlIHNvdXJjZSBmaWxlLAoJICBub3cgYWRkIHRoZW0gdG8gdGhlIGhlYWRlciB0b28uCgkgIEZpeGVzIGJ1ZyAjNTkyMjA5LgoKMjAwOS0wOC0xOCAxMTozODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3M6IFVwZGF0ZSB0aGUgZGVzaWduIGRvY3MgZm9yIGJpbiBzdGF0ZSBjaGFuZ2VzIGFjY29yZGluZyB0byBsYXN0IGNvbW1pdAoKMjAwOS0wOC0xOCAxMTozNjozNiArMDIwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBEb24ndCB0cnkgdG8gY2hhbmdlIGNoaWxkcmVuJ3Mgc3RhdGUgaWYgdGhleSdyZSBhbHJlYWR5IGluIHRoZSBzdGF0ZSB3ZSB3YW50CgkgIEZpeGVzIGJ1ZyAjMzY4NTM2LgoKMjAwOS0wOC0xOCAxMTozMzoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFsd2F5cyBnZXQgdGhlIHByb3h5cGFkJ3MgZ2hvc3RwYWQgdmlhIHRoZSBnaG9zdHBhZCBpbiB0aGUgc3JjIGNhcHMgY2hhbmdlIG5vdGlmeSBoYW5kbGVyCgkgIEJlZm9yZSB0aGUgc2lnbmFsIGhhbmRsZXIgd291bGQgZ2V0IHRoZSBnaG9zdHBhZCBwYXNzZWQgYXMgc2Vjb25kCgkgIGFyZ3VtZW50IGJ1dCBpdCBjb3VsZCd2ZSBhbHJlYWR5IGJlZW4gdW5yZWZmZWQgYW5kIGRlc3Ryb3llZC4KCSAgVGhpcyB3b3VsZCB0aGVuIGxlYWQgdG8gY3Jhc2hlcyBhbmQgYWxsIHRoYXQuCgkgIE5vdyB3ZSBnZXQgdGhlIGdob3N0cGFkIGZyb20gdGhlIHByb3h5IHBhZCwgd2hpY2ggd2UgZ2V0IGZyb20gdGhlCgkgIHRhcmdldCBwYWQgYXMgaXQncyBwZWVyLgoJICBGaXhlcyBidWcgIzU5MTMxOC4KCjIwMDktMDgtMTggMDg6NDU6MDggKzAyMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogQWRkIHByb3BlcnR5IHRvIGFsbG93IHRvIGFwcGVuZCB0byBhbiBhbHJlYWR5IGV4aXN0aW5nIGZpbGUKCSAgRml4ZXMgYnVnICM1OTE0NDEuCgoyMDA5LTA4LTE0IDExOjUzOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgZHVwbGljYXRlZCBjaGVjayBmb3IgY2xvY2tfZ2V0dGltZQoKMjAwOS0wOC0xNCAxMToxMjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEFkZCBzcGVjaWFsIHJhbmRvbSB1bml0IHRlc3QgZm9yIDY0IHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoaXMgdGVzdHMgMTAwMDAwIHJhbmRvbSBtdWx0aXBsaWNhdGlvbnMvZGl2aXNpb25zIG9mIGFsbCBzY2FsaW5nCgkgIGZ1bmN0aW9uIHZhcmlhbnRzIGFuZCBjb21wYXJlcyB0aGUgcmVzdWx0IHdpdGggdGhlIHJlc3VsdCB0aGF0IGlzCgkgIGdlbmVyYXRlZCBieSBHTVAgb24gdGhlIHNhbWUgaW5wdXQuCgkgIEZvciB0aGlzIGNoZWNrIGZvciBHU0wgYW5kIEdNUCBkdXJpbmcgY29uZmlndXJlIGJ1dCBvbmx5IHVzZQoJICBpdCBmb3IgdGhpcyBzaW5nbGUgdW5pdCB0ZXN0LgoJICBUZXN0aW5nIGZ1bmN0aW9ucyB3ZXJlIHByb3ZpZGVkIGJ5IEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoyMDA5LTA4LTEzIDE2OjMxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogQWRkIG5ldyBzY2FsaW5nIGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAwOS0wOC0xMyAxNjoyMDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEFkZCAodmVyeSkgbWluaW1hbCB1bml0IHRlc3QgZm9yIHRoZSBuZXcgcm91bmRpbmcgc2NhbGluZyBmdW5jdGlvbnMKCjIwMDktMDgtMTMgMTY6MTA6MzEgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBBUEk6IEFkZCByb3VuZGluZyB0byBuZWFyZXN0IGFuZCBuZXh0IGludGVnZXIgdmVyc2lvbnMgb2YgdGhlIDY0IGJpdCBpbnRlZ2VyIHNjYWxpbmcgZnVuY3Rpb25zCgkgIFRoZSBuZXcgZnVuY3Rpb25zIGFyZQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50X3JvdW5kKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludF9jZWlsKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX3JvdW5kKCkKCSAgZ3N0X3V0aWxfdWludDY0X3NjYWxlX2NlaWwoKQoJICBGaXhlcyBidWcgIzU5MDkxOS4KCjIwMDktMDgtMTIgMTE6MTA6MDUgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IFJldmVydCBwYXJ0cyBvZiBsYXN0IGNoYW5nZSB0byBvcHRpbWl6ZSB0aGUgc2NhbGluZyBmdW5jdGlvbnMgYWdhaW4KCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMSAwOToxNjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IEZpeCB2aW9sYXRpb25zIG9mIHN0cmljdC1hbGlhc2luZyBydWxlcyBpbiBnc3RfdXRpbF91aW50NjRfc2NhbGUoKQoKMjAwOS0wOC0xMSAwOToxMDo0NyArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogUmVmYWN0b3IgZ3N0X3V0aWxfdWludDY0X3NjYWxlKCkKCSAgVGhpcyB3aWxsIGxhdGVyIG1ha2UgaXQgcG9zc2libGUgdG8gcHJvdmlkZSByb3VuZGluZyB2ZXJzaW9ucwoJICBvZiBpdCB3aXRob3V0IG11Y2ggY29kZSBkdXBsaWNhdGlvbi4KCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMSAxNToyMDoxOCArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogdXBkYXRlIGRvYyBzdHJpbmcKCjIwMDktMDgtMTEgMTM6MjE6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogQWN0dWFsbHkgc3RhcnQ9PXN0b3A9PXNlZ21lbnRfc3RhcnQgaXMgaW5zaWRlIHRoZSBzZWdtZW50CgkgIFN0aWxsIHRoZSBvbGQgY29kZSB3YXMgd3JvbmcgYXMgaXQgY2xhaW1lZCB0aGF0IHN0YXJ0PT1zdG9wPHNlZ21lbnRfc3RhcnQKCSAgd291bGQgYmUgaW5zaWRlIHRoZSBzZWdtZW50IGFuZCByZXR1cm5lZCBpbnNhbmUgY2xpcHBpbmcgZGlmZmVyZW5jZXMuCgoyMDA5LTA4LTExIDEzOjAzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIGdzdHNlZ21lbnQ6IEZpeCB1bml0IHRlc3QgYW5kIGFkZCBhbiBhZGRpdGlvbmFsIHRlc3QKCSAgVGhlIHByZXZpb3VzIHRlc3QgYXNzdW1lZCB0aGF0IHN0YXJ0PXN0b3A9c2VnbWVudF9zdGFydCB3aWxsCgkgIGJlIGluc2lkZSB0aGUgc2VnbWVudCBidXQgdGhpcyBpcyB3cm9uZy4KCjIwMDktMDgtMTEgMTI6NTk6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogQ2xpcHBpbmcgc2hvdWxkIGRldGVjdCBzdGFydD1zdG9wPHNlZ21lbnRfc3RhcnQgYXMgb3V0c2lkZSB0aGUgc2VnbWVudAoJICBCZWZvcmUgaXQgcmV0dXJuZWQgdGhhdCBbc3RhcnQsc3RvcF0gaXMgaW5zaWRlIHRoZSBzZWdtZW50IGFuZCB0aGF0IHRoZQoJICBkaWZmZXJlbmNlIGJldHdlZW4gc2VnbWVudF9zdGFydCBhbmQgc3RhcnQgbmVlZHMgdG8gYmUgY2xpcHBlZC4gSWYgdGhlCgkgIGNsaXBwaW5nIGlzIGRvbmUgb24gYSBidWZmZXIgKGxpa2UgaW4gYmFzZWF1ZGlvc2luaykgdGhpcyB3aWxsIHJlc3VsdAoJICBpbiB0aGUgZGF0YSBwb2ludGVyIGJlaW5nIGF0IGEgaW52YWxpZCBtZW1vcnkgcG9zaXRpb24uCgkgIEZpeGVzIGJ1ZyAjNTg5ODQ5LgoKMjAwOS0wOC0xMSAwNTo0NzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGdzdGJ1czogVW5yZWYgcGlwZWxpbmUgYWZ0ZXIgdXNhZ2UgaW4gdGVzdF9jdXN0b21fbWFpbl9jb250ZXh0IHVuaXQgdGVzdAoJICBUaGlzIG1ha2VzIHRoZSBjb3JlIHVuaXQgdGVzdHMgdmFsZ3JpbmQgY2xlYW4gYWdhaW4uCgoyMDA5LTA4LTExIDAyOjU0OjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IGFkZCBFZHdhcmQncyBnaXQgcGx1Z2luIG1vdmluZyBob3d0byB0byBtb3ZpbmctcGx1Z2lucyBkb2N1bWVudAoKMjAwOS0wOC0xMCAxNDozMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogZG9uJ3QgZm9yZ2V0IHRvIGluY2x1ZGUgY29uZmlnLmggaW4gdGhlIEdzdE9iamVjdCB1bml0IHRlc3QKCjIwMDktMDgtMTAgMTM6MDU6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGNoZWNrczogdHJ5IHRvIGZpeCBHc3RPYmplY3QgdW5pdCB0ZXN0IG9uIE9TWAoJICBTZWVtcyBsaWtlIHdlIGdldCBTSUdCVVMgaW5zdGVhZCBvZiBTSUdTRUdWIGhlcmUgd2hlbiBHTGliIGNyYXNoZXMKCSAgd2hlcmUgaXQgc2hvdWxkbid0IGNyYXNoIChhbmQgd2UgZXZlbiBoYXZlIGEgdW5pdCB0ZXN0IGZvciB0aGF0ISkuCgoyMDA5LTA4LTEwIDEyOjAxOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgY2hlY2tzOiBzZXQgcGlwZWxpbmVzIHRvIE5VTEwgc3RhdGUgaW4gcGFyc2UtbGF1bmNoIHVuaXQgdGVzdAoJICBGaXhlcyB0aW1lb3V0cyBpbiBnc3RfdGFza19jbGVhbnVwX2FsbCgpLgoKMjAwOS0wOC0xMCAxMTo0MjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGNoZWNrczogc2V0IHBpcGVsaW5lIGJhY2sgdG8gTlVMTCBzdGF0ZSBpbiBHc3RCdXMgdW5pdCB0ZXN0CgkgIEZpeGVzIHRpbWVvdXQgaW4gZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKS4KCjIwMDktMDgtMTAgMTE6NDM6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBzb21lIGxvZ2dpbmcgYmVmb3JlIGNhbGxpbmcgZ3N0X3Rhc2tfY2xlYW51cF9hbGwoKQoKMjAwOS0wOC0wOCAyMjoyNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQ2FsbCBnc3RfdGFza19jbGVhbnVwX2FsbCgpIGluIEdTVF9FTkRfVEVTVAoJICBUaGlzIGZpeGVzIG1hbnkgdW5pdCB0ZXN0cyB1bmRlciB2YWxncmluZCB0aGF0IHNob3dzCgkgIGxlYWtpbmcgR3N0VGFza3MgdGhhdCBhcmUgbm90IHJlYWxseSBsZWFrZWQgYnV0IGp1c3QKCSAgbm90IHVucmVmZmVkIGJ5IHRoZSB0YXNrIHRocmVhZCBiZWZvcmUgdGhlIHVuaXQgdGVzdAoJICBzdG9wcGVkLgoJICBGaXhlcyBidWcgIzU5MTA0NS4KCjIwMDktMDgtMDggMTQ6NDc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAwOS0wOC0wOCAxNDo0Nzo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZ3N0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAwOS0wOC0wNyAwMjozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBpZ25vcmUgbmV3IHF1ZXVlLWVycm9yIHRlc3QKCjIwMDktMDgtMDYgMjA6NDA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBhZGQgaW50ZXJuYWwtY2hlY2suaCB0byBCVUlMVF9TT1VSQ0VTIGluIGF0dGVtcHQgdG8gZml4IHRoZSBidWlsZAoJICBGb3Igc29tZSBwZW9wbGUgdGhlIGJ1aWxkIG9mIGxpYmdzdGNoZWNrIHdhcyBicm9rZW4gYmVjYXVzZSB0aGUgbWFrZQoJICB0YXJnZXQgdGhhdCBjcmVhdGVzIHRoZSBpbnRlcm5hbC1jaGVjay5oIGZpbGUgd2Fzbid0IGV4ZWN1dGVkIGZvcgoJICBzb21lIHJlYXNvbi4gVGhpcyBzaG91bGQgaG9wZWZ1bGx5IGZpeCB0aGlzLgoKMjAwOS0wOC0wNiAxODozODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBvbGRlciBhY2xvY2FscyBkb24ndCBsaWtlIC1JLiBzbyB1c2UgLUkgLiBpbnN0ZWFkCgoyMDA5LTA4LTA2IDE4OjQ3OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGFkZCBhZGRpdGlvbmFsIGNoZWNraW5nIGZvciB3cml0YWJpbGl0eQoJICBDaGVjayBmb3IgbWV0YWRhdGEgd3JpdGFiaWxpdHkgd2hlbiBzZXR0aW5nIGNhcHMgb24gYnVmZmVyIG9yIHdoZW4gY29weWluZwoJICBtZXRhZGF0YSBmbGFncy4gT25seSBlbmFibGUgdGhlc2UgZXh0cmEgYXNzZXJ0aW9ucyBpbiBnaXQgdmVyc2lvbnMuCgkgIFRoaXMgc2hvdWxkIGhlbHAgdXMgZmluZCBiYWQgZWxlbWVudHMuCgoyMDA5LTA4LTA0IDEwOjIyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY2hlY2s6IGRpc2FibGUgdW5pdCB0ZXN0IHN1cHBvcnQgb24gd2luMzIgZm9yIG5vdwoJICBVbnRpbCB3ZSBtYWtlIHRoZSBpbnRlcm5hbCBsaWJjaGVjayB3b3JrIG9uIHdpbmRvd3MuCgoyMDA5LTA3LTE5IDE3OjA0OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZml4IHN5bWJvbCBleHBvcnRpbmcKCjIwMDktMDctMTcgMDA6NDY6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJICBjaGVjazogZml4IGlzc3VlcyB3aXRoICdtYWtlIGRpc3RjaGVjaycKCSAgU2VlbXMgdG8gd29yayBub3csIGF0IGxlYXN0IG9uICpuaXguIE9uZSBvZiB0aGUgY29uZmlndXJlIGNoZWNrcwoJICBjYXVzZWQgdGhlc2Ugd2VpcmQgaXNzdWVzIC0gYnV0IHdoaWNoIG9uZT8KCjIwMDktMDgtMDYgMTc6Mjc6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGF1dG9nZW4uc2g6CgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIGNoZWNrOiB1c2UgcHJpdmF0ZSBjb3B5IG9mIGNoZWNrIGZvciBsaWJnc3RjaGVjawoJICBTZWUgIzU3NzI3NS4gU2VlbXMgdG8gd29yayBmaW5lLCBidXQgZG9lc24ndCBkaXN0Y2hlY2sgeWV0LgoKMjAwOS0wNy0xNiAxODozOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJICBjaGVjazogYWRkIGludGVybmFsIGNvcHkgb2YgY2hlY2stMC45LjYKCSAgTm90IGhvb2tlZCB1cCB5ZXQuIFNlZSAjNTc3Mjc1LgoKMjAwOS0wOC0wNiAxNDoxMTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBkb2NzOiBmaXggU2luY2U6IHRhZyBmb3IgbmV3IGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKSBmdW5jdGlvbgoKMjAwOS0wNy0yMiAxMToyNDo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAxMToyNDowOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjU0OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6Mzg6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjYXBzOiBhZGQgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpCgkgIE9mdGVuIHdlIGRvbid0IG5lZWQgdGhlIHJlc3VsdCBvZiB0aGUgaW50ZXJzZWN0aW9uLiBBZGQgYSB2YXJpYW50IHRoYXQgb25seQoJICB0cmllcyB0byBpbnRlcnNlY3QuIEl0IGNhbiBicmVhayBvdXQgZWFybGllciBhbmQgZG9lcyBsZXNzIEdWYWx1ZSBjb3B5aW5nLgoJICBBUEk6IGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOToyNDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgY2hlY2sgY2Fwc19pc19maXhlZCgpIGlmIHRoZXkgY2hhbmdlZAoJICBUaGUgcHJldmlvdXMgY29kZSBjb3VsZCBjYWxsIGdzdF9jYXBzX2lzX2ZpeGVkKCkgZm9yIHRoZSBzYW1lIGNhcHMgbWFueSB0aW1lcy4KCjIwMDktMDctMjEgMTM6MzE6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNwbGl0IGNhbGxiYWNrIGZvciBzdHJ1Y3R1cmUgaW50ZXJzZWN0IGludG8gdHdvIGZ1bmN0aW9ucwoJICBXZSBjYWxsIHRoaXMgc2VwYXJhdGVseS4gdGhlcmUgaXMgbm8gbXVjaCBiZW5lZml0IGluIHJldXNpbmcgdGhlIGNhbGxiYWNrLgoJICBTcGxpdHRpbmcgaXMgbGV0IHVzIHJlbW92ZSBhIGJyYW5jaCBhbHNvLgoKMjAwOS0wNy0yMSAxMzoyNzowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgbG9nZ2luZzogbG9nIGlmIHdlIGNvcHkgY2FwcyB0byBiZSBhYmxlIHRvIHRyYWNrIGl0CgoyMDA5LTA3LTIxIDExOjMyOjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBhZGQgY29tbWVudHMgYWJvdXQgZ19wdHJfYXJyYXkgc2l6ZSBiZWhhdmlvdXIKCSAgSnVzdCBleHBsYWluIHRoZSBiZWhhdmlvdXIgdG8gYXZvaWQgdGhhdCBzb21lb25lIGVsc2UgaXMgd2FzdGluZyB0aW1lIHRyeWluZyB0bwoJICBpbXByb3ZlIHRoaXMgdG9vLgoKMjAwOS0wNy0yMSAxMToxNDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGV4YW1wbGU6IHVucmVmIHRoZSBjbG9jayBpZAoKMjAwOS0wNy0yMSAxMDo1Njo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBjb3JyZWN0IHZhcmlhYmxlIGluIHRlc3QKCjIwMDktMDctMjggMTY6MTM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogYWRkIGZpbGVuYW1lIHRvIGRlYnVnIG1lc3NhZ2UsIGxpa2UgZWxzZXdoZXJlCgoyMDA5LTA3LTIxIDEwOjM4OjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdW51c2VkIHZhciB3aGVuIGRpc2FibGluZyBkZWJ1ZyBsb2dnaW5nCgoyMDA5LTA4LTA2IDEzOjI5OjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IHBvc3QgZXJyb3IgbWVzc2FnZSB3aGVuIHBhdXNpbmcgdGFzawoJICBJZiBkb3duc3RyZWFtIHJldHVybnMgZXJyb3IgYW5kIHVwc3RyZWFtIGhhcyBhbHJlYWR5IGRlbGl2ZXJlZAoJICBldmVyeXRoaW5nIChpbmNsdWRpbmcgRU9TKSBhbmQgd2lsbCBubyBsb25nZXIgYmUgYXJvdW5kIHRvIGZpbmQKCSAgb3V0IHRoYXQgd2UgcGF1c2VkIChhbmQgd2h5KSwgcG9zdCBlcnJvciBtZXNzYWdlLiAgRml4ZXMgIzU4OTk5MS4KCjIwMDktMDctMjggMTI6MDM6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBxdWV1ZTogYWRkIHVuaXQgdGVzdAoJICBNYWtlIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybiBhbiBlcnJvciBhZnRlciB1cHN0cmVhbSBoYXMgYWxyZWFkeQoJICBwdXQgYWxsIGRhdGEgaW50byBxdWV1ZSAoaW5jbHVkaW5nIEVPUykuICBBcyBzdWNoLCB1cHN0cmVhbQoJICB3aWxsIG5vdCBiZSBhcm91bmQgdG8gcGljayB1cCB0aGUgZXJyb3IsIHNvIGl0IGlzIHVwIHRvIHF1ZXVlIHRvCgkgIGFjdCBhcHByb3ByaWF0ZWx5LiAgU2VlICM1ODk5OTEuCgkgIE5vdGUgdGhlcmUgbWF5IGJlIGRvd25zdHJlYW0gZmF0YWwgZXJyb3JzIChlLmcuIG5lZ290aWF0aW9uKSB0aGF0IGRvCgkgIG5vdCB3YXJyYW50IGFuIGVycm9yIG1lc3NhZ2UgYWxyZWFkeSBoYXZpbmcgYmVlbiBwb3N0ZWQuCgoyMDA5LTA4LTA1IDE4OjAyOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNsYXJpZnkgX2NhcHNfaXNfZXF1YWwoKQoKMjAwOS0wOC0wNSAxNzo1ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWZhY3RvciBtZXRhZGF0YSBtb2RpZmljYXRpb25zCgkgIENoZWNrIHdoZW4gd2UgbmVlZCB0byB0b3VjaCB0aGUgbWV0YWRhdGEgb2YgdGhlIG91dHB1dCBidWZmZXIgYWZ0ZXIgc2VsZWN0aW5nCgkgIHRoZSBvdXRwdXQgYnVmZmVyIHNvIHRoYXQgd2UgaGF2ZSBldmVyeXRoaW5nIGluIG9uZSBwbGFjZS4KCSAgQWxzbyB0YWtlIGZsYWdzIGFuZCB0aW1lc3RhbXAgbW9kaWZpY2F0aW9ucyBpbnRvIGFjY291bnQuCgoyMDA5LTA4LTA1IDE3OjU1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IG9ubHkgc2V0IGNhcHMgd2hlbiBkaWZmZXJlbnQKCSAgV2hlbiB3ZSBoYXZlIGFuIGlucHV0IGJ1ZmZlciB3aXRoIGNhcHMgYW5kIHdoZW4gdGhvc2UgY2FwcyBhcmUgZGlmZmVyZW50IGZyb20KCSAgdGhlIGNhcHMgd2Ugd2FudCwgb25seSB0aGVuIG1ha2UgYSB3cml0YWJsZSBjb3B5IG9mIHRoZSBpbnB1dCBidWZmZXIgYXMgdGhlCgkgIG91dHB1dCBidWZmZXIgYW5kIHNldCB0aGUgY2FwcyBvbiB0aGF0IG91dHB1dCBidWZmZXIuIFRoaXMgYXZvaWRzIHNvbWUgY2FzZXMKCSAgd2hlcmUgd2UgdG9vayBhIHN1YmJ1ZmZlciBmb3Igc2V0dGluZyBjYXBzIHRoYXQgd2VyZSB0aGUgc2FtZS4KCjIwMDktMDgtMDUgMTU6Mjg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZW5hYmxlIG9wdGltaXNhdGlvbgoJICBXaGVuIHdlIGhhdmUgdGhlIHNhbWUgaW5wdXQgYXMgb3V0cHV0IGNhcHMsIHJldXNlIHRoZSBpbnB1dCBjYXBzIG9iamVjdC4gQWZ0ZXIKCSAgdGhlIGNhcHMgcmVmY291bnRpbmcgaGFzIGJlZW4gc29ydGVkIG91dCBub3csIHdlIGNhbiBmaW5hbGx5IGVuYWJsZSB0aGlzCgkgIG9wdGltaXNhdGlvbi4KCjIwMDktMDgtMDUgMTM6NDg6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBkb24ndCBzZXQgY2FwcyBvbiB1bndyaXRhYmxlIGJ1ZmZlcnMKCSAgVGFrZSB0aGUgcmVmIGFmdGVyIHNldHRpbmcgdGhlIGNhcHMgb24gYSBidWZmZXIgYmVjYXVzZSBlbHNlIHRoZSBidWZmZXIgaXMKCSAgdGVjaGluaWNhbGx5IG5vdCB3cml0YWJsZS4KCjIwMDktMDgtMDUgMTM6NDc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBnZXQgY2FwcyBhZnRlciBtYWtpbmcgd3JpdGFibGUKCSAgR2V0IHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgYWZ0ZXIgd2UgbWFkZSB0aGUgYnVmZmVyIHdyaXRhYmxlLiBUaGlzIGRpZCBub3QKCSAgY2F1c2UgYW55IHByb2JsZW1zIGJ1dCBpdCdzIG5pY2VyIHRoaXMgd2F5LgoKMjAwOS0wOC0wNSAxMzo0Njo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggcmVmY291bnRpbmcgcHJvYmxlbQoJICBNYWtlIHN1cmUgdGhlIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIHRoZSBjYXBzIG9uIGEgYnVmZmVyLgoKMjAwOS0wOC0wNSAxMzo0NDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVmY291bnRpbmcgcHJvYmxlbQoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBvdXRwdXQgYnVmZmVyIGhhcyB3cml0YWJsZSBtZXRhZGF0YSBiZWZvcmUgd2UgYXR0ZW1wdCB0byBzZXQKCSAgY2FwcyBvbiBpdC4KCSAgZml4ZXMgIzU4Mzk5OQoKMjAwOS0wOC0wNSAxMzo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBzb21lIG1vcmUgZGVidWdnaW5nIGluIF9yZXBsYWNlCgoyMDA5LTA4LTA1IDEzOjQzOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nCgoyMDA5LTA4LTA1IDEzOjQxOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBzbWFsbCBpbXByb3ZlbWVudHMKCSAgVW5yZWYgdGhlIHRhcmdldCBwYWQgYWZ0ZXIgd2UgdXNlZCBpdCBmb3IgZGVidWdnaW5nLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBPbmx5IHJlcGxhY2UgY2FwcyB3aGVuIHRoZXkgY2hhbmdlZC4KCjIwMDktMDctMjkgMTM6NDY6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbnVwcyBpbiBwb3NpdGlvbiBxdWVyaWVzCgkgIFVzZSBleGlzdGluZyBib29sZWFuIGZsYWcgdG8gcGFzcyBwb3NpdGlvbiBxdWVyaWVzIHVwc3RyZWFtLiBBbHNvIGFkZCB1cHN0cmVhbQoJICBxdWVyaWVzIGZvciB0aGUgbGFzdCBwb3NpdGlvbiBxdWVyaWVzLgoKMjAwOS0wOC0wNSAxMzoyNTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZml4IGxpYnhtbDIgY2hlY2ssIHdoaWNoIGlzIG9ubHkgbmVlZGVkIGZvciB4bWwgbG9hZC9zYXZlIG5vdwoJICBTaW5jZSB0aGUgcmVnaXN0cnkgZG9lc24ndCB1c2UgbGlieG1sMiBhbnkgbG9uZ2VyLCBpdCdzIG5vIGxvbmdlciBuZWNlc3NhcnkKCSAgdG8gZGlzYWJsZSBib3RoIHhtbCBsb2FkL3NhdmUgKmFuZCogdGhlIHJlZ2lzdHJ5IHRvIGdldCByaWQgb2YgdGhlIGxpYnhtbDIKCSAgZGVwZW5kZW5jeSwgZGlzYWJsaW5nIGp1c3QgeG1sIGxvYWRpbmcvc2F2aW5nIGlzIGVub3VnaC4gRml4ZXMgIzU5MDg0MS4KCjIwMDktMDgtMDIgMTQ6MzM6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbmFtZSB1bmluc3RhbGxlZCByZWdpc3RyeSBmaWxlIHRvIHJlZ2lzdHJ5LmRhdAoJICBXZSdyZSBub3QgdXNpbmcgdGhlIHhtbCByZWdpc3RyeSBhbnkgbG9uZ2VyIGFmdGVyIGFsbC4KCjIwMDktMDgtMDIgMTQ6Mjg6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlZmluZSBzZWFyY2ggcGF0aHMgZm9yIHVuaW5zdGFsbGVkIHBsdWdpbiBtb2R1bGVzCgkgIFVzZSBtb3JlIHJlZmluZWQgc2VhcmNoIHBhdGhzIGZvciBvdXIgcGx1Z2luIG1vZHVsZXMuIE5vdCBvbmx5IGRvZXMKCSAgdGhpcyBtYWtlIHRoaW5ncyBtdWNoIGZhc3RlciBpbiBhbiB1bmluc3RhbGxlZCBzZXR1cCwgaXQgYWxzbyBtYWtlcwoJICBzdXJlIHdlJ3JlIG5vdCBhY2NpZGVudGFsbHkgdXNpbmcgb3V0LW9mLWRhdGUgcGx1Z2lucyBidWlsdCBhZ2VzCgkgIGFnbyBhcyBwYXJ0IG9mIGEgKGZhaWxlZCkgJ21ha2UgZGlzdGNoZWNrJyB3aGVuIHdlIGZvcmdldCB0byBjbGVhbgoJICB1cCB0aGUgZGlzdGNoZWNrIGJ1aWxkIGRpcmVjdG9yeS4KCjIwMDktMDctMjkgMjM6NDI6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRpc3QgR1N0cmVhbWVyLTEuMCBidWZmZXIgZGVzaWduIGRyYWZ0CgoyMDA5LTA4LTA2IDA2OjUwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHRhZ2xpc3Q6IEFkZCBuZXcgQUxCVU1fQVJUSVNUIHRhZyB0byB0aGUgZG9jcwoKMjAwOS0wOC0wNCAxNDoxMzozNCArMDIwMCAgSm9obiBNaWxsaWtpbiA8am1pbGxpa2luQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IEFkZCBzdXBwb3J0IGZvciBBTEJVTV9BUlRJU1QgdGFnCgkgIFRoZSAiYWxidW0gYXJ0aXN0IiB0YWcgaXMgdXNlZCB3aGVuIHRoZSBhcnRpc3Qgb2YgYW4gZW50aXJlCgkgIGFsYnVtIGRpZmZlcnMgZnJvbSB0aGUgYXJ0aXN0IG9mIGFuIGluZGl2aWR1YWwgdHJhY2s7IGZvciBleGFtcGxlLAoJICB3aGVuIGEgImd1ZXN0IGFydGlzdCIgYXBwZWFycyBvbiBhbiBhbGJ1bSwgb3Igb24gY29tcGlsYXRpb25zLgoJICBGaXhlcyBidWcgIzU5MDQzMC4KCjIwMDktMDctMjkgMTM6MzM6MTEgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW4uc2VsbmVzQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFF1ZXJ5IHVwc3RyZWFtIGZvciB0aGUgcG9zaXRpb24gaWYgY29udmVyc2lvbiBpbiBQQVVTRUQgZmFpbGVkCgkgIEZpeGVzIGJ1ZyAjNTkwMDQ1LgoKMjAwOS0wNy0yOCAyMDo0MjoyMCArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXByb3ZlIGRlYnVnIG91dHB1dCBpbiBnc3RfYmFzZV90cmFuc2Zvcm1fYWNjZXB0Y2FwcygpCgkgIEZpeGVzIGJ1ZyAjNTg5NTI0LgoKMjAwOS0wNy0yMiAwOTowMTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgdW5zZXQgR0FQIGZsYWcgaWYgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlCgkgIEZpeGVzIGJ1ZyAjNTg5MzE0LgoKMjAwOS0wOC0wNiAwMTo0Mzo1NyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjQuMQoKPT09IHJlbGVhc2UgMC4xMC4yNCA9PT0KCjIwMDktMDgtMDUgMDA6NTE6MTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDAuMTAuMjQKCjIwMDktMDgtMDQgMjM6MDU6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA4LTAzIDE1OjMxOjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhdm9pZCB3cmFwLWFyb3VuZCBpbiBidWZmZXIgc2l6ZSBjaGVja3MuICBGaXhlcyAjNTkwNjIyLgoKMjAwOS0wNy0zMCAxNDo0MTozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjI0LjUgcHJlLXJlbGVhc2UKCjIwMDktMDctMjggMjE6MTU6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBHZXQgdGhlIGZsdXNoaW5nIHN0YXRlIHdpdGggdGhlIG9iamVjdCBsb2NrIHRha2VuLgoJICBGaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDIxOjE0OjExICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogTWFrZSBzdXJlIHRoZSBDb2xsZWN0RGF0YSBsaXN0IGlzIHVwLXRvLWRhdGUgd2hlbiByZWFkaW5nL3NldHRpbmcgaXQKCSAgV2l0aG91dCB0aGlzLCB3ZSByaXNrZWQ6CgkgICogQ2hlY2tpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9uIGFuIHVuZXhpc3RpbmcgbGlzdAoJICAqIE5vdCBzZXR0aW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvbiBwYWRzIHRoYXQgaGFkIGp1c3QgYmVlbiBhZGRlZAoJICBQYXJ0aWFsbHkgZml4ZXMgIzU5MDA1NgoKMjAwOS0wNy0yOCAyMToxMjoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFNwbGl0IG91dCBfY2hlY2tfcGFkcyBpbnRvIGEgdmVyc2lvbiB3aXRob3V0IGxvY2sgdGFraW5nLgoJICBUaGlzIGlzIHNvIHdlIGNhbiB1c2UgX2NoZWNrX3BhZHMgaW4gcGxhY2VzIHdoZXJlIHdlJ3ZlIGFscmVhZHkgdGFrZW4KCSAgdGhlIGxvY2sgaW4gcXVlc3Rpb24uCgkgIFBhcnRpYWxseSBmaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDE1OjIzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSAgY2hlY2s6IG1ha2UgbmV3IEdzdFN0cmVhbUNvbnNpc3RlbmN5IHN0cnVjdHVyZSBwcml2YXRlCgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byBoYXZlIEdzdFN0cmVhbUNvbnNpc3RlbmN5IGluIGEgcHVibGljIGhlYWRlciBmb3IKCSAgdGhlIHRpbWUgYmVpbmcsIHNvIG1ha2UgaXQgcHJpdmF0ZS4gV2hpbGUgd2UncmUgYXQgaXQsIGFkZCBhIGd0ay1kb2MKCSAgYmx1cmIgZm9yIGl0IHRob3VnaC4gUmUtZml4ZXMgIzU4ODc0NC4KCjIwMDktMDctMjQgMTM6NTA6MTkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yMy40IHByZS1yZWxlYXNlCgoyMDA5LTA3LTI0IDA5OjUwOjE5ICswMTAwICBSb2JpbiBTdG9ja2VyIDxyb2JpbkBuaWJvci5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgaGFuZGxlIFNFRUtJTkcgcXVlcmllcyBmb3IgZm9ybWF0cyB0aGF0IGRvbid0IG1hdGNoIHRoZSBvbmUgdGhlIHNvdXJjZSBvcGVyYXRlcyBpbgoJICBSZXR1cm4gRkFMU0UgaW4gYmFzZXNyYydzIGRlZmF1bHQgcXVlcnkgaGFuZGxlciB3aGVuIHdlIGdldCBhIFNFRUtJTkcgcXVlcnkgZm9yCgkgIGEgZm9ybWF0IHRoYXQncyBub3QgdGhlIG9uZSB0aGUgc291cmNlIG9wZXJhdGVzIGluLiBQcmV2aW91c2x5IChpZS4gYmVmb3JlLCBpbgoJICB0aGUgZ2l0IHZlcnNpb24pIHdlIHdvdWxkIHJldHVybiBUUlVFIGluIHRoYXQgY2FzZSBhbmQgc2Vla2FibGU9RkFMU0UsIHdoaWNoCgkgIGlzIG1vcmUgY29ycmVjdCwgYnV0IGNhdXNlcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwcm9ibGVtcy4gKEJlZm9yZSB0aGF0CgkgIHdlIHdvdWxkIGNoYW5nZSB0aGUgZm9ybWF0IG9mIHRoZSBxdWVyeSB3aGVuIGFuc3dlcmluZywgd2hpY2ggd2FzIGNvbXBsZXRlbHkKCSAgYnJva2VuIHNpbmNlIGNhbGxlcnMgZG9uJ3QgZXhwZWN0IHRoYXQgb3IgY2hlY2sgZm9yIGl0KS4gU2luY2UgdGhlIFNFRUtJTkcKCSAgcXVlcnkgaXMgYSBmYWlybHkgcmVjZW50IGFkZGl0aW9uLCBub3QgYWxsIGRlbXV4ZXJzLCBwYXJzZXJzIGFuZCBkZWNvZGVycwoJICBpbXBsZW1lbnQgaXQgeWV0LCBpbiB3aGljaCBjYXNlIGFueSBTRUVLSU5HIHF1ZXJ5IGJ5IGFuIGFwcGxpY2F0aW9uIHdpbGwKCSAganVzdCBiZSBwYXNzZWQgdXBzdHJlYW0gd2hlcmUgaXQgd2lsbCB0aGVuIGJlIGhhbmRsZWQgYnkgYmFzZXNyYy4gTm93LCBpZgoJICBlLmcuIHRvdGVtIGRvZXMgYSBTRUVLSU5HIHF1ZXJ5IGZvciBUSU1FIGZvcm1hdCBhbmQgd2UgaGF2ZSBhIGRlbXV4ZXIgdGhhdAoJICBkb2Vzbid0IGltcGxlbWVudCB0aGUgcXVlcnksIGJhc2VzcmMgd291bGQgYW5zd2VyIGl0IHdpdGggc2Vla2FibGU9RkFMU0UgaW4KCSAgbW9zdCBjYXNlcywgYW5kIHRvdGVtIGNhbiBvbmx5IHRha2UgdGhhdCBhcyBhdXRob3JpdGF0aXZlIGFuc3dlciwgbm90IGtub3dpbmcKCSAgdGhhdCB0aGUgZGVtdXhlciBkb2Vzbid0IGltcGxlbWVudCB0aGUgU0VFS0lORyBxdWVyeS4gVG8gYXZvaWQgdGhpcywgd2UgbWFrZQoJICBiYXNlc3JjIHJldHVybiBGQUxTRSB0byBTRUVLSU5HIHF1ZXJpZXMgaW4gdW5oYW5kbGVkIGZvcm1hdHMuIFRoYXQgd2F5CgkgIGFwcGxpY2F0aW9ucyBsaWtlIHRvdGVtIGNhbiBmYWxsIGJhY2sgb24gYXNzdW1pbmcgc2Vla2FiaWxpdHkgZGVwZW5kaW5nIG9uCgkgIHdoZXRoZXIgYSBkdXJhdGlvbiBpcyBhdmFpbGFibGUsIG9yIHNvbWVzdWNoLiBEb3duc3RyZWFtIGVsZW1lbnRzIGRvaW5nCgkgIHN1Y2ggcXVlcmllcyBhcmUgbGlrZWx5IHRvIGVxdWF0ZSBhbiB1bmhhbmRsZWQgcXVlcnkgd2l0aCBhIG5vbi1zZWVrYWJsZQoJICByZXNwb25zZSBhcyB3ZWxsLCBzbyB0aGlzIHNob3VsZCBiZSBhbiBhY2NlcHRhYmxlIGZpeCBmb3IgdGhlIHRpbWUgYmVpbmcuCgkgIFNlZSAjNTg0ODM4LCAjNTg4OTQ0LCAjNTg5NDIzIGFuZCAjNTg5NDI0LgoKMjAwOS0wNy0yNCAwMDo0MTo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZWRhYWVlIHRvIDk0Zjk1ZTMKCjIwMDktMDctMjAgMTY6MTE6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBnc3RyZWdpc3RyeWJpbmFyeTogYWRkICsxIGFmdGVyIGVycm9yIGNoZWNraW5nCgkgIFRoZSBjdXJyZW50IGNvZGUgbWFkZSB0aGUgZXJyb3IgY2hlY2tpbmcgcG9pbnRsZXNzIGJ5IGNoYW5naW5nIC0xIHRvIDAgaW4gZXJyb3IKCSAgY2FzZXMuIEFsc28gZG9uJ3QgbGVhayBhIHBhZCB0ZW1wbGF0ZSBvbiBlcnJvci4KCjIwMDktMDctMjAgMTU6NTE6MjAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjMuMyBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yMCAxODowMzoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIHRlc3RzOiBtYWtlIHN1cmUgdGhlIHRhc2tzIGFyZSBqb2luZWQKCSAgQ2FsbCBfY2xlYW5fYWxsKCkgb24gdGhlIHRhc2sgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgam9pbmVkIGFuZCBzdG9wcGVkLgoJICBTZWUgIzU4OTEyNwoKMjAwOS0wNy0yMCAxNTo0NDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGZpeCB0YXNrcG9vbCBsZWFrCgkgIEdzdFRha3MgZG9lcyBub3QgYWx3YXlzIHVucmVmIHRoZSB0YXNrcG9vbCBpdCB3YXMgY3JlYXRlZCBmcm9tIGJlY2F1c2UgaXQKCSAgZGVwZW5kcyBvbiB3aGVuIHRoZSBwb29sIHByb3ZpZGVkIGFuIElEIGZvciBqb2luaW5nIHRoZSB0YXNrLgoJICBSZXdvcmsgc29tZSBjb2RlIHNvIHRoYXQgd2UgYWx3YXlzIHVucmVmIHRoZSBwb29sIGFuZCBvcHRpb25hbGx5IGpvaW4gd2hlbiB0aGUKCSAgcG9vbCBwcm92aWRlZCBhbiBpZC4KCSAgRml4ZXMgIzU4OTEyNwoKMjAwOS0wNy0yMCAxMzoyNjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtYWtlIHRhZyBxdWV1aW5nIHRocmVhZHNhZmUKCSAgU2VlICM1ODg3NDUKCjIwMDktMDctMTMgMDk6MjI6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBnc3RjaGVjazogQWRkIGEgc3RyZWFtIGNvbnNpc3RlbmN5IGNoZWNraW5nIGhlbHBlciByb3V0aW5lLiBGaXhlcyAjNTg4NzQ0CgoyMDA5LTA3LTIwIDExOjA0OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGRvbid0IHVucmVmIE5VTEwgaWYgd2UgaGF2ZSBhbiBlYXJseSByZWFkIGVycm9yCgoyMDA5LTA3LTEyIDEwOjA0OjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFNlcmlhbGl6ZSB0YWdzIGludG8gdGhlIGRhdGFmbG93LiBGaXhlcyAjNTg4NzQ1CgoyMDA5LTA3LTE2IDE0OjE3OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IEFQSSBkb2NzIGZvciBnc3Rfe2FkYXB0ZXJ8Ynl0ZV9yZWFkZXJ9X21hc2tlZF9zY2FuX3VpbnQzMgoJICBDbGFyaWZ5IGJ5dGUgcmVhZGVyIGRvY3MgYSBiaXQ6IG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudAoJICBwb3NpdGlvbiBvZiB0aGUgcmVhZGVyLCBub3QgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXRhLiBBbHNvLCB0aGUKCSAgZXhhbXBsZXMgaW4gYm90aCB0aGUgYWRhcHRlciBkb2NzIGFuZCB0aGUgYnl0ZSByZWFkZXIgZG9jcyBoYXZlCgkgIHRoZSBtYXNrIGFuZCBwYXR0ZXJuIGFyZ3VtZW50cyBzd2FwcGVkIChzZWUgIzU4NzU2MSkuIFNwb3R0ZWQKCSAgYnkgQ2FybC1BbnRvbiBJbmdtYXJzc29uLgoKMjAwOS0wNy0xNiAxMzo1OTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGFnczogb25seSBlbWl0IGEgZ193YXJuaW5nKCkgZm9yIGVtcHR5IHRhZyBzdHJpbmdzIGZvciBnaXQgdmVyc2lvbnMKCSAgRm9yIG5vdywgZG9uJ3Qgc2hvdyBhIGdfd2FybmluZygpIGZvciBlbXB0eSB0YWcgc3RyaW5ncyBhbmQgTlVMTAoJICB0YWdzIHdpdGggbm9uLWdpdCB2ZXJzaW9uczsgd2Ugc2hvdWxkIHdhaXQgZm9yIHRoZSBmaXhlcyBpbiBvdXIKCSAgcGx1Z2luIG1vZHVsZXMgdG8gbWFrZSBpdCBpbnRvIGEgcmVsZWFzZSBiZWZvcmUgd2UgZW5hYmxlIHRoaXMKCSAgdW5jb25kaXRpb25hbGx5LgoKMjAwOS0wNy0xNCAxODo1OToxMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjIzLjIgcHJlLXJlbGVhc2UKCjIwMDktMDctMTQgMTI6MTU6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogYWRkIGV4cGxhbmF0aW9uIGZvciBzaG9ydGN1dAoKMjAwOS0wNy0xMCAyMDowNDo0OCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHRha2Ugc2l6ZSBvbmNlCgoyMDA5LTA3LTEwIDE5OjE3OjA0ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjYW5faW50ZXJzZWN0IHRvIGJlaGF2ZSBsaWtlIGludGVyc2VjdAoJICBBZGQgYSBxdWljayByZXR1cm4gaWYgdHdvIHR5cGVzIGFyZSB0aGUgc2FtZS4gQ2hhbmdlIHRoZSBjaGVjayBmb3IgdGhlCgkgIGludGVyc2VjdGlvbiBmdW5jdGlvbiB0byBiZSB0aGUgc2FtZSBhcyB0aGUgb25lIHVzZWQgaW4gaW50ZXJzZWN0KCkuIFRoZQoJICBsYXRlciB0cmllcyBib3RoIGRpcmVjdGlvbnMuCgoyMDA5LTA3LTE0IDAwOjA0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IG1haW50YWluIEFCSSBjb21wYXRpYmlsaXR5IGV2ZW4gaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgoyMDA5LTA3LTAyIDEyOjQwOjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBzdHJ1Y3R1cmU6IENoYW5nZSBOVUxMIGFuZCBlbXB0eSBzdHJpbmcgaGFuZGxpbmcKCSAgRG9uJ3QgZm9yYmlkIHRoZSBlbXB0eSBzdHJpbmcgIiIgaW4gZ2VuZXJpYyBzdHJ1Y3R1cmVzLCBvbmx5IGluIHRhZ2xpc3RzLgoJICBQcm9wZXJseSBhbGxvdyB0aGUgTlVMTCBzdHJpbmcgYnkgYWRkaW5nIHNwZWNpYWwgY2FzZXMgZm9yIHNlcmlhbGlzaW5nCgkgIGFuZCBkZXNlcmlhbGlzaW5nIGl0LiBwcm9wMT0oc3RyaW5nKU5VTEwgaXMgdGhlIE5VTEwgc3RyaW5nLAoJICBwcm9wMT0oc3RyaW5nKSJOVUxMIiBpcyB0aGUgYWN0dWFsIHN0cmluZyB3aXRoIHRoZSB2YWx1ZSAiTlVMTCIKCjIwMDktMDctMTMgMTI6MjM6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTg0NWI2MyB0byBmZWRhYWVlCgoyMDA5LTA3LTEzIDEyOjAwOjQ3ICswMjAwICBBbmRvbmkgTW9yYWxlcyA8eWxhdHV5YSBhdCBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggc2VnZmF1bHQgd2l0aCBNU1ZDCgkgIERvbid0IHVzZSBkZXByZWNhdGVkIGZpbGVubyBvbiBNU1ZDIGJ1dCByZXBsYWNlIHdpdGggX2ZpbGVubwoJICBGaXhlcyAjNTg3MDUyCgoyMDA5LTA3LTEzIDA5OjMyOjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3MvZGVzaWduOiBVcGRhdGUgTWFrZWZpbGUuYW0gZm9yIGNoYW5nZWQgZnJhbWVzdGVwIGRvY3VtZW50IG5hbWUuCgoyMDA5LTA3LTEwIDE5OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiB0aGUgcGx1Z2luIGZlYXR1cmVzIGxpc3RlZCBieSBnc3QtaW5zcGVjdCBhcmUgdHlwZWZpbmRlcnMsIG5vdCB0eXBlcwoKMjAwOS0wNy0xMCAxODo0NjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgZHJhZnQgZm9yIGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEgaWRlYQoKMjAwOS0wNy0xMCAxODozNToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSAgZG9jczogbW9yZSBmcmFtZXN0ZXAgZG9jcyBvdXQgb2YgZHJhZnQKCjIwMDktMDctMTAgMTg6MzM6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBkb2NzOiB1cGRhdGUgZnJhbWVzdGVwIGRvY3VtZW50CgkgIFJlbW92ZSBleHBlcmltZW50YWwgc3RhdHVzIGZyb20gdGhlIGZyYW1lc3RlcCBkcmFmdC4KCjIwMDktMDctMDggMTU6MTU6MDQgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBGaXggY29tcGlsYXRpb24gaWYgb3B0aW9uIHBhcnNpbmcgaXMgZGlzYWJsZWQKCSAgRml4ZXMgYnVnICM1ODc5NzYuCgoyMDA5LTA3LTA4IDE1OjEwOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogVXNlIGdfYnVpbGRfZmlsZW5hbWUoKSBpbnN0ZWFkIG9mIGdfc3Ryam9pbigpIHdpdGggLwoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgZ2VuZXJhdGVkIGZpbGVuYW1lcyB1c2UgdGhlIHBsYXRmb3JtCgkgIHNwZWNpZmljIGRpcmVjdG9yeSBzZXBhcmF0b3IgaW5zdGVhZCBvZiAvLgoJICBGaXhlcyBidWcgIzU4Nzk3My4KCjIwMDktMDctMDcgMjA6MTM6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogYWRkICdTaW5jZScgdGFnIGZvciBuZXcgR1NUX0RFQlVHX0NBVEVHT1JZX0dFVCBtYWNybwoKMjAwOS0wNy0wNyAwMDoyMzo0MSArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogbWFrZSBpdCB0aGUgYmVzdCBvZiB3aW1zIGFuZCBlZHdhcmRzIHBhdGNoLgoJICBDaGVjayB0aGUgcmlnaHQgZmx1c2hpbmcgZmxhZywgYnV0IHN0aWxsIGFkZCBpdCB0byB0aGUgcGFkLWxpc3QuCgoyMDA5LTA2LTMwIDExOjI2OjM0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogYWxsb3cgZ2V0dGluZyBvdGhlciBsb2cgY2F0ZWdvcmllcy4gRml4ZXMgIzU4NzQxNwoJICBBZGQgYSBuZXcgbWFjcm8gR1NUX0RFQlVHX0NBVEVHT1JZX0dFVCB0byBnZXQgYSBsb2cgY2F0ZWdvcnkgYnkgbmFtZS4gVGhpcwoJICBhbGxvd3MgcGx1Z2lucyB0byB1c2UgZS5nLiBjb3JlIGNhdGVnb3JpZXMgbGlrZSBQRVJGT1JNQU5DRSBvciBDTE9DSy4KCSAgQVBJOiBHU1RfREVCVUdfQ0FURUdPUllfR0VUCgoyMDA5LTA3LTA2IDE5OjUxOjU3ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBjb21tZW50IGEgRklYTUUgY29tbWVudAoKMjAwOS0wNy0wNiAxOTo1MDo1MiArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbG9nZ2luZzogbG9nIG9iamVjdCB0eXBlIGluIG1lc3NhZ2UKCjIwMDktMDctMDYgMTk6NDg6NTggKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nZ2luZzogdXNlIHBlcmYgY2F0ZWdvcnkgZm9yIGRyb3BwZWQgYnVmZmVycwoKMjAwOS0wNi0yOSAxMToyNjo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGZvcndhcmQgRkxVU0hfU1RPUCBpZiBzb21lIGlucHV0IHN0cmVhbXMgYXJlIHN0aWxsIGZsdXNoaW5nLgoJICBUaGlzIGd1YXJhbnRlZXMgdGhhdCBvbmx5IG9uZSBGTFVTSF9TVE9QIGV2ZW50ICh0aGUgbGFzdCBvbmUpIHdpbGwgYmUgc2VudAoJICBkb3duc3RyZWFtIHdoZW4gYSBmbHVzaGluZyBzZWVrIGlzIGJlaW5nIGRvbmUgdGhyb3VnaCBjb2xsZWN0cGFkcy4KCjIwMDktMDYtMjQgMTE6MTE6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVcGRhdGUgdGhlIGNvb2tpZSB3aGVuIHNldHRpbmcgb3Vyc2VsdmVzIGFzIGZsdXNoaW5nLgoJICBUaGlzIGZvcmNlcyB0aGUgcGFkIHN0YXR1cyB0byBiZSByZS1ldmFsdWF0ZWQgb24gdGhlIG5leHQgX2NoZWNrX3BhZHMoKS4KCjIwMDktMDYtMDkgMTQ6NTQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBkb2NzOiBmaXggZ3RrLWRvYyAvKjwgcHJpdmF0ZSA+Ki8gbWFya2VyCgoyMDA5LTA2LTA5IDE0OjQ4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogbG9nIHByb2JhYmlsaXR5IGluIGRlYnVnIG1lc3NhZ2UKCjIwMDktMDYtMzAgMTg6MjI6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBmaXggcGFyc2luZyBvZiB0aGUgc3RlcCBkb25lIG1lc3NhZ2UKCSAgUGFyc2UgdGhlIGR1cmF0aW9uIGZpZWxkIHRvby4KCjIwMDktMDYtMjkgMTE6MjQ6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IFVzZSBsb2NhbCB2YWx1ZXMgaW4gd2hpbGUvZm9yIGxvb3BzLCB1c2UgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zCgoyMDA5LTA2LTI5IDExOjIzOjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgU3ByZWFkIGJyYW5jaCBwcmVkaWN0aW9uIG1hY3Jvcy4KCSAgVGhlc2UgYXJlIGJhc2VkIG9uIHByb2ZpbGluZyBzZXZlcmFsIHBsYXliYWNrIHNjZW5hcmlvcyB1c2luZyBwbGF5YmluMi4KCjIwMDktMDYtMjkgMTE6MjA6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgVXNlIGxvY2FsIHZhcmlhYmxlcyBpbiBmb3Ivd2hpbGUgbG9vcHMuCgkgIFRoaXMgbWFrZXMgdGhlIGdlbmVyYXRlZCBjb2RlIGZhc3RlciBzaW5jZToKCSAgKiBJdCB3b24ndCBoYXZlIHRvIHJlYWQgYW4gdW5kaXJlY3QgdmFsdWUgKHdoaWNoIHdpbGwgbW9zdCBsaWtlbHkgYmUKCSAgb3V0c2lkZSBvZiB0aGUgTDEvTDIgY2FjaGUpCgkgICogV2Uga25vdyB0aGF0IHZhbHVlIG5ldmVyIGNoYW5nZXMgKHRoZSBjb21waWxlciBoYXMgbm8gY2x1ZSB0aGF0IGl0IGRvZXNuJ3QpLgoKMjAwOS0wNi0wOSAxOTowODoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgbGlicy9jb250cm9sbGVyOiBTZXQgZGVmYXVsdCBnc3QgZGVidWdnaW5nIGNhdGVnb3J5LgoKMjAwOS0wNi0yOSAxMTo1NzoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5zY206CgkgIHRlc3RzOiBmaXggZXhhbXBsZQoKMjAwOS0wNi0yOSAxMTo1NjoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBidWZmZXJsaXN0OiB1c2UgZmFzdGVyIGdzdF9idWZmZXJfbGlzdF9nZXQoKQoJICBVc2UgdGhlIGZhc3RlciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkgdG8gZ2V0IHRoZSBmaXJzdCBidWZmZXIgb2YgYSBsaXN0LgoKMjAwOS0wNi0yOSAxMTo1NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IGZpeCBleGFtcGxlCgkgIFRoZSBfZG8gZnVuY3Rpb24gbm93IHRha2VzIHVzZXJfZGF0YSBpbiBhbGwgY2FzZXMuCgoyMDA5LTA2LTI5IDExOjQ2OjAwICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdGFrZSB0aW1lc3RhbXAgbGF0ZXIKCSAgTWFrZSBzdXJlIHdlIGRvbid0IGFjY2lkZW50YWxseSBjYXN0IGEgYnVmZmVybGlzdCBvZiBhIGJ1ZmZlciBhbmQgdHJ5IHRvIHRha2UKCSAgdGhlIHRpbWVzdGFtcCBvZiBpdC4KCSAgUmVmaXhlcyAjNTg1OTYwCgoyMDA5LTA2LTI5IDExOjA3OjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcwoKMjAwOS0wNi0yOSAxMToyNDowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbG9nZ2luZzogYWRkIGEgcGVyZm9ybWFjZSBsb2cgY2F0ZWdvcnkKCSAgVGhpcyBjYXRlZ29yeSBjYW4gYmUgdXNlZCB0byBsb2cgc2xvdyBjb2RlIHBhdGggYW5kIGhlbHAgYXVkaXRpbmcgdGhlCgkgIHBlcmZvcm1hbmNlLiBBZGQgRklYTUUtMC4xMSB0byBzb21lIHF1ZXN0aW9uYWJsZSBjYXRlZ29yaWVzLgoKMjAwOS0wNi0yNyAxNjozNDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBpbnQtPmdpbnQgdG8gYmUgaW4gc3luYyB3aXRoIHRoZSAqLmggIGFuZCB1c2FnZQoKMjAwOS0wNi0yNiAxMzozMzo1MCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBVc2UgcHJpbnRmIGluc3RlYWQgb2YgJ2VjaG8gLW4nLiBDaGVjayBmb3IgYXV0b21ha2UtMS4xWzAxXQoJICBDaGVjayBmb3IgbW9yZSBhdXRvbWFrZSBjb21tYW5kIHZhcmlhbnRzLiBVc2UgcHJpbnRmIGluc3RlYWQgb2YgJ2VjaG8gLW4nCgkgIGZvciBwb3J0YWJpbGl0eQoKMjAwOS0wNi0yNiAxMzo0MToxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmODEwMDMwIHRvIDU4NDViNjMKCjIwMDktMDYtMjYgMTI6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHJlcXVlc3QtcGFkOiB0ZWxsIGFib3V0IHJlZiBjb3VudHMgaW4gcmVsZWFzZV9yZXF1ZXN0X3BhZCBkb2NzLgoJICBJdCBpcyBub3QgdG9vIG9idmlvdXMgdGhhdCBnZXR0aW5nIGFuZCByZWxlYXNpbmcgcmVxdWVzdCBwYWRzIGlzIG5vdCBlbnRpZXJseQoJICBzeW1ldHJpY2FsIHJlZ2FyZGluZyB0byB0aGUgcGFkIHJlZmNvdW50LiBBZGQgYSBub3RlIGFib3V0IHRoYXQgdG8gdGhlIGRvY3MuCgkgIFRoaXMgbWlnaHQgZGVzZXJ2ZSBhIEZJWE1FLTAuMTEgdG9vLgoKMjAwOS0wNi0yNSAxMToyNTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkb24ndCBkbyB0aGluZ3Mgd2l0aCBzaWRlIGVmZmVjdHMgd2l0aGluIGEgZ19hc3NlcnQoKQoJICBNYWtlIHRoZSBidWZmZXJsaXN0IHN0dWZmIHdvcmsgcHJvcGVybHkgd2hlbiB0aGluZ3MgYXJlIGNvbXBpbGVkCgkgIHdpdGggLURHX0RJU0FCTEVfQVNTRVJULgoKMjAwOS0wNi0yNCAxODozMTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGF2b2lkIGRvaW5nIGxvZ2ljIGluIGdfYXNzZXJ0CgkgIE1ha2Ugc3VyZSB3ZSBzdGlsbCBkbyB0aGUgcmlnaHQgdGhpbmcgd2hlbiBnbGliIGlzIGNvbXBpbGVkIHdpdGhvdXQKCSAgYXNzZXJ0aW9ucy4KCjIwMDktMDYtMjIgMDU6MDA6NTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXJlIHRoZSBvdmVycnVuIHNpZ25hbCBvbiBFT1MKCSAgRml4ZXMgc3RhcnR1cCBvZiBzb21lIHNob3J0IE1QRUcgZmlsZXMgd2l0aCBkZWNvZGViaW4yL3BsYXliaW4yCgkgIHdoZXJlIGFsbCB0aGUgZGF0YSBmaXRzIGluIHRoZSBtdWx0aXF1ZXVlIGFuZCBFT1MgYXJyaXZlcyBiZWZvcmUKCSAgdGhlIGdyb3VwIGlzIGV4cG9zZWQuCgoyMDA5LTA2LTI0IDE1OjEzOjM3ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjNiYjUxYiB0byBmODEwMDMwCgoyMDA5LTAzLTI4IDEzOjU5OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBHc3RTdHJ1Y3R1cmU6IFVzZSBkaXJlY3QgdmFsdWVzIGZvciByZXBldGl0aXZlIGNvbmRpdGlvbmFscyAoZm9yL3doaWxlKS4KCjIwMDktMDYtMjQgMTA6NDU6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgbWluaW9iamVjdHM6IERvbid0IGNoYWluIHVwIHRvIGVtcHR5IGZpbmFsaXplIG1ldGhvZC4KCSAgSWYgZXZlciB3ZSBkbyBhbnl0aGluZyBpbiBtaW5pX29iamVjdF9maW5hbGl6ZSwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGUgNAoJICBjb3JlIG1pbmlvYmplY3QgZmluYWxpemUgbWV0aG9kcyBjaGFpbiBiYWNrIHVwIGFnYWluLgoKMjAwOS0wMy0yNyAyMDoxNzoxNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVzZSBkaXJlY3QgdmFsdWVzIGZvciByZXBldGl0aXZlIGNvbmRpdGlvbmFscyAoZm9yL3doaWxlKS4KCjIwMDktMDYtMjQgMDk6Mjg6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSAgbWFrZSBjaGVjazogYWRkIGNoZWNrIGZvciBlbnVtIHR5cGUgY2xhc3MgdW5yZWZzIGluIGdzdF9kZWluaXQoKSB0b28KCSAgSnVzdCBiZWNhdXNlIHdlIGNhbiByZWFsbHkuCgoyMDA5LTA2LTIzIDEzOjQ0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2U6IHVzZSBwcm9wZXIgbG9ja2luZyBpbiBHc3RUcmFjZQoJICBQcm90ZWN0IHRoZSBhbGxvY2F0ZWQgbGlzdCBvZiBvYmplY3RzIHdpdGggYSBsb2NrIHNvIHRoYXQgdHJhY2UgYWN0dWFsbHkgd29ya3MKCSAgcmVsaWFibHkuCgkgIFNob3J0Y3V0IHRoZSBhbGxvYyB0cmFjZSBzb29uZXIgd2hlbiBkaXNhYmxlZC4KCjIwMDktMDYtMjMgMTM6MzQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogYWxzbyBhZGQgcG9pbnRlcnMgdG8gZGVidWcKCSAgQWRkIHRoZSBvYmplY3QgcG9pbnRlcnMgaW4gdGhlIGRlYnVnIGluZm8gZm9yIF9yZXBsYWNlLgoKMjAwOS0wNi0yMyAxMjo1Njo1OSArMDIwMCAgQ2hhZCBIYW5uYSA8Y2hhbm5hQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIEdBUCBmbGFnIHN1cHBvcnQKCSAgY2Fwc2ZpbHRlciBkb2Vzbid0IGFjdHVhbGx5IHRvdWNoIHRoZSBkYXRhIHNvIHdlIGRvbid0IHdhbnQgdGhlIEdBUCBmbGFnIHRvCgkgIGJlIHVuc2V0IGJ5IGJhc2V0cmFuc2Zvcm0uCgkgIEZpeGVzIGJ1ZyAjNTg2NTY2LgoKMjAwOS0wNi0yMyAxMDowNTowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBieXRlIHJlYWRlciBtZXRob2RzCgoyMDA5LTA1LTIyIDE0OjQ3OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGFkZCBhIGJ1bmNoIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBzdHJpbmdzIGFuZCBhIGRhdGEgZHVwIGZ1bmN0aW9uCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9kYXRhCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2R1cF9zdHJpbmdfdXRmMTYKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYzMgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9za2lwX3N0cmluZ191dGY4CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjE2CgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjMyCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3RyaW5nX3V0ZjgKCSAgQW5kIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cy4gRml4ZXMgIzU4NjU2OC4KCjIwMDktMDYtMjIgMTg6MTc6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCB0eXBvIGluIHRhZyBkZXNjcmlwdGlvbgoKMjAwOS0wNi0yMSAwMDoyNjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogZml4IGNyYXNoIGFuZCBsZWFrIGluIGJ1ZmZlcmxpc3RzIHVuaXQgdGVzdAoJICBEb24ndCBhY2Nlc3MgYWxyZWFkeS1mcmVlZCBpdGVyYXRvciwgbWFrZXMgY2hlY2stdmFsZ3JpbmQgd29yayBhbmQgZml4ZXMKCSAgY3Jhc2ggb24gUFBDOyB1bnJlZiBidWZmZXIgd2UncmUgZ29pbmcgdG8gc3RlYWwgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCjIwMDktMDYtMjEgMDA6MDk6NTMgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgaW5pdDogRml4IGluZGVudCwgYW5kIHJlZiB0aGUgZ3N0X2J1ZmZlcl9saXN0X2l0ZW1fZ2V0X3R5cGUoKSBjbGFzcwoJICBGaXggdGhlIGNoZWNrIHRlc3RzIGJ5IHJlZmZpbmcgdGhlIEdzdEJ1ZmZlckxpc3QgY2xhc3MuIFJ1biBnc3QtaW5kZW50CgkgIHRvIG1ha2UgZ2l0IGhhcHB5IGFib3V0IHNvbWUgZXhpc3Rpbmcgc3R1ZmYKCjIwMDktMDYtMTkgMjE6MDM6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBicm9rZW4gZmxhZ3MgdG8gZmxhZyBzdHJpbmcgc2VyaWFsaXNhdGlvbgoJICBlLmcuIGNkcGFybm9pYXNyYyB3b3VsZCBzaG93IGZyYWdtZW50fGZ1bGwgZm9yIGEgZmxhZ3MgdmFsdWUgb2YgMi4KCjIwMDktMDYtMTkgMTk6MzU6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBidWZmZXItbGlzdCBzdXBwb3J0CgoyMDA5LTA2LTE5IDE5OjI0OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogcmVtb3ZlIG9sZCBlbnVtIGZyb20gZG9jcwoKMjAwOS0wNi0xOSAxNDo0NTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBkZWZpbmUgX19nc3RfZGVidWdfbWluIHRvIExPR19MRVZFTF9OT05FIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBKdXN0IGluIGNhc2Ugc29tZW9uZSB3aG8gY2xlYXJseSBjYW4ndCBiZSBkZXRlcnJlZCBieSBhbnkgbnVtYmVyIG9mIGxlYWRpbmcKCSAgdW5kZXJzY29yZXMgdXNlcyB0aGlzIHZlcnkgcHJpdmF0ZSBidXQgc3RpbGwgc29tZXdoYXQgZG9jdW1lbnRlZCBzeW1ib2wKCSAgZGlyZWN0bHkgaW4gdGhlaXIgY29kZSAoKmNvdWdoKiBxdGRlbXV4ICpjb3VnaCopLgoKMjAwOS0wNi0xOSAxNToyOToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJsaXN0OiBWYXJpb3VzIGNsZWFudXBzCgkgIEFkZCBuZXcgbWV0aG9kIHRvIGl0ZXJhdGUgYSBidWZmZXJsaXN0IHdpdGhvdXQgaGF2aW5nIHRvIGFsbG9jYXRlIGFuIGl0ZXJhdG9yLgoJICBBZGQgY29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIGl0ZW0gZnJvbSB0aGUgbGlzdCBiYXNlZCBvbiB0aGUgZ3JvdXAgYW5kCgkgIGluZGV4LgoJICBSZW1vdmUgcmVkdW5kYW50IF9kb19kYXRhIGNhbGxiYWNrIGFuZCBtZXRob2QuCgkgIFVwZGF0ZSB1bml0LXRlc3RzIGFuZCBhZGQgc29tZSBtb3JlIGZvciB0aGUgbmV3IG1ldGhvZHMuCgoyMDA5LTA2LTE5IDE0OjEwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogbWFrZSBndGstZG9jIGhhcHB5CgoyMDA5LTA2LTE5IDEzOjUxOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBhZnRlciBzdHJpbmcgY2hhbmdlcwoKMjAwOS0wNi0xOSAxMzo0ODo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGNsZWFuIHVwIHNvbWUgbW9yZSBlcnJvciBhbmQgZGVidWcgbWVzc2FnZXMKCjIwMDktMDYtMTkgMTM6NDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2twb29sOiBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgaW4gY2FzZSBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMDYtMTkgMTM6NDA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGV4cG9ydCBvZiBHU1RfQ0FUX0JVRkZFUl9MSVNUIHdoZW4gLS1nc3QtZGlzYWJsZS1kZWJ1ZyBpcyB1c2VkCgkgIE1vdmUgYWxsIHRoZSBjYXRlZ29yaWVzIHRvIGV4cG9ydCB0byBvbmUgc2luZ2xlIHBsYWNlLCBzbyB3ZSBkb24ndAoJICBhY2NpZGVudGFsbHkgdXBkYXRlIG9yIGFkZCB2YXJzIGluIG9uZSBwbGFjZSBidXQgbm90IHRoZSBvdGhlci4KCjIwMDktMDYtMTggMTY6NTA6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB1c2UgdGhlIHJpZ2h0IGZsdXNoaW5nIGZsYWcuCgkgIFdlIG5lZWQgdG8gdXNlIHRoZSBwYWQgcHJpdmF0ZSBmbGFnIGJlY2F1c2UgdGhlIG90aGVyIHBhZCBmbGFnIGlzIHByb3RlY3RlZCB3aXRoCgkgIHRoZSBwYWQgbG9jayBpbnN0ZWFkLgoKMjAwOS0wNi0xOCAxNjo0MTo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFByb3Blcmx5IGhhbmRsZSBmbHVzaGluZyBwYWRzLgoJICBJZiBhIHBhZCBpcyBmbHVzaGluZywgaXQgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGFzIGVpdGhlciBlb3Mgb3IKCSAgY29udGFpbmluZyBkYXRhLgoKMjAwOS0wNi0xOCAxMToyNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IGZpeCBlcnJvciBtZXNzYWdlCgkgIFVzZXJzIHNob3VsZCBuZXZlciBzZWUgdGhlIHRlcm0gJ2ZpbGUgZGVzY3JpcHRvcicsIG11Y2ggbGVzcyBhIGZpbGUKCSAgZGVzY3JpcHRvciBudW1iZXIsIGluIGFuIGVycm9yIG1lc3NhZ2UuIFB1dCB0aGF0IGludG8gdGhlIGRlYnVnCgkgIHN0cmluZyBpbnN0ZWFkIGFuZCB1c2UgdGhlIGRlZmF1bHQgZXJyb3IgbWVzc2FnZS4KCjIwMDktMDYtMTggMTE6NDk6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGFkZCB0aGUgbmV3IGZpZWxkIGluIHRoZSBoZWFkZXIKCjIwMDktMDYtMTggMTA6NTU6MzkgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbiBhdCBnYWlnbmFyZC5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICBmZHNpbms6IG1ha2UgZmRzaW5rIHNlZWthYmxlCgkgIEltcGxlbWVudCB0aGUgc2FtZSBsb2dpYyBhcyBmaWxlc2luayB0byBpbXBsZW1lbnQgc2Vla2luZy4KCSAgRml4ZXMgIzU3ODkwOAoKMjAwOS0wNi0xNyAxNjo0NToxNyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogbW92ZWQgdGhlIGNsb2NrIHVucmVmIHRvIHRoZSByaWdodCBwbGFjZQoKMjAwOS0wNi0xNyAxNjoxNzoyNyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZ3N0ZWxlbWVudDogdW5yZWYgdGhlIGNsb2NrIHdoZW4gdGhlIGVsZW1lbnQgY2hhbmdlcyB0byBudWxsIHN0YXRlCgoyMDA5LTA2LTE3IDAwOjI5OjQwICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgUmVwbGFjZWQgZGVwcmVjYXRlZCB3aW4zMi1jb21wYXRpYmlsaXR5IGZ1bmN0aW9uIHdpdGggdW5kZXByZWNhdGVkIG9uZS4KCSAgRml4ZXMgIzU2MDQ0Mi4KCjIwMDktMDYtMTYgMTg6MzI6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBzd2FwIHRoZSBsaW5lcyBvZiBteSBwcmV2aW91cyBjb21taXQKCSAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBteSBwcmV2aW91cyBjb21taXQgdGhhdCByZWxlYXNlZCB0aGUKCSAgY2xvY2sgcHJvdmlkZXIgYW5kIGFmdGVyIHVzZWQgaXQgdG8gY3JlYXRlIHRoZSBjbG9jayBsb3N0IG1lc3NhZ2UuCgoyMDA5LTA2LTE2IDE3OjUxOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogcmVtb3ZlIGNsb2NrIHJlZmVyZW5jZXMgd2hlbiBjbG9jayBsb3N0IGhhcHBlbnMKCSAgUmVtb3ZlIHJlZmVyZW5jZSB0byBjbG9jayBhbmQgY2xvY2sgcHJvdmlkZXIgc3RvcmVkIGluIHRoZSBiaW4KCSAgd2hlbiB0aGUgY2xvY2twcm92aWRlciBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgYmluLgoKMjAwOS0wNi0xNiAxMzozNDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBTaW5jZSB0YWcgZm9yIG5ldyBtZXRob2QKCjIwMDktMDYtMTYgMTM6MzI6MzcgKzAyMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua28uc3ViYXNpYyBhdCBheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0CgkgIEZpeGVzICM1ODU5NjAKCjIwMDktMDYtMTYgMTE6MzQ6NTQgKzAyMDAgIEJyYW5rbyBTdWJhc2ljIDxicmFua28uc3ViYXNpYyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWRkIHN1cHBvcnQgZm9yIEdzdEJ1ZmZlckxpc3RzCgkgIEZpeGVzICM1ODU4MzQKCjIwMDktMDYtMTYgMTE6MjE6NDIgKzAyMDAgIENocmlzdG9waGVyIEhhbHNlIFJvZ2VycyA8Y2hhbHNlcm9nZXJzIGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRXhwbGljaXRseSBtZW50aW9uIHJlZmNvdW50aW5nIGluIGRvY3MKCSAgRml4ZXMgIzU4NTkzOAoKMjAwOS0wNi0xNiAwODo0Mzo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0eG1sOiBmaXggKGRlKXNlcmlhbGlzYXRpb24gb2YgcHJvcGVydGllcyBvZiB0eXBlIEdzdFN0cnVjdHVyZQoJICBzb3VwaHR0cHNyYyBoYXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEdzdFN0cnVjdHVyZSwgd2hpY2ggY2F1c2VzIGFuCgkgIGFzc2VydGlvbiB3aGVuIHNlcmlhbGlzaW5nIGl0IHRvIHhtbC4gRml4ZXMgIzU4NTEzNy4KCjIwMDktMDYtMTUgMjA6MTE6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhlIGNvbXBpbGVyIHN1Z2dlc3RzIHRvIGFkZCBzb21lICgpIHRvIGluZGljYXRlIGlmIHRoZSAmJiBvciB0aGUgfHwgdGFrZXMKCSAgcHJpb3JpdHksIHNvIHJlZmxvdyBjb2RlIGEgYml0IHNvIHdlIGRvbid0IGhhdmUgdG8gYWRkIHlldCBhbm90aGVyIGxheWVyCgkgIG9mICgpLiBIb3BlZnVsbHkgdGhpcyB3YXMgdGhlIGludGVuZGVkIG1lYW5pbmcgb2YgdGhlIGNvZGUuCgoyMDA5LTA2LTExIDE1OjAwOjUyICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGRvbid0IGxvY2sgd2hlbiBtaW4tdGhyZXNob2xkIGFuZCBtYXgtc2l6ZSBjb25mbGljdC4KCSAgV2hlbiBtaW4tdGhyZXNob2xkIGlzIHNldCBvbiBhIHF1ZXVlLCBpdCBpcyBwb3NzaWJsZSB0aGF0IG9uZSBvZgoJICB0aGUgbWluaW1hIHJlbWFpbnMgdW5zYXRpc2ZpZWQgd2hpbGUgb25lIG9mIHRoZSBtYXhpbWEgaXMgYWxyZWFkeQoJICByZWFjaGVkLiBUaGVyZWZvcmUsIGFsd2F5cyBjb25zaWRlciB0aGUgcXVldWUgbm9uLWVtcHR5IGlmIGl0IGlzIGZ1bGwuCgkgIEZpeGVzICM1ODU0MzMuCgoyMDA5LTA2LTE1IDE4OjQ0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIG5leHQgc3RhdGUgY29ycmVjdGx5CgkgIFdoZW4gdGhlIGNvbnRpbnVlIGZ1bmN0aW9uIGlzIHNjaGVkdWxlZCwgbWFrZSBzdXJlIHdlIHNldCB0aGUgbmV4dCBzdGF0ZSBpbnN0ZWFkCgkgIG9mIHRoZSBwZW5kaW5nIHN0YXRlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIGZpeGVzICM1ODU1NjkKCjIwMDktMDYtMTUgMTg6NDQ6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBmaXggLmggaW5kZW50YXRpb24KCjIwMDktMDYtMTUgMTg6NDM6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAwOS0wNi0xNSAxODo0Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZGVidWc6IGFkZCBzb21lIG1vcmUgZGVidWcgdG8gZWxlbWVudCBhbmQgcGFkcwoKMjAwOS0wNi0xNCAxNjo1NjozMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBmaXggaW5jbHVkZSBvcmRlciB0byBnZXQgY29uZmlnLmggYmVmb3JlIF9taW5ndy5oCgkgIGNvbmZpZy5oIG11c3QgYWx3YXlzIGJlIGluY2x1ZGVkIGJlZm9yZSBhbnkgb3RoZXIgaW5jbHVkZXMsIGVpdGhlcgoJICBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHZpYSBnc3RfcHJpdmF0ZS5oLiBGaXhlcyAjNTg1NzMzLgoKMjAwOS0wNi0xNCAxNjoxNzo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIG5ldyB0YWdsaXN0IHdpdGggdGFncyBpbiBvbmUgZ28KCSAgQWRkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBuZXcgdGFnIGxpc3QgYW5kIHNldCB0YWdzIGluIG9uZSBnbywgd2hpY2gKCSAgaXMgbmljZSBmb3IgdXNlIGluIGNvbWJpbmF0aW9uIHdpdGggZnVuY3Rpb25zIHRoYXQgdGFrZSBvd25lcnNoaXAgb2YKCSAgdGhlIHRhZ2xpc3QsIHN1Y2ggYXMgZ3N0X2V2ZW50X25ld190YWcoKSBvciBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkuCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9uZXdfZnVsbCgpCgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9uZXdfZnVsbF92YWxpc3QoKQoKMjAwOS0wNi0xMyAxNDo1NTo0MyArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIGdpdC12ZXJzaW9uLnNoOiBtYWtlIGV4ZWN1dGFibGUKCjIwMDktMDYtMTMgMTQ6NTM6MjQgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIFVwZGF0ZSBzY3JpcHRzL2N2cy11cGRhdGUuc2ggdG8gZ2l0LXVwZGF0ZS5zaDsgYWRkIGdpdC12ZXJzaW9uLnNoCgkgIGFkZCBzY3JpcHQgdG8gZ2V0IGdpdCB2ZXJzaW9ucwoJICBmaXJzdCB1cGRhdGUgYWxsLCB0aGVuIGJ1aWxkCgkgIGFkZCBnbm9ubGluIHRvbwoJICBzcGVjaWZ5IHdoZXJlIHRvIHB1bGwgZnJvbQoJICBhbHNvIHVwZGF0ZSBzdWJtb2R1bGUKCSAgcmVuYW1lIGFuZCBjaGFuZ2UgY3ZzLXVwZGF0ZSBzY3JpcHQgdG8gZ2l0LXVwZGF0ZQoKMjAwOS0wNi0xMiAxODozNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGVyZWFkZXI6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCSAgQWRkIGEgcGF0dGVybiBzY2FuIGZ1bmN0aW9uIHNpbWlsYXIgdG8gdGhlIG9uZSByZWNlbnRseSBhZGRlZCB0bwoJICBHc3RBZGFwdGVyLCBhbmQgYSB1bml0IHRlc3QgKGJhc2VkIG9uIHRoZSBhZGFwdGVyIG9uZSkuCgkgIEZpeGVzICM1ODU1OTIuCgkgIEFQSTogYWRkIGdzdF9ieXRlX3JlYWRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoKMjAwOS0wNC0xNyAxNzo1OTozOCArMDMwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQG5va2lhLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggcmVtYWluaW5nIC0tZGlzYWJsZS1nc3QtZGVidWcgQUJJIGJyZWFrYWdlLgoJICBGaXhlcyAjNTc5MTc3LgoKMjAwOS0wNi0xMiAxNzo1MToyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYy9zaW5rOiB0dXJuIHRoZSBidXMgbWVzc2FnZXMgaW50byBnX3dhcm5pbmcKCSAgSXRzIGEgcHJvZ3JhbW1pbmcgZXJyb3IuCgoyMDA5LTA2LTEyIDE1OjQ4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZml4IGRvY3MKCjIwMDktMDYtMTIgMTM6MTg6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBzdGVwcGluZzogbW9yZSBzdGVwcGluZyBpbXByb3ZlbWVudHMKCSAgVXBkYXRlIGRlc2lnbiBkb2Mgd2l0aCBzdGVwLXN0YXJ0IGRvY3MuCgkgIEFkZCBlb3MgZmllbGQgdG8gc3RlcCBkb25lIG1lc3NhZ2UKCSAgd2hlbiBzdGVwcGluZyBpbiByZXZlcnNlLCB1cGRhdGUgdGhlIHNlZ21lbnQgdGltZSBmaWVsZC4KCSAgRmx1c2ggb3V0IHRoZSBjdXJyZW50IHN0ZXAgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgoyMDA5LTA2LTEwIDE1OjUxOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcG9zdCBzdGVwLXN0YXJ0CgkgIHdoZW4gd2UgY2xpcCwgYWxzbyBzdG9wIHRoZSBzdGVwcGluZy4KCSAgRG9uJ3QgZG8gUW9TIHdoZW4gc3RlcHBpbmcKCSAgUG9zdCBzdGVwLXN0YXJ0IHdoZW4gcXVldWVpbmcgYW5kIGFjdGl2YXRpbmcgdGhlIHN0ZXAuCgoyMDA5LTA2LTEwIDE1OjQ4OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIHN0ZXAtc3RhcnQgbWVzc2FnZQoKMjAwOS0wNi0xMSAxNDoxODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG1vcmUgZWZmaWNpZW50IHZhbHVlIHRhYmxlIGxvb2t1cCBmb3IgZnVuZGFtZW50YWwgdHlwZXMKCSAgU21hbGwgbWljcm8tb3B0aW1pc2F0aW9uOiBsb29rIHVwIHZhbHVlIHRhYmxlIGZvciBmdW5kYW1lbnRhbCB0eXBlcwoJICB2aWEgYW4gYXJyYXkgZGVkaWNhdGVkIHRvIGZ1bmRhbWVudGFsIHR5cGVzIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaAoJICBhIGhhc2ggdGFibGUgbG9va3VwLiBTaW5jZSB0aGVyZSBjYW4gYmUgb25seSAyNTUgZnVuZGFtZW50YWwgdHlwZXMsCgkgIHRoZSB0YWJsZSBzaXplL2VmZmljaWVuY3kgdHJhZGUtb2ZmIHNob3VsZCBiZSBhY2NlcHRhYmxlLCBlc3AuIHNpbmNlCgkgIHRoZSBtb3N0IGNvbW1vbmx5LXVzZWQgdHlwZXMgYXJlIGFsbCBmdW5kYW1lbnRhbCB0eXBlcy4gVGhlIHNpemUgb2YKCSAgdGhlIHRhYmxlIGNvdWxkIHByb2JhYmx5IGJlIG1pbmltaXNlZCBmdXJ0aGVyIGlmIG5lZWRlZCBieSBhbGxvY2F0aW5nCgkgIHRoZSB0YWJsZSBkeW5hbWljYWxseSBhbmQgb25seSBleHBhbmRpbmcgaXQgb24gZGVtYW5kLgoKMjAwOS0wNi0xMSAxMzoxNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGRvbid0IHB1dCBHVHlwZXMgaW50byBpbnQgdmFyaWFibGVzCgkgIEdUeXBlcyBhcmUgbm90IGludHMgYW5kIGFzIHN1Y2ggYXJlIG5vdCBndWFyYW50ZWVkIHRvIGZpdCBpbnRvIGFuIGludAoJICAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIGZ1bmRhbWVudGFsIHR5cGVzKSwgc28gd2UgcmVhbGx5IHNob3VsZG4ndCBwdXQKCSAgdGhlbSBpbnRvIGludCB2YXJpYWJsZXMuIEV2ZW4gaWYgYSByYXRoZXIgdW5saWtlbHkgb2JzY3VyZSBjb3JuZXIgY2FzZSwKCSAgdGhpcyBoYXMgYWN0dWFsbHkgYmVlbiBhIHByb2JsZW0gYXQgc29tZSBwb2ludCBpbiB0aGUgcGFzdCwgc2VlIGNvbW1pdAoJICA5OWYxNjY1NWY0Y2ZiYzhlMDZiNTk3MjQxN2JhMTEyNzkwODNhNjRlLgoKMjAwOS0wNi0xMSAxNzowMzowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYy9zaW5rOiBpbXByb3ZlIHdhcm5pbmcgbWVzc2FnZSBhIGJpdCAod3Jvbmcgc3RhdGUpCgkgIFVuaWZ5IGFuZCB0dXJuIHRob3NlIGludG8gZWxlbWVudCB3YXJuaW5ncy4KCjIwMDktMDYtMTEgMTQ6MDA6MDkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogRml4IGEgY29tcGlsZXIgd2FybmluZwoJICBVc2UgKGdwb2ludGVyKSBpbnN0ZWFkIG9mIChncG9pbnRlciAqKSB0byBmaXggYSBzdHJpY3QtYWxpYXNpbmcgYnVpbGQgd2FybmluZy4KCjIwMDktMDYtMTEgMTM6MTY6MjkgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL01ha2VmaWxlLmFtOgoJICBkb2NzOiBCdW1wIGNvbW1vbiwgZml4IHRoZSB1cGxvYWQgbG9naWMgaW5jbHVzaW9uCgkgIFVwZGF0ZSB0aGUgY29tbW9uIHN1Ym1vZHVsZSwgYW5kIGZpeCB0aGUgZG9jcyB1cGxvYWQgcnVsZXMgdG8gaW5jbHVkZQoJICB0aGUgcmlnaHQgbWFrZWZpbGUgc25pcHBldCBmcm9tIGNvbW1vbi4KCjIwMDktMDYtMDkgMTE6MTM6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVc2UgdGhlIHNsaWNlIGFsbG9jYXRvciBmb3IgTXVsdGlRdWV1ZUl0ZW1zCgoyMDA5LTA2LTEwIDIwOjI5OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgTWFrZSBzdXJlIGNvbmZpZy5oIGlzIG9ubHkgaW5jbHVkZWQgb25jZQoJICBGaXhlcyBidWlsZCBwcm9ibGVtIG9uIHdpbjMyICgjNTg1MDc1KS4KCjIwMDktMDYtMTAgMTg6MDU6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBhZGQgc2luY2U6IHRhZ3MgZm9yIHRoZSBhcGkgZG9jcy4KCSAgVGhlIHByZXZpb3VzIHJlbGF0ZWQgY29tbWl0IGFkZGVkIG5ldyBBUEkuCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fZ2V0X2NhY2hlX2RhdGEsIGdzdF9wbHVnaW5fc2V0X2NhY2hlX2RhdGEKCjIwMDktMDYtMTAgMTI6MDI6MjMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBmaXggbGVha3MgaW50cm9kdWNlZCBieSBmaXggZm9yICM1ODQzODkKCjIwMDktMDYtMDggMjM6NDM6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogYWRkIGdzdF9zdHJ1Y3R1cmVfKl9nZXQqKCkgdmFyYXJnIGZ1bmN0aW9ucwoJICBBZGQgYSBidW5jaCBvZiB2YXJhcmcgZ2V0dGVyIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBjb21wbGVtZW50CgkgIHRoZSB2YXJhcmcgc2V0dGVyIGZ1bmN0aW9ucywgYW5kIGEgYmFzaWMgdW5pdCB0ZXN0LiBGaXhlcyAjNTM0MjA4LgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX2dldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9nZXRfdmFsaXN0KCkKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX2dldF92YWxpc3QoKQoKMjAwOS0wNi0wOSAwMDoxNjowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBkb2NzOiBhIGZldyBzbWFsbCBBUEkgZG9jIGZpeGVzIGFuZCBhZGRpdGlvbnMKCjIwMDktMDYtMDggMTk6MzM6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgbG9nZ2luZzogd2hlbiBsb2dnaW5nIHRhZ2xpc3RzLCBzaG9ydGVuIGxvbmcgYnVmZmVyIGR1bXBzCgkgIERvbid0IGR1bXAgaHVuZHJlZHMgb2Yga0Igb2YgaGV4ZGF0YSBpbnRvIGRlYnVnIGxvZ3Mgd2hlbiBjb252ZXJ0aW5nCgkgIHRhZ2xpc3RzIGNvbnRhaW5pbmcgaHVnZSBpbWFnZXMgaW50byBhIHN0cmluZy4gSW5zdGVhZCwgc2hvcnRlbiB0aGUKCSAgYnVmZmVyIGRhdGEgc28gdGhhdCB0aGUgc3RyaW5nIGlzIHN0aWxsIHJlYWRhYmxlIGFuZCBkZWJ1ZyBsb2dzCgkgIHN0YXkgbWFuYWdhYmxlLiBDYW4gYmUgdHVybmVkIG9mZiB3aXRoIEdTVF9ERUJVR19PUFRJT05TPWZ1bGwtdGFncy4KCSAgU2VlICM1ODQ5ODguCgoyMDA5LTA2LTA5IDEzOjA3OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGNoZWNrIGJ5dGUgcmFuZ2UgZXZlbiB3aGVuIHdlIGhhdmUgdGltZXN0YW1wcwoJICBBcyBmb3VuZCBieSB0aGF5dGFuIG9uIElSQy4KCSAgQWxzbyBjaGVjayB0aGUgYnl0ZSBsaW1pdCwgZXZlbiBpZiB3ZSBoYXZlIHRpbWVzdGFtcHMgYmVjYXVzZSB0aGVyZSBtaWdodCBqdXN0CgkgIG5vdCBiZSBhIHRpbWUgbGltaXQuCgoyMDA5LTA2LTA5IDEyOjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXBkYXRlIHNlZ21lbnQgc3RhcnQvc3RvcCBmb3IgY2xpcHBpbmcKCSAgV2hlbiB3ZSBzdGFydCBzdGVwcGluZywgc3RvcmUgdGhlIHN0YXJ0L3N0b3AgdmFsdWVzIG9mIHRoZSBzZWdtZW50IGJlZm9yZSB3ZQoJICBpbnN0YWxsIG5ldyBzdGFydC9zdG9wIHZhbHVlcyBmb3IgY2xpcHBpbmcgaW4gbm9uLWZsdXNoaW5nIHN0ZXBzLgoJICBmb3Igbm9uLWZsdXNoaW5nIHN0ZXBzLCB1cGRhdGUgdGhlIGVsZW1lbnQgc3RhcnQgdGltZS4gRm9yIGZsdXNoaW5nIHN0ZXBzLCBpdAoJICBkb2VzIG5vdCBjaGFuZ2UgYmVjYXVzZSBydW5uaW5nX3RpbWUgZG9lcyBub3QgYWR2YW5jZQoJICBNYWtlIHN1cmUgd2UgYWx3YXlzIHBlcmZvcm0gdGhlIHN0b3Bfc3RlcHBpbmcgb3BlcmF0aW9ucyBldmVuIHdoZW4gd2UgZHJvcAoJICBmcmFtZXMuCgoyMDA5LTA2LTA5IDEwOjI1OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG8gcHJvcGVyIGNsaXBwaW5nIGluIHN0ZXBwaW5nCgkgIFVwZGF0ZSB0aGUgc3RvcCBwb3NpdGlvbiBvZiB0aGUgc2VnbWVudCBzbyB0aGF0IHdlIGNsaXAgY29ycmVjdGx5LgoJICBBZnRlciBjbGlwcGluZyBpbiBub24tZmx1c2hpbmcgbW9kZSwgcmVyZW5kZXIgdGhlIHJlbWFpbmRlciBvZiB0aGUgYnVmZmVyLgoKMjAwOS0wNi0wOSAxMDoyMzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IG1ha2UgY29udmVyc2lvbiBtb3JlIHByZWNpc2UKCSAgTWFrZSBzdXJlIHRoZSBjb252ZXJzaW9uIGZyb20gYW5kIHRoZSBjb252ZXJzaW9uIHRvIGdpdmUgdGhlIHNhbWUgcmVzdWx0cy4KCjIwMDktMDYtMDggMTU6Mzk6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBnc3RfdXRpbF91aW50NjRfc2NhbGUqKCkgbWljcm8tb3B0aW1pc2F0aW9ucwoJICBTcHJpbmtsZSBHX0xJS0VMWS9HX1VOTElLRUxZOyBhZGQgaW5saW5lZCBfc2NhbGVfaW50X3VuY2hlY2tlZCgpCgkgIHNvIHdlIGRvbid0IGRvIHNvbWUgY2hlY2tzIHR3aWNlIHdoZW4gY2FsbGluZyBpdCBmcm9tIF9zY2FsZSgpLgoKMjAwOS0wNi0wNyAyMjo0OTowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIFJlbW92ZSBkb3VibGUgc2VtaWNvbG9ucyBhdCBlbmQgb2YgbGluZQoKMjAwOS0wNi0wOCAxNzozOTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgc3RlcHBpbmc6IGRvIGZsdXNoaW5nIHN0ZXBzIGNvcnJlY3RseQoJICBOb3RlIGluIHRoZSBkb2NzIHRoYXQgYSBmbHVzaGluZyBzdGVwIGluIFBMQVlJTkcgYnJpbmdzIHRoZSBwaXBlbGluZSB0byB0aGUgbG9zdAoJICBzdGF0ZSBhbmQgc2tpcHMgdGhlIGRhdGEgYmVmb3JlIHByZXJvbGxpbmcgYWdhaW4uCgkgIEltcGxlbWVudCB0aGUgZmx1c2hpbmcgc3RlcCBjb3JyZWN0bHkgYnkgaW52YWxpZGF0aW5nIHRoZSBjdXJyZW50IHN0ZXAKCSAgb3BlcmF0aW9uLCB3aGljaCB3b3VsZCBhY3RpdmF0ZSB0aGUgbmV3IHN0ZXAgb3BlcmF0aW9uLgoKMjAwOS0wNi0wOCAxNjoxNjoyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2hhbmdlIGF3a3dhcmQgd29yZGluZyBpbiBhIHRyYW5zbGF0ZWFibGUgbWVzc2FnZS4KCjIwMDktMDYtMDggMTY6Mjc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgbm9uLWZsdXNoaW5nIHN0ZXBzCgkgIEFkZCBzdXBwb3J0IGZvciBub24tZmx1c2hpbmcgc3RlcHMgYW5kIHdpdGggZGlmZmVyZW50IHJhdGVzLgoJICBDbGVhciBzdGVwIGluZm8gd2hlbiBmbHVzaGluZwoKMjAwOS0wNi0wNyAyMzo0Njo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogYWxsb3cgcGx1Z2lucyB0byBjYWNoZSBleHRyYSBkYXRhIGluIHJlZ2lzdHJ5LiBGaXhlcyAjNTcwMjMzCgkgIEFkZCBhIEdzdFN0cnVjdHVyZSB0byBHc3RQbHVnaW4uIFBsdWdpbnMgY2FuIHJldGlldmUgaXQgaW4gcGx1Z2luX2luaXQgYW5kCgkgIGFjY2VzcyB0aGUgY2FjaGVkIGluZm8gb3IgYnVpbGQgdGhlIGNhY2hlIGFuZCBzdG9yZSBpdCB0aGVyZS4KCjIwMDktMDYtMDcgMjI6MDk6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogZG9uJ3QgcmVjcmVhdGUgZmVhdHVyZXMgb24gZmlyc3QgdXNlLiBGaXhlcyAjNTg0Mzg5CgkgIFRoZSBmaXJzdCB0aW1lIG9uZSBjYWxscyBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoKSwgZ3N0IHJlY3JlYXRlcyB0aGUgcGx1Z2luCgkgIGZlYXR1cmUgYW5kIHRoZSBlbGVtZW50IGZhY3RvcnkuIEFzIGEgc2lkZSBlZmZlY3Qgd2UgcmVmIHRoZSBjbGFzcyB0byBmaWxsCgkgIGluIGRldGFpbCB3ZSBhbHJlYWR5IGhhdmUgZmlsbGVkIGZyb20gdGhlIHJlZ2lzdHJ5IGNhY2hlLiBUaGlzIHBhdGNoIGNoYW5nZXMKCSAgdGhlIGJlaGF2aW91ciB0byBqdXN0IHVwZGF0ZSB0aGUgZXhpc3RpbmcgZW50cmllcy4gVGhlIGZhY3RvcnkgaXMgbm93IGF0dGFjaGVkCgkgIHRvIHRoZSB0eXBlIGFuZCBzZXQgaW4gZ3N0X2VsZW1lbnRfYmFzZV9jbGFzc19pbml0KCkuCgoyMDA5LTA2LTA3IDIyOjIwOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGNvbmRpdGlvbmFsbHkgY29tcGlsZSB0aGUgc3RyZWFtcyBleGFtcGxlCgkgIERldGVjdCBwdGhyZWFkcy5oIGluIGNvbmZpZ3VyZS5hYwoJICBPbmx5IGNvbXBpbGUgdGhlIHN0cmVhbXMgZXhhbXBsZSB3aGVuIHB0aHJlYWRzLmggaXMgcHJlc2VudC4KCSAgRml4ZXMgIzU4NTAzOQoKMjAwOS0wNi0wNyAxNzozMjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcmVtb3ZlIHR5cGUgY2hlY2tzIGFuZCByZWR1bmRhbnQgY29kZQoKMjAwOS0wNi0wNyAxNTo0Mzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGZyYWN0aW9uIHJhbmdlIGxjb3B5IGZ1bmN0aW9uCgkgIFRoaXMgZnVuY3Rpb24gc2VlbXMgdG8gYmUgYnJva2VuIGZvciAzLjUgeWVhcnMuIEx1Y2tpbHkgbm9ib2R5IGV2ZXIgdHJpZWQgdG8KCSAgbWFrZSBhIGZyYWN0aW9uIHJhbmdlIG9iamVjdCBwcm9wZXJ0eS4uLgoKMjAwOS0wNi0wNyAxNTozNToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCgkgIEFkZCBhIEdUeXBlLT5Hc3RWYWx1ZVRhYmxlIGhhc2h0YWJsZSBtYXBwaW5nLgoJICBBdm9pZCBfZ2V0X3R5cGUoKSBtdWx0aXBsZSB0aW1lcyB3aGVuIHdlIGNhbi4KCSAgVXNlIEdTbGljZSBmb3IgZnJhY3Rpb24gcmFuZ2UgZHluYW1pYyBtZW1vcnkKCSAgQWRkIEdfTElLRUxZIHdoZW4gd2UgY2FuCgkgIEltcHJvdmUgbG9va3VwIG9mIHRoZSB2YWx1ZSB0YWJsZSB1c2luZyB0aGUgaGFzaHRhYmxlCgoyMDA5LTA2LTA3IDE0OjMwOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG5vIG5lZWQgdG8gY2xlYXIgb24gaW5pdAoJICBXZSBkb24ndCBuZWVkIHRvIGNsZWFyIHRoZSBmaWVsZCBvbiBpbml0IGJlY2F1c2Ugd2Ugd2lsbCBkbyB0aGF0IGFnYWluIGJlZm9yZSB3ZQoJICBhcmUgZ29pbmcgdG8gdXNlIHRoZSBmaWVsZCBsYXRlci4KCjIwMDktMDYtMDUgMjA6NTc6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHN0cnVjdHVyZTogRml4IHNvbWUgbWVtb3J5IGxlYWtzLiBTcHJpbmtsZSBHX0xJS0VMWS9VTkxJS0VMWQoJICBGaXggc29tZSBtZW1vcnkgbGVha3Mgc2hvd24gYnkgdGhlIG5ldyBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiB1bml0CgkgIHRlc3QuIFNwbGl0IHRoZSBnc3Rfc3RyaW5nX3dyYXAgZnVuY3Rpb24gaW4gZ3N0dmFsdWUuYyBpbnRvIGNvbXBvbmVudHMgYW5kCgkgIHVzZSB0aGVtIHRvIG1ha2UgZ3N0X3N0cmluZ190YWtlX2FuZF93cmFwLCB3aGljaCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlCgkgIHN0cmluZywgYXZvaWRpbmcgYSBzdHJkdXAuCgkgIEFkZCBzb21lIEdfTElLRUxZL1VOTElLRUxZLCBhbmQgY2xlYW4gdXAgc29tZSBsZWFrcyBpbiBlcnJvciBwYXRocy4KCjIwMDktMDYtMDUgMTE6Mzc6MjQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlcGx5IHRvIFFVRVJZX1NFRUtJTkcgd2l0aCBvcmlnaW5hbCBmb3JtYXQuICBGaXhlcyAjNTg0ODM4LgoKMjAwOS0wNi0wNCAxOTo0NDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIEFDX0NfSU5MSU5FIGFuZCB1cGRhdGUgd2luMzIgZmlsZXMgdG8gZ2l0CgkgIFJlbW92ZSBBQ19DX0lOTElORSBjaGVjaywgc28gd2UgZG9uJ3QgZW5kIHVwIHdpdGggYW4gI3VuZGVmIGlubGluZSBpbgoJICBjb25maWcuaCwgd2hpY2ggY2F1c2VzIHByb2JsZW1zIHdpdGggc29tZSB2ZXJzaW9ucyBvZiBNU0NWIGFwcGFyZW50bHkuCgkgIEdMaWIgZGVmaW5lcyBpbmxpbmUgZm9yIHVzIGluIGEgc3VpdGFibGUgd2F5IGFscmVhZHkgYW55d2F5LgoJICBGaXhlcyAjNTg0ODM1LgoJICBXaGlsZSB3ZSdyZSBhdCBpdCwgYWxzbyB1cGRhdGUgdGhlIG90aGVyIHdpbjMyIGZpbGVzIHRvIGdpdCAoYnVtcAoJICB2ZXJzaW9uLCBhZGQgbmV3IGRlZmluZXMgYW5kIGVudW1zKS4KCjIwMDktMDYtMDQgMTg6MjY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGF2b2lkIGV4Y2Vzc2l2ZSBub3RpZnkgZm9yIGNhcHMKCSAgQXZvaWQgYW4gb2JqZWN0IHByb3BlcnR5IG5vdGlmeSBpZiB0aGUgY2FwcyBvbiB0aGUgb3RoZXIgcGFkIHdlcmUgYWxyZWFkeQoJICBzZXQgKGFuZCB0aHVzIG5vdGlmaWVkKS4KCjIwMDktMDYtMDQgMTc6Mjc6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggY2xpcHBlZCBzdGFydC9zdG9wIGFmdGVyIHN0ZXAKCSAgVXNlIHRoZSBzZWdtZW50IGhlbHBlcnMgdG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSBjbGlwcGVkIHN0YXJ0L3N0b3AgcG9zaXRpb24gYWZ0ZXIKCSAgYSBzdGVwcGluZyBvcGVyYXRpb24gZW5kZWQuCgoyMDA5LTA2LTA0IDEyOjM0OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIG1vcmUgY29ycmVjdCBzZWdtZW50IG1ldGhvZHMKCSAgVXNlIHRoZSBtb3JlIGNvcnJlY3QgbmV3IHNlZ21lbnQgbWV0aG9kcyBmb3IgdXBkYXRpbmcgdGhlIHNlZ21lbnQgYmVmb3JlIGFuZAoJICBhZnRlciBhIHN0ZXAuCgoyMDA5LTA2LTA0IDEyOjQ4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBnc3Rfc2VnbWVudF9zZXRfcnVubmluZ190aW1lCgkgIEFkZGVkIG5ldyBtZXRob2QgZm9yIGNsb3NpbmcgdGhlIHNlZ21lbnQgdG8gYSBzcGVjaWZpYyBydW5uaW5nIHRpbWUuCgkgIEFQSTogR3N0U2VnbWVudDo6Z3N0X3NlZ21lbnRfc2V0X3J1bm5pbmdfdGltZSgpCgoyMDA5LTA2LTA0IDAwOjM3OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIC5wbyBmaWxlcyBmb3Igc3RyaW5nIGNoYW5nZXMKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgcGVvcGxlIHdobyBnZXQgdGhlbXNlbHZlcyBhIGZyZXNoIGNoZWNrb3V0CgkgIGRvbid0IGltbWVkaWF0ZWx5IGhhdmUgY2hhbmdlZCAqcG8gZmlsZXMgYWZ0ZXIgcnVubmluZyBtYWtlLCB3aGljaAoJICB3b3VsZCBjYXVzZSBhIGJpdCBvZiBoYXNzbGUgbmV4dCB0aW1lIHRoZSBmaWxlcyBhcmUgdXBkYXRlZC4gQmV0dGVyCgkgIHRvIGtlZXAgdGhlbSB1cC10by1kYXRlIHdoZW4gc3RyaW5ncyBjaGFuZ2UuCgoyMDA5LTA2LTA0IDAwOjU0OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlcnJvci5jOgoJICBlcnJvcnM6IHJld29yZCBzdGF0ZSBjaGFuZ2UgZmFpbGVkIGVycm9yIG1lc3NhZ2UgYW5kIHJlbW92ZSBidWd6aWxsYSBsaW5rCgkgIFJld29yZCB0aGlzIG1lc3NhZ2UgYSBiaXQgdG8gbWFrZSBpdCBjbGVhcmVyIHdoYXQgaXQgbWVhbnMsIG5hbWVseSB0aGF0CgkgIHRoZSBzdGF0ZSBjaGFuZ2UgbWF5IGhhdmUgZmFpbGVkIGZvciBnb29kIHJlYXNvbnMsIGJ1dCB0aGF0IHRoZSBlbGVtZW50CgkgIGp1c3QgZmFpbGVkIHRvIHBvc3QgYSBwcm9wZXIgZXJyb3Igb24gdGhlIGJ1cy4gVGhpcyBpcyBub3QgYW4gaW50ZXJuYWwKCSAgR1N0cmVhbWVyIGJ1ZywgYW5kIHdlIHJlYWxseSBkb24ndCBuZWVkIHBlb3BsZSB0byBmbG9vZCBidWd6aWxsYSB3aXRoCgkgIGJ1ZyByZXBvcnRzIGlmIG9uZSBzdWNoIHBsdWdpbiBidWcgZXZlciBtYWtlcyBpdCBpbnRvIHRoZSB3aWxkLgoKMjAwOS0wNi0wNCAwMDoyOTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHJlZmVyIHRvIGVsZW1lbnQsIHBhZCwgb3Igb2JqZWN0IGluIHNvbWUgbWVzc2FnZSBzdHJpbmdzCgkgIFJldmlzaXQgdGhlc2Ugc3RyaW5ncyBub3cgdGhhdCB0aGUgY2hhbmdlIHJlZ2FyZGluZyB0aGUgbWVzc2FnZSBzb3VyY2UKCSAgb2JqZWN0IGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCgpIGdvdCByZXZlcnRlZC4gVHJ5IHRvIHJlZmVyCgkgIGV4cGxpY2l0bHkgdG8gd2hhdCBraW5kIG9mIGVsZW1lbnQgaXQgaXMgKGVsZW1lbnQsIHBhZCwgZXRjLikgaW4gc29tZQoJICBjYXNlcywgd2hpY2ggaXMgbmljZXIgdGhhbiBoYXZpbmcgdG8gZGVkdWNlIHRoaXMgaW5mbyAoYW5kIHdlIGNhbgoJICByZS11c2UgdGhlIGFscmVhZHkgZXhpc3RpbmcgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciB0aGUgbW9zdCBjb21tb24KCSAgY2FzZSkuIEl0IGFsc28gbWFrZXMgZm9yIGJldHRlciBleGFtcGxlIGNvZGUsIHNpbmNlIGl0J3MgY2xlYXIgbm93CgkgIHRoYXQgdGhlIG1lc3NhZ2Ugc291cmNlIG9iamVjdCBkb2Vzbid0IGhhdmUgdG8gYmUgYW4gZWxlbWVudC4KCjIwMDktMDYtMDMgMjE6MTA6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQVBJOiBhZGQgR1NUX01FU1NBR0VfU1JDX05BTUUgbWFjcm8KCSAgQWRkIEdTVF9NRVNTQUdFX1NSQ19OQU1FIG1hY3JvIHRoYXQgYWx3YXlzIHJldHVybnMgYSBub24tTlVMTCBzdHJpbmcuCgkgIFVzZWZ1bCBmb3IgZGVidWdnaW5nIGFuZCBsb2dnaW5nIHB1cnBvc2VzLgoKMjAwOS0wNi0wMyAxOTowNjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgbWV0aG9kIGZvciBjb252ZXJ0aW5nIHRvIHBvc2l0aW9uCgkgIEFkZCBnc3Rfc2VnbWVudF90b19wb3NpdGlvbigpIHRoYXQgY29udmVydHMgYSBydW5uaW5nX3RpbWUgdG8gYSBwb3NpdGlvbiBpbiB0aGUKCSAgc2VnbWVudC4gQSBmYXVsdHkgdmFyaWFudCBvZiB0aGlzIGZ1bmN0aW9uIGlzIGN1cnJlbnRseSB1c2VkIGluIGlucHV0c2VsZWN0b3IKCSAgYnV0IHdlJ2xsIG5lZWQgaXQgZm9yIGZyYW1lIHN0ZXBwaW5nIHRvby4KCSAgQVBJOiBHc3RTZWdtZW50Ojpnc3Rfc2VnbWVudF90b19wb3NpdGlvbigpCgoyMDA5LTA2LTAzIDE1OjM5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazsgaGFuZGxlIEVPUyBjb3JyZWN0bHkuCgkgIEhhbmRsZSBFT1MgYW5kIGJ1ZmZlcnMgd2l0aG91dCBhIHRpbWVzdGFtcCBncmFjZWZ1bGx5LgoJICBSZW1vdmUgYSB3YXJuaW5nIHRoYXQgaXMgbm90IHNvIG11Y2ggYSB3YXJuaW5nIG5vdyBhbnltb3JlLgoKMjAwOS0wNi0wMyAwOTo0NToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0ICJnbyBiYWNrIHRvIGFsbG93aW5nIGdldHRleHQgMC4xMS41LCBidXQgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzFjMDlkNzM4Y2U3ZjQ3YmZmOWQyOTI5OTZlOTQ4OWMyNzVlNTVhMS4KCSAgUmV2ZXJ0aW5nIHRoaXMsIHNpbmNlIGl0IGJyZWFrcyBhdXRvZ2VuLnNoIGZvciBtZSBvbiBkZWJpYW4gc2lkLgoJICBGYWlsdXJlIGlzOiAibGlidG9vbCAyLjIgcmVxdWlyZXMgYXV0b3BvaW50IDAuMTcgb3IgaGlnaGVyIiBldmVuIHRob3VnaAoJICAwLjE3IHdhcyBmb3VuZC4KCjIwMDktMDYtMDMgMDk6NDE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgUmV2ZXJ0ICJvbmx5IHVwZGF0ZSBzdWJtb2R1bGUgd2hlbiBpdCBpcyBub3Qgb24gYSBzcGVjaWZpYyBicmFuY2giCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTNiODMzMzNhYWQ1MTljNTU1NTE1NjU3NmYwYmFhM2JlN2IyNjNmMy4KCSAgUmV2ZXJ0aW5nIHNpbmNlIHRoaXMgZmFpbHMgb24gYSBmcmVzaCBjaGVja291dC4gQWxzbywgd2Ugc2hvdWxkbid0CgkgIGRlcGVuZCBvbiBwb3NzaWJseSB0cmFuc2xhdGVkIHN0cmluZ3MuCgoyMDA5LTA2LTAzIDAxOjU2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgZG9jczogZml4IHVwIHJlZmVyZW5jZSB0byBnc3QtbGF1bmNoLTAuOAoJICBBbHNvIG1lbnRpb24gZGVjb2RlYmluMiwgdXJpZGVjb2RlYmluLCBhbmQgcGxheWJpbjIKCjIwMDktMDYtMDMgMTA6Mzk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmb3JnZXQgcHJldmlvdXMgdGltZXMgd2hlbiBzdGVwcGluZwoJICBXaGVuIHdlIHN0YXJ0IGEgZmx1c2hpbmcgc3RlcCBvcGVyYXRpb24sIGZvcmdldCBhYm91dCB0aGUgcHJldmlvdXMgc3RyZWFtIHRpbWUKCSAgc28gdGhhdCB0aGUgcG9zaXRpb24gcmVwb3J0aW5nIHdvcmtzIGNvcnJlY3RseS4KCjIwMDktMDYtMDMgMDE6MjU6MjYgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGdvIGJhY2sgdG8gYWxsb3dpbmcgZ2V0dGV4dCAwLjExLjUsIGJ1dCBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMgoKMjAwOS0wNi0wMyAwMTowMTo1NyArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIG9ubHkgdXBkYXRlIHN1Ym1vZHVsZSB3aGVuIGl0IGlzIG5vdCBvbiBhIHNwZWNpZmljIGJyYW5jaAoKMjAwOS0wNi0wMiAxMzo0NTo1MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBTZXQgcGlwZWxpbmUgdG8gUEFVU0VEIGJlZm9yZSB3YWl0aW5nIGZvciBtYWluIGxvb3AgaWRsZQoJICBXaGVuIGl0IGlzIHNodXR0aW5nIGRvd24gYSBwaXBlbGluZSBhZnRlciBjdHJsLWMsIHNldCBwaXBlbGluZSB0bwoJICBwYXVzZWQgYmVmb3JlIHdhaXRpbmcgZm9yIHRoZSBtYWluIGxvb3AgdG8gY29tcGxldGUgYWxsIHBlbmRpbmcKCSAgdHJhbnNhY3Rpb25zLiAgRml4ZXMgIzU4NDY1Ny4KCSAgSWYgc29tZSBwYXJ0IG9mIHRoZSBwaXBlbGluZSBpcyBnZW5lcmF0aW5nIHNpZ25hbHMgb3IgaWRsZSBmdW5jdGlvbnMKCSAgYXQgYSBmYXN0IHJhdGUsIHdhaXRpbmcgZm9yIGEgbWFpbiBsb29wIGl0ZXJhdGlvbiBtYXkgbmV2ZXIgcmV0dXJuLgoKMjAwOS0wNi0wMiAxODozNjoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBmaXggc2VyaWFsaXNhdGlvbiBvZiBuZXN0ZWQgc3RydWN0dXJlcy4KCSAgVXNlIHN0cmluZ193YXJwL3Vud3JhcCB0byBlc2NhcGUgZGVsaW1pdGVycywgb3RoZXJ3aXNlIGRlc2VyaWFsaXNhdGlvbiBmYWlscy4KCSAgQWxzbyBtb3ZlIEdTVF9BU0NJSV9JU19TVFJJTkcgdG8gcHJpdmF0ZSBoZWFkZXIgdG8gYXZvaWQga2VlcGluZyBpdCBpbiBzeW5jLgoJICBBbHNvIHVzZSAnXDAnIHdoZW4gdGVybWluYXRpbmcgYSBzdHJpbmcgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMDktMDYtMDIgMTU6Mzc6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggcmVncmVzc2lvbiBpbiB1bml0IHRlc3RzCgkgIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGJ1ZmZlciBhZnRlciBwcmVyb2xsaW5nLiBXaGlsZSB3ZSBhcmUgcHJlcm9sbGVkIHdlCgkgIHdhbnQgdG8gcmVwb3J0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2VnbWVudCBzdGFydCB2YWx1ZS4KCjIwMDktMDYtMDEgMjA6MjY6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogd2lkZW4gbG9nIGxldmVsIHN0cmluZ3MgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIG5ldyBNRU1EVU1QCgoyMDA5LTA2LTAxIDE5OjM3OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcG9zdCBhIHdhcm5pbmcgb24gZXhjZXNzaXZlIGZyYW1lZHJvcHMKCSAgV2hlbiB3ZSBnbyBpbnRvIGVtZXJnZW5jeSByZW5kZXJpbmcsIHBvc3QgYSB3YXJuaW5nIGluZm9ybWluZyB0aGUgdXNlciBhYm91dAoJICB0aGlzIGZhY3QuCgoyMDA5LTA1LTMxIDE5OjEwOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBzdGVwcGluZyBpbiByZXZlcnNlCgkgIEZpeCBzdGVwcGluZyBhbmQgcG9zaXRpb24gcmVwb3J0aW5nIGluIHJldmVyc2UgcGxheWJhY2suCgoyMDA5LTA1LTI5IDE2OjA2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIHN0YXJ0X3RpbWUgYXMgdGhlIHN0ZXAgc3RhcnQKCSAgVXNlIHRoZSBzdGFydF90aW1lIG9mIHRoZSBlbGVtZW50IGFzIHRoZSBwb2ludCBmcm9tIHdoZXJlIHRoZSBzdGVwIG9wZXJhdGlvbgoJICBzdGFydHMuIFRoaXMgZml4ZXMgc3RlcHBpbmcgaW4gYWxsIHBhdXNlZCBzdGF0ZXMuCgoyMDA5LTA1LTE5IDE5OjQ1OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2F0Y2ggc3RlcCBjYXNlcyBpbiBfd2FpdF9wcmVyb2xsKCkKCSAgV2hlbiBhIHN1YmNsYXNzIGlzIGJsb2NraW5nIGluIF93YWl0X3ByZXJvbGwoKSBpbiB0aGUgX3JlbmRlciBtZXRob2QsIG1ha2Ugc3VyZQoJICB3ZSBjYW4gdW5sb2NrIHRoZSBzdWJjbGFzcyBhbmQgZGV0ZWN0IHRoaXMgcmV0dXJuIHZhbHVlIGZyb20gdGhlIHJlbmRlciBtZXRob2QuCgoyMDA5LTA1LTE5IDEwOjUwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBzdGVwcGluZyBpbiByZXZlcnNlIGZpeGVzCgoyMDA5LTA1LTE4IDE4OjQxOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogc21hbGwgY2xlYW51cHMKCjIwMDktMDUtMTggMTU6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZnJhbWVzdGVwOiBpbXBsZW1lbnQgYmFja3dhcmRzIGZyYW1lc3RlcAoJICBVcGRhdGUgZnJhbWVzdGVwIGRvY3VtZW50LCB3ZSB3YW50IHRvIHBhc3MgdGhlIGZsdXNoIGZsYWcgaW4gdGhlIHN0ZXAtZG9uZQoJICBtZXNzYWdlLgoJICBBZGQgZmx1c2ggZmxhZyB0byB0aGUgZ3N0bWVzc2FnZS4KCSAgVXBkYXRlIGV4YW1wbGVzIHRvIHVzZSB0aGUgbmV3IHN0ZXAtZG9uZSBtZXNzYWdlIGFwaS4KCSAgSW1wbGVtZW50IGZyYW1lc3RlcCB3aXRoIHBsYXliYWNrIHJhdGVzIDwgMC4wIHRvby4KCjIwMDktMDUtMTUgMTU6MjU6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgZnJhbWVzdGVwcGluZyBpbiB0aW1lCgoyMDA5LTA1LTE1IDE1OjI0OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlczogc3RlcCBpbiB0aW1lIGFzIHdlbGwKCjIwMDktMDUtMTUgMTI6MDI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGV4YW1wbGU6IHByaW50IHN0ZXBfZG9uZSBtZXNzYWdlIGFuZCBzeW5jCgkgIER1bXAgdGhlIHN0ZXBfZG9uZSBtZXNzYWdlIGNvbnRlbnRzLgoJICBTeW5jIGFnYWluc3QgdGhlIGNsb2NrIHdoZW4gZ29pbmcgdG8gUExBWUlORy4KCjIwMDktMDUtMTUgMTI6MDU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBrZWVwIHRyYWNrIG9mIHN0ZXBwZWQgdGltZQoJICBQYXNzIHJ1bm5pbmdfdGltZSBhcm91bmQgc28gdGhhdCB0aGUgc3RlcHBpbmcgY29kZSBjYW4gY2FsY3VsYXRlIHRoZSBlbGFwc2VkCgkgIHRpbWUgY29ycmVjdGx5LgoKMjAwOS0wNS0xNCAxOToyOTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vdmUgc3R1ZmYgYXJvdW5kLCBtb3JlIHN0ZXBwaW5nCgkgIE1ha2Ugc3RhcnQgYW5kIHN0b3Bfc3RlcHBpbmcgbWV0aG9kcyBhbmQgbW92ZSB0aGVpciBpbnZvY2F0aW9uIGluIHRoZSByaWdodAoJICBwbGFjZXMuCgkgIFBlcmZvcm0gdGhlIGF0dWFsIHN0ZXBwaW5nIG9wZXJhdGlvbiB3aGVyZSB3ZSBoYXZlIGZ1bGwgY29udGV4dCBhYm91dCB0aGUKCSAgdGltZXN0YW1wcy4KCjIwMDktMDUtMTEgMTg6NTY6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBBZGQgZnJhbWUgc3RlcHBpbmcgaW4gUEFVU0VEIGV4YW1wbGUKCjIwMDktMDUtMTEgMTg6NTY6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXJzdCBzdGFiIGF0IGZyYW1lIHN0ZXBwaW5nIGluIFBBVVNFRAoJICBVbmxvY2sgdGhlIHByZXJvbGxlZCBmcmFtZSBhbmQgcmVjaGVjayBpZiB3ZSBuZWVkIHRvIHN0ZXAuCgkgIEtlZXAgYSBzaW1wbGUgY291bnRlciBmb3IgdGhlIGZyYW1lcyB3ZSdyZSBhYm91dCB0byBza2lwIHdoaWxlIHN0ZXBwaW5nIGFuZAoJICBwcmVyb2xsL3Bvc3Qgc3RlcF9kb25lIHdoZW4gc3RlcHBpbmcgZmluaXNoZWQuCgoyMDA5LTA2LTAxIDEyOjE5OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbmV3IEFQSSBmb3IgZnJhbWVzdGVwcGluZwoJICBBZGQgbmV3IFNURVAgZXZlbnQgYW5kIG1ldGhvZHMgZm9yIGNyZWF0aW5nL3BhcnNpbmcgdGhlIGV2ZW50CgkgIFVwZGF0ZSBkZXNpZ24gZG9jcy4KCSAgQWRkIG5ldyBTVEVQX0RPTkUgbWVzc2FnZSBhbmQgbWV0aG9kIHRvIGNyZWF0ZS9wYXJzZS4KCSAgQVBJOiBHc3RFdmVudDo6Z3N0X2V2ZW50X25ld19zdGVwKCkKCSAgQVBJOiBHc3RFdmVudDo6Z3N0X2V2ZW50X3BhcnNlX3N0ZXAoKQoJICBBUEk6IEdzdE1lc3NhZ2U6OmdzdF9tZXNzYWdlX25ld19zdGVwX2RvbmUoKQoJICBBUEk6IEdzdE1lc3NhZ2U6OmdzdF9tZXNzYWdlX3BhcnNlX3N0ZXBfZG9uZSgpCgoyMDA5LTA2LTAxIDEwOjA1OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlczogZG9uJ3QgbGVhayBpbnZhbGlkIG9yIGVtcHR5IHN0cmluZ3Mgd2hlbiB3ZSB3YXJuCgkgIEZpeGVzIG1pbm9yIG1lbW9yeSBsZWFrIGluIHVuaXQgdGVzdHMgY2F1c2VkIGJ5IHRoZSByZWNlbnQgY2hhbmdlcy4KCSAgU2luY2Ugd2UncmUgZXhwZWN0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgdGhlIEdWYWx1ZSBpbiB0aGUgc3RydWN0dXJlCgkgIGZpZWxkIHN0cnVjdCBoZXJlLCB3ZSBuZWVkIHRvIHVuc2V0IGl0IGlmIHdlIGRvbid0IHVzZSBpdC4KCjIwMDktMDYtMDEgMTE6MDg6MzEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgdGVzdCBmb3IgY3ViaWMgaW50LiBhbmQgdG9vIGZldyBjb250cm9sIHBvaW50cwoJICBBZGRlZCBhbm90aGVyIHRlc3RzIHRvIGNoZWNrIHNvbWUgd29ycmllcyBpbiBCdWcgIzU4MjU2NC4KCjIwMDktMDUtMjggMTI6MzE6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBhZGQgYSBGSVhNRSBjb21tZW50IGZvciBibG9ja3NpemUgdnMuIHNpemUtbWF4IHByb3BlcnR5IGlzc3VlCgoyMDA5LTA1LTMxIDIxOjI3OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogaGFjayBhcm91bmQgZ19vYmplY3Rfbm90aWZ5KCkgYnVnIGJ5IHByb3RlY3RpbmcgaXQgd2l0aCBhIGxvY2sKCSAgT3V0LW9mLWJhbmQgZXZlbnRzIG1pZ2h0IGxlYWQgdG8gdXMgY2FsbGluZyBnX29iamVjdF9ub3RpZnkoKSBmcm9tIGEKCSAgbm9uLXN0cmVhbWluZyB0aHJlYWQsIHdoaWNoIGNhbiBjYXVzZSBjcmFzaGVzIGlmIGdfb2JqZWN0X25vdGlmeSgpIGlzCgkgIGJlaW5nIGNhbGxlZCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGF0IHRoZSBzYW1lIHRpbWUuIFNlZSAjNTU0NDYwLgoKMjAwOS0wNS0zMSAyMjozNzo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSByZWFsIHdvcmxkIG51bWJlciBpbiBiZW5jaG1hcmsKCjIwMDktMDUtMzEgMjI6Mzc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGNvbW1lbnQgZm9ybWF0dGluZwoKMjAwOS0wNS0zMCAyMDozNjoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBoYWNrIGFyb3VuZCBjcmFzaGVyIGJ1ZyBpbiBnX29iamVjdF9ub3RpZnkoKSBmb3Igb3V0LW9mLWJhbmQgZXZlbnRzCgkgIEdPYmplY3QgbWF5IGNyYXNoIGlmIHR3byB0aHJlYWRzIGRvIGNvbmN1cnJlbnQgZ19vYmplY3Rfbm90aWZ5KCkgb24gdGhlIHNhbWUKCSAgb2JqZWN0LiBUaGlzIG1heSBoYXBwZW4gaWYgZmFrZXNpbmsgcmVjZWl2ZXMgYW4gb3V0LW9mLWJhbmQgZXZlbnQgc3VjaCBhcwoJICBGTFVTSF9TVEFSVCB3aGlsZSBwcm9jZXNzaW5nIGEgYnVmZmVyIG9yIHNlcmlhbGlzZWQgZXZlbnQgaW4gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuIFNpbmNlIHRoaXMgbWF5IGhhcHBlbiB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzIGR1cmluZyBhIGNvbW1vbgoJICBvcGVyYXRpb24gbGlrZSBhIHNlZWssIGFuZCB0aGVyZSBzZWVtcyB0byBiZSBsaXR0bGUgY2hhbmNlIG9mIGEgdGltZWx5IGZpeAoJICBpbiBHT2JqZWN0IChzZWUgIzE2NjAyMCksIHdlIHNob3VsZCBoYWNrIGFyb3VuZCB0aGlzIGlzc3VlIGJ5IHByb3RlY3RpbmcgYWxsCgkgIG9mIGZha2VzaW5rJ3MgZGlyZWN0IGdfb2JqZWN0X25vdGlmeSgpIGNhbGxzIHdpdGggYSBsb2NrLgoJICBBbHNvIGFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCSAgRml4ZXMgIzU1NDQ2MC4KCjIwMDktMDUtMzEgMTY6MTc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdHM6IG1ha2UgX2dldF97c3RyaW5nfHBvaW50ZXJ9IHJldHVybiBGQUxTRSBmb3IgTlVMTCB2YWx1ZXMKCSAgTWFrZSBnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZygpIHJldHVybiBGQUxTRSBmb3IgTlVMTCBzdHJpbmdzIGFuZAoJICBlbXB0eSBzdHJpbmdzLCBhbmQgZ3N0X3RhZ19saXN0X2dldF9wb2ludGVyKCkgcmV0dXJuIEZBTFNFIGZvcgoJICBOVUxMIHBvaW50ZXJzLCBsaWtlIHdlIGRvIHdpdGggZGF0ZXMgYW5kIGJ1ZmZlcnMuCgkgIEZpeGVzICM1NjAzNDUuCgoyMDA5LTA1LTMwIDIwOjUwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ2xpc3RzOiB3YXJuIGlmIHNvbWVvbmUgdHJpZXMgdG8gYWRkIGVtcHR5IG9yIE5VTEwgc3RyaW5nIHRhZ3MgdG8gYSB0YWdsaXN0CgkgIEFsc28gd2FybiBpZiBhbiBlbGVtZW50IG9yIGFwcGxpY2F0aW9uIHRyaWVzIHRvIGFkZCBhIGZpZWxkIHdpdGggYW4KCSAgZW1wdHkgc3RyaW5nIHRvIGEgc3RydWN0dXJlIChOVUxMIHN0cmluZ3MgYXJlIHN0aWxsIG5lZWRlZCBhbmQKCSAgYWxsb3dlZCB0aG91Z2gpIGFuZCBkbyBhbGwgdGhvc2UgY2hlY2tzIGluIHRoZSByaWdodCBmdW5jdGlvbi4KCSAgRml4ZXMgIzU1OTY0My4KCjIwMDktMDUtMjkgMTg6MjI6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogYWRkIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgY29udmVuaWVuY2UgZnVuY3Rpb24KCSAgQWRkIGNvbnZlbmllbmNlIHdyYXBwZXIgZm9yIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgcGx1cwoJICBnc3Rfc3RydWN0dXJlX2lkX3NldCgpIGFuZCB1c2UgaXQgaW4gYSBmZXcgcGxhY2VzLgoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkKCjIwMDktMDUtMjkgMTg6MDA6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1pY3JvLW9wdGltaXNhdGlvbjogdXNlIEdTVF9RVUFSSyBpbiBtb3JlIHBsYWNlcwoJICBVc2UgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSBpbiBjb21iaW5hdGlvbiB3aXRoIEdTVF9RVUFSSwoJICByYXRoZXIgdGhhbiBnc3Rfc3RydWN0dXJlX2lkX25ldygpIHdoZW4gY3JlYXRpbmcgbWVzc2FnZSwgZXZlbnQsCgkgIHF1ZXJ5IGFuZCB0YWdsaXN0IHN0cnVjdHVyZXMuIE1vc3RseSBqdXN0IGJlY2F1c2Ugd2UgY2FuLgoKMjAwOS0wNS0yOSAxNjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlc2V0IHN0YXJ0X3RpbWUgaW4gbG9zdCBzdGF0ZQoKMjAwOS0wNS0yOSAxMzowMzoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBkb2NzOiB1cGRhdGUgZWxlbWVudCBhbiBwaXBlbGluZSBkb2NzCgoyMDA5LTA1LTI5IDEyOjQ4OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgZG9jczogcmVtb3ZlIGEgVE9ETyBpdGVtIHRoYXQgaXMgZml4ZWQgbm93CgoyMDA5LTA1LTI5IDEyOjIxOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGRlcHJlY2F0ZSBvbGQgbWV0aG9kcywgZml4IHRlc3QKCSAgRGVwcmVjYXRlIHRoZSBvbGQgX3NldF9zdHJlYW1fdGltZSBhbmQgX2dldF9sYXN0X3N0cmVhbV90aW1lIG1ldGhvZHMgYmVjYXVzZQoJICB0aGV5IGFyZSBub3cgZXF1aXZhbGVudCB0byB0aGUgYmV0dGVyIG5hbWVkIF9zZXQvX2dldF9zdGFydF90aW1lLgoKMjAwOS0wNS0yOCAxNjozMDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgcGlwZWxpbmU6IHVzZSBTVEFSVF9USU1FIHRvIGtlZXAgdHJhY2sgb2YgdGltZQoJICBVc2UgdGhlIGVsZW1lbnQgU1RBUlRfVElNRSB0byBrZWVwIHRyYWNrIG9mIHRoZSBydW5uaW5nIHRpbWUgd2hlbiB0aGUgcGlwZWxpbmUKCSAgcGF1c2VkIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgYmFzZV90aW1lLgoJICBUYWtlIHRoZSBzdGFydF90aW1lIGJlZm9yZSBzZXR0aW5nIHRoZSBjaGlsZHJlbiB0byBQQVVTRUQgc28gdGhhdCB3ZSBjYW4KCSAgZGlzdHJpYnV0ZSB0aGUgc3RhcnRfdGltZSB0byB0aGUgY2hpbGRyZW4uCgoyMDA5LTA1LTI4IDE1OjQwOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHNldCB0aGUgYmFzZV90aW1lIGFuZCBzdGFydF90aW1lIGJldHRlcgoJICBTaW1wbHkgc2V0IHRoZSBzdGFydF90aW1lIGFuZCBiYXNlX3RpbWUgb24gdGhlIGVsZW1lbnQgaW5zdGVhZCBvZiBjYWxsaW5nIHRoZQoJICBzZXR0ZXJzLgoKMjAwOS0wNS0yNyAxMTozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBtYWtlIHRoZSBiaW4gc2V0IHRoZSBzdGFydF90aW1lIG9uIGVsZW1lbnRzCgkgIFNldCB0aGUgc3RhcnRfdGltZSBvZiB0aGUgYmluIG9uIHRoZSBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIHRoZQoJICBwaXBlbGluZSBhbmQgd2hlbiBhIHN0YXRlIGNoYW5nZSBoYXBwZW5zLgoKMjAwOS0wNS0yNiAxMTo1MzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgc3RhcnRfdGltZSBmaWVsZCBhbiBtZXRob2RzCgkgIEFkZCBhIHN0YXJ0X3RpbWUgZmllbGQgYW5kIHNvbWUgbWV0aG9kcy4gVGhlIHN0YXJ0X3RpbWUgd2lsbCBjb250YWluIHRoZQoJICBydW5uaW5nX3RpbWUgb2Ygd2hlbiB0aGUgZWxlbWVudCBsYXN0IHdlbnQgdG8gcGF1c2VkLiBUaGlzIHRpbWUgY2FuIGJlIHVzZXIgdG8KCSAgcmVwb3J0IHRoZSBwb3NpdGlvbiBpbiBQQVVTRUQgYnV0IGFsc28gdG8gZG8gbW9yZSBjb3JyZWN0IGNsaXBwaW5nIGFuZAoJICBzdGVwcGluZyBsYXRlci4KCjIwMDktMDUtMjggMjI6MDI6MjEgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IF9tYXNrZWRfc2Nhbl91aW50MzIoKSBhdCBib3VuZGFyaWVzCgkgIGdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMiBjb3VsZCByZXR1cm4gdmFsdWVzIHNtYWxsZXIgdGhhbiBvZmZzZXQKCSAgaWYgdGhlIGZpcnN0IGJ5dGUocykgb2YgdGhlIG1hc2sgYXJlIDAgYW5kIHRoZSBwYXR0ZXJuIG1hdGNoZXMgdGhlCgkgIGJlZ2lubmluZyBvZiB0aGUgYWRhcHRlci4KCSAgQWRkZWQgZXhhbXBsZXMgdG8gZG9jdW1lbnRhdGlvbiBvZiBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKS4KCSAgQWxzbyBhZGRlZCBzb21lIG1vcmUgbWFza2VkIGJvdW5kYXJ5IHRlc3RzLgoJICBGaXhlcyAjNTg0MTE4CgoyMDA5LTA1LTI4IDE2OjM2OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHBhZCBwcml2YXRlIHN0cnVjdHVyZQoJICBBZGQgcGFkIHByaXZhdGUgc3RydWN0dXJlIGFuZCBtb3ZlIHRoZSBuZXcgY2hhaW5saXN0ZnVuYyBpbnRvIHRoZSBwcml2YXRlCgkgIHN0cnVjdC4gVGhpcyBhdm9pZHMgQUJJIGJyZWFrYWdlIGFuZCBhbGxvd3MgdXMgdG8gZXhwYW5kIGluIHRoZSBmdXR1cmUuCgoyMDA5LTA1LTI3IDE2OjM0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG1pc3Npbmcgc3ltYm9sIHRvIHRoZSB3aW4zMiBleHBvcnRzCgkgIFRoaXMgd2FzIGFjY2lkZW50aWFsbHkgcmVtb3ZlZCBieSBteSBsYXN0IGNvbW1pdC4KCjIwMDktMDUtMjcgMTY6MTc6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYXZvaWQgbWVtb3J5IGxlYWtzCgkgIEF2b2lkIGxlYWtpbmcgdGhlIGNhcHMgb2YgdGhlIGRlc3QgYnVmZmVyIGFuZCBhdm9pZCBkb2luZyBuZWVkbGVzcyBjYXBzCgkgIHJlZnMuCgkgIFdoZW4gdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGJ1ZmZlcnMgYXJlIHRoZSBzYW1lLCByZXR1cm4gaW1tZWRpYXRseS4KCjIwMDktMDUtMjcgMTQ6MzI6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFQSTogQWRkIGdzdF9tZXNzYWdlX3tuZXcscGFyc2V9X3RhZ19mdWxsKCkgdG8gZ2V0L3NldCB0aGUgc291cmNlIHBhZAoJICBGaXhlcyBidWcgIzU4MjU4OC4KCjIwMDktMDUtMjcgMTQ6MDY6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIFJldmVydCAiZWxlbWVudDogU2V0IHRoZSBvcmlnaW5hdGluZyBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkICgpIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGJlYmZkZTc1MDI3ZTk3NWI3ZTdjNzRjNjM1OGM1YmU4M2VhNGFjOWYuCgkgIFRoaXMgY2hhbmdlIHNob3VsZG4ndCBiZSBkb25lIGluIGEgc3RhYmxlIHJlbGVhc2Ugc2VyaWVzIGFzCgkgIGFwcGxpY2F0aW9ucyBhcmUgYWN0dWFsbHkgZXhwZWN0aW5nIHRoZSBzZW5kZXIgdG8gYmUgYW4KCSAgR3N0RWxlbWVudC4gT25lIGV4YW1wbGUgaXMgdG90ZW0uCgoyMDA5LTA1LTI2IDExOjM1OjQ5ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wNS0yNiAxMDo0MToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgRml4ICdtYWtlIGRpc3RjaGVjaycKCSAgVGhlIGNoZWNrLWVudW0tZ2V0dHlwZXMgcnVsZSBkaWRuJ3Qgd29yayBmb3IgJ21ha2UgZGlzdGNoZWNrJyBzaW5jZQoJICBpdCBtYWtlcyBhc3N1bXB0aW9ucyBhYm91dCB0aGUgbG9jYXRpb24gb2YgdGhlIHNvdXJjZSBmaWxlcyBmcm9tIHRoZQoJICBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoaWNoIGlzbid0IHRydWUgZHVyaW5nIGRpc3RjaGVja2luZy4KCjIwMDktMDUtMjYgMTA6Mzg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWxzLm1hazoKCSAgbWFudWFscy5tYWs6IGF0dGVtcHQgdG8gbWFrZSAnbWFrZSBkaXN0Y2hlY2snIHdvcmsgd2l0aCAtak4KCSAgQXR0ZW1wdCB0byBmaXggdGhlICdjYW5ub3QgY3JlYXRlIHJlZ3VsYXIgZmlsZSBidWlsZC9pbWFnZS5lbnRpdGl0ZXM6CgkgIGZpbGUgZXhpc3RzJyBlcnJvciBJIGdvdC4KCjIwMDktMDUtMjUgMjM6NTg6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmaXggY2RwYXJhbm9pYSBleGFtcGxlIHBpcGVsaW5lIGluIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMDktMDUtMjUgMTg6NDQ6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggdHlwbyBpbiBjb21tZW50cwoKMjAwOS0wNS0yNSAxNzo0MzozMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgZGlzdDogRml4IHRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgdG8gZGlzdDogdGVzdHJ0cG9vbC5oLCBub3QgcnRwb29sLXRlc3QuaAoKMjAwOS0wNS0yNSAxNzowMzowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uCgoyMDA5LTA1LTI1IDE2OjU0OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgYXNzZXJ0aW9uCgkgIFJlbW92ZSBhbiBhc3NlcnRpb24sIHRoaXMgaXMgbm90IHJlYWxseSBhbiBlcnJvciBpbiBhbGwgY2FzZXMuCgkgIEZpeGVzICM1ODIwMTAKCjIwMDktMDUtMjUgMTY6MjE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGVuYWJsZSBtb25vdG9uaWMgY2xvY2sgd2hlbiB3ZSBjYW4KCSAgRW5hYmxlIHRoZSBtb25vdG9uaWMgY2xvY2sgYnkgZGVmYXVsdCB3aGVuIHdlIGNhbi4KCSAgRml4ZXMgIzU4MzU1NAoKMjAwOS0wNS0yNSAxNDo1MjoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgZG9jczogYWRkIEltYWdlIHRvIGRyYWZ0IGtsYXNzIGRvY3VtZW50YXRpb24KCjIwMDktMDUtMjUgMTM6MDM6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDoga2VlcCB0YXNrIHJlZiBiZWZvcmUgcmVsZWFzaW5nIHRoZSBsb2NrCgkgIEtlZXAgYSByZWYgdG8gdGhlIHRhc2sgb24gdGhlIHBhZCBzbyB0aGF0IGEgY29uY3VycmVudCBzdG9wIGNhbiBzdG9wIGFuZCBqb2luCgkgIHRoZSB0YXNrLgoKMjAwOS0wNS0yNSAxMTo1Njo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdHRhc2s6IGF2b2lkIGpvaW4gdG8gcmV0dXJuIGVhcmx5CgkgIFVuc2V0IHRoZSBydW5uaW5nIGZsYWcgYWZ0ZXIgd2UgcmVsZWFzZWQgdGhlIGxvY2sgZm9yIHBvc3RpbmcgdGhlIHN0cmVhbS1zdGF0dXMKCSAgbWVzc2FnZS4gSWYgd2Ugc2V0IHRoZSBydW5uaW5nIGZsYWcgdG8gRkFMU0UgdG9vIGVhcmx5LCB0aGUgam9pbiBtZXRob2Qgd2lsbAoJICBqdXN0IGNvbnRpbnVlIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIG1lc3NhZ2UgdG8gYmUgcG9zdGVkLCBsZWFkaW5nIHRvIHBvdGVudGlhbAoJICBjcmFzaGVzLgoKMjAwOS0wNS0yNCAyMzoxNDoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBwcmVzZXQ6IGZpeCB1cGRhdGUgcnVsZQoJICBPbmx5IHVwZGF0ZSB0aGUgcHJlc2V0IGZyb20gc3lzdGVtLCBpZiB3ZSBoYWQgYSBwcmVzZXQgYmVmb3JlIGFuZCBzeXN0ZW0KCSAgdmVyc2lvbiBpcyBuZXdlci4KCjIwMDktMDUtMjIgMjM6NDc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBhIGJlbmNobWFyayB0byB2ZXJpZnkgdGhlIHN3aXRjaCB0byBnc2VxdWVuY2UKCjIwMDktMDUtMjIgMjM6NTA6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBhZGQgbW9yZSBlcnJvciBoYW5kbGluZyB0byBleGFtcGxlCgoyMDA5LTA1LTIyIDIzOjE0OjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IGZyZWUgbm9kZS1kYXRlIGFuZCBkZXJlZiBhZ2Fpbi4gRml4ZXMgIzU4MDU3OQoJICBXaGVuIHdyaXRpbmcgYSBjYWNoZSBjaHVuayBmYWlscywgd2Ugd2VyZSBmcmVlaW5nIHRoZSBub2RlIGFuZCBqdW1wIHRvIGEgZmluYWwKCSAgY2xlYW51cCB3aGljaCBkZXJlZmVyZW5jZWQgYSBudWxsIHBvaW50ZXIuIExldmUgZnJlZWluZyB0aGUgbm9kZSB0byB0aGUgY2xlYW51cAoJICBjb2RlIGluIGZhaWxfZnJlZV9saXN0LiAoc29ycnkgZm9yIGNvbW1pdHRpbmcgd3JvbmcgZml4IGJlZm9yZSkuCgoyMDA5LTA1LTIyIDIzOjEwOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IGZyZWUgbm9kZS1kYXRlIGFuZCBkZXJlZiBhZ2Fpbi4gRml4ZXMgIzU4MDU3OQoJICBXaGVuIHdyaXRpbmcgYSBjYWNoZSBjaHVuayBmYWlscywgd2Ugd2VyZSBmcmVlaW5nIHRoZSBub2RlIGFuZCBqdW1wIHRvIGEgZmluYWwKCSAgY2xlYW51cCB3aGljaCBkZXJlZmVyZW5jZWQgYSBudWxsIHBvaW50ZXIuIExldmUgZnJlZWluZyB0aGUgbm9kZSB0byB0aGUgY2xlYW51cAoJICBjb2RlIGluIGZhaWxfZnJlZV9saXN0LgoKMjAwOS0wNS0yMiAxNDoxNzo1NiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIEdfTElLRUxZIGFuZCBqb2luIHR3byBpZiBmb3Igc2FtZSBjb25kaXRpb24KCSAgQSBHX0xJS0VMWSBmb3IgdGhlIHNlcXVlbmNlIT1OVUxMIGNoZWNrcy4gSm9pbiB0d28gaWZzIHRvIGFuIGlmLWVsc2UuIEFkZAoJICBpbmRlbnQgZ3VpZGVzIHRvIGtlZXAgaW5kZW50IGZvcm0gYnJlYWtpbmcgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgoyMDA5LTA1LTIyIDEyOjU3OjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBnc3R0eXBlZmluZGhlbHBlcjogRml4IGluZGVudGF0aW9uCgoyMDA5LTA1LTIyIDEyOjI0OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZG9jczogZml4IGd0ay1kb2Mgd2FybmluZ3MKCSAgTW92ZSBNVCBzYWZldHkgdG8gbWFpbiBkZXNjcmlwdGlvbiAoaXQgZG9lcyBub3QgYmVsb25nIHRvIFJldHVybjogb3IgU2luY2U6CgkgIHN0YXRlbWVudCkuIEFkZCBhIGZldyBtaXNzaW5nIHJldHVybiBkb2NzLiBEb3duZ3JhZGUgYSBub3JtYWwgY29tbWVudCBmcm9tYSBkb2MKCSAgY29tbWVudC4gRml4IGEgZG9jIGhlYWRlciB0byBvbmx5IGNvbnRhaW4gc3ltYm9sIG5hbWUuCgoyMDA5LTA1LTIyIDEwOjE5OjM2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzYThmYWIgdG8gODg4ZTBhMgoKMjAwOS0wNS0yMiAwOTo1MTo0NCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSAgZGlzdDogQWRkIHJ0cG9vbC10ZXN0LmggdG8gdGhlIHNvdXJjZXMgbGlzdCBzbyBpdCBnZXRzIGRpc3RlZC4KCSAgRml4ZXMgdGhlIGRpc3RjaGVjawoKMjAwOS0wNS0yMiAwOTo0NDoyNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmVzOiBJZ25vcmUgdGhlIGNsb2Nrc3RyZXNzIGJlbmNobWFyayBiaW5hcnkKCjIwMDktMDUtMjIgMDk6NDE6MzYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBjb250cm9sbGVyOiBTaWxlbmNlIGEgd2FybmluZyBmcm9tIHRoZSBHU2VxdWVuY2UgYmVpbmcgTlVMTC4KCSAgRml4IGEgd2FybmluZyB0aGF0IG9jY3VycyB3aGVuIHRoZSBzZWxmLT5wcml2LT52YWx1ZXMgaXMgTlVMTCBhbmQKCSAgdGhlIGNvZGUgdHJpZXMgdG8gcmV0cmlldmUgYW4gaXRlcmF0b3IgZnJvbSBpdC4gVGhlIHdhcm5pbmcgd2FzIHNob3dpbmcKCSAgdXAgaW4gdGhlIGNoZWNrcyBmb3IgdGhlIHZvbHVtZSBlbGVtZW50LgoKMjAwOS0wNS0yMiAwOTozMzowMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZG9jczogRml4IHVwIHNvbWUgZG9jdW1lbnRhdGlvbiB3YXJuaW5ncy4KCSAgU2luY2U6IHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSB0aGUgbGFzdCB0aGluZyBpbiBhIGRvYyBibG9jaywgYXBwYXJlbnRseS4KCSAgQWRkIHNvbWUgUmV0dXJuczogZGVzY3JpcHRpb25zIHRvIHNvbWUgcmVjZW50IGZ1bmN0aW9ucy4KCjIwMDktMDUtMjEgMTc6MzI6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcyBmb3Igc3RyZWFtX3RpbWUtPnJ1bm5pbmdfdGltZQoJICBDaGFuZ2Ugc29tZSBpbnN0YW5jZXMgd2hlcmUgd2Ugd3JvbmdseSByZWZlciB0byBzdHJlYW0gdGltZSB3aGVyZSBpdCBzaG91bGQgaGF2ZQoJICBiZWVuIHJ1bm5pbmcgdGltZS4KCjIwMDktMDUtMjEgMTA6NTc6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCB1c2UgR19HVUlOVDMyX0ZPUk1BVCBpbiB0cmFuc2xhdGFibGUgc3RyaW5nCgkgIHhnZXR0ZXh0IGRvZXNuJ3QgaGFuZGxlIHRoaXMgdmVyeSB3ZWxsLiBGaXhlcyAjNTgzNDE5LgoKMjAwOS0wNS0yMCAxNzowNzozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoOiBjYW4gcmVtb3ZlIHRoZSAtV25vLXBvcnRhYmlsaXR5IGZyb20gaGVyZSBub3cKCSAgc2luY2Ugd2UgYWRkZWQgaXQgdG8gY29uZmlndXJlLmFjLgoKMjAwOS0wNS0yMCAyMjoxODoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBpbXByb3ZlIHRoZSBmbHVzaCBmdW5jdGlvbgoJICBSZW1vdmUgYSBjb21wYXJlIGFuZCBicmFuY2ggZnJvbSBmbHVzaC4KCjIwMDktMDUtMjAgMTc6MjQ6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogZml4IGFzc2VydGlvbiB3aGVuIGZyZWVpbmcgdGhlIGNvbnRyb2wgc291cmNlCgoyMDA5LTA1LTIwIDEyOjQ4OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHBvdGVudGlhbGx5IHNhdmUgYSBtZW1jcHkgaW4gX3Rha2UKCSAgRGlyZWN0bHkgdXNlIHRoZSBhc3NlbWJsZWRfZGF0YSBpbiBfdGFrZSgpIGZ1bmN0aW9ucyB3aGVuIHdlIGNhbiBpbnN0ZWFkIG9mCgkgIGNvcHlpbmcgaXQgb3V0LgoKMjAwOS0wNS0yMCAxMTozNjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBtaWNybyBvcHRpbWlzYXRpb25zCgoyMDA5LTA1LTIwIDExOjEyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIGNvbXBhcmlzaW9ucyBpbiBmYXN0IHBhdGgKCSAgU21hbGwgdHdlYWtzIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHVzZWxlc3MgY29tcGFyZXMgaW4gbG9vcHMuCgoyMDA5LTA1LTIwIDEwOjI4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBvbmUgbW9yZSBhZGFwdGVyIHRlc3QKCjIwMDktMDUtMjAgMTA6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgYnJhbmNoIGluIGNvcHkgY29kZQoKMjAwOS0wNS0yMCAxMDo1NjoxMSArMDMwMCAgSGFubmVzIEJpc3RyeSA8YmlzdHJ5QGluZm9ybWF0aWsudW5pLWhhbWJ1cmcuZGU+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgbG9hZHNhdmU6IGZpeCByZXF1ZXN0cGFkIGhhbmRsaW5nIGFuZCBzZXJpYWxpc2F0aW9uIG9yZGVyLgoJICBTdXBwb3J0IHJlcXVlc3QgcGFkcyB3aGVuIGxvYWRpbmcuIFJldmVyc2UgcGFkIHNlcmlhbGlzYXRpb24gb3JkZXIgdG8KCSAgcHJlc2VydmUgaXQgd2hlbiByZWNyZWF0aW5nIHRoZSBwaXBlbGluZS4KCjIwMDktMDUtMjAgMDA6NDU6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sCgoyMDA5LTA1LTIwIDAwOjQ0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBzeW1ib2wgdG8gZG9jcwoKMjAwOS0wNS0yMCAwMDozNzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBfbWFza2VkX3NjYW5fdWludDMyCgkgIEFkZCBhIHJlYXNvbmFibHkgb3B0aW1pemVkIG5ldyBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKSBmdW5jdGlvbgoJICB0byBzY2FuIHRoZSBhZGFwdGVyIGZvciBhIHBhdHRlcm4gYWZ0ZXIgYXBwbHlpbmcgYSBtYXNrLgoJICBBZGQgc29tZSB1bml0IHRlc3RzLgoJICBBUEk6IEdzdEFkYXB0ZXI6OmdzdF9hZGFwdGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgkgIEZpeGVzICM1ODMxODcKCjIwMDktMDUtMTkgMjI6MTM6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbW9yZSBvcHRpbWlzYXRpb25zCgkgIFJlbW92ZSBkdXBsaWNhdGUgY29weSBjb2RlIChfcGVla19pbnRvIGFuZCBfY29weSkgYW5kIG1ha2UgYSB1bmlmaWVkCgkgIG9wdGltaXplZCBjb3B5IGZ1bmN0aW9uLgoKMjAwOS0wNS0xOSAxNzoxMjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcGFzcyAtV25vLXBvcnRhYmlsaXR5IHRvIGF1dG9tYWtlIHRvIHN1cHByZXNzIHdhcm5pbmdzCgkgIEdOVSBtYWtlIGlzIHJlcXVpcmVkLCBubyBwb2ludCBwcmV0ZW5kaW5nIG90aGVyd2lzZS4KCjIwMDktMDUtMTggMDE6MDA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJICBkb2NzOiBtZW50aW9uIHRoYXQgR1NUX0ZPUk1BVF97UEVSQ0VOVHxCVUZGRVJTfSBhcmUgbm90IGltcGxlbWVudGVkCgoyMDA5LTA1LTE3IDEwOjQ2OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgZ3N0Y2xvY2s6IEZpeCBBQkkgYnJlYWthZ2Ugb24gMzIgYml0IGFyY2hpdGVjdHVyZXMKCSAgVGhlIHBhZGRpbmcgb2YgR3N0Q2xvY2sgaXMgYSBHc3RDbG9ja1RpbWUgYW5kIG5vdCBhCgkgIGdwb2ludGVyLCBzbyBhZGRpbmcgYSBwb2ludGVyIHJlcXVpcmVzIHRoZSBwYWRkaW5nCgkgIHNpemUgdG8gYmUgY2hhbmdlZCBkZXBlbmRpbmcgb24gdGhlIHBvaW50ZXIgc2l6ZS4KCSAgVXNlIGFuIHVuaW9uIGluc3RlYWQuCgkgIEZpeGVzIGJ1ZyAjNTgyODc4LgoKMjAwOS0wNS0xNSAxNToyNDo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgW2dzdHZhbHVlXSBhZGRzIHNhZmV0eSBwYXJlbnRoZXNpcyB0byBtYWNyb3MgbWlzc2luZyB0aGVtLgoKMjAwOS0wNS0xNSAxNDo0Mjo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgW2dzdHV0aWxzXSBBZGRzIG1vcmUgc2FmZXR5IHRvIEdTVF9XUklURV8qIGFuZCBHU1RfUkVBRF8gbWFjcm9zLgoJICBBZGRzIHNhZmV0eSAoICkgdG8gcGFyYW1ldGVycyBpbiBfR1NUX1BVVCBhbmQgX0dTVF9HRVQgbWFjcm9zLgoJICBGaXhlcyAjNTgyNzA4LgoKMjAwOS0wMy0xOSAxMTozNzoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IHVzZSBzZXFsb2NrcyB0byBwYXJhbGxlbGxpemUgcmVhZGVycwoKMjAwOS0wNC0xNiAxNTo1MzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgc3RyZXNzOiBhZGQgYSBjbG9jayBzdHJlc3N0ZXN0CgkgIEFkZCBhIHN0cmVzc3Rlc3QgZm9yIGdzdF9jbG9ja19nZXRfdGltZSgpLgoKMjAwOS0wNS0xNSAxMTowMDo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIE1ha2VmaWxlLmFtOiB1cGRhdGUgZm9yIGFkZGVkL21vdmVkL3JlbW92ZWQgZmlsZXMgdGhhdCB3ZXJlbid0IGRpc3QtZWQuCgoyMDA5LTA1LTEyIDExOjI5OjIxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBSZWxlYXNlIHNjcmlwdCBtb2RpZmljYXRpb25zCgoyMDA5LTA1LTE0IDIyOjExOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgIGNvbnRyb2xsZXI6IFVzZSBvcmRlcmVkIEdTZXF1ZW5jZSBpbnN0ZWFkIG9mIEdMaXN0CgkgIFRoaXMgbWFrZXMgbG9va3VwcyBhbmQgaW5zZXJ0aW9ucyBPKGxvZyBuKSBpbnN0ZWFkIG9mCgkgIGFsd2F5cyBPKG4pIGZvciBpbnNlcnRpb25zIGFuZCBPKG4pIGluIHdvcnN0IGNhc2UgZm9yCgkgIGxvb2t1cHMuCgkgIEZpeGVzIGJ1ZyAjNTgyNTY0LgoKMjAwOS0wNS0xNCAxMjozMDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZG9jczogcmVuYW1lIGFuZCBkZWxldGUgc29tZSBkZXNpZ24gZG9jcwoKMjAwOS0wNS0xNCAxMjozMDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFByaW50IHRoZSBwYXRoIHN0cmluZyBmb3IgbWVzc2FnZSBzb3VyY2VzCgkgIFRoaXMgcmVkdWNlcyBjb25mdXNpb24gaWYgdGhlIG1lc3NhZ2Ugc291cmNlIGlzIGEgcGFkCgkgIGFuZCBvbmx5ICJzcmMiIGlzIHByaW50ZWQgYXMgc291cmNlLgoKMjAwOS0wNS0xNCAxMjoyNToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogU2V0IHRoZSBvcmlnaW5hdGluZyBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkICgpCgkgIEZpeGVzIGJ1ZyAjNTgyNTg4LgoKMjAwOS0wNS0xNCAxMTozNjoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCSAgQWRkIGEgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkgd2l0aCBhbiBleHRyYSBhcmd1bWVudCB0byBjb250cm9sCgkgIGRpc3RyaWJ1dGlvbiBvZiBhIG5ldyBiYXNlX3RpbWUuIFdlIHdpbGwgbmVlZCB0aGlzIGZvciBmbHVzaGluZyBzdGVwCgkgIG9wZXJhdGlvbnMuCgkgIEFQSTogR3N0RWxlbWVudDo6Z3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCjIwMDktMDUtMTMgMjM6NTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZG9uJ3QgdXNlIHJlYWxsb2MsIGl0IGRvZXMgYSBtZW1jcHkKCSAgRG9uJ3QgdXNlIHJlYWxsb2MgdG8gZ3JvdyB0aGUgc2NyYXRjaCBhcmVhIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0aGUgbWVtY3B5IHRoZQoJICBvbGQgdXNlbGVzcyBkYXRhIGludG8gdGhlIG5ldyBhcmVhIGJlZm9yZSB3ZSB3cml0ZSBvdXIgbmV3IHN0dWZmIGluIGl0LgoKMjAwOS0wNS0xMyAyMzozODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSB0cmlja21vZGUgZG9jdW1lbnQKCjIwMDktMDUtMTMgMjI6NTE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXNlIGdfcmVhbGxvYyBmb3IgcmVzaXppbmcgdGhlIGJ1ZmZlcgoJICBVc2UgZ19yZWFsbG9jIGZvciByZXNpemluZyB0aGUgaW50ZXJuYWwgYnVmZmVyIGluc3RlYWQgb2YgYQoJICBsZXNzIGZhbmN5IF9mcmVlL19tYWxsb2MgcGFpci4KCjIwMDktMDUtMTMgMjE6MzU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IG1vdmUgbmV3IG1lbWJlciB0byBwcml2YXRlIHN0cnVjdAoJICBNb3ZlIHRoZSBuZXcgbWVtYmVycyB0byBhIHByaXZhdGUgc3RydWN0IGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcGFkZGluZwoJICBhbnltb3JlIG9uIDMyLWJpdHMgcGxhdGZvcm1zLgoKMjAwOS0wNS0xMyAxODo1MDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1cGRhdGUgc29tZSBkb2NzCgoyMDA5LTA1LTEzIDE3OjA5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciB0ZXN0IGZvciBhZGFwdGVyIHRpbWVzdGFtcHMKCjIwMDktMDUtMTMgMTY6NDg6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBuZXcgdGltZXN0YW1wIHVuaXQgdGVzdAoKMjAwOS0wNS0xMyAxNjoyNjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wKCjIwMDktMDUtMTMgMTY6MDk6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGFkZCBtZXRob2QgdG8ga2VlcCB0cmFjayBvZiB0aW1lc3RhbXBzCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHRpbWVzdGFtcCBhbmQgb2Zmc2V0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBoZWFkIG9mIHRoZQoJICBhZGFwdGVyLgoJICBBUEk6IEdzdEFkYXB0ZXI6OmdzdF9hZGFwdGVyX3ByZXZfdGltZXN0YW1wKCkKCjIwMDktMDUtMTMgMTY6MjA6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA1LTEzIDExOjAzOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBzaG93IG1vcmUgcGFkLWRldGFpbHMKCSAgU2hvdyBwYWQgYWN0aXZhdGlvbiBtb2RlIGFuZCBwYWQtZmxhZ3MgaW5zaWRlIHRoZSBwYWQuIFdyaXRlIGRvd24gc29tZSBpZGVhcwoJICBhYm91dCBob3cgd2UgY291bGQgaW1wcm92ZSB0aGUgY2FwcyBsYXlvdXQuCgoyMDA5LTA1LTEzIDAwOjI5OjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBsYXlvdXQgaW1wcm92ZW1lbnQKCSAgZG90IGRvZXMgbm90IHRha2UgdGhlIGhlYWQvdGFpbCBsYWJlbHMgaW50byBhY2NvdW50LiBGb3IgdW5maXhlZCBjYXBzIHRoZXkgZ2V0CgkgIHF1aXRlIGxhcmdlLiBEb3VibGUgdGhlIHBhZGRpbmcgdG8gbWFrZSBpdCBzb3J0IG9mIHJlYWRhYmxlIGluIG1vcmUgY2FzZXMuIEFsc28KCSAgbWFrZSBub3JtYWwgZm9udCBiaWdnZXIgYW5kIGNhcHMtbGFiZWwgZm9udCBzbWFsbGVyIHRvIGluY3JlYXNlIG91ciBsdWNrLgoKMjAwOS0wNS0xMiAyMTowMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgY2hlY2tzOiBjaGVjayBmb3IgZW51bSB0eXBlcyBub3QgY2xhc3NfcmVmJ2VkIGluIGdzdF9pbml0KCkgaW4gJ21ha2UgY2hlY2snCgoyMDA5LTA1LTEyIDIwOjU4OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgSW5pdGlhbGlzZSBzb21lIG1vcmUgdHlwZXMgaW4gZ3N0X2luaXQoKSwgZXNwLiB0aGUgbmV3IGVudW0gdHlwZXMKCSAgUG9zc2libHkgZml4ZXMgR09iamVjdCBjbGFzcyBjcmVhdGlvbi91bnJlZiByYWNlIGNvbmRpdGlvbnMgd2hlbgoJICBjcmVhdGluZyB0aGUgbGFzdC1tZXNzYWdlIHN0cmluZyBpbiBmYWtlc2luayBmb3IgZXZlbnRzIHdpdGgKCSAgc3RydWN0dXJlcyB0aGF0IGhhdmUgZmllbGRzIHdpdGggdGhlc2UgZW51bSB0eXBlcy4KCjIwMDktMDUtMTIgMjA6NTY6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiByZW1vdmUgZHVwbGljYXRlIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBHc3RDbG9ja1R5cGUKCSAgUmVtb3ZlIHRoZSBzdGF0aWMgZ3N0X2Nsb2NrX3R5cGVfZ2V0X3R5cGUoKSBmdW5jdGlvbiBpbiB0aGUKCSAgc3lzdGVtY2xvY2sgY29kZSBpbiBmYXZvdXIgb2YgdGhlIHB1YmxpYyBvbmUgaW4gZ3N0ZW51bXR5cGVzLmMuCgoyMDA5LTA0LTIyIDEwOjUzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBkZXByZWNhdGVkIEFQSQoJICBfaW50ZXJuYWxfbGlua19mdW5jdGlvbigpIGlzIGRlcHJlY2F0ZWQgYW5kIF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKCkKCSAgaXMgYWxyZWFkeSBwcm92aWRlZC4KCjIwMDktMDQtMjEgMTE6MzM6NDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogYWxsb3cgc3BlY2lmeWluZyBHc3RFbGVtZW50IHByb3BlcnRpZXMgdmlhIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbgoJICBJZiBkZXNlcmlhbGl6aW5nIGEgcHJvcGVydHkgZmFpbHMsIGNoZWNrIGlmIHRoZSB2YWx1ZSB0eXBlIGlzIGEgc3RyaW5nIGFuZCBpZiBzbwoJICBhdHRlbXB0IHRvIGNyZWF0ZSBhIGJpbiBmcm9tIHRoZSBzdHJpbmcgdmFsdWUuIFRoaXMgYWxsb3dzIHRvIGUuZy4gc3BlY2lmeQoJICBhdWRpby1zaW5rL3ZpZGVvLXNpbmsgZm9yIHBsYXliaW4gb24gZ3N0LWxhdW5jaCBjb21tYW5kbGluZS4KCjIwMDktMDUtMTIgMTc6Mjk6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJICBkb2NzOiBhZGQgc29tZSBkb2NzIGFib3V0IGJ1ZmZlciBsaXN0cwoKMjAwOS0wNS0xMiAxNjoxODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IG1ha2Ugb2JqZWN0cyBvcGFxdWUKCjIwMDktMDUtMTIgMTU6MzM6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggYSBjb21tZW50CgoyMDA5LTA1LTEyIDEzOjEwOjU1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogaG9vayB1cCB0aGUgcGFkIGZ1bmN0aW9ucwoJICBSZXVzZSBidWZmZXIgY29kZSBmb3IgYnVmZmVybGlzdHMuIE5vdCBzdXJlIGlmIHRoaXMgbWVhc3VyYWJseSBpbXBhY3RzIHBlcmZvcm1hbmNlCgkgIGZvciB0aGUgc2ltcGxlIGJ1ZmZlciBjYXNlLCBpZiBpdCBkb2VzIGFmdGVyIGRvaW5nIHNvbWUgYmVuY2htYXJrcywgd2UgY2FuCgkgIGRlY291cGxlIGl0IGxhdGVyLgoJICBGaXhlcyAjNTcyMjg1CgoyMDA5LTA1LTEyIDEyOjA4OjU2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGRvY3MvYnVpbGQvZGVidWcvdW5pdHRlc3QKCSAgU2VlICM1NzIyODUKCjIwMDktMDUtMTIgMTE6NTE6MzcgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBidWZmZXJsaXN0IGNvZGUKCSAgQnVmZmVyIGxpc3RzIGFyZSBhIG1lYW5zIHRvIG1hbmFnZSBkaXNqb2ludCBidWZmZXJzIGFzIG9uZSBidWZmZXIuIEl0J3MgYWxzbwoJICBwb3NzaWJsZSB0byBwdXQgbWFueSBvZiB0aG9zZSBidWZmZXJzIGludG8gYSBsaXN0LgoJICBUaGUgaWRlYSBpcyB0aGF0IHdoZW4gc3VwcG9ydCBpcyBhZGRlZCB0byB2YXJpb3VzIGVsZW1lbnRzLCB3ZSB3aWxsIGJlIGFibGUgdG8KCSAgbW9yZSBlZmZpY2llbnRseSBzbGljZSBhbmQgZGljZSBidWZmZXJzLCByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgYW5kIGFsc28KCSAgcmVkdWNlIGRhdGEgcGFzc2luZyBvdmVyaGVhZC4KCSAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGtlcHQgc2ltcGxlIG9uIHB1cnBvc2UsIHJldXNpbmcgYWxsIG9mIHRoZSBtZW1vcnkKCSAgbWFuYWdlbWVudCBmZWF0dXJlcyB3ZSBoYXZlIGZvciBtaW5pb2JqZWN0cyBhbmQgYnVmZmVycy4KCSAgQWNjZXNzIHRvIHRoZSBidWZmZXJsaXN0IG9iamVjdCBpcyBkb25lIHdpdGggYW4gaXRlcmF0b3IsIHdoaWNoIGFsbG93cyBmb3IKCSAgZWZmaWNpZW50IGl0ZXJhdGlvbiBhbmQgbW9kaWZpY2F0aW9uIG9mIHRoZSBsaXN0LgoJICBTZWUgIzU3MjI4NQoKMjAwOS0wNS0xMSAwNzo0OTozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBjb3B5IG5ldyBidWZmZXIgZmxhZ3Mgd2hlbiBjb3B5aW5nIG1ldGFkYXRhLgoKMjAwOS0wNC0yNyAxMDoxMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgdGFraW5nIHRoZSBoZWFkYnVmZmVyCgkgIFdoZW4gYSBhcmUgcmVxdWVzdGVkIHRvIHRha2UgYSBidWZmZXIgZnJvbSB0aGUgYWRhcHRlciB0aGF0IGlzIGV4YWN0bHkgdGhlCgkgIGhlYWRidWZmZXIsIGRvbid0IG1ha2UgYSBzdWJidWZmZXIgb2YgaXQgYnV0IHJldHVybiB0aGF0IGhlYWQgYnVmZmVyLgoJICBBZGQgYSB1bml0LXRlc3QgZm9yIHRoaXMgbmV3IG9wdGltaXNhdGlvbi4KCjIwMDktMDUtMDUgMTc6NDE6MjQgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBsZWFrIHRoZSBmb3JjZS1jYXBzIHByb3BlcnR5CgkgIEZpeGVzICM1ODEzMjEKCjIwMDktMDQtMjggMTk6MjA6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcG9zdGluZyBvZiBhc3luYy1zdGFydCBtZXNzYWdlcwoJICBXaGVuIGFuIGVsZW1lbnQgbG9zdCBpdHMgc3RhdGUgYnV0IHdhcyBidXN5IGRvaW5nIGEgc3RhdGUgY2hhbmdlLCBzdGlsbCBwb3N0IHRoZQoJICBhc3luYy1zdGFydCBtZXNzYWdlIHdpdGggdGhlIGJhc2VfdGltZSByZXNldCBmbGFnIG9yIGVsc2Ugd2UgbWlnaHQgZW5kIHVwIHdpdGgKCSAgYW4gb2xkIGJhc2VfdGltZS4KCSAgdGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBzaW5rIGlzIGdvaW4gYXN5bmMgdG8gcGF1c2VkIGFuZCB0aGVuIGEgZmx1c2hpbmcgc2VlayBpcwoJICBwZXJmb3JtZWQuIFRoaXMgd291bGQgY2F1c2UgdGhlIGJhc2VfdGltZSB0byByZW1haW4gdW5tb2RpZmllZCBiZWNhdXNlIHRoZQoJICBhc3luYy1zdGFydCBtZXNzYWdlIHdhcyBub3Qgc2VudC4KCjIwMDktMDUtMTAgMTc6Mjg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSB3aW4zMiBleHBvcnRzCgoyMDA5LTA1LTEwIDExOjE3OjI3ICswMjAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBSdW4gbGlidG9vbGl6ZSBiZWZvcmUgYWNsb2NhbAoJICBUaGlzIHVuYnJlYWtzIHRoZSBidWlsZCBpbiBzb21lIGNhc2VzLiBGaXhlcyBidWcgIzU4MjAyMQoKMjAwOS0wNS0wNyAxNjozNzozNyArMDIwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBBUEk6IEFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciBiaW5kaW5ncyB0aGF0IG5lZWQgdG8gcHJvdmlkZQoJICBzb21lIGFkZGl0aW9uYWwgdXNlciBkYXRhIHRvIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb24uCgkgIEZpeGVzIGJ1ZyAjNTQ1Nzg3LgoKMjAwOS0wNS0wNyAxNjowMTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgb24gaW52YWxpZCBVUklzCgoyMDA5LTA1LTA3IDEwOjM2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDA5LTA1LTA3IDA5OjMxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICB0YWdzOiBBUEk6IEFkZCBmdW5jdGlvbnMgdG8gYWRkIHNpbmdsZSB0YWdzIHRvIEdzdFRhZ0xpc3Qgb3IgR3N0VGFnU2V0dGVyCgkgIFRoZSBuZXcgZnVuY3Rpb25zIGFyZSBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlKCkKCSAgYW5kIGdzdF90YWdfbGlzdF9hZGRfdmFsdWUoKSkuIFRoaXMgZml4ZXMgYnVnICM1ODExOTguCgoyMDA5LTA1LTA3IDA5OjI4OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgR3N0VVJJSGFuZGxlcjogVXNlIGdldF90eXBlX2Z1bGwoKSB2bWV0aG9kIGlmIHNwZWNpZmllZCBpbnN0ZWFkIG9mIGdldF90eXBlKCkKCSAgVGhpcyBmaXhlcyBidWcgIzU4MTI4MSBhbmQgbWFrZXMgaXQgZWFzaWVyIGZvciBiaW5kaW5ncyB0bwoJICBpbXBsZW1lbnQgR3N0VVJJSGFuZGxlcnMuIGdldF9wcm90b2NvbHNfZnVsbCgpIHdhcyBhbHJlYWR5IHVzZWQKCSAgbGlrZSB0aGlzLgoKMjAwOS0wNS0xMiAwMTo0ODozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIG5ldyBzdHJpbmdzIGZyb20gY29udGFpbmVyLWZvcm1hdCB0YWcKCjIwMDktMDUtMTIgMDE6MzA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogc21hbGwgdXBkYXRlIHRvIHJlbGVhc2UgZG9jcwoKMjAwOS0wNS0xMiAwMToxMzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZW5hbWUgQ1ZTIC0+IGdpdCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKCjIwMDktMDUtMTIgMDA6NDc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgdGhlIEdMaWIgcmVxdWlyZW1lbnQgdG8gR0xpYiA+PSAyLjE2CgkgIGFzIHBlciB0aGUgTmV3IFJlZ2ltZSAoc2VlIHdpa2kpLgoKMjAwOS0wNS0xMiAwMDowOTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHhtbHJlZ2lzdHJ5OiByZW1vdmUgdGhlIG9sZCB4bWwgcmVnaXN0cnkKCSAgTm8gcG9pbnQgaW4ga2VlcGluZyBpdCBhcm91bmQgcmVhbGx5LiBGaXhlcyAjNTc3OTI2LgoKMjAwOS0wNS0wNyAxNjowODo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgYSB0YWcgZm9yIHRoZSBjb250YWluZXIgZm9ybWF0CgkgIEFQSTogYWRkIEdTVF9UQUdfQ09OVEFJTkVSX0ZPUk1BVAoKMjAwOS0wNS0wOCAxNjoyODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRlYnVnIG1lc3NhZ2UKCSAgTWFrZSB0aGUgZGVidWcgbWVzc2FnZSBzaG93IHdoYXQncyBhY3R1YWxseSBoYXBwZW5pbmcgKHRoZSBtZXNzYWdlCgkgIHJlcGxhY2VkIGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlIG9uZSB0aGF0CgkgIHJlcGxhY2VzIGl0KS4KCjIwMDktMDUtMTIgMDA6MzQ6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBmaXggY29tcGlsYXRpb24KCjIwMDktMDQtMjQgMTk6MzI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHRlc3RzOiBzZXQgdGhlIGxhdGVuY3ktdGltZSB0byBzb21ldGhpbmcgbG93CgoyMDA5LTA0LTI0IDEzOjU1OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSAgdGVzdHM6IGltcHJvdmUgdGhlIGV4YW1wbGUKCjIwMDktMDQtMjQgMTI6MzU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBUYXNrUG9vbDogcmVtb3ZlIF9zZXRfZnVuYygpCgkgIFJlbW92ZSB0aGUgc3RhdGljIGZ1bmN0aW9uIHNldCBvbiB0aGUgVGFza1Bvb2wgYmVmb3JlIF9wcmVwYXJlKCkgaXMgY2FsbGVkIGFuZAoJICBhbGxvdyBmb3IgYXNzaWduaW5nIGEgZnVuY3Rpb24gdG8gYSBUYXNrIHdoZW4gd2UgX3B1c2goKS4KCSAgVXBkYXRlIHRoZSBleGFtcGxlcwoKMjAwOS0wNC0yMyAxOTo0Mjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5oOgoJICB0ZXN0czogYWRkIGV4YW1wbGUgb2YgY3VzdG9tIHRhc2twb29scwoJICBBZGQgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIGEgY3VzdG9tIHRhc2twb29sIGFuZCBob3cgdG8gY29uZmlndXJlCgkgIGl0IG9uIHRoZSB0YXNrLiBDdXJyZW50bHkgdGhlIHRhc2twb29sIGRvZXMgbm90IGRvIG11Y2ggeWV0IGJ1dCBpdCdsbCBjcmVhdGUKCSAgc29tZSBjdXN0b20gdGhyZWFkcyBsYXRlciBvbi4KCjIwMDktMDQtMjMgMTk6NDE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGZpeCBhIGNvbW1lbnQKCjIwMDktMDQtMjMgMTk6NDE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGVzdHM6IGNsZWFudXAgc29tZSBjb2RlCgoyMDA5LTA0LTIzIDE3OjQ4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIFBhZDogcG9zdCBTVFJFQU1fU1RBVFVTX1RZUEVfQ1JFQVRFCgkgIFBvc3QgYSBzdHJlYW0tc3RhdHVzIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGF0IGEgbmV3IHRhc2sgd2FzIGNyZWF0ZWQgc28gdGhhdCB0aGUKCSAgYXBwbGljYXRpb24gaGFzIGEgY2hhbmNlIHRvIGNoYW5nZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgdGFzay4KCSAgRml4IHVuaXQgdGVzdCB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgbmV3IHJlZiBvZiB0aGUgbWVzc2FnZS4KCjIwMDktMDQtMjMgMTc6MjQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyB0YXNrIG1ldGhvZHMKCjIwMDktMDQtMjMgMTc6MTk6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBhZGQgbWV0aG9kcyBmb3IgY29uZmlndXJpbmcgdGhlIHBvb2wKCSAgQWRkIGdldHRlciBhbmQgc2V0dGVyIGZvciBjb25maWd1cmluZyB0aGUgR3N0VGFza1Bvb2wgdG8gdXNlIGZvciBhIEdzdFRhc2suCgoyMDA5LTA0LTIzIDE3OjA1OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgVGFzazogcmVtZW1iZXIgcG9vbAoJICBSZW1lbWJlciB0aGUgcG9vbCB3ZSBjdXJyZW50bHkgaGF2ZSBvdXIgdGFzayBydW5uaW5nIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCB0bwoJICBqb2luIHRoZSB0YXNrIGxhdGVyIG9uLgoJICBGaXggYSBsZWFrIG9mIHRoZSB0YXNrcG9vbC4KCjIwMDktMDQtMjMgMTY6NTM6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIC5kZWZzIGZpbGUgd2l0aCB0YXNrcG9vbCBtZXRob2RzCgoyMDA5LTA0LTIzIDE2OjUzOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZml4IGRlYWRsb2NrIGR1ZSB0byB0eXBvCgoyMDA5LTA1LTEyIDAwOjI1OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogdXNlIEdzdFRhc2tQb29sIGZvciBtYW5hZ2luZyB0aHJlYWRzCgkgIFVzZSB0aGUgbmV3IEdzdFRhc2tQb29sIHRvIGhhbmRsZSBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDktMDQtMjMgMTY6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBmaXggZG9jcywgbWFrZSBwdXNoL2pvaW4gZ2VuZXJpYwoJICBGaXggc29tZSBtb3JlIGRvY3MuCgkgIE1ha2UgX3B1c2goKSByZXR1cm4gYSBnZW5lcmljIGlkICh0aGlzIGNhbiBiZSBzb21ldGhpbmcgZWxzZSB0aGFuIGEgR1RocmVhZCBpbgoJICBzb21lIGNhc2VzKSBhbmQgbWFrZSBfam9pbigpIHVzZSB0aGF0IGdlbmVyaWMgaWQuCgoyMDA5LTA0LTIzIDE1OjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGFkZCBuZXcgb2JqZWN0IHRvIG1hbmFnZSB0aHJlYWRzCgkgIEFkZCBhIG5ldyBvYmplY3QgR3N0VGFza1Bvb2wgdG8gbWFuYWdlIHRoZSBzdHJlYW1pbmcgdGhyZWFkcy4KCSAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGNyZWF0ZSBhbmQgdXNlIGN1c3RvbSBjb25maWd1cmVkIHRocmVhZHMuCgoyMDA5LTA0LTIyIDEyOjA0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIGV4YW1wbGVzOiBzZXQgYnVzIGhhbmRsZXIgYmVmb3JlIHN0YXRlIGNoYW5nZQoJICBXZSBuZWVkIHRvIHNldCB0aGUgYnVzIGhhbmRsZXIgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwaXBlbGluZSBvciB3ZSBtaWdodCBqdXN0CgkgIG1pc3MgdGhlIG1lc3NhZ2Ugd2UgYXJlIGxvb2tpbmcgZm9yLgoKMjAwOS0wNC0yMiAxMDoxNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRlc3RzOiBhZGQgZXhhbXBsZSBhcHAgZm9yIHN0cmVhbS1zdGF0dXMKCSAgQWRkIGFuIGV4YW1wbGUgYXBwbGljYXRpb24gdGhhdCBhZGp1c3RzIHRoZSB0aHJlYWQgcHJpb3JpdHkgb2YgYSB0YXNrIHVzaW5nIHRoZQoJICBzdHJlYW0tc3RhdHVzIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMSAxOToxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBUYXNrOiBhZGQgbWV0aG9kIHRvIHNldCB0aGUgcHJpb3JpdHkKCSAgQWRkIGEgbWV0aG9kIHRvIGNvbmZpZ3VyZSBhIHByaW9yaXR5IGZvciB0aGUgdGhyZWFkcyB1c2VkIGJ5IEdzdFRhc2suCgoyMDA5LTA0LTIxIDE2OjMwOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgdGVzdHM6IGFkZCBhIHVuaXQtdGVzdCBmb3IgdGhlIHN0cmVhbS1zdGF0dXMKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDUtMTIgMDA6MDU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGltcHJvdmUgZG9jdW1lbnRhdGlvbgoJICBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY2FsbGJhY2tzLgoKMjAwOS0wNC0yMSAxNToyNToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCB1bml0LXRlc3RzIGZvciBuZXcgc3RyZWFtLXN0YXR1cwoJICBGaXggdGhlIHVuaXQtdGVzdHMgc28gdGhhdCB0aGV5IGRvbid0IGZhaWwgb24gdGhlIG5ldyBzdHJlYW0tc3RhdHVzIG1lc3NhZ2VzCgkgIHRoYXQgYXJlIGVtaXRlZCBub3cuCgoyMDA5LTA0LTIxIDE0OjQ2OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IGluc3RhbGwgdGhyZWFkIGNhbGxiYWNrcyBvZiB0aGUgdGFzawoJICBJbnN0YWxsIHRocmVhZCBzdGF0dXMgY2FsbGJhY2tzIG9uIHRoZSB0YXNrIG9iamVjdCBvZiBhIHBhZCBhbmQgcG9zdAoJICBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMiAxMDoxNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGNsYXJpZnkgc29tZSBkb2NzCgoyMDA5LTA0LTIxIDE0OjQyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgVGFzazogY2FsbCBsZWF2ZV90aHJlYWQgYmVmb3JlIHNpZ25hbGluZwoJICBDYWxsIHRoZSBsZWF2ZV90aHJlYWQgY2FsbGJhY2sgYmVmb3JlIHdlIHNpZ25hbCB0aGUgdGhyZWFkIHBlcmZvcm1pbmcgdGhlIF9qb2luCgkgIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgbGlzdGVuZXIgc3RpbGwgaGFzIHZhbGlkIGluZm8gaW4gdGhlIGNhbGxiYWNrLgoKMjAwOS0wNC0yMSAxMzo0MjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RNZXNzYWdlOiBBZGQgU1RSRUFNX1NUQVRVUyBtZXNzYWdlIG1ldGhvZHMKCSAgQWRkIG1ldGhvZHMgdG8gaGFuZGxlIHRoZSBzdHJlYW1fc3RhdHVzIG1lc3NhZ2UgdHlwZXMuCgoyMDA5LTA0LTIxIDEzOjA1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFyazogYWRkICJvYmplY3QiIHF1YXJrCgkgIEFkZCB0aGUgb2JqZWN0IHF1YXJrIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDUtMTEgMjM6NDQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICBUYXNrOiByZW1vdmUgY3JlYXRlL2pvaW4gbWV0aG9kcwoJICBQcmVwYXJlIGZvciB1c2luZyB0aGUgR3N0VGFza1Bvb2wgb2JqZWN0LiBXZSBkb24ndCBuZWVkIHRoZSBjcmVhdGUgYW5kIGpvaW4KCSAgY2FsbGJhY2tzIGFueW1vcmUsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBwb29sLgoKMjAwOS0wNC0yMCAxNzowNzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGFkZCBwcml2YXRlIGRhdGEsIGZpeCBwYXJlbnRfY2xhc3MKCSAgVXNlIHRoZSBwYXJlbnQgY2xhc3MgdGhhdCB0aGUgZ2xpYiBtYWNybyBnYXZlIHVzCgkgIEFjdHVhbGx5IGFkZCB0aGUgcHJpdmF0ZSBkYXRhIHRvIHRoZSB0YXNrLgoKMjAwOS0wNC0yMCAxNzoxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGhvb2sgdXAgZW50ZXIvbGVhdmUvbm90aWZ5IGNhbGxiYWNrcwoJICBIb29wIHVwIHRoZSBub3RpZnkvZW50ZXIvbGVhdmUgY2FsbGJhY2tzLgoKMjAwOS0wNS0xMSAyMzoyMzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbCB0byBkZWZzIGZpbGUKCjIwMDktMDUtMTEgMjM6MTk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBhbGxvdyBzZXR0aW5nIGNhbGxiYWNrcwoJICBBbGxvdyBzZXR0aW5nIHRocmVhZCBjYWxsYmFja3MgdGhhdCB3aWxsIGFsbG93IHVzIHRvIGNvbnRyb2wgdGhlIHRocmVhZHMgdXNlZCBieQoJICB0aGUgdGFzay4KCjIwMDktMDQtMjMgMTk6NDA6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgaWdub3JlIHBhZF9zdGFydCByZXR1cm4gdmFsdWUKCjIwMDktMDQtMjEgMTM6MzQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBtb3JlIFNUUkVBTV9TVEFUVVMgdXBkYXRlcwoJICBQYXNzIHRoZSB0aHJlYWQgb2JqZWN0IGluIGEgR1ZhbHVlLCB3aGljaCB3b3VsZCBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZmlndXJlCgkgIG91dCB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IGluc3RlYWQgb2YgdXMgaGF2aW5nIHRvIGV4cGxpY2l0bHkgY29kZSBpdCBpbiBhCgkgIG1lc3NhZ2UgZmllbGQuCgoyMDA5LTA0LTIxIDA5OjQ1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHN0cmVhbS1zdGF0dXMgZG9jdW1lbnQgc29tZSBtb3JlCgoyMDA5LTA0LTIwIDE1OjU1OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogYWRkIGZpcnN0IHZlcnNpb24gb2Ygc3RyZWFtLXN0YXR1cwoJICBBZGQgdGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZSBkZXNpZ24gZG9jcy4KCSAgVGhpcyBtZXNzYWdlIHdpbGwgYmUgdXNlZCB0byBnaXZlIGFwcGxpY2F0aW9ucyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA5LTA0LTIxIDE3OjUzOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogYWRkIHNvbWUgbW9yZSBkb2NzCgoyMDA5LTA0LTIxIDE3OjE0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IHVzZSBuZXcgdGFzayBmdW5jdGlvbgoJICBVc2UgdGhlIG5ldyB0YXNrX3NldF9zdGF0ZSBmdW5jdGlvbiBhbmQgYWN0dWFsbHkgcmV0dXJuIGl0cyByZXN1bHQgdG8KCSAgdGhlIGNhbGxlci4KCjIwMDktMDUtMTEgMjI6NTk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0VGFzazogdW5pZnkgdGFzayBzdGF0ZSBmdW5jdGlvbnMKCSAgQWRkIG5ldyBnc3RfdGFza19zZXRfc3RhdGUoKSB0byBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSB0YXNrIGluc3RlYWQgb2YKCSAgZHVwbGljYXRpbmcgdGhlIGNvZGUgaW4gZWFjaCBmdW5jdGlvbi4KCSAgQVBJOiBHc3RUYXNrOjpnc3RfdGFza19zZXRfc3RhdGUoKQoKMjAwOS0wNC0yMSAxMzozNzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1lc3NhZ2U6IHNtYWxsIGluZGVudGF0aW9uIGNoYW5nZS4KCjIwMDktMDUtMDIgMTQ6NDM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tzCgoyMDA5LTA1LTAyIDE0OjM5OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBjYWxsaW5nIF9nZXRfbmFtZSgpIHRvbyBtdWNoCgkgIEF2b2lkIGNhbGxpbmcgZ3N0X3BsdWdpbl9nZXRfbmFtZSgpIHRvbyBtYW55IHRpbWVzIGJ1dCBpbnN0ZWFkIGNhY2hlCgkgIHRoZSB2YWx1ZS4KCjIwMDktMDUtMDIgMTQ6MzY6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBVc2UgbmV3IF9yZWZfc2luayB3aGVuIHdlIGNhbgoKMjAwOS0wNS0wMiAxNDozMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBhZGQgZ3N0X29iamVjdF9yZWZfc2luawoJICBBZGQgdGhlIGdzdF9vYmplY3RfcmVmX3NpbmsoKSBtZXRob2QgdG8gbWF0Y2ggdGhlIGdsaWIgb25lLgoJICBBUEk6IEdzdE9iamVjdDo6Z3N0X29iamVjdF9yZWZfc2luaygpCgoyMDA5LTA1LTAyIDEzOjA2OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGF2b2lkIHR5cGUgY2hlY2tzCgoyMDA5LTA1LTAyIDEzOjAyOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGF2b2lkIHR5cGVjaGVja3MgaW4gZmluYWxpemUKCSAgQXZvaWQgdXNlbGVzcyB0eXBlY2hlY2tpbmcgaW4gdGhlIGZpbmFsaXplIG9mIGJ1ZmZlcnMgYW5kIHN1YmJ1ZmZlcnMuCgoyMDA5LTA1LTAyIDEyOjU5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogYXZvaWQgdHlwZWNoZWNrCgoyMDA5LTA0LTIwIDE0OjAxOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBjb25uZWN0IHRvIGRlZXAtbm90aWZ5IHdpdGggcmlnaHQgbmFtZQoJICBDb25uZWN0IHRvIHRoZSByaWdodCBzaWduYWwgbmFtZSB3aXRoIC0gaW5zdGVhZCBvZiBfLgoKMjAwOS0wNC0yNCAyMjowNjoxOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBTdXBwb3J0IG5ldyBwcmludGYgZXh0ZW5zaW9ucyBpbiBnbGliYyAyLjEwCgkgIFRoZSBwcmludGYgZXh0ZW5zaW9uIG1lY2hhbmlzbSBjaGFuZ2VkIGluIGdsaWJjIDIuMTAsIGFuZCB0aGUgb2xkZXIKCSAgcmVnaXN0ZXJfcHJpbnRmX2Z1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuIERldGVjdCBhbmQgdXNlIHRoZSBuZXcKCSAgbWVjaGFuaXNtIHdoZXJlIGF2YWlsYWJsZS4KCjIwMDktMDQtMjAgMTI6MjU6NTcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IEZpeCBhIHR5cG8gaW4gdGhlIHJlbGVhc2Ugc2NyaXB0CgoyMDA5LTA1LTExIDIxOjExOjQ5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMy4xCgo9PT0gcmVsZWFzZSAwLjEwLjIzID09PQoKMjAwOS0wNS0xMCAyMjo0MTowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yMwoKMjAwOS0wNS0xMCAyMjozODo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDUtMDYgMTY6MTA6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMi40IHByZS1yZWxlYXNlCgoyMDA5LTA0LTI0IDE5OjM2OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBHc3RCaW46IHNldCBQRU5ESU5HX1NUQVRFIGNvcnJlY3RseQoJICBTZXQgdGhlIHBlbmRpbmcgc3RhdGUgY29ycmVjdGx5IHdoZW4gd2UgYXJlIGdvaW5nIHRvIHBlcmZvcm0gYW4gYXN5bmMKCSAgc3RhdGVfY29udGludWUgb24gdGhlIGJpbi4KCSAgRml4ZXMgIzU4MDEyMQoKMjAwOS0wNC0yMSAyMDo1MDo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIyLjMgcHJlLXJlbGVhc2UKCjIwMDktMDQtMjEgMjI6MTI6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjM5NDFlYSB0byA2YWIxMWQxCgoyMDA5LTA0LTE3IDE1OjQ2OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgd2luMzI6IGRlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gd2hlbiBjb21waWxpbmcgd2l0aCBNaW5nVywgZm9yIF9fc3RhdDY0CgkgIE5lZWQgdG8gZGVmaW5lIHRoaXMgd2hlbiB1c2luZyBNaW5nVywgc28gdGhhdCB0aGUgaW5jbHVkZXMgcHJvdmlkZQoJICBfX3N0YXQ2NCBhbmQgZnJpZW5kcy4gV2UgbmVlZCBhdCBsZWFzdCBXaW5kb3dzIFhQIFNQMiBmb3IgdGhpcy4KCSAgRml4ZXMgIzU2ODYzMi4KCjIwMDktMDQtMTYgMjI6MjY6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGRlYnVnOiBjb21wZXRlIHN0dWJzLiBGaXhlcyAjNTc5MTc3LgoJICBBdm9pZCBkZWZpbmVzIHdoZW4gaW5jbHVkaW5nIGdzdGluZm8uaCBvdXJzZWxmIGFuZCBjb21wbGV0ZSBzdHVicy4gU3luYyBzdHViCgkgIHJldHVybnMgd2l0aCB0aGUgZGVmaW5lcy4KCjIwMDktMDQtMTcgMTE6NDQ6MTEgKzAxMDAgIFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGZvcmsoKSBkdXJpbmcgcmVnaXN0cnkgc2Nhbm5pbmcgaXMgdW5zYWZlIG9uIEN5Z3dpbgoJICBGaXhlcyAjNTU1OTc4LgoKMjAwOS0wNC0xNyAxMTozOTo1OSArMDEwMCAgWWFha292IFNlbGtvd2l0eiA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdF9pbml0OiByZWxvY2F0YWJpbGl0eSBpcyB1bm5lY2Vzc2FyeSBvbiBDeWd3aW4KCSAgU2VlICM1NTU5NzguCgoyMDA5LTA0LTE3IDEwOjExOjIxICswMTAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBkb24ndCBhc3N1bWUgR19IQVZFX0lTT19WQVJBUkdTIGltcGxpZXMgSVNPIEM5OQoJICBNYWtlcyBoZWFkZXJzIEMrKyBjbGVhbiwgZXNwLiB3aXRoIHRoZSBTdW4gY29tcGlsZXJzLgoJICBGaXhlcyAjNTY3NjkyLgoKMjAwOS0wNC0xNyAwOToxNzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEdzdFBsdWdpbjogZml4IGNvbXBpbGF0aW9uIGlmIGJvdGggSEFWRV9XSU4zMiBhbmQgSEFWRV9TSUdBQ1RJT04gYXJlIGRlZmluZWQKCSAgTW92ZSBfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX2lzX3NldHVwIGludG8gdGhlIGlmZGVmIGJsb2NrIHdoZXJlIGl0J3MKCSAgdXNlZC4gRml4ZXMgIzU3ODIwMS4KCjIwMDktMDQtMTYgMTI6MDE6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGRpc2FibGUgQ0xPQ0tfTE9TVCBtZXNzYWdlIGhhbmRsaW5nCgkgIERpc2FibGUgdGhlIGhhbmRsaW5nIG9mIHRoZSBDTE9DS19MT1NUIG1lc3NhZ2VzIHVudGlsIHdlIGZpeGVkIGFuZCByZWxlYXNlZCB0aGUKCSAgZWxlbWVudHMgKHJ0c3BzcmMpIHRoYXQgYnJlYWsgd2hlbiB3ZSBxdWlja2x5IFBBVVNFL1BMQVkgdGhlIHBpcGVsaW5lLgoJICBGaXhlcyAjNTc5MTI3CgoyMDA5LTA0LTE1IDIyOjI0OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2U6IEJ1bXAgdmVyc2lvbiB0byAwLjEwLjIyLjIgZm9yIHByZS1yZWxlYXNlCgoyMDA5LTA0LTE2IDAwOjA4OjIwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IFVwZGF0ZSB3aW4zMiBidWlsZCBmaWxlcwoKMjAwOS0wNC0xNSAyMzoyNzozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gVFAKCjIwMDktMDQtMTUgMjI6MTc6MTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nOiByZWdlbmVyYXRlIGNoYW5nZWxvZyB3aXRoIHRoZSBnZW4tY2hhbmdlbG9nIHNjcmlwdAoKMjAwOS0wNC0xNSAyMzoyNjoxMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHJlbW92ZSBlcnJhbnQgZ3RrLWRvYyBjb21tZW50IG1hcmtlciB0cmlnZ2VyaW5nIGEgd2FybmluZwoKMjAwOS0wNC0xNiAwMDowMjowNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHBhcmFtc3BlY3M6IHJldmVydCBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlKCkgZm9yIHJlbGVhc2UKCSAgUmV2ZXJ0IHRoZSBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlIEFQSSBmb3IgdGhpcyByZWxlYXNlIHNvIHdlIGNhbgoJICBkaXNjdXNzIGl0IGEgYml0IGZ1cnRoZXIgZmlyc3QuCgoyMDA5LTA0LTE1IDIzOjMzOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgbG9nZ2luZzogZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIHdoZW4gZGlzYWJsaW5nIGRlYnVnIGxvZ3MuCgkgIFRoZSB2YXIgd2FzIE5VTEwgYW55d2F5LCBiYWNhdXNlIG9mIHRoZSBpZmRlZnMgdGhlcmUsIHRoZSBtZXNzYWdlIG1ha2VzIG5vCgkgIHNlbnNlIGluY2x1ZGluZyBpdC4KCjIwMDktMDQtMTUgMjM6MTI6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0ZGVidWc6IHNob3cgZW5hYmxlZC9kaXNhYmxlZCBpbiBjb25maWd1cmUgYW5kIGZpeCBidWlsZCBmb3IgZGlzYWJsZWQKCSAgV2hlbiBpdHMgZGlzYWJsZWQsIHdlIHBvaXNvbiBzb21lIHN5bWJvbHMgdG8gZm9yY2UgYSBidWlsZCBlcnJvciBpZiB0aGV5IGFyZQoJICB1c2VkLiBEdW5ubyBob3cgdXNlZnVsIHRoaXMgYWN1YWxseSBpcywgYnV0IHdlIG5lZWQgdG8gZGlzYWJsZSB0aGUgcG9pc29uaW5nCgkgIHdoZW4gd2UgaW5jbHVkZSB0aGlzIG91cnNlbGYuIEFsc28gZG9uJ3QgZGVmaW5lIHNvbWUgb2YgdGhlIGR1bW1pZXMsIGFzIHRoZXkKCSAgYXJlIGdldHRpbmcgcmVwbGFjZWQgd2l0aCBkZWZpbmVzIGFuZCB0aGF0IGNyZWF0ZXMgY29kZSB0aGF0IGRvZXMgbm90IGNvbXBpbGUuCgoyMDA5LTA0LTE1IDE5OjU4OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgVXNlIGdfb25jZV9pbml0XyooKSBpbnN0ZWFkIG9mIEdPbmNlIGZvciB0aGUgZW51bSB0eXBlcwoKMjAwOS0wNC0xNSAxMzowNToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgc3RhdGljcGFkdGVtcGxhdGU6IFVwZGF0ZSBkb2NzIG9mIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzICgpCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzICgpIGFjdHVhbGx5IHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlCgkgIGNhcHMgYW5kIGl0J3MgY2xlYW5lciB0byB1bnJlZiB0aGVtIGFmdGVyIHVzYWdlLiBUaGUgY29yZSB3aWxsLCBob3dldmVyLAoJICBhbHdheXMgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgY2FwcyBzbyB0aGlzIGRpZG4ndCByZXN1bHQgaW4gYSBtZW1vcnkKCSAgbGVhay4KCjIwMDktMDQtMTQgMjI6MzI6MjEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBkb2NzOiB1c2UgcmVhbCA8bm90ZT4gdGFncyBhcyB0aGV5IGxvb2sgbmljZSBpbiBuZXcgZ3RrLWRvYwoKMjAwOS0wNC0xNCAxMjoyMDozNyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBGaXggbG9ja2luZyBpbiBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlCgoyMDA5LTA0LTE0IDIyOjA3OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZhY3RvciBvdXQgZHVwbGljYXRlZCBjb2RlIGFuZCBhZGQgYSBkZXNjcmlwdGlvbiBmb3IgaXQuCgkgIEFsc28gZml4IHR5cG8gaW4gdGhlIHRlc3RzIHdoaWxlIHJldmlld2luZyB0aGVtLgoKMjAwOS0wNC0xNCAxOToxMjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiBhZGQgc2ltcGxlIGRvYyBibHVyYgoKMjAwOS0wNC0xNCAxOToxMTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlY3M6IGFkZCBub3RlIGFib3V0IHJhY3luZXNzCgkgIEFkZCBhIG5vdGUgYWJvdXQgcG90ZW50aWFsIHJhY3luZXNzIGluIF9pc19tdXRhYmxlKCkuCgoyMDA5LTA0LTE0IDEwOjMyOjA3ICswMjAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIG11dGV4IHRvIGRvIGNvbnNvbGUgY29sb3JzIG9uIHdpbmRvd3MKCSAgVXNlIGEgc3RhdGljIG11dGV4IHRvIGtlZXAgdGhlIGNvbnNvbGUgY29sb3JzIGFuZCBjb250ZXh0IHRvZ2V0aGVyIHdoZW4KCSAgZGVidWdnaW5nIHdpdGggY29sb3JzIG9uIFdpbmRvd3MuCgkgIEZpeGVzICM1MTcyMzEuCgoyMDA5LTA0LTEzIDE0OjI3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgIGRvY3M6IGFkZCBTaW5jZTogdGFncyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IHBhcmFtIHNwZWMgQVBJCgkgIEFuZCwgZm9yIG91ciByZWxlYXNlIG1hbmFnZXIsIHRoZSBpbi1jb21taXQtbWVzc2FnZSBrZXl3b3JkcwoJICBmb3IgdGhlIHByZXZpb3VzIGNvbW1pdDoKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9SRUFEWQoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1BBVVNFRAoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1BMQVlJTkcKCSAgQVBJOiBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlCgoyMDA5LTAyLTIwIDExOjA5OjE5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBBZGQgcGFyYW0gc3BlYyBmbGFncyBmb3Igd2hlbiBhIHByb3BlcnR5IGNhbiBiZSBjaGFuZ2VkCgkgIEFkZHMgR1NUX1BBUkFNX01VVEFCTEUqIGZsYWdzIHRvIGluZGljYXRlIGluIHdoaWNoIHN0YXRlcyBhCgkgIHByb3BlcnR5IGNhbiBiZSBjaGFuZ2VkIGFuZCB0YWtlIGVmZmVjdC4gIEZpeGVzICM1NzE1NTkKCjIwMDktMDQtMTAgMTQ6MTU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGhhbmRsZSBjbG9jay1sb3N0IG1lc3NhZ2VzCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGNsb2NrLWxvc3QgbWVzc2FnZSwgd2UgbmVlZCB0byBzZWxlY3QgYSBuZXcgY2xvY2sgaW4gdGhlCgkgIHBpcGVsaW5lIGJ5IHNldHRpbmcgdGhlIHBpcGVsaW5lIHRvIFBBVVNFRCBhbmQgYmFjayB0byBQTEFZSU5HLgoKMjAwOS0wNC0wOSAxODoyNzoyMSArMDIwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3Rlci5jYT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGFsbG9jIHBhZAoJICBBZGQgYSBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBwYWQgdXNlZCBmb3IgcHJveHlpbmcgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBvbgoJICB0aGUgc2lua3BhZC4KCSAgRml4ZXMgIzU3Nzg5MS4KCjIwMDktMDQtMDkgMTE6NTE6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWx3YXlzIG1hcmsgcGVuZGluZ19hc3luY19kb25lCgkgIFdoZW4gd2UgZ2V0IGFuIEFTWU5DX0RPTkUgbWVzc2FnZSB3aGVuIGEgc3RhdGUgY2hhbmdlIHdhcyBidXN5LCBzZXQgdGhlCgkgIHBlbmRpbmdfYXN5bmNfZG9uZSBmbGFnIHNvIHRoYXQgYWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSBjb21wbGV0ZXMsIHRoZSBiaW4gY2FuCgkgIGNoZWNrIGlmIGFsbCBhc3luYyBlbGVtZW50cyBhcmUgZmluaXNoZWQuIERvbid0IG9ubHkgZG8gdGhpcyBmb3IgdGhlIGJpbiBpdHNlbGYKCSAgYnV0IGZvciBhbGwgZWxlbWVudHMuCgkgIFRoaXMgZml4ZXMgc29tZSBiaW5zIGluIGJpbnMgdGhhdCBzaW11bGF0ZSBhc3luYyBzdGF0ZSBjaGFuZ2VzIGJ5IHBvc3RpbmcgQVNZTkMKCSAgbWVzc2FnZXMgKHN1Y2ggYXMgc2RwcGFyc2UgaW4gdXJpZGVjb2RlYmluL3BsYXliaW4yKS4KCjIwMDktMDQtMDkgMTE6NDI6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsYXRpb24sICUwOHggbmVlZHMgYW4gdW5zaWduZWQgaW50CgkgICUwOHggbmVlZHMgYW4gdW5zaWduZWQgaW50LCBzbyBnaXZlIGl0IHRoYXQuCgoyMDA5LTA0LTA2IDAxOjI3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBGSVhNRSBhbmQgRFVNUE1FTSBsb2cgbGV2ZWxzIGFuZCBjb252ZW5pZW5jZSBtYWNyb3MKCSAgVHdvIG5ldyBsb2cgbGV2ZWxzIHRvIGR1bXAgRklYTUVzIGludG8gdGhlIGxvZyBhbmQgdG8gbG9nIGRhdGEKCSAgaW4gZm9ybSBvZiBhIGhleCBkdW1wICgjNTc4MTE0KS4KCSAgQVBJOiBHU1RfQ0FUX0ZJWE1FX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfTUVNRFVNUF9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX0ZJWE1FCgkgIEFQSTogR1NUX0NBVF9NRU1EVU1QCgkgIEFQSTogR1NUX0ZJWE1FX09CSkVDVAoJICBBUEk6IEdTVF9NRU1EVU1QX09CSkVDVAoJICBBUEk6IEdTVF9GSVhNRQoJICBBUEk6IEdTVF9NRU1EVU1QCgoyMDA5LTA0LTA4IDE4OjEzOjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2NzOiB4cmVmIG1vcmUKCjIwMDktMDQtMDggMTc6NDk6MTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcmVtb3ZlIHRoZSBoYWNrcyB0byB3b3JrYXJvdW5kIHRoZSBwYWQtbGVhawoKMjAwOS0wNC0wOCAxNToyNDo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBlbmFibGUgY29kZSB0byBmaXggdGhlIGxlYWssIG5vdyB0aGF0IHRoZSBkZXBzIGhhdmUgYmVlbiByZWxlYXNlZAoJICBHb29kIGFuZCBmZm1wZWcgYXJlIGFjdHVhbGx5IG11bHRpcGxlIHJlbGVhc2VzIGJleW9uZCwgc28gdGhhdCB0aGlzIGlzIG5vdyBzYWZlCgkgIHRvIGRvLgoKMjAwOS0wNC0wNCAyMToxODoyMyArMDMwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQwZWE4OWUgdG8gYjM5NDFlYQoKMjAwOS0wNC0wNCAxNDo1MzoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjhiM2Q5MSB0byBkMGVhODllCgoyMDA5LTA0LTA0IDE0OjQyOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCSAgZmlyc3RfZmxhZyB3aWxsIGJlIGVpdGhlcjoKCSAgKiByZXdyaXR0ZW4gd2l0aG91dCBiZWluZyByZWFkIGlmIHdlIGxvb3AgYWdhaW4gKGxpbmUgMjg0KQoJICAqIG5vdCByZWFkIGFnYWluIGlmIHdlIGRvbid0IGxvb3AKCjIwMDktMDQtMDQgMTQ6Mzk6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBiYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMuCgkgIHNzdGFydC9zc3RvcC9yc3RhcnQvcnN0b3AgYXJlIGFsbCBlaXRoZXI6CgkgICogYXNzaWduZWQgdmFsdWVzIGxhdGVyIG9uIGJlZm9yZSBiZWluZyB1c2VkIGluICdkb190aW1lczonIChFT1MgYW5kIGJ1ZmZlcnMpCgkgICogbm90IHVzZWQgKG5vbi1FT1MgZXZlbnRzKQoKMjAwOS0wNC0wNCAxNDozODo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFyaWFibGUgd2lsbCBub3QgYmUgcmVhZCBiZWZvcmUgaXQncyBhc3NpZ25lZCBhIHZhbHVlIGxpbmUgOTQyLzk0NQoKMjAwOS0wNC0wNCAxNDozNzoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdHRhZ2xpc3Q6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIFdlIGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgYSB2YXJpYWJsZSBpZiBpdCdzIHRoZSByZXR1cm4gb2YgYSBmdW5jdGlvbiBjYWxsCgkgIGFuZCB3ZSBvbmx5IGNoZWNrIGl0IG9uY2UuCgoyMDA5LTA0LTA0IDE0OjM1OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IE9ubHkgdXNlIG1ldGhvZHMgdXNlZCBpbiBnXyogY2hlY2tzIGlmIGdsaWIgY2hlY2tzIGFyZSBkaXNhYmxlZAoKMjAwOS0wNC0wNCAxMDo1OTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGdzdDogVXNlIGdfb25jZV9pbml0KiBvciBHX0RFRklORV9UWVBFCgoyMDA5LTA0LTA0IDEwOjIwOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSAgZ3N0OiBVc2UgR19ERUZJTkVfVFlQRSBhbmQgZnJpZW5kcyBvciBhdCBsZWFzdCBnX29uY2VfaW5pdF8qIGluIHRoZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMKCjIwMDktMDQtMDQgMTA6MTg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZ3N0OiBVc2UgR19ERUZJTkVfVFlQRSBhbmQgZG9uJ3QgY2FsbCBnX3RocmVhZF9pbml0KCkgZnJvbSBjbGFzc19pbml0CgkgIGNsYXNzX2luaXQgaXMgdG9vIGxhdGUgZm9yIGNhbGxpbmcgZ190aHJlYWRfaW5pdCgpIGFzIGdfdGhyZWFkX2luaXQoKQoJICBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBHT2JqZWN0IGZ1bmN0aW9uLgoKMjAwOS0wNC0wMyAxMzo0NjoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBVc2UgZ19zbGljZV9jb3B5IGluc3RlYWQgb2YgZ19zbGljZV9kdXAuCgkgIEEgKGJ1Z2d5KSBnbGliIGdfc2xpY2VfZHVwIG1hY3JvIG1heSBjYXVzZSBjb21waWxlciB3YXJuaW5ncyBvbiBlLmcuIHg4Nl82NC4KCjIwMDktMDQtMDMgMTI6MjE6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhbHVlIG9mIHByb3AgaXMgYmVpbmcgb3ZlcndyaXR0ZW4ganVzdCBhZnRlciB3aXRob3V0IGJlaW5nIHJlYWQuCgoyMDA5LTA0LTAzIDEyOjIwOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgICd0eXBlJyBpcyBuZXZlciB1c2VkIHVudGlsIGxpbmUgMTg0NyB3aGVyZSBpdCdzIG92ZXJ3cml0dGVuLgoKMjAwOS0wNC0wMyAxMjoxOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFsdWUgc2V0IHRvIHRvX2NvcHkgYXQgdGhhdCBsaW5lIGlzIG5ldmVyIHVzZWQsIGFuZCBpcyBvdmVyd3JpdHRlbgoJICBmdXJ0aGVyIGRvd24gYmVmb3JlIGJlaW5nIHJlYWQuCgoyMDA5LTA0LTAzIDEyOjE3OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIFRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlIGlzbid0IHVzZWQgYWZ0ZXIgdGhhdCBjYWxsLgoKMjAwOS0wNC0wMyAxMjoxNTozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogcmVtb3ZlIHJlZHVuZGFudCBhc3NpZ25tZW50LgoJICBJZiB0aGF0IGJsb2NrIGlzIGVudGVyZWQsIHRoZW4gc3RhcnRfdGltZSBiZWNvbWVzIEdTVF9DTE9DS19USU1FX05PTkUuCgkgIFNpbmNlIHN0YXJ0X3RpbWUgaXMgaW52YWxpZCwgdGhlIGNvZGUgd2lsbCBlbnRlciB0aGUgYmxvY2sgYXQgbGluZSA0MzQgYW5kCgkgIG5ld19iYXNlX3RpbWUgd2lsbCBiZSBzZXQgdGhlcmUuCgoyMDA5LTA0LTAzIDEyOjEzOjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiByZW1vdmUgdmFyaWFibGUgb25seSB1c2VkIGZvciBhIGNoZWNrLgoJICB0aGF0IHZhcmlhYmxlIGlzbid0IHVzZWQgYW55d2hlcmUgZWxzZSB3aXRoaW4gdGhhdCBibG9jay4KCjIwMDktMDQtMDMgMTI6MTM6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rIDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgc3luYyBpcyBuZXZlciB1c2VkIGFueXdoZXJlIGluIHRoYXQgY29kZS4KCjIwMDktMDQtMDMgMTI6MTI6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSB1bnVzZWQgdmFyaWFibGUgaW4gdGhlICNpZiAwIGJsb2NrLgoJICBUaGF0IHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieSB0aGUgY29kZSB3aGljaCBoYXMgYmVlbiBpZiAwJ2QKCjIwMDktMDQtMDMgMTE6NTY6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBSZW1vdmUgdW51c2VkIGluY3JlbWVudHMgYXMgZGV0ZWN0IGJ5IExMVk0ncyBDTGFuZyBzdGF0aWMgYW5hbHl6ZXIuCgoyMDA5LTA0LTAzIDExOjUyOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgZGV0ZWN0ZWQgYnkgTExWTSdzIENsYW5nIHN0YXRpYyBhbmFseXplci4KCjIwMDktMDQtMDMgMTE6MTk6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogaW1wcm92ZSBBUEkgcmVmZXJlbmNlIGZvciBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKCkKCjIwMDktMDQtMDIgMTM6MzI6NTggKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3QvZ3N0YmluLmg6CgkgIGRvY3M6IGV4cGxhaW4gcmVmIG93bmVyc2hpcCBmb3IgaGFuZGxlX21lc3NhZ2UgaW1wbGVtZW50YXRpb25zCgoyMDA5LTA0LTAyIDEwOjQzOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGdzdGNoZWNrOiBDYWxsIGdzdF9jaGVja19pbml0KCkgYmVmb3JlIGNyZWF0aW5nIHRoZSBzdWl0ZQoJICBUaGlzIGFsbG93cyB1c2luZyB0aGUgR1N0cmVhbWVyIG9yIEdPYmplY3QgQVBJIGluIHRoZSBzdWl0ZQoJICBjcmVhdGlvbiBmdW5jdGlvbi4KCjIwMDktMDMtMzEgMTg6MTQ6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXhlcyBlcnJvciB3aGVuIERJU0FCTEVfRkFVTFRfSEFORExFUiBpcyBkZWZpbmVkCgkgIFdoZW4gZGVmaW5lZCwgdGhpcyBtYWNybyBwcmV2ZW50ZWQgdGhlIGRlY2xhcmF0aW9uIG9mICd3YWl0aW5nX2VvcycsIGNhdXNpbmcgYW4gZXJyb3IuCgoyMDA5LTAzLTI2IDE3OjI1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXIuIEFsd2F5cyBjYWxscyBfc3VnZ2VzdCwgZXZlbiB3aXRoIE5VTEwgY2Fwcy4gRml4ZXMgIzU3NDgwNQoKMjAwOS0wMy0zMCAxNTo0NTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogRG9uJ3QgZGVmaW5lIGdsb2JhbCBidWZmZXJzIHZhcmlhYmxlLCBpdCdzIGFscmVhZHkgZGVmaW5lZCBieSBsaWJnc3RjaGVjawoKMjAwOS0wMy0zMCAxMDozMzo1MSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkgIGRvY3M6IFNvbWUgZ3JhbW1hciBhbmQgdHlwbyBjb3JyZWN0aW9ucy4KCjIwMDktMDMtMjkgMTM6NDE6MjIgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhbmEuYW1hbnRlcz4KCgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSAgRml4IHR5cG8uCgoyMDA5LTAzLTI3IDE3OjMwOjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGluaXQgdmFyaWFibGUsIHRoYXQgaXMgcmVmZXJlbmNlZCBpbiBlcnJvciBjYXNlIGJlbG93IHRoZSBmYWlsOiBsYWJlbAoKMjAwOS0wMy0yNyAxNjoxNTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogd2FrZXVwIHRoZSBhc3luYyB0aHJlYWQgYSBiaXQgbW9yZQoJICBBbHNvIHdha2UgdXAgdGhlIGFzeW5jIHRocmVhZCB3aGVuIGl0IGlzIGRvaW5nIGFuIGFzeW5jIHdhaXQgZm9yIGFuIGVudHJ5LgoKMjAwOS0wMy0yNyAxNjoxNToxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBhIGxpdHRsZSBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTAzLTI2IDEzOjA3OjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGNoZWNrIGZvciBub3QgcmVhZGluZyBiZXlvbmQgdGhlIGRhdGEgYXJlYS4gRml4ZXMgIzU3Njg0MgoJICBDaGVjayBhbGwgcmVhZHMgYWdhaW5zdCB0aGUgZW5kIG9mIHRoZSBkYXRhIHJlZ2lvbi4gUm9sbCBiYWNrIHJlZ2lzdHJhdGlvbiBvZgoJICBwYXJ0aWFsIHJlYWRzLgoKMjAwOS0wMy0yNSAxMTowMzoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGEgcGFnZSBhYm91dCBidWlsZGluZyBnc3RyZWFtZXIgYW5kIGFwcHMKCjIwMDktMDMtMjYgMTM6MDg6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGRzIGZsYWcgZm9yIGVvcyBvbiBzaHV0ZG93biBpbiBnc3QtbGF1bmNoLiBGaXhlcyAjNTc1ODE0LgoKMjAwOS0wMy0yNiAyMjowNTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IG1ha2UgVU5TQ0hFRFVMRUQgY2hlY2tzIHRocmVhZHNhZmUKCSAgTW92ZSB0aGUgY2hlY2tzIGZvciB1c2luZyBhbiB1bnNjaGVkdWxlZCBlbnRyeSBmcm9tIHRoZSB1bnNhZmUgR3N0Q2xvY2sgdG8gdGhlCgkgIFN5c3RlbUNsb2NrIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBwZXJmb3JtIHRoZSBjb3JyZWN0IGxvY2tpbmcuCgkgIGZpeCBhIGxlYWsgYW5kIHBvdGVudGlhbCBkZWFkbG9jayB0aGVuIHRoZSBhc3luYyB0aHJlYWQgZmFpbHMgdG8gc3RhcnQuCgkgIFNwcmlua2xlIHNvbWUgR19MSUtFTFkgYXJvdW5kIGJlY2F1c2Ugd2UgY2FuLgoKMjAwOS0wMy0yNiAyMTo0MDoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIHBlbmRpbmcgYXN5bmMgd2FrZXVwIHNvb25lcgoJICBSZW1vdmUgYSBwZW5kaW5nIGFzeW5jIHdha2V1cCBiZWZvcmUgd2UgY2hlY2sgaWYgdGhlIG5leHQgZW50cnkgaXMgVU5TQ0hFRFVMRUQKCSAgYmVjYXVzZSB3ZSBtaWdodCBsZWF2ZSB0aGUgY29udHJvbCBzb2NrZXQgYnVzeS4KCjIwMDktMDMtMjYgMTk6MzM6NDEgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogQ29ycmVjdGVkIGEgZG9jdW1lbnRhdGlvbiB0eXBvLgoKMjAwOS0wMy0yNiAxOToxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogYWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDktMDMtMjYgMTg6NDY6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHJld29yayB0aGUgd2FrZXVwIG9mIGVudHJpZXMuCgkgIEtlZXAgYSBjb3VudGVyIGZvciB0aGUgYW1vdW50IG9mIG91dHN0YW5kaW5nIHdha2V1cHMgdGhhdCB3ZSBwcm9kdWNlIGFuZCBvbmx5CgkgIHBlcmZvcm0gYSB3cml0ZS9yZWFkIHRvIHRoZSBjb250cm9sIHNvY2tldCB3aGVuIDEgb3IgMCByZXNwZWN0aXZlbHkuCgkgIGRvbid0IHBvbGwgd2hlbiB3YWl0aW5nIGZvciB0aGUgZW50cmllcyB0byBiZSB1bmJsb2NrZWQgYW5kIGNsZWFyIHRoZWlyIHdha2V1cAoJICBjb3VudHMsIGp1c3QgYWN0IG9uIHRoZSBzaWduYWwgd2hlbiB0aGUgd2FrZXVwIGNvdW50IGlzIDAuCgkgIHVuc2NoZWR1bGVkIGVudHJpZXMgd2lsbCBjbGVhciB0aGVpciB3YWtldXAgY291bnQgdGhlbXNlbHZlcy4KCSAgS2VlcCB0cmFjayBvZiB3aGVuIHdlIHdha2V1cCB0aGUgYXN5bmMgdGhyZWFkIGJlY2F1c2UgdGhlIGxpc3Qgb2YgZW50cmllcyBoYXMKCSAgY2hhbmdlZC4KCSAgZG9uJ3QgdHJ5IHRvIHNlZSBpZiB0aGUgbGlzdCBjaGFuZ2VkIGJlY2F1c2Ugd2UgY2FuJ3QgcmVhbGx5IGtub3cgd2hlbiBvbmUgZW50cnkKCSAgaXMgYWRkZWQgbXVsdGlwbGUgdGltZXMuCgkgIE9ubHkgd2FrZSB1cCB0aGUgYXN5bmMgdGhyZWFkIHdoZW4gd2UgYWRkIGFuIGFzeW5jIGVudHJ5IHRvIHRoZSBoZWFkIG9mIHRoZSBsaXN0CgkgIGFuZCB0aGUgb2xkIGVudHJ5IHdhcyBCVVNZLgoKMjAwOS0wMy0yNSAxNzozMToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRml4IHVwIGRvY3VtZW50YXRpb24gc3RyaW5ncy4KCSAgTm90ZSB0aGUgY2hhbmdlZCBiZWhhdmlvdXIgb2YgZ3N0X3BvbGxfd2FpdCBmb3IgdGltZXIgR3N0UG9sbCdzLCBhbmQKCSAgZml4IGEgY291cGxlIG9mIHNwZWxsaW5nIGVycm9ycy4KCjIwMDktMDMtMjYgMTU6NTU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBmaXggMiB3YWtldXAgcmFjZXMuCgkgIHdoZW4gYW4gZW50cnkgYmVpbmcgd2FpdGVkIG9uIGluIHRoZSBhc3luYyB0aHJlYWQgaXMgdW5zY2hlZHVsZWQsIGNsZWFyIHRoZQoJICB3YWtldXAgcXVldWUgc28gd2UgY2FuIGNvbnRpbnVlIHdhaXRpbmcgb24gb3RoZXIgZW50cmllcy4KCSAgV2hlbiBhbiBlbnRyeSBiZWluZyB3YWl0ZWQgb24gaW4gdGhlIGFzeW5jIHRocmVhZCBpcyB1bmxvY2tlZCBiZWNhdXNlIGFuIGVhcmxpZXIKCSAgZW50cnkgd2FzIGFkZGVkIHRvIHRoZSBsaXN0LCBzZXQgdGhlIGVudHJ5IHRvIE9LIGFnYWluLiBUaGlzIG1ha2VzIHN1cmUgdGhhdAoJICBvbmx5IHRoZSBlbnRyaWVzIGJlaW5nIHdhaXRlZCBvbiBoYXZlIHRoZSBCVVNZIGZsYWcgc2V0IGFuZCB3YWtlIHVwIHRoZSB0aW1lcgoJICBwb2xsIHdoZW4gdGhleSBhcmUgdW5zY2hlZHVsZWQuCgoyMDA5LTAzLTI2IDE0OjQ0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaWdub3JlIC5naXQgZGlyZWN0b3J5IHdoZW4gcmVjdXJzaXZlbHkgc2Nhbm5pbmcgcGx1Z2luIHBhdGhzIGZvciBwbHVnaW5zCgkgIFNhdmVzIHNvbWUgY3ljbGVzL3BhbmRhcyBmb3IgdGhvc2Ugb2YgdXMgd2hvIHJ1biB1bmluc3RhbGxlZCBzZXR1cHMuCgoyMDA5LTAzLTI2IDE0OjE2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgcmVnaXN0cnk6IGRvIGZzeW5jKCkgYmVmb3JlIGNsb3NlKCkgYW5kIHJlbmFtZSgpCgkgIFRoaXMgaGVscHMgcHJldmVudCBmaWxlc3lzdGVtL2RhdGEgaW5jb25zaXN0ZW5jaWVzIGluIGNlcnRhaW4KCSAgY2lyY3Vtc3RhbmNlcyBvbiBjZXJ0YWluIGZpbGVzeXN0ZW1zIChsaWtlIGV4dDQsIHhmcywgdWJpZnMpLgoJICBBbHNvIHNlZSBidWcgIzU2Mjk3Ni4KCjIwMDktMDMtMjYgMDE6MDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2dldF9idWZmZXJ7X2luZGV4fQoJICBDb252ZW5pZW5jZSBBUEksIG1vc3RseSBmb3IgaW1hZ2UgdGFncywgc28gcGVvcGxlIGRvbid0IGhhdmUgdG8KCSAgZmlndXJlIG91dCB0aGUgd2hvbGUgR1ZhbHVlL0dzdFZhbHVlIHRoaW5nIGp1c3QgZm9yIHRoaXMuCgoyMDA5LTAzLTI1IDIzOjAzOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IENsZWFuIHVwIHRoZSB0ZXN0cyBhIGJpdC4KCSAgQWRkIHNvbWUgY2xlYW51cHMgdG8gdGhlIHN5c3RlbSBjbG9jayB0ZXN0cywgdG8gZnJlZSBhbGwgdGhlIG1lbW9yeSBhbmQKCSAgdW5zY2hlZHVsZS91bnJlZiBhbGwgY2xvY2sgSURzIHdlIGFsbG9jYXRlLgoJICBVc2UgYSBtdXRleCBpbiBvbmUgdGVzdCB0byBhdm9pZCBwb3RlbnRpYWwgdGhyZWFkaW5nIHByb2JsZW1zIG9uIG11bHRpY29yZQoJICBtYWNoaW5lcy4KCjIwMDktMDMtMjUgMjE6Mzc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQWRkIGEgdGVzdCBmb3Igc3luYy9hc3luYyBjbG9ja2lkIGludGVyYWN0aW9ucwoJICBUaGlzIHRlc3QgcmFuZG9tbHkgaGFuZ3MgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIHJlbGlhYmlsaXR5IG9mCgkgIHVuc2NoZWR1bGluZyBzeW5jIGFuZCBhc3luYyBjbG9ja0lEJ3Mgb24gdGhlIHN5c3RlbSBjbG9jay4KCjIwMDktMDMtMjYgMTE6MTc6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogVXNlIGdfc2xpY2VfZHVwKCkgbm93CgoyMDA5LTAzLTI2IDExOjA4OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIHNvbWUgY29tcGF0aWJpbGl0eSBzdHVmZiBmb3IgR0xpYiA8IDIuMTQKCjIwMDktMDMtMjUgMDA6NTA6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19TVUJUSVRMRV9DT0RFQwoJICBZZXMsICdjb2RlYycgaXNuJ3QgZXhhY3RseSB0aGUgYmVzdCB3b3JkLCBidXQgbGV0J3MgYmUgY29uc2lzdGVudCB3aXRoIEFVRElPX0NPREVDCgkgIGFuZCBWSURFT19DT0RFQyAod2hpY2ggbWF5IGJlICdyYXcnIGZvcm1hdHMgYXMgd2VsbCBhZnRlciBhbGwpLiBQcmVyZXF1aXNpdGUgZm9yCgkgIGJ1ZyAgIzU3NjU1Mi4KCjIwMDktMDMtMjQgMjE6Mzk6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBnc3QtbGF1bmNoIG1hbiBwYWdlIGZpeAoJICBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyAtLWdzdC1kZWJ1Zy1kaXNhYmxlLCBub3QgLS1nc3QtZGlzYWJsZS1kZWJ1Zy4KCSAgRml4ZXMgIzU3NjU1Ni4gU3BvdHRlZCBieSBCb2dkYW4gSGFyam9jLgoKMjAwOS0wMy0yNCAxOTozMzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogaW1wcm92ZSBwcm9wZXJ0eSBzZXQgYW5kIGNvbnZlcnQgY29kZQoJICBVc2Ugc3RyaW5nIGRlc2VyaWFsaXNhdGlvbiBpbnN0ZWFkIG9mIGN1c3RvbSBwYXJzaW5nIGNvZGUgdG8gYWxsb3cgZm9yIGFsbAoJICBzdXBwb3J0ZWQgd2F5cyBvZiBzcGVjaWZ5aW5nIHByb3BlcnR5IHZhbHVlcy4KCSAgZml4ZXMgIzU3NjU4Mi4KCjIwMDktMDMtMjMgMTU6MTg6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGJ1aWxkOiBkZWZpbmUgc3R1YnMgd2hlbiBkaXNhYmxpbmcgZ3N0LWRlYnVnIHN1YnN5c3RlbS4gRml4ZXMgIzU3NTkyMgoJICBSdW5uaW5nIGNvbmZpZ3VyZSB3aXRoIGUuZy4gLS1kaXNhYmxlLWRzdC1kZWJ1ZyB3YXMgY29tcGlsaW5nIG91dCB0aGUgZGVidWcKCSAgc3lzdGVtIChBQkkgYnJlYWspLiBOb3cgc3R1YnMgYXJlIGFkZGVkIGFuZCBvbmx5IGlmIG9uZSBkb2VzIGUuZy4KCSAgbWFrZSBDRkxBR1M9Ii1ER1NUX1JFTU9WRV9ESVNBQkxFRCIgdGhlIHN5bWJvbHMgYXJlIG9tbWl0dGVkLgoKMjAwOS0wMy0yMyAxMjozNDozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggb25jZS1wZXItc2Vjb25kICdlbWVyZ2VuY3kgcmVuZGVyaW5nJyBmb3IgY2FzZSB3aGVyZSBhbGwgYnVmZmVycyBidXQgdGhlIHZlcnkgZmlyc3QgYXJlIGxhdGUKCSAgRHVlIHRvIGEgdHlwbyBiYXNlc2luayBkaWRuJ3QgZG8gYW55IGVtZXJnZW5jeSByZW5kZXJpbmcgb2YgbGF0ZSBidWZmZXJzCgkgIGlmIHRoZSBvbmx5IGJ1ZmZlciBldmVyIHJlbmRlcmVkIHdhcyB0aGUgZmlyc3Qgb25lIHdpdGggdGltZXN0YW1wIDAuIFRoaXMKCSAgbWVhbnMgdGhhdCBpbiBjYXNlcyB3aGVyZSB0aGUgZGVjb2RlciBpcyB2ZXJ5IHZlcnkgc2xvdywgd2UnZCBuZXZlciBzZWUKCSAgYW55IGJ1ZmZlcnMgYnV0IHRoZSB2ZXJ5IGZpcnN0IG9uZSByZW5kZXJlZC4gRml4ZXMgIzU3NjM4MS4KCjIwMDktMDMtMjEgMDI6MzQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHR3ZWFrIHRoZSByZWxlYXNlIHByb2NlZHVyZSBzY3JpcHQKCjIwMDktMDMtMjAgMTQ6MTI6NTUgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIHdpbjMyOiBmaXggc2Vla2luZyBpbiBmaWxlcyA+NEdCCgkgIFVzZSA2NC1iaXQgZnVuY3Rpb25zIG9uIHdpbmRvd3MgdG8gaW1wbGVtZW50IHNlZWtpbmcgaW4gZmlsZXMgYmlnZ2VyCgkgIHRoYW4gNEdCLgoJICBGaXhlcyAjNTc1OTg4CgoyMDA5LTAzLTIwIDExOjI2OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogRml4IGdlbmVyYXRpb24gb2YgY29udHJvbC1jaGFuZ2UgYXJyYXlzLgoJICBXaGVuIGdlbmVyYXRpbmcgYXJyYXlzIG9mIGNvbnRyb2wgY2hhbmdlcyB0aW1lc3RhbXAgdmFyaWFibGUgd2FzIHVzZWQgaW5zdGVhZAoJICB0aGUgbG9jYWwgdHMgdmFyaWFibGUgdGhhdCB3ZSBpbmNyZW1lbnQgd2hlbiBzdGVwcGluZyB0aHJvdWdoIHRoZSBhcnJheS4KCSAgUG9pbnRlZCBvdXQgYnkgTWFydGluIFBva29ybnkuCgoyMDA5LTAzLTIwIDAwOjQyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRlYnVnZ2luZzogbWFrZSBHU1RfUFRSX0ZPUk1BVCB3b3JrIGZvciBxdWVyaWVzIGFzIHdlbGwKCjIwMDktMDMtMjAgMDA6Mzk6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFQSTogYWRkIEdTVF9RVUVSWV9DQVNUCgkgIGJlY2F1c2Ugd2UgY2FuLCBhbmQgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOS0wMy0xOSAyMToyNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogZml4IGZvciBjaGVjayB2ZXJzaW9ucyA+IDAuOS42CgkgIEEgbmV3IGFyZ3VtZW50IGFsbG93ZWRfZXhpdF92YWx1ZSB3YXMgYWRkZWQgaW4gU1ZOIHJlY2VudGx5ICgjNTc0MjEzKS4KCjIwMDktMDMtMTkgMTc6MTk6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogZml4IGdzdF9wYWRfY2FuX2xpbmsKCSAgV2Ugd2VyZSBjb252ZXJ0aW5nIHRoZSBHc3RQYWRMaW5rUmV0dXJuIHRvIGEgZ2Jvb2xlYW4sIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQKCSAgdG8gZG8uCgoyMDA5LTAzLTE5IDEwOjQ0OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXJ0c3Atc2VydmVyIGJpdHMgYW5kIGJyZWFrIHVwIG92ZXJseSBsb25nIGxpbmVzCgkgIEFkZCBzb21lIG9mIHRoZSBiaXRzIG5lZWRlZCBmb3IgYW4gdW5pbnN0YWxsZWQgZ3N0LXJ0c3Atc2VydmVyIChzbyBnZGIgd29ya3MKCSAgb24gdGhlIGV4YW1wbGVzIGV0Yy4pLiBQeXRob24gYml0cyBhcmUgc3RpbGwgbWlzc2luZywgYW5kIHdlIG1pZ2h0IG5lZWQgYW4KCSAgLXVuaW5zdGFsbGVkLnBjIGZpbGUgYXMgd2VsbCBpbiB0aGUgZnV0dXJlLiBCcmVhayB1cCB2ZXJ5IGxvbmcgbGluZXMgdG8gbWFrZQoJICB0aGVtIGVhc2llciB0byByZWFkIGFuZCBtYWludGFpbi4gQWxzbyByZW1vdmUgZ3N0LXBsdWdpbnMgcGF0aHMgZnJvbSB0aGUKCSAgb2xkIGRheXMuCgoyMDA5LTAzLTE5IDExOjQ2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9yd2xvY2tzOgoJICBkb2NzOiBpbnRlcmVzdGluZyBpZGVhIGZvciBmYXN0IHJ3IGxvY2tzCgkgIC0tCgoyMDA5LTAzLTE5IDExOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sIHRvIHdpbmRvd3MgLmRlZiBmaWxlCgkgIEFkZCB0aGUgbmV3IHdpbmRvd3MgY21kLmV4ZSBjb2xvcmluZyBtZXRob2QgdG8gdGhlIC5kZWYgZmlsZS4KCjIwMDktMDMtMTggMTY6Mzg6NTEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IG1vcmUgaW5mbyBhYm91dCB3aGVuIHN0YXRlIGNoYW5nZXMgY2FuIGJlIGFzeW5jIGFuZCB3aGVuIG5vdC4KCjIwMDktMDMtMTggMTk6MDc6MDAgKzAxMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdSBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtb3JlIGluZGVudGF0aW9uIGZpeGVzCgkgIEZpeGVzICM1MTcyMzEuCgoyMDA5LTAzLTE4IDE5OjA2OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogaW5kZW50YXRpb24gZml4CgoyMDA5LTAzLTE4IDE4OjU3OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogc2ltcGx5IHNvbWUgbW9yZQoKMjAwOS0wMy0xOCAxODo0NTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlZmFjdG9yIGRlYnVnIGNvbG9ycyBmb3Igd2luMzIgYW5kIG90aGVyCgkgIFJlZmFjdG9yIHRoZSBkZWJ1ZyBsaW5lIGNvZGUgdG8gdXNlIGFzIG11Y2ggY29kZSBhcyBwb3NzaWJsZSBmb3IgdGhlIHdpbjMyIGFuZAoJICBvdGhlciBjb2xvciBjb2RpbmdzLgoJICBVcGRhdGUgZG9jcyB3aXRoIG5ldyBzeW1ib2wuCgoyMDA5LTAzLTE4IDE3OjMwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICB3aW5kb3dzOiBpbml0aWFsIGNvbW1pdCBmb3IgdGVybWluYWwgY29sb3JzCgoyMDA5LTAzLTE4IDE3OjAxOjE2ICswMTAwICBaZWVzaGFuIEFsaSAoS2hhdHRhaykgPHplZXNoYW5hayBhdCBnbm9tZSBkb3Qgb3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0cGFkOiBmaXggZ3N0X3BhZF9jYW5fbGluaygpCgkgIE1vdmUgdGhlIGdzdF9wYWRfY2FuX2xpbmsoKSBpbXBsZW1lbnRhdGlvbiBmcm9tIGdzdHV0aWxzIHRvIGdzdHBhZCBhbmQgdXNlCgkgIGdzdF9wYWRfbGlua19wcmVwYXJlKCkgdG8gbWFrZSBpdCB3b3JrIGNvcnJlY3RseSBhbmQgYWxzbyBjaGVjayB0aGUgY2Fwcy4KCSAgTWFrZSB0aGUgYnJva2VuIGltcGxlbWVudGF0aW9uIGluIGdzdHV0aWxzIHN0YXRpYy4KCSAgU21hbGwgY2xlYW51cHMgaW4gdGhlIF9nZXRfZml4ZWRfY2FwcygpIGZ1bmN0aW9uLgoJICBGaXhlcyAjNTc1NjgyLgoKMjAwOS0wMy0xNyAyMDo0MTo0NCArMDAwMCAgRGF2aWQgQWRhbSA8emFuY2hleUB1Y2MuZ3UudXdhLmVkdS5hdT4KCgkqIGdzdC9nc3QuYzoKCSAgY29uZmlnLmggbmVlZHMgdG8gYmUgaW5jbHVkZWQgZmlyc3QsIGVpdGhlciBkaXJlY3RseSBvciB2aWEgZ3N0X3ByaXZhdGUuaAoJICBGaXhlcyBidWlsZCB3aXRoIC1XZXJyb3IgY2F1c2VkIGJ5ICdfRklMRV9PRkZTRVRfQklUUyByZWRlZmluZWQnIHdhcm5pbmcgb24KCSAgT3BlblNvbGFyaXMgd2hlcmUgX0ZJTEVfT0ZGU0VUX0JJVFMgbWF5IGJlIGRlZmluZWQgYm90aCBpbiBvdXIgY29uZmlnLmgKCSAgYW5kIHZpYSBzdGRpby5oICgjNTc1Njk1KS4KCjIwMDktMDMtMTcgMTk6MDI6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGZhcTogcmVtb3ZlIG91dGRhdGVkIGJpdHMgZnJvbSBpbmRlbnRpbmcgc2VjdGlvbgoKMjAwOS0wMy0xNyAxMjowNTozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZvcndhcmQgc2VnbWVudC1zdGFydCBsaWtlIHNlZ21lbnQtZG9uZSBpZiBwYXJlbnQgaXMgYWxzbyBhIGJpbiwgZml4ZXMgIzU3NTU5OC4KCSAgQmluIGNvbGxlY3RzIHNlZ21lbnQtc3RhcnQgbWVzc2FnZXMgYW5kIHNlZ2VudC1kb25lIG1lc3NhZ2VzLiBpdCBwb3N0cyBhCgkgIHNlZ21lbnQtZG9uZSBtZXNzYWdlIHRvIGl0cyBwYXJlbnQsIG9uY2UgaXQgaGFzIHJlY2VpdmVkIGEgc2VnbWVudC1kb25lIGZvcgoJICBlYWNoIHNlZ21lbnQtc3RhcnQuIEltaG8gaXQgc2hvdWxkIGFsc28gc2VuZCBhIHNlZ21lbnQtc3RhcnQgaWYgaXQgcmVjZWl2ZXMgdGhlCgkgIGZpcnN0IHNlZ21lbnQgc3RhcnQgYW5kIGlmIHBhcmVudCBpcyAhPU5VTEwuIFRoaXMgaXMgbmVlZGVkIGZvciBiaW5zIGluIGJpbnMsCgkgIHNvIHRoYXQgYWxzbyBoaWdoZXIgb3JkZXIgYmlucyBjYW4gZ3JvdXAgc2VnbWVudC1zdGFydHMgYW5kIHNlZ21lbnQtZG9uZXMuCgkgIFJpZ2h0IG5vdyBoaWdoZXIgb3JkZXIgYmlucyB3aWxsIHBvc3QgYSBzZWdtZW50LWRvbmUgZm9yIGVhY2ggc2VnbWVudC1kb25lCgkgIHJlY2VpdmVkLgoKMjAwOS0wMy0xNiAyMDoxMjo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogZml4IHR5cG8gaW4gZ2l0IGNvbW1hbmQKCjIwMDktMDMtMTUgMjM6NDA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdGhlc2Ugd2FybmluZ3MgYXJlIHNlcmlvdXMsIGdpdmUgbW9yZSBkZXRhaWwgaW4gdGhlIG1lc3NhZ2UKCjIwMDktMDMtMTUgMjM6Mzc6MjkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCBkZWJ1ZyBsb2dnaW5nIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRyYWNlIGl0CgoyMDA5LTAzLTEzIDEwOjU2OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEZpeCBpbmRlbnRhdGlvbiBvZiAuaCBmaWxlcwoJICAtLQoKMjAwOS0wMy0xMiAxMjoyMDoyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdHM6IGFwcGx5IGZpeCBmb3IgcmVwbGFjZSBhbGwgYWxzbyB0byBnc3RfdGFnX2xpc3RfYWRkX3ZhbGlzdF92YWx1ZXMuIEZpeGVzICM1NzQyNDEKCjIwMDktMDMtMTIgMTA6NDg6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBkb2NzOiBJbXByb3ZlIHNvbWUgZG9jcwoJICBSZW5hbWUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgYW5kIGFkZCBzb21lIFJldHVybjogdG8gbWFrZSB0aGUgZG9jcyBtb3JlIGhhcHB5LgoKMjAwOS0wMy0xMiAwMDo0MToyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGRvY3M6IGZpeCBsaW5raW5nIHRvIGNvbnN0YW50IGFuZCBmdW5jdGlvbnMKCjIwMDktMDMtMTEgMTU6MjA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBlbGxpcHNpemUgY2FwcyBmaWVsZHMsIGJldHRlciBwbGFjZW1lbnQgb2YgdW5uZWdvdGlhdGVkIGNhcHMKCSAgTG9uZyBjYXBzIGZpZWxkcyBsaWtlIGVudW1zIGFyZSBlbGxpcHNpc2VkLiBJZiBjYXBzIGFyZSBub3QgbmVnb3RpYXRlZCwgdXNlCgkgIGhlYWQtIGFuZCB0YWlsbGFiZWwgdG8gcGxhY2UgdGhlbSBjbG9zZXIgdG8gdGhlIHBhZHMuIFVzZSBzbWFydGVyIHdheSB0byBpbmRlbnQuCgoyMDA5LTAzLTExIDEwOjI3OjE2ICswMjAwICBMYXN6bG8gUGFuZHkgPGxhc3psb2syQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBtYWtlIGNhcHMgaW4gRE9UIGRlYnVnIGdyYXBocyBtb3JlIHJlYWRhYmxlLiBGaXhlcyA1NzQ0ODQKCSAgVXNlIGEgbW9ub3NwYWNlIGZvbnQgZm9yIGVkZ2UgbGFiZWxzIGFuZCBpbmRlbnQuCgoyMDA5LTAzLTExIDE0OjExOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQWxsb3cgJXUgYXMgY29udmVyc2lvbiBtb2RpZmllciBhZGRpdGlvbmFsIHRvICVkIGFuZCAlcwoKMjAwOS0wMy0xMSAxMToyMzowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBnc3RiYXNlc3JjOiB1bnNpZ25lZCBsb25nIGlzICIlbHUiLCBub3QgIiV1bCIuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeAoKMjAwOS0wMy0xMCAyMTowODozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgbG9nZ2luZzogc29tZSBhZGRpdGlvbmFsIGxvZ2dpbmcgZm9yIHRyYWNpbmcgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRGVtb3RlIG9uZSBsb2cgdGhhdCBjYW4gY29tZSBxdWl0ZSBvZnRlbi4gUmVtb3ZlIG9uZSBmaXhtZSB0aGF0IGlzIGRvbmUuIEFwcGx5CgkgIGdzdC1pbmRlbnQgY2hhbmdlcy4KCjIwMDktMDMtMTAgMjE6MDM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29tbWVudDogYWRkIGEgZml4bWUtMC4xMQoKMjAwOS0wMy0xMCAyMTowMToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIGZvcm1hdHRpbmc6IHRhYnMgdG8gc3BhY2VzCgoyMDA5LTAzLTA5IDIzOjExOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDcwMzIxNjMgdG8gZjhiM2Q5MQoKMjAwOS0wMy0wOSAyMDowNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZ3N0cmVhbWVyLnNwZWM6IGZpeCBzdHJheSBAR0xJQjJfUkVRQCB0aGF0IGRpZG4ndCBnZXQgZXhwYW5kZWQgcHJvcGVybHkKCjIwMDktMDMtMDkgMTY6MDk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogcmV3b3JkIHN0dWZmIGFib3V0IGN1c3RvbSBtYWlubG9vcHMKCSAgRml4ZXMgIzU3NDIyOS4KCjIwMDktMDMtMDkgMTY6MDE6MjAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBkb24ndCB1c2UgR1NUX1RJTUVfRk9STUFUIHdoZW4gYnVpbGRpbmcgZmlsZW5hbWVzLiBmaXhlcyAjNTc0NjIzCgoyMDA5LTAzLTA5IDExOjM5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBjYWxsIG5ldyBjYWxsYmFja3Mgc2V0IGluIHRoZSBibG9jayBjYWxsYmFjawoJICBLZWVwIHRyYWNrIG9mIHdoZW4gYSBuZXcgY2FsbGJhY2sgaXMgaW5zdGFsbGVkIGluIHRoZSBjYWxsYmFjayBhbmQgY2FsbCB0aGUgbmV3CgkgIGNhbGxiYWNrIGluIHRoYXQgY2FzZS4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgY2hlY2tpbmcgcGFkIGJsb2NraW5nLgoJICBGaXhlcyAjNTczODIzLgoKMjAwOS0wMy0wOCAxNzoyMjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGVudW10eXBlcyBhbmQgY29uZmlnLmgKCjIwMDktMDMtMDggMTc6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogaW1wcm92ZSBkb2NzIGZvciBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUqKCkKCSAgTWVudGlvbiB0aGF0IHRoZSBkYXRlIHZhbHVlIG5lZWRzIHRvIGJlIGZyZWVkIGFuZCBob3cgdG8gZnJlZSBpdC4KCjIwMDktMDMtMDggMTI6MDI6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZmE3MzhkIHRvIDcwMzIxNjMKCjIwMDktMDMtMDggMTE6MTc6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZjEzZTRlIHRvIGZmYTczOGQKCjIwMDktMDMtMDggMDA6Mjc6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBpbXByb3ZlIGNhcHMgbG9nZ2luZwoJICBGYWN0b3Igb3V0IGNvZGUgdG8gZGVzY3JpYmUgY2Fwcy4gSW1wcm92ZSBmb3JtYXRpbmcgKG5vIFxuIGluIGNhcHMgZmllbGRzKS4KCSAgQ2hlY2sgcGVlciBjYXBzIHRvbyBhbmQgc2hvdyBib3RoIGlmIHRoZXkgZGlmZmVyLgoKMjAwOS0wMy0wNyAxMTo0MzozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNjNzQ1NmIgdG8gM2YxM2U0ZQoKMjAwOS0wMy0wNyAxMDo0MzozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU3YzgzZjIgdG8gM2M3NDU2YgoKMjAwOS0wMy0wNiAyMjoxMDoxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogcmV2ZXJ0IGFjY2lkZW50aWFsIGNvbW1pdCBmcm9tIHRoZSBxdWV1ZSAobWUgc2hvdWxkIHN0YXJ0IHVzaW5nIGJyYW5jaGVzKQoKMjAwOS0wMy0wNiAyMTo1OToyMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBhcGlkb2NzOiBtYXJrdXAgZXhhbXBsZSBhcyBoaWdobGlnaHRhYmxlIGV4YW1wbGUgYW5kIGNvcHkgc2FtZSBmb3Igc3RydWN0dXJlCgkgIHN0cnVjdHVyZXMgY2FuIGJlIHByaW50ZWQgbGlrZSB3ZSBjYW4gZG8gZm9yIGNhcHMuIE1hcmsgdGhlIGV4YW1wbGUgc28gdGhhdAoJICBndGstZG9jIGNhbiBwcmV0dHkgcHJpbnQgYW5kIHhyZWYgaXQuCgoyMDA5LTAzLTA0IDIxOjIxOjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiByZWxpYWJseSBnbyB0byBlb3MuIEZpeGVzICM1NzQxNjAKCSAgVXBkYXRlIGNvbGxlY3RwYWRzIHN0YXR1cyB3aGVuIHJlbW92aW5nIHBhZHMuCgoyMDA5LTAzLTA2IDEyOjA4OjQyICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9ldmVudF9kZWZhdWx0IHdoZW4gc2VuZGluZyBvdXQgdGhlIG5ld3NlZ21lbnQgZXZlbnQgaW4gc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgVGhpcyBtYWtlcyBpZGVudGl0eSBzaW5nbGUtc2VnbWVudD10cnVlICEgb2dnbXV4IHdvcmsgYWdhaW4gYWZ0ZXIgYSBjaGFuZ2UgaW4KCSAgb2dnbXV4IChjb21taXQgYjBlM2Q0NDkgaW4gLWJhc2UpLgoKMjAwOS0wMy0wNSAxNzo0MjoyMiArMDEwMCAgQW5keSBXaW5nbyA8d2luZ29Ab2Jsb25nLm5ldD4KCgkgIGJhc2VzaW5rOiBwcm9wYWdhdGUgVVBTVFJFQU0gZXZlbnRzIGluIHB1bGwgbW9kZSB0b28KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6IFByb3BhZ2F0ZQoJICB1cHN0cmVhbSBldmVudHMgaW4gcHVsbCBtb2RlIHRvby4KCjIwMDktMDMtMDUgMTE6Mjk6NDggKzAxMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogcmVsYXggZmFpbHVyZSB0byBkZWFjdGl2YXRlIHVubGlua2VkIHBhZHMKCSAgV2hlbiBkZS9hY3RpdmF0aW5nIGEgcGFkIGluIHB1bGwgbW9kZSB0aGUgcGFkIG5lZWRzIHRvIGRlL2FjdGl2YXRlIHRoZQoJICBwZWVyIHBhZCBpdCBpcyBjb25uZWN0ZWQgdG8sIGZhaWx1cmUgdG8gYmUgYWJsZSB0byBkbyB0aGlzIGluIGFjdGl2YXRpb24gbW9kZQoJICBpcyBhbiBlcnJvci4KCSAgSG93ZXZlciBpZiB0aGVyZSBpcyBubyBwZWVycGFkLCB3ZSBjYW4gc3RpbGwgZGVhY3RpdmF0ZSB0aGUgcGFkIGNvcnJlY3RseSBhbmQKCSAgYXNzdW1lIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGRlYWN0aXZhdGUgdGhlIHVubGlua2VkIHBlZXIgcGFkIGV2ZW50dWFsbHkuCgkgIEZpeGVzICM1NzQxNjMuCgoyMDA5LTAzLTA1IDExOjAyOjU5ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIEdzdFBvbGw6IHNldCB0aGUgcmV0dXJuIHZhbHVlIG9uIHdpbmRvd3MKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZnVuY3Rpb25zIF9yZWFkL193cml0ZV9jb250cm9sKCkKCSAgcmV0dXJuIHRoZSBhY3R1YWwgcmVzdWx0IGluc3RlYWQgb2YgYWx3YXlzIEZBTFNFIG9uIHdpbmRvd3MuCgkgIEZpeGVzICM1NzQyMTEuCgoyMDA5LTAzLTA0IDEwOjQ2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIENWUy10by1naXQgbWlncmF0aW9uCgkgIEZpeGVzICM1NzM5NDYuCgoyMDA5LTAzLTA0IDA5OjIwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEdzdEFkYXB0ZXI6IERpc2NhcmQgZW1wdHkgYnVmZmVycyBpbiBfcHVzaCgpLiBGaXhlcyAjNTc0MDI0CgoyMDA5LTAzLTAzIDIwOjAxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIFVwZGF0ZSAuZ2l0aWdub3JlCgoyMDA5LTAzLTAzIDE5OjU4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgYml0cyBmb3IgdW5pbnN0YWxsZWQgY2hlY2tvdXRzIG9mIGdzdC1vcGVubWF4IGFuZCB0b3RlbQoKMjAwOS0wMy0wMiAxNjoxNzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IEFkZCBnc3RfdXRpbF9hcnJheV9iaW5hcnlfc2VhcmNoKCkgZm9yIGJpbmFyeSBzZWFyY2hzIG9uIGEgc29ydGVkIGFycmF5CgkgIFRoaXMgd2lsbCBiZSBtb3N0bHkgdXNlZnVsIGluIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgc29tZSBraW5kIG9mIGludGVybmFsCgkgIHNlZWsvaW5kZXggdGFibGUuIEN1cnJlbnRseSBhbG1vc3QgYWxsIG9mIHRoZW0gKG9yIGV2ZW4gYWxsIG9mIHRoZW0pCgkgIGFyZSB1c2luZyBhIGxpbmVhciBzZWFyY2ggYWx0aG91Z2ggdGhlIHVzZWQgYXJyYXkgaXMgYWxyZWFkeSBzb3J0ZWQsCgkgIHdhc3Rpbmcgc29tZSBDUFUgdGltZSB3aXRob3V0IGdvb2QgcmVhc29uLgoJICBGaXhlcyBidWcgIzU3MzYyMy4KCjIwMDktMDItMjggMTE6MTU6MjkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQnVtcCBnbGliIHJlcXVpcmVtZW50IHRvIDIuMTQKCSAgQWxzbyByZW1vdmUgY29kZSBjb25kaXRpb25hbCBvbiA8IDIuMTQuCgoyMDA5LTAyLTI4IDEzOjM0OjA4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgUmVtb3ZlIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbiBmcm9tIE1BTklGRVNULCBpdCBubyBsb25nZXIgZXhpc3RzCgoyMDA5LTAyLTI3IDEzOjM1OjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFByb3Blcmx5IHJlc2V0IHRoZSBjYXBzZmlsdGVyIHdoZW4gc2V0dGluZyBjYXBzIEFOWS4KCjIwMDktMDItMjcgMTI6MzQ6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0aGUgZnJhbWVzdGVwIGRyYWZ0CgkgIFVwZGF0ZSB0aGUgZG9jcyBhIGxpdHRsZS4KCSAgQWRkIHByb3BlcnR5IHRvIGFsbG93IGluY3JlbWVudGFsIHN0ZXBwaW5nIHNvIHRoYXQgd2UgY2FuIHJlZHVjZSBleGNlc3NpdmUKCSAgcXVldWVpbmcuCgoyMDA5LTAyLTI2IDE1OjQwOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3ZlIGxlZnQgb3ZlciBoYW5kbGluZyBvZiB0aGUgZXJyb3IgY2FzZSB0byB0aGUgYWN0aXZhdGVfZmFpbGVkIGxhYmVsLgoJICBJZiB3YXMgbGVmdCBhcyBkZWFkIGNvZGUuCgoyMDA5LTAyLTI1IDE5OjU5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IFVwZGF0ZSBzaGF2ZSBpbml0IHN0YXRlbWVudCBmb3IgY2hhbmdlcyBpbiBjb21tb24uIEJ1bXAgY29tbW9uLgoKMjAwOS0wMi0yNSAxMDo1MTo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogRG9uJ3QgYXR0ZW1wdCB0byBwYXJzZSBlbXB0eSBjYXBzCgoyMDA5LTAyLTI1IDE0OjE5OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogU2V0IHR5cGVmaW5kIGZhY3RvcnkgY2FwcyB0byBOVUxMIGluc3RlYWQgb2YgZW1wdHkgY2FwcyBpZiB0aGV5IG9yaWdpbmFsbHkgd2VyZSBOVUxMCgoyMDA5LTAyLTI1IDExOjMxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDljZjhjOWIgdG8gYTZjZTVjNgoKMjAwOS0wMi0yNCAxNToxMDoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnliaW5hcnk6IENoZWNrIGlmIHR5cGVmaW5kIGZhY3RvcnkgY2FwcyBhcmUgTlVMTCBiZWZvcmUgY29weWluZyB0aGVtCgoyMDA5LTAyLTI0IDExOjQwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIHVuZGVjbGFyZWQgc3ltYm9scyBmcm9tIGRvY3MKCSAgUmVtb3ZlIHNvbWUgdW5kZWNsYXJlZCBzeW1ib2xzIGZyb20gdGhlIGRvY3MuCgoyMDA5LTAyLTIzIDEzOjAxOjExIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgQ2hhbmdlIGhvdyB3aW4zMi9jb21tb24vY29uZmlnLmggaXMgdXBkYXRlZAoJICBHZW5lcmF0ZSB3aW4zMi9jb21tb24vY29uZmlnLmgtbmV3IGRpcmVjdGx5IGZyb20gY29uZmlnLmguaW4sCgkgIHVzaW5nIHNoZWxsIHZhcmlhYmxlcyBpbiBjb25maWd1cmUgYW5kIHNvbWUgaGFyZC1jb2RlZCBpbmZvcm1hdGlvbi4KCSAgQ2hhbmdlIHRvcC1sZXZlbCBtYWtlZmlsZSBzbyB0aGF0ICdtYWtlIHdpbjMyLXVwZGF0ZScgY29waWVzIHRoZQoJICBnZW5lcmF0ZWQgZmlsZSB0byB3aW4zMi9jb21tb24vY29uZmlnLmgsIHdoaWNoIHdlIGtlZXAgaW4gc291cmNlCgkgIGNvbnRyb2wuICBJdCdzIGtlcHQgaW4gc291cmNlIGNvbnRyb2wgc28gdGhhdCB0aGUgZ2l0IHRyZWUgaXMKCSAgYnVpbGRhYmxlIGZyb20gVlMuCgoyMDA5LTAyLTIzIDEwOjUyOjE0IC0wODAwICBEYXZpZCBGbHlubiA8ZGF2aWRmQHJkLmJiYy5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIEFkZCBzcmNkaXIgdG8gaW5jbHVkZXMgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgkgIFdoZW4geW91IHVzZSBnc3RyZWFtZXIgdW5pbnN0YWxsZWQgYW5kIGJ1aWxkIG91dHNpZGUKCSAgdGhlIHNvdXJjZSB0cmVlLCB0aGUgaW5jbHVkZXMgbmVlZCB0byBiZSBzcGVjaWZpZWQgZm9yCgkgIGJvdGggdGhlIHNvdXJjZSB0cmVlIGFuZCB0aGUgYnVpbGQgdHJlZS4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoyMDA5LTAyLTIzIDE3OjM2OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIEVycm9yIG91dCBtb3JlIHNwZWNpZmljYWxseSBvbiBlbXB0eSBjYXBzCgkgIFdoZW4gd2UgZ2V0IGVtcHR5IGNhcHMgZnJvbSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiBpbiB0aGUgZGVmYXVsdCBuZWdvdGlhdGUKCSAgZnVuY3Rpb24sIHBvc3QgYSBtb3JlIGRlc2NyaXB0aXZlIGVycm9yLgoKMjAwOS0wMi0yMyAxNToyNDowMCArMDEwMCAgQW5keSBXaW5nbyA8d2luZ29Ab2Jsb25nLm5ldD4KCgkgIGZpeCB1cmkgaGFuZGxlciBpdGVyYXRpb24gaW4gZ3N0LWluc3BlY3QKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogV2hvb3BzLCBmaXggaXRlcmF0aW9uLgoJICBJJ20gc3R1cGlkLgoKMjAwOS0wMi0yMyAxMjozMzoxMyArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIEZpeCBzaWduZWQgd2hlbiBjb21waWxpbmcgd2l0aCBNU3lzL01pbkdXCgkgIGZpeCBzaWduZWQgaXNzdWVzIHdoZW4gY29tcGlsaW5nIHdpdGggTVN5cy9NaW5HVy4KCSAgRml4ZXMgIzU3MjU5MS4KCjIwMDktMDItMjMgMTA6NTM6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIERvbid0IGZvcndhcmQgTEFURU5DWSBldmVudCB3aGVuIG5vdCByZWFkeQoJICBXaGVuIHdlIGFyZSBub3QgcmVhZHkgdG8gaGFuZGxlIGEgbGF0ZW5jeSBxdWVyeSAod2UgYXJlIG5vdCB5ZXQgcHJlcm9sbGVkKSB3ZQoJICBhbHNvIGRvbid0IHRyeSB0byBmb3J3YXJkIHRoZSBsYXRlbmN5IGV2ZW50IGJlY2F1c2UgdGhhdCBtaWdodCBjYXVzZSB1bmV4cGVjdGVkCgkgIGVycm9ycyB3aGVuIHVwc3RyZWFtIGlzIG5vdCB5ZXQgbGlua2VkLgoKMjAwOS0wMi0yMiAyMjowOTozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2NvcmU6CgkgIFJlbW92ZSBjb3JlIGZpbGUgZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMDktMDItMjIgMjA6MDE6MDUgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2NvcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmNfZnVsbAoJICBUaGlzIGFsbG93cyBjb25uZWN0aW5nIGEgR0Rlc3Ryb3lOb3RpZnkgZm9yIHdoZW4gdGhlIGNhbGxiYWNrIGlzIHJlbW92ZWQvcmVwbGFjZWQuCgkgIFBhcnRpYWxseSBmaXhlcyAjNTE0NzE3CgoyMDA5LTAyLTIyIDE5OjA1OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBJbmNsdWRlIGZsb2F0aW5nIHBvaW50IHdyaXRlL3JlYWQgZnVuY3Rpb25zIGluIHRoZSBkb2NzIGJ5IHdvcmtpbmcgYXJvdW5kIGEgZ3RrLWRvYyBidWcKCjIwMDktMDItMjIgMTg6NTM6MTAgKzAxMDAgIEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgVXNlIHRoZSBjb3JyZWN0IHVucmVmIGZ1bmN0aW9uCgoyMDA5LTAyLTIyIDE4OjUxOjA4ICswMTAwICBBbGkgU2FiaWwgPGFsaS5zYWJpbEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQ29udmVydCB1bnJlZi9jb3B5IGZ1bmN0aW9ucyBvZiBHc3RNaW5pT2JqZWN0IHN1YmNsYXNzZXMgdG8gc3RhdGljIGlubGluZSBmdW5jdGlvbnMKCSAgdW5yZWYgYW5kIGNvcHkgZnVuY3Rpb25zIGFyZSBzb21ldGltZXMgdXNlZCBhcyBmdW5jdGlvbgoJICBwb2ludGVycyBmb3IgZXhhbXBsZSBpbiB0aGUgY2FzZSBvZiBnX2hhc2hfdGFibGVfbmV3X2Z1bGwKCSAgYXMgYSBHRGVzdHJveU5vdGlmeSBmdW5jdGlvbi4KCSAgQ3VycmVudGx5IEdzdEJ1ZmZlciwgR3N0RXZlbnQsIEdzdE1lc3NhZ2UgYW5kIEdzdFF1ZXJ5CgkgIGRlZmluZSB0aGVpciByZXNwZWN0aXZlIHVucmVmIGFuZCBjb3B5IGZ1bmN0aW9ucyBhcwoJICBtYWNyb3MsIG1ha2luZyB1c2Ugb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmL2NvcHkuCgkgIFRoaXMgYXBwcm9hY2ggd29ya3MgdmVyeSB3ZWxsIGZvciBtb3N0IGNhc2VzLCBleGNlcHQKCSAgZm9yIHNvbWUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYmluZGluZ3MgKGN1cnJlbnRseSBWYWxhKSwKCSAgd2hlcmUgdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHNlbWFudGljcyBhcmUgZGVmaW5lZAoJICBkZWNsYXJhdGl2ZWx5LgoJICBUaGUgcG9zc2libGUgc29sdXRpb25zIHdvdWxkIGJlIHRvIGVpdGhlciBjb252ZXJ0IGFsbAoJICB0aGUgbWFjcm9zIGludG8gc3RhdGljIGlubGluZSBmdW5jdGlvbiwgb3IgY2hhbmdlIHRoZQoJICBzaWduYXR1cmUgb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmIHRvIHRha2UgYSB2b2lkKgoJICBpbnN0ZWFkIG9mIGEgR3N0TWluaU9iamVjdCouCgkgIEZpeGVzIGJ1ZyAjNTcyNDgwLgoKMjAwOS0wMi0yMiAxNToyMjoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFVzZSBzaGF2ZSAoaHR0cDovL2dpdC5sZXNwaWF1Lm5hbWUvY2dpdC9zaGF2ZS8pIHRvIHNpbXBsaWZ5IGJ1aWxkIG91dHB1dAoKMjAwOS0wMi0yMiAxNTo0NDozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZDdjOWNjIHRvIDljZjhjOWIKCjIwMDktMDItMjEgMTE6MTM6MzAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4MGM2MjdkIHRvIDVkN2M5Y2MKCjIwMDktMDItMTkgMTg6MDU6MDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEdzdEJ1ZmZlckZsYWdzOiBBZGQgIlNpbmNlOiAwLjEwLjIzIiBmb3IgdGhlIG5ld2x5IGFkZGVkIGZsYWdzCgoyMDA5LTAyLTE5IDE2OjA0OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBHc3RCdWZmZXJGbGFnczogQWRkIDMgbmV3IG1lZGlhLXNwZWNpZmljIGJ1ZmZlciBmbGFncy4KCSAgUGFydGlhbGx5IGZpeGVzICMxNjM1NzcKCjIwMDktMDItMTkgMTI6NTc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcHJpbnQgbm9ybWFsIG91dHB1dCB0byBzdGRvdXQsIGFuZCBvbmx5IGVycm9ycyBhbmQgd2FybmluZ3MgdG8gc3RkZXJyIGluIGdzdC1sYXVuY2gKCSAgTGV0J3Mgbm90IHByaW50IGV2ZXJ5dGhpbmcgdG8gc3RkZXJyLiBTdXBwcmVzcyBzb21lIG1vcmUgJ25vcm1hbCcgbWVzc2FnZXMgd2hlbiAtLXF1aWV0IHdhcyBwYXNzZWQuCgoyMDA5LTAyLTE5IDEyOjQ1OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHVzZSBnX3ByaW50KigpIGluc3RlYWQgb2YgKnByaW50ZigpIGluIGdzdC1sYXVuY2gKCSAgV2Ugc2hvdWxkIHVzZSBHTGliJ3MgZ19wcmludCooKSBmdW5jdGlvbnMgZm9yIHByaW50aW5nIHN0dWZmIGluIGdzdC1sYXVuY2gsIG5vdCBwcmludGYgYW5kIGZyaWVuZHMsIHNpbmNlIHdlJ3JlIHByaW50aW5nCgkgIHRyYW5zbGF0ZWQgc3RyaW5ncywgd2hpY2ggd2UgZ2V0IGluIFVURi04IGVuY29kaW5nLCBhbmQgR0xpYidzIHByaW50IGZ1bmN0aW9ucyBleHBlY3QgVVRGLTggZW5jb2RlZCBzdHJpbmdzIHdoZXJlYXMgcHJpbnRmCgkgIGV0IGFsLiBleHBlY3Qgc3RyaW5ncyBpbiB0aGUgbG9jYWxlIGVuY29kaW5nLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBVVEYtOC4KCSAgQWxzbyBhZGQgYSBQUklOVCBjb252ZW5pZW5jZSBtYWNybyBzbyB3ZSBkb24ndCBoYXZlIHRvIGxpdHRlciB0aGUgY29kZSB3aXRoIGlmICghcXVpZXQpIHN0YXRlbWVudHMuCgoyMDA5LTAyLTE5IDExOjE4OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9yYW5kb20vbWltZXR5cGVzOgoJICBkb2NzOiBmaXggY29uc3RhbnRzIGZvciBHX0xJVFRMRV9FTkRJQU4gYW5kIEdfQklHX0VORElBTgoJICBXZSBnb3QgdGhlIGNvbnN0YW50cyBmb3IgR19MSVRUTEVfRU5ESUFOIGFuZCBHX0JJR19FTkRJQU4gdGhlIHdyb25nIHdheSBhcm91bmQgaW4gc29tZSBkb2NzIChmaXhlczogIzU3MjM5MikuIEFsc28gbWVudGlvbgoJICBHX0JZVEVfT1JERVIgaW4gdGhlIGF1ZGlvIHR5cGVzIHNlY3Rpb24uCgoyMDA5LTAyLTE5IDEwOjI1OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byBkZWYgZmlsZXMKCSAgQWRkIHRoZSBuZXcgcmVxdWVzdF9tZXNzYWdlIHN5bWJvbHMgdG8gdGhlIHdpbmRvd3MgZGVmIGZpbGUuCgoyMDA5LTAyLTE4IDE1OjMxOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkIG1lc3NhZ2UgdG8gcmVxdWVzdCBhIHN0YXRlIGNoYW5nZQoJICBBZGQgYSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFIHRoYXQgY2FuIGJlIHBvc3RlZCBieSBlbGVtZW50IHdoZW4gdGhleSB3b3VsZAoJICBsaWtlIHRvIGhhdmUgdGhlIGFwcGxpY2F0aW9uIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHBpcGVsaW5lLiB0aGUgcHJpbWFyeSB1c2UKCSAgY2FzZSBpcyB0byBwYXVzZSB0aGUgcGlwZWxpbmUgd2hlbiBhbiBhdWRpbyBtaXhlciBpcyBtaXhpbmcgYSBoaWdoZXIgcHJpb3JpdHkKCSAgc3RyZWFtIGJ1dCBpdCBjYW4gYWxzbyBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3Nlcy4KCSAgQWRkIHNvbWUgZG9jcyBhbmQgYSB1bml0IHRlc3QuCgkgIEltcGxlbWVudCB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlIGluIGdzdC1sYXVuY2guCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3JlcXVlc3Rfc3RhdGUoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3JlcXVlc3Rfc3RhdGUoKQoJICBBUEk6IEdTVF9NRVNTQUdFX1JFUVVFU1RfU1RBVEUKCjIwMDktMDItMTYgMTI6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIENsZWFyIHRhcmdldCB3aGVuIHRoZSB0YXJnZXQgcGFkIGRpc2FwcGVhcnMKCSAgV2hlbiB0aGUgdGFyZ2V0IHBhZCBkaXNhcHBlYXJzIChiZWNhdXNlIGl0IHdhcyBleHBsaWNpdGx5IHVubGlua2VkIG9yIHRoZQoJICBlbGVtZW50IHdhcyByZW1vdmVkL3VucmVmZmVkKSBtYWtlIHN1cmUgd2UgcmVjZWl2ZSBhIG5vdGlmeSB3aXRoIHRoZSB1bmxpbmsKCSAgZnVuY3Rpb24gb24gdGhlIHByb3h5IHBhZCBhbmQgY2xlYXIgdGhlIHRhcmdldC4gV2UgdXNlIGEgc2ltcGxlIGZsYWcgdG8gbm90IGRvCgkgIHRoaXMgYW5kIGNhdXNlIGRlYWRsb2NrcyB3aGVuIHRoZSB0YXJnZXQgd2FzIGNoYW5nZWQgZXhwbGljaXRseSB1c2luZyB0aGUKCSAgZ2hvc3RwYWQgZnVuY3Rpb25zLgoJICBVcGRhdGUgdGhlIHVuaXQgdGVzdCBiZWNhdXNlIHdlIG5vdyB1bnJlZiB0aGUgdGFyZ2V0IHNvb25lciAoYW5kIGNvcnJlY3RseSkuCgoyMDA5LTAyLTE1IDE2OjM3OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9jczogZm9ybWF0IGFuZCBpbmRlbnQgZXhhbXBsZXMuCgoyMDA5LTAyLTA5IDIyOjQ5OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1xLy0tcXVpZXQgb3B0aW9uIHRvIHN1cHJlc3MgYW55IG5vbiBlcnJvciBvdXRwdXQuCgkgIEhhdmluZyBubyBvdXRwdXQgaXMgbmljZSBmb3Igc2NyaXB0aW5nLiBBbHNvIHVwZGF0ZSB0aGUgbWFucGFnZS4KCjIwMDktMDItMTQgMTM6MzU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGRvY3MvZmFxL3N0YXJ0LnhtbDoKCSogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBGQVE6IHVwZGF0ZSBmb3IgZ2l0IGFuZCBtaXNjZWxsYW5lb3VzIHNtYWxsIGZpeGVzIGFuZCBhZGRpdGlvbnMKCSAgUmVwbGFjZSBhbGwgbWVudGlvbnMgb2YgQ1ZTIHdpdGggZ2l0LiBBZGQgbGluayB0byBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGluIGNnaXQgYW5kIHRvIFN1Ym1pdHRpbmdQYXRjaGVzIHBhZ2UgaW4gd2lraS4gRml4IHNvbWUgdHlwb3MuIFVwZGF0ZSBpbmRlbnRpbmcgcnVsZXMgdG8gd2hhdCB3ZSBhY3R1YWxseSB1c2UgKCM1NzE2NDYpLgoKMjAwOS0wMi0xMyAxNjoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAqLnBvIGZpbGVzIGZvciBuZXdseS1hZGRlZCB0cmFuc2xhdGFibGUgc3RyaW5ncwoJICBUaGUgb25seSBwZW9wbGUgd2hvIHNob3VsZCBnZXQgY29uZmxpY3RzIG5vdyBhcmUgcGVvcGxlIHdobyBoYXZlIGNsb25lZCBhbmQgYnVpbHQgZ3N0cmVhbWVyIGJldHdlZW4gdGhlIHRpbWUgdGhvc2Ugc3RyaW5ncwoJICB3ZXJlIGFkZGVkIGFuZCB0aGlzIGNvbW1pdC4KCjIwMDktMDItMTIgMTA6Mzg6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQVBJOiBBZGQgSE9NRVBBR0UgdGFnCgkgIFRoaXMgdGFnIHdpbGwgbGlzdCBhIGhvbWVwYWdlIGZvciB0aGUgbWVkaWEsCgkgIGkuZS4gdGhlIGFydGlzdCdzIG9yIG1vdmllJ3MgaG9tZXBhZ2UuCgkgIFRoaXMgaXMgZGlmZmVyZW50IHRvIEdTVF9UQUdfTE9DQVRJT04gYXMgdGhlIGxhdHRlcgoJICBsaXN0cyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIG1lZGlhLgoJICBGaXhlcyBidWcgIzU3MTIyNy4KCjIwMDktMDItMDkgMTI6MDA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEJ1bXAgcmV2aXNpb24gdG8gdXNlIGZvciBjb21tb24gc3VibW9kdWxlLgoKMjAwOS0wMi0wOCAxMDoyODoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIFJlcGxhY2Ugc29tZSBtZW50aW9ucyBvZiBDVlMgYnkgR0lUCgoyMDA5LTAyLTA2IDEwOjUxOjI4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBSZXdyaXRlIHNhbml0eSBjaGVjayB0byBhY3R1YWx5IGNhdGNoIHNvbWV0aGluZy4KCSAgVGhlIHByZXZpb3VzIGNvbW1pdCB3YXMgYm9ndXMsIGFzIHdhcyB0aGUgY2hlY2sgYmVmb3JlLiBXZSBqdXN0IHBvaW50IG0gdG8gdGhlIGZpbGUgZGF0YSwKCSAgc28gbmVpdGhlciBpdCBub3IgaXRzIG1lbWJlcnMgd2lsbCBiZSBOVUxMLiBCZXR0ZXIgY2hlY2sgaWYgd2UgaGF2ZSBlbm91Z2ggZGF0YS4KCjIwMDktMDItMDUgMjM6MTE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTWFrZXZhcnM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogYXZvaWQgY29uZmxpY3RzIG9mIGxvY2FsICoucG8gZmlsZXMgd2l0aCBmaWxlcyBpbiBnaXQKCSAgTWFrZSBpdCBzbyB0aGF0IGZpbGVuYW1lcyBhbmQgbGluZSBudW1iZXJzIGFyZSBvbmx5IHN0b3JlZCBpbiB0aGUgKi5wb3QgZmlsZSAod2hpY2ggaXMgbm90IGluIGdpdCksIGJ1dCBub3QgaW4gdGhlCgkgIGluZGl2aWR1YWwgKi5wbyBmaWxlcy4gVGhpcyBpbmZvcm1hdGlvbiBpcyBoYXJkbHkgdXNlZnVsIGZvciB0cmFuc2xhdG9ycyBpbiBvdXIgY2FzZSwgYW5kIGl0IHNob3VsZCBhdm9pZCB0aGUgY29uc3RhbnQKCSAgY29uZmxpY3RzIG9mIGxvY2FsICoucG8gZmlsZXMgd2l0aCB0aGUgb25lcyBpbiBnaXQgd2hpY2ggYXJlIGNhdXNlZCBieSB0aGUgc291cmNlIGZpbGVzIGNoYW5naW5nIGFuZCB0aGUgbGluZSBudW1iZXJzCgkgIGJlaW5nIHVwZGF0ZWQuCgkgIFRoaXMgY29tbWl0IGlzIGxpa2VseSB0byBjYXVzZSBvbmUgbGFzdCBtZXJnZSBjb25mbGljdCBmb3IgeW91LCB3aGljaCB5b3UgY2FuIHdvcmsgYXJvdW5kIHdpdGggImdpdCBjaGVja291dCBwby8qLnBvIgoJICBiZWZvcmUgbWVyZ2luZyBvciBwdWxsaW5nLiBBZnRlciB0aGF0IHRoZXJlIHNob3VsZCAoaG9wZWZ1bGx5KSBub3QgYmUgYW55IG1vcmUgbG9jYWwgbW9kaWZpY2F0aW9ucyBvZiB0aGVzZSBmaWxlcy4KCjIwMDktMDItMDUgMTU6MjI6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEdzdFBvbGwgQVBJIHRvIGxpYmdzdHJlYW1lci5kZWYKCjIwMDktMDItMDUgMTc6MjM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBjbGVhbnVwOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBpbiBfY2xhc3NfaW5pdCgpIGFuZCByZWluZGVudC4KCjIwMDktMDItMDUgMTc6MDU6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiByZW1vdmUgdW51c2VkIHNldC9nZXQgcHJvcGVydHkgZnVuY3Rpb25zCgoyMDA5LTAyLTA1IDE1OjU2OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBjb21wYXJpbmcgYXJyYXlzIGFnYWluc3QgTlVMTCBpcyB1c2VsZXNzCgoyMDA5LTAyLTA1IDEzOjU5OjQ4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgdW51c2VkIGNvZGUKCSAgU2tpcCBsb29waW5nIHRocnUgYSBkdW1teSBpbXBsZW1lbnRhdGlvbi4KCjIwMDktMDItMDUgMTM6NTc6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogR3N0Q2xvY2tUaW1lIGlzIGFsd2F5cyA+PSAwCgoyMDA5LTAyLTA1IDEzOjQyOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA5LTAyLTA0IDE3OjIwOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2xlYW51cDogRWl0aGVyIGNoZWNrIGFsd2F5cyBmb3IgaW50ZXJuYWwgYmVpbmcgTlVMTCBvciBkb24ndC4KCSAgSU1ITyB0aGUgZ2hvc3RwYWQgaXMgYm9ya2VkIGlmIGludGVybmFsIGlzIE5VTEwuIFNvIHRoZSBjaGVjayBjYW4gZ28gYW5kIGl0IGlzCgkgIHVzZWQgbGF0ZXIgdW5jaGVja2VkIGFueXdheS4KCjIwMDktMDItMDQgMTY6MjY6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGNyYXNoOiBEb24ndCBjcmFzaCBvbiBub24gZXhpc3RlbnQgdGFncy4KCjIwMDktMDItMDQgMTY6MTc6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBsZWFrOiBEb24ndCBsZWFrIHR5cGUgbmFtZSBpbiBmYWlsdXJlIGNhc2VzLgoKMjAwOS0wMi0wNCAxNjowNzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IERvbid0IGFzc3VtZSBnc3RfcGFkX2dldF9wZWVyIHJldHVybnMgbm9uIE5VTEwgdmFsdWUuCgoyMDA5LTAyLTA0IDE1OjQxOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgbGVhazogZG9uJ3QgcmV0dXJuIHdpdGhvdXQgY2FsbGluZyB2YV9lbmQKCjIwMDktMDItMDMgMTg6MDQ6NDYgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIEltcGxlbWVudCB0aGUgc3lzdGVtY2xvY2sgd2l0aCBnc3Rwb2xsCgkgIEFkZCBhIHByb3BlcnR5IHRvIHNlbGVjdCB0aGUgY2xvY2sgdHlwZSwgY3VycmVudGx5IFJFQUxUSU1FIGFuZCBNT05PVE9OSUMgd2hlbgoJICBwb3NpeCB0aW1lcnMgYXJlIGF2YWlsYWJsZS4KCSAgSW1wbGVtZW50IHRoZSBzeXN0ZW1jbG9jayB3aXRoIEdzdFBvbGwgaW5zdGVhZCBvZiBHQ29uZC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgc2NoZWR1bGUgdGltZW91dHMgd2l0aCBuYW5vc2Vjb25kIHByZWNpc3Npb24gb24gbmV3ZXIga2VybmVscyBhbmQgd2l0aCBwcG9sbAoJICBzdXBwb3J0LiBJdCdzIGFsc28gcmVzaWxpZW50IHRvIGNoYW5nZXMgdG8gdGhlIHN5c3RlbWNsb2NrIGJlY2F1c2Ugb2YgTlRQIG9yCgkgIHNpbWlsYXIuCgoyMDA5LTAyLTAzIDE3OjQ5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSAgR3N0UG9sbDogYWRkIG1ldGhvZHMgdG8gdXNlIGdzdHBvbGwgZm9yIHRpbWVvdXRzCgkgIEFkZCBhIHNwZWNpYWwgdGltZXIgbW9kZSBpbiBHc3RQb2xsIHRoYXQgbWFrZXMgaXQgb25seSB1c2UgdGhlIGNvbnRyb2wgc29ja2V0CgkgIHdpdGggYSB0aW1lb3V0IHRvIHNjaGVkdWxlIHRpbWVvdXRzLiBBbHNvIGFkZCBhIHBhaXIgb2YgbWV0aG9kcyB0byB3YWtldXAgdGhlCgkgIHRpbWVvdXQgdGhyZWFkLgoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX25ld190aW1lcigpCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfd3JpdGVfY29udHJvbCgpCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfcmVhZF9jb250cm9sKCkKCjIwMDktMDItMDMgMTU6Mjc6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIEdzdEJhc2VTaW5rOiB1c2UgbmV3IHZhcmlhYmxlIHRvIHNjaGVkdWxlIHByZXJvbGwKCSAgVXNlIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8ga2VlcCB0cmFjayBpZiB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXJvbGwgbWV0aG9kCgkgIGluc3RlYWQgb2YgYWJ1c2luZyB0aGUgY29tbWl0ZWQgdmFyaWFibGUuCgoyMDA5LTAyLTAzIDEyOjUyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBHc3RCYXNlU2luazogYXZvaWQgY2FsbGluZyBwcmVyb2xsIG11bHRpcGxlIHRpbWVzCgkgIEZpeCBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBmaXggZm9yICM1Njc3MjUgaW4gY29tbWl0CgkgIDFjN2FiNGVkNGYxOWI2M2JhMDQ2YTZmMmZlN2QwOWE2YzE3MzU3YzUuIFdlIHNob3VsZCBvbmx5IGNhbGwgdGhlIHByZXJvbGwKCSAgZnVuY3Rpb24gb25jZSBuYW1lbHkgd2hlbiB3ZSBkaWQgbm90IHlldCBjb21taXQgdGhlIHN0YXRlIGNoYW5nZS4KCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgd2UgY2FsbCB0aGUgcHJlcm9sbCBmdW5jdGlvbiB3aGVuIGludGVycnVwdGluZyB0aGUKCSAgY2xvY2tfd2FpdCAoc2VlICM1Njc3MjUpLgoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB3ZSBvbmx5IGNhbGwgdGhlIHByZXJvbGwgZnVuY3Rpb24gb25jZS4KCjIwMDktMDEtMjkgMTM6MzA6NDUgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QKCSAgV2hpbGUgcmVjb25maWd1cmluZyBhIGJhc2V0cmFuc2Zvcm0gZWxlbWVudCB3ZSBuZWVkIGFsc28gdG8gcmVjaGVjawoJICB0aGUgYWxsb2MgcmVxdWVzdC4gQmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGNhcHMgY2hhbmdlcwoJICB0aGUgcHJveHlfYWxsb2Mgc3RhdGUgaXMgbm90IGNvcnJlY3QgYW55bW9yZS4KCSAgKFJlLWNvbW1pdCBhZnRlciBkaXNjdXNpb24gd2l0aCBXaW0gb24gSVJDKQoKMjAwOS0wMi0wMiAxNDoxOTo1NyArMDEwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IE1ha2UgaXQgY29tcGlsZSB3aXRoIEdTVF9ESVNBQkxFX0dTVF9ERUJVRy4KCjIwMDktMDEtMzEgMjE6MzQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzL3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgcmVwbzogUmVhcnJhbmdlIGdpdGlnbm9yZXMgaW4gZG9jcyBzdWJkaXIKCSAgdG1wbCBkaXJlY3RvcmllcyBhcmUgcmVtb3ZlZCBieSBtYWtlIGNsZWFuLCB3aGljaCBkZWxldGVzIHRoZQoJICAuZ2l0aWdub3JlLiBVc2UgYSAuZ2l0aWdub3JlIGhpZ2hlciB1cCB0byBpZ25vcmUgdGhlIHRtcGwgZGlycyBpbnN0ZWFkLgoKMjAwOS0wMS0zMSAyMTozMjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICBjaGVjazogRml4IGNvbW1lbnQgYWJvdXQgdGhlIHRpbWVvdXQgZm9yIGdlbmVyaWMgc3RyZXNzIHRlc3QuCgkgIFNldHRpbmcgdGhlIHRpbWVvdXQgdG8gMCBtYWtlcyBpdCBpbmZpbml0ZSwgc28gZml4IHRoZSBjb21tZW50CgkgIGFib3ZlIGFjY29yZGluZ2x5LgoKMjAwOS0wMS0zMSAyMTozMTo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrOiBJbmNyZWFzZSB0aW1lb3V0IGZvciB0aGUgdGVlIHRlc3QKCSAgVGhlIHRlZSBzdHJlc3MgdGVzdCBrZWVwcyB0aW1pbmcgb3V0IGZvciBtZSBvbiBvbmUgb2YgdGhlIHNsb3dlcgoJICBtYWNoaW5lcywgc28gaW5jcmVhc2UgdGhlIHRpbWVvdXQgdG8gMyBtaW5zLgoKMjAwOS0wMS0zMCAxNDo1NjowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBVcGRhdGUgdGhlIHdpbjMyIGNvbmZpZy5oLmluIHRlbXBsYXRlIGZyb20gdGhlIG1haW4gY29uZmlnLmguaW4KCjIwMDktMDEtMzAgMjI6MTg6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgIEFkZCByZWxlYXNlaW5mbyB3aXRoIG9ubGluZSB1cmwuCgoyMDA5LTAxLTMwIDE4OjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBSZW1vdmUgYnJva2VuIGNsYXNzIHRvIGludGVyZmFjZSBjYXN0IG1hY3JvcyBmcm9tIEdzdFVyaUhhbmRsZXIgYW5kIEdzdEltcGxlbWVudHNJbnRlcmZhY2UgaGVhZGVycwoJICBSZW1vdmUgY2xhc3MtdG8taW50ZXJmYWNlLXN0cnVjdCBjYXN0IG1hY3JvcyB3aGljaCBkb24ndCB3b3JrLAoJICBkb24ndCBtYWtlIHNlbnNlLCBhbmQgaW4gc29tZSBjYXNlcyB3b3VsZG4ndCBldmVuIGNvbXBpbGUgaWYKCSAgdXNlZC4gUmVtb3ZhbCBzaG91bGQgYmUgb2sgc2VlaW5nIHRoYXQgY29kZSB3aGljaCB1c2VzIGFueSBvZgoJICB0aGVzZSBpcyBicm9rZW4gYW5kIGJvdW5kIHRvIGNyYXNoLiBGaXhlcyAjNTY1NjA3LgoJICBBUEk6IHJlbW92ZSBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0VfQ0xBU1MKCSAgQVBJOiByZW1vdmUgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFX0NMQVNTCgkgIEFQSTogcmVtb3ZlIEdTVF9VUklfSEFORExFUl9DTEFTUwoKMjAwOS0wMS0zMCAxNjoyODoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkgIFJlbW92ZSBnaXRpZ25vcmUgaW4gZG9jcy9nc3QvdG1wbC4KCSAgVGhpcyBnaXRpZ25vcmUgZmlsZSBzZWVtcyB0byBnZXQgZGVsZXRlZCBieSB0aGUgYnVpbGQsIGFuZCBkb2Vzbid0CgkgIHNlZW0gdG8gYmUgZG9pbmcgYW55dGhpbmcgdXNlZnVsIGFueXdheS4KCjIwMDktMDEtMzAgMTY6MjE6NTUgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBCdW1wIGNvbW1vbgoKMjAwOS0wMS0zMCAxNDo1OTowNyArMDAwMCAgSmFuIFNjaG1pZHQgLSBTdW4gTWljcm9zeXN0ZW1zIC0gRHVibGluIElyZWxhbmQgPGpzMjEyNDE5QGZsYWlsLihub25lKT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBGaXggY29tcGlsYXRpb24gd2FybmluZyB3aXRoIEZvcnRlLgoKMjAwOS0wMS0zMCAxMDo0Mzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIkNoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1MGFmZDQ1OTU3OTE5MTc3MmY0MmQxYTQ0ZjM5NTllNTMwYzVjMjY5LgoJICBJdCBicmVha3MgdGhlIGludGVyYWN0aXZlIHRlc3Qtc2NhbGUgdW5pdCB0ZXN0LgoKMjAwOS0wMS0zMCAxMDo0Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIkZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDNhNDYwMmQ3NzE5ZGUzYzNlZjdhZWNlNjhiNWY5NDg5ZDA3ODAxNjIuCgkgIEl0IGJyZWFrcyB0aGUgaW50ZXJhY3RpdmUgdGVzdC1zY2FsZSB1bml0IHRlc3QuCgoyMDA5LTAxLTMwIDEwOjI5OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBbGxvY2F0ZSBldmVyeXRoaW5nIHRoYXQgaXMgd3JpdHRlbiB0byB0aGUgcmVnaXN0cnkgd2l0aCBnX21hbGxvYzAoKQoJICBBbGxvY2F0ZSBldmVyeSBzdHJ1Y3R1cmUgdGhhdCBpcyBkaXJlY3RseSB3cml0dGVuIHRvIHRoZSBiaW5hcnkKCSAgcmVnaXN0cnkgd2l0aCBnX21hbGxvYzAoKS4gT3RoZXJ3aXNlIHNvbWUgcGFydHMgb2YgaXQgd2lsbCBiZQoJICB1bmluaXRpYWxpemVkIChzdHJ1Y3QgcGFkZGluZyBiZWNhdXNlIG9mIGFsaWdubWVudCwgZXRjKSBhbmQKCSAgdmFsZ3JpbmQgd2lsbCBjb21wbGFpbiBhYm91dCBpdC4KCjIwMDktMDEtMzAgMDg6MzA6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIFVzZSBhIHN5bWJvbGljIGxpbmsgZm9yIHRoZSBwcmUtY29tbWl0IGNsaWVudC1zaWRlIGhvb2sKCjIwMDktMDEtMjkgMTU6NDk6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBNYWtlIHN1cmUgdG8gdGFrZSBhIGNvcHkgb2YgdGhlIHN0cmluZ3Mgd2UncmUgZ29pbmcgdG8gZnJlZSBsYXRlci4KCjIwMDktMDEtMjYgMTc6MTU6MTUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQWRkIGxvZ2dpbmcgaW4gZmFpbHVyZSBjYXNlLiBBZGQgbW9yZSBkZXRhaWxzIHRvIGEgdG9kbyBjb21tZW50LgoKMjAwOS0wMS0yNiAxNzoxNDowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9pbml0LmM6CgkgIEFkZCBhIHRyaXZpYWwgc291cmNlIGZvciB0cmFja2luZyBnc3RfaW5pdCB0aW1lIGFjY3Jvc3MgdmVyc2lvbnMuCgoyMDA5LTAxLTI2IDE3OjEzOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIHRvZG8gY29tbWVudHMuCgoyMDA5LTAxLTI5IDEzOjM5OjI5ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIENoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYwoJICBCZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBhIHN1Z2dlc3Rpb24gaGVyZSB3ZSBkb24ndCBuZWVkCgkgIHRvIGNoZWNrIG9uIGNhcHMgZm9yIHByb3h5X2FsbG9jIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIG9uIHRoZSBzdWdnZXN0ZWQKCSAgY2FwcyBpbnN0ZWFkLgoKMjAwOS0wMS0yOSAxMzozMDo0NSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdAoJICBXaGlsZSByZWNvbmZpZ3VyaW5nIGEgYmFzZXRyYW5zZm9ybSBlbGVtZW50IHdlIG5lZWQgYWxzbyB0byByZWNoZWNrCgkgIHRoZSBhbGxvYyByZXF1ZXN0LiBCZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gY2FwcyBjaGFuZ2VzCgkgIHRoZSBwcm94eV9hbGxvYyBzdGF0ZSBpcyBub3QgY29ycmVjdCBhbnltb3JlLgoKMjAwOS0wMS0yNyAyMzoxNDo0OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIEltcHJvdmUgdGhlIGRvY3MgZm9yIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkuCgkgIEl0cyBtZW50aW9uZWQgaW4gdGhlIHNlY3Rpb24gZG9jcywgYnV0IGxldHMgcmVwZWF0IGF0IHRoZSBmdW5jdGlvbiBkb2NzIHRoYXQgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbnZva2VkIGZyb20gYW55IHRocmVhZC4KCjIwMDktMDEtMjcgMTc6NTM6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogZG9uJ3QgdXNlIEVSUk9SX0NGTEFHUyB3aGVuIGJ1aWxkaW5nICRkb2Ntb2R1bGUtc2Nhbi5jCgkgIFdlIGRvbid0IHdhbnQgdG8gdXNlIC1XYWxsIC1XZXJyb3IgYW5kIGZyaWVuZHMgd2hlbiBidWlsZGluZyB0aGUgZ3RrLWRvYy1nZW5lcmF0ZWQKCSAgJGRvY21vZHVsZS1zY2FuLmMsIHNpbmNlIHdlIGNhbid0IGVhc2lseSBmaXggc3R1ZmYgaWYgYSBjZXJ0YWluIGd0ay1kb2MvY29tcGlsZXIKCSAgY29tYmluYXRpb24gYnJlYWtzIHRoZSBidWlsZC4gRml4ZXMgYnVpbGQgb24gdWJ1bnR1IGludHJlcGlkLgoKMjAwOS0wMS0yNyAxNzo1MjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBNYWtlIGdpdCBpZ25vcmUgYmFja3VwIGZpbGVzLgoKMjAwOS0wMS0yNiAyMToyOTowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgRG9uJ3QgY2hlY2sgdGltZXN0YW1wIGhlcmUsIGl0cyBkb25lIGluIHRoZSBjYWxsZWQgZnVuY3Rpb24gYW55d2F5LgoKMjAwOS0wMS0yNiAxMjo1MjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIEF2b2lkIHVubmVlZGVkIHJlYWRzIGZyb20gdGhlIGNvbnRyb2wgc29ja2V0CgkgIEFkZCBhIG5ldyB2YXJpYWJsZSB0aGF0IGtlZXBzIHRyYWNrIG9mIHRoZSBzdGF0dXMgb2YgdGhlIGNvbnRyb2wgc29ja2V0LiBUaGlzCgkgIGFsbG93cyB1cyB0byBhdm9pZCBkb2luZyBhIHJlYWQoKSBvbiB0aGUgY29udHJvbCBzb2NrZXQgd2hlbiB3ZSBkaWQgbm90IHdyaXRlCgkgIGFueXRoaW5nIHRvIGl0LgoJICBGaXhlcyAjNTY4NDM4LgoKMjAwOS0wMS0yNSAyMjoxNzozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIGZhaWx1cmUgY2FzZXMuCgoyMDA5LTAxLTI1IDIyOjExOjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIERvY3VtZW50IHRoYXQgR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zIHVzZSBQQUNLQUdFIGRlZmluZS4gRml4ZXMgIzU1OTcyMi4KCSAgUEFDS0FHRSBpcyBkZWZpbmVkIGJ5IGF1dG9mb28uIElmIHBlb3BsZSB1c2Ugc29tZXRoaW5nIGRpZmZlcmVudCwgdGhleSBtaWdodCB3YW50IHRvIGRlZmluZSBpdCB0aGVtc2VsZi4KCjIwMDktMDEtMjUgMTc6NTg6NTIgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IHR5cG8KCjIwMDktMDEtMjQgMjE6NTA6MDggKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBPbmx5IGZyZWUgbGlzdCBvZiBidWZmZXJzIG9uY2UKCjIwMDktMDEtMjQgMTQ6Mzc6MTQgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBkb2NzL1JFQURNRToKCSAgRml4IHR5cG8KCjIwMDktMDEtMjMgMjM6MDg6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvLy5naXRpZ25vcmU6CgkgIElnbm9yZSBhbm90aGVyIGZpbGUKCjIwMDktMDEtMjMgMjE6NDQ6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9leHRlbnNpb24gdG8gdGhlIHdpbjMyIGRlZnMgZmlsZQoKMjAwOS0wMS0yMyAxNjowOTozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBVcGRhdGUgd2luMzIgY29uZmlnLmggZm9yIDAuMTAuMjIuMSBkZXYgY3ljbGUuLi4KCjIwMDktMDEtMjMgMTY6MDg6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIC5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvdG1wbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L25ldC8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgVXBkYXRlIGEgYnVuY2ggb2YgZ2l0aWdub3JlcyB0byBjbGVhbiB1cCBteSBnaXQgc3RhdHVzIG91dHB1dAoKMjAwOS0wMS0yMyAwOTo1NDo1MyArMDEwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIEZpeCBsaW5raW5nIGZhaWx1cmVzIG9uIFNvbGFyaXMuIEZpeGVzIGJ1ZyAjNTY4NDgxLgoJICBMaW5rIGxpYmdzdHJlYW1lciB3aXRoICQoTElCTSkgYXMgaXQgdXNlcyBtYXRoIGZ1bmN0aW9ucy4KCSAgQWRkIGEgY29uZmlndXJlIGNoZWNrIGZvciBzb2NrZXQgYW5kIG5zbCBsaWJyYXJ5IGFuZCBhZGQKCSAgdGhlbSB0byBMSUJTIGlmIHRoZXkncmUgZm91bmQuIFRoaXMgaXMgbmVlZGVkIG9uIFNvbGFyaXMKCSAgZm9yIHNvY2tldCgpIGFuZCBnZXRob3N0YnluYW1lKCkuCgoyMDA5LTAxLTIyIDE4OjAyOjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gc25hcHNob3QuCgoyMDA5LTAxLTIyIDEzOjU4OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgYnkgbG9nZ2luZyB0aGUgb2Zmc2V0cy4gRml4ZXMgYnVnICM1Njg2NzguCgkgIEluIGNyZWF0ZSgpIGFsc28gbG9nIHRoZSBvZmZzZXRzIGFuZCBub3Qgb25seSB0aGUKCSAgYnVmZmVyIHNpemUuCgoyMDA5LTAxLTIyIDEzOjUxOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb21tb246CgkgIEZpeCBwcmUtY29tbWl0IGhvb2sKCjIwMDktMDEtMjIgMTI6NTI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAwOS0wMS0yMiAxMTo1NDo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBEb2MgZm9yIG5ldyB0eXBlZmluZCBtZXRob2QuCgoyMDA5LTAxLTIyIDEwOjQ1OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMi4xCgoyMDA5LTAxLTIyIDEwOjE2OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMDktMDEtMjIgMDU6MzU6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEluc3RhbGwgYW5kIHVzZSBwcmUtY29tbWl0IGluZGVudGF0aW9uIGhvb2sgZnJvbSBjb21tb24KCjIwMDktMDEtMjEgMTI6NTA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBJZiBubyB0eXBlIHdhcyBmb3VuZCB1c2luZyB0aGUgdHlwZWZpbmQgZnVuY3Rpb25zLCB0cnkgZG9pbmcgYW4gdXBzdHJlYW0gVVJJIHF1ZXJ5IHRvIGd1ZXNzIHRoZSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuCgoyMDA5LTAxLTIxIDEyOjQ4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIEFkZCBuZXcgdHlwZWZpbmcgaGVscGVyIGZ1bmN0aW9uIHRvIGd1ZXNzIHRoZSBjYXBzIGJhc2VkIG9uIHRoZSBmaWxlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuIEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2V4dGVuc2lvbigpCgoyMDA5LTAxLTIxIDEyOjQ1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgQWxsb3cgYWRkaW5nIGEgdHlwZWZpbmRlciB3aXRob3V0IGEgdHlwZWZpbmQgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0byBtYXAgdGhlIGNhcHMgdG8gdGhlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuCgoyMDA5LTAxLTIxIDEyOjQzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBVcGRhdGUgdGhlIGxhc3RfYnVmZmVyIGV4YWN0bHkgd2l0aCB0aGUgYnVmZmVyIHRoYXQgY2F1c2VkIHRoZSBwcmVyb2xsIGFuZCBhbHNvIGNhbGwgdGhlIHByZXJvbGwgbWV0aG9kIHdpdGggdGhhdCBwcmVyb2xsIGJ1ZmZlci4gRml4ZXMgIzU2NzcyNS4KCjIwMDktMDEtMjEgMTI6MjE6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGRvIG5vdCBjYWxsIHRoZSB1bmxpbmsgZnVuY3Rpb24gb24gdGhlIHRhcmdldCBwYWQgd2hlbiB0aGUgZ2hvc3RwYWQgaXMgdW5saW5rZWQuIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoaXMgYmVoYXZpb3VyLiBGaXhlcyAjNTY2OTM2LgoKMjAwOS0wMS0yMSAwNDoyOToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2ggOiBVc2UgZ2l0IHN1Ym1vZHVsZQoKPT09IHJlbGVhc2UgMC4xMC4yMiA9PT0KCjIwMDktMDEtMTkgMjI6NTg6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9MSU5HVUFTOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIyCgoyMDA5LTAxLTE5IDIxOjIwOjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTAxLTE3IDIxOjA0OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggb3JkZXIgb2YgbWVtYmVycyBpbiBHc3RCdXNTb3VyY2Ugc3RydWN0dXJlIC0gdGhlIGZpcnN0IG1lbWJlciBtdXN0IGJlIHRoZSBwYXJlbnQgc3RydWN0dXJlIGllLiBHU291Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X21haW5fY29udGV4dCksIChnc3RfYnVzX2NyZWF0ZV93YXRjaCk6CgkgIEZpeCBvcmRlciBvZiBtZW1iZXJzIGluIEdzdEJ1c1NvdXJjZSBzdHJ1Y3R1cmUgLSB0aGUgZmlyc3QgbWVtYmVyCgkgIG11c3QgYmUgdGhlIHBhcmVudCBzdHJ1Y3R1cmUgaWUuIEdTb3VyY2UuIFNob3VsZCBtYWtlIGJ1cyBzb3VyY2VzCgkgIGF0dGFjaGVkIHRvIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgd29yayBpbiBhbGwgY2FzZXMgbm93IChpZS4KCSAgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBjYWxsYmFjayBoYXMgYSBub24tTlVMTCB1c2VyIGRhdGEKCSAgYXJndW1lbnQpLiBGaXhlcyAjNTYyMTcwLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKHRlc3RfY3VzdG9tX21haW5fY29udGV4dCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZSwgYmFzZWQgb24gY29kZSBieQoJICBKdXN0aW4gS2FybmVnZXMgPGp1c3RpbiBhdCBhZmZpbml4IGNvbT4uCgoyMDA5LTAxLTE1IDEwOjA0OjM3ICswMDAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IEEgc21hbGwgZG9jdW1lbnRhdGlvbiBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXMgSG9sbWJlcmcgPGpvbmFzIGRvdCBob2xtYmVyZyBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBIHNtYWxsIGRvY3VtZW50YXRpb24gZml4LgoKMjAwOS0wMS0xMSAwOTo0Njo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEluaXRpYWxpemUgZ19vbmNlX2luaXQqIGRhdGEgd2l0aCAwLiBGaXhlcyBidWcgIzU2NzIyNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEluaXRpYWxpemUgZ19vbmNlX2luaXQqIGRhdGEgd2l0aCAwLiBGaXhlcyBidWcgIzU2NzIyNS4KCjIwMDktMDEtMDkgMjM6Mzc6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBwcmUtcmVsZWFzZSAwLjEwLjIxLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBwcmUtcmVsZWFzZSAwLjEwLjIxLjMKCjIwMDktMDEtMDkgMTU6NDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEZpeCBkb2N1bWVudGF0aW9uIGZvciB0aGUgd2FpdF9jbG9jayBtZXRob2QsIHJlbmFtZSBiYXNlc2luayAtPiBzaW5rIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciB0aGUgd2FpdF9jbG9jayBtZXRob2QsIHJlbmFtZSBiYXNlc2luayAtPiBzaW5rCgkgIGZvciBjb25zaXN0ZW5jeS4KCjIwMDktMDEtMDggMTM6NDE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogQ3JlYXRlIGEgcmVnaXN0cnkgaWYgdGhlcmUgaXMgbm9uZSBhbHNvIHdoZW4gdGhlIG9wdGlvbiBmb3IgZ3N0LWRpc2FibGUtcmVnaXN0cnktdXBkYXRlIGhhcyBiZWVuIHNlbGVjdGVkLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIENyZWF0ZSBhIHJlZ2lzdHJ5IGlmIHRoZXJlIGlzIG5vbmUgYWxzbyB3aGVuIHRoZSBvcHRpb24gZm9yCgkgIGdzdC1kaXNhYmxlLXJlZ2lzdHJ5LXVwZGF0ZSBoYXMgYmVlbiBzZWxlY3RlZC4gRml4ZXMgIzU2NzAwMgoKMjAwOS0wMS0wNiAxODoxMDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIFJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgcmVjZW50bHktYWRkZWQgQVBJLgoKMjAwOS0wMS0wNiAxNzo1ODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBBUEkgZm9yIG1ha2luZyBhIEdTdHJlYW1lciBwbHVnaW4gJ2RlcGVuZGVudCcgb24gZXh0ZXJuYWwgZmlsZXMsIGRpcmVjdG9yaWVzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcywgc28gdGhhdCBHUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OjoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKEdzdFBsdWdpbkRlcCksIChfR3N0UGx1Z2luUHJpdmF0ZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9pbml0KSwgKGdzdF9wbHVnaW5fZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9jbGFzc19pbml0KSwgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfZW52X3ZhcnNfaGFzaCksCgkgIChfcHJpdl9wbHVnaW5fZGVwc19lbnZfdmFyc19jaGFuZ2VkKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9leHRyYWN0X2Vudl92YXJzX3BhdGhzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfaGFzaF9mcm9tX3N0YXRfZW50cnkpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2RpcmVudHJ5X21hdGNoZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3NjYW5fZGlyX2FuZF9tYXRjaF9uYW1lcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc2Nhbl9wYXRoX3dpdGhfZmlsZW5hbWVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfc3RhdF9oYXNoKSwKCSAgKF9wcml2X3BsdWdpbl9kZXBzX2ZpbGVzX2NoYW5nZWQpLCAoZ3N0X3BsdWdpbl9leHRfZGVwX2ZyZWUpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3N0cnZfZXF1YWwpLCAoZ3N0X3BsdWdpbl9leHRfZGVwX2VxdWFscyksCgkgIChnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5KSwgKGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3lfc2ltcGxlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHc3RQbHVnaW5Qcml2YXRlKSwgKEdzdFBsdWdpbkZsYWdzKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX05PTkUpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUkVDVVJTRSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19QQVRIU19BUkVfREVGQVVMVF9PTkxZKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX0ZJTEVfTkFNRV9JU19TVUZGSVgpLAoJICAoR3N0UGx1Z2luRGVwZW5kZW5jeUZsYWdzKSwgKEdzdFBsdWdpbkZpbHRlcik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW5fZGVwKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbl9kZXBfc3RydiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luX2RlcCksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDogKEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIpLAoJICAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCksIChfR3N0QmluYXJ5RGVwKSwgKEdzdEJpbmFyeURlcCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKToKCSAgQWRkIEFQSSBmb3IgbWFraW5nIGEgR1N0cmVhbWVyIHBsdWdpbiAnZGVwZW5kZW50JyBvbiBleHRlcm5hbCBmaWxlcywKCSAgZGlyZWN0b3JpZXMgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBzbyB0aGF0IEdTdHJlYW1lciBrbm93cyB3aGVuCgkgIGl0IG5lZWRzIHRvIHJlLWxvYWQgR1N0cmVhbWVyIHBsdWdpbnMgdGhhdCB3cmFwIG90aGVyIHBsdWdpbiBzeXN0ZW1zLgoJICBGaXhlcyBidWcgIzM1MDQ3Ny4KCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeSgpCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3lfc2ltcGxlKCkKCjIwMDktMDEtMDYgMTM6MDA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBsaWJnc3RhcHAtMC4xMCBmcm9tIC1iYXNlIHRvIHNlYXJjaCBwYXRoIGFuZCByZW1vdmUgdGhlIG9sZCBsaWIgZnJvbSAtYmFkIGZyb20gdGhlIHNlYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgbGliZ3N0YXBwLTAuMTAgZnJvbSAtYmFzZSB0byBzZWFyY2ggcGF0aCBhbmQgcmVtb3ZlIHRoZSBvbGQKCSAgbGliIGZyb20gLWJhZCBmcm9tIHRoZSBzZWFyY2ggcGF0aC4KCjIwMDktMDEtMDUgMTU6NDI6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBxdWVyeSBjb252ZXJ0IHBhZCBmdW5jdGlvbnMgdG8gYXZvaWQgZGVhZGxvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBxdWVyeSBjb252ZXJ0IHBhZCBmdW5jdGlvbnMKCSAgdG8gYXZvaWQgZGVhZGxvY2tzLgoKMjAwOS0wMS0wNSAxNTo0MTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogVGhlIGxvY2sgb3JkZXIgc2hvdWxkIGJlIG1haW5jb250ZXh0ID4gT0JKRUNUX0xPQ0sgc28gd2UgbmVlZCB0byByZWxlYXNlIHRoZSBvYmplY3QgbG9jayB3aGVuIHdha2luZyB1cC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3dha2V1cF9tYWluX2NvbnRleHQpOgoJICBUaGUgbG9jayBvcmRlciBzaG91bGQgYmUgbWFpbmNvbnRleHQgPiBPQkpFQ1RfTE9DSyBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKCSAgdGhlIG9iamVjdCBsb2NrIHdoZW4gd2FraW5nIHVwIHRoZSBtYWlubG9vcCB0byBhdm9pZCBkZWFkbG9ja3MuCgoyMDA5LTAxLTA1IDEwOjE0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgYW4gaXRlcmF0b3IgdG8gc2V0IHRoZSBjbG9jayBhbmQgdGhlIGluZGV4IHNvIHRoYXQgd2UgY2FuIHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGFwcHJvcHJpYXRlbHkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2luZGV4X2Z1bmMpLCAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgVXNlIGFuIGl0ZXJhdG9yIHRvIHNldCB0aGUgY2xvY2sgYW5kIHRoZSBpbmRleCBzbyB0aGF0IHdlIGNhbiByZWxlYXNlCgkgIHRoZSBvYmplY3QgbG9jayBhcHByb3ByaWF0ZWx5LiBGaXhlcyAjNTY2MzkzLgoKMjAwOS0wMS0wMyAxODozOTozOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXNlIHRoZSBuYW1lIG9mIHRoZSBwYWRzIGluc3RlYWQgb2YgYSBwb2ludGVyLCBoZWxwcyBpbiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKToKCSAgVXNlIHRoZSBuYW1lIG9mIHRoZSBwYWRzIGluc3RlYWQgb2YgYSBwb2ludGVyLCBoZWxwcyBpbiBkZWJ1Z2dpbmcuCgoyMDA5LTAxLTAzIDE4OjE2OjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGluZGV4LmM6IEFkZCBhIGRlYnVnZ2luZyBjYXRlZ29yeSBmb3IgR3N0SW5kZXgsIGZpcnN0IGxpdHRsZSBzdGVwIGluIG1ha2luZyBpbmRleGluZyB0b3Atbm90Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2dldF90eXBlKToKCSAgQWRkIGEgZGVidWdnaW5nIGNhdGVnb3J5IGZvciBHc3RJbmRleCwgZmlyc3QgbGl0dGxlIHN0ZXAgaW4gbWFraW5nCgkgIGluZGV4aW5nIHRvcC1ub3RjaC4KCjIwMDktMDEtMDMgMTg6MTA6MDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBBc3NpZ24gZGVidWcgc3RhdGVtZW50cyB0byByZWxldmFudCBjYXRlZ29yaWVzIGluc3RlYWQgb2YgdGhlICdkZWZhdWx0JyBjYXRlZ29yeSBzbyB0aGV5IGRvbid0IGdldCBsb3N0IGluIGRlYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLCAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKSwKCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsKSwKCSAgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgQXNzaWduIGRlYnVnIHN0YXRlbWVudHMgdG8gcmVsZXZhbnQgY2F0ZWdvcmllcyBpbnN0ZWFkIG9mIHRoZSAnZGVmYXVsdCcKCSAgY2F0ZWdvcnkgc28gdGhleSBkb24ndCBnZXQgbG9zdCBpbiBkZWJ1Z2dpbmcuCgoyMDA5LTAxLTAxIDIxOjI3OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBBZGQgc29tZSBpZGVhcywgaG93IHRvIG1ha2UgdGhlIGdyYXBoIHNtYWxsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEFkZCBzb21lIGlkZWFzLCBob3cgdG8gbWFrZSB0aGUgZ3JhcGggc21hbGxlci4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIGEgY29tbWVudCBmcm9tIGEgZGVidWcgc2Vzc2lvbi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgTG9nIG1vcmUgY29udGV4dC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIEluZGV0LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwOC0xMi0yNyAxNzo0MToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTWFrZSBHc3RCdXNTb3VyY2Ugd29yayB3aXRoIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgKCM1NjIxNzApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2J1c193YWtldXBfbWFpbl9jb250ZXh0KSwgKGdzdF9idXNfc2V0X21haW5fY29udGV4dCksCgkgIChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCk6CgkgIE1ha2UgR3N0QnVzU291cmNlIHdvcmsgd2l0aCBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzICgjNTYyMTcwKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAodGVzdF93YXRjaCksICh0ZXN0X3dhdGNoX3dpdGhfY3VzdG9tX2NvbnRleHQpLCAoZ3N0X2J1c19zdWl0ZSk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIEdzdEJ1c1NvdXJjZSB3aXRoIGEgbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTEyLTI3IDE2OjIzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFdyYXAgbXVsdGktbGluZSBtYWNyb3MgaW4gR19TVE1UX3tTVEFSVHxFTkR9LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKHVucGFja19lbGVtZW50KSwgKHVucGFja19jb25zdF9zdHJpbmcpLAoJICAodW5wYWNrX3N0cmluZyk6OgoJICBXcmFwIG11bHRpLWxpbmUgbWFjcm9zIGluIEdfU1RNVF97U1RBUlR8RU5EfS4KCjIwMDgtMTItMjAgMTc6MzM6NDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIFVSSSBxdWVyeSB0eXBlLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWVyeSB0aGUgVVJJIG9mIGEgc2luay9zb3VyY2UgZWxlbWVudCBhbmQgY2FuIGJlIHVzZWQgYnkgZGVtdXhlcnMgdGhhdCBuZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld191cmkpLCAoZ3N0X3F1ZXJ5X3NldF91cmkpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3VyaSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFQSTogQWRkIFVSSSBxdWVyeSB0eXBlLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWVyeSB0aGUgVVJJCgkgIG9mIGEgc2luay9zb3VyY2UgZWxlbWVudCBhbmQgY2FuIGJlIHVzZWQgYnkgZGVtdXhlcnMgdGhhdAoJICBuZWVkIHRvIGdldCBkYXRhIGZyb20gb3RoZXIgZmlsZXMuCgkgIFRoaXMgcXVlcnkgc2hvdWxkIGdvIHVwc3RyZWFtIGJ5IGRlZmF1bHQuCgkgIEZpeGVzIGJ1ZyAjNTYyOTQ5LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX3F1ZXJ5KToKCSAgSW1wbGVtZW50IFVSSSBxdWVyeS4KCjIwMDgtMTItMTkgMTU6MTE6MDYgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSAgRG9uJ3QgZm9yd2FyZCBnc3RfcGFkX3NldF9jYXBzKCkgb24gYSBzb3VyY2UgZ2hvc3RwYWQgdG8gaXRzIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIERvbid0IGZvcndhcmQgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIGEgc291cmNlIGdob3N0cGFkIHRvIGl0cyB0YXJnZXQuCgkgIFRoYXQgd291bGQgY2F1c2UgdGhlIGdob3N0cGFkIHRvIGVtaXQgbm90aWZ5OjpjYXBzIHR3byB0aW1lcyAoZmlzdAoJICBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgYWZ0ZXIgZnJvbSBvbl9zcmNfdGFyZ2V0X25vdGlmeSgpKS4KCjIwMDgtMTItMTkgMTE6MjQ6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIHNvbWUgbW9yZSB1bml0LXRlc3RzIGZvciB0aGUgZ2hvc3RwYWQgbm90aWZ5IHNpZ25hbCwgb25lIG9mIHdoaWNoIGN1cnJlbnRseSBmYWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChnaG9zdF9ub3RpZnlfY2FwcyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIG1vcmUgdW5pdC10ZXN0cyBmb3IgdGhlIGdob3N0cGFkIG5vdGlmeSBzaWduYWwsIG9uZSBvZiB3aGljaAoJICBjdXJyZW50bHkgZmFpbHMuCgoyMDA4LTEyLTE5IDA5OjQ0OjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MgdG8gdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzIHRvIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTEyLTE3IDE2OjE2OjQ1ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkgIEluIGEgc291cmNlIGdob3N0cGFkLCB3aGVuIGNhcHMgYXJlIGNoYW5nZWQgaW4gdGhlIHRhcmdldCBwYWQsIHRoZSBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBnaG9zdHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEluIGEgc291cmNlIGdob3N0cGFkLCB3aGVuIGNhcHMgYXJlIGNoYW5nZWQgaW4gdGhlIHRhcmdldCBwYWQsIHRoZQoJICBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBnaG9zdHBhZC4KCSAgRml4ZXMgIzU2NDg2My4KCjIwMDgtMTItMTcgMDk6Mzc6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2V0IHRoZSBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgYW5kIG5vdCB0aGUgZWxlbWVudC4gT3RoZXJ3aXNlIGl0J3MgaW1wb3NzaWJsZSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCk6CgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBzZXQgdGhlIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBhbmQgbm90CgkgIHRoZSBlbGVtZW50LiBPdGhlcndpc2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVjdCBmb3Igd2hpY2gKCSAgcGFkIHRoZSB0YWdzIHdlcmUgZm91bmQgd2l0aG91dCBhZGRpbmcgYW4gZXZlbnQgcHJvYmUKCSAgb3Igc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIHBhZC4KCjIwMDgtMTItMTYgMjE6MzM6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2ZhcS9nZW5lcmFsLnhtbDogVXBkYXRlIHRoZSBmYXEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICBVcGRhdGUgdGhlIGZhcS4KCjIwMDgtMTItMTYgMTU6NTE6NTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlbmFtZSBhcGkgYWRkZWQgaW4gcHJldmlvdXMgY29tbWl0IGFuZCBhZGQgc2luY2UgdGFnIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgUmVuYW1lIGFwaSBhZGRlZCBpbiBwcmV2aW91cyBjb21taXQgYW5kIGFkZCBzaW5jZSB0YWcgdG8gZG9jcy4KCSAgQVBJOiBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzKCkKCjIwMDgtMTItMTYgMTQ6MDU6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBmdW5jdGlvbiB0byByZXNldCB0YWdzZXR0ZXIgZm9yIGVsZW1lbnQgcmV1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHJlc2V0IHRhZ3NldHRlciBmb3IgZWxlbWVudCByZXVzZS4KCSAgQVBJOiBnc3RfdGFnX3NldHRlcl9mbHVzaCgpCgoyMDA4LTEyLTE2IDA5OjM3OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBdm9pZCBjb3B5IG9mIGVtcHR5IHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEF2b2lkIGNvcHkgb2YgZW1wdHkgdGFnbGlzdC4KCjIwMDgtMTItMTYgMDk6MjM6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgY29tcGxldGUgdW5pdCB0ZXN0cy4gRml4IGhhbmRsaW5nIG9mIGVtcHR5IHRhZ2xpc3RzICh0aGV5IHdlcmUgbm90IG1lcmdlZCBiZWZvcmUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgTW9yZSBjb21wbGV0ZSB1bml0IHRlc3RzLiBGaXggaGFuZGxpbmcgb2YgZW1wdHkgdGFnbGlzdHMgKHRoZXkgd2VyZQoJICBub3QgbWVyZ2VkIGJlZm9yZSkuCgoyMDA4LTEyLTE2IDA3OjA3OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBVcGRhdGUgR3N0VGFnU2V0dGVyIGFuZCBHc3RUYWdNZXJnZU1vZGUgZG9jdW1lbnRhdGlvbi4gTWVudGlvbiB0aGF0IHRhZ3MgY2FuIGNvbWUgZnJvbSBldmVudHMgYW5kIGZyb20gYXBwbGljYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIFVwZGF0ZSBHc3RUYWdTZXR0ZXIgYW5kIEdzdFRhZ01lcmdlTW9kZSBkb2N1bWVudGF0aW9uLiBNZW50aW9uCgkgIHRoYXQgdGFncyBjYW4gY29tZSBmcm9tIGV2ZW50cyBhbmQgZnJvbSBhcHBsaWNhdGlvbi4gRml4IGV4YW1wbGUuCgoyMDA4LTEyLTE1IDE1OjI3OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVtb3ZlIHRoZSBzZXFudW0gZW50cnkgdGhhdCB3ZSBpbXBsZW1lbnRlZCBpbiAwLjEwIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlbW92ZSB0aGUgc2VxbnVtIGVudHJ5IHRoYXQgd2UgaW1wbGVtZW50ZWQgaW4gMC4xMCBhbHJlYWR5LgoJICBBZGQgZW50cnkgYWJvdXQgcmVtb3ZpbmcgdGhlIGZvcm1hdCByZXR1cm4gdmFsdWUgZm9yIHF1ZXJpZXMuCgoyMDA4LTEyLTE1IDEyOjQ3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBFeHBvc2UgdGhlIHJlbmRlci1kZWxheSBhcyBhIHByb3BlcnR5IHNvIHRoaW5ncyBsaWtlIGFwcHNpbmsgY2FuIHVzZSBpdCB0byB0d2VhayB0aGUgc3luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpOgoJICBFeHBvc2UgdGhlIHJlbmRlci1kZWxheSBhcyBhIHByb3BlcnR5IHNvIHRoaW5ncyBsaWtlIGFwcHNpbmsgY2FuIHVzZSBpdAoJICB0byB0d2VhayB0aGUgc3luY2hyb25pc2F0aW9uLgoKMjAwOC0xMi0xMCAxNToxOTo0NSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBBbGxvdyBjaGVjayB0ZXN0cyB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogQWxsb3cgY2hlY2sgdGVzdHMgdG8gdXNlCgkgIE1BSU5fU1RBUlRfVEhSRUFEUygpL01BSU5fU1RPUF9USFJFQURTKCkgbXVsdGlwbGUgdGltZXMuIEFsc28gYWxsb3dzCgkgIENLX0ZPUks9bm8gdG8gYmUgdXNlZCB3aXRoIG11bHRpcGxlIGNoZWNrIHRlc3QgdGhhdCB1c2UgdGhyZWFkcy4KCjIwMDgtMTItMDkgMTY6MjM6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggYSBjYXBzIG1lbW9yeSBsZWFrIGludHJvZHVjZWQgYnkgdGhlIGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgIEZpeCBhIGNhcHMgbWVtb3J5IGxlYWsgaW50cm9kdWNlZCBieSB0aGUgbGFzdCBjaGFuZ2UuCgoyMDA4LTEyLTA5IDE1OjQ1OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgdGhlIGNhcHMgb2YgdGhlIHBhZHMgYXJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZyBhIHBhZCBhbmQgY2xhaW1pbmcgaXQgaXMgY29tcGF0aWJsZS4gVGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICBDaGVjayBpZiB0aGUgY2FwcyBvZiB0aGUgcGFkcyBhcmUgY29tcGF0aWJsZSBiZWZvcmUgcmV0dXJuaW5nCgkgIGEgcGFkIGFuZCBjbGFpbWluZyBpdCBpcyBjb21wYXRpYmxlLiBUaGlzLCBhbW9uZyBvdGhlciB0aGluZ3MsCgkgIGZpeGVzIGEgYnVnIHdpdGggZ3N0LWxhdW5jaCB3aGVyZSBhbiBpbmNvbXBhdGlibGUgcGFkIGlzIGNob3NlbgoJICBhbmQgbGlua2luZyBmYWlscy4gRml4ZXMgYnVnICM1NDQwMDMuCgoyMDA4LTEyLTA5IDE0OjQ2OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBSZXZlcnQgYWNjaWRlbnRpYWxseSBjb21taXRlZCBwYXRjaCBmb3IgYnVnICM0MDQ2MzEgd2hpY2ggdHJpZXMgdG8gcHJpbnQgYSBiYWNrdHJhY2UgaWYgYSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KToKCSAgUmV2ZXJ0IGFjY2lkZW50aWFsbHkgY29tbWl0ZWQgcGF0Y2ggZm9yIGJ1ZyAjNDA0NjMxIHdoaWNoCgkgIHRyaWVzIHRvIHByaW50IGEgYmFja3RyYWNlIGlmIGEgdGVzdGNhc2UgaXMgdGVybWluYXRlZCBieQoJICBhIHNpZ25hbC4gVGhpcyBjb2RlIHdhcyBuZXZlciBhY3RpdmF0ZWQgYXMgdGhlIGNvcnJlc3BvbmRpbmcKCSAgY29uZmlndXJlLmFjIGNoYW5nZSB3YXNuJ3QgY29tbWl0dGVkLgoKMjAwOC0xMi0wOSAxMDo1ODowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IFRoaXMgdGVzdCBzaG91bGQgcmV0dXJuIFRSVUUgbm93IGFzIHN5bmNpbmcgYW4gdW5jb250cm9sbGVkIG9iamVjdCB3aWxsIHN1Y2NlZWQgbm93ICh0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBUaGlzIHRlc3Qgc2hvdWxkIHJldHVybiBUUlVFIG5vdyBhcyBzeW5jaW5nIGFuIHVuY29udHJvbGxlZAoJICBvYmplY3Qgd2lsbCBzdWNjZWVkIG5vdyAodGhlcmUncyBub3RoaW5nIHRvIHN5bmMpLgoKMjAwOC0xMi0wOSAwOTo1NjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEFnZ3JlZ2F0ZSByZXR1cm4gdmFsdWUgZm9yIGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKCkuIE1vcmUgaW5mbyBpbiBsb2dnaW5nLiBBLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZ2dyZWdhdGUgcmV0dXJuIHZhbHVlIGZvciBnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcygpLiBNb3JlIGluZm8gaW4KCSAgbG9nZ2luZy4gQWx3YXlzIHNldCB2YWx1ZXMgb24gZmlyc3Qgc3luYy1jYWxsLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBNaWNyb29wdGltaXphdGlvbnMuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgRml4IHJldHVybiBjb2RlIGFuZCBjb21tZW50LgoKMjAwOC0xMi0wOSAwOTowMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGaXggZGVzY3JpcHRpb24gb2YgaG93IHRvIHNwZWNpZnkgYSB0eXBlIGluIGNhcHMuIEZpeGVzICM1NTM4NzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRml4IGRlc2NyaXB0aW9uIG9mIGhvdyB0byBzcGVjaWZ5IGEgdHlwZSBpbiBjYXBzLiBGaXhlcyAjNTUzODczLgoJICBBbHNvIHJhbmdlcyBhbmQgbGlzdCBjb250YWluIHZhbHVlcyBhbmQgbm90IHByb3BlcnR5LWFzc2lnbm1lbnRzLgoKMjAwOC0xMi0wOCAyMjoyODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IENoZWNrIGZvciBjaGFuZ2VkIHBhZHMtbGlzdCBiZWZvcmUgY2hlY2tpbmcgdGhlIGxhc3QgcmV0dXJuZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIENoZWNrIGZvciBjaGFuZ2VkIHBhZHMtbGlzdCBiZWZvcmUgY2hlY2tpbmcgdGhlIGxhc3QgcmV0dXJuZWQKCSAgR3N0Rmxvd1JldHVybiBiZWNhdXNlIHRoZSBwYWQgY291bGQgaGF2ZSBiZWVuIHJlbW92ZWQgYW5kIHdlCgkgIG5lZWQgdG8gaWdub3JlIHRoZSB2YWx1ZSBpbiB0aGF0IGNhc2UuCgoyMDA4LTEyLTA4IDE4OjM1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEFkZCB2bWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNmb3JtIGFuZCB3aGljaCBjYW4gYmUgdXNlZCB0byBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQWRkIHZtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHdlIHN0YXJ0IHRoZSB0cmFuc2Zvcm0gYW5kIHdoaWNoIGNhbgoJICBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgdHJhbnNmb3JtLCBzdWNoIGFzIGR5bmFtaWMgcHJvcGVydGllcy4KCjIwMDgtMTItMDUgMjA6MzI6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBTZWFyY2ggZm9yIHBsdWdpbnMgb24gd2luMzIgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZSBnc3RyZWFtZXIgRExMLiAgRml4ZXMgIzU0ODc4NgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIFNlYXJjaCBmb3IgcGx1Z2lucyBvbiB3aW4zMiBiYXNlZCBvbiB0aGUgbG9jYXRpb24gb2YgdGhlCgkgIGdzdHJlYW1lciBETEwuICBGaXhlcyAjNTQ4Nzg2CgoyMDA4LTEyLTA0IDIwOjEwOjQyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlCgkgIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wNCAxOTo0NTowNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8gb3VyIE00IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8KCSAgb3VyIE00IG1hY3Jvcy4KCjIwMDgtMTEtMjkgMTM6Mjk6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJlcXVpcmUgZ2V0dGV4dCAwLjE3IGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIuIEF0IGJ1aWxkIHRpbWUgYW4gb2xkZXIgZ2V0dGV4dCB2ZXJzaW9uIHdpbGwgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyCgkgIDx5c2Vsa293aXR6IGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgoJICAqIGF1dG9nZW4uc2g6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIGdldHRleHQgMC4xNyBiZWNhdXNlIG9sZGVyIHZlcnNpb25zIGRvbid0IG1peCB3aXRoIGxpYnRvb2wKCSAgMi4yLiBBdCBidWlsZCB0aW1lIGFuIG9sZGVyIGdldHRleHQgdmVyc2lvbiB3aWxsIHN0aWxsIHdvcmsuCgkgIEZpeGVzIGJ1ZyAjNTU2MDkxLgoKMjAwOC0xMS0yNyAxMToxMjozMCArMDAwMCAg7J2066y47ZiVIDxpd2luZ3NAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuYzogQWRkcyBzdXBwb3J0IGZvciBGRF9DT05ORUNUIGV2ZW50ICh3aW4zMikuIFNlZSAjNTYyMjU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IOydtOusuO2YlSA8aXdpbmdzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpOgoJICBBZGRzIHN1cHBvcnQgZm9yIEZEX0NPTk5FQ1QgZXZlbnQgKHdpbjMyKS4gU2VlICM1NjIyNTguCgoyMDA4LTExLTI0IDIwOjAyOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFR1cm4gY29tbWVudCBpbnRvIGd0ay1kb2MgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBUdXJuIGNvbW1lbnQgaW50byBndGstZG9jIGNvbW1lbnQuCgoyMDA4LTExLTI0IDE1OjI3OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJldmVydCBxdWljayBhY2NlcGNhcHMgYXR0ZW1wdCwgaXQncyBub3QgZnVsbHkgZXF1aXZhbGVudCB0byB0aGUgb2xkIGJlaGF2aW91ciBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpOgoJICBSZXZlcnQgcXVpY2sgYWNjZXBjYXBzIGF0dGVtcHQsIGl0J3Mgbm90IGZ1bGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9sZAoJICBiZWhhdmlvdXIgYW5kIHRodXMgY2F1c2VzIHJlZ3Jlc3Npb25zLgoKMjAwOC0xMS0yNCAxMTo1Njo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBGaXggbWVtb3J5IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgRml4IG1lbW9yeSBsZWFrLgoKMjAwOC0xMS0yNCAwOTo1OTowNyArMDAwMCAgU2ltb24gSG9sbSBUaMO4Z2Vyc2VuIDxvZGllQGNzLmFhdS5kaz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWR1Y2UgdGhlIG51bWJlciBvZiBzdGF0KCkgY2FsbHMgZm9yIGV2ZXJ5IGZpbGUgZnJvbSB0aHJlZSB0aW1lcyB0byBvbmUgdGltZS4gRml4ZXMgYnVnICM1NjAzNjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ltb24gSG9sbSBUaMO4Z2Vyc2VuIDxvZGllIGF0IGNzIGRvdCBhYXUgZG90IGRrPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIHN0YXQoKSBjYWxscyBmb3IgZXZlcnkgZmlsZSBmcm9tIHRocmVlIHRpbWVzCgkgIHRvIG9uZSB0aW1lLiBGaXhlcyBidWcgIzU2MDM2MC4KCjIwMDgtMTEtMjIgMTU6MDk6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmVuYW1lIGEgdmFyaWFibGUgdG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKToKCSAgUmVuYW1lIGEgdmFyaWFibGUgdG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLgoKMjAwOC0xMS0yMSAyMDo1NzoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb24ndCB3YXJuaW5nIG9uIG9mZnNldD09LTEuIFRha2VuIGZyb20gX2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBEb24ndCB3YXJuaW5nIG9uIG9mZnNldD09LTEuIFRha2VuIGZyb20gX2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQoKS4KCjIwMDgtMTEtMjEgMTg6MjY6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBDaGVjayBmb3IgbG9jYWxob3N0IGluIFVSSSB3YXMgYmFja3dhcmRzLCBmaXggaXQuIEZpeGVzIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIENoZWNrIGZvciBsb2NhbGhvc3QgaW4gVVJJIHdhcyBiYWNrd2FyZHMsIGZpeCBpdC4gRml4ZXMgdW5pdCB0ZXN0LgoKMjAwOC0xMS0yMSAxNzoxNDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGQgYmVnaW5uaW5ncyBvZiBhIG1vcmUgb3B0aW1pemVkIGFjY2VwdGNhcHMgZnVuY3Rpb24gdGhhbiB0aGUgZGVmYXVsdCBjb3JlIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgQWRkIGJlZ2lubmluZ3Mgb2YgYSBtb3JlIG9wdGltaXplZCBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRoYW4gdGhlIGRlZmF1bHQKCSAgY29yZSBvbmUuCgoyMDA4LTExLTIxIDE2OjQ4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBdm9pZCBnZXR0aW5nIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRvbyBlYXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2Fwcyk6CgkgIEF2b2lkIGdldHRpbmcgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gdG9vIGVhcmx5LgoKMjAwOC0xMS0yMSAwODowOTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWFrZSBnc3QtbGF1bmNoIGhhbmRsZSBMQVRFTkNZIG1lc3NhZ2VzIGFuZCBtYWtlIGl0IHJlY2FsY3VsYXRlIHRoZSBsYXRlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBnc3QtbGF1bmNoIGhhbmRsZSBMQVRFTkNZIG1lc3NhZ2VzIGFuZCBtYWtlIGl0IHJlY2FsY3VsYXRlIHRoZQoJICBsYXRlbmN5LgoKMjAwOC0xMS0yMCAyMTowNToxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVzZSBnX2ZpbGVuYW1lX2Zyb21fdXJpKCkgZm9yIFVSSSBwYXJzaW5nIGluIGZpbGVzcmMgcmF0aGVyIHRoYW4gcm9sbGluZyBvdXQgb3duIHNsaWdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgZ19maWxlbmFtZV9mcm9tX3VyaSgpIGZvciBVUkkgcGFyc2luZyBpbiBmaWxlc3JjIHJhdGhlciB0aGFuIHJvbGxpbmcKCSAgb3V0IG93biBzbGlnaHRseSBpbmNvcnJlY3QgdmVyc2lvbi4gRml4ZXMgdXNlIG9mIHNvbWUgcGF0aHMgb24KCSAgd2luMzIuCgoyMDA4LTExLTIwIDIwOjQ0OjU2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW4gd2luMzIgY29kZXBhdGgsIGlmIHdlIGZhaWwgdG8gd3JpdGUgdGhlIHJlZ2lzdHJ5LCBjcmVhdGUgdGhlIGRpcmVjdG9yeSBmb3IgaXQgYW5kIHRyeSBhZ2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEluIHdpbjMyIGNvZGVwYXRoLCBpZiB3ZSBmYWlsIHRvIHdyaXRlIHRoZSByZWdpc3RyeSwgY3JlYXRlIHRoZQoJICBkaXJlY3RvcnkgZm9yIGl0IGFuZCB0cnkgYWdhaW4sIG1hdGNoaW5nIHRoZSBiZWhhdmlvdXIgaW4gbm9uLXdpbjMyCgkgIGNvZGVwYXRocy4KCjIwMDgtMTEtMjAgMTQ6MjM6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IENoYW5naW5nIHRoZSByZW5kZXIgZGVsYXkgY2hhbmdlcyB0aGUgbGF0ZW5jeSBhbmQgc28gd2UgbXVzdCBwb3N0IGEgbGF0ZW5jeSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkpOgoJICBDaGFuZ2luZyB0aGUgcmVuZGVyIGRlbGF5IGNoYW5nZXMgdGhlIGxhdGVuY3kgYW5kIHNvIHdlIG11c3QgcG9zdCBhCgkgIGxhdGVuY3kgbWVzc2FnZS4KCjIwMDgtMTEtMjAgMTA6MzU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogQWRkIEdzdFF1ZXJ5VHlwZSBmb3IgY3VzdG9tIHF1ZXJpZXMgaW5zdGVhZCBvZiBoYXZpbmcgdG8gdXNlIHRoZSBub3Qtc28tdmVyeS1jb252ZW5pZW50IHJlZ2lzdHJhdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBHc3RRdWVyeVR5cGUgZm9yIGN1c3RvbSBxdWVyaWVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHVzZSB0aGUKCSAgbm90LXNvLXZlcnktY29udmVuaWVudCByZWdpc3RyYXRpb24gaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgbmV3CgkgIHR5cGVzLgoKMjAwOC0xMS0xOSAxMjoyMDowMyArMDAwMCAgQW5kcmV3IEZlcmVuIDxhY2ZlcmVuQHlhaG9vLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogVW5yZWYgdGhlIEdFbnVtQ2xhc3MgYWZ0ZXIgdXNhZ2UgYWdhaW4uIEZpeGVzIGJ1ZyAjNTYxNTAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFuZHJldyBGZXJlbiA8YWNmZXJlbiBhdCB5YWhvbyBkb3QgY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGVmYXVsdF9kZWVwX25vdGlmeSk6CgkgIFVucmVmIHRoZSBHRW51bUNsYXNzIGFmdGVyIHVzYWdlIGFnYWluLiBGaXhlcyBidWcgIzU2MTUwMS4KCjIwMDgtMTEtMTkgMTI6MDY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IEFkZCBkby1sYXRlbmN5IHNpZ25hbCB3aXRoIHRoZSBvbGQgZGVmYXVsdCBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4gVGhpcyBhbGxvd3MgZm9yIGN1c3RvbSBsYXRlbmN5IGNhbGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoX2dzdF9ib29sZWFuX2FjY3VtdWxhdG9yKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3kpLCAoZ3N0X2Jpbl9kb19sYXRlbmN5X2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgZG8tbGF0ZW5jeSBzaWduYWwgd2l0aCB0aGUgb2xkIGRlZmF1bHQgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24uIFRoaXMKCSAgYWxsb3dzIGZvciBjdXN0b20gbGF0ZW5jeSBjYWxjdWxhdGlvbnMgZm9yIHdoZW4gdGhlIGRlZmF1bHQgaXMgbm90CgkgIHN1ZmZpY2llbnQuCgkgIEFQSTogR3N0QmluOjpkby1sYXRlbmN5IHNpZ25hbC4KCjIwMDgtMTEtMTggMTM6MzY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBzeW1ib2xzIHRvIC5kZWYgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byAuZGVmIGZpbGUuCgoyMDA4LTExLTE4IDA5OjU4OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byByZWNhbGN1bGF0ZSBhbmQgcmVkaXN0cmlidXRlIHRoZSBsYXRlbmN5IG9uIGEgYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBtZXRob2QgdG8gcmVjYWxjdWxhdGUgYW5kIHJlZGlzdHJpYnV0ZSB0aGUgbGF0ZW5jeSBvbiBhIGJpbi4KCSAgQVBJOiBnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3koKS4KCjIwMDgtMTEtMTggMDk6NTI6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERvY3VtZW50IHRoZSBmcmVlX2Z1bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRG9jdW1lbnQgdGhlIGZyZWVfZnVuYy4KCjIwMDgtMTEtMTcgMjE6NDM6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBpbnN0ZWFkIG9mIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBhcyBpdCBpcyBtYXBwZWQgdG8gYSBjYXN0IG9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgaW5zdGVhZCBvZiBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUKCSAgYXMgaXQgaXMgbWFwcGVkIHRvIGEgY2FzdCBvbiBub24td2luMzIgcGxhdGZvcm1zLgoKMjAwOC0xMS0xNyAyMTo0MTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEtlZXAgbGFzdC12YWx1ZSBhbmQgb25seSBjYWxsIHNldF9wcm9wZXJ0eSBpZiB2YWx1ZSBoYXMgY2hhbmdlZC4gVGhpcyBzdXByZXNzZXMgYWxsIHRoZSBnX29iamVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgS2VlcCBsYXN0LXZhbHVlIGFuZCBvbmx5IGNhbGwgc2V0X3Byb3BlcnR5IGlmIHZhbHVlIGhhcyBjaGFuZ2VkLiBUaGlzCgkgIHN1cHJlc3NlcyBhbGwgdGhlIGdfb2JqZWN0X25vdGlmaWVzIHdlIHdvdWxkIHRyaWdnZXIgb3RoZXJ3aXNlLiBJdAoJICBhbHNvIGFsbG93cyB0aGUgdXNlciB0byBjaGFnZSB0aGUgdmFsdWUgd2hpbGUgdGhlcmUgaXMgbm8gY29udHJvbGxlcgoJICBjaGFuZ2UuCgoyMDA4LTExLTE3IDIxOjI1OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9uJ3QgY3Jhc2ggaWYgZWl0aGVyIG9mIHRoZSBzdHJpbmcgR1ZhbHVlcyBpcyBlbXB0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvbid0IGNyYXNoIGlmIGVpdGhlciBvZiB0aGUgc3RyaW5nIEdWYWx1ZXMgaXMgZW1wdHkuCgoyMDA4LTExLTE3IDE1OjQ4OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogTmV3IGZ1bmN0aW9uLCBwcmludHMgYSBzdW1tYXJ5IG9mIHdoYXQgVVJJIHNjaGVtZXMgYXJlIHN1cHBvcnRlZCBieSB3aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IE5ldyBmdW5jdGlvbiwKCSAgcHJpbnRzIGEgc3VtbWFyeSBvZiB3aGF0IFVSSSBzY2hlbWVzIGFyZSBzdXBwb3J0ZWQgYnkgd2hhdAoJICBlbGVtZW50cy4KCSAgKG1haW4pOiBQbHVtYiBpbiBzdXBwb3J0IGZvciAtLXVyaS1oYW5kbGVycyBvciAtdSwgYW5kIGZpeCB0aGUKCSAgYXJnYyBjaGVjayBmb3IgLWEgYW5kIC11LgoKMjAwOC0xMS0xNyAwNDo0OTowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBHX0dOVUNfUFVSRSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGUqIGFuZCB0aGUgZG91YmxlPC0+dWludDY0IGNvbnZlcnNpb24gZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIEdfR05VQ19QVVJFIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSogYW5kIHRoZSBkb3VibGU8LT51aW50NjQKCSAgY29udmVyc2lvbiBmdW5jdGlvbnMuCgoyMDA4LTExLTEzIDE4OjA5OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBdm9pZCBjb3N0bHkgdHlwZWNoZWNraW5nIGZvciB0cml2aWFsbHkgY29ycmVjdCBwb2ludGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIEF2b2lkIGNvc3RseSB0eXBlY2hlY2tpbmcgZm9yIHRyaXZpYWxseSBjb3JyZWN0IHBvaW50ZXJzLgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF93YWl0KToKCSAgQWRkIHNvbWUgR19MSUtFTFkgaGVyZSBhbmQgdGhlcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wdXNoKToKCSAgQWRkIHNvbWUgZGVidWcgaW5mby4KCjIwMDgtMTEtMTMgMTg6MDU6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogU21hbGwgdHdlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgU21hbGwgdHdlYWtzLgoKMjAwOC0xMS0xMyAxODowMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL29sZC90ZXN0c3VpdGUvOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBkZXByZWNhdGVkIEFQSSBnX21lbV9jaHVuayouCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzogKG1haW4pOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzogKG1haW4pOgoJICBSZW1vdmUgcmVmZXJlbmNlcyB0byBkZXByZWNhdGVkIEFQSSBnX21lbV9jaHVuayouCgkgIEZpeGVzICM1NjA0NDIuCgoyMDA4LTExLTEyIDE2OjU1OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIC0tcGx1Z2luIG9wdGlvbi4gRml4ZXMgIzU2MDMwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICBBZGQgLS1wbHVnaW4gb3B0aW9uLiBGaXhlcyAjNTYwMzAxLgoKMjAwOC0xMS0xMiAxMjo0NTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBRdWljayBicmFpbmR1bXAgZm9yIGEgcG9zc2libGUgKG5vdCB0b3RhbGx5IHZlcmlmaWVkKSBhdG9taWMgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFF1aWNrIGJyYWluZHVtcCBmb3IgYSBwb3NzaWJsZSAobm90IHRvdGFsbHkgdmVyaWZpZWQpIGF0b21pYyBjYXNlLgoKMjAwOC0xMS0xMiAxMDozOToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IERvbid0IHdyaXRlIGFuZCBjaGVjayBhIENSQyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlLiBJdCdzIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jaHVuayksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgRG9uJ3Qgd3JpdGUgYW5kIGNoZWNrIGEgQ1JDIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUuIEl0J3MKCSAgZ3VhcmFudGVlZCB0aGF0IHRoZSByZWdpc3RyeSBpcyBjb21wbGV0ZWx5IHdyaXR0ZW4gKGl0J3MgZmlyc3Qgd3JpdHRlbgoJICB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCB0aGVuIG1vdmVkKSBhbmQgaWYgdGhlIHJlZ2lzdHJ5IHdhcyBjb3JydXB0ZWQKCSAgYnkgc29tZSBoYXJkd2FyZSBmYWlsdXJlIHdlIHdvdWxkIGhhdmUgYmlnZ2VyIHByb2JsZW1zLgoJICBCdW1wIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uIHRvIDAuMTAuMjEuMSBmb3IgdGhpcyBhcyBpdCdzIGFuCgkgIGluY29tcGF0aWJsZSBjaGFuZ2UgYW5kIHRvIGVuc3VyZSB0aGF0IHRoZSByZWdpc3RyeSBnZXRzIHJlYnVpbGQKCSAgYWZ0ZXIgdGhlIHVwZGF0ZS4KCSAgVGhpcyBzYXZlcyBzb21lIG1pbGxpc2Vjb25kcyBmb3IgcmVhZGluZy93cml0aW5nIHRoZSByZWdpc3RyeS4KCSAgRml4ZXMgYnVnICM1NjAzOTkuCgoyMDA4LTExLTExIDE0OjUwOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFNvbWUgcHNldWRvIGNvZGUgZm9yIGhvdyB3ZSBjb3VsZCBpbXBsZW1lbnQgY2xvY2sgdGltZW91dHMgd2l0aCBHc3RQb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgU29tZSBwc2V1ZG8gY29kZSBmb3IgaG93IHdlIGNvdWxkIGltcGxlbWVudCBjbG9jayB0aW1lb3V0cyB3aXRoIEdzdFBvbGwuCgoyMDA4LTExLTEwIDEzOjU2OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogVXBkYXRlIEF1dGhvciBzdHJpbmcgdG8gbWF0Y2ggb3RoZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIFVwZGF0ZSBBdXRob3Igc3RyaW5nIHRvIG1hdGNoIG90aGVycy4KCjIwMDgtMTEtMDYgMTU6Mzc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmVvcmdhbml6ZSBzb21lIG1vcmUsIGJlIG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIEdTVF9UWVBFX0FSUkFZIG5vdCBiZWluZyBmaXhlZCBhbmQgaW5saW5lIHRoZSB0cmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksIChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBSZW9yZ2FuaXplIHNvbWUgbW9yZSwgYmUgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgR1NUX1RZUEVfQVJSQVkgbm90CgkgIGJlaW5nIGZpeGVkIGFuZCBpbmxpbmUgdGhlIHRyaXZpYWwgY2hlY2suCgoyMDA4LTExLTA2IDE1OjA5OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ2FsbGdyaW5kIG1pY3JvIG9wdGltaXNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19jb3B5KSwgKF9nc3RfY2Fwc19mcmVlKSwKCSAgKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSksIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlKSwKCSAgKGdzdF9jYXBzX2NvcHlfbnRoKSwgKGdzdF9jYXBzX3NldF9zaW1wbGUpLAoJICAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLCAoZ3N0X2NhcHNfaXNfZml4ZWQpLAoJICAoZ3N0X2NhcHNfaXNfZXF1YWxfZml4ZWQpLCAoZ3N0X2NhcHNfaW50ZXJzZWN0KSwKCSAgKGdzdF9jYXBzX3N1YnRyYWN0KSwgKGdzdF9jYXBzX25vcm1hbGl6ZSksIChnc3RfY2Fwc19kb19zaW1wbGlmeSksCgkgIChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBDYWxsZ3JpbmQgbWljcm8gb3B0aW1pc2F0aW9ucy4KCSAgQXZvaWQgYXJyYXkgYm91bmRzIGNoZWNrcyBhbmQgZm9yY2UgaW5saW5lIG9mIHRyaXZpYWwgZnVuY3Rpb24uCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZV9kZWZhdWx0KToKCSAgLTEgaXMgZXF1aXZhbGVudCB0byBsZXR0aW5nIGdsaWIgdG8gdGhlIHN0cmxlbiBidXQgdGhlbiB0aGVyZSBpcyBtb3JlCgkgIHJvb20gZm9yIG9wdGltaXNhdGlvbnMgYW5kIGl0J3Mgbm90IG91ciBmYXVsdC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpOgoJICBubyBuZWVkIHRvIGNsZWFyIHRoZSBhcnJheSwgd2UncmUgY29vbC4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwgKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFRoZSBtb3N0IGNvbW1vbiBfaXNfZml4ZWQoKSBjaGVjayBpcyBkb25lIG9uIGZ1bmRhbWVudGFsIGdsaWIgYmFzZQoJICB0eXBlcyBzbyB3ZSBjaGVjayB0aGlzIGZpcnN0IGluc3RlYWQgb2YgZG9pbmcgYSBodWdlIGFtb3VudCBvZgoJICB1c2VsZXNzIEdTVF9UWVBFX0FSUkFZIGNhbGxzLgoKMjAwOC0xMS0wNiAxMjowMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5oOiBBZGQgYSBTS0lQIHNlZWsgZmxhZyBmb3IgdXNlIHdpdGggYWR2YW5jZWQgdHJpY2ttb2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBhIFNLSVAgc2VlayBmbGFnIGZvciB1c2Ugd2l0aCBhZHZhbmNlZCB0cmlja21vZGVzLgoJICBBUEk6IEdzdFNlZWtGbGFnczo6R1NUX1NFRUtfRkxBR19TS0lQCgoyMDA4LTExLTA1IDE2OjU3OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBObyBuZWVkIHRvIG1lbXNldCwgd2UgY2FuIGNsZWFyIHRoZSB2YWx1ZSBvdXJzZWx2ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSk6CgkgIE5vIG5lZWQgdG8gbWVtc2V0LCB3ZSBjYW4gY2xlYXIgdGhlIHZhbHVlIG91cnNlbHZlcy4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwKCSAgKGdzdF92YWx1ZV9nZXRfY29tcGFyZV9mdW5jKToKCSAgU29tZSBvcHRpbWlzYXRpb25zIGZyb20gYSBmZXcgY2FsbGdyaW5kIHNlc3Npb25zOgoJICBXaGVuIGNoZWNraW5nIGlmIGEgdHlwZSBpcyBmaXhlZCwgY2hlY2sgZm9yIHRyaXZpYWwgZnVuZGFtZW50YWwgdHlwZXMKCSAgZmlyc3QgYmVmb3JlIGNoZWNraW5nIHR5cGVzIGZvciB3aGljaCB3ZSBuZWVkIHRvIGdldCB0aGUgdHlwZSBmb2xsb3dlZAoJICBieSB0aGUgaGVhdnkgZHV0eSB0eXBlIGNoZWNrcywgdGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2YKCSAgZ190eXBlX2Z1bmRhbWVudGFsKCkgY2FsbHMgYSBsb3QuCgkgIFdoZW4gZ2V0dGluZyB0aGUgY29tcGFyZSBmdW5jdGlvbiwgZmlyc3QgY2hlY2sgZm9yIG91ciByZWdpc3RlcmVkIHR5cGVzLgoJICBJZiB0aGF0IGZhaWxzLCBkbyB0aGUgaGVhdnkgZHV0eSBnX3R5cGVfaXNfYSgpIGNoZWNrcywgcmVkdWNlcyB0aGUKCSAgYW1vdW50IG9mIGdfdHlwZV9pc19hKCkgY29uc2lkZXJhYmx5LgoKMjAwOC0xMS0wNSAxMToxNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IE11bWJsZSBzb21ldGhpbmcgYWJvdXQgcmVtb3ZpbmcgR3N0WE1MLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBNdW1ibGUgc29tZXRoaW5nIGFib3V0IHJlbW92aW5nIEdzdFhNTC4KCjIwMDgtMTEtMDQgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEdldCB0aGUgc2VxbnVtIGJlZm9yZSB3ZSBkaXNwb3NlIHRoZSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBHZXQgdGhlIHNlcW51bSBiZWZvcmUgd2UgZGlzcG9zZSB0aGUgbWVzc2FnZS4KCjIwMDgtMTEtMDQgMTY6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZWZlciB0byB0aGUgZnJhbWVzdGVwcGluZyBkb2N1bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVmZXIgdG8gdGhlIGZyYW1lc3RlcHBpbmcgZG9jdW1lbnQuCgoyMDA4LTExLTA0IDE1OjU2OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQ29weSBzZXFudW1zIGZyb20gZXZlbnRzIHRvIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBjYW4gYWxsIGJlIHJlbGF0ZWQgYmFjayB0byBlYWNob3RoZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwgKGdzdF9iaW5fcXVlcnkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIENvcHkgc2VxbnVtcyBmcm9tIGV2ZW50cyB0byBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSByZWxhdGVkCgkgIGJhY2sgdG8gZWFjaG90aGVyLgoKMjAwOC0xMS0wNCAxNTo1MjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgdGhlIG1lc3NhZ2Ugc2VxbnVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IHRoZSBtZXNzYWdlIHNlcW51bXMuCgoyMDA4LTExLTA0IDEzOjU2OjM3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQpOiBSZWZhY3RvciBmb3IgY2xhcml0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0KTogUmVmYWN0b3IgZm9yIGNsYXJpdHkuCgkgIEFsc28gYWRkIEFQSTogdG8gcHJldmlvdXMgY2hhbmdlbG9nIGVudHJ5LgoKMjAwOC0xMS0wNCAxMjoyMjo1MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQWRkIHNlcXVlbmNlIG51bWJlcnMgdG8gZXZlbnRzIGFuZCBtZXNzYWdlcy4gU2VlICM1NTkyNTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBBZGQgc2VxdWVuY2UgbnVtYmVycyB0byBldmVudHMgYW5kIG1lc3NhZ2VzLiBTZWUgIzU1OTI1MC4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQsIGdzdF91dGlsX3NlcW51bV9jb21wYXJlKToKCSAgTmV3IGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoX2dzdF9ldmVudF9jb3B5LCBnc3RfZXZlbnRfbmV3KTogSW5pdGlhbGl6ZSBuZXcKCSAgZXZlbnRzIHdpdGggYSBuZXcgc2VxdWVuY2UgbnVtYmVyLCBhbmQgY29weSBpdCB3aGVuIGNvcHlpbmcuCgkgIChnc3RfZXZlbnRfZ2V0X3NlcW51bSwgZ3N0X2V2ZW50X3NldF9zZXFudW0pOiBBY2Nlc3NvcnMgZm9yIGFuCgkgIGV2ZW50J3Mgc2VxdWVuY2UgbnVtYmVyLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoX2dzdF9tZXNzYWdlX2NvcHksIGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAoZ3N0X2V2ZW50X2dldF9zZXFudW0sIGdzdF9ldmVudF9zZXRfc2VxbnVtKTogQXMgd2l0aCBldmVudHMsIHNvCgkgIHdpdGggbWVzc2FnZXMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MuCgoyMDA4LTExLTA0IDExOjU1OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbCBmaXhlcyB0aGFua3MgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgU29tZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWwgZml4ZXMgdGhhbmtzIHRvCgkgIEFuZHJldyBGZXJlbi4gRml4ZXMgIzU1ODQ1OS4KCjIwMDgtMTEtMDMgMTI6Mjk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBEb24ndCBib3RoZXIgd2l0aCB0aGUgR1RpbWVyIGlmIHdlIGRvbid0IG91dHB1dCB0aGUgcmVzdWx0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIERvbid0IGJvdGhlciB3aXRoIHRoZSBHVGltZXIgaWYgd2UgZG9uJ3Qgb3V0cHV0IHRoZSByZXN1bHRzLgoKMjAwOC0xMS0wMyAxMDo1OTo0OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06IEFkZCBXSU4zMl9MSUJTIHRvIGxpYmdzdG5ldCBMSUJBREQuIEZpeGVzICM1NTczMDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGF2aWQgU2NobGVlZiAgPGRzQHNjaGxlZWYub3JnPgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgQWRkIFdJTjMyX0xJQlMgdG8gbGliZ3N0bmV0IExJQkFERC4gRml4ZXMgIzU1NzMwMC4KCjIwMDgtMTAtMzEgMTU6NTQ6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBPaCBteSwgc3R1ZGlwLCBzdHVwaWQgbWUuIFJlbW92ZSBkb3VibGUgc3RhdCgpIGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBPaCBteSwgc3R1ZGlwLCBzdHVwaWQgbWUuIFJlbW92ZSBkb3VibGUgc3RhdCgpIGNhbGwuCgoyMDA4LTEwLTMxIDE0OjI0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFVzZSBnX3VubGluayBpbnN0ZWFkIG9mIHVubGluay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBVc2UgZ191bmxpbmsgaW5zdGVhZCBvZiB1bmxpbmsuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVc2UgZ2xpYiB0eXBlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgYSBGSVhNRTouCgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRm9ybWF0dGluZyAmIHdoaXRlc3BhY2VzLgoKMjAwOC0xMC0zMSAwODo1MzoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb2MgdHlwby4gVXNlIHJldHVybiB2YWx1ZSBvZiBwYXJlbnRfY2xhc3MtPmV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIERvYyB0eXBvLiBVc2UgcmV0dXJuIHZhbHVlIG9mIHBhcmVudF9jbGFzcy0+ZXZlbnQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgQ2hhaW4gdXAgYXQgdGhlIGVuZCBmb3IgY29uc2lzdGVuY3kuCgoyMDA4LTEwLTMwIDE1OjI5OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogQ2hhbmdlIHRvIHhpbmNsdWRlIGJhc2VkIGJ1aWxkIC0gaXRzIGZhc3RlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBDaGFuZ2UgdG8geGluY2x1ZGUgYmFzZWQgYnVpbGQgLSBpdHMgZmFzdGVyIGFuZCBlYXNpZXIgdG8gbWFpbnRhaW4uCgoyMDA4LTEwLTMwIDE0OjE1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBVc2UgZ191bmxpbmsoKSBhcyBub25lIG9mIHRoZXNlIGFyZSBkaXJlY3Rvcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIFVzZSBnX3VubGluaygpIGFzIG5vbmUgb2YgdGhlc2UgYXJlIGRpcmVjdG9yaWVzLgoKMjAwOC0xMC0yOSAxNzowNDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBTb21lIG1vcmUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIFNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDgtMTAtMjcgMTU6MDI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSWYgd2UgaGF2ZSBhIGZpeGF0ZSBmdW5jdGlvbiwgY2FsbCBpdCBldmVuIGlmIHdlIGFscmVhZHkgaGF2ZSBmaXhlZCBjYXBzIGJlY2F1c2UgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgSWYgd2UgaGF2ZSBhIGZpeGF0ZSBmdW5jdGlvbiwgY2FsbCBpdCBldmVuIGlmIHdlIGFscmVhZHkgaGF2ZSBmaXhlZCBjYXBzCgkgIGJlY2F1c2UgdGhlIHN1YmNsYXNzIG1pZ2h0IGFkZCBzb21lIGNhcHMuIE1ha2VzIGF1ZGlvY29udmVydCBhZGQgYQoJICBkZWZhdWx0IGNoYW5uZWwgbGF5b3V0LgoKMjAwOC0xMC0yNCAwOTo0MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIHZhcmlhYmxlLgoJICBDbGVhbnVwcyB0byB0aGUgZXJyb3IgcGF0aCBpbiB0aGUgZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIEZpeGVzICM1NTc2NDkuCgoyMDA4LTEwLTIzIDEyOjUyOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBhbmQgaGFuZGxlIGVycm9ycyBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYygpIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgVXNlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBhbmQgaGFuZGxlIGVycm9ycyBpbnN0ZWFkIG9mCgkgIHVzaW5nIGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYygpIHdoaWNoIGFib3J0cyBpZiB0aGUgYnVmZmVyIGNvdWxkbid0CgkgIGJlIGFsbG9jYXRlZC4KCjIwMDgtMTAtMjMgMDk6NDk6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBTZXQgdGhlIGxhc3Rfc3RvcCB0byBhIG1vcmUgbWVhbmluZ2Z1bCBwb3NpdGlvbiB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBzZWdtZW50LiBpZS4gdGhlIHN0YXJ0L3N0b3Agb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBTZXQgdGhlIGxhc3Rfc3RvcCB0byBhIG1vcmUgbWVhbmluZ2Z1bCBwb3NpdGlvbiB3aGVuIGNvbmZpZ3VyaW5nIHRoZQoJICBzZWdtZW50LiBpZS4gdGhlIHN0YXJ0L3N0b3Agb2YgdGhlIHNlZ21lbnQgb3IgY2xpcHBlZCBhZ2FpbnN0IHRoZQoJICB1cGRhdGVkIHNlZ21lbnQgYm91bmRhcmllcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbGFzdF9zdG9wLgoKMjAwOC0xMC0yMyAwNzoxMTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IFVzZSBHU1RfKFJFQUR8V1JJVEUpXyhGTE9BVHxET1VCTEUpXyhMRXxCRSkgaW5zdGVhZCBvZiBvdXIgb3duIGNvcGllcyBvZiB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgVXNlIEdTVF8oUkVBRHxXUklURSlfKEZMT0FUfERPVUJMRSlfKExFfEJFKSBpbnN0ZWFkIG9mIG91ciBvd24KCSAgY29waWVzIG9mIHRoZW0uCgoyMDA4LTEwLTIzIDA3OjA5OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IE1vdmUgZmxvYXQgZW5kaWFubmVzcyBjb252ZXJzaW9uIG1hY3JvcyBmcm9tIGxpYmdzdGZsb2F0Y2FzdCB0byBjb3JlIGFzIGl0J3MgdXNlZnVsIGluIGdlbmVyYWwsIGV2ZW4gaW4gY29yZS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBNb3ZlIGZsb2F0IGVuZGlhbm5lc3MgY29udmVyc2lvbiBtYWNyb3MgZnJvbSBsaWJnc3RmbG9hdGNhc3QKCSAgdG8gY29yZSBhcyBpdCdzIHVzZWZ1bCBpbiBnZW5lcmFsLCBldmVuIGluIGNvcmUuIEZpeGVzIGJ1ZyAjNTU1MTk2LgoJICBUaGlzIGFkZHMgR0RPVUJMRV9GUk9NX0JFLCBHRE9VQkxFX0ZST01fTEUsIEdET1VCTEVfVE9fQkUsCgkgIEdET1VCTEVfVE9fTEUsIEdET1VCTEVfU1dBUF9MRV9CRSwgR0ZMT0FUX0ZST01fQkUsIEdGTE9BVF9GUk9NX0xFLAoJICBHRkxPQVRfVE9fQkUsIEdGTE9BVF9UT19MRSwgR0ZMT0FUX1NXQVBfTEVfQkUuCgkgIEFsc28gYWRkIEdTVF9SRUFEXyBhbmQgR1NUX1dSSVRFXyBtYWNyb3MgZm9yIGZsb2F0cyBhbmQgZG91YmxlczoKCSAgR1NUX1JFQURfRkxPQVRfTEUsIEdTVF9SRUFEX0ZMT0FUX0JFLCBHU1RfUkVBRF9ET1VCTEVfTEUsCgkgIEdTVF9SRUFEX0RPVUJMRV9CRSwgR1NUX1dSSVRFX0ZMT0FUX0xFLCBHU1RfV1JJVEVfRkxPQVRfQkUsCgkgIEdTVF9XUklURV9ET1VCTEVfTEUsIEdTVF9XUklURV9ET1VCTEVfQkUuCgoyMDA4LTEwLTIyIDE0OjQ3OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgYW5kIGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZGF0YSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFQSTogQWRkIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSBhbmQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YQoJICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBkYXRhIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCBoYXZlCgkgIGEgZ3VhcmFudGVlZCBzaXplLgoKMjAwOC0xMC0yMiAxNDoyNToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEZpeCBhIGJ1ZyBpbiB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IHN1bW1hcnkgd2hlbiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5IGlzIHN1cHBsaWVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IGEgYnVnIGluIHRoZSBvdXRwdXQgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc3VtbWFyeQoJICB3aGVuIC0tZ3N0LWRpc2FibGUtcmVnaXN0cnkgaXMgc3VwcGxpZWQKCjIwMDgtMTAtMjIgMTM6NDc6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCB0aGUgbmFtZXMgb2YgMiBmdW5jdGlvbnMgaW4gdGhlIGRvY3Mgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgRml4IHRoZSBuYW1lcyBvZiAyIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBzdHJpbmdzLgoKMjAwOC0xMC0yMSAxNjozMDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcm90ZWN0IHNpbmtfYWxsb2MgY2FwcyB3aXRoIHRoZSBzaW5rcGFkIGxvY2sgdG8gYXZvaWQgbmFzdHkgY2FwcyByZWZjb3VudCBwcm9ibGVtcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCk6CgkgIFByb3RlY3Qgc2lua19hbGxvYyBjYXBzIHdpdGggdGhlIHNpbmtwYWQgbG9jayB0byBhdm9pZCBuYXN0eSBjYXBzCgkgIHJlZmNvdW50IHByb2JsZW1zIGFzIHNlZW4gaW4gYmFuc2hlZSBhbmQgbWF5YmUgYWxzbyBpbiBmYXJzaWdodDIuCgkgIFJlbW92ZSBhdG9taWMgaW50IG5vdyB0aGF0IHdlIG5lZWQgdG8gdGFrZSB0aGUgbG9jayBhbnl3YXlzLgoKMjAwOC0xMC0yMCAxNToxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wbGVtZW50IG1vcmUgc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9wcmVwYXJlX3NlZWtfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgSW1wbGVtZW50IG1vcmUgc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIFVzZSBwYWQgY29udmVydCBmdW5jdGlvbnMgdG8gY29udmVydCBwb3NpdGlvbiB0byB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCSAgRml4IHBvc2l0aW9uL2R1cmF0aW9uIHJlcG9ydGluZyBpbiBwdWxsIG1vZGUuCgkgIEltcGxlbWVudCBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcmVwb3J0aW5nIGluIG90aGVyIGZvcm1hdHMgdGhhbiB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIG1lbWJlciB0byBrZWVwIHRyYWNrIG9mIHdoZW4gdGhlIHNlZ21lbnQgaXMgcGxheWluZy4KCjIwMDgtMTAtMjAgMTM6MzI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFdoZW4gd2UgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgd2l0aG91dCB3YW50aW5nIHRvIHNldCB0aGUgY2FwcyB3ZSBhbHNvIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKToKCSAgV2hlbiB3ZSB1c2UgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB3aXRob3V0IHdhbnRpbmcgdG8gc2V0IHRoZSBjYXBzIHdlCgkgIGFsc28gZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSBiZWNhdXNlIHRoZSBjYWxsZXIKCSAgcHJlc3VtYWJseSBpcyBnb2luZyB0byBwZXJmb3JtIGl0cyBvd24gY3VzdG9tIGNoZWNrcy4gRml4ZXMgc29tZSBjYXNlcwoJICB3aGVyZSBiYXNldHJhbnNmb3JtIGVsZW1lbnRzIHdvdWxkIGVycm9yIG91dCB3aGVuIGl0IHdhcyBub3QgbmVlZGVkLgoKMjAwOC0xMC0yMCAxMzoyOTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgVXBkYXRlIGNvbW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBtZXRob2QuCgoyMDA4LTEwLTE5IDE5OjU3OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspOwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspOwoJICBSZW1vdmUgZHVwbGljYXRlZCBhc3NpZ25tZW50IGFuZCBsb2cgYSBtZXNzYWdlIGluIGZhaWx1cmUgY2FzZS4KCjIwMDgtMTAtMTkgMTA6MTM6MzkgKzAwMDAgIERpZyBHZSA8ZGlnLmdlLmNuQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiBGaXggY29weSduJ3Bhc3RlIGJ1ZyBpbiBoZWxsbyB3b3JsZCBleGFtcGxlICgjNTU2OTAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEaWcgR2UgPGRpZy5nZS5jbiBhdCBnbWFpbCBjb20+CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChtYWluKToKCSAgRml4IGNvcHknbidwYXN0ZSBidWcgaW4gaGVsbG8gd29ybGQgZXhhbXBsZSAoIzU1NjkwMCkuCgoyMDA4LTEwLTE3IDEzOjI3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBRdWVyeSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHdoZW4gYWN0aXZhdGluZyB0aGUgcGFkIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUXVlcnkgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB3aGVuIGFjdGl2YXRpbmcgdGhlIHBhZCBpbiBwdWxsIG1vZGUuCgkgIEltcGxlbWVudCBkdXJhdGlvbiBxdWVyeSBpbiBwdWxsIG1vZGUgYnkgdXNpbmcgdGhlIGluc3RhbGxlZCBwYWQgY29udmVydAoJICBmdW5jdGlvbiB0byBjb252ZXJ0IGZyb20gYnl0ZXMgdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgoyMDA4LTEwLTE2IDE0OjA5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBjb21taXQgdGhlIHN0YXRlIGluIHN1YmNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZmx1c2hfc3RhcnQpLCAoZ3N0X2Jhc2Vfc2lua19mbHVzaF9zdG9wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBtZXRob2QgdG8gY29tbWl0IHRoZSBzdGF0ZSBpbiBzdWJjbGFzc2VzLgoJICBSZWZhY3RvciB0aGUgZmx1c2hfc3RhcnQgYW5kIGZsdXNoX3N0b3AgY29kZSBiZWNhdXNlIHdlIG5lZWQgaXQgZm9yCgkgIGZsdXNoaW5nIHdoaWxlIHNlZWtpbmcgdG9vLgoJICBJbXBsZW1lbnQgdGhlIGJlZ2lubmluZ3Mgb2Ygc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIFVzZSB0aGUgc2VnbWVudCBsYXN0X3N0b3AgZmllbGQgZm9yIHRoZSBwdWxsaW5nIG9mZnNldC4KCSAgRml4IHRoZSBwYXVzZSBtZXRob2QgaW4gcHVsbCBtb2RlLgoJICBDb25maWd1cmUgdGhlIHNlZ21lbnQgdG8gQllURVMgZm9yIHB1bGwgbW9kZS4KCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19kb19wcmVyb2xsKCkKCjIwMDgtMTAtMTYgMTM6NTY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA4LTEwLTE0IDE3OjEwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHF1YXJrLmM6IEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgRml4IHByaW50ZiBmb3JtYXQgd2FybmluZy4KCjIwMDgtMTAtMTQgMTI6MzQ6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEZpeCBmbG93IGFnZ3JlZ2F0aW9uIG9mIHRlZS4gRXJyb3Igb3V0IGltbWVkaWF0ZWx5IGZvciBhbGwgZmxvdyByZXR1cm5zIGV4Y2VwdCBPSyBhbmQgTk9UXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgRml4IGZsb3cgYWdncmVnYXRpb24gb2YgdGVlLiBFcnJvciBvdXQgaW1tZWRpYXRlbHkgZm9yIGFsbCBmbG93IHJldHVybnMKCSAgZXhjZXB0IE9LIGFuZCBOT1RfTElOS0VELCByZXR1cm4gTk9UX0xJTktFRCBpZiBhbGwgcGFkcyBhcmUgbm90IGxpbmtlZAoJICBhbmQgcmV0dXJuIE9LIGlmIGF0IGxlYXN0IG9uZSBwYWQgaXMgbGlua2VkLgoJICBCZWZvcmUgd2UgZXJyb3JlZCBvdXQgb24gImZhdGFsIiBmbG93IHJldHVybnMgKGkuZS4gbm90IGZvciBXUk9OR19TVEFURSkKCSAgYW5kIG90aGVyd2lzZSByZXR1cm5lZCB0aGUgZmxvdyByZXR1cm4gb2YgdGhlIGxhc3QgcGFkLCB3aGljaCBpcyB3cm9uZy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKF9mYWtlX2NoYWluKSwgKF9mYWtlX2NoYWluX2Vycm9yKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3RzIGZvciB0aGUgZmxvdyBhZ2dyZWdhdGlvbi4KCjIwMDgtMTAtMTMgMTc6MTk6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZW1vdmUgaXRlbSBmcm9tIHRoZSB0b2RvIGxpc3QgYmVjYXVzZSBpdCB3YXMgZml4ZWQgd2l0aCB0aGUgbGF0ZW5jeSBzdGF0ZSBjaGFuZ2UgcmV3cml0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlbW92ZSBpdGVtIGZyb20gdGhlIHRvZG8gbGlzdCBiZWNhdXNlIGl0IHdhcyBmaXhlZCB3aXRoIHRoZSBsYXRlbmN5CgkgIHN0YXRlIGNoYW5nZSByZXdyaXRlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwgKGdzdF9ldmVudF9uZXdfbGF0ZW5jeSksCgkgIChnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeSk6CgkgIFVzZSBxdWFya3MgdG8gY29uc3RydWN0IGFuZCBwYXJzZSBldmVudHMuCgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyB0byB0aGUgdGFibGUuCgkgIEVtaXQgYSB3YXJuaW5nIHdoZW4gdGhlIHF1YXJrIHRhYmxlcyBhcmUgbm90IGluIHN5bmMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYW4gYXNzZXJ0LgoKMjAwOC0xMC0xMyAxNjo0Nzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy86IERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIGNvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgY29yZS4KCjIwMDgtMTAtMTMgMTA6NTA6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBkZWFkbG9jaywgZ19zb3VyY2VfZ2V0X2lkKCkgY2Fubm90IGJlIGNhbGxlZCBpbiBmaW5hbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbF91bmxvY2tlZCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbiksCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKSwKCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKSwgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6CgkgIEZpeCBkZWFkbG9jaywgZ19zb3VyY2VfZ2V0X2lkKCkgY2Fubm90IGJlIGNhbGxlZCBpbiBmaW5hbGl6ZS4KCSAgS2VlcCB0cmFjayBvZiB0aGUgd2F0Y2ggc291cmNlIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSBzb3VyY2Ugb2JqZWN0CgkgIGluc3RlYWQuCgkgIFVzZSB0aGUgYnVzIGxvY2sgdG8gcHJvdGVjdCBhY2Nlc3MgdG8gdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQKCSAgd2F0Y2ggc291cmNlLgoKMjAwOC0xMC0xMyAwOToyMjoyMiArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RidXMuYzogT25seSBhbGxvdyBvbmUgYnVzIHdhdGNoIHRvIGJlIHNldCBhdCBhIHRpbWUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGRpc3BhdGNoZXIgcG9wcyB0aGUgbWVzc2FnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZSBvbiBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCk6CgkgIE9ubHkgYWxsb3cgb25lIGJ1cyB3YXRjaCB0byBiZSBzZXQgYXQgYSB0aW1lLiBUaGlzIGlzIG5lY2Vzc2FyeQoJICBiZWNhdXNlIHRoZSBkaXNwYXRjaGVyIHBvcHMgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgYnVzIGFuZCB0aGUgc2Vjb25kCgkgIHdhdGNoZXIgd2lsbCB0aGVuIGdldCBOVUxMIG9yIHRoZSBuZXh0IG1lc3NhZ2UgKGFuZCB0aGUgZmlyc3Qgd29uJ3QKCSAgZ2V0IHRoaXMgbmV4dCBtZXNzYWdlIHRoZW4sIGV0YykuIElmIG1vcmUgdGhhbiBvbmUgIndhdGNoZXIiIGlzCgkgIHJlcXVpcmVkIHNpZ25hbCB3YXRjaGVzIHNob3VsZCBiZSB1c2VkLiBGaXhlcyBidWcgIzUyNjA0NC4KCjIwMDgtMTAtMTIgMjI6MTY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDaGFuZ2UgdGhlIHByaW50aW5nIG9mIHRoZSAnYnVmZmVyaW5nLi4uJyBvdXRwdXQgdG8gYXZvaWQgcHV0dGluZyBhIFxyIGluIGEgdHJhbnNsYXRlYWJsZSBzdHJpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQ2hhbmdlIHRoZSBwcmludGluZyBvZiB0aGUgJ2J1ZmZlcmluZy4uLicgb3V0cHV0IHRvIGF2b2lkIHB1dHRpbmcKCSAgYSBcciBpbiBhIHRyYW5zbGF0ZWFibGUgc3RyaW5nIChmbGFnZ2VkIGJ5IHRoZSBUUCkuCgoyMDA4LTEwLTEwIDE1OjM4OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0eG1sLmM6IENsYXJpZnkgdGhhdCB0aGUgc2F2ZV90aHlzZWxmKCkgYW5kIHJlc3RvcmVfdGh5c2VsZigpIHZpcnR1YWwgZnVuY3Rpb25zIG9mIEdzdE9iamVjdCBuZWVkIHRvIGJlIG92ZXJyaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBDbGFyaWZ5IHRoYXQgdGhlIHNhdmVfdGh5c2VsZigpIGFuZCByZXN0b3JlX3RoeXNlbGYoKSB2aXJ0dWFsCgkgIGZ1bmN0aW9ucyBvZiBHc3RPYmplY3QgbmVlZCB0byBiZSBvdmVycmlkZW4sIG5vdAoJICBnc3Rfb2JqZWN0XyhzYXZlfHJlc3RvcmUpX3RoeXNlbGYoKSB3aGljaCBpcyBpbXBvc3NpYmxlLgoJICBGaXhlcyBidWcgIzU1NTcwMC4KCjIwMDgtMTAtMTAgMTU6Mjc6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBhIHBhdGNoIGZyb20gMjEgbW9udGhzIGFnbyB0aGF0IGJyb2tlIGNhcHMgbmVnb3RpYXRpb24gaW4gcHVsbCBtb2RlLiBCYXNpY2FsbHksIGhhdmluZyBhIGJ1ZmZlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgUmV2ZXJ0IGEgcGF0Y2ggZnJvbSAyMSBtb250aHMgYWdvIHRoYXQgYnJva2UgY2FwcyBuZWdvdGlhdGlvbiBpbiBwdWxsCgkgIG1vZGUuIEJhc2ljYWxseSwgaGF2aW5nIGEgYnVmZmVyIHBhc3Mgb3ZlciBhIHBhZCB3aWxsIHRyaWdnZXIgdGhlCgkgIHNldGNhcHMgZnVuY3Rpb24gd2hlbiBjYXBzIGNoYW5nZSwganVzdCBsaWtlIGluIHB1c2ggbW9kZS4KCjIwMDgtMTAtMTAgMTU6MTI6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHRoZSBkb2NzIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIFVwZGF0ZSB0aGUgZG9jcyBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIElmIHdlIHB1bGwgYSBidWZmZXIgd2l0aCBub24tdHJpdmlhbCBjYXBzLCBzdWdnZXN0IHRob3NlIGNhcHMgd2l0aCB0aGUKCSAgbWF4IHByb2JhYmlsaXR5LgoKMjAwOC0xMC0xMCAxNDozMTowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBhbm90aGVyIGxpbWl0YXRpb24gb2YgcGFkLWJsb2NraW5nIHdpdGggc2VnbWVudCBzZWVrcyBub3QgcHVzaGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgYW5vdGhlciBsaW1pdGF0aW9uIG9mIHBhZC1ibG9ja2luZyB3aXRoIHNlZ21lbnQgc2Vla3Mgbm90IHB1c2hpbmcKCSAgRU9TIGV2ZW50cy4KCjIwMDgtMTAtMTAgMTM6MjQ6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG5ldyBzeW1ib2xzIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGVzCgoyMDA4LTEwLTEwIDEwOjM4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBUaGUgbWVzc2FnZSBzcmMgY2FuIGJlIE5VTEwsIGRvbid0IHRyeSB0byBwcmludCB0aGUgb2JqZWN0IG5hbWVzIGluIHRoYXQgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksICh1cGRhdGVfZGVncmVlKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIFRoZSBtZXNzYWdlIHNyYyBjYW4gYmUgTlVMTCwgZG9uJ3QgdHJ5IHRvIHByaW50IHRoZSBvYmplY3QgbmFtZXMgaW4gdGhhdAoJICBjYXNlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBkZWJ1Zy4KCSAgRml4IHRoZSB0ZXN0LCBwdWxsIGJhc2VkIHNpbmtzIGdvIEFTWU5DIHRvIFBBVVNFRCwganVzdCBsaWtlIG90aGVyCgkgIHNjaGVkdWxpbmcgbW9kZXMuCgoyMDA4LTEwLTEwIDEwOjAxOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBTbWFsbCBkb2MgdXBkYXRlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfYmxvY2tzaXplKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2Jsb2Nrc2l6ZSksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYmxvY2tzaXplIHByb3BlcnR5IGFuZCBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkYXRhCgkgIHRvIHB1bGwuCgkgIE5lZ290aWF0ZSBmaXJzdCBiZWZvcmUgYWN0aXZhdGluZyB1cHN0cmVhbSBpbiBwdWxsIG1vZGUgc28gdGhhdCB0aGV5IGNhbgoJICBuZWdvdGlhdGUgdGhlbXNlbHZlcy4KCSAgV2hlbiB3ZSBvcGVyYXRlIGluIHB1bGwgbW9kZSwgd2Ugb25seSBhY2NlcHQgdGhlIGNhcHMgdGhhdCB3ZQoJICBuZWdvdGlhdGVkLgoJICBNYWtlIHRoZSBzaW5rIGdvIEFTWU5DIHRvIFBBVVNFRCwgbGlrZSBhbGwgb3RoZXIgc2lua3MuCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3Npbmtfc2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3NpbmtfZ2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNpbms6OmJsb2Nrc2l6ZQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2xpdmUpLCAoZ3N0X2Jhc2Vfc3JjX2lzX2xpdmUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9ibG9ja3NpemUpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9ibG9ja3NpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXApLCAoZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXApLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIHR5cGVjaGVja2luZyBpbiBwdWJsaWMgQVBJIGZ1bmN0aW9ucy4KCSAgQWRkIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYmxvY2tzaXplIGluIHN1YmNsYXNzZXMuCgkgIEFQSTogR3N0QmFzZVNyYzo6Z3N0X2Jhc2Vfc3JjX3NldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTcmM6OmdzdF9iYXNlX3NyY19nZXRfYmxvY2tzaXplKCkKCjIwMDgtMTAtMTAgMDk6MTE6MTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogV2Ugbm93IHNlZSAzIGV2ZW50cyBnbyB0aHJvdWdoIG91ciBwYWQsIHNpbmNlIGJhc2VzaW5rIG5vdyBzZW5kcyB1cHN0cmVhbSBsYXRlbmN5IGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChwcm9iZV9kb19ub3RoaW5nKSwgKGRhdGFfcHJvYmUpLAoJICAoYnVmZmVyX3Byb2JlKSwgKGV2ZW50X3Byb2JlKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgV2Ugbm93IHNlZSAzIGV2ZW50cyBnbyB0aHJvdWdoIG91ciBwYWQsIHNpbmNlIGJhc2VzaW5rIG5vdyBzZW5kcwoJICB1cHN0cmVhbSBsYXRlbmN5IGV2ZW50cy4KCjIwMDgtMTAtMDggMTU6MjE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIGZsdXNoIHRoZSBidXMuCgoyMDA4LTEwLTA4IDE0OjIxOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGb3J3YXJkIExBVEVOQ1kgZXZlbnRzIHVwc3RyZWFtcyBzbyB0aGF0IGVsZW1lbnRzIGtub3cgYWJvdXQgdGhlIHRvdGFsIHBpcGVsaW5lIGxhdGVuY3kuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIEZvcndhcmQgTEFURU5DWSBldmVudHMgdXBzdHJlYW1zIHNvIHRoYXQgZWxlbWVudHMga25vdyBhYm91dCB0aGUgdG90YWwKCSAgcGlwZWxpbmUgbGF0ZW5jeS4gRml4ZXMgIzU1NTMwNy4KCjIwMDgtMTAtMDggMTE6MjA6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBbGxvdyB0aHJvdWdoIHF1ZXJpZXMgd2hlbiB3ZSBkb24ndCBrbm93IGhvdyBhcyBvdGhlcndpc2UgaXQncyBub3QgcG9zc2libGUgdG8gcXVlcnkgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgQWxsb3cgdGhyb3VnaCBxdWVyaWVzIHdoZW4gd2UgZG9uJ3Qga25vdyBob3cKCSAgdG8gYWRqdXN0IHRoZW0gKG5vdCBUSU1FIG9yIEJZVEVTKSwgYXMgb3RoZXJ3aXNlIGl0J3MKCSAgbm90IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIG9yZGVyCgkgIHRvIHNlZWsgaW4gb3RoZXIgZm9ybWF0cyBhdCBhbGwuCgoyMDA4LTEwLTA4IDExOjEyOjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA4LTEwLTA4IDExOjExOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBQbGFjYXRlIGRvYyBwZW5kYW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUGxhY2F0ZSBkb2MgcGVuZGFudHMuCgoyMDA4LTEwLTA4IDEwOjM5OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IFVuYnJlYWsgLWdvb2QgYnVpbGQsIHByaXZhdGUgaXMgYSByZXNlcnZlZCBjKysga2V5d29yZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFVuYnJlYWsgLWdvb2QgYnVpbGQsIHByaXZhdGUgaXMgYSByZXNlcnZlZCBjKysga2V5d29yZC4KCjIwMDgtMTAtMDggMTA6MTk6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBGaXggdW5pbnRlbmRlZCBBUEkgcmVtb3ZhbDogcmUtYWRkIEdTVF9HSE9TVF9QQURfQ0FTVCB0byB0aGUgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaCAoR1NUX0dIT1NUX1BBRF9DQVNUKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoR1NUX0dIT1NUX1BBRF9DQVNUKTogRml4IHVuaW50ZW5kZWQgQVBJCgkgIHJlbW92YWw6IHJlLWFkZCBHU1RfR0hPU1RfUEFEX0NBU1QgdG8gdGhlIGhlYWRlci4KCjIwMDgtMTAtMDggMTA6MTI6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5oIChHc3RQcm94eVBhZCwgR3N0UHJveHlQYWRDbGFzcywgR3N0R2hvc3RQYWQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oIChHc3RQcm94eVBhZCwgR3N0UHJveHlQYWRDbGFzcywgR3N0R2hvc3RQYWQpCgkgIChHc3RHaG9zdFBhZENsYXNzKTogUHVibGljYWxseSBleHBvc2UgdGhlc2Ugc3RydWN0dXJlcyBzbyBhcyB0bwoJICBhbGxvdyBlYXN5IHN1YmNsYXNzaW5nIGZyb20gQy4gSGlkZSB0aGUgbWVtYmVyIGRhdGEgYmVoaW5kIGEKCSAgcHJpdmF0ZSBvcGFxdWUgZGF0YSBwb2ludGVyLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGFwdCB0byBzdG9yZSBpbnN0YW5jZSBkYXRhIGluIHRoZSB0eXBlCgkgIGluc3RhbmNlJ3MgcHJpdmF0ZSBkYXRhIHJlZ2lvbiwgbm90IGluIHRoZSBwdWJsaWMgc3RydWN0LgoKMjAwOC0xMC0wOCAxMDowNzoxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIHdlIGNhbid0IGdldCBhIGNhY2hlIGZpbGUgZG9uJ3QgdHJ5IHRvIHNhdmUgc29tZXRoaW5nIHRvIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpOgoJICBJZiB3ZSBjYW4ndCBnZXQgYSBjYWNoZSBmaWxlIGRvbid0IHRyeSB0byBzYXZlIHNvbWV0aGluZyB0byBpdC4KCSAgRGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzIHVzdWFsbHkgaXNuJ3QgYSBnb29kIGlkZWEuCgoyMDA4LTEwLTA4IDA4OjU0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBJZiB3ZSBnb3QgYSB0ZW1wbGF0ZSB2aWEgZ19vYmplY3RfZ2V0KCksIGJlIHN1cmUgdG8gdW5yZWYgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IElmIHdlIGdvdCBhCgkgIHRlbXBsYXRlIHZpYSBnX29iamVjdF9nZXQoKSwgYmUgc3VyZSB0byB1bnJlZiBpdC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogRml4IGluY29ycmVjdCBkb2MuCgoyMDA4LTEwLTA3IDE1OjEyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIFNwYXJjIEFCSSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJICBBZGQgU3BhcmMgQUJJIGNoZWNrcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDYXN0IHNpZ25lZCBpbnRlZ2VyIHRvIHVuc2lnbmVkIHRvIGF2b2lkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDgtMTAtMDcgMTI6MjY6NDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiBVc2UgbmV3IEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9iZSk6CgkgIFVzZSBuZXcgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgbWFjcm9zLgoKMjAwOC0xMC0wNyAxMjowMDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWx3YXlzIHVzZSB0aGUgdW5hbGlnbmVkIHZhcmlhbnRzIG9mIEdTVF9SRUFEX1VJTlQqIGFuZCBHU1RfV1JJVEVfVUlOVCogYXMgaXQncyB0b28gZWFzeSB0byBicmVhayB0aGUgSVNPIEMgc3RyaWN0IGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFsd2F5cyB1c2UgdGhlIHVuYWxpZ25lZCB2YXJpYW50cyBvZiBHU1RfUkVBRF9VSU5UKiBhbmQgR1NUX1dSSVRFX1VJTlQqCgkgIGFzIGl0J3MgdG9vIGVhc3kgdG8gYnJlYWsgdGhlIElTTyBDIHN0cmljdCBhbGlhc2luZyBydWxlcyB3aXRoIHNpbXBsZQoJICBjYXN0cyB0byB0aGUgY29ycmVzcG9uZGluZyB0eXBlIGFuZCB0aGlzIHdvdWxkIGludHJvZHVjZSBoYXJkIHRvIGRlYnVnCgkgIGJ1Z3MuIEZpeGVzIGJ1ZyAjNTQ1NzE0LgoJICBBUEk6IEFkZCBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBhbmQgR1NUX1dSSVRFX1VJTlQyNF8oTEV8QkUpLgoKMjAwOC0xMC0wNyAwNjo1NjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCAnU2luY2UnIGJpdHMgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDogKEdTVF9CVUZGRVJfRlJFRV9GVU5DKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KToKCSAgQWRkICdTaW5jZScgYml0cyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IEFQSS4KCjIwMDgtMTAtMDYgMjE6NTI6NTcgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXggZG9jdW1lbnRhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXggZG9jdW1lbnRhdGlvbgoKMjAwOC0xMC0wNiAxODowMzo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2csIGRvaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nLCBkb2gKCjIwMDgtMTAtMDYgMTg6MDE6NDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBOZXcgQVBJLCBhIGZyZWUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgbWFsbG9jX2RhdGEgdG8gZnJlZSBpdC4gQi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogTmV3IEFQSSwgYSBmcmVlIGZ1bmN0aW9uCgkgIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gdGhlIG1hbGxvY19kYXRhIHRvIGZyZWUgaXQuIEJhc2ljYWxseSBhIHdheQoJICB0byBhdm9pZCBzdWJjbGFzc2luZyB3aGVuIGFsbCB5b3UgbmVlZCBpcyBhIGRpZmZlcmVudCBmcmVlCgkgIGZ1bmN0aW9uLCBpLmUuIGZyZWUoKSBpbnN0ZWFkIG9mIGdfZnJlZSgpLgoJICAqIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6IEZyZWUgbWFsbG9jX2RhdGEgdmlhCgkgIGNhbGxpbmcgdGhlIGZyZWUgZnVuY3Rpb24uCgkgIChnc3RfYnVmZmVyX2luaXQpOiBJbml0aWFsaXplIHRoZSBmcmVlIGZ1bmN0aW9uIHRvIGdfZnJlZS4KCjIwMDgtMTAtMDYgMTc6NTc6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBOZXcgZnVuY3Rpb24sIGZpbmlzaGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiBnaG9zdCBwYWQuIFVzZWZ1bCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MgYW5kIHN1YmNsYXNzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBOZXcgZnVuY3Rpb24sCgkgIGZpbmlzaGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiBnaG9zdCBwYWQuIFVzZWZ1bCBmb3IgbGFuZ3VhZ2UKCSAgYmluZGluZ3MgYW5kIHN1YmNsYXNzZXJzIG9mIEdzdEdob3N0UGFkLiBGaXhlcyAjNTM5MTA4LgoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6IFVzZSB0aGUgbmV3IGNvbnN0cnVjdG9yLgoKMjAwOC0xMC0wNiAxNjoxNTowMiArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RiaW4uYzogS2VlcCB0cmFjayBvZiBwYWRzIHRoYXQgYXJlIGJlaW5nIGxpbmtlZC91bmxpbmtlZCBhbmQgcmVzeW5jIHRoZSBzdGF0ZSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZSBvbiBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksICh1cGRhdGVfZGVncmVlKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgS2VlcCB0cmFjayBvZiBwYWRzIHRoYXQgYXJlIGJlaW5nIGxpbmtlZC91bmxpbmtlZCBhbmQgcmVzeW5jIHRoZSBzdGF0ZQoJICBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2RpcmVjdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGFpbl9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9nZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfdW5saW5rKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIFNvbWUgY29kZSBjbGVhbnVwcywgdXNlIG1hY3JvcyB0byBjaGVjayBwYWQgZGlyZWN0aW9uLgoJICBEb24ndCBuZWVkIHRvIHRha2UgdGhlIGxvY2sgb24gdGhlIHBhZCBkaXJlY3Rpb24uCgkgIFBvc3Qgc3RydWN0dXJlIGNoYW5nZSB3aGVuIHBhZHMgYXJlIGxpbmtlZC91bmxpbmtlZC4KCSAgQ2hhbmdlIHNvbWUgY2hlY2tzIGludG8gX3JldHVybl9pZl9mYWlsKCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAodGVzdF9saW5rX3N0cnVjdHVyZV9jaGFuZ2Vfc3RhdGVfY2hhbmdlZF9zeW5jX2NiKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHBhZCBsaW5rL3VubGlua2UgcmVzeW5jIGR1cmluZyBhIHN0YXRlIGNoYW5nZS4KCSAgRml4ZXMgIzUxMDM1NC4KCjIwMDgtMTAtMDYgMTU6MzE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXBsZW1lbnQgU1RSVUNUVVJFX0NIQU5HRUQgbWVzc2FnZXMuIFRoZXNlIG1lc3NhZ2VzIHdpbGwgYmUgdXNlZCB0byBzaWduYWwgdGhlIHBhcmVudCBiaW4gb2YgbGluay91bmxpbmsgb3BlcmF0aW9ucyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0cnVjdHVyZV9jaGFuZ2UpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RydWN0dXJlX2NoYW5nZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgSW1wbGVtZW50IFNUUlVDVFVSRV9DSEFOR0VEIG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyB3aWxsIGJlIHVzZWQgdG8KCSAgc2lnbmFsIHRoZSBwYXJlbnQgYmluIG9mIGxpbmsvdW5saW5rIG9wZXJhdGlvbnMgdGhhdCBjb3VsZCByZXF1aXJlIGEKCSAgcmVzeW5jIHdoZW4gZG9pbmcgYSBzdGF0ZSBjaGFuZ2UuIFNlZSAjIzUxMDM1NC4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfc3RydWN0dXJlX2NoYW5nZSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2Vfc3RydWN0dXJlX2NoYW5nZSgpCgoyMDA4LTEwLTA2IDE1OjIxOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1YXJrLio6IEFkZCBzb21lIG1vcmUgcXVhcmtzIGZvciBuZXcgbWVzc2FnZS4gU2VlICM1MTAzNTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyBmb3IgbmV3IG1lc3NhZ2UuIFNlZSAjNTEwMzU0LgoKMjAwOC0xMC0wNiAxMjo1NzozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIEFQSSB0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgQVBJIHRhZwoKMjAwOC0xMC0wNiAxMjo0MTo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWRkIGJpdCByZWFkZXIgYW5kIGJ5dGUgcmVhZGVyIGNsYXNzZXMsIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uIGFuZCBhbiBleHRlbnNpdmUgdW5pdCB0ZXN0IHN1aXRlLiBGaXhlcyBidWcgIzU1MzU1NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzogKGdzdF9iaXRfcmVhZGVyX25ldyksCgkgIChnc3RfYml0X3JlYWRlcl9uZXdfZnJvbV9idWZmZXIpLCAoZ3N0X2JpdF9yZWFkZXJfZnJlZSksCgkgIChnc3RfYml0X3JlYWRlcl9pbml0KSwgKGdzdF9iaXRfcmVhZGVyX2luaXRfZnJvbV9idWZmZXIpLAoJICAoZ3N0X2JpdF9yZWFkZXJfc2V0X3BvcyksIChnc3RfYml0X3JlYWRlcl9nZXRfcG9zKSwKCSAgKGdzdF9iaXRfcmVhZGVyX2dldF9yZW1haW5pbmcpLCAoZ3N0X2JpdF9yZWFkZXJfc2tpcCksCgkgIChnc3RfYml0X3JlYWRlcl9za2lwX3RvX2J5dGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChHRE9VQkxFX1NXQVBfTEVfQkUpLAoJICAoR0ZMT0FUX1NXQVBfTEVfQkUpLCAoZ3N0X2J5dGVfcmVhZGVyX25ldyksCgkgIChnc3RfYnl0ZV9yZWFkZXJfbmV3X2Zyb21fYnVmZmVyKSwgKGdzdF9ieXRlX3JlYWRlcl9mcmVlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9pbml0KSwgKGdzdF9ieXRlX3JlYWRlcl9pbml0X2Zyb21fYnVmZmVyKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9zZXRfcG9zKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfcG9zKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nKSwgKGdzdF9ieXRlX3JlYWRlcl9za2lwKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDgpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQ4KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQ4KSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDgpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYml0X3JlYWRlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfc3VpdGUpOgoJICBBZGQgYml0IHJlYWRlciBhbmQgYnl0ZSByZWFkZXIgY2xhc3NlcywgaW5jbHVkaW5nIGRvY3VtZW50YXRpb24KCSAgYW5kIGFuIGV4dGVuc2l2ZSB1bml0IHRlc3Qgc3VpdGUuIEZpeGVzIGJ1ZyAjNTUzNTU0LgoKMjAwOC0xMC0wNiAwODo1ODoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgYW5kIG90aGVyIGludGVybWVkaWF0ZSBzdGF0ZSBjaGFuZ2VzLiBGaXhlcyAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgYW5kIG90aGVyIGludGVybWVkaWF0ZSBzdGF0ZQoJICBjaGFuZ2VzLiBGaXhlcyAjNTUzODc0LgoKMjAwOC0xMC0wNiAwODo0NTo0MiArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHNtYWxsIHJlZm91bnQgbGVhayBpbiBjYXBzIGNvbXBhdGliaWxpdHkgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBPcmlnaW5hbCBwYXRjaCBieSA6IFNpbW9uIERlc2NhcmllcwoJICBGaXggc21hbGwgcmVmb3VudCBsZWFrIGluIGNhcHMgY29tcGF0aWJpbGl0eSBjaGVjay4KCSAgRml4ZXMgIzU1MTY3Ni4KCjIwMDgtMTAtMDYgMDc6MzA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOiBGaXggMC44IGFwaSB1c2FnZSBpbiBleGFtcGxlLiBGaXhlcyAjNTU0NTYxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICBGaXggMC44IGFwaSB1c2FnZSBpbiBleGFtcGxlLiBGaXhlcyAjNTU0NTYxCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIENoYW5nZSAwLjkgdG8gMC4xMCBoZXJlLgoKMjAwOC0xMC0wNiAwNzoxMzowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOiBDaGFuZ2UgImV2ZW50LWV2ZW50IGludGVyYWN0aW9uIiB0byAiZWxlbWVudC1lbGVtZW50IGludGVyYWN0aW9uIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOgoJICBDaGFuZ2UgImV2ZW50LWV2ZW50IGludGVyYWN0aW9uIiB0byAiZWxlbWVudC1lbGVtZW50IGludGVyYWN0aW9uIi4KCSAgRml4ZXMgIzU1MjQ0OC4gQWxzbyBmaXggc2FtcGxlIGNvZGUgZm9yIHNlZWtpbmcgYW5kIGRvIG1vcmUgMC44LT4wLjEwCgkgIHVwZGF0ZXMuCgoyMDA4LTEwLTA1IDEwOjAxOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIxLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjEuMQoKPT09IHJlbGVhc2UgMC4xMC4yMSA9PT0KCjIwMDgtMTAtMDIgMjM6NTk6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIxCgoyMDA4LTEwLTAyIDIyOjQyOjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDktMjggMjI6NDk6NTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjIwLjQgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjIwLjQgcHJlLXJlbGVhc2UKCjIwMDgtMDktMjggMjE6MTk6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGFzc2VydGlvbiBpbiBiYXNldHJhbnNmb3JtIHdoZW4gdGhlIHN1YmNsYXNzIGNob29zZXMgbm90IHRvIGFsbG9jYXRlIGEgYnVmZmVyIGluIHByZXBhcmVfYnVmZmVyKCksIGFuZCBtYWtlIGNhcHNmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBGaXggYXNzZXJ0aW9uIGluIGJhc2V0cmFuc2Zvcm0gd2hlbiB0aGUgc3ViY2xhc3MgY2hvb3NlcyBub3QgdG8KCSAgYWxsb2NhdGUgYSBidWZmZXIgaW4gcHJlcGFyZV9idWZmZXIoKSwgYW5kIG1ha2UgY2Fwc2ZpbHRlciBlcnJvciBvdXQKCSAgY2xlYW5seSBpZiByZXF1ZXN0ZWQgdG8gYXBwbHkgY2FwcyB0aGF0IGRvbid0IGNvbXBsZXRlbHkgc3BlY2lmeSB0aGUKCSAgYnVmZmVyLiBGaXhlcyAjNTUxNTA5CgoyMDA4LTA5LTI0IDE1OjAzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRha2UgbmV3IGNhcHMgcmVmIGJlY2F1c2Ugb3VyIG9sZCBvbmUgbWlnaHQgaGF2ZSBiZWVuIGdvbmUgd2hlbiB0aGUgc3ViY2xhc3MgcGVyZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIFRha2UgbmV3IGNhcHMgcmVmIGJlY2F1c2Ugb3VyIG9sZCBvbmUgbWlnaHQgaGF2ZSBiZWVuIGdvbmUgd2hlbiB0aGUKCSAgc3ViY2xhc3MgcGVyZm9ybXMgYSBnc3RfcGFkX3NldF9jYXBzKCkgb24gdGhlIHNyY3BhZC4gU2VlICM1NDg3NjQuCgoyMDA4LTA5LTE2IDE1OjM1OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWxzbyBjb21taXQgQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBbHNvIGNvbW1pdCBDaGFuZ2VMb2cKCjIwMDgtMDktMTYgMTU6MjQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgR2FoLiBDb21taXQgcHJlLXJlbGVhc2UgaW5mbyB0aGF0IHNob3VsZCBoYXZlIGdvbmUgaW4gbGFzdCB3ZWVrIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHYWguIENvbW1pdCBwcmUtcmVsZWFzZSBpbmZvIHRoYXQgc2hvdWxkIGhhdmUgZ29uZSBpbiBsYXN0IHdlZWsgYWxyZWFkeS4KCSAgMjAwOC0wOS0xMCAgSmFuIFNjaG1pZHQgIDxqYW4uc2NobWlkdEBzdW4uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yMC4yIHByZS1yZWxlYXNlCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9pZC5wbzoKCSAgKiBwby9wdF9CUi5wbzoKCSAgTmV3IHRyYW5zbGF0aW9ucy4KCjIwMDgtMDktMTUgMTU6MTg6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRG8gbm90IHByb2JlIGF2YWlsYWJpbGl0eSBvZiBjaGVjayB1bml0IHRlc3QgbGlicmFyeSB3aGVuIGNyb3NzIGNvbXBpbGluZywgYXMgdGVzdCB3b3VsZCBub3Qgd29yayBhbnl3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvIG5vdCBwcm9iZSBhdmFpbGFiaWxpdHkgb2YgY2hlY2sgdW5pdCB0ZXN0IGxpYnJhcnkgd2hlbiBjcm9zcwoJICBjb21waWxpbmcsIGFzIHRlc3Qgd291bGQgbm90IHdvcmsgYW55d2F5LiBBbHNvIGNsZWFudXAgdmVyYm9zZSBvdXRwdXQKCSAgb2YgdGhlIGNoZWNrIHRlc3QuIEZpeGVzICM1NTE5NTIuCgoyMDA4LTA5LTE0IDIyOjAxOjMwICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQXZvaWQgbGVha2luZyB0aGUgcGFyZW50IHJlZiB3aGVuIHdlIGZhaWwgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZSBlbGVtZW50IHVzaW5nIGdzdF9lbGVtZW50X3N5bmNfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOgoJICBBdm9pZCBsZWFraW5nIHRoZSBwYXJlbnQgcmVmIHdoZW4gd2UgZmFpbCBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlCgkgIGVsZW1lbnQgdXNpbmcgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCgpLiBGaXhlcyAjNTUxOTc4LgoKMjAwOC0wOS0xMSAxNjo1Njo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOiBSZW1vdmUgc29tZSBiaXRzIHRoYXQgbm8gbG9uZ2VyIGFwcGx5LCB1cGRhdGUgb3RoZXJzICgjNTUxNjQyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6OgoJICBSZW1vdmUgc29tZSBiaXRzIHRoYXQgbm8gbG9uZ2VyIGFwcGx5LCB1cGRhdGUgb3RoZXJzICgjNTUxNjQyKS4KCjIwMDgtMDktMDkgMTg6NDc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmguaW46IEFkZCBHU1RfREFUQURJUiwgaGFyZC1jb2RlIGNwdSB0byB4ODYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgQWRkIEdTVF9EQVRBRElSLCBoYXJkLWNvZGUgY3B1IHRvIHg4Ni4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgU3BhY2VzIHRvIHRhYnMuCgoyMDA4LTA5LTAzIDA1OjUyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IFNpbmNlOiBtYXJrZXJzIGZvciBuZXcgZ2VvIHRhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGdlbyB0YWdzLgoKMjAwOC0wOS0wMiAyMDowMDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IGFjdHVhbCB0YWcgbmFtZSBkZWZpbmUgYWZ0ZXIgcmVuYW1pbmcgZnJvbSBhbHRpdHVkZSB0byBlbGV2YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBhY3R1YWwgdGFnIG5hbWUgZGVmaW5lIGFmdGVyIHJlbmFtaW5nIGZyb20gYWx0aXR1ZGUgdG8gZWxldmF0aW9uLgoKMjAwOC0wOS0wMSAxNDowNTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIGZhbGxiYWNrIHdoZW4gY2FsbGluZyB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbiBvbiBhbiBlbGVtZW50IHRoYXQgaW1wbGVtZW50cyB0aGUgbmV3IGludGVybmFsX2xpbmsgaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChhZGRfdW5yZWZfcGFkX3RvX2xpc3QpLAoJICAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIEFkZCBmYWxsYmFjayB3aGVuIGNhbGxpbmcgdGhlIGRlcHJlY2F0ZWQgZnVuY3Rpb24gb24gYW4gZWxlbWVudCB0aGF0CgkgIGltcGxlbWVudHMgdGhlIG5ldyBpbnRlcm5hbF9saW5rIGhhbmRsZXIuCgoyMDA4LTA5LTAxIDEzOjM1OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbmV3IHRhZ3MgZm9yIGdlbyBsb2NhdGlvbiBhbmQgY2xhcmlmeSBwdXJwb3NlIG9mIGV4aXN0aW5nIGxvY2F0aW9uIHRhZy4gRml4ZXMgIzQ4MTE2OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQWRkIG5ldyB0YWdzIGZvciBnZW8gbG9jYXRpb24gYW5kIGNsYXJpZnkgcHVycG9zZSBvZiBleGlzdGluZyBsb2NhdGlvbgoJICB0YWcuIEZpeGVzICM0ODExNjkKCjIwMDgtMDktMDEgMTE6Mjc6NDUgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSB0aHJlYWQtc2FmZSBpbnRlcm5hbCBsaW5rcyBpdGVyYXRvci4gRml4ZXMgIzU0OTUwNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9kaXNwYXRjaGVyKToKCSAgVXNlIHRocmVhZC1zYWZlIGludGVybmFsIGxpbmtzIGl0ZXJhdG9yLiBGaXhlcyAjNTQ5NTA0LgoKMjAwOC0wOS0wMSAxMDo0MjowNCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIEFkZCB0aHJlYWRzYWZlIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyBpbnRlcm5hbCBsaW5rcyBvZiBhbiBlbGVtZW50LiBEZXByZWNhdGUgdGhlIG9sZCBpbnRlcm5hbCBsaW5rcyBmdW5jdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwKCSAgKGdzdF9wYWRfc2V0X2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24pLAoJICAoaW50X2xpbmtfaXRlcl9kYXRhX2ZyZWUpLCAoaXRlcmF0ZV9wYWQpLAoJICAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKSwgKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCB0aHJlYWRzYWZlIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyBpbnRlcm5hbCBsaW5rcyBvZiBhbgoJICBlbGVtZW50LiBEZXByZWNhdGUgdGhlIG9sZCBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbnMuCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfc2V0X2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24oKQoJICBBUEk6R3N0UGFkOjpHc3RQYWRJdGVySW50TGlua0Z1bmN0aW9uCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KCkKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9faXRlcmF0ZV9pbnRlcm5hbF9saW5rcyksCgkgIChnc3RfcHJveHlfcGFkX2luaXQpOgoJICBJbXBsZW1lbnQgdGhyZWFkc2FmZSBpbnRlcm5hbCBsaW5rcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgaW50ZXJuYWwgbGlua3Mgb24gdGVlLiBTZWUgIzU0OTUwNC4KCjIwMDgtMDgtMzAgMTI6NTc6NDcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogbGlicy90cmFuc2Zvcm0xIHRlc3QgcmVxdWlyZXMgbGlicy90ZXN0X3RyYW5zZm9ybS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJzL3RyYW5zZm9ybTEgdGVzdCByZXF1aXJlcyBsaWJzL3Rlc3RfdHJhbnNmb3JtLmMKCjIwMDgtMDgtMzAgMTI6MDc6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERpZSBldmlsIGRlYWRsb2NrLCBkaWUgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgRGllIGV2aWwgZGVhZGxvY2ssIGRpZSAhCgoyMDA4LTA4LTMwIDExOjU1OjU5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgRml4IGFsbCBsZWFrcyBkdWUgdG8gdGhlIGJ1ZyBpbiBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGJ5IHdoaWNoIGl0IGRvZXMgbm90IHN0ZWFsIHRoZSByZWZjb3VudCBvZiB0aGUgZ2l2ZW4gY2FwcyBhcyBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChuYW1lX2lzX3ZhbGlkKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGFsbCBsZWFrcyBkdWUgdG8gdGhlIGJ1ZyBpbiBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGJ5IHdoaWNoIGl0IGRvZXMKCSAgbm90IHN0ZWFsIHRoZSByZWZjb3VudCBvZiB0aGUgZ2l2ZW4gY2FwcyBhcyBzdGF0ZWQuCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgoyMDA4LTA4LTI5IDE3OjU4OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEFmdGVyIDMgeWVhcnMgaXQncyBhYm91dCB0aW1lIHRvIHJldmlzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgaXRlcmF0b3Igb2JqZWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFmdGVyIDMgeWVhcnMgaXQncyBhYm91dCB0aW1lIHRvIHJldmlzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUKCSAgaXRlcmF0b3Igb2JqZWN0cy4KCjIwMDgtMDgtMjkgMTY6MTA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IE1ha2UgdGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGxlc3MgdGhyZWFkLXVuc2FmZSBhbmQgYWRkIHNvbWUgY29tbWVudHMsIGR1bm5vIHdoeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIE1ha2UgdGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGxlc3MgdGhyZWFkLXVuc2FmZSBhbmQgYWRkIHNvbWUKCSAgY29tbWVudHMsIGR1bm5vIHdoeS4KCjIwMDgtMDgtMjkgMTQ6MTI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogSW5jbHVkZSBnc3RpbmZvLmggZXZlbiBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgaXMgZGVmaW5lZC4gRml4ZXMgYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgSW5jbHVkZSBnc3RpbmZvLmggZXZlbiBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgaXMgZGVmaW5lZC4gRml4ZXMKCSAgYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoKMjAwOC0wOC0yOSAwMDozNDo1OCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCBzaW5jZSBpdCBicmVha3MgYSBmZXcgcGx1Z2lucywgZmZtcGVnLCBhbGF3LCBhbmQgbXVsYXcuICBDb2RlIGlzIGNvcnJlY3QsIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFJldmVydCBsYXN0IGNoYW5nZSwgc2luY2UgaXQgYnJlYWtzCgkgIGEgZmV3IHBsdWdpbnMsIGZmbXBlZywgYWxhdywgYW5kIG11bGF3LiAgQ29kZSBpcyBjb3JyZWN0LAoJICBidXQgc2hvdWxkbid0IGJlIGVuYWJsZWQgdW50aWwgd2UndmUgcmVsZWFzZWQgZml4ZWQgdmVyc2lvbnMKCSAgb2YgLWdvb2QgYW5kIC1mZm1wZWcuCgoyMDA4LTA4LTI4IDIwOjEyOjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFB1dCB0aGUgZ3N0X29iamVjdF9nZXRfbmFtZSgpIGJhY2sgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgUHV0IHRoZSBnc3Rfb2JqZWN0X2dldF9uYW1lKCkgYmFjayBpbi4KCjIwMDgtMDgtMjggMTI6MzI6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBUaGUgb2xkIGJlaGF2aW91ciB3YXMgdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2Fwcy4gQXMgd2Ugbm93IGNhbGwgZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgVGhlIG9sZCBiZWhhdmlvdXIgd2FzIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSB0YWtlcyBvd25lcnNoaXAgb2YKCSAgdGhlIGNhcHMuIEFzIHdlIG5vdyBjYWxsIGdfb2JqZWN0X25ldygpIHdoaWNoIGNhbGxzIGdfb2JqZWN0X3NldCgpIGFuZAoJICB3aGljaCBjb3BpZXMgdGhlIGNhcHMsIHdlIGhhdmUgdG8gdW5yZWYgdGhlbSB0byBub3QgbGVhayB0aGVtLiBGaXhlcwoJICBtYWtlIHZhbGdyaWQgZm9yIG1lLgoKMjAwOC0wOC0yOCAxMDo0NTowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBzZWdmYXVsdCBvbiBpbnB1dCBsaWtlICJ0ZWw6KzEtMTIzLTU1NS0xMjM0Ii4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICBEb24ndCBzZWdmYXVsdCBvbiBpbnB1dCBsaWtlICJ0ZWw6KzEtMTIzLTU1NS0xMjM0Ii4KCjIwMDgtMDgtMjcgMDc6MTg6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCBhbHNvIGluY2x1ZGUgT2JqZWN0VHlwZSBpbiBnc3Rfb2JqZWN0X2dldF9wYXRoX3N0cmluZygpLiBNYWtlcyBnc3QtbGF1bmNoIC12IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgYWxzbyBpbmNsdWRlIE9iamVjdFR5cGUgaW4KCSAgZ3N0X29iamVjdF9nZXRfcGF0aF9zdHJpbmcoKS4gTWFrZXMgZ3N0LWxhdW5jaCAtdiBiaXQgbW9yZSB1c2VmdWwuCgoyMDA4LTA4LTI3IDAzOjA0OjIzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdCBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQKCSAgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBjb252ZXJ0aW5nIG5lZ2F0aXZlIGdyYW51bGVwb3MKCSAgdmFsdWVzIGZvciBEaXJhYy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogU2FtZSwgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkuCgoyMDA4LTA4LTI3IDAyOjU5OjU5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdCBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQKCSAgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBjb252ZXJ0aW5nIG5lZ2F0aXZlIGdyYW51bGVwb3MKCSAgdmFsdWVzIGZvciBEaXJhYy4KCjIwMDgtMDgtMjUgMTE6MDY6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgdG8gdGhlIGNsb2NrIHNsYXZpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgdG8gdGhlIGNsb2NrIHNsYXZpbmcgY29kZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBtZXRob2QuCgoyMDA4LTA4LTI1IDExOjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBUYWtlIHRoZSAocmVjdXJzaXZlKSBzdGF0ZSBsb2NrIGJldHdlZW4gZ2V0dGluZyB0aGUgbG9ja2VkIHN0YXRlIG9mIGFuIGVsZW1lbnQgYW5kIGNoYW5naW5nIHRoZSBlbGVtZW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBUYWtlIHRoZSAocmVjdXJzaXZlKSBzdGF0ZSBsb2NrIGJldHdlZW4gZ2V0dGluZyB0aGUgbG9ja2VkIHN0YXRlIG9mIGFuCgkgIGVsZW1lbnQgYW5kIGNoYW5naW5nIHRoZSBlbGVtZW50IHN0YXRlLiBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8KCSAgbG9jayBhbiBlbGVtZW50J3Mgc3RhdGUgYW5kIHRoZW4gY2hhbmdlIGl0cyBzdGF0ZSB3aXRob3V0IHJhY2VzLgoKMjAwOC0wOC0yNSAxMDo1Mjo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogV2hlbiBhbiBlbGVtZW50IGlzIGluIHRoZSBsb2NrZWQgc3RhdGUgd2Ugc3RpbGwgd2FudCB0byB1cGRhdGUgdGhlIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFdoZW4gYW4gZWxlbWVudCBpcyBpbiB0aGUgbG9ja2VkIHN0YXRlIHdlIHN0aWxsIHdhbnQgdG8gdXBkYXRlIHRoZQoJICBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgoyMDA4LTA4LTIxIDExOjE3OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVzZSB0aGUgcmVzdWx0IGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIGVsZW1lbnQgYWx3YXlzIGFjY2VwdGVkIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgVXNlIHRoZSByZXN1bHQgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUgZWxlbWVudAoJICBhbHdheXMgYWNjZXB0ZWQgdGhlIGNhcHMgY29tcHV0ZWQgYnkgdGhlIGRlZmF1bHQgbmVnb3RpYXRlIGZ1bmN0aW9uLgoKMjAwOC0wOC0yMCAxMDo1MjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcGxlbWVudCBtZXRob2QgZm9yIHJlY29uZmlndXJpbmcgYmFzZXRyYW5zZm9ybS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgSW1wbGVtZW50IG1ldGhvZCBmb3IgcmVjb25maWd1cmluZyBiYXNldHJhbnNmb3JtLgoJICBBUEk6IEdzdEJhc2VUcmFuc2Zvcm06OmdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSgpCgoyMDA4LTA4LTIwIDA3OjIyOjExICswMDAwICBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBNZW50aW9uIHRoYXQgdGhpcyBpcyBqdXN0IGxpa2UgZ3N0X2J1ZmZlcl9tZXJnZSgpIGJ1dCB3aXRoIGV4dHJhIHVucmVmZmluZyBmb3IgQyBjb2RlcnMuIEFkdmlzZSBsYW5ndS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNZW50aW9uIHRoYXQgdGhpcyBpcyBqdXN0IGxpa2UgZ3N0X2J1ZmZlcl9tZXJnZSgpIGJ1dCB3aXRoIGV4dHJhCgkgIHVucmVmZmluZyBmb3IgQyBjb2RlcnMuIEFkdmlzZSBsYW5ndWFnZSBiaW5kaW5ncyBub3QgdG8gd3JhcCBpdC4KCSAgRml4ZXMgQnVnICM1MzM4NTYuCgkgIEFsc28gZml4IGZpbGUgY29tbWVudC4KCjIwMDgtMDgtMjAgMDc6MDM6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBDYWxsIHN1cGVyOjpldmVudCgpIHdoZW4gbm90IGhhbmRsaW5nIGl0LiBGaXhlcyAjNTQ0ODU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBDYWxsIHN1cGVyOjpldmVudCgpIHdoZW4gbm90IGhhbmRsaW5nIGl0LiBGaXhlcyAjNTQ0ODU1LgoKMjAwOC0wOC0xOSAxNzoyMzoxOCArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXNlIDY0IGJpdCB2YXJpYW50cyBvZiBzdGF0IGZ1bmN0aW9ucyBvbiB3aW4zMiwgdG8gZW5hYmxlIHN1cHBvcnQgb2YgbGFyZ2UgZmlsZXMgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSA2NCBiaXQgdmFyaWFudHMgb2Ygc3RhdCBmdW5jdGlvbnMgb24gd2luMzIsIHRvIGVuYWJsZSBzdXBwb3J0CgkgIG9mIGxhcmdlIGZpbGVzIHRoZXJlLgoJICBGaXhlcyAjNTQ3Mjc3LgoKMjAwOC0wOC0xOSAxNjo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gdGhlIGZsdXNoaW5nIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHRoZSBmbHVzaGluZyBzdGF0ZS4KCSAgQWxzbyByZXBvcnQgdGhlIHBvc2l0aW9uIHdoZW4gd2UgYXJlIG5vdCB5ZXQgcHJlcm9sbGVkIGJ1dCB3ZQoJICBoYXZlIGEgbmV3c2VnbWVudCBldmVudC4gRml4ZXMgIzU0MzQ0NC4KCSAgSW1wcm92ZSB0aGUgcHVsbC1iYXNlZCBuZWdvdGlhdGlvbiBjb2RlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGluIFBBVVNFRCBhbmQKCSAgUExBWUlORy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZSB1bml0LXRlc3QsIHdlIGNhbiBub3cgcXVlcnkgdGhlIHBvc2l0aW9uIGFzIHNvb24gYXMgd2UgcmVjZWl2ZSBhCgkgIE5FV1NFR01FTlQgZXZlbnQuCgoyMDA4LTA4LTE5IDA4OjUyOjA1ICswMDAwICBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIHRoZSBzdWJjbGFzcyBldmVudCBoYW5kbGVyIHJlbGVhc2VzIHRoZSBQUkVST0xMX0xPQ0ssIHdlIGNvdWxkIGJlIGluIHRoZSBmbHVzaGluZyBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSmFzb24gWmhhbyA8ZTM0MjNjIGF0IG1vdG9yb2xhIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KToKCSAgV2hlbiB0aGUgc3ViY2xhc3MgZXZlbnQgaGFuZGxlciByZWxlYXNlcyB0aGUgUFJFUk9MTF9MT0NLLCB3ZSBjb3VsZCBiZQoJICBpbiB0aGUgZmx1c2hpbmcgc3RhdGUgYW5kIHdlIGhhdmUgdG8gaWdub3JlIHRoZSBldmVudC4gRml4ZXMgIzU0ODM5NC4KCjIwMDgtMDgtMTggMTE6Mjg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IERvY3VtZW50IEdTVF9SRUdJU1RSWV9VUERBVEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9jdW1lbnQgR1NUX1JFR0lTVFJZX1VQREFURSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMDgtMDgtMTggMDk6NTk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSWYgdGhlIGVsZW1lbnQgaXMgY29uZmlndXJlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dCB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGdhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgSWYgdGhlIGVsZW1lbnQgaXMgY29uZmlndXJlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dCB0aGUKCSAgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGdhdmUgdXMgYSBuZXcgb3V0cHV0IGJ1ZmZlciwgZGlzY2FyZCB0aGF0IGJ1ZmZlcgoJICBhbmQgcmV1c2UgdGhlIGlucHV0IGJ1ZmZlci4KCjIwMDgtMDgtMTUgMTc6MDE6MDcgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBQcm90ZWN0IHBhZF9hbGxvYyB3aXRoIGEgbmV3IGxvY2sgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IG5vdGhpbmcgaXMgcGVyZm9ybWluZyBhIHBhZF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzIGF0IHRhbmRiZXJnIGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9maW5hbGl6ZSksIChnc3RfdGVlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2ZpbmRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBQcm90ZWN0IHBhZF9hbGxvYyB3aXRoIGEgbmV3IGxvY2sgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IG5vdGhpbmcgaXMKCSAgcGVyZm9ybWluZyBhIHBhZF9hbGxvYyB3aGVuIHJlbW92aW5nIHRoZSBwYWQuIEZpeGVzICM1NDc4MzUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChidWZmZXJfYWxsb2NfaGFybmVzc19zZXR1cCksCgkgIChidWZmZXJfYWxsb2NfaGFybmVzc190ZWFyZG93biksIChhcHBfdGhyZWFkX2Z1bmMpLAoJICAoZmluYWxfc2lua3BhZF9idWZmZXJhbGxvYyksIChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3Igc2h1dGRvd24gcmFjZS4KCjIwMDgtMDgtMTQgMjA6MDU6MzMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IEFkZCBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZG9jCgoyMDA4LTA4LTE0IDE2OjM3OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEdvIG92ZXIgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBhZ2FpbiBhbmQgbWFrZSBzdXJlIHdlIGFsd2F5cyBlbmQgdXAgYWxsb2NhdGluZyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgR28gb3ZlciB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGFnYWluIGFuZCBtYWtlIHN1cmUgd2UgYWx3YXlzIGVuZCB1cAoJICBhbGxvY2F0aW5nIGEgYnVmZmVyLgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgkgIEF2b2lkIGRvaW5nIHBhZCBhbGxvYyB3aGVuIHdlIGhhdmUgYSBwZW5kaW5nIHN1Z2dlc3Rpb24gYmVjYXVzZSB3ZQoJICBjYW5ub3QgeWV0IGRlYWwgd2l0aCBjaGFuZ2luZyBjYXBzIGluIHRoYXQgY2FzZS4gRml4ZXMgIzU0NzcyOAoKMjAwOC0wOC0xNCAxNDoyNjoyMCArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBZGQgb25lIG1vcmUgaW1hZ2Ugc2hvd2luZyBkaWZmZXJlbnQgdGltZXMgdG9nZXRoZXIgd2l0aCBhIGRlc2NyaWJpbmcgcGFyYWdyYXBoLiBGaXhlcyAjNTQ3NzI5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2Nsb2Nrcy5wbmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtY2xvY2tzLnN2ZzoKCSAgQWRkIG9uZSBtb3JlIGltYWdlIHNob3dpbmcgZGlmZmVyZW50IHRpbWVzIHRvZ2V0aGVyIHdpdGggYSBkZXNjcmliaW5nCgkgIHBhcmFncmFwaC4gRml4ZXMgIzU0NzcyOS4KCjIwMDgtMDgtMTQgMTQ6MDQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBuZXcgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgbWV0aG9kLgoKMjAwOC0wOC0xNCAxMzo1Nzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBvdmVyd3JpdGUgdGhlIG91dHNpemUgd2hlbiBjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiBhIG5ldyBidWZmZXIgYmVjYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpOgoJICBEb24ndCBvdmVyd3JpdGUgdGhlIG91dHNpemUgd2hlbiBjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiBhIG5ldwoJICBidWZmZXIgYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIGl0IGluIGNhc2Ugd2UgY2Fubm90IHByb2Nlc3MgdGhlIG5ldwoJICBidWZmZXIuCgkgIFdoZW4gY29udmVydGluZyB0aGUgc2l6ZSBvZiB0aGUgbmV3IGJ1ZmZlciB0byBhbiB1cHN0cmVhbSBzaXplLCBhY3R1YWxseQoJICB1c2UgdGhlIGV4cGVjdGVkIHNpemUgb2YgdGhlIGJ1ZmZlciwgbm90IHNvbWUgb3RoZXIgcmFuZG9tIHZhbHVlLgoJICBVc2UgYW4gYXRvbWljIGludCB0byBzaWduYWwgdGhhdCBhIG5ldyB1cHN0cmVhbSBjYXBzIHN1Z2dlc3Rpb24gaXMKCSAgYXZhaWxhYmxlLgoJICBXaGVuIHdlIGNhbiBjb252ZXJ0IHRoZSBjdXJyZW50IGJ1ZmZlciB0byBhIG5ldyBmb3JtYXQsIGNoZWNrIGlmIHRoZQoJICBidWZmZXIgc2l6ZSBpcyBvZiB0aGUgZXhwZWN0ZWQgc2l6ZSBhbmQgYWxsb2NhdGUgYSBuZXcgYnVmZmVyIG9mIHRoZQoJICBleHBlY3RlZCBzaXplIHdoZW4gdGhpcyBpcyBub3QgdGhlIGNhc2UuCgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHJlbW92ZSBpZmRlZmZlZCBjb2RlIGZyb20gdGhlIHVuaXQgdGVzdC4KCjIwMDgtMDgtMTIgMTg6NDg6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBrZ2NvbmZpZy86IFJlbW92ZSAtbGdzdGNvbnRyb2wtMC4xMCB3aGljaCBuZXZlciB3b3JrZWQgYW55d2F5IGFzIHRoZSBsaWIgaXMgY2FsbGVkIGdzdGNvbnRyb2xsZXItMC4xMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBSZW1vdmUgLWxnc3Rjb250cm9sLTAuMTAgd2hpY2ggbmV2ZXIgd29ya2VkIGFueXdheSBhcyB0aGUgbGliIGlzCgkgIGNhbGxlZCBnc3Rjb250cm9sbGVyLTAuMTAuCgoyMDA4LTA4LTEyIDA2OjI3OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgZG91YmxlIGludGVyZmFjZSBmcm9tIGRvYy1zdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBSZW1vdmUgZG91YmxlIGludGVyZmFjZSBmcm9tIGRvYy1zdHJpbmcuCgoyMDA4LTA4LTEyIDA2OjE2OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IGhlYWRpbmdzIGluIGRvY3MgYW5kIGd0ay1kb2Mgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggaGVhZGluZ3MgaW4gZG9jcyBhbmQgZ3RrLWRvYyB3YXJuaW5ncy4KCjIwMDgtMDgtMTEgMTk6MDQ6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBEb24ndCB1c2UgZ19ta3N0bXAoKSBvbiB3aW4zMiwgaXQncyB1bnNhZmUgaWYgZ2xpYiBpcyB1c2luZyBhIGRpZmZlcmVudCBsaWJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgRG9uJ3QgdXNlIGdfbWtzdG1wKCkgb24gd2luMzIsIGl0J3MgdW5zYWZlIGlmIGdsaWIgaXMgdXNpbmcgYSBkaWZmZXJlbnQKCSAgbGliYy4KCSAgRml4ZXMgIzU0NDc3Ni4KCjIwMDgtMDgtMTEgMTU6MTQ6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgIm1heSBiZSB1c2VkIHVuaXRpYWxpemVkIiB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGaXggYSAibWF5IGJlIHVzZWQgdW5pdGlhbGl6ZWQiIHdhcm5pbmcuCgoyMDA4LTA4LTExIDA4OjA2OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBwcmVzZXQtaWZhY2Ugdm1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBEb2N1bWVudCBwcmVzZXQtaWZhY2Ugdm1ldGhvZHMuCgoyMDA4LTA4LTExIDA3OjA3OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDogVHVybiB0aG91Z2h0cyBhYm91dCBIQUwgaW50byBhIG5vdGUtdGFnLiBSZW1vdmUgbWVudGlvbmluZyB0aGF0IGlzIG9ubHkgdXNlZCB0byAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIFR1cm4gdGhvdWdodHMgYWJvdXQgSEFMIGludG8gYSBub3RlLXRhZy4gUmVtb3ZlIG1lbnRpb25pbmcgdGhhdCBpcwoJICBvbmx5IHVzZWQgdG8gZGlzY292ZXIgZGV2aWNlcy4KCjIwMDgtMDgtMDcgMTU6NDk6MDAgKzAwMDAgIEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgoJICBnc3QvZ3N0LmM6IE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlciB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyCgkgIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCjIwMDgtMDgtMDcgMTI6Mjg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggc3Vic2V0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKToKCSAgRml4IHN1YnNldCB0ZXN0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgdW5pdCB0ZXN0IHN1YnNldCB0ZXN0cyBhbmQgYWRkIGEgdGVzdGNhc2UgZm9yIHRoZSBzdWJzZXQgZmFpbHVyZQoJICBjYXNlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEltcHJvdmUgc3VidHJhY3Rpb24gdW5pdCB0ZXN0LgoKMjAwOC0wOC0wNyAwNzowMToxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogVW5sb2NrLCBpbnN0ZWFkIG9mIGxvY2tpbmcgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFVubG9jaywgaW5zdGVhZCBvZiBsb2NraW5nIGFnYWluLgoKMjAwOC0wOC0wNSAxNjo1MDoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQ2xhcmlmeSB0aGUgZG9jcyBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENsYXJpZnkgdGhlIGRvY3MgYSBiaXQgbW9yZS4KCjIwMDgtMDgtMDUgMTU6NDI6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogRG9uJ3QgbGVhayBvbGQgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICBEb24ndCBsZWFrIG9sZCB0YWdsaXN0LgoKMjAwOC0wOC0wNSAxNTowMzoyNyArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQXZvaWQgb3ZlcmZsb3dzIGluIGZpeGF0aW9uIGNvZGUgd2hlbiBkZWFsaW5nIHdpdGggTUFYSU5UIHZhbHVlcywgd2hpY2ggdjRsMnNyYyBzZWVtcyB0byBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgQXZvaWQgb3ZlcmZsb3dzIGluIGZpeGF0aW9uIGNvZGUgd2hlbiBkZWFsaW5nIHdpdGggTUFYSU5UIHZhbHVlcywgd2hpY2gKCSAgdjRsMnNyYyBzZWVtcyB0byBkby4KCSAgRml4ZXMgIzU0NjMyOC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhlIGZpeC4KCjIwMDgtMDgtMDUgMTE6MTI6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVXNlIG5ldyBjYXBzIHN1Z2dlc3Rpb24gZmVhdHVyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlcXVlc3QgYSBjYXBzIG5lZ290aWF0aW9uIHVwc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChjb3B5X2Z1bmMpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgVXNlIG5ldyBjYXBzIHN1Z2dlc3Rpb24gZmVhdHVyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlcXVlc3QgYSBjYXBzCgkgIG5lZ290aWF0aW9uIHVwc3RyZWFtLgoKMjAwOC0wOC0wNSAxMToxMTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZnVuY3Rpb246CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZnVuY3Rpb246CgkgIEFQSTogR3N0QmFzZVRyYW5zZm9ybTo6Z3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QoKQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jYW5fdHJhbnNmb3JtKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9pbl9wbGFjZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfaW5fcGxhY2UpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmV3cml0ZSBvZiBiYXNldHJhbnNmb3JtIHRvIHBlcmZvcm0gbmVnb3RpYXRpb24gb3V0c2lkZSBvZiB0aGUKCSAgYnVmZmVyX2FsbG9jIGZ1bmN0aW9ucy4gIEZpeGVzICM1NDU4NTMuCgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChidWZmZXJfYWxsb2NfY3QyKToKCSAgVXBkYXRlIHVuaXQgdGVzdC4KCjIwMDgtMDgtMDUgMDU6NDQ6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzogT25seSBydW4gcHJlc2V0IHRlc3RzIHdoZW4gJEhPTUUgaXMgd3JpdGFibGUuIFByZWxpbWluYXJ5IGZpeCBmb3IgIzU0NTQzMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJICBPbmx5IHJ1biBwcmVzZXQgdGVzdHMgd2hlbiAkSE9NRSBpcyB3cml0YWJsZS4gUHJlbGltaW5hcnkgZml4IGZvcgoJICAjNTQ1NDMzLgoKMjAwOC0wOC0wNCAxNTo0OToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHJhY2UgZm9yIGJpbnMgdGhhdCBzaW11bGF0ZSBBU1lOQyBzdGF0ZSBjaGFuZ2VzIGJ5IGluc2VydGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRml4IHJhY2UgZm9yIGJpbnMgdGhhdCBzaW11bGF0ZSBBU1lOQyBzdGF0ZSBjaGFuZ2VzIGJ5IGluc2VydGluZwoJICBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyBpbiB0aGVpciBidXMuIFdlIG5lZWQgdG8gY2hlY2sgZm9yCgkgIHBlbmRpbmcgQVNZTkMgbWVzc2FnZXMgZXZlbiB3aGVuIHRoZSBiaW4gZG9lcyBub3QgaGF2ZSBBU1lOQyBjaGlsZHJlbi4KCSAgV2Ugbm90ZSBkZXRlY3QgdGhpcyBiZWhhdmlvdXIgYmVjYXVzZSB3ZSB3aWxsIHJlY2VpdmUgYW4gQVNZTkMgbWVzc2FnZQoJICB0aGF0IGlzIG9yaWdpbmF0aW5nIGZyb20gdGhlIGJpbiBpdHNlbGYuCgkgIEZpeGVzIHJhY2VzIHdpdGggZGVjb2RlYmluMiBzdGF0ZSBjaGFuZ2VzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCjIwMDgtMDgtMDQgMTM6MDE6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBGaXggdHlwby4KCjIwMDgtMDgtMDQgMTI6NDY6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFyZ2guIGFjdHVhbGx5IHNhdmUgdGhlIHRleHQgYmVmb3JlIGNvbW1pdHRpbmcuIE5vdyBhZGRzIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgdG8gZ3N0Xy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBcmdoLiBhY3R1YWxseSBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjb21taXR0aW5nLiBOb3cgYWRkcwoJICBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIHRvIGdzdF90YWdfcmVnaXN0ZXIoKS4KCjIwMDgtMDgtMDQgMTI6MzA6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IERvIGFzIHRpbSBwb2ludGVkIG91dCBhbmQgYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIG5ldyB0YWcuIEFsc28gaW1wcm92ZSB0ZSBkb2NzIGFuZCB1c2UgZ3N0X3RhZ19tZXJnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIERvIGFzIHRpbSBwb2ludGVkIG91dCBhbmQgYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIG5ldyB0YWcuIEFsc28gaW1wcm92ZQoJICB0ZSBkb2NzIGFuZCB1c2UgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSBtZXRob2QgdG8gYWxsb3cKCSAgcmV0cml2aW5nIGFsbCBrZXl3b3JkcyBtZXJnZWQgaW4gb25lIGxpc3QuCgoyMDA4LTA4LTAxIDExOjU3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXZlcnQgJ2FjY2lkZW50aWFsJyBjaGFuZ2Ugb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gcmVtb3ZhbC4gV2Ugc3RpbGwgbmVlZCB0byBnZW5lcmF0ZSB0aGUgdHlwZXMgZmlsZSBpbiBjb25maWd1cmUgLS0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgUmV2ZXJ0ICdhY2NpZGVudGlhbCcgY2hhbmdlIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHJlbW92YWwuIFdlIHN0aWxsCgkgIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGVzIGZpbGUgaW4gY29uZmlndXJlIC0tZGlzYWJsZS1sb2FkLXNhdmUuCgoyMDA4LTA4LTAxIDExOjM0OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbmV3IHRhZ2xpc3QgaXRlbSBHU1RfVEFHX0tFWVdPUkRTLCBuZWVkZWQgZm9yICM1MjA2OTQgLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFkZCBuZXcgdGFnbGlzdCBpdGVtIEdTVF9UQUdfS0VZV09SRFMsIG5lZWRlZCBmb3IgIzUyMDY5NCAuCgoyMDA4LTA4LTAxIDEwOjAyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IEFkZCAibmFtZS10ZW1wbGF0ZSIsICJkaXJlY3Rpb24iLCAicHJlc2VuY2UiIGFuZCAiY2FwcyIgcHJvcGVydGllcywgc28gdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX25ldyksIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfc2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3Byb3BlcnR5KToKCSAgQWRkICJuYW1lLXRlbXBsYXRlIiwgImRpcmVjdGlvbiIsICJwcmVzZW5jZSIgYW5kICJjYXBzIiBwcm9wZXJ0aWVzLAoJICBzbyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgaXMganVzdCBhIHRoaW4gd3JhcHBlciBhcm91bmQKCSAgZ19vYmplY3RfbmV3KCksIHdoaWNoIGlzIGJldHRlciBmb3IgYmluZGluZ3MuIChGaXhlczogIzUzOTc3MikKCjIwMDgtMDctMzEgMTc6MTY6NTAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R1cmkuYzogQmUgbW9yZSBsaWJlcmFsIGluIHdoYXQgVVJJcyB3ZSBhY2NlcHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgQmUgbW9yZSBsaWJlcmFsIGluIHdoYXQgVVJJcyB3ZSBhY2NlcHQuCgkgIERvIG5vdCB1bmVzY2FwZSBiaXRzIG9mIHRoZSBVUkkgZm9yIG5vIGFwcGFyZW50IHJlYXNvbiBiZWZvcmUgcGFzc2luZyB0bwoJICB0aGUgZWxlbWVudC4gRml4ZXMgIzU0NTM1Mi4KCjIwMDgtMDctMzEgMTU6MjQ6MjEgKzAwMDAgIFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KCgkgIGdzdC9nc3QuYzogSW5jbHVkZSBnc3Rjb25maWcuaCBhcyBtYWNyb3MgZnJvbSBpdCBhcmUgdXNlZC4gRml4ZXMgYnVnICM1NDU2MDcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPgoJICAqIGdzdC9nc3QuYzoKCSAgSW5jbHVkZSBnc3Rjb25maWcuaCBhcyBtYWNyb3MgZnJvbSBpdCBhcmUgdXNlZC4gRml4ZXMgYnVnICM1NDU2MDcuCgoyMDA4LTA3LTMxIDE1OjIwOjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZW1vdmUgR1NUX0RJU0FCTEVfKEVOVU1UWVBFU3xJTkRFWHxVUkkpIGV2ZXJ5d2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9zZXRfaW5kZXhfZnVuYyk6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfaW5kZXgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICAqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluZGVudDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW5kZXhfaW5mbyksIChwcmludF9lbGVtZW50X2xpc3QpLAoJICAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKSwgKHByaW50X2VsZW1lbnRfZmVhdHVyZXMpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9ldmVudF9tYXNrcyksCgkgIChwcmludF9lbGVtZW50X2luZm8pOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgUmVtb3ZlIEdTVF9ESVNBQkxFXyhFTlVNVFlQRVN8SU5ERVh8VVJJKSBldmVyeXdoZXJlLgoJICBEaXNhYmxpbmcgdGhlIGluZGV4ZXJzIGFuZCBVUkkgaGFuZGxlciBjb2RlIHdpbGwgb25seSByZWR1Y2UgdGhlCgkgIHJlcXVpcmVkIGFtb3VudCBvZiBtZW1vcnkgYnkgYSB2ZXJ5IHNtYWxsIGFtb3VudCBidXQgb24gdGhlIG90aGVyIGhhbmQKCSAgcmVxdWlyZXMgbXVjaCBtb3JlIG1haW50YWluY2Ugd29yay4gQXBhcnQgZnJvbSB0aGF0IG1hbnkgcGxhY2VzIG9mCgkgIGNvZGUgYXJlIGJyb2tlbiB3aGVuIGRpc2FibGluZyB0aGVtLgoJICBEaXNhYmxpbmcgdGhlIGVudW0gdHlwZXMgZG9lc24ndCByZWR1Y2UgdGhlIHJlcXVpcmVkIGFtb3VudCBvZiBtZW1vcnkKCSAgYnkgbW9yZSB0aGFuIGEgZmV3IGJ5dGVzIGFuZCBtYWtlcyBpdCBoYXJkIHRvIGZpeCBidWdzIGxpa2UgIzUzOTc3MiwKCSAgaS5lLiB1c2UgdGhlIGVudW1zIGFzIEdPYmplY3QgcHJvcGVydGllcy4KCjIwMDgtMDctMzEgMTM6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgc29tZSB0aG91Z2h0cyBhbmQgcHJvYmxlbXMgd2l0aCB1cHN0cmVhbSByZW5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSB0aG91Z2h0cyBhbmQgcHJvYmxlbXMgd2l0aCB1cHN0cmVhbSByZW5lZ290aWF0aW9uLgoKMjAwOC0wNy0zMSAxMjo1MDo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlIHNpbGx5IHJlZHVuZGFudCBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBSZW1vdmUgc2lsbHkgcmVkdW5kYW50IGRlYnVnLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIENsYXJpZnkgdGhlIGRvY3MgcmVnYXJkaW5nIG5ldyBjYXBzIHJlY2VpdmVkIGZyb20gcGFkX2FsbG9jLgoKMjAwOC0wNy0zMSAwOTo1NToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBNYWtlIHNldHRpbmcgdGhlIGNhcHMgbW9yZSB0aHJlYWRzYWZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2Fwc2ZpbHRlcl9nZXRfcHJvcGVydHkpLCAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2NhcHMpOgoJICBNYWtlIHNldHRpbmcgdGhlIGNhcHMgbW9yZSB0aHJlYWRzYWZlLgoKMjAwOC0wNy0zMSAwODozOToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIFVwZGF0ZSBkb2NzLgoKMjAwOC0wNy0zMSAwODozNzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWRkIGFuZCB1c2UgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUgcG90ZW50aWFsbHkgbGVzcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfYWNjZXB0Y2Fwcyk6CgkgIEFkZCBhbmQgdXNlIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdGhlCgkgIHBvdGVudGlhbGx5IGxlc3Mgb3B0aW1pemVkIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDA4LTA3LTI5IDE1OjMyOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBPbmx5IHNhbml0eS1jaGVjayB0aGUgYnVmZmVyIHNpemUgaWYgcmVxdWVzdGVkX2NhcHMgPT0gYnVmZmVyX2NhcHMgKGllLiBkb24ndCB0YWtlIHBhZCBjYXBzIGludG8gYWNjb3VuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBPbmx5IHNhbml0eS1jaGVjayB0aGUgYnVmZmVyIHNpemUgaWYgcmVxdWVzdGVkX2NhcHMgPT0gYnVmZmVyX2NhcHMKCSAgKGllLiBkb24ndCB0YWtlIHBhZCBjYXBzIGludG8gYWNjb3VudCwgdGhleSdyZSBub3QgcmVsZXZhbnQgaGVyZSkKCjIwMDgtMDctMjkgMTQ6MzI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFJldmVydGluZyBhcyBub3QgZXZlcnl0aGluZyBpcyBjbGVhciB5ZXQuIE5lZWRzIHNvbWUgZ2VuZXJhbCBkZXNpZ24gd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBSZXZlcnRpbmcgYXMgbm90IGV2ZXJ5dGhpbmcgaXMgY2xlYXIgeWV0LiBOZWVkcyBzb21lIGdlbmVyYWwgZGVzaWduCgkgIHdvcmsuCgoyMDA4LTA3LTI5IDEzOjM2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IGZvciB0ZWUgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGZvciB0ZWUgY29tbWl0LgoKMjAwOC0wNy0yOSAxMzozMDowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQ2xlYW51cCBzZWN0aW9uLWZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIENsZWFudXAgc2VjdGlvbi1maWxlLgoKMjAwOC0wNy0yOSAxMTo1NzoxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUmVsYXkgdGFnIGV2ZW50cyBpbiB0ZWUuIEZpeGVzIHBhcnRzIG9mICM0NzQwMTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUmVsYXkgdGFnIGV2ZW50cyBpbiB0ZWUuIEZpeGVzIHBhcnRzIG9mICM0NzQwMTYuCgoyMDA4LTA3LTI5IDAwOjQ1OjI5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBCdWlsZCB0aGUgbmV0IGxpYnJhcnkgaWYgd2UgaGF2ZSB3aW5zb2NrMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBCdWlsZCB0aGUgbmV0IGxpYnJhcnkgaWYgd2UgaGF2ZSB3aW5zb2NrMi4KCjIwMDgtMDctMjYgMTI6MDA6MzYgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogUmVwbGFjZSBvbmUgZGlhZ3JhbSB3aXRoIHR3byBzZXBhcmF0ZSBvbmVzIGFuZCB1cGRhdGVzIG90aGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5wbmc6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLXN5bmNocm9uaXppbmcucG5nOgoJICBSZXBsYWNlIG9uZSBkaWFncmFtIHdpdGggdHdvIHNlcGFyYXRlIG9uZXMgYW5kIHVwZGF0ZXMgb3RoZXJzLgoJICBGaXhlcyAjNTQyNDAxLgoKMjAwOC0wNy0yNSAxMDoyNDo0MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEZpeCBsaW5rIGluIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCBsaW5rIGluIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTI0IDE3OjM4OjQzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTI0IDE1OjEzOjI0ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6IHJldmVydCB0aGUgY2hhbmdlcyB0byB0aGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICByZXZlcnQgdGhlIGNoYW5nZXMgdG8gdGhlIGhlYWRlciBmaWxlIGZvciB0aGUgQUJJLgoKMjAwOC0wNy0yNCAxNDo0Nzo1OCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBEb24ndCBjYWNoZSB0aGUgc2Vla2FibGUgc3RhdHVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9uJ3QgY2FjaGUgdGhlIHNlZWthYmxlIHN0YXR1cy4KCSAgRml4ZXMgYnVnICM1NDQxNzQKCjIwMDgtMDctMjQgMTI6MzY6MjAgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEFkZCBmYWtlc2luayB0byBleGFtcGxlIGNvZGUgdG8gY2xvc2UgdGhlIHBpcGVsaW5lIGdyYXBoLiAgVGhpcyBwcmV2ZW50cyB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBBZGQgZmFrZXNpbmsgdG8gZXhhbXBsZQoJICBjb2RlIHRvIGNsb3NlIHRoZSBwaXBlbGluZSBncmFwaC4gIFRoaXMgcHJldmVudHMgdGhlIHByb2dyYW0gZnJvbQoJICBwcmludGluZyBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLgoKMjAwOC0wNy0yMyAxNTo0NDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IENvcnJlY3QgdHlwby4gRml4ZXMgYnVnICM1NDQzMjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBDb3JyZWN0IHR5cG8uIEZpeGVzIGJ1ZyAjNTQ0MzIwLgoKMjAwOC0wNy0yMiAxODoxMjo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgQUNfSVNDX1BPU0lYIG1hY3JvOyBpdCdzIGJyb2tlbiBvbiBzb21lIHBsYXRmb3JtcyBhbmQgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgQUNfSVNDX1BPU0lYIG1hY3JvOyBpdCdzIGJyb2tlbiBvbiBzb21lIHBsYXRmb3JtcyBhbmQgbm90IG5lZWRlZC4KCSAgQWRkIGNoZWNrICh0YWtlbiBmcm9tIC1iYXNlKSBmb3Igd2luc29jaywgYWRkcyBXSU4zMl9MSUJTCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBBZGQgV0lOMzJfTElCUyB0byBMSUJBREQgZm9yIGxpYmdzdHJlYW1lci4gTmVlZGVkIG5vdyB0aGF0IGdzdHBvbGwgdXNlcwoJICB3aW5zb2NrLgoJICBEZWZpbmUgR1NUX0VYUE9SVFMgd2hlbiBidWlsZGluZyBsaWJnc3RyZWFtZXIgKG9ubHkgdXNlZCBvbiB3aW4zMikKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBVc2UgR1NUX0VYUE9SVCBpbnN0ZWFkIG9mIGxvY2FsbHktZGVmaW5lZCAoYW5kIGluY29ycmVjdCBJTVBPUlRfU1lNQk9MKQoJICBmb3Igc3ltYm9scyB0aGF0IHdlIG5lZWQgdG8gZXhwb3J0IGluIGJvdGggdGhlc2UgZmlsZXMuCgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgSW5jbHVkZSBnc3RfcHJpdmF0ZS5oIGhpZ2hlciB1cCB0byBhdm9pZCBzb21lIGNvbXBpbGUgcHJvYmxlbXMgb24gd2luMzIuCgoyMDA4LTA3LTIyIDA5OjI0OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRml4IHR5cG9zLgoKMjAwOC0wNy0yMiAwMDoyOTo1NSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IFByZXZpb3VzIGNvbW1pdCB3YXMgd3JvbmcgTlVMTCBjYXBzIGRvZXMgbm90IGV4aXN0IGFuZCBpbmRpY2F0ZSBhbiBlcnJvciwgc28gYWxzbyBhZGQgYSBGSVhNRSB0byBnc3RfYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBQcmV2aW91cyBjb21taXQgd2FzIHdyb25nIE5VTEwgY2FwcyBkb2VzIG5vdCBleGlzdAoJICBhbmQgaW5kaWNhdGUgYW4gZXJyb3IsIHNvIGFsc28gYWRkIGEgRklYTUUgdG8KCSAgZ3N0X2NhcHNfaXNfZXF1YWwgd2hlcmUgTlVMTCBjYXBzIGFyZSBhY2NlcHRlZC4KCjIwMDgtMDctMjEgMjM6MDI6NDAgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBBbGxvdyBwYXNzaW5nIG9mIE5VTEwgdG8gZ3N0X2NhcHNfdW5pb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgQWxsb3cgcGFzc2luZyBvZiBOVUxMIHRvIGdzdF9jYXBzX3VuaW9uCgoyMDA4LTA3LTIxIDIxOjMyOjA2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBpbiBkb2MgdGhhdCBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQgY2FuIGFjY2VwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgQWRkIGluIGRvYyB0aGF0IGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCBjYW4gYWNjZXB0CgkgIE5VTEwgdG8gY2xlYXIgdGFyZ2V0CgoyMDA4LTA3LTE1IDIyOjUzOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBHc3RSZWdpc3RyeVBvb2wgZG9lc24ndCBleGlzdDsgZG9uJ3QgcmVmZXIgdG8gaXQgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBHc3RSZWdpc3RyeVBvb2wgZG9lc24ndCBleGlzdDsgZG9uJ3QgcmVmZXIgdG8gaXQgaW4gZG9jcy4KCSAgRG9uJ3QgcmVmZXIgdG8gZnVuY3Rpb25zIHRoYXQgZG9uJ3QgZXhpc3QgaW4gZG9jcywgaXQncwoJICB1bmhlbHBmdWwuCgoyMDA4LTA3LTEyIDE3OjUxOjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IEZpeCBzY2FubmluZyBvZiBwYXRocyBnaXZlbiB2aWEgLS1nc3QtcGx1Z2luLXBhdGguIEZpeGVzIGJ1ZyAjNTQyMTc1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBzY2FubmluZyBvZiBwYXRocyBnaXZlbiB2aWEgLS1nc3QtcGx1Z2luLXBhdGguIEZpeGVzIGJ1ZyAjNTQyMTc1LgoKMjAwOC0wNy0xMiAxNzo0MzoxNSArMDAwMCAgdG1hdHRoIDxsZS5idXNpbmVzc21hbkBnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogRG9uJ3QgdXNlIGFuIHVuZGVjbGFyZWQgdmFyaWFibGUgaW4gdGhlIGV4YW1wbGUgcHJvZ3JhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiB0bWF0dGggPGxlIGRvdCBidXNpbmVzc21hbiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBEb24ndCB1c2UgYW4gdW5kZWNsYXJlZCB2YXJpYWJsZSBpbiB0aGUgZXhhbXBsZSBwcm9ncmFtLgoJICBGaXhlcyBidWcgIzU0MjU3My4KCjIwMDgtMDctMTIgMDk6NTk6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFNxdWVlemUgZ2hvc3QtcGFkIGxpbmtzIGFuZCByZW1vdmUgPD4gZnJvbSBjbGFzc25hbWUgbGFiZWxzIHRvIHNhdmUgbW9yZSBob3Jpem9udGFsIHNwYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBTcXVlZXplIGdob3N0LXBhZCBsaW5rcyBhbmQgcmVtb3ZlIDw+IGZyb20gY2xhc3NuYW1lIGxhYmVscyB0byBzYXZlCgkgIG1vcmUgaG9yaXpvbnRhbCBzcGFjZS4KCjIwMDgtMDctMTEgMTk6MzA6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEdpdmUgcmVxdWVzdCBhbmQgc29tZXRpbWVzIHBhZHMgYSBkaWZmZXJlbnQgc2hwZSBzdHlsZS4gQ29uZGVuc2UgdGhlIGdyYXBocyBhIGxpdHRsZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBHaXZlIHJlcXVlc3QgYW5kIHNvbWV0aW1lcyBwYWRzIGEgZGlmZmVyZW50IHNocGUgc3R5bGUuIENvbmRlbnNlIHRoZQoJICBncmFwaHMgYSBsaXR0bGUgbW9yZS4KCjIwMDgtMDctMTAgMDA6MzA6MDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgcmVxdWlyZSBmbGV4IGFuZCBiaXNvbiBpZiB0aGUgcGFyc2VyIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHJlcXVpcmUgZmxleCBhbmQgYmlzb24gaWYgdGhlIHBhcnNlciBpcyBkaXNhYmxlZC4KCjIwMDgtMDctMDggMTE6MjA6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChfbGlzdF9maW5kX3NvcnRlZF9jdXN0b20pOgoJICBEb24ndCB1c2UgZGVjbGFyYXRpb25zIGFmdGVyIHN0YXRlbWVudHMuCgoyMDA4LTA3LTA4IDA5OjA0OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBBZGQgRklYTUVzIGZvciAwLjExIHRvIHVzZSBHU1RfVFlQRV9PQkpFQ1QgaW4gdGhlIHNpZ25hdHVyZSBvZiB0aGUgdGhlIGNoaWxkLWFkZGVkIC8gLXJlbW92ZWQgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpOgoJICBBZGQgRklYTUVzIGZvciAwLjExIHRvIHVzZSBHU1RfVFlQRV9PQkpFQ1QgaW4gdGhlIHNpZ25hdHVyZQoJICBvZiB0aGUgdGhlIGNoaWxkLWFkZGVkIC8gLXJlbW92ZWQgc2lnbmFscyBhcyBHc3RDaGlsZFByb3h5CgkgIG9ubHkgc3VwcG9ydHMgR3N0T2JqZWN0cy4KCjIwMDgtMDctMDcgMTE6MDE6MjYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBGaXggbWVtbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggbWVtbGVhawoKMjAwOC0wNy0wNiAxMjo0OTo0MyArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0cG9sbC5jOiBGaXggImlnbm9yZWQgcmV0dXJuIHZhbHVlIiBjb21waWxlciB3YXJuaW5nIHdpdGggbmV3ZXIgZ2xpYmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEZpeCAiaWdub3JlZCByZXR1cm4gdmFsdWUiIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBuZXdlciBnbGliYy4KCjIwMDgtMDctMDUgMTY6Mjg6MjggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEZpeCBjb3B5JnBhc3RlIGVycm9yIGluIGdzdF9jaGlsZF9wcm94eV9yZW1vdmVkKCkgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgRml4IGNvcHkmcGFzdGUgZXJyb3IgaW4gZ3N0X2NoaWxkX3Byb3h5X3JlbW92ZWQoKSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0wMiAxNDo0Mzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUHJpbnQgZXJyb3IgZGVidWcgbWVzc2FnZSBpZiBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNldCBhcmUgTlVMTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoQ0hFQ0tfUExVR0lOX0RFU0NfRklFTEQpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBQcmludCBlcnJvciBkZWJ1ZyBtZXNzYWdlIGlmIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZHMgdGhhdCBzaG91bGQKCSAgYmUgc2V0IGFyZSBOVUxMLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2NvbnN0X3N0cmluZyk6CgkgIERvbid0IGNyYXNoIGlmIHRoZSBzdHJpbmcgdG8gc2VyaWFsaXNlIGlzIE5VTEwgKGl0IHJlYWxseSBzaG91bGQKCSAgbm90IGJlLCBidXQgYXBwYXJlbnRseSB0aGlzIHVzZWQgdG8gd29yayB3aXRoIHRoZSB4bWwgcmVnaXN0cnkgLi4uKS4KCjIwMDgtMDctMDIgMTI6MjM6MTIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogRml4IHBhcnNpbmcgb2YgbG9nIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBGaXggcGFyc2luZyBvZiBsb2cgbWVzc2FnZXMKCjIwMDgtMDctMDEgMDk6Mjc6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IFNvcnQgYWxwaGFiZXRpY2FsbHkgc28gbWFrZSBjaGVjay1leHBvcnRzIGRvZXNuJ3QgYmFyZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOjoKCSAgU29ydCBhbHBoYWJldGljYWxseSBzbyBtYWtlIGNoZWNrLWV4cG9ydHMgZG9lc24ndCBiYXJmLgoKMjAwOC0wNy0wMSAwNTo1MzozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFVzZSBnc3RfZm9ybWF0X2dldF9uYW1lKCkgdG8gaW1wcm92ZSBkZWJ1ZyBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBVc2UgZ3N0X2Zvcm1hdF9nZXRfbmFtZSgpIHRvIGltcHJvdmUgZGVidWcgb3V0cHV0LgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUmVtb3ZlICNpZmRlZidlZCBjb2RlLiBBZGQgVE9ETyBjb21tZW50LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZCBkZWJ1ZyBvdXRwdXQgdG8gZWFzZSBzcG90dGluZyBmb3JtYXQgIT0gc2VnbWVudC5mb3JtYXQgYXNzZXJ0aW9ucy4KCjIwMDgtMDYtMzAgMDk6NDI6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IEFsc28gZW5hYmxlIHRoZSBHRFAgdW5pdCB0ZXN0IGFnYWluIG9uIFBQQyBub3cgdGhhdCB0aGUgYnVnIGlzIGZpeGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgQWxzbyBlbmFibGUgdGhlIEdEUCB1bml0IHRlc3QgYWdhaW4gb24gUFBDIG5vdyB0aGF0IHRoZSBidWcKCSAgaXMgZml4ZWQuCgoyMDA4LTA2LTMwIDA5OjM4OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IERvbid0IHdyaXRlIHRvIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgYXMgYSB1aW50NjQgYW5kIHVpbnQxNiBhcyB0aGlzIGJyZWFrcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBEb24ndCB3cml0ZSB0byB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IGFzIGEgdWludDY0IGFuZCB1aW50MTYKCSAgYXMgdGhpcyBicmVha3Mgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzIGFuZCBhcHBhcmFudGx5IGJyZWFrcyBvbiBQUEMKCSAgYW5kIHMzOTAuIFRoYW5rcyB0byBTam9lcmQgU2ltb25zIGZvciBhbmFseXNpbmcuIEZpeGVzIGJ1ZyAjMzQ4MTE0LgoKMjAwOC0wNi0yOSAxNjoxMToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBPcHRpbWl6ZSBsaXN0IGhhbmRsaW5nLiBVc2Ugb3duIGZpbmQgZnVuY3Rpb24uIEV4cGxvaXQgdGhhdCBmYWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgT3B0aW1pemUgbGlzdCBoYW5kbGluZy4gVXNlIG93biBmaW5kIGZ1bmN0aW9uLiBFeHBsb2l0IHRoYXQgZmFjdCB0aGF0CgkgIHRoZSBsaXN0IGlzIHNvcnRlZC4gQWxzbyBwYXNzIGJhY2sgdGhlIG5vZGUgYmVmb3JlLCBzbyB0aGF0IHdlIGNhbgoJICBpbnNlcnQgcXVpY2tseS4gSGF2ZSBhIGZhc3QgcGF0aCBmb3IgYXBwZW5kLgoKMjAwOC0wNi0yOSAxNTowMDoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBGaXggdHdvIHR5cG9zLgoKMjAwOC0wNi0yNyAwOTowMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFNob3cgY29uZmlndXJhdGlvbiBzdW1hcnkgYWZ0ZXIgY29uZmlndXJlIHJ1bi4gQmFzZWQgb24gcGF0Y2ggYnkKCSAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPi4gRml4ZXM6ICM1NDAxMzQKCjIwMDgtMDYtMjcgMDc6MDM6MDUgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQWRkIHNjYWxlIGZhY3RvciBmb3IgcGRmIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgQWRkIHNjYWxlIGZhY3RvciBmb3IgcGRmIG91dHB1dC4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBTd2l0Y2hlZCBzZWN0aW9ucyAicGFkcyIgYW5kICJiaW5zIiBhbmQgYWRkZWQgYSBwaXBlbGluZSBkaWFncmFtLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIEFkZGVkIG1vcmUgaW5mbyBvbiBnc3RyZWFtZXIuCgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIENvbW1lbnRlZCBvdXQgdGhlIHdob2xlIHNlY3Rpb24gImN1cnJlbnQgcHJvYmxlbSIsIHdoaWNoIHNvdW5kcwoJICBoaXN0b3JpY2FsIGFuZCBzb21laG93IG9zb2xldGU7IGl0IGNvdWxkIGJlIHR1cm5lZCBpbiBhIHBvc2l0aXZlCgkgIHdheSBhbmQgcmV1c2VkIHRvIGltcHJvdmUgdGhlIGRlc2lnbiBwcmluY2lwbGVzLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICAtIFVwZGF0ZSBVUkxzIHRvIGxpYnJhcnkuZ25vbWUub3JnLgoJICAtIERvIG5vdCBtZW50aW9uIEdUSysgaW4gcHJlbGltaW5hcnkgcmVhZGluZyAoaXJyZWxldmFudCkuCgkgIC0gTWVudGlvbiBQbHVnaW4gV3JpdGVyJ3MgTWFudWFsIGFuZCBmdXJ0aGVyIHJlYWRpbmcgb25seSBpbiB0aGUKCSAgcHJldmlvdXMgc2VjdGlvbi4KCSAgLSBBZGRlZCBhIGxpc3Qgb2YgbW9zdCByZWxldmFudCBHT2JqZWN0L2dsaWIgdG9waWNzLgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LWdob3N0LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5wbmc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtbm9naG9zdC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtbm9naG9zdC5wbmc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC1tdWx0aS5maWc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkucG5nOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZ3N0cmVhbWVyLW92ZXJ2aWV3LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5maWc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5maWc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5maWc6CgkgICogZG9jcy9tYW51YWwvcXVldWUucG5nOgoJICAqIGRvY3MvbWFudWFsL3NpbXBsZS1wbGF5ZXIucG5nOgoJICAqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvc2luay1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zcmMtZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkgIFJlbW92ZWQgLmZpZywgYWRkZWQgLnBuZyBjb3VudGVycGFydC4KCSAgRml4ZXM6ICM1MzkxMzcKCjIwMDgtMDYtMjYgMjA6Mjc6MDAgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogcmV2ZXJ0IGV4dHJhLXNpemUtYnVmZmVycyBzdHVmZiwgY2F1c2VkIHNvbWUgcmFjZSBjb25kaXRpb25zIGFuZCBleHRyYS1zaXplLWJ1ZmZlcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIHJldmVydCBleHRyYS1zaXplLWJ1ZmZlcnMgc3R1ZmYsIGNhdXNlZCBzb21lIHJhY2UgY29uZGl0aW9ucwoJICBhbmQgZXh0cmEtc2l6ZS1idWZmZXJzIGlzIG5vdCB1c2VkIGFueW1vcmUuIERvY3MgbmVlZHMgc29tZSB1cGRhdGVzCgoyMDA4LTA2LTI2IDEyOjUyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlIHdpbjMyIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBVcGRhdGUgd2luMzIgZmlsZXMuCgoyMDA4LTA2LTI2IDEyOjI0OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuaDogQWRkIG1pc3NpbmcgU2luY2UnIG1hcmtlcnMgdG8gZ3RrLWRvYyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IChHc3REZWJ1Z0dyYXBoRGV0YWlscyksCgkgIChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKToKCSAgQWRkIG1pc3NpbmcgU2luY2UnIG1hcmtlcnMgdG8gZ3RrLWRvYyBibHVyYnMuCgoyMDA4LTA2LTI2IDExOjU5OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IEFkZCBzb21lIG1vcmUgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKHNldF9jYXBzX2N0MiksICh0cmFuc2Zvcm1fY3QyKSwgKHRyYW5zZm9ybV9jYXBzX2N0MiksCgkgICh0cmFuc2Zvcm1fc2l6ZV9jdDIpLCAoYnVmZmVyX2FsbG9jX2N0Mik6CgkgIEFkZCBzb21lIG1vcmUgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgoyMDA4LTA2LTI1IDE3OjI3OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy86IE1vcmUgdGVzdHMsIHByZXBhcmUgZm9yIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChyZXN1bHRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLCAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChzZXRfY2Fwc19jdDIpLCAodHJhbnNmb3JtX2N0MiksICh0cmFuc2Zvcm1fY2Fwc19jdDIpLAoJICAodHJhbnNmb3JtX3NpemVfY3QyKSwgKGJ1ZmZlcl9hbGxvY19jdDIpLAoJICAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBNb3JlIHRlc3RzLCBwcmVwYXJlIGZvciB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCjIwMDgtMDYtMjUgMTU6Mzk6MDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogRml4IGRlYWQtbG9jayBpbiB1bmRlcnJ1bl9jYgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgRml4IGRlYWQtbG9jayBpbiB1bmRlcnJ1bl9jYgoKMjAwOC0wNi0yNSAxNDo0OTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogRml4IGRldmljZSBvcGVuL2Nsb3NlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgRml4IGRldmljZSBvcGVuL2Nsb3NlIGRvY3MuCgoyMDA4LTA2LTI1IDE0OjQ3OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IE1lbnRpb24gYnVnbnVtYmVyIGZvciBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1Z251bWJlciBmb3IgbGFzdCBjb21taXQuCgoyMDA4LTA2LTI1IDE0OjQ0OjUyICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC9tYW51YWwueG1sOiAtIFJlb3JnYW5pc2VkIHRoZSBwcmV2aW91cyAiaW50cm9kdWN0aW9uIiBidW5kbGUgaW50byBGb3Jld29yZCwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIC0gUmVvcmdhbmlzZWQgdGhlIHByZXZpb3VzICJpbnRyb2R1Y3Rpb24iIGJ1bmRsZSBpbnRvIEZvcmV3b3JkLAoJICBJbnRyb2R1Y3Rpb24sIGFuZCBBYm91dCBHU3RyZWFtZXIuIFRoZSB0d28gZmlyc3QgYXJlIDxwcmVmYWNlPgoJICBkb2Nib29rIGVsZW1lbnRzLiBUaGUgbGF0ZXIgaXMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGJvb2suCgkgIC0gYWRkZWQgaW50cm8tZ3N0cmVhbWVyLnhtbCAoY29udGVudCBwYXJ0aWFsbHkgZnJvbQoJICBpbnRyby1wcmVmYWNlLnhtbCkKCSAgLSBtb3ZlZCBhcHBlbmRpeC13aW4zMi54bWwgaW50byBhcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWwKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDogZ3N0cmVhbWVyIHNlY3Rpb24gbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOiAuLi5oZXJlLiBuZXcgZmlsZS4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6IHJlbW92ZWQgZmlsZS4gQ29udGVudCBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDogLi4uaGVyZS4KCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6IHNlY3Rpb24gYWJvdXQgR3N0RWRpdG9yIG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDogLi4uaGVyZS4KCjIwMDgtMDYtMjUgMTQ6MzI6NTMgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogLSBFeHBsaWNpdGVseSBpbmNsdWRlIGdsaWIuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5maWc6CgkgIC0gRXhwbGljaXRlbHkgaW5jbHVkZSBnbGliLmguCgkgIC0gRG8gbm90IHVzZSBnbG9iYWwgdmFyaWFibGVzLgoJICAtIFVzZSBnX3ByaW50ZXJyKCkgaW5zdGVhZCBvZiBnX3ByaW50KCkuCgkgIC0gTWlub3IgZm9ybWF0aW5nL3JlbmFtaW5nIHRvIGluY3JlYXNlIHJlYWRpYmlsaXR5LgoJICAtIFJlbmFtZWQgbmV3X3BhZCgpIHRvIG9uX3BhZF9hZGRlZCgpCgkgIC0gSW1wcm92ZWQgZXhwbGVuYXRvcnkgY29tbWVudHMuCgkgIC0gcmVuYW1lZCBvZ2cgcGFyc2VyIHRvIG9nZyBkZW11eGVyCgkgIC0gVXNlICJhdXRvYXVkaW9zaW5rIiBpbnN0ZWFkIG9mICJhbHNhc2luayIuCgkgIEZpeGVzOiAjNTM4NjE5CgoyMDA4LTA2LTI1IDE0OjI3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IFJlbW92ZSBjdnMgY29uZmxpY3QgbWFya2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIFJlbW92ZSBjdnMgY29uZmxpY3QgbWFya2VyLgoKMjAwOC0wNi0yNSAxNDoyNTo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IERvY3VtZW50IHRoYXQgZm9yIHBsZ2luLWRvY3Mgd2UgZXh0cmF4dCBoZSBzaG9ydC1kZXNjIGZyb20gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIERvY3VtZW50IHRoYXQgZm9yIHBsZ2luLWRvY3Mgd2UgZXh0cmF4dCBoZSBzaG9ydC1kZXNjIGZyb20gdGhlIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFRlbGwgdGhhdCBkZXZpY2VzIHNob3VsZCBiZSBjbG9zZWQgaW4gUEFVU0VEIC0+IFJFQURZLgoJICAqIGRvY3MvbWFudWFsL1JFQURNRToKCSAgRG9jdW1lbnQgaG93IHRlc3RzIGluIHRoZSBtYW51YWwgYXJlIGhhbmRsZWQuCgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgVHlwbyBpbiBjb21tZW50LgoKMjAwOC0wNi0yNSAxMTo1MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogT25seSBjYXJlIGFib3V0IGxhdGVuY3kgbWluIGFuZCBtYXggd2hlbiB0aGUgc2luayBpcyBhY3R1YWxseSBhIGxpdmUgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCk6CgkgIE9ubHkgY2FyZSBhYm91dCBsYXRlbmN5IG1pbiBhbmQgbWF4IHdoZW4gdGhlIHNpbmsgaXMgYWN0dWFsbHkgYSBsaXZlCgkgIHNpbmsuCgoyMDA4LTA2LTI1IDEwOjUzOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIEFkZCBub3RlcyBhYm91dCB3aHkgdHJhbnNmb3JtIG5lZWRzIHRvIGtub3cgaW5wdXQvb3V0cHV0IHNpemVzLgoJICBBZGQgc29tZSBpc3N1ZXMgdGhhdCBuZWVkIHRvIGJlIHNvbHZlZC4KCSAgQWRkIHNvbWUgbW9yZSB1c2UgY2FzZXMuCgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAocmVzdWx0X2J1ZmZlcl9hbGxvYyksIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksCgkgIChnc3RfdGVzdF90cmFuc19wdXNoKSwgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBBZGQgc3Vwb3J0IGZvciBkaWZmZXJlbnQgcGFkIHRlbXBsYXRlcyBhbmQgYnVmZmVyLWFsbG9jLgoJICBBZGQgbW9yZSBjaGVja3MgZm9yIGNhcHMgYW5kIGJ1ZmZlci1hbGxvYy4KCSAgQWRkIGNoZWNrcyBmb3IgcHJveHkgYnVmZmVyIGFsbG9jLgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjb3B5IHRyYW5zZm9ybS4KCjIwMDgtMDYtMjQgMTk6NTY6NTEgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogVHlwbyBhbmQgZm9ybWF0dGluZyBmaXhlcyAoIzUzODU5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIFR5cG8gYW5kIGZvcm1hdHRpbmcgZml4ZXMgKCM1Mzg1OTQpLgoKMjAwOC0wNi0yNCAwNzo0OTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEZpeCBzb21lIG1lbW9yeSBsZWFrcyBhbmQgdXNlcyBvZiBvYmplY3QgaW5zdGFuY2VzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgb3duLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHNvbWUgbWVtb3J5IGxlYWtzIGFuZCB1c2VzIG9mIG9iamVjdCBpbnN0YW5jZXMgdGhhdCB3ZSBkb24ndAoJICBhY3R1YWxseSBvd24uCgoyMDA4LTA2LTIyIDE5OjE5OjM1ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEFkZCBmdW5jdGlvbmFsaXR5IHRvIGV4dHJhLXNpemUtYnVmZmVycyBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBmdW5jdGlvbmFsaXR5IHRvIGV4dHJhLXNpemUtYnVmZmVycyBwcm9wZXJ0eS4KCjIwMDgtMDYtMjIgMTQ6MzU6MTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgdXBkYXRlIHRoZSBjdXJfdGltZSBvbiBHU1RfQ0xPQ0tfVElNRV9OT05FICgjNTM3ODA0KSBhbmQgZG9uJ3QgYWN0aXZhdGUgdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIERvbid0IHVwZGF0ZSB0aGUgY3VyX3RpbWUgb24gR1NUX0NMT0NLX1RJTUVfTk9ORSAoIzUzNzgwNCkgYW5kIGRvbid0CgkgIGFjdGl2YXRlIHRoZSBwYWRzIGlmIHRoZXkgYXJlIGFkZGVkIGluIFNUQVRFX05VTEwuCgoyMDA4LTA2LTIxIDIxOjIwOjEzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvYwoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQVBJOiBnc3RfY2hlY2tfdGVhcmRvd25fcGFkX2J5X25hbWUKCjIwMDgtMDYtMjEgMTk6NDg6NTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBbHNvIHNldHVwIHJlcXVlc3QgcGFkcyBhbmQgYWxsb3cgc2V0dXAgcGFkcyBieSBuYW1lICgjNTM3ODEyKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFsc28gc2V0dXAgcmVxdWVzdCBwYWRzIGFuZCBhbGxvdyBzZXR1cCBwYWRzIGJ5IG5hbWUgKCM1Mzc4MTIpCgkgIEFQSTogZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZQoJICBBUEk6IGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZF9ieV9uYW1lCgoyMDA4LTA2LTIwIDIxOjA4OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogVXNlIEhBVkVfVkFMR1JJTkRfSCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIFVzZSBIQVZFX1ZBTEdSSU5EX0ggc29tZSBtb3JlLgoKMjAwOC0wNi0yMCAxNjoyOToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBzY3JpcHRzL2N2cy11cGRhdGUuc2g6IFBhc3MgYXJndW1lbnRzIHRvIG1ha2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgUGFzcyBhcmd1bWVudHMgdG8gbWFrZS4KCSAgUnVuIGF1dG9yZWdlbi5zaCBpZiBNYWtlZmlsZSBpcyBub3QgdGhlcmUuCgoyMDA4LTA2LTIwIDE1OjU0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIERvbid0IGFzc3VtZSB0aGF0IDx2YWxncmluZC92YWxncmluZC5oPiBleGlzdHMganVzdCBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBEb24ndCBhc3N1bWUgdGhhdCA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gZXhpc3RzIGp1c3QgYmVjYXVzZQoJICB0aGUgYmluYXJ5IGlzIHRoZXJlLgoKMjAwOC0wNi0yMCAxMjowNjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHNvbWUgdGVzdCBiYXNldHJhbnNmb3JtIGVsZW1lbnQgYW5kIHRoZSBiZWdpbm5pbmdzIG9mIHZhcmlvdXMgdW5pdCB0ZXN0cyBmb3IgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKGdzdF90ZXN0X3RyYW5zX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfc2V0X2RhdGEpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLCAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksCgkgIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAodHJhbnNmb3JtX2lwXzEpLCAoc2V0X2NhcHNfMSksIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3QgYmFzZXRyYW5zZm9ybSBlbGVtZW50IGFuZCB0aGUgYmVnaW5uaW5ncyBvZiB2YXJpb3VzCgkgIHVuaXQgdGVzdHMgZm9yIGl0LgoKMjAwOC0wNi0yMCAxMToyNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogSW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIEluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkuCgkgIERvbid0IHRyeSB0byBjb21wYXJlIGJ1ZmZlciBvZmZzZXRzIHdoZW4gdGhlciBhcmUgaW52YWxpZC4KCjIwMDgtMDYtMjAgMTE6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBzb21lIG1vcmUgZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IHNvbWUgbW9yZSBkZXNpZ24gZG9jcy4KCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgU21hbGwgYWRkaXRpb246IGdvb2QgcGx1Z2lucyBtdXN0bid0IGhhdmUgZnVuY3Rpb25hbCBjb2RlCgkgIHdpdGhpbiBhc3NlcnRpb24gbWFjcm9zLgoKMjAwOC0wNi0yMCAxMDozMjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6IFNvbWUgaWRlYXMgYWJvdXQgYSBmcmFtZXN0ZXAgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIFNvbWUgaWRlYXMgYWJvdXQgYSBmcmFtZXN0ZXAgQVBJCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIFN0YXJ0IGRlc2lnbiBhbmQgdXNlIGNhc2VzIGZvciBiYXNldHJhbnNmb3JtIGluIG9yZGVyIHRvIGdldCBpdAoJICBmaXhlZCBzb29uLgoKMjAwOC0wNi0yMCAxMDoyMDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTWFrZSBpdCBrbm93biB0aGF0IGdzdF9idXNfcG9sbCgpIGlzIHB1cmUgZXZpbCAoZml4ZXMgIzUzODgxMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgTWFrZSBpdCBrbm93biB0aGF0IGdzdF9idXNfcG9sbCgpIGlzIHB1cmUgZXZpbCAoZml4ZXMgIzUzODgxMCkuCgoyMDA4LTA2LTIwIDEwOjE0OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUmVtb3ZlIHNob3J0X2Rlc2NyaXB0aW9uLiBBZGQgYmFzaWMgZG9jcyBmb3IgZ3N0dHlwZWZpbmRlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZW1vdmUgc2hvcnRfZGVzY3JpcHRpb24uIEFkZCBiYXNpYyBkb2NzIGZvciBnc3R0eXBlZmluZGVsZW1lbnQuCgkgIFNpbXBsaWZ5IG1hcmt1cCBmb3IgZmFrZXNyYy9mZHNyYy4KCjIwMDgtMDYtMjAgMTA6MDc6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFkZGVkIFNpbmNlIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgQWRkZWQgU2luY2UgZG9jLgoKMjAwOC0wNi0yMCAxMDowMjoxNCArMDAwMCAgam9lbCBsYXJzc29uIDx0aWxsam9lbEBnbWFpbC5jb20+CgoJICBBZGQgdGltZW91dCBwcm9wZXJ0eSBsaWtlIHVkcHNyYy4gRml4ZXMgIzUzODYyOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBqb2VsIGxhcnNzb24gPHRpbGxqb2VsIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmRfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBBZGQgdGltZW91dCBwcm9wZXJ0eSBsaWtlIHVkcHNyYy4gRml4ZXMgIzUzODYyOC4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGFuZCBleGFtcGxlIHBpcGVsaW5lcy4KCjIwMDgtMDYtMjAgMDg6NTQ6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGFsbG93IHNpbmtzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBkZWxheSBiZXR3ZWVuIHRoZSBzeW5jIHRpbWVzIGFuZCB0aGUgYWN0dWFsIHJlbmRlcmluZyBvZiB0aGUgZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9yZW5kZXJfZGVsYXkpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBtZXRob2QgdG8gYWxsb3cgc2lua3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGRlbGF5IGJldHdlZW4gdGhlIHN5bmMKCSAgdGltZXMgYW5kIHRoZSBhY3R1YWwgcmVuZGVyaW5nIG9mIHRoZSBkYXRhLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfcmVuZGVyX2RlbGF5KCkKCjIwMDgtMDYtMjAgMDg6NDU6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gbnVtYmVyIGJhY2sgdG8gZGV2IC0+IDAuMTAuMjAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIgYmFjayB0byBkZXYgLT4gMC4xMC4yMC4xCgoyMDA4LTA2LTIwIDA4OjM5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBHU1RfVEFHX0FUVEFDSE1FTlQgZm9yIGdlbmVyaWMgZmlsZSBhdHRhY2htZW50cyB0byBzdHJlYW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IEFkZCBHU1RfVEFHX0FUVEFDSE1FTlQgZm9yIGdlbmVyaWMgZmlsZSBhdHRhY2htZW50cyB0byBzdHJlYW1zLgoJICBGaXhlcyBidWcgIzUzODU2OC4KCjIwMDgtMDYtMjAgMDg6MzY6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBSZXZlcnQgb25lIGNoYW5nZSwgdGhhdCBtYWtlIHJldCB2YWx1ZSBwb3NzaWJsZSB1bmluaXRpYWxpemVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgUmV2ZXJ0IG9uZSBjaGFuZ2UsIHRoYXQgbWFrZSByZXQgdmFsdWUgcG9zc2libGUgdW5pbml0aWFsaXplZC4KCjIwMDgtMDYtMjAgMDg6MzI6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBVc2UgZnJlZXplL3RoYXcgbm90aWZ5IHRvIHN5bmMgbm90aWZ5IGVtaXNzaW9uIGEgYml0IChpdHMgYWxzbyBtb3JlIGVmZmljaWVudCkuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgVXNlIGZyZWV6ZS90aGF3IG5vdGlmeSB0byBzeW5jIG5vdGlmeSBlbWlzc2lvbiBhIGJpdCAoaXRzIGFsc28gbW9yZQoJICBlZmZpY2llbnQpLiBNb3ZlIGRlYnVnIG91dHB1dCB0byBMT0cgKGlzIGNhbGxlZCBhIGxvdCBpbiBhIGxvb3ApLgoJICBBbHdheXMgdW5zZXQgZ192YWx1ZXMgaWYgdGhlIGhhdmUgYmVlbiBpbml0aWFsaXplZC4KCjIwMDgtMDYtMjAgMDg6Mjg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IElmIHdlIGhhdmUgbm90IHNlZW4gYSBidWZmZXIgYmVmb3JlIEVPUywgdXNlIHRoZSBzZWdtZW50IHZhbHVlcyB0byByZXBvcnQgdGhlIGN1cnJlbnQgcG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBJZiB3ZSBoYXZlIG5vdCBzZWVuIGEgYnVmZmVyIGJlZm9yZSBFT1MsIHVzZSB0aGUgc2VnbWVudCB2YWx1ZXMgdG8KCSAgcmVwb3J0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluc3RlYWQgb2YgaW52YWxpZCBwb3NpdGlvbnMuCgoyMDA4LTA2LTIwIDA4OjIxOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA2LTIwIDA4OjE3OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXdyaXRlIGhhbmRsaW5nIG9mIGRlZmF1bHQgdmFsdWVzLiBGaXggb3ZlcmZsb3cgd2l0aCB1bnNpZ25lZCB0eXBlcyBpbiBsaW5lYXIgaW50ZXJwb2xhdGlvbi4gUmVtb3ZlIG5vdyBvYnNvbGV0ZSBfZmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBSZXdyaXRlIGhhbmRsaW5nIG9mIGRlZmF1bHQgdmFsdWVzLiBGaXggb3ZlcmZsb3cgd2l0aCB1bnNpZ25lZCB0eXBlcwoJICBpbiBsaW5lYXIgaW50ZXJwb2xhdGlvbi4gUmVtb3ZlIG5vdyBvYnNvbGV0ZSBfZmlyc3RfdmFsdWUoKSBmdW5jdGlvbi4KCSAgQWRkIG1vcmUgdGVzdHMuIEZpeGVzICM1MzgyMDEuCgoyMDA4LTA2LTIwIDA4OjE0OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZCBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgQWRkIGRlYnVnIGluZm8uCgkgIFdoZW4gYSBidWZmZXIgaXMgd3JpdGFibGUsIGl0cyBtZXRhZGF0YSBpcyBhbHNvIHdyaXRhYmxlIHNvIHdlIGRvbid0CgkgIG5lZWQgdG8gc3ViYnVmZmVyICh3aGljaCB0aGVuIG1ha2VzIHRoZSBidWZmZXIgbm90LXdyaXRhYmxlIGFueW1vcmUpLgoKPT09IHJlbGVhc2UgMC4xMC4yMCA9PT0KCjIwMDgtMDYtMTggMTA6NTg6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIwCgoyMDA4LTA2LTE4IDEwOjU2OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTA2LTExIDIxOjE0OjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4xOS4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4xOS4zIHByZS1yZWxlYXNlCgoyMDA4LTA2LTExIDIwOjA3OjMxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIFJlbmFtZSBEQVRBRElSIHRvIEdTVF9EQVRBRElSIHRvIGF2b2lkIGJ1aWxkIHByb2JsZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJlbmFtZSBEQVRBRElSIHRvIEdTVF9EQVRBRElSIHRvIGF2b2lkIGJ1aWxkIHByb2JsZW1zCgkgIG9uIHdpbjMyLiBQYXRjaCBCeTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgkgIEZpeGVzOiAjNTM2ODU3CgoyMDA4LTA2LTA1IDEwOjEzOjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEV4cGxpY2l0ZWx5IGxpbmsgd2l0aCAtbGRsIGlmIGRsYWRkcigpIGlzIGZvdW5kIHRoZXJlLiBCZWZvcmUgaXQgd2FzIGltcGxpY2l0ZWx5IGxpbmtlZCBieSB0aGUgZ21vZHVsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBFeHBsaWNpdGVseSBsaW5rIHdpdGggLWxkbCBpZiBkbGFkZHIoKSBpcyBmb3VuZCB0aGVyZS4gQmVmb3JlIGl0IHdhcwoJICBpbXBsaWNpdGVseSBsaW5rZWQgYnkgdGhlIGdtb2R1bGUgcGtnY29uZmlnIGZpbGUgYnV0IGluIGdsaWIgMi4xNy4wCgkgIC1sZGwgaGFzIG1vdmVkIGZyb20gTGlicyB0byBMaWJzLnByaXZhdGUuIEZpeGVzIGJ1ZyAjNTM2NzQ0LgoKMjAwOC0wNi0wNSAwOTo0MjozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIFB1dCBwcmUtcmVsZWFzZSBjaGFuZWdsb2cgZW50cnkgd2hlcmUgaXQgYWN0dWFsbHkgaGFwcGVuZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFB1dCBwcmUtcmVsZWFzZSBjaGFuZWdsb2cgZW50cnkgd2hlcmUgaXQgYWN0dWFsbHkgaGFwcGVuZWQKCjIwMDgtMDYtMDUgMDk6NDE6MjUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjE5LjIgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjE5LjIgcHJlLXJlbGVhc2UKCjIwMDgtMDYtMDUgMDg6NTU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRml4IHR5cG8gKHNwb3R0ZWQgYnkgRmFicmljaW8gR29kb3ksICM1MzY3MjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgRml4IHR5cG8gKHNwb3R0ZWQgYnkgRmFicmljaW8gR29kb3ksICM1MzY3MjMpLgoKMjAwOC0wNi0wNCAxMTo0NzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHNvbWUgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KSwgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpOgoJICBBZGQgc29tZSBkZWJ1Zy4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGdlbmVyYXRlIGludmFsaWQgUW9TIG1lc3NhZ2VzLgoKMjAwOC0wNi0wNCAxMTozMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBBZGQgc29tZSBhc3NlcnQgYW5kIGRvY3MgZm9yIGludmFsaWQgaW5wdXQgdG8gdGhlIHFvcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X3Fvcyk6CgkgIEFkZCBzb21lIGFzc2VydCBhbmQgZG9jcyBmb3IgaW52YWxpZCBpbnB1dCB0byB0aGUgcW9zIGZ1bmN0aW9uLgoKMjAwOC0wNS0zMCAxNTo0ODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVGhlIHJlcG9ydGVkIHBvc2l0aW9uIG11c3QgYWx3YXlzIGJlIHNtYWxsZXIgdGhhbiB0aGUgbGFzdCBzZWVuIHRpbWVzdGFtcHMgKG9yIHRpbWVzdGFtcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgVGhlIHJlcG9ydGVkIHBvc2l0aW9uIG11c3QgYWx3YXlzIGJlIHNtYWxsZXIgdGhhbiB0aGUgbGFzdCBzZWVuCgkgIHRpbWVzdGFtcHMgKG9yIHRpbWVzdGFtcCArIGR1cmF0aW9uIGZvciByZXZlcnNlKS4KCjIwMDgtMDUtMzAgMDc6MzY6MTcgKzAwMDAgIFJvYiBCcmFkZm9yZCA8cm9iQHJvYnN0ZXIub3JnLnVrPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IERvbid0IHJlY3Vyc2UgaW50byAuZGVidWcgZGlyZWN0b3JpZXMgYXMgc29tZSBkaXN0cm9zIGluc3RhbGwgdGhlIGRlYnVnZ2luZyBzeW1ib2xzIG5leHQgdG8gdGhlIHBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUm9iIEJyYWRmb3JkIDxyb2IgYXQgcm9ic3RlciBkb3Qgb3JnIGRvdCB1az4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBEb24ndCByZWN1cnNlIGludG8gLmRlYnVnIGRpcmVjdG9yaWVzIGFzIHNvbWUgZGlzdHJvcyBpbnN0YWxsCgkgIHRoZSBkZWJ1Z2dpbmcgc3ltYm9scyBuZXh0IHRvIHRoZSBwbHVnaW5zIGluIC5kZWJ1ZyBkaXJlY3RvcmllcwoJICBhbmQgZGxvcGVuKCkgY3Jhc2hlcyBvbiB0aGVtIHNvbWV0aW1lcy4gRml4ZXMgYnVnICM1MDgwNzAuCgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBub3QgcmVjdXJzZSBpbnRvIGRpcmVjdG9yaWVzIGF0IGFsbCBiZWNhdXNlCgkgIGl0J3MgdmVyeSBpbmNvbnNpc3RlbnQgdG8gdGhlIGJlaGF2aW91ciBvZiBvdGhlciBQQVRIIGVudmlyb25tZW50CgkgIHZhcmlhYmxlcy4KCjIwMDgtMDUtMjkgMTY6MzQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBwb3NpdGlvbiBxdWVyeSByYW5nZSBjaGVja3MgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRml4IHBvc2l0aW9uIHF1ZXJ5IHJhbmdlIGNoZWNrcyBpbiByZXZlcnNlIHBsYXliYWNrLgoKMjAwOC0wNS0yOSAwNzoxOTo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9nZXRfcGFkKCkgYXMgaXQgY2FuJ3QgYmUgdXNlZCBzYW5lbHkuIEl0J3Mgbm90IGNsZWFyIG9mIHRoZSByZWZlcmVuY2UgdG8gdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9nZXRfcGFkKCkgYXMgaXQgY2FuJ3QgYmUgdXNlZCBzYW5lbHkuIEl0J3Mgbm90CgkgIGNsZWFyIG9mIHRoZSByZWZlcmVuY2UgdG8gdGhlIHJlc3VsdGluZyBwYWQgbXVzdCBiZSByZWxlYXNlZCBsYXRlcgoJICBvciBub3QsIHJlc3VsdGluZyBpbiBwb3NzaWJsZSBsZWFrcy4gRml4ZXMgYnVnICM1MzM4NjUuCgoyMDA4LTA1LTI4IDE2OjQ2OjA3ICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFNtYWxsIGRvYyBmaXguIEZpeGVzICM1MzUyODUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBTbWFsbCBkb2MgZml4LiBGaXhlcyAjNTM1Mjg1LgoKMjAwOC0wNS0yOCAxMzo0ODoxNyArMDAwMCAgQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc2VuZGluZyBhbiBFT1MgZXZlbnQgdG8gdGhlIGJhc2VzcmMgbm9uLWJsb2NraW5nIGV2ZW4gaWYgdGhlIGltcGxlbWVudGF0aW9uIGRvZXMgYmxvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzZW5kaW5nIGFuIEVPUyBldmVudCB0byB0aGUgYmFzZXNyYyBub24tYmxvY2tpbmcgZXZlbiBpZiB0aGUKCSAgaW1wbGVtZW50YXRpb24gZG9lcyBibG9ja2luZyB3YWl0cyBpbiB0aGUgY3JlYXRlIGZ1bmN0aW9uLiBUaGlzIGlzIGRvbmUKCSAgYnkgdW5sb2NraW5nIHRoZSBjcmVhdGUgZnVuY3Rpb24gd2hlbiBFT1MgaXMgc2VudC4KCSAgRml4ZXMgIzUzNTIxOC4KCjIwMDgtMDUtMjggMTA6NDQ6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IElmIHBvc3NpYmxlIHByaW50IHRoZSBlbGVtZW50IHR5cGUgb2YgR1ZhbHVlQXJyYXkgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSWYgcG9zc2libGUgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBvZiBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzLgoKMjAwOC0wNS0yOCAwNzo0NzoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IFJlbW92ZSBhbiB1bnVzZWQgZmllbGQgZnJvbSB0aGUgcHJpdmF0ZSBHc3RMaXN0SXRlcmF0b3Igc3RydWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgUmVtb3ZlIGFuIHVudXNlZCBmaWVsZCBmcm9tIHRoZSBwcml2YXRlIEdzdExpc3RJdGVyYXRvciBzdHJ1Y3QuCgoyMDA4LTA1LTI3IDIwOjE5OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQWRkIHBhcmFtZXRlciBndWFyZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgcGFyYW1ldGVyIGd1YXJkcy4KCjIwMDgtMDUtMjcgMTk6NDc6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBSZXZlcnQgdGVzdCBjaGFuZ2UgYW5kIGFkZCBjb21tZW50IHdoeSBpdCBzaG91bGQgbm90IHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBSZXZlcnQgdGVzdCBjaGFuZ2UgYW5kIGFkZCBjb21tZW50IHdoeSBpdCBzaG91bGQgbm90IHdvcmsuCgoyMDA4LTA1LTI3IDE4OjMxOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogRXh0ZW5kaW5nIHRoZSB0ZXN0IGEgbGl0dGxlIHRvIHZlcmlmeSB0aGF0IHdlIGFsc28gZ2V0IHRoZSBOVUxMIHN0YXRlLSBjaGFuZ2UgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEV4dGVuZGluZyB0aGUgdGVzdCBhIGxpdHRsZSB0byB2ZXJpZnkgdGhhdCB3ZSBhbHNvIGdldCB0aGUgTlVMTCBzdGF0ZS0KCSAgY2hhbmdlIG1lc3NhZ2UuCgoyMDA4LTA1LTI3IDE2OjM3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBBZGQgU2luY2U6IG1hcmtlcnMgdG8gZG9jcyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2dldF9wcmVzZXRfbmFtZXMpLCAoZ3N0X3ByZXNldF9nZXRfcHJvcGVydHlfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9sb2FkX3ByZXNldCksIChnc3RfcHJlc2V0X3NhdmVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfcmVuYW1lX3ByZXNldCksIChnc3RfcHJlc2V0X2RlbGV0ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9zZXRfbWV0YSk6CgkgIEFkZCBTaW5jZTogbWFya2VycyB0byBkb2NzIGJsdXJicy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHJlY2VudGx5LWFkZGVkIEFQSS4KCjIwMDgtMDUtMjcgMTU6MTE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIERBVEFESVIgZm9yIHN0b3JpbmcgcHJlc2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCAgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIERBVEFESVIgZm9yIHN0b3JpbmcgcHJlc2V0cy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBBZGQgR3N0UHJlc2V0IHRvIGRvY3MuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChwcmVzZXRfZ2V0X3BhdGhzKSwgKHByZXNldF9za2lwX3Byb3BlcnR5KSwKCSAgKHByZXNldF9vcGVuX2FuZF9wYXJzZV9oZWFkZXIpLCAocHJlc2V0X3BhcnNlX3ZlcnNpb24pLAoJICAocHJlc2V0X21lcmdlKSwgKHByZXNldF9nZXRfa2V5ZmlsZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X3ByZXNldF9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X3Byb3BlcnR5X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9sb2FkX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfc2F2ZV9wcmVzZXRzX2ZpbGUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3NhdmVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9yZW5hbWVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9kZWxldGVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfZGVmYXVsdF9zZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X21ldGEpLCAoZ3N0X3ByZXNldF9kZWZhdWx0X3JhbmRvbWl6ZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfcmVzZXQpLCAoZ3N0X3ByZXNldF9nZXRfcHJlc2V0X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X3Byb3BlcnR5X25hbWVzKSwgKGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9zYXZlX3ByZXNldCksIChnc3RfcHJlc2V0X3JlbmFtZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWxldGVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfc2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9nZXRfbWV0YSksIChnc3RfcHJlc2V0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ByZXNldF9iYXNlX2luaXQpLCAoZ3N0X3ByZXNldF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgR3N0UHJlc2V0IHRvIGNvcmUuIEZpeGVzICMzOTY3NzkKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X3Rlc3RfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9zZXRfcHJvcGVydHkpLCAoZ3N0X3ByZXNldF90ZXN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ByZXNldF90ZXN0X2Jhc2VfaW5pdCksIChnc3RfcHJlc2V0X3Rlc3RfZ2V0X3R5cGUpLAoJICAoZ3N0X3ByZXNldF90ZXN0X3BsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHJlbW92ZV9wcmVzZXRfZmlsZSksICh0ZXN0X3NldHVwKSwgKHRlc3RfdGVhcmRvd24pLAoJICAoZ3N0X3ByZXNldF9zdWl0ZSk6CgkgIEFkZCBHc3RQcmVzZXQgdW5pdCB0ZXN0cy4KCjIwMDgtMDUtMjcgMTA6NTk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFRoZSBkZWZhdWx0IGV2ZW50IGZ1bmN0aW9uIG9uIGEgc2lua3BhZCBzaG91bGQgcmV0dXJuIFRSVUUgd2hlbiB0aGVyZSBhcmUgbm8gaW50ZXJuYWwgbGlua3MgYnV0IHNob3VsZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKToKCSAgVGhlIGRlZmF1bHQgZXZlbnQgZnVuY3Rpb24gb24gYSBzaW5rcGFkIHNob3VsZCByZXR1cm4gVFJVRSB3aGVuCgkgIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBsaW5rcyBidXQgc2hvdWxkIGNvbGxlY3QgdGhlIHJldHVybiB2YWx1ZXMgZnJvbQoJICB0aGUgaW50ZXJuYWwgbGlua3Mgb3RoZXJ3aXNlLgoKMjAwOC0wNS0yNyAxMDo1NzoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBmYXN0ZXIgYW5kIHNhZmVyIF9wYWRfcHVzaF9ldmVudCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgVXNlIGZhc3RlciBhbmQgc2FmZXIgX3BhZF9wdXNoX2V2ZW50KCkuCgoyMDA4LTA1LTI3IDEwOjUwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5saW5rZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQpLCAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQoKQoJICBBUEk6IGRlcHJlY2F0ZSBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCM0MDE0NTYpCgoyMDA4LTA1LTI2IDEwOjA3OjA5ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IEZpeGVkIGEgYnVuY2ggb2YgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRml4ZWQgYSBidW5jaCBvZiB0eXBvcy4KCjIwMDgtMDUtMjUgMTY6MzQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiAndW5jb25uZWN0ZWQgcGFkJyAtPiAndW5saW5rZWQgcGFkJyBmb3IgY29uc2lzdGVuY3kgKCM0MDE0NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLCAoZWxlbWVudF9maW5kX3VubGlua2VkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICd1bmNvbm5lY3RlZCBwYWQnIC0+ICd1bmxpbmtlZCBwYWQnIGZvciBjb25zaXN0ZW5jeSAoIzQwMTQ1NikuCgoyMDA4LTA1LTI1IDE2OjEzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6IFNtYWxsIGRvY3MgdXBkYXRlLCBjYW4ndCBiZSBib3RoZXJlZCB0byByZXdyaXRlIHRoZSBub25zZW5zaWNhbCBleGFtcGxlcyByaWdodCBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBTbWFsbCBkb2NzIHVwZGF0ZSwgY2FuJ3QgYmUgYm90aGVyZWQgdG8gcmV3cml0ZSB0aGUgbm9uc2Vuc2ljYWwKCSAgZXhhbXBsZXMgcmlnaHQgbm93LgoKMjAwOC0wNS0yNSAxNDo0NDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5oOiBDbGFyaWZ5IGRvY3MgZm9yIEdTVF9TRUVLX1RZUEVfQ1VSICgjNTM0NTA1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIENsYXJpZnkgZG9jcyBmb3IgR1NUX1NFRUtfVFlQRV9DVVIgKCM1MzQ1MDUpLgoKMjAwOC0wNS0yNSAxNDoxMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOC0wNS0yNSAxMzo1NjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEdldCBhbGwgbWlzc2luZyBlbGVtZW50cyBmcm9tIGEgcGFyc2UgbGF1bmNoIHN0cmluZyBpZiBwb3NzaWJsZSAoaWUuIGlmIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBoYXMgYmVlbiBzcGVjaWZpZWQpLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgR2V0IGFsbCBtaXNzaW5nIGVsZW1lbnRzIGZyb20gYSBwYXJzZSBsYXVuY2ggc3RyaW5nIGlmIHBvc3NpYmxlCgkgIChpZS4gaWYgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGhhcyBiZWVuIHNwZWNpZmllZCkuIEZpeGVzICM1MjgxNzguCgoyMDA4LTA1LTI0IDE2OjM4OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbmV3IGdzdF9wYXJzZV9sYXVuY2gqX2Z1bGwoKSBBUEkuIChFeHBvc2VzIGEgcHJldmlvdXNseS1leGlzdGluZyBtZW1vcnkgbGVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIG5ldyBnc3RfcGFyc2VfbGF1bmNoKl9mdWxsKCkgQVBJLgoJICAoRXhwb3NlcyBhIHByZXZpb3VzbHktZXhpc3RpbmcgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGNvZGUKCSAgcGF0aCwgc28gYWRkaW5nIHRvIFZBTEdSSU5EX1RPX0ZJWCBmb3Igbm93KS4KCjIwMDgtMDUtMjQgMTU6MzM6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKF9Hc3RQYXJzZUNvbnRleHQpOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2Vycm9yX3F1YXJrKSwgKGdzdF9wYXJzZV9jb250ZXh0X25ldyksCgkgIChnc3RfcGFyc2VfY29udGV4dF9mcmVlKSwgKGdzdF9wYXJzZV9jb250ZXh0X2dldF9taXNzaW5nX2VsZW1lbnRzKSwKCSAgKGdzdF9wYXJzZV9sYXVuY2h2KSwgKGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwpLCAoZ3N0X3BhcnNlX2xhdW5jaCksCgkgIChnc3RfcGFyc2VfbGF1bmNoX2Z1bGwpOgoJICAqIGdzdC9nc3RwYXJzZS5oOiAoR1NUX1BBUlNFX0ZMQUdfTk9ORSksIChHU1RfUEFSU0VfRkxBR19GQVRBTF9FUlJPUlMpLAoJICAoR3N0UGFyc2VGbGFncyksIChHc3RQYXJzZUNvbnRleHQpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS90eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGdzdF9wYXJzZV8qX2Z1bGwgQVBJICgjNTI4MTc4KToKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9uZXcoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X2ZyZWUoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X2dldF9taXNzaW5nX2VsZW1lbnRzKCkKCjIwMDgtMDUtMjMgMDY6NTA6MTAgKzAwMDAgIFN1cmVzaCBLdW1hciBQIDxzdXJlc2hrdW1hci5wcEBnbWFpbC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFsc28gc3VwcG9ydCBmZm1wZWcgaW4gZ3N0LXVuaW5zdGFsbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFN1cmVzaCBLdW1hciBQIDxzdXJlc2hrdW1hci5wcEBnbWFpbC5jb20+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBbHNvIHN1cHBvcnQgZmZtcGVnIGluIGdzdC11bmluc3RhbGxlZC4KCjIwMDgtMDUtMjIgMjA6Mjk6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQWZ0ZXIgZGlzY3Vzc2lvbiBvbiBJUkMgdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXMgZGVmYXVsdCBidXQgYWxsb3cgdG8gZGlzYWJsZSBpdCB3aXRoIC0tZGlzYWJsZS1iaW5hci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFmdGVyIGRpc2N1c3Npb24gb24gSVJDIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFzIGRlZmF1bHQKCSAgYnV0IGFsbG93IHRvIGRpc2FibGUgaXQgd2l0aCAtLWRpc2FibGUtYmluYXJ5LXJlZ2lzdHJ5LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgdGhlIHR3byBuZXcgc3ltYm9scyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeS4KCjIwMDgtMDUtMjIgMTU6Mzg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3JlIGd1YXJkcyBhZ2FpbnN0IGJhZCBpbnB1dDsgdHlwbyBmaXg7IHNvbWUgbWlub3IgY2xlYW4tdXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKF9nc3RfcGFyc2VfZXNjYXBlKSwgKGdzdF9wYXJzZV9sYXVuY2h2KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogKGdyYXBoKToKCSAgTW9yZSBndWFyZHMgYWdhaW5zdCBiYWQgaW5wdXQ7IHR5cG8gZml4OyBzb21lIG1pbm9yIGNsZWFuLXVwcy4KCjIwMDgtMDUtMjIgMDg6MzM6MjcgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSWYgbm90aGluZyBlbHNlIGNhbiBiZSB1c2VkLCB1c2UgdGhlIGxhc3QgYnVmZmVyJ3Mgc3RhcnQgdGltZSBhcyB0aGUgc2VnbWVudCdzIGxhc3Qgc3RvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIElmIG5vdGhpbmcgZWxzZSBjYW4gYmUgdXNlZCwgdXNlIHRoZSBsYXN0IGJ1ZmZlcidzIHN0YXJ0IHRpbWUgYXMKCSAgdGhlIHNlZ21lbnQncyBsYXN0IHN0b3AuIEZpeGVzIGJ1ZyAjNTM0MjU4LgoKMjAwOC0wNS0yMSAxODozMzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogTW92ZSBzaXplIHNhbml0eSBjaGVjayB0byB0aGUgcmlnaHQgcGxhY2U6IGRvd25zdHJlYW0gbWF5IHJldHVybiBhIGJ1ZmZlciB3aXRoIGEgc21hbGxlciBzaXplIGlmIHRoZSBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgTW92ZSBzaXplIHNhbml0eSBjaGVjayB0byB0aGUgcmlnaHQgcGxhY2U6IGRvd25zdHJlYW0gbWF5IHJldHVybgoJICBhIGJ1ZmZlciB3aXRoIGEgc21hbGxlciBzaXplIGlmIHRoZSBidWZmZXIgY2FwcyBhcmUgZGlmZmVyZW50IHRoYW4KCSAgdGhlIHJlcXVlc3RlZCBvbmVzLCBhcyBtYXkgaGFwcGVuIHdoZW4gZG9pbmcgcmV2ZXJzZSBuZWdvdGlhdGlvbi4KCjIwMDgtMDUtMjEgMTY6MDY6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU21hbGwgY2xlYW51cHMuIEFkZCBub3RlIGFkYm91dCBnX2ZvcGVuKCkgb24gd2luZG93cyBhbmQgd2h5IHdlIGRvbid0IHVzZSBpdCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgU21hbGwgY2xlYW51cHMuIEFkZCBub3RlIGFkYm91dCBnX2ZvcGVuKCkgb24gd2luZG93cyBhbmQgd2h5IHdlIGRvbid0CgkgIHVzZSBpdCB5ZXQuCgoyMDA4LTA1LTIxIDE1OjU3OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksCgkgIChnc3RfZWxlbWVudF91bmxpbmtfcGFkcyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChzZXR1cF9tdWx0aXF1ZXVlKSwKCSAgKG1xX3NpbmtwYWRfdG9fc3JjcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCB1c2UgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpLgoKMjAwOC0wNS0yMSAxNTo1NDoyOCArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0Bub2tpYS5jb20+CgoJICBkb2NzL01ha2VmaWxlLmFtOiBGaXggaW5zdGFsbGluZyBwbHVnaW4gZG9jdW1lbnRhdGlvbiB3aGVuIGd0ay1kb2MgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIEZpeCBpbnN0YWxsaW5nIHBsdWdpbiBkb2N1bWVudGF0aW9uIHdoZW4gZ3RrLWRvYyBpcyBkaXNhYmxlZC4KCjIwMDgtMDUtMjEgMTU6NTE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IEF2b2lkIHVzaW5nIGEgYmFkIGZ1bmN0aW9uIGluIHRoZSBleGFtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIEF2b2lkIHVzaW5nIGEgYmFkIGZ1bmN0aW9uIGluIHRoZSBleGFtcGxlIGNvZGUuCgoyMDA4LTA1LTIxIDE1OjQ5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEZpeCBkZWJ1ZyBvZiB0aGUgbmV3IGNsb2NrIHJhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgIEZpeCBkZWJ1ZyBvZiB0aGUgbmV3IGNsb2NrIHJhdGUuCgoyMDA4LTA1LTIxIDExOjEwOjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTA1LTIwIDA4OjI4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBVbnJlZiBldmVudHMgdGhhdCB0aGUgR3N0QmFzZVRyYW5zZm9ybTo6ZXZlbnQgdmZ1bmMgZGlkbid0IHdhbnQgdG8gaGF2ZSBmb3J3YXJkZWQgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0ubXVsbGVyIGF0IGNvbGxhYm9yYSBjbyB1az4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KToKCSAgVW5yZWYgZXZlbnRzIHRoYXQgdGhlIEdzdEJhc2VUcmFuc2Zvcm06OmV2ZW50IHZmdW5jIGRpZG4ndCB3YW50IHRvCgkgIGhhdmUgZm9yd2FyZGVkIGJ5IHRoZSBiYXNlIGNsYXNzLiBDbG9zZXMgYSBsZWFrIGluIGlkZW50aXR5LgoJICBGaXhlcyBidWcgIzQ0Njc2My4KCjIwMDgtMDUtMTkgMTY6MzY6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBFeHBvc2UgYSBtZXRob2QgdGhhdCB3YXMgcHJldmlvdXNseSB1c2VkIGludGVybmFsbHkgdG8gc3luY2hyb25pemUgYWdhaW5zdCB0aGUgY2xvY2sgYmVjYXVzZSBpdCBjYW4gYmUgdXNlZnVsIGZvciBzdWIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRXhwb3NlIGEgbWV0aG9kIHRoYXQgd2FzIHByZXZpb3VzbHkgdXNlZCBpbnRlcm5hbGx5IHRvIHN5bmNocm9uaXplCgkgIGFnYWluc3QgdGhlIGNsb2NrIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWZ1bCBmb3Igc3ViY2xhc3NlcyB0b28uCgkgIEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKQoKMjAwOC0wNS0xOSAxMTo1OTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IHNtYWxsZXIgYnVmZmVycyB0aGFuIHJlcXVlc3RlZCAoYW5kIGZhbGxiYWNrIHRvIG5vcm1hbCBidWZmZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpOgoJICBBZGQgc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgc21hbGxlciBidWZmZXJzCgkgIHRoYW4gcmVxdWVzdGVkIChhbmQgZmFsbGJhY2sgdG8gbm9ybWFsIGJ1ZmZlciBhbGxvYyBpZiB3ZSBkbykuCgoyMDA4LTA1LTE5IDExOjExOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWZhY3RvciBhZGp1c3RpbmcgdGhlIHJ1bm5pbmdfdGltZSB3aXRoIGxhdGVuY3kgYW5kIG9mZnNldCBpbnRvIGEgc2VwYXJhdGUgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2FkanVzdF90aW1lKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgUmVmYWN0b3IgYWRqdXN0aW5nIHRoZSBydW5uaW5nX3RpbWUgd2l0aCBsYXRlbmN5IGFuZCBvZmZzZXQgaW50byBhCgkgIHNlcGFyYXRlIG1ldGhvZC4KCSAgV2hlbiBkb2luZyBjbGlwcGluZywgd2Ugc3RpbGwgd2FudCB0byB1c2UgdGhlIHN1YmNsYXNzIGdldF90aW1lcyBtZXRob2QsCgkgIGp1c3QgaW4gY2FzZSB0aGUgRFVSQVRJT04gb3IgVElNRVNUQU1QIGFyZSBub3Qgc2V0LgoKMjAwOC0wNS0xOSAxMDo0Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUoKSwgIzUzMzc0MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKCksICM1MzM3NDAuCgoyMDA4LTA1LTE5IDEwOjI5OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVzZSByaWdodCBlcnJvciBjb2RlIHdoZW4gdHlwZWZpbmRpbmcgZmFpbHMsIHNvIHdlIGNhbiB1c2UgdGhlIGRlZmF1bHQgKHRyYW5zbGF0ZWQpIGVycm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgVXNlIHJpZ2h0IGVycm9yIGNvZGUgd2hlbiB0eXBlZmluZGluZyBmYWlscywgc28gd2UgY2FuIHVzZQoJICB0aGUgZGVmYXVsdCAodHJhbnNsYXRlZCkgZXJyb3IgbWVzc2FnZXMuCgoyMDA4LTA1LTE5IDEwOjAzOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFdoZW4gdGhlIHN1YmNsYXNzIGRpZCBub3Qgc2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycywgY29uZmlndXJlIHRoZSBjYXBzIHdlIG5lZ290aWF0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBXaGVuIHRoZSBzdWJjbGFzcyBkaWQgbm90IHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMsIGNvbmZpZ3VyZSB0aGUKCSAgY2FwcyB3ZSBuZWdvdGlhdGVkIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBXaGVuIHRoZSB0eXBlZmluZCBoZWxwZXIgZG9lcyBub3QgZmluZCBjYXBzLCBlcnJvciBvdXQgcHJvcGVybHkgaW5zdGVhZAoJICBvZiBkb2luZyB0aGluZ3Mgd2l0aCBOVUxMIGNhcHMuCgoyMDA4LTA1LTE4IDE4OjUzOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kLmg6IFRhYnMgdG8gc3BhY2VzLCBvaCB5ZXMhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBUYWJzIHRvIHNwYWNlcywgb2ggeWVzIQoKMjAwOC0wNS0xOCAxMjoxMzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgoyMDA4LTA1LTE4IDExOjUyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkIERhdmlkJ3MgYW5kIEJlbmphbWluJ3MgdGVzdHMgZm9yIGFycmF5IHN1YnRyYWN0aW9uIHRvIHRoZSB1bml0IHRlc3Qgc3VpdGUsIHdoaWNoIHN1Z2dlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6ICh0ZXN0X2ludGVyc2VjdDIpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgRGF2aWQncyBhbmQgQmVuamFtaW4ncyB0ZXN0cyBmb3IgYXJyYXkgc3VidHJhY3Rpb24gdG8gdGhlCgkgIHVuaXQgdGVzdCBzdWl0ZSwgd2hpY2ggc3VnZ2VzdHMgdGhhdCAjMTQ3OTMxIGlzIGZpeGVkIHRoZXNlIGRheXMuCgoyMDA4LTA1LTE4IDExOjM1OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IERvY3VtZW50IHRoYXQgZ3N0X2V2ZW50X25ld190YWcoKSBhbmQgZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHRhZ2xpc3Qvc3RydWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBEb2N1bWVudCB0aGF0IGdzdF9ldmVudF9uZXdfdGFnKCkgYW5kIGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbigpCgkgIHRha2Ugb3duZXJzaGlwIG9mIHRoZSB0YWdsaXN0L3N0cnVjdHVyZSBwYXNzZWQgdG8gdGhlbS4gKCM1MzM2MzUpLgoKMjAwOC0wNS0xNyAxNzoyMDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL01ha2VmaWxlLmFtOiBEb24ndCBkZXNjZW5kIGludG8gdGhlIHBsdWdpbnMgZGlyIGlmIHBsdWdpbiBkb2NzIGJ1aWxkaW5nIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBEb24ndCBkZXNjZW5kIGludG8gdGhlIHBsdWdpbnMgZGlyIGlmIHBsdWdpbiBkb2NzIGJ1aWxkaW5nCgkgIGlzIGRpc2FibGVkLgoJICAqIGRvY3MvUkVBRE1FOgoJICBBZGQgYSBub3RlIGFib3V0IHRoZSBuZXcgdHlwZTpHVHlwZU5hbWUgc3ludGF4IGZvciB0aGUgcGx1Z2luCgkgIGRvY3VtZW50YXRpb24gLnR5cGVzIGZpbGUuCgoyMDA4LTA1LTE3IDEzOjU0OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBNYXJrIHRoZSBkZWJ1ZyBzdHJpbmcgcGFyYW1ldGVycyBhcyBjb25zdC4gRml4ZXMgYnVnICM1MzM0OTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1hcmsgdGhlIGRlYnVnIHN0cmluZyBwYXJhbWV0ZXJzIGFzIGNvbnN0LiBGaXhlcyBidWcgIzUzMzQ5MC4KCjIwMDgtMDUtMTYgMjE6MDk6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogU29ydCBidWZmZXIgY2FjaGUgbGlzdCBieSBlbmQgb2Zmc2V0cy4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3Qgc3RvcCB0byBzZWFyYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgU29ydCBidWZmZXIgY2FjaGUgbGlzdCBieSBlbmQgb2Zmc2V0cy4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QKCSAgc3RvcCB0byBzZWFyY2ggZm9yIGEgY2FjaGVkIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIHRoZSByZXF1ZXN0ZWQgZGF0YQoJICB0b28gZWFybHkuCgkgIEFsc28gcmVhZCBhIG1pbmltdW0gb2YgNGsgYnl0ZXMgaW5zdGVhZCBvZiA1MTIgYnl0ZXMgYXMgdGhpcyBpcyBhIGJpdAoJICBtb3JlIGVmZmljaWVudC4gRml4ZXMgYnVnICM0NTk4NjIuCgoyMDA4LTA1LTE0IDE4OjE3OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBFeHBsYWluIHdoeSB3ZSBjb3B5IHRoZSBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBFeHBsYWluIHdoeSB3ZSBjb3B5IHRoZSBsaXN0LgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBJbXByb3ZlIGRvY3MuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBvbmUgZGVidWctbG9nIHN0YXRlbWVudCB0byBoZWxwIHRyYWNpbmcgcHJvYmVsbXMgd2l0aCBsaW5raW5nIHBhZHMuCgoyMDA4LTA1LTE0IDE4OjA5OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2cgaGFuZGxlci4gU2VlbXMgdG8gZmFpbCB1bmRlciB3aW5kb3dzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2cgaGFuZGxlci4gU2VlbXMgdG8gZmFpbCB1bmRlcgoJICB3aW5kb3dzLgoKMjAwOC0wNS0xNCAxMzo1Mjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVsZWFzZSBwYWQgbG9jayBiZWZvcmUgY2FsbGluZyBvdXQgdG8gYXZvaWQgYSBwb3NzaWJsZSBkZWFkbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKToKCSAgUmVsZWFzZSBwYWQgbG9jayBiZWZvcmUgY2FsbGluZyBvdXQgdG8gYXZvaWQgYSBwb3NzaWJsZSBkZWFkbG9jay4KCjIwMDgtMDUtMTQgMTA6MjI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgdW5uZWVkZWQgdmFsdWUgdW5zZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSB1bm5lZWRlZCB2YWx1ZSB1bnNldC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGRlL3NlcmlhbGl6YXRpb24gb2YgY2Fwcy4KCjIwMDgtMDUtMTMgMTI6NTQ6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgY3VzdG9tIG1hcnNoYWxlcnMgdGhhdCB0YWtlIEdzdE1pbmlPYmplY3QgYXMgZmlyc3QgcGFyYW1ldGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1RfT0JKRUNUKSwgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1RfT0JKRUNUKSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgVXNlIGN1c3RvbSBtYXJzaGFsZXJzIHRoYXQgdGFrZSBHc3RNaW5pT2JqZWN0IGFzIGZpcnN0IHBhcmFtZXRlci4KCSAgVXNpbmcgT0JKRUNUIGFzIHBhcmFtZXRlciB3aGlsZSBhIEdzdE1pbmlPYmplY3QgaXMgZ2l2ZW4gd2lsbCBsZWFkCgkgIHRvIGFzc2VydGlvbnMgaWYgYnVpbHQgd2l0aCBHX0VOQUJMRV9ERUJVRy4gRml4ZXMgYnVnICM1MjU1MzIuCgoyMDA4LTA1LTEzIDEyOjM4OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBDbGVhbiB1cCBvbiBGTFVTSF9TVE9QIGFuZCBub3QgRkxVU0hfU1RBUlQuIEZvcndhcmQgYm90aCBldmVudHMgaW1tZWRpYXRlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFuIHVwIG9uIEZMVVNIX1NUT1AgYW5kIG5vdCBGTFVTSF9TVEFSVC4gRm9yd2FyZCBib3RoIGV2ZW50cwoJICBpbW1lZGlhdGVseS4KCjIwMDgtMDUtMTMgMTE6NDU6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZvcndhcmQgRkxVU0hfU1RBUlQgZXZlbnRzIGltbWVkaWF0ZWx5IGFuZCBjbGVhbiB1cCBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRm9yd2FyZCBGTFVTSF9TVEFSVCBldmVudHMgaW1tZWRpYXRlbHkgYW5kIGNsZWFuIHVwIGluc3RlYWQgb2YKCSAgY2FjaGluZyB0aGVtLgoKMjAwOC0wNS0xMyAwNzoxMTowNSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgcmV0dXJuZWQgYnkgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSBhbmQgZmFsbCBiYWNrIHRvIGRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBDaGVjayB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGJ5IGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kCgkgIGZhbGwgYmFjayB0byBkZWZhdWx0IG5lZ290aWF0aW9uIGluIHRoZSBjaGFpbiBmdW5jdGlvbiBpZiB0aGUgY2FwcwoJICBhcmUgZGlmZmVyZW50IGZyb20gd2hhdCB3YXMgcmVxdWVzdGVkLiBGaXhlcyBidWcgIzUyNjc2OC4KCjIwMDgtMDUtMDkgMjA6NDg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBObywgbGV0J3Mgbm90IHVzZSBnX3NsaWNlX3tkdXB8Y29weX0gaGVyZSwgc2luY2UgdGhleSBvbmx5IGV4aXN0IHNpbmNlIEdMaWIgMi4xNCBhbmQgd2Ugc3RpbGwgZGVwZW5kIG9ubHkgb24gPj0gMi4xMi4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBObywgbGV0J3Mgbm90IHVzZSBnX3NsaWNlX3tkdXB8Y29weX0gaGVyZSwgc2luY2UgdGhleSBvbmx5IGV4aXN0CgkgIHNpbmNlIEdMaWIgMi4xNCBhbmQgd2Ugc3RpbGwgZGVwZW5kIG9ubHkgb24gPj0gMi4xMi4gQWxzbyBhZGQKCSAgdW5pdCB0ZXN0IGZvciBnc3Rfc2VnbWVudF9jb3B5KCkuCgoyMDA4LTA1LTA5IDE4OjI1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmg6IFRyeSB0byBmaXggJ2RlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdCBhbGlhc2luZyBydWxlcycgd2FybmluZ3Mgd2l0aCBDKysgY29tLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOiAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOgoJICBUcnkgdG8gZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QKCSAgYWxpYXNpbmcgcnVsZXMnIHdhcm5pbmdzIHdpdGggQysrIGNvbXBpbGVycyBhbmQgR0xpYiA+PSAyLjE0LjA6IEdMaWIKCSAgY2hhbmdlZCB0aGUgZGVmYXVsdCBHVHlwZSB0eXBlZGVmIGZyb20gZ3Vsb25nIHRvIGdzaXplIGF0IHNvbWUgcG9pbnQsCgkgIGJ1dCBrZXB0IEdUeXBlIHR5cGVkZWYnZWQgdG8gZ3Vsb25nIGZvciBDKysgZm9yIEFCSSByZWFzb25zOyB0aGUKCSAgZ19vbmNlXyogZnVuY3Rpb25zIGFsbCB0YWtlIGEgZ3NpemUgKiB0aG91Z2gsIHNvIHdvcmsgYXJvdW5kIHRoZSB0eXBlCgkgIG1pc21hdGNoIGZvciBDKysgYnkgZG9pbmcgZXZlcnl0aGluZyBpbiBnc2l6ZSBhbmQgY2FzdGluZyB0byBHVHlwZQoJICBsYXRlci4KCjIwMDgtMDUtMDkgMTQ6MDI6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2lnbmFscyB0byBwdXNoIG91ciBjb3JlIHBsdWdpbiBkb2NzIGNvdmVyYWdlIGJhY2sgdXAgdG8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNpZ25hbHMgdG8gcHVzaCBvdXIgY29yZSBwbHVnaW4gZG9jcwoJICBjb3ZlcmFnZSBiYWNrIHVwIHRvIDEwMCUuCgoyMDA4LTA1LTA4IDE0OjIzOjE2ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKTogUmV2ZXJ0ZWQgR1NUX0ZVTkNUSU9OIHRvIHRoZSBvbGQgdmVyc2lvbiBhcyB3ZSBkb24ndCB3YW50IHRoZSBmdWxsIHNpZ25hdHVyZSBpbiBDKysgY29kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6CgkgIFJldmVydGVkIEdTVF9GVU5DVElPTiB0byB0aGUgb2xkIHZlcnNpb24gYXMgd2UgZG9uJ3Qgd2FudCB0aGUKCSAgZnVsbCBzaWduYXR1cmUgaW4gQysrIGNvZGUuIEFsc28gYWRkZWQgc3VwcG9ydCBmb3IgTVNWQy4KCjIwMDgtMDUtMDggMTE6Mzc6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBJbnRlcm4gdGhlIHR5cGUgbmFtZSBzdHJpbmcsIHNpbWlsYXIgdG8gd2hhdCBHX0RFRklORV9UWVBFIGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBJbnRlcm4gdGhlIHR5cGUgbmFtZSBzdHJpbmcsIHNpbWlsYXIgdG8gd2hhdCBHX0RFRklORV9UWVBFIGRvZXMuCgoyMDA4LTA1LTA4IDExOjI3OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogTWFrZSBHU1RfQk9JTEVSUExBVEUgdGhyZWFkLXNhZmUgaWYgYnVpbGRpbmcgd2l0aCBHTGliIDIuMTQgb3IgbmV3ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWtlIEdTVF9CT0lMRVJQTEFURSB0aHJlYWQtc2FmZSBpZiBidWlsZGluZyB3aXRoIEdMaWIgMi4xNCBvciBuZXdlci4KCjIwMDgtMDUtMDggMDU6NTU6MzQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBwYXNzdGhyb3VnaCBidWZmZXIgYWxsb2NhdGlvbiB0b28gZWFzaWx5IGlmIHRoZSBjYXBzIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRG9uJ3QgcGFzc3Rocm91Z2ggYnVmZmVyIGFsbG9jYXRpb24gdG9vIGVhc2lseSBpZiB0aGUgY2FwcyBjaGFuZ2UuCgkgIFRoaXMgYnJlYWtzIHdoZW4gd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlIGFuZCB1cHN0cmVhbSBjaGFuZ2VzCgkgIGl0J3MgY2Fwcy4gRml4ZXMgYnVnICM1MjY3NjguCgoyMDA4LTA1LTA3IDE5OjI0OjQ0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uYyAoZ3N0X2RlYnVnX2xvZ192YWxpc3QpOiBJbXByb3ZlZCB0aGUgX19GSUxFX18gcGFydCBvZiBkZWJ1ZyBvdXRwdXQgZm9yIE1TVkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmMgKGdzdF9kZWJ1Z19sb2dfdmFsaXN0KToKCSAgSW1wcm92ZWQgdGhlIF9fRklMRV9fIHBhcnQgb2YgZGVidWcgb3V0cHV0IGZvciBNU1ZDLgoKMjAwOC0wNS0wNyAxOToxNToxNCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6IERlY2xhcmF0aW9uIGFmdGVyIHN0YXRlbWVudCBmaXggZm9yIGNvbXBpbGVycyBsaWtlIE1TVkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIERlY2xhcmF0aW9uIGFmdGVyIHN0YXRlbWVudCBmaXggZm9yIGNvbXBpbGVycyBsaWtlIE1TVkMuCgoyMDA4LTA1LTA3IDE5OjA5OjA4ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOiBEb24ndCBkZWZpbmUgR1NUX0ZVTkNUSU9OLCBpZiBHTGliIHN1cHBvcnRzIE1TVkMgd2UnZCBtdWNoIHJhdGhlciB1c2UgdGhlIHJlYWwgdGhpbmcgdGhhbiBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgRG9uJ3QgZGVmaW5lIEdTVF9GVU5DVElPTiwgaWYgR0xpYiBzdXBwb3J0cyBNU1ZDIHdlJ2QgbXVjaCByYXRoZXIKCSAgdXNlIHRoZSByZWFsIHRoaW5nIHRoYW4gaGF2aW5nICI/Pz8iIHVuY29uZGl0aW9uYWxseS4KCjIwMDgtMDUtMDcgMTg6NTE6MjIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOiBNYWRlIEdTVF9GVU5DVElPTiBhbiBhbGlhcyBmb3IgR19TVFJGVU5DIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOgoJICBNYWRlIEdTVF9GVU5DVElPTiBhbiBhbGlhcyBmb3IgR19TVFJGVU5DIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoKMjAwOC0wNS0wNyAwOTo0NzoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBTbWFsbCBjb2RlIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICBTbWFsbCBjb2RlIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBGaXggc29tZSBjb21tZW50cy4KCjIwMDgtMDUtMDcgMDk6MzQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuKjogQWRkZWQgZm9ybWF0IHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgbmV3c2VnbWVudCBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2luaXQpLCAoZ3N0X2Zha2Vfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIEFkZGVkIGZvcm1hdCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnRzLgoJICBBUEk6IEdzdEZha2VTcmM6Zm9ybWF0CgoyMDA4LTA1LTA2IDA4OjQ1OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIGdzdF9wYWRfaGFzX25hbWUoKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcGFkX2hhc19uYW1lKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTA1LTA2IDA4OjQzOjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEb24ndCBhbGxvdyBuZWdhdGl2ZSBzaXplcyB3aGVuIGFsbG9jYXRpbmcgbmV3IGJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIERvbid0IGFsbG93IG5lZ2F0aXZlIHNpemVzIHdoZW4gYWxsb2NhdGluZyBuZXcgYnVmZmVycy4KCSAgRml4ZXMgYnVnICM0NjEyNTMuCgoyMDA4LTA1LTA1IDE2OjQ3OjI5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IERvbid0IHByaW50IGEgd2FybmluZyBpZiB0aGUgcXVldWUgaXMgZW1wdHkgd2hlbiB3ZSB0cnkgdG8gcG9wIGhlcmUuIFRoYXQgY291bGQgaGFwcGVuIGlmIGFub3RoZXIgdGhyZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBuZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpOgoJICBEb24ndCBwcmludCBhIHdhcm5pbmcgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5IHdoZW4gd2UgdHJ5IHRvIHBvcAoJICBoZXJlLiBUaGF0IGNvdWxkIGhhcHBlbiBpZiBhbm90aGVyIHRocmVhZCBvciBjYWxsYmFjayBzZXQgdGhlCgkgIGJ1cyB0byBmbHVzaGluZyBiZXR3ZWVuIHRoZSBzb3VyY2UncyBjaGVjay9wcmVwYXJlIGFuZCB0aGUKCSAgZGlzcGF0Y2ggYmVpbmcgY2FsbGVkICgjNTMxNTM4KS4KCjIwMDgtMDUtMDUgMTY6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogU21hbGwgZG9jcyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBTbWFsbCBkb2NzIGZpeC4KCjIwMDgtMDUtMDUgMTU6NTA6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgdW5pdCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIHVpbnQ2NHMgYW5kIGNoZWNrIHNvbWUgcmVhbGx5IGxhcmdlIG51bWJlcnMgaW4gdGhlIGludDY0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgdWludDY0cyBhbmQgY2hlY2sgc29tZSByZWFsbHkgbGFyZ2UKCSAgbnVtYmVycyBpbiB0aGUgaW50NjQgdGVzdC4KCjIwMDgtMDUtMDQgMTk6MDc6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFVzZSAiJXMiIGFzIGZvcm1hdCBzdHJpbmcgaW5zdGVhZCBvZiBwcmludGluZyBzdHJpbmdzIGRpcmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobl9wcmludCksIChwcmludF9oaWVyYXJjaHkpLAoJICAocHJpbnRfaW50ZXJmYWNlcyksIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIFVzZSAiJXMiIGFzIGZvcm1hdCBzdHJpbmcgaW5zdGVhZCBvZiBwcmludGluZyBzdHJpbmdzIGRpcmVjdGx5LgoKMjAwOC0wNS0wNCAxNDoyNTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1ha2Ugc29tZSBjaGVja3MgYWN0dWFsbHkgdXNlZnVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICBNYWtlIHNvbWUgY2hlY2tzIGFjdHVhbGx5IHVzZWZ1bC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBSZW1vdmUgc29tZSB1bnVzZWQgY29kZS4gVW5zaWduZWQgaW50ZWdlcnMgdGVuZCB0byBiZSA+PSAwLgoKMjAwOC0wNS0wMyAxOToyMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEZpeCAnU2luY2U6JyB2ZXJzaW9uIGluIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QoKSBkb2NzIGJsdXJiOiB0aGlzIGZ1bmN0aW9uIHdhcyBub3QgaW4gdGhlIHVucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX2dldF9taW5pX29iamVjdCk6CgkgIEZpeCAnU2luY2U6JyB2ZXJzaW9uIGluIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QoKSBkb2NzIGJsdXJiOiB0aGlzCgkgIGZ1bmN0aW9uIHdhcyBub3QgaW4gdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCjIwMDgtMDUtMDMgMTk6MTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogT25seSBwcmludCBvbmUgbG9nIG1lc3NhZ2UgcGVyIG5vbi1wbHVnaW4gZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgT25seSBwcmludCBvbmUgbG9nIG1lc3NhZ2UgcGVyIG5vbi1wbHVnaW4gZmlsZS4KCjIwMDgtMDUtMDMgMTk6MDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggYWxpZ25tZW50IG9mIGRlYnVnIGxvZyBjb2x1bW5zIG9uIDY0LWJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIEZpeCBhbGlnbm1lbnQgb2YgZGVidWcgbG9nIGNvbHVtbnMgb24gNjQtYml0LgoKMjAwOC0wNS0wMyAxNjo1MjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy86IElnbm9yZSBwcml2YXRlIGNvbnRyb2xsZXIgaGVhZGVycyBmb3IgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIElnbm9yZSBwcml2YXRlIGNvbnRyb2xsZXIgaGVhZGVycyBmb3IgZG9jcy4KCjIwMDgtMDUtMDMgMTU6MjU6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBNb3ZlIHNvbWUgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgaW50byBwcml2YXRlIGhlYWRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgTW92ZSBzb21lIHByaXZhdGUgZGVjbGFyYXRpb25zIGludG8gcHJpdmF0ZSBoZWFkZXJzLgoKMjAwOC0wNS0wMiAxMDoxMjozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIHVudXNlZCBhZnRlciBTdGVmYW4ncyByZWZhY3RvcmluZyBhbmQgdXNlcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBub3csLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChkZWJ1Z19kdW1wX2VsZW1lbnRfcGFkKToKCSAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIHVudXNlZCBhZnRlciBTdGVmYW4ncyByZWZhY3RvcmluZyBhbmQgdXNlcwoJICB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBub3csIHJlc3VsdGluZyBpbiBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTA1LTAxIDEzOjAzOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJ1biBnX3N0cl9oYXNfc3VmZml4KCkgb25seSBvbiB0aGUgZmlsZSBuYW1lLCBub3QgdGhlIGVudGlyZSBmaWxlIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFJ1biBnX3N0cl9oYXNfc3VmZml4KCkgb25seSBvbiB0aGUgZmlsZSBuYW1lLCBub3QgdGhlCgkgIGVudGlyZSBmaWxlIHBhdGguCgoyMDA4LTA0LTMwIDE0OjIwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBTaW5jZSB3ZSdyZSBub3QgY2FsbGVkIG9ubHkgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb24gYW55IGxvbmdlciwgd2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sZWFrX2Rvd25zdHJlYW0pOgoJICBTaW5jZSB3ZSdyZSBub3QgY2FsbGVkIG9ubHkgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb24gYW55IGxvbmdlciwKCSAgd2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlcmUncyBhbHdheXMgZGF0YSBpbiB0aGUgcXVldWUsIHNvIG1vdmUKCSAgdGhlIGlzX2Z1bGwgY2hlY2sgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbG9vcCAob3RoZXJ3aXNlIHdlJ2QKCSAgaGl0IHRoZSBhc3NlcnQgd2hlbiBjaGFuZ2luZyB0aGUgbGltaXQgcHJvcGVydGllcyB3aGlsZSB0aGUKCSAgcXVldWUgaXMgZW1wdHkgb3Igbm90IHJ1bm5pbmcgeWV0KS4KCSAgQWxzbywgb25seSBzZXQgYSBkaXNjb250IGlmIGl0ZW1zIHdlcmUgYWN0dWFsbHkgcmVtb3ZlZCBmcm9tCgkgIHRoZSBxdWV1ZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAodGVzdF9sZWFreV9kb3duc3RyZWFtKToKCSAgVGVzdCBjYXNlIGZvciB0aGUgYWJvdmUuCgoyMDA4LTA0LTMwIDA5OjM1OjQzICswMDAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFdoZW4gY2hhbmdpbmcgdGhyIG1heCBjYXBhY2l0eSBvZiBhIGxlYWt5IHF1ZXVlLCBpbW1lZGlhdGx5IGRyb3AgYnVmZmVycyBpbnN0ZWFkIG9mIHdhaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hcyBIb2xtYmVyZyA8am9uYXMgZG90IGhvbG1iZXJnIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGVha19kb3duc3RyZWFtKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChxdWV1ZV9jYXBhY2l0eV9jaGFuZ2UpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIFdoZW4gY2hhbmdpbmcgdGhyIG1heCBjYXBhY2l0eSBvZiBhIGxlYWt5IHF1ZXVlLCBpbW1lZGlhdGx5IGRyb3AgYnVmZmVycwoJICBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGEgcHVzaCBvbiB0aGUgc2lua3BhZC4gRml4ZXMgIzUzMDYzNy4KCjIwMDgtMDQtMzAgMDc6NTY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlZmFjdG9yIGNvZGUgYW5kIGZpeCBoYW5kbGluZyBvZiBnaG9zdHBhZHMgYW5kIHRoZWlyIHByb3h5cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmVmYWN0b3IgY29kZSBhbmQgZml4IGhhbmRsaW5nIG9mIGdob3N0cGFkcyBhbmQgdGhlaXIgcHJveHlwYWRzLgoKMjAwOC0wNC0yOSAxMToyMzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gY29udmVuaWVudGx5IGNoZWNrIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGV2ZW50IHdpdGggZ3N0X2V2ZW50X2hhc19uYW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfaGFzX25hbWUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBjaGVjayB0aGUgbmFtZSBvZiBhIGN1c3RvbSBldmVudCB3aXRoCgkgIGdzdF9ldmVudF9oYXNfbmFtZSgpLgoJICBSZWZvcm1hdCB0aGUgZXZlbnQgZG9jcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcyBhcmUgcHV0IHRvZ2V0aGVyIGluc3RlYWQKCSAgb2YgdGhlIGRlZmF1bHQgYWxwaGFiZXRpY2FsIHNvcnQuCgkgIFVwZGF0ZSB1bml0IHRlc3Qgd2l0aCBuZXcgbWV0aG9kLgoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfaGFzX25hbWUoKQoKMjAwOC0wNC0yOCAxODo0NDo0OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06IERvbid0IGFkZCBhbiBleHBsaWNpdCBsaW5rIHRvIGxpYmdzdHJlYW1lci0wLjEwLmxhOyBpdCdzIGFscmVhZHkgaW5jbHVkZWQgaW4gR1NUX09CSl9MSUJTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgYWRkIGFuIGV4cGxpY2l0IGxpbmsgdG8gbGliZ3N0cmVhbWVyLTAuMTAubGE7IGl0J3MgYWxyZWFkeQoJICBpbmNsdWRlZCBpbiBHU1RfT0JKX0xJQlMuCgoyMDA4LTA0LTI4IDA5OjIxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IFJlZ2lzdGVyIEdzdENsb2NrIHR5cGUgZnJvbSBhIHR5cGUtc2FmZSBjb250ZXh0LiBGaXhlcyBidWcgIzUzMDMxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBSZWdpc3RlciBHc3RDbG9jayB0eXBlIGZyb20gYSB0eXBlLXNhZmUgY29udGV4dC4gRml4ZXMgYnVnICM1MzAzMTcuCgoyMDA4LTA0LTI2IDAwOjEzOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIHRvb2xzL2dzdC1ydW4uYzogSW5jbHVkZSA8dW5pc3RkLmg+IGNvbmRpdGlvbmFsbHkgb24gSEFWRV9VTklTVERfSCBhcyBlbHNld2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieSBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIEluY2x1ZGUgPHVuaXN0ZC5oPiBjb25kaXRpb25hbGx5IG9uIEhBVkVfVU5JU1REX0ggYXMgZWxzZXdoZXJlLgoKMjAwOC0wNC0yNSAxNzo1NDoyOCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIHRoZSBHTGliIHN0dWZmIHRvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFVzZSB0aGUgR0xpYiBzdHVmZiB0byBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZS4KCSAgQWRkIHNvbWUgbG9ja2luZyBhcm91bmQgc29tZSBkaXNwb3NlIG1ldGhvZHMgdG8gbWFrZSB0aGVtIGEgbGl0dGxlCgkgIHNhZmVyLCBzZWUgIzUyOTcyMy4gUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoKMjAwOC0wNC0yNSAxMzoyMjozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCBkb2MgdHlwb3MgYW5kIHVuaWZ5IGNhcHMgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEZpeCBkb2MgdHlwb3MgYW5kIHVuaWZ5IGNhcHMgYSBiaXQuCgoyMDA4LTA0LTI1IDEzOjA5OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZvcmdvdCB0byBhbHNvIGFkZCB0aGUgZW52dmFyIGRvY3MgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGb3Jnb3QgdG8gYWxzbyBhZGQgdGhlIGVudnZhciBkb2NzIGhlcmUuCgoyMDA4LTA0LTI1IDEwOjAxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVmIHNvbWUgbW9yZSBjbGFzc2VzIGluIGdzdF9pbml0KCkgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gcHJlLTIuMTYgR0xpYnMsIGFuZCBhZGQgYmFzaWMgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChwaXBlbGluZV90aHJlYWQpLAoJICAodGVzdF9jb25jdXJyZW50X2NyZWF0ZSksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICBSZWYgc29tZSBtb3JlIGNsYXNzZXMgaW4gZ3N0X2luaXQoKSB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5CgkgIGlzc3VlcyBpbiBwcmUtMi4xNiBHTGlicywgYW5kIGFkZCBiYXNpYyB1bml0IHRlc3QuCgoyMDA4LTA0LTI1IDA3OjIyOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWFycmFuZ2UgdGhlIGxhdGVuY3kgcXVlcnkgY29kZS4gV2UgYWx3YXlzIHdhbnQgdG8gZG8gdGhlIHVwc3RyZWFtIHF1ZXJ5LCBldmVuIGlmIHdlIGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBSZWFycmFuZ2UgdGhlIGxhdGVuY3kgcXVlcnkgY29kZS4gV2UgYWx3YXlzIHdhbnQgdG8gZG8gdGhlIHVwc3RyZWFtCgkgIHF1ZXJ5LCBldmVuIGlmIHdlIGFyZSBub3QgbGl2ZSBzbyB0aGF0IHRoZSB1cHN0cmVhbSBlbGVtZW50cyBjYW4gZ2V0IHRoZQoJICBsYXRlbmN5IHJlc3VsdHMgdG9vLiBJZiB3ZSBmYWlsIGRvaW5nIHRoZSBxdWVyeSBhbmQgd2UgYXJlIGxpdmUsIHdlCgkgIHJldHVybiBUUlVFIGFmdGVyd2FyZHMuCgoyMDA4LTA0LTI0IDE1OjE0OjU0ICswMDAwICBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoKCSAgRW5hYmxlL2Rpc2FibGUgc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KCkgYmFzZWQgb24gY29tbWFuZGxpbmUgc3dpdGNoIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLiBGaXhlcyAjNTIwNDY4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdC5jOgoJICBFbmFibGUvZGlzYWJsZSBzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkoKSBiYXNlZCBvbiBjb21tYW5kbGluZSBzd2l0Y2gKCSAgb3IgZW52aXJvbm1lbnQgdmFyaWFibGUuIEZpeGVzICM1MjA0NjguCgkgICogQ2hhbmdlTG9nOgoJICBGaXggdHlwbyBpbiBteSBwcmV2aW91cyBjb21taXQuCgoyMDA4LTA0LTI0IDA4OjI3OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWRkIGEgd2FybmluZyBvZiB3ZSBoaXQgdW5oYW5kbGVkIGZhY3RvcmllcyB3aGVuIHNhdmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEFkZCBhIHdhcm5pbmcgb2Ygd2UgaGl0IHVuaGFuZGxlZCBmYWN0b3JpZXMgd2hlbiBzYXZpbmcuCgkgIE1vcmUgZGVidWcgbG9nZ2luZyBkZXRhaWwsIGJ1dCBtb3ZlIHRvIExPRyBjYXRlZ29yeS4KCjIwMDgtMDQtMjQgMDY6NDY6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBUZWxsIHRoZSAqdHJ1dGgqIHdoZW4gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgVGVsbCB0aGUgKnRydXRoKiB3aGVuIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDQtMjMgMTQ6NTQ6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBVbnJlZiB0aGUgZmFjdG9yeSBhZnRlciBpdCB3YXMgdXNlZCB0aGUgbGFzdCB0aW1lLCBub3QgYmVmb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6CgkgIFVucmVmIHRoZSBmYWN0b3J5IGFmdGVyIGl0IHdhcyB1c2VkIHRoZSBsYXN0IHRpbWUsIG5vdCBiZWZvcmUuCgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfbWFrZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0IGFuZCBkb24ndCBsZWFrIGEgcmVmIHRvIHRoZSBpbmRleCBmYWN0b3J5IHdpdGgKCSAgZWFjaCBjYWxsLgoKMjAwOC0wNC0yMyAxMzo1NTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNC0yMyAxMDoxNDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogVGhlIGdsaWIgbWFjcm8gc2VlbXMgdG8gYmUgYm9ya2VkLiBVc2UgZ19zbGljZV9jb3B5IGRpcmVjdGx5IGFuZCBjYXN0IGluIHRoZSBob3BlIHRoYXQgdGhpcyBmaXhlcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFRoZSBnbGliIG1hY3JvIHNlZW1zIHRvIGJlIGJvcmtlZC4gVXNlIGdfc2xpY2VfY29weSBkaXJlY3RseSBhbmQgY2FzdAoJICBpbiB0aGUgaG9wZSB0aGF0IHRoaXMgZml4ZXMgdGhlIHdhcm5pbmcgb24gNjRiaXQuCgoyMDA4LTA0LTIzIDA3OjA4OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBEb2N1bWVudCB0aGUgbmV3IGZ1bmN0aW9uLiBVc2UgZ19zbGljZV9kdXAoKSAobm8gbmVlZCBmb3IgZ3N0X3NlZ21lbnRfaW5pdCgpKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4gVXNlIGdfc2xpY2VfZHVwKCkgKG5vIG5lZWQgZm9yCgkgIGdzdF9zZWdtZW50X2luaXQoKSkuCgoyMDA4LTA0LTIzIDA2OjU3OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNb3ZlIEdQYXJhbVNlcGMgbWFjcm9zIHRvIHN0YW5kYXJ0IHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1vdmUgR1BhcmFtU2VwYyBtYWNyb3MgdG8gc3RhbmRhcnQgc2VjdGlvbi4KCSAgKiBnc3QvZ3N0YmluLmM6CgkgIERuJ3QgZG9jdW1lbnQgX2dldF90eXBlIC0gaXRzIGluIHByaXZhdGUgc2VjdGlvbiBpbiBkb2NzIGFueXdheSBhbmQKCSAgdGhpcyBkb2MtYmxvYiB3YXMgaW5jb21wbGV0ZS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IHdyb25nIHN5bWJvbCBuYW1lcyBpbiBkb2NzLgoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgQWRkIG9uY2UgZG9jIHNlbnRlbmNlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMDQtMjEgMTA6MjU6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBBbmQgcmVtb3ZlIHRob3NlIGxpYnMgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIEFuZCByZW1vdmUgdGhvc2UgbGlicyBoZXJlLgoKMjAwOC0wNC0yMSAwOToyOTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRml4IGRvY3MgYnVpbGQgYWdhaW4gYnkgYWRkaW5nIGxpYmdzdG5ldC0wLjEwLnNvIHRvIFNDQU5PQkpfREVQUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggZG9jcyBidWlsZCBhZ2FpbiBieSBhZGRpbmcgbGliZ3N0bmV0LTAuMTAuc28gdG8gU0NBTk9CSl9ERVBTLgoKMjAwOC0wNC0yMSAwODozNDowOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWRkIHRoZSBtaW4tdGhyZXNob2xkIHRvIHRoZSBtaW4gbGF0ZW5jeSBpZiBwb3NzaWJsZS4gRml4ZXMgIzUyOTE0OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIEFkZCB0aGUgbWluLXRocmVzaG9sZCB0byB0aGUgbWluIGxhdGVuY3kgaWYgcG9zc2libGUuIEZpeGVzICM1MjkxNDguCgoyMDA4LTA0LTIxIDA3OjQ1OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46IFN0dXBpZCBlZGl0b3IsIEkgcmVtb3ZlZCB0aGF0IGxpbmUgYXMgaXQgc2hvdWxkIGdvIGluIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBTdHVwaWQgZWRpdG9yLCBJIHJlbW92ZWQgdGhhdCBsaW5lIGFzIGl0IHNob3VsZCBnbyBpbiB5ZXQuCgoyMDA4LTA0LTIxIDA3OjQyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogUmVtb3ZlIGxpYnJhcnkgdHlwZXMgZnJvIGNvcmUgZG9jcyBhbmQgaGF2ZSB0aGVtIGluIGxpYnMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgUmVtb3ZlIGxpYnJhcnkgdHlwZXMgZnJvIGNvcmUgZG9jcyBhbmQgaGF2ZSB0aGVtIGluIGxpYnMgZG9jcy4KCSAgUmVmb3JtYXQgYW5kIGNsZWFudXAuIEFkZCBjb21tZW50IGZvciBtaW5pb2JqZWN0IHR5cGVzLgoKMjAwOC0wNC0yMCAxNjozMjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRml4IGxlYWs6IGdfc3RyZG93biBvcGVyYXRlcyBvbiB0aGUgc3RyaW5nIGluIHBsYWNlLCB3aGlsZSBnX2FzY2lpX3N0cmRvd24oKSByZXR1cm5zIGEgbmV3bHktYWxsb2NhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9wcm90b2NvbCk6CgkgIEZpeCBsZWFrOiBnX3N0cmRvd24gb3BlcmF0ZXMgb24gdGhlIHN0cmluZyBpbiBwbGFjZSwgd2hpbGUKCSAgZ19hc2NpaV9zdHJkb3duKCkgcmV0dXJucyBhIG5ld2x5LWFsbG9jYXRlZCBzdHJpbmcuCgoyMDA4LTA0LTIwIDA5OjU1OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCB0aGUgVVJJIHByb3RvY29scyBhbmQgdGhlIFVSSSB0eXBlIHN1cHBvcnRlZCBieSB0aGUgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3VyaV9oYW5kbGVyX2luZm8pLAoJICAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgUHJpbnQgdGhlIFVSSSBwcm90b2NvbHMgYW5kIHRoZSBVUkkgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGVsZW1lbnQuCgoyMDA4LTA0LTE5IDE2OjA1OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBVc2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgZ192YWx1ZV9zZXRfc3RyaW5nX3Rha2Vfb3duZXJzaGlwKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSk6CgkgIFVzZSBnX3ZhbHVlX3Rha2Vfc3RyaW5nKCkgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZAoJICBnX3ZhbHVlX3NldF9zdHJpbmdfdGFrZV9vd25lcnNoaXAoKS4KCjIwMDgtMDQtMTkgMTU6NDI6MTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBSZXR1cm4gdGhlIG9sZCBDUkMgaW5zdGVhZCBvZiAwIGlmIHdlIGdpdmUgYSBOVUxMIGJ1ZmZlciBvciBhIGJ1ZmZlciB3aXRoIGEgbGVuZ3RoIG9mIDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoX2dzdF9jcmMzMik6CgkgIFJldHVybiB0aGUgb2xkIENSQyBpbnN0ZWFkIG9mIDAgaWYgd2UgZ2l2ZSBhIE5VTEwgYnVmZmVyCgkgIG9yIGEgYnVmZmVyIHdpdGggYSBsZW5ndGggb2YgMC4KCjIwMDgtMDQtMTkgMTU6MzY6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1cmkuYzogQSB2YWxpZCBVUkkgc2NoZW1lIGNhbiBhbHNvIGluY2x1ZGUgJysnLCAnLScgYW5kICcuJyBhZGRpdGlvbmFsIHRvIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFzIHBlciBSRkMgMy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX3Byb3RvY29sX2NoZWNrX2ludGVybmFsKSwKCSAgKGdzdF91cmlfZ2V0X3Byb3RvY29sKSwgKGdzdF91cmlfaGFzX3Byb3RvY29sKSwKCSAgKGdzdF91cmlfY29uc3RydWN0KSwgKGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKToKCSAgQSB2YWxpZCBVUkkgc2NoZW1lIGNhbiBhbHNvIGluY2x1ZGUgJysnLCAnLScgYW5kICcuJyBhZGRpdGlvbmFsCgkgIHRvIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFzIHBlciBSRkMgMzk4NiBTZWN0aW9uIDMuMS4KCSAgSGFuZGxlIFVSSSBzY2hlbWVzIGNhc2UgaW5zZW5zaXRpdmUgaW4gYWxsIHBsYWNlcyBhbmQgY29udmVydAoJICB0byBsb3dlci1jYXNlIHdoZW4gY29uc3RydWN0aW5nIGFuIFVSSSBvciBzZXR0aW5nIGFuIFVSSSB3aXRoCgkgIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZS4gRml4ZXMgYnVnICM1Mjg4NjguCgkgIEFsbCBlbGVtZW50cyBjYW4gc3RpbGwgYXNzdW1lIChhcyBiZWZvcmUpIHRoYXQgdGhleSB3aWxsCgkgIGdldCBwYXNzZWQgVVJJcyB3aXRoIGEgbG93ZXItY2FzZSBVUkkgc2NoZW1lIGJ5IHRoZSBHc3RVUklIYW5kbGVyCgkgIGludGVyZmFjZS4KCjIwMDgtMDQtMTcgMTA6MDk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBEb24ndCB1c2UgZ19hdG9taWNfc2V0X2ludCB3aGVyZSBpdCdzIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICBEb24ndCB1c2UgZ19hdG9taWNfc2V0X2ludCB3aGVyZSBpdCdzIG5vdCBuZWVkZWQuCgoyMDA4LTA0LTE3IDA4OjQ1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IDIgY2FwcyBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfY2Fwcyk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IDIgY2FwcyBsZWFrcy4KCjIwMDgtMDQtMTcgMDg6MzQ6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBVc2UgZ19hdG9taWNfaW50X3NldCgpIGhlcmUgdG9vIGluc3RlYWQgb2YgYXNzaWdubWVudCArIGdfYXRvbWljX2ludF9nZXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYXRvbWljX2ludF9zZXQpOgoJICBVc2UgZ19hdG9taWNfaW50X3NldCgpIGhlcmUgdG9vIGluc3RlYWQgb2YgYXNzaWdubWVudCArCgkgIGdfYXRvbWljX2ludF9nZXQoKS4KCjIwMDgtMDQtMTcgMDc6MTQ6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy4qOiBBUEk6IERlcHJlY2F0ZSBnc3RfYXRvbWljX2ludF9zZXQoKSwgZ19hdG9taWNfaW50X3NldCgpIHNob3VsZCBiZSB1c2VkIG5vdyB0aGF0IHdlIGRlcGVuZCBvbiBuZXcgZW5vdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBEZXByZWNhdGUgZ3N0X2F0b21pY19pbnRfc2V0KCksIGdfYXRvbWljX2ludF9zZXQoKSBzaG91bGQgYmUgdXNlZAoJICBub3cgdGhhdCB3ZSBkZXBlbmQgb24gbmV3IGVub3VnaCBHTGliLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpLCAoZ3N0X2RlYnVnX3NldF9jb2xvcmVkKSwKCSAgKGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQpLCAoX2dzdF9kZWJ1Z19jYXRlZ29yeV9uZXcpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaW5zdGVhZCBvZiBnc3RfYXRvbWljX2ludF9zZXQoKS4KCjIwMDgtMDQtMTYgMTg6NDg6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RxdWVyeS5jOiBBbHNvIHVzZSBHX0dJTlQ2NF9DT05TVEFOVCBmb3IgdGhlIHF1ZXJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBBbHNvIHVzZSBHX0dJTlQ2NF9DT05TVEFOVCBmb3IgdGhlIHF1ZXJpZXMuCgoyMDA4LTA0LTE2IDE4OjM4OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBVc2UgR19HSU5UNjRfQ09OU1RBTlQgaW4gdmFyYXJncyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgVXNlIEdfR0lOVDY0X0NPTlNUQU5UIGluIHZhcmFyZ3MgZnVuY3Rpb24uCgoyMDA4LTA0LTE2IDE1OjUxOjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW5pdGlhbGl6ZSB0aGUgcmVnaXN0cnkgbWFnaWMgd2l0aCB6ZXJvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKToKCSAgSW5pdGlhbGl6ZSB0aGUgcmVnaXN0cnkgbWFnaWMgd2l0aCB6ZXJvZXMuCgoyMDA4LTA0LTE2IDE0OjE4OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogQWRkIGNyYzMyIGNoZWNrc3VtIHRvIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZSBhbmQgY2hlY2sgdGhpcyBiZWZvcmUgYWNjZXB0aW5nIGEgcmVnaXN0cnkgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChfZ3N0X2NyYzMyKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBBZGQgY3JjMzIgY2hlY2tzdW0gdG8gdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlIGFuZCBjaGVjayB0aGlzIGJlZm9yZQoJICBhY2NlcHRpbmcgYSByZWdpc3RyeSBmaWxlLgoJICBBbHNvIGZyZWUgdGhlIGRhdGEgbGlzdCB3aGVuIHdyaXRpbmcgdG8gdGhlIHJlZ2lzdHJ5IGZpbGUgZmFpbHMuCgoyMDA4LTA0LTE2IDEzOjE2OjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgYW4gZWxlbWVudCBzdXBwb3J0cyB0aGUgVXJpIGludGVyZmFjZSwgcmV0dXJucyBhIHZhbGlkIHBvaW50ZXIgdG8gdGhlIHN1cHBvcnRlZCBVUkkgcHJvdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgSWYgYW4gZWxlbWVudCBzdXBwb3J0cyB0aGUgVXJpIGludGVyZmFjZSwgcmV0dXJucyBhIHZhbGlkIHBvaW50ZXIKCSAgdG8gdGhlIHN1cHBvcnRlZCBVUkkgcHJvdG9jb2xzIGJ1dCB0aGlzIHBvaW50ZXIgY29udGFpbnMgbm90aGluZwoJICBkb24ndCB0cnkgdG8gc2F2ZSB0aGF0IGFzIGl0IHdpbGwgY29ycnVwdCB0aGUgcmVnaXN0cnkuCgkgIERvbid0IHVucmVmIHRoZSBwbHVnaW4gaWYgd2UgYWRkZWQgaXQgdG8gdGhlIHJlZ2lzdHJ5IGFscmVhZHkgYnV0CgkgIGZhaWwgdG8gbG9hZCBhIGZlYXR1cmUgYXMgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSB0YWtlcyBvd25lcnNoaXAKCSAgb2YgdGhlIHBsdWdpbi4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgoyMDA4LTA0LTE2IDA4OjMwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBDbGFyaWZ5IHNvbWUgdGFnIGl0ZW0gZG9jcyBhZnRlciBkaXNjdXNzaW9uIG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQ2xhcmlmeSBzb21lIHRhZyBpdGVtIGRvY3MgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiBpcmMuCgoyMDA4LTA0LTE1IDA2OjIzOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgY29tbWVudGVkIG91dCBwbHVnaW5zICh0aGV5IGhhdmUgdGhlaXIgb3duIGRvY3MpLiBVcGRhdGUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJlbW92ZSBjb21tZW50ZWQgb3V0IHBsdWdpbnMgKHRoZXkgaGF2ZSB0aGVpciBvd24gZG9jcykuIFVwZGF0ZQoJICBjb21tZW50cy4KCjIwMDgtMDQtMTUgMDY6MTY6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBHU1RfUEFSQU1fQ09OVFJPTExBQkxFIGFuZCBHU1RfUEFSQU1fVVNFUl9TSElGVC4gTW92ZSBwYXJhbXNwZWMgZG9jcyB0byBvd24gc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgQWRkIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUgYW5kIEdTVF9QQVJBTV9VU0VSX1NISUZULiBNb3ZlIHBhcmFtc3BlYwoJICBkb2NzIHRvIG93biBzZWN0aW9uLgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBUaGlzIG5vdyBvbmx5IGRvY3VtZW50cyBHVmFsdWUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgUmVtb3ZlIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUuCgoyMDA4LTA0LTE1IDA1OjU0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogQ29ycmVjdCBmaWxlIHBhdGguIFRlbGwgYWJvdXQgaG93IHRvIHVzZSAtb3ZlcnJpZGVzLnR4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIENvcnJlY3QgZmlsZSBwYXRoLiBUZWxsIGFib3V0IGhvdyB0byB1c2UgLW92ZXJyaWRlcy50eHQuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIFNtYWxsIGRlc2lnbiB1cGRhdGUuCgoyMDA4LTA0LTE0IDEyOjEyOjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IGEgdHlwbyBpbiBhIGRlYnVnIG1lc3NhZ2UgYW5kIHJldmVydCBjaGFuZ2UgZnJvbSB5ZXN0ZXJkYXkgYXMgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgRml4IGEgdHlwbyBpbiBhIGRlYnVnIG1lc3NhZ2UgYW5kIHJldmVydCBjaGFuZ2UgZnJvbSB5ZXN0ZXJkYXkgYXMKCSAgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSB3aWxsIG9ubHkgZmFpbCBpZiBzb21ldGhpbmcgaXMgcmVhbGx5IHdyb25nCgkgIGFscmVhZHkgYW5kIHdlIGNhbid0IHN1cnZpdmUgaXQgYW55d2F5LgoKMjAwOC0wNC0xNCAwODo0ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUHJlLXJlZ2lzdGVyIEdzdEdFcnJvciBHVHlwZSBmcm9tIGEgdGhyZWFkLXNhZmUgY29udGV4dCAoZml4ZXMgIzUyNzk2Nyk7IHVucmVmIGVudW0gdHlwZSBjbGFzc2VzIGluIGRlaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpOgoJICBQcmUtcmVnaXN0ZXIgR3N0R0Vycm9yIEdUeXBlIGZyb20gYSB0aHJlYWQtc2FmZSBjb250ZXh0CgkgIChmaXhlcyAjNTI3OTY3KTsgdW5yZWYgZW51bSB0eXBlIGNsYXNzZXMgaW4gZGVpbml0LgoKMjAwOC0wNC0xMyAxOTo1ODo0MyArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBNZXJnaW5nIGFuIGVtcHR5IGxpc3Qgd2l0aCBhbm90aGVyIGxpc3QgaW4gS0VFUF9BTEwgbW9kZSBzaG91bGQgeWllbGQgYW4gZW1wdHkgbGlzdCBhcyByZXN1bHQgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuZSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpOgoJICBNZXJnaW5nIGFuIGVtcHR5IGxpc3Qgd2l0aCBhbm90aGVyIGxpc3QgaW4gS0VFUF9BTEwgbW9kZSBzaG91bGQKCSAgeWllbGQgYW4gZW1wdHkgbGlzdCBhcyByZXN1bHQgYW5kIG5vdCB0aGUgc2Vjb25kIGxpc3QgKCM1MTI1NzgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGFnIG1lcmdlIG1vZGVzIGFuZCB0aGUgYWZvcmVtZW50aW9uZWQgYnVnLgoKMjAwOC0wNC0xMyAxODo1MDowNSArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IGRlc2NyaXB0aW9uIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgdGFibGUgKCM1MTI1NzcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbmUgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggZGVzY3JpcHRpb24gdG8gbWF0Y2ggdGhlIG9yZGVyIGluIHRoZSB0YWJsZSAoIzUxMjU3NykuCgoyMDA4LTA0LTEzIDE3OjUxOjAyICswMDAwICBLd2FuZyBZdWwgU2VvIDxrd2FuZ3l1bC5zZW8uZ21haWwuY29tPgoKCSAgRGVmaW5lIHNvY2tsZW5fdCBhcyBpbnQgaWYgaXQncyBub3QgZGVmaW5lZCB5ZXQuIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTVNWQzYgYW5kIG90aGVyIHZlcnNpb25zIHdoZXJlIHNvY2tsZW5fdCBpcyBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS3dhbmcgWXVsIFNlbyAgPGt3YW5neXVsLnNlbyBnbWFpbCBjb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBEZWZpbmUgc29ja2xlbl90IGFzIGludCBpZiBpdCdzIG5vdCBkZWZpbmVkIHlldC4gRml4ZXMgY29tcGlsYXRpb24KCSAgd2l0aCBNU1ZDNiBhbmQgb3RoZXIgdmVyc2lvbnMgd2hlcmUgc29ja2xlbl90IGlzIG5vdCBkZWZpbmVkIGluCgkgIHRoZSB3aW5kb3dzIGhlYWRlcnMgKCM1MTgwMjIpLgoKMjAwOC0wNC0xMyAxMzo1NDo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgZmFpbHMgb3VyIHJlZmVyZW5jZSB0byB0aGUgcGx1Z2luIGlzIGludmFsaWQgc28gZG9uJ3QgdHJ5IHRvIHVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIElmIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgZmFpbHMgb3VyIHJlZmVyZW5jZSB0byB0aGUgcGx1Z2luIGlzCgkgIGludmFsaWQgc28gZG9uJ3QgdHJ5IHRvIHVzZSBpdCBhbnltb3JlIGFuZCBpbnN0ZWFkIGVycm9yIG91dC4KCjIwMDgtMDQtMTIgMjA6NTI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QteG1saW5zcGVjdC5jOiBEZS1jcnVmdCBhIGJpdC4gSWYgbm8gYXJndW1lbnQgaXMgc3BlY2lmaWVkLCBwcmludCBhbGwgZWxlbWVudHMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyksIChtYWluKToKCSAgRGUtY3J1ZnQgYSBiaXQuIElmIG5vIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgcHJpbnQgYWxsIGVsZW1lbnRzIGluCgkgIFhNTCBzeW50YXggcmF0aGVyIHRoYW4gYSBmcmVlc3R5bGUgbGlzdCBvZiBlbGVtZW50cyBsaWtlIGdzdC1pbnNwZWN0LgoJICBBbHNvLCBkb24ndCBwcmludCBYTUwgaGVhZGVyIGNodW5rIHVubGVzcyB3ZSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZwoJICB0byBwcmludCAoaWUuIGRvbid0IHByaW50IGl0IGJlZm9yZSBhbiBlcnJvciBtZXNzYWdlKTsgcHJpbnQgZXJyb3IKCSAgbWVzc2FnZSB0byBzdGRlcnIgbm90IHN0ZG91dC4gUmVtb3ZlIHN1cHBvcnQgZm9yIHByaW50aW5nIHBsdWdpbgoJICBpbmZvIChpdCB3b3VsZCBqdXN0IG91dHB1dCBzb21ldGhpbmcgZnJlZXN0eWxlIGFsb25nIHRoZSBsaW5lcyBvZgoJICBnc3QtaW5zcGVjdCBzbyBmYXIpLCB3aGljaCBmaXhlcyAjNTE0NTA3LiBBbHNvIGFkZCBsaWNlbnNlIGhlYWRlci4KCjIwMDgtMDQtMTEgMDk6Mjc6NDQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgTWFjIE9TIFggbG92ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0xMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgTWFjIE9TIFggbG92ZS4uLgoJICAqIGNvbmZpZ3VyZS5hYzogTWVyZ2UgcGxhdGZvcm0gc3BlY2lmaWMgZGVmaW5lcywgaW50cm9kdWNlIGEgbmV3CgkgIGRlZmluZSBvbiBPUyBYIHRvIHJlbWVtYmVyIHRoYXQgZm9ya2luZyB3aGVuIHVwZGF0aW5nIHJlZ2lzdHJ5IGlzCgkgIHVuc2FmZS4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFVwZGF0ZWQgdG8gaW5jbHVkZSBnc3QtbGlicyBpbiB0aGUgYmFkCgkgIG1vZHVsZS4KCSAgKiBnc3QvZ3N0LmM6IERvbid0IGZvcmsgd2hlbiB1cGRhdGluZyByZWdpc3RyeSBpZiBHU1RfSEFWRV9VTlNBRkVfRk9SSwoJICBpcyBkZWZpbmVkLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6IEZpeGVkIGEgYm9ndXMKCSAgY29uZGl0aW9uIHRoYXQgbGVhZHMgdG8gYWJzb2x1dGVseSBubyBwbHVnaW5zIGJlaW5nIHJlZ2lzdGVyZWQgb24KCSAgT1MgWC4KCjIwMDgtMDQtMTAgMjA6NDY6NTEgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBBZGQgZ3N0X3BhZF9hZGRfKl9wcm9iZV9mdWxsKCkgZnVuY3Rpb25zIHdpdGggYSBub3RpZnkgY2FsbGJhY2sgdGhhdCBsZXRzIHRoZSBjYWxsZXIgZnJlZSB0aGUgZGF0YSBpdCBwYXNzZXMgdG8gdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wYWRfYWRkXypfcHJvYmVfZnVsbCgpIGZ1bmN0aW9ucyB3aXRoIGEgbm90aWZ5IGNhbGxiYWNrIHRoYXQKCSAgbGV0cyB0aGUgY2FsbGVyIGZyZWUgdGhlIGRhdGEgaXQgcGFzc2VzIHRvIHRoZSBwcm9iZSBmdW5jdGlvbnMuIFRoaXMKCSAgaXMgdXNlZnVsIGZvciBiaW5kaW5ncyBzdWNoIGFzIGdzdC1weXRob24gb3IgZ3N0cmVhbWVybW0gKCM1MjY4MTQpLgoJICBBUEk6IGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbAoJICBBUEk6IGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsCgkgIEFQSTogZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbAoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBBZGQgbWluaW1hbCB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIGZyZWVpbmcgdGhlIGRhdGEgYWN0dWFsbHkgd29ya3MKCSAgYXMgZXhwZWN0ZWQuCgkgICogdGVzdHMvYmVuY2htYXJrcy8uY3ZzaWdub3JlOgoJICBSYW5kb20gY3ZzaWdub3JlIGFkZGVuZHVtLgoKMjAwOC0wNC0xMCAxOToxMzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IE1lbnRpb24gR3N0RGVidWdHcmFwaERldGFpbHMgZW51bSB0eXBlIGluIGRvYyBibHVyYiBzbyB3ZSBnZXQgYSBsaW5rIHRvIGl0IGluIHRoZSBkb2NzIChzaW5jZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOiAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKSwKCSAgKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUpOgoJICBNZW50aW9uIEdzdERlYnVnR3JhcGhEZXRhaWxzIGVudW0gdHlwZSBpbiBkb2MgYmx1cmIgc28gd2UgZ2V0IGEgbGluawoJICB0byBpdCBpbiB0aGUgZG9jcyAoc2luY2UgdGhlc2UgYXJlIG1hY3JvcyB0aGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cwoJICB3b24ndCBiZSBzaG93biBpbiB0aGUgZG9jcyBvdGhlcndpc2UpLgoKMjAwOC0wNC0xMCAxNDoxMDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBEbyBub3QgYWJvcnQgb24gb3V0IG9mIG1lbW9yeSBmb3IgcGFkX2FsbG9jX2J1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBEbyBub3QgYWJvcnQgb24gb3V0IG9mIG1lbW9yeSBmb3IgcGFkX2FsbG9jX2J1ZmZlci4KCjIwMDgtMDQtMTAgMTM6NTk6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IFJlbW92ZSBibGFuayBsaW5lIGJldHdlZW4gc3ltYm9sIG5hbWUgYWQgcGFyYW1ldGVycyB0byBmaXggZ3RrZG9jIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIFJlbW92ZSBibGFuayBsaW5lIGJldHdlZW4gc3ltYm9sIG5hbWUgYWQgcGFyYW1ldGVycyB0byBmaXggZ3RrZG9jCgkgIHdhcm5pbmcuCgoyMDA4LTA0LTA5IDIyOjM3OjIyICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgRXhwb3NlIGdzdF9zZWdtZW50X2NvcHkoKSB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIHRoZSBjKysgYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRXhwb3NlIGdzdF9zZWdtZW50X2NvcHkoKSB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIHRoZSBjKysgYmluZGluZ3MuCgkgIEZpeGVzICM1MTg5MzIuCgkgIEFQSTogZ3N0X3NlZ21lbnRfY29weSgpCgoyMDA4LTA0LTA5IDIxOjI3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggY29uc3QgcG9zaXRpb247IHJlZiBHVHlwZSBjbGFzc2VzIGZvciBlbnVtIHR5cGVzIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIEdMaWIgdmVyc2lvbnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoaW5pdF9wb3N0KToKCSAgRml4IGNvbnN0IHBvc2l0aW9uOyByZWYgR1R5cGUgY2xhc3NlcyBmb3IgZW51bSB0eXBlcyB0byB3b3JrCgkgIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHTGliIHZlcnNpb25zIDwgMi4xNi4KCjIwMDgtMDQtMDkgMTg6MjY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6IEZpeCBzb21lIHR5cG9zIGFuZCBzZXQgdGhlIGVzdGltYXRlZCB0b3RhbCBmb3IgcHVzaCBtb2RlIHRvIC0xLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIEZpeCBzb21lIHR5cG9zIGFuZCBzZXQgdGhlIGVzdGltYXRlZCB0b3RhbCBmb3IgcHVzaCBtb2RlIHRvIC0xLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpOgoJICBTZXQgYnVmZmVyaW5nLWxlZnQgdG8gMCBhcyB3ZSdyZSBub3QgYnVmZmVyaW5nIGJ5IGRlZmF1bHQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEltcGxlbWVudCBCVUZGRVJJTkcgcXVlcnkuCgoyMDA4LTA0LTA5IDE3OjM0OjU0ICswMDAwICBNaWxvc3ogRGVyZXp5bnNraSA8aW50ZXJuYWxlcnJvckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIHR3byBuZXcgZXJyb3IgY29kZXMgZm9yIGVuY3J5cHRlZCBjb250ZW50LiBGaXhlcyAjNTI0NjU5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IE1pbG9zeiBEZXJlenluc2tpIDxpbnRlcm5hbGVycm9yIGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIHR3byBuZXcgZXJyb3IgY29kZXMgZm9yIGVuY3J5cHRlZCBjb250ZW50LiBGaXhlcyAjNTI0NjU5LgoJICBBUEk6IEdTVF9TVFJFQU1fRVJST1JfREVDUllQVAoJICBBUEk6IEdTVF9TVFJFQU1fRVJST1JfREVDUllQVF9OT0tFWQoKMjAwOC0wNC0wOSAxMzoxNTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RxdWVyeS5oOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZpeCB0eXBvLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9ucy4KCjIwMDgtMDQtMDkgMDg6MTk6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRml4IGltcGVyZmVjdCB0aW1lc3RhbXAvb2Zmc2V0IGNoZWNrcyB3aGVuIHdlIGdldCBhbm90aGVyIE5FV1NFR01FTlQgZXZlbnQgYWZ0ZXIgcHJvYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3N0YXJ0KToKCSAgRml4IGltcGVyZmVjdCB0aW1lc3RhbXAvb2Zmc2V0IGNoZWNrcyB3aGVuIHdlIGdldCBhbm90aGVyIE5FV1NFR01FTlQKCSAgZXZlbnQgYWZ0ZXIgcHJvY2Vzc2luZyBzb21lIGRhdGEuIEZpeGVzIGJ1ZyAjNTI2MDQyLgoKMjAwOC0wNC0wOCAyMDoyODoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJlbmFtZSBfYXZhaWwgLT4gX3JhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19yYW5nZSksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVuYW1lIF9hdmFpbCAtPiBfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcmFuZ2UKCjIwMDgtMDQtMDggMjA6MTc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgYnVzeSBmaWVsZCBhbmQgcXVhcmsgZm9yIHRoZSBidWZmZXJpbmcgcXVlcnkgc28gdGhhdCB0aGUgYXBwIGNhbiBvbmx5IHVzZSB0aGUgcXVlcnkgdG8gc2VlIGlmIGJ1ZmZlcmluZyBpcyBpbiBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpLCAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgYnVzeSBmaWVsZCBhbmQgcXVhcmsgZm9yIHRoZSBidWZmZXJpbmcgcXVlcnkgc28gdGhhdCB0aGUgYXBwIGNhbgoJICBvbmx5IHVzZSB0aGUgcXVlcnkgdG8gc2VlIGlmIGJ1ZmZlcmluZyBpcyBpbiBwcm9ncmVzcy4KCjIwMDgtMDQtMDggMTk6NTk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZW9yZGVyIHRoZSBtZXNzYWdlIGRvY3MgYW5kIGhlYWRlcnMgZm9yIGNsYXJpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3NldF9idWZmZXJpbmdfc3RhdHMpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nX3N0YXRzKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KSwgKGdzdF9xdWVyeV9zZXRfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksIChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19zdGF0cyksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3N0YXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX2F2YWlsKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfYXZhaWwpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW9yZGVyIHRoZSBtZXNzYWdlIGRvY3MgYW5kIGhlYWRlcnMgZm9yIGNsYXJpdHkuCgkgIEFkZCBhZGl0aW9uYWwgYnVmZmVyaW5nIHN0YXRzIEFQSSBmb3IgbWVzc2FnZXMuCgkgIEFkZCBidWZmZXJpbmcgcXVlcnkuCgkgIENvbnZlcnQgc29tZSBsZWZ0b3ZlciBxdWVyaWVzIHRvIHVzZSBHc3RRdWFyay4KCSAgQVBJOiBnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogR1NUX1FVRVJZX0JVRkZFUklORwoJICBBUEk6IEdzdEJ1ZmZlcmluZ01vZGUKCSAgQVBJOiBnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZwoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19hdmFpbAoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfYXZhaWwKCjIwMDgtMDQtMDggMTk6NTI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBVc2UgR3N0UXVhcmsgZm9yIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld19pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayksIChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYXN5bmNfc3RhcnQpOgoJICBVc2UgR3N0UXVhcmsgZm9yIG1lc3NhZ2VzLgoKMjAwOC0wNC0wOCAxOTozOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWFyay4qOiBBZGQgc29tZSBtb3JlIHF1YXJrcyBuZWVkZWQgZm9yIG1lc3NhZ2VzIGFuZCBxdWVyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIG5lZWRlZCBmb3IgbWVzc2FnZXMgYW5kIHF1ZXJpZXMuCgoyMDA4LTA0LTA4IDE5OjE0OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OiBSZW1vdmUgdGhlICJub25lIiBidWZmZXJpbmcgbW9kZSwgU1RSRUFNIGlzIGEgZ29vZCBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIFJlbW92ZSB0aGUgIm5vbmUiIGJ1ZmZlcmluZyBtb2RlLCBTVFJFQU0gaXMgYSBnb29kIGRlZmF1bHQuCgkgIE1vdmUgZXN0aW1hdGVkLXRpbWUgdG8gdGhlIGF2YWlsIHF1ZXJ5LCB0aGF0J3Mgd2hlbiBpdCB3aWxsIGJlIG5lZWRlZC4KCSAgT3RoZXIgc21hbGwgdHlwbyBmaXhlcyBhbmQgdXBkYXRlcy4KCjIwMDgtMDQtMDcgMTM6Mjc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguYzogRG9uJ3QgcHV0IGRlc2NyaXB0aW9ucyBpbnRvIHRoZSBuaWNrIGZpZWxkIG9mIGEgR0VudW1WYWx1ZTogaXQncyBub3QgbWVhbnQgZm9yIHRoYXQgYW5kIHNvbWUgbGFuZ3VhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfcmVzb2x2ZXJfZ2V0X3R5cGUpOgoJICBEb24ndCBwdXQgZGVzY3JpcHRpb25zIGludG8gdGhlIG5pY2sgZmllbGQgb2YgYSBHRW51bVZhbHVlOiBpdCdzIG5vdAoJICBtZWFudCBmb3IgdGhhdCBhbmQgc29tZSBsYW5ndWFnZSBiaW5kaW5ncyByZWx5IG9uIHRoZSBuaWNrIGZpZWxkIHRvCgkgIGNvbnN0cnVjdCBjb25zdGFudHMgYW5kIHRoZSBsaWtlLiBGaXhlcyAjNTI2NzA1LgoKMjAwOC0wNC0wNyAxMDo0ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1lcmdlIG90aGVyIGNoYW5nZXMgZnJvbSAwLjEwLjE5IHJlbGVhc2UgYnJhbmNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBORVdTOgoJICAqIFJFTEVBU0U6CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgIE1lcmdlIG90aGVyIGNoYW5nZXMgZnJvbSAwLjEwLjE5IHJlbGVhc2UgYnJhbmNoLgoKMjAwOC0wNC0wNiAwODo1NDo0NyArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWN0dWFsbHkgYnVpbGQgZGxscyB3aGVuIGNyb3NzLWNvbXBpbGluZyB3aXRoIG1pbmd3MzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbiBkb3QgbGVzcGlhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWN0dWFsbHkgYnVpbGQgZGxscyB3aGVuIGNyb3NzLWNvbXBpbGluZyB3aXRoIG1pbmd3MzIuCgkgIEZpeGVzIGJ1ZyAjNTI2MjQ3LgoKMjAwOC0wNC0wNSAxMDo1ODoxMSArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLmM6IEZpeCBjb21waWxhdGlvbiBvZiBHc3RQb2xsIHdpdGggbWluZ3czMi4gRml4ZXMgYnVnICM1MjYyMzYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbiBkb3QgbGVzcGlhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBHc3RQb2xsIHdpdGggbWluZ3czMi4gRml4ZXMgYnVnICM1MjYyMzYuCgoyMDA4LTA0LTA0IDEzOjQzOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgRml4IHR5cG8uCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBVcGRhdGUgZGVzaWduIGRvY3Mgd2l0aCBtb3JlIGJ1ZmZlcmluZyBpZGVhcy4KCjIwMDgtMDQtMDMgMjE6MTU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiB0byAwLjEwLjE5LjEgYWZ0ZXIgdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gdG8gMC4xMC4xOS4xIGFmdGVyIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgoyMDA4LTA0LTAzIDE2OjQ1OjAyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgdG8gd29yayB3aXRoIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIHRvIHdvcmsgd2l0aCBkb2NzCgoyMDA4LTA0LTAzIDE0OjQ5OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFJldmVydCBwYXJ0IHRoYXQgYmVsb25ncyB0byB0aGUgcHJlc2V0IHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCBwYXJ0IHRoYXQgYmVsb25ncyB0byB0aGUgcHJlc2V0IHBhdGNoLgoKMjAwOC0wNC0wMyAxNDoyNjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBBZGQgcW91dGVzIHRvIHRoZSBkZWZpbmUuIEZpeGVzICMgNTI1OTYxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBxb3V0ZXMgdG8gdGhlIGRlZmluZS4gRml4ZXMgIyA1MjU5NjEuCgoyMDA4LTA0LTAzIDA3OjUyOjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzLzogVXNlIEdTbGljZSB3aGVuIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoX2ZpbGVfaW5kZXhfaWRfZnJlZSksCgkgIChnc3RfZmlsZV9pbmRleF9sb2FkKSwgKGdzdF9maWxlX2luZGV4X2FkZF9pZCksCgkgIChnc3RfZmlsZV9pbmRleF9nZXRfYXNzb2NfZW50cnkpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfZnJlZV9mb3JtYXQpLAoJICAoZ3N0X21lbV9pbmRleF9mcmVlX2lkKSwgKGdzdF9tZW1faW5kZXhfYWRkX2lkKSwKCSAgKGdzdF9tZW1faW5kZXhfaW5kZXhfZm9ybWF0KToKCSAgVXNlIEdTbGljZSB3aGVuIHBvc3NpYmxlLgoKMjAwOC0wNC0wMiAxNzo0NTowOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBjb250cm9sIHBvaW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJuYWwpOgoJICBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBjb250cm9sIHBvaW50cy4KCjIwMDgtMDQtMDIgMTc6MjE6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBDbGVhbnVwIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBDbGVhbnVwIHByb3BlcnRpZXMuCgkgIEZpeCBwYWQgbGVhayB3aGVuIHBlZXIgcXVlcnkgZmFpbHMuCgkgIFdlIGNhbiBzdGlsbCB0eXBlZmluZCB3aGVuIHRoZSBwZWVyIHJldHVybnMgLTEuCgkgIEFkZCBwcm9wZXJ0eSB0byBmb3JjZSBjYXBzIGFuZCBieXBhc3MgdHlwZWZpbmRpbmcuIFRoaXMgd2lsbCBiZSB1c2VkIGluCgkgIHVyaWRlY29kZWJpbi4KCSAgQVBJOjpmb3JjZS1jYXBzCgoyMDA4LTA0LTAxIDEzOjU1OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYiAyLjEyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYiAyLjEyLgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX25ld19lbXB0eSksIChfZ3N0X2NhcHNfZnJlZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIFVuY29uZGl0aW9uYWxseSB1c2UgR1NsaWNlIGZvciBhbGxvY2F0aW9uLgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X25ldyksIChnc3Rfc2VnbWVudF9mcmVlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcmVlKToKCSAgVXNlIEdTbGljZSBmb3IgYWxsb2NhdGlvbi4KCjIwMDgtMDQtMDEgMTM6NDg6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS86IFJlcXVpcmUgYSBuZXcgZW5vdWdoIGZsZXggYW5kIGJpc29uIGFuZCByZW1vdmUgdGhlIHBhcnNlciBoYWNrcyB0byB1c2UgYSBwcmUtcmVnZW5lcmF0ZWQgdmVyc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBSZXF1aXJlIGEgbmV3IGVub3VnaCBmbGV4IGFuZCBiaXNvbiBhbmQgcmVtb3ZlIHRoZSBwYXJzZXIgaGFja3MgdG8gdXNlCgkgIGEgcHJlLXJlZ2VuZXJhdGVkIHZlcnNpb24uCgoyMDA4LTA0LTAxIDEwOjI1OjM1ICswMDAwICBKYXNvbiBaaGFvIDxFMzQyM0NAbW90b3JvbGEuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgYSBjb25maWd1cmUgc3dpdGNoIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcgaW4gZ3N0X2luaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA0LTAxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICBwYXRjaCBieTogSmFzb24gWmhhbyA8RTM0MjNDQG1vdG9yb2xhLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6IEFkZCBhIGNvbmZpZ3VyZSBzd2l0Y2ggdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZwoJICBpbiBnc3RfaW5pdC4KCSAgRml4ZXMgIzUyMjg4Mi4KCjIwMDgtMDMtMzEgMTM6NDc6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1hY09TIGhhcyBwbHVnaW5zIHVuZGVyIC5zbyBvciB1bmRlciAuZHlsaWIuIEFkZCBkZXRlY3Rpb24gZm9yIE1hY09TIGFuZCBoYW5kbGUgdGhpcyBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE1hY09TIGhhcyBwbHVnaW5zIHVuZGVyIC5zbyBvciB1bmRlciAuZHlsaWIuIEFkZCBkZXRlY3Rpb24gZm9yIE1hY09TCgkgIGFuZCBoYW5kbGUgdGhpcyBjYXNlLgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIGEgY29tbWVudCBoZXJlIGRlc2NyaWJpbmcsIHdoeSB3ZSBzdGF0IGVhY2ggcGx1Z2luIGFuZCBub3QgdHJ5IHRvCgkgIGJlIHNtYXJ0LgoKMjAwOC0wMy0zMSAxMDoyMTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFsc28gdW5zZXQgdGhlIEdBUCBmbGFnIG9uIGJ1ZmZlcnMgaWYgd2UncmUgd29ya2luZyBpbnBsYWNlIGJ1dCB0aGUgZWxlbWVudCBpcyBub3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIEFsc28gdW5zZXQgdGhlIEdBUCBmbGFnIG9uIGJ1ZmZlcnMgaWYgd2UncmUgd29ya2luZyBpbnBsYWNlIGJ1dAoJICB0aGUgZWxlbWVudCBpcyBub3QgR0FQLWF3YXJlLgoJICBNYXJrIGEgY29tbWVudCBhcyBGSVhNRSAwLjExLgoKMjAwOC0wMy0zMSAwODozMjoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggdHlwZSBpbiBsb2cgbWVzc2FnZSBhbmQgYWRkIG9uZSB0byBlYXNlIHNlZWluZyBob3cgbG9uZyByZWdpc3RyeSBjYWNoZSB2ZXJpZmljYXRpb24gdGFrZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IHR5cGUgaW4gbG9nIG1lc3NhZ2UgYW5kIGFkZCBvbmUgdG8gZWFzZSBzZWVpbmcgaG93IGxvbmcgcmVnaXN0cnkKCSAgY2FjaGUgdmVyaWZpY2F0aW9uIHRha2VzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBPbmx5IHRlc3QgcGx1Z2luIGZpbGVuYW1lcyBhZ2FpbnN0IEdfTU9EVUxFX1NVRkZJWC4KCjIwMDgtMDMtMzEgMDc6NDk6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEltcHJvdmUgaGFuZGxpbmcgZ2hvc3QvcHJveHkgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgSW1wcm92ZSBoYW5kbGluZyBnaG9zdC9wcm94eSBwYWRzLgoKMjAwOC0wMy0yNyAxOToxMzo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRXhwb3NlIG1hY3JvIHRvIGRvY3MgYW5kIGZpeCBsaW5rIHRvIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEV4cG9zZSBtYWNybyB0byBkb2NzIGFuZCBmaXggbGluayB0byBpdC4KCjIwMDgtMDMtMjcgMTU6MjM6NTUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogV2hlbiBjYWxjdWxhdGluZyBHRFAgYm9keSBDUkMsIHVzZSB0aGUgY29ycmVjdCBwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKToKCSAgV2hlbiBjYWxjdWxhdGluZyBHRFAgYm9keSBDUkMsIHVzZSB0aGUgY29ycmVjdCBwb2ludGVyLgoJICBGaXhlcyBwYXJ0IG9mICM1MjI0MDEuCgoyMDA4LTAzLTI0IDE2OjU2OjM2ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBJZGVudGl0eSBpcyBub3QgYWx3YXlzIGEgcGFzc3Rocm91Z2ggZWxlbWVudCwgaXQgY2FuIG1vZGlmeSB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgSWRlbnRpdHkgaXMgbm90IGFsd2F5cyBhIHBhc3N0aHJvdWdoIGVsZW1lbnQsIGl0IGNhbiBtb2RpZnkgdGhlIGJ1ZmZlcgoJICB0aW1lc3RhbXBzIHdoZW4gaXQgaGFzIGEgZGF0YXJhdGUgYW5kIG9wZXJhdGVzIGluIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIFdlIHRoZXJlZm9yZSBtYWtlIGl0IGFuIGluX3BsYWNlIGZpbHRlciB3aXRoIGEgY3VzdG9tIGJ1ZmZlciBwcmVwYXJlCgkgIGZ1bmN0aW9uIHRoYXQgY29uZGl0aW9uYWxseSBtYWtlcyB0aGUgaW5wdXQgYnVmZmVyIG1ldGFkYXRhIHdyaXRhYmxlCgkgIHdoZW4gbmVlZGVkLiAgRml4ZXMgIzUyMzk4NS4KCjIwMDgtMDMtMjQgMTY6NDQ6MjUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLiBGaXhlcyAjNTIzOTc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4gRml4ZXMgIzUyMzk3OC4KCjIwMDgtMDMtMjQgMTY6MzE6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxzbyByZXRyeSBvdXIgcG9sbF93YWl0IHdoZW4gd2UgZ2V0IEVBR0FJTi4gRml4ZXMgIzUyNDA0MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBbHNvIHJldHJ5IG91ciBwb2xsX3dhaXQgd2hlbiB3ZSBnZXQgRUFHQUlOLiBGaXhlcyAjNTI0MDQxLgoKMjAwOC0wMy0yNCAxMDozODozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIHRyeWluZyB0byBtYWtlIHJvb20gaW4gdGhlIHF1ZXVlLCBidW1wIHRoZSBtYXggYWxsb3dlZCBidWZmZXJzIGJpZ2dlciB0aGFuIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYik6CgkgIFdoZW4gdHJ5aW5nIHRvIG1ha2Ugcm9vbSBpbiB0aGUgcXVldWUsIGJ1bXAgdGhlIG1heCBhbGxvd2VkIGJ1ZmZlcnMKCSAgYmlnZ2VyIHRoYW4gdGhlIGN1cnJlbnQgYW1vdW50IG9mIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlLiB0aGlzIGZpeGVzIHNvbWUKCSAgbmFzdHkgZGVhZGxvY2tzIGluIG11bHRpcXVldWUgd2hlbiBkeW5hbWljYWxseSBjaGFuZ2luZyB0aGUgbGltaXRzIG9mCgkgIHRoZSBxdWV1ZS4KCjIwMDgtMDMtMjQgMTA6MzM6NDEgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBDb25zdGlmeSB0aGUgZmllbGQgZ2NoYXIgKiBwYXJhbXMgaW4gc2V0X3NpbXBsZSBhbmQgZnJpZW5kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zZXRfc2ltcGxlKSwKCSAgKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwgKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQ29uc3RpZnkgdGhlIGZpZWxkIGdjaGFyICogcGFyYW1zIGluIHNldF9zaW1wbGUgYW5kIGZyaWVuZHMuCgkgIEZpeGVzICM1MjIzMjYuCgoyMDA4LTAzLTI0IDEwOjI5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFRyYW5zZm9ybSBhIEdzdE9iamVjdCB0byBhIG1vcmUgbWVhbmluZ2Z1bGwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgdGhlIG9iamVjdCB0eXBlIGluIGFkZGl0aW9uIHRvIGl0cyBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9vYmplY3Rfc3RyaW5nKToKCSAgVHJhbnNmb3JtIGEgR3N0T2JqZWN0IHRvIGEgbW9yZSBtZWFuaW5nZnVsbCBzdHJpbmcgdGhhdCBpbmNsdWRlcyB0aGUKCSAgb2JqZWN0IHR5cGUgaW4gYWRkaXRpb24gdG8gaXRzIG5hbWUuCgoyMDA4LTAzLTIzIDE1OjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBidWdudW1iZXIgdG8gY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBidWdudW1iZXIgdG8gY29tbWl0LgoKMjAwOC0wMy0yMyAxNDoyNDo0OCArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSk6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDMtMjMgMTE6NDA6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBSZW5hbWUgY29uc3RhbnQgZXZlcnl3aGVyZSBhbmQgZG9uJ3QgZm9yZ2V0IG9uZSBvY2N1cmVuY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSk6CgkgIFJlbmFtZSBjb25zdGFudCBldmVyeXdoZXJlIGFuZCBkb24ndCBmb3JnZXQgb25lIG9jY3VyZW5jZS4KCjIwMDgtMDMtMjMgMTE6Mjk6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBldmVuIGlmIHRoZSBhcmNoaXRlY3R1cmUgYWxsb3dzIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzLiBVbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpOgoJICBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBldmVuIGlmIHRoZSBhcmNoaXRlY3R1cmUgYWxsb3dzCgkgIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzLiBVbmFsaWduZWQgbWVtb3J5IGFjY2VzcyB1c3VhbGx5IGNvbWVzIHdpdGgKCSAgcGVyZm9ybWFuY2UgcGVuYWxpdHkuCgoyMDA4LTAzLTIzIDExOjIzOjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgaW5zdGVhZCBvZiBhbHdheXMgMzIgYml0LiBGaXhlcyB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzc2VzIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgaW5zdGVhZCBvZiBhbHdheXMgMzIgYml0LiBGaXhlcwoJICB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzc2VzIG9uIGlhNjQgYW5kIGZyaWVuZHMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEJ1bXAgYmluYXJ5IHJlZ2lzdHJ5IGZvcm1hdCB2ZXJzaW9uIGZvciB0aGlzIGFzIGl0IGNoYW5nZXMgdGhlCgkgIGZvcm1hdCBvbiB0aG9zZSBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3QgaGF2ZSB1bmFsaWduZWQgYWNjZXNzCgkgIGFuZCA2NCBiaXQgcG9pbnRlcnMuCgoyMDA4LTAzLTIyIDE0OjU2OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEZWZpbmUgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBpZiBpdCdzIHVuZGVmaW5lZCAoR0xpYiA8IDIuMTMuMCkgYW5kIHVzZSBpdCBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9yZXN0b3JlKSwKCSAgKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9zaWdoYW5kbGVyKSwKCSAgKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9zZXR1cCksIChnc3RfY2hlY2tfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfY2xhc3NfaW5pdCk6CgkgIERlZmluZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGlmIGl0J3MgdW5kZWZpbmVkIChHTGliIDwgMi4xMy4wKSBhbmQKCSAgdXNlIGl0IGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuCgkgIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdXNhZ2UsIGZld2VyIGFsbG9jYXRpb25zIGFuZCB0aHVzIGxlc3MKCSAgbWVtb3J5IGRlZnJhZ21lbnRhdGlvbi4gRml4ZXMgYnVnICM1MjM4MDYuCgoyMDA4LTAzLTIyIDE0OjUxOjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBHU1RfSVNfUEFSQU1fU1BFQ19NSU5JX09CSkVDVCwgR1NUX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QpLAoJICAoZ3N0X3BhcmFtX3NwZWNfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBBZGQgR1NUX0lTX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QsIEdTVF9QQVJBTV9TUEVDX01JTklfT0JKRUNUCgkgIEdTVF9UWVBFX1BBUkFNX01JTklfT0JKRUNUIGFuZCBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0LiBBbHNvIG1vdmUKCSAgR3N0UGFyYW1TcGVjTWluaU9iamVjdCBpbnRvIGEgcHVibGljIGhlYWRlciBmb3IgdGhpcy4KCSAgVGhpcyBtYWtlIEdzdE1pbmlPYmplY3QgYSBiaXQgbW9yZSBjb25zaXN0ZW50IHdpdGggR09iamVjdCBhbmQgbWFrZXMKCSAgaXQgcG9zc2libGUgdG8gZXh0ZW5kIHRoZSBwYXJhbSBzcGVjcy4KCSAgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCBpcyBtYWlubHkgdXNlZnVsIGZvciBzZXRfcHJvcGVydHkgbWV0aG9kcy4KCSAgRml4ZXMgYnVnICM1MjM3OTguCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUHJpbnQgc29tZXRoaW5nIHVzZWZ1bCBmb3IgR3N0TWluaU9iamVjdCBwcm9wZXJ0aWVzIGFuZCBub3QganVzdAoJICAidW5rbm93biB0eXBlIi4KCjIwMDgtMDMtMjEgMTY6MTE6NTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENhbGwgdGhlIHZlcnNpb24gR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGFkZCBpdCB0byB0aGUgKHByaXZhdGUgcGFydCkgb2YgdGhlIGRvY3MgdG8gZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBDYWxsIHRoZSB2ZXJzaW9uIEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIgdG8gYmUgbW9yZSBjb25zaXN0ZW50CgkgIGFuZCBhZGQgaXQgdG8gdGhlIChwcml2YXRlIHBhcnQpIG9mIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQuCgoyMDA4LTAzLTIxIDE1OjUyOjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogRG9uJ3QgdXNlIEdTVF9NQUpPUk1JTk9SIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24uIEluc3RlYWQgaGFyZGNvZGUgYSB2YWx1ZSB0aGF0IG11c3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBEb24ndCB1c2UgR1NUX01BSk9STUlOT1IgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbi4gSW5zdGVhZAoJICBoYXJkY29kZSBhIHZhbHVlIHRoYXQgbXVzdCBiZSBjaGFuZ2VkIHdoZW5ldmVyIHRoZSBmb3JtYXQgY2hhbmdlcwoJICBpbiBhbiBpbmNvbXBhdGlibGUgd2F5LgoJICBBbHNvIGRvbid0IEdTVF9FUlJPUiB3aGVuIHRoZXJlIGlzIGEgdmVyc2lvbiBtaXNtYXRjaCwganVzdAoJICByZWdlbmVyYXRlIHRoZSByZWdpc3RyeSBzaWxlbnRseS4KCjIwMDgtMDMtMjEgMDA6MzU6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIGRldmVsb3BtZW50IC0gMC4xMC4xOC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtIDAuMTAuMTguMQoKPT09IHJlbGVhc2UgMC4xMC4xOCA9PT0KCjIwMDgtMDMtMjEgMDA6MjA6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTgKCjIwMDgtMDMtMjAgMjM6MjY6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDMtMTggMTI6MTc6NTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuNCBwcmUtcmVsZWFzZQoKMjAwOC0wMy0xOCAxMDo1NDo1MiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIEFkZCBuZXcgZnVuY3Rpb24gZ3N0X3BvbGxfZmRfaWdub3JlZCgpIGZvciBpbXByb3ZlZCBXaW5kb3dzIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF93aW5zb2NrX2Vycm9yX3RvX2Vycm5vKSwKCSAgKGdzdF9wb2xsX3VwZGF0ZV93aW5zb2NrX2V2ZW50X21hc2spLAoJICAoZ3N0X3BvbGxfcHJlcGFyZV93aW5zb2NrX2FjdGl2ZV9zZXRzKSwKCSAgKGdzdF9wb2xsX2NvbGxlY3Rfd2luc29ja19ldmVudHMpLCAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpLAoJICAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9pZ25vcmVkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9jaGVja19jdHJsX2NvbW1hbmRzKSwgKGdzdF9wb2xsX3dhaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb24gZ3N0X3BvbGxfZmRfaWdub3JlZCgpIGZvciBpbXByb3ZlZCBXaW5kb3dzCgkgIGNvbXBhdGliaWxpdHkuCgkgIFZhcmlvdXMgbWlub3IgZml4ZXMgYW5kIGNsZWFudXBzLiBTZWUgIzUyMDgwOC4KCjIwMDgtMDMtMTcgMTA6MjE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguKjogRG9uJ3QgZnJlZSBrZXkgc3RyaW5ncyB3aGljaCB3ZSBkb24ndCBvd24uIEZpeGVzIGNyYXNoIGluIGdzdF9pbmRleF9lbnRyeV9mcmVlKCkgKCM1MjI3NDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9lbnRyeV9mcmVlKToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgRG9uJ3QgZnJlZSBrZXkgc3RyaW5ncyB3aGljaCB3ZSBkb24ndCBvd24uIEZpeGVzIGNyYXNoIGluCgkgIGdzdF9pbmRleF9lbnRyeV9mcmVlKCkgKCM1MjI3NDEpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOiAodGVzdF9pbmRleF9lbnRyaWVzKSwKCSAgKGdzdF9pbmRleF9zdWl0ZSksIChnc3RfaW5kZXgpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA4LTAzLTExIDE0OjA5OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogUmVtb3ZlIHN5bWJvbHMgdGhhdCB3ZXJlIHJlbW92ZWQgcmVjZW50bHkuIEZpeGVzIGJ1ZyAjNTIxNzQwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIHN5bWJvbHMgdGhhdCB3ZXJlIHJlbW92ZWQgcmVjZW50bHkuIEZpeGVzIGJ1ZyAjNTIxNzQwLgoKMjAwOC0wMy0xMSAwMDoyNDoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjMgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgoyMDA4LTAzLTExIDAwOjIzOjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmVsZWFzZSAwLjEwLjE3LjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZWxlYXNlIDAuMTAuMTcuMwoKMjAwOC0wMy0wNyAxNTozOTo0NSArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIFJlbW92ZSBHc3RQb2xsTW9kZSBmcm9tIHRoZSBBUEksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbGV0IHRoZSBhcHBsaWNhdGlvbiBjb250cm9sIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChmaW5kX2luZGV4KSwgKGdzdF9wb2xsX2ZyZWVfd2luc29ja19ldmVudCksCgkgIChnc3RfcG9sbF91cGRhdGVfd2luc29ja19ldmVudF9tYXNrKSwgKGdzdF9wb2xsX25ldyksCgkgIChnc3RfcG9sbF9mcmVlKSwgKGdzdF9wb2xsX2ZkX2luaXQpLCAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX3JlbW92ZV9mZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfaGFzX2Nsb3NlZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3dyaXRlKSwgKGdzdF9wb2xsX3dhaXQpLAoJICAoZ3N0X3BvbGxfc2V0X2NvbnRyb2xsYWJsZSksIChnc3RfcG9sbF9yZXN0YXJ0KSwKCSAgKGdzdF9wb2xsX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19zdGFydCk6CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BvbGxfc3VpdGUpOgoJICBSZW1vdmUgR3N0UG9sbE1vZGUgZnJvbSB0aGUgQVBJLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGxldCB0aGUKCSAgYXBwbGljYXRpb24gY29udHJvbCB0aGlzLgoJICBBZGQgc3VwcG9ydCBmb3IgV2luMzIuCgkgIEZpeCB0aGUgdGVzdHN1aXRlLiBGaXhlcyAjNTIwNjcxLgoKMjAwOC0wMy0wNyAxMzoxOToxMiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbmNsdWRlIGlvLmggZm9yIHdyaXRlKCkgYW5kIGNsb3NlKCkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMuIEZpeGVzIGJ1ZyAjNTIwODc3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEluY2x1ZGUgaW8uaCBmb3Igd3JpdGUoKSBhbmQgY2xvc2UoKSB3aGVuIGJ1aWxkaW5nIHdpdGggTVNWQy4gRml4ZXMKCSAgYnVnICM1MjA4NzcuCgoyMDA4LTAzLTA3IDExOjEyOjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3ZlIHJlZ2lzdHJ5IGJhY2tlbmQgQVBJIHRvIHByaXZhdGUgaGVhZGVycyB3aGVyZSB3ZSBjYW4uIEFkZCBmaXhtZS0wLjExIGNvbW1lbnRzIGZvciB0aGUgb3RoZXJzLiBBZGQgc3R1YnMgZm9yIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIE1vdmUgcmVnaXN0cnkgYmFja2VuZCBBUEkgdG8gcHJpdmF0ZSBoZWFkZXJzIHdoZXJlIHdlIGNhbi4gQWRkCgkgIGZpeG1lLTAuMTEgY29tbWVudHMgZm9yIHRoZSBvdGhlcnMuIEFkZCBzdHVicyBmb3IgdGhlIHhtbCBiYWNrZW5kIHdoZW4KCSAgdXNpbmcgdGhlIGJpbmFyeSB0byBlbnN1cmUgdGhleSBmdW5jdGlvbnMgZXhpc3RzICh0aGV5IHNob3VsZCBub3QgYmUKCSAgdXNlZCB0aG91Z2gpLiBGaXhlcyAjNTIwNzU2LgoKMjAwOC0wMy0wNCAwMDoxNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjIgcHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy4yIHByZWxlYXNlCgoyMDA4LTAzLTAzIDE4OjQyOjA0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgU3dpdGNoIHRvIHVzaW5nIHBvcnRhYmwgZ3NpemUvZ3NzaXplIGluc3RlYWQgb2Ygc2l6ZV90L3NzaXplX3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZSk6CgkgICogZ3N0L2dzdHVyaS5jOiAodW5lc2NhcGVfc3RyaW5nKSwgKGdzdF91cmlfaGFzX3Byb3RvY29sKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBTd2l0Y2ggdG8gdXNpbmcgcG9ydGFibCBnc2l6ZS9nc3NpemUgaW5zdGVhZCBvZiBzaXplX3Qvc3NpemVfdAoJICBGaXhlcyAjNTIwMTUyCgoyMDA4LTAzLTAzIDE4OjE0OjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogSW1wb3J0IGdzdF9wcml2YXRlLmggYmVmb3JlIGFueSBvdGhlciBoZWFkZXIgdGhhdCBtaWdodCBpbmNsdWRlIG90aGVyIGdsaWIgaGVhZGVycy4gVGhpcyBmaXhlcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEltcG9ydCBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVyIHRoYXQgbWlnaHQgaW5jbHVkZSBvdGhlcgoJICBnbGliIGhlYWRlcnMuIFRoaXMgZml4ZXMgdGhlIGJ1aWxkIG9uIHdpbmRvd3MgdXNpbmcgbmF0aXZlIGNvbXBpbGVycy4KCjIwMDgtMDMtMDMgMTQ6NDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IEFkZCBoZXJlIHRvbywganVzdCBmb3IgY29tcGxldGVuZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIEFkZCBoZXJlIHRvbywganVzdCBmb3IgY29tcGxldGVuZXNzLgoKMjAwOC0wMy0wMyAxNDo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCBicm9rZW4gdXNlIG9mIGNvbmZpZy5oLWRlZmluZWQgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZSBpbiBhIHB1YmxpYyBoZWFkZXIgZmlsZS4gQWRkIGEgY29ycmVzcG9uZGluZyBkZWZpbmUgdG8gZ3N0Yy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBGaXggYnJva2VuIHVzZSBvZiBjb25maWcuaC1kZWZpbmVkIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgaW4gYSBwdWJsaWMKCSAgaGVhZGVyIGZpbGUuIEFkZCBhIGNvcnJlc3BvbmRpbmcgZGVmaW5lIHRvIGdzdGNvbmZpZy5oLCBzaW5jZSB3ZSBjYW4ndAoJICByZWFsbHkgcmVtb3ZlIHRob3NlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBmcm9tIHRoZSBoZWFkZXIgZmlsZSBub3cKCSAgKG9yIGNhbiB3ZT8gYW5kIHdoeSBhcmUgdGhleSB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2U/KS4KCjIwMDgtMDMtMDMgMTA6MDc6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYyAoR1NUX1NUQVJUX1RFU1QpOiBBZGQgYSBjaGVjayBmb3IgdGhlIG5ldyB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMy0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmMgKEdTVF9TVEFSVF9URVNUKTogQWRkIGEgY2hlY2sgZm9yCgkgIHRoZSBuZXcgd2FybmluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOiBXYXJuIGlmCgkgIHN0cnVjdHVyZV9mcm9tX3N0cmluZyBkaWRuJ3QgY29uc3VtZSB0aGUgd2hvbGUgc3RyaW5nLCBidXQgdGhlCgkgIGNhbGxlciBkaWQgbm90IHByb3ZpZGUgYW4gZW5kIHBvaW50ZXIuCgoyMDA4LTAzLTAxIDExOjIxOjMwICswMDAwICBGYWJyaXppbyBHZW5uYXJpIDxmYWJyaXppby5nZUB0aXNjYWxpLml0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFN0cmluZ3MgYWxsb2NhdGVkIGJ5IGxpYnhtbDIgc2hvdWxkIGJlIGZyZWVkIHdpdGggeG1sRnJlZSgpLCBub3Qgd2l0aCBnX2ZyZWUoKS4gRml4ZXMgaXNzdWVzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2UgYXQgdGlzY2FsaSBpdD4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKSwgKGxvYWRfZmVhdHVyZSk6CgkgIFN0cmluZ3MgYWxsb2NhdGVkIGJ5IGxpYnhtbDIgc2hvdWxkIGJlIGZyZWVkIHdpdGggeG1sRnJlZSgpLCBub3QKCSAgd2l0aCBnX2ZyZWUoKS4gRml4ZXMgaXNzdWVzIG9uIHdpbmRvd3MgaW4gY2VydGFpbiBjb250ZXh0cyAoIzUxOTY5OCkuCgoyMDA4LTAyLTI5IDE4OjM4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGludGVyZmFjZS5jOiBEb24ndCBjcmFzaCBpZiB0aGUgZWxlbWVudCBzdXBwb3J0cyB0aGUgaW50ZXJmYWNlIHF1ZXJpZWQsIGJ1dCBkb2VzIG5vdCBpbXBsZW1lbnQgR3N0SW1wbGVtZW50c0luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuYzogKGdzdF9lbGVtZW50X2ltcGxlbWVudHNfaW50ZXJmYWNlKToKCSAgRG9uJ3QgY3Jhc2ggaWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGludGVyZmFjZSBxdWVyaWVkLCBidXQgZG9lcwoJICBub3QgaW1wbGVtZW50IEdzdEltcGxlbWVudHNJbnRlcmZhY2UuIEZpeGVzICM1MTk1ODQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGludGVyZmFjZS5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA4LTAyLTI5IDE1OjM5OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwOC0wMi0yOSAxNToyMjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEltcHJvdmUgc29tZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpOgoJICBJbXByb3ZlIHNvbWUgY29tbWVudC4KCSAgVXBkYXRlIHZhcmlhYmxlcyB3aGVyZSBpdCBtYWtlcyBtb3JlIHNlbnNlLgoKMjAwOC0wMi0yOSAxNDoyMzoxNyArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHVyaS5jOiBVc2UgdGhlIGdldF9wcm90b2NvbHNfZnVsbCB2ZnVuYyBpZiBnZXRfcHJvdG9jb2xzIGlzIE5VTEwuICBGaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfZ2V0X3Byb3RvY29scyk6CgkgIFVzZSB0aGUgZ2V0X3Byb3RvY29sc19mdWxsIHZmdW5jIGlmIGdldF9wcm90b2NvbHMgaXMgTlVMTC4gIEZpeGVzCgkgIFVSSUhhbmRsZXJzIGltcGxlbWVudGVkIHVzaW5nIGxhbmd1YWdlIGJpbmRpbmdzLgoKMjAwOC0wMi0yOSAxMzo1OToyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQW5kIGNvcnJlY3QgZXZlbiBtb3JlIHZhbGlkIHNwYXJzZSB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoc2V0dXBfZmRzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6IChzZXR1cF9maWxlc2luayk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoc2V0dXBfZmlsZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKHNldHVwKSwgKHRlYXJkb3duKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChwdWxsX21lc3NhZ2VzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAobXlfZm9vX2luaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogKHRocmVhZF9uYW1lX29iamVjdCksCgkgIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChjcmVhdGVfYW5kX2ZpbGxfYWRhcHRlcik6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICBBbmQgY29ycmVjdCBldmVuIG1vcmUgdmFsaWQgc3BhcnNlIHdhcm5pbmdzLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BvbGxfZmRfaW5pdCB0byB0aGUgbGlzdCBvZiBzeW1ib2xzLgoKMjAwOC0wMi0yOSAxMjo0MTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQ29ycmVjdCBhbGwgcmVsZXZhbnQgd2FybmluZ3MgZm91bmQgYnkgdGhlIHNwYXJzZSBzZW1hbnRpYyBjb2RlIGFuYWx5emVyLiBUaGlzIGluY2x1ZGUgbWFya2luZyBzZXZlcmFsIHN5bWJvbHMgc3RhdGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKSwgKGdzdF9jaGVja19kcm9wX2J1ZmZlcnMpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9nZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sbGVyKSwgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9uZXcpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKF9maWxlX2luZGV4X2lkX3NhdmVfeG1sKSwKCSAgKGdzdF9maWxlX2luZGV4X2FkZF9hc3NvY2lhdGlvbik6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWVzc19zb21lX21vcmUpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChzZXR1cF9xdWV1ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoc2V0dXApLCAodGVhcmRvd24pLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtYWtlX3BpcGVsaW5lKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBDb3JyZWN0IGFsbCByZWxldmFudCB3YXJuaW5ncyBmb3VuZCBieSB0aGUgc3BhcnNlIHNlbWFudGljIGNvZGUKCSAgYW5hbHl6ZXIuIFRoaXMgaW5jbHVkZSBtYXJraW5nIHNldmVyYWwgc3ltYm9scyBzdGF0aWMsIHVzaW5nCgkgIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBwb2ludGVycywgbm90IHVzaW5nIHZhcmlhYmxlIHNpemVkIGFycmF5cwoJICBvbiB0aGUgc3RhY2ssIG1vdmluZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gdGhlIGJlZ2lubmluZyBvZgoJICBhIGJsb2NrIGFuZCB1c2luZyAiZm9vICh2b2lkKSIgaW5zdGVhZCBvZiAiZm9vICgpIiBmb3IgZGVjbGFyYXRpb25zLgoKMjAwOC0wMi0yOSAxMjowNTo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IERvbid0IHJlc2V0IEdzdFBvbGxGRHMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgRG9uJ3QgcmVzZXQgR3N0UG9sbEZEcywgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IGF0IGFsbC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfY29udHJvbCk6CgkgIFVzZSBHU1RfUE9MTF9GRF9JTklULgoKMjAwOC0wMi0yOSAxMTo1Nzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLio6IEFkZGVkIFNpbmNlIHRhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9pbml0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGRlZCBTaW5jZSB0YWdzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICBVc2Ugc29tZSBtb3JlIGluaXQgbWFjcm9zLgoKMjAwOC0wMi0yOSAxMToyMDowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgaW5pdCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIFVzZSBpbml0IG1hY3JvcyBhbmQgZnVuY3Rpb25zLgoKMjAwOC0wMi0yOSAxMTowMDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBJTklUIG1hY3JvIGFuZCBfaW5pdCBtZXRob2QgZm9yIGluaXRpYWxpemluZyB0aGUgR3N0UG9sbEZELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9pbml0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGQgSU5JVCBtYWNybyBhbmQgX2luaXQgbWV0aG9kIGZvciBpbml0aWFsaXppbmcgdGhlIEdzdFBvbGxGRC4KCjIwMDgtMDItMjggMTk6NTg6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEluaXRpYWxpemUgc29tZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcyBzcG90dGVkIGJ5IHZhbGdyaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpLAoJICAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2NvbnRyb2wpOgoJICBJbml0aWFsaXplIHNvbWUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgYXMgc3BvdHRlZCBieSB2YWxncmluZC4KCjIwMDgtMDItMjggMTU6MjU6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogQWRkIHBvbGwgc3RyZXNzIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtZXNzX3NvbWVfbW9yZSksIChydW5fdGVzdCksCgkgIChtYWluKToKCSAgQWRkIHBvbGwgc3RyZXNzIHRlc3QuCgoyMDA4LTAyLTI4IDEwOjE4OjAyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBQb3J0IHRvIEdzdFBvbGwuIFNlZSAjNTA1NDE3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwKCSAgKGdzdF9mZF9zaW5rX3N0YXJ0KSwgKGdzdF9mZF9zaW5rX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwKCSAgKGdzdF9mZF9zaW5rX3VubG9ja19zdG9wKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX3N0YXJ0KSwgKGdzdF9mZF9zcmNfc3RvcCksIChnc3RfZmRfc3JjX3VubG9jayksCgkgIChnc3RfZmRfc3JjX3VubG9ja19zdG9wKSwgKGdzdF9mZF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mZF9zcmNfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCjIwMDgtMDItMjcgMjE6MTg6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZ3N0X3BvbGxfIHN5bWJvbHMgdG8gd2luMzIgZGVmcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZ3N0X3BvbGxfIHN5bWJvbHMgdG8gd2luMzIgZGVmcy4KCjIwMDgtMDItMjcgMTk6MDE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVc2UgYSBwcml2YXRlIHN0dWN0IHRvIG5vdCBicmVhayBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdG9wKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdG9wKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgVXNlIGEgcHJpdmF0ZSBzdHVjdCB0byBub3QgYnJlYWsgQUJJLgoKMjAwOC0wMi0yNyAxODoyNzo1OSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBNYXNzaXZlIGNvZGUgcmVtb3ZhbCBhbmQgY2xlYW51cHMgYmVjYXVzZSBvZiBHc3RQb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdG9wKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdG9wKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgTWFzc2l2ZSBjb2RlIHJlbW92YWwgYW5kIGNsZWFudXBzIGJlY2F1c2Ugb2YgR3N0UG9sbC4KCSAgRml4ZXMgIzUwNTQxNy4KCjIwMDgtMDItMjcgMTg6MDA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEFkZCBjaGVja3MgZm9yIHBvbGwsIHBwb2xsIGFuZCBwc2VsZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBjaGVja3MgZm9yIHBvbGwsIHBwb2xsIGFuZCBwc2VsZWN0LgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIEdzdFBvbGwuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZmluZF9pbmRleCksIChzZWxlY3RhYmxlX2ZkcyksCgkgIChwb2xsYWJsZV90aW1lb3V0KSwgKGNob29zZV9tb2RlKSwgKHBvbGxmZF90b19mZF9zZXQpLAoJICAoZmRfc2V0X3RvX3BvbGxmZCksIChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSksCgkgIChnc3RfcG9sbF9zZXRfbW9kZSksIChnc3RfcG9sbF9nZXRfbW9kZSksCgkgIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfYWRkX2ZkKSwKCSAgKGdzdF9wb2xsX3JlbW92ZV9mZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY3RsX3JlYWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Nsb3NlZCksIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWQpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3dyaXRlKSwgKGdzdF9wb2xsX3dhaXQpLAoJICAoZ3N0X3BvbGxfc2V0X2NvbnRyb2xsYWJsZSksIChnc3RfcG9sbF9yZXN0YXJ0KSwKCSAgKGdzdF9wb2xsX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkIGdlbmVyaWMgcG9sbCBhYnN0cmFjdGlvbi4gV2UgaWRlYWxseSBkb24ndCB3YW50IHRvIGhhdmUgdGhpcyBpbiBjb3JlCgkgIGhlcmUgYnV0IGluIGdsaWIgaW50ZWFkLi4uCgkgIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgaW4gdmFyaW91cyBuZXR3b3JrIGVsZW1lbnRzIGFuZCB1bHRpbWF0ZWx5IGZvcgoJICB0aGUgbmFub3NlY29uZCBwcmVjaXNpb24gbW9ub3RvbmljIGNsb2NrICh0aGF0J3Mgd2h5IGl0J3MgaGVyZSBpbiBjb3JlKS4KCSAgSXQnbGwgYWxsb3cgdXMgdG8gaW1wbGVtZW50IGNhbmNlbGFibGUgc29ja2V0IG9wZXJhdGlvbnMgZm9yIHdpbmRvd3MgdG9vLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3N0b3ApLCAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfZmx1c2gpLAoJICAoZGVsYXllZF9jb250cm9sKSwgKGdzdF9wb2xsX3N1aXRlKToKCSAgQWRkIEdzdFBvbGwgdW5pdCB0ZXN0LgoKMjAwOC0wMi0yNSAxNTozNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RmaWx0ZXIuYzogSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9maWx0ZXJfcnVuKCkuIEZpeGVzICM1MTg2MjcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9maWx0ZXJfcnVuKCkuIEZpeGVzICM1MTg2MjcuCgoyMDA4LTAyLTIzIDE2OjAzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9SRUFETUU6IEFkZCBhIGZldyBsaW5lcyBhYm91dCB0aGUgbmV3ICdjaGVjay1pbnNwZWN0ZWQtdmVyc2lvbnMnIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIEFkZCBhIGZldyBsaW5lcyBhYm91dCB0aGUgbmV3ICdjaGVjay1pbnNwZWN0ZWQtdmVyc2lvbnMnIHRhcmdldC4KCjIwMDgtMDItMjEgMTA6MzA6NTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiBBZGQgcW9zIHRvIHRoZSBldmVudCB0ZXN0LiBSZW5hbWUgdGNhc2UvdHN1aXRlOyBpcyBub3Qgb25seSBhYm91dCBjdXN0b20gZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgQWRkIHFvcyB0byB0aGUgZXZlbnQgdGVzdC4gUmVuYW1lIHRjYXNlL3RzdWl0ZTsgaXMgbm90IG9ubHkgYWJvdXQKCSAgY3VzdG9tIGV2ZW50cy4KCjIwMDgtMDItMjEgMTA6MjI6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRW5zdXJlIHRoYXQgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRlYWJsZSwgYmVmb3JlIG1vZGlmeWluZy4gU3BvdHRlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEVuc3VyZSB0aGF0IGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0ZWFibGUsIGJlZm9yZSBtb2RpZnlpbmcuIFNwb3R0ZWQgYnkKCSAgTWlrZS4KCjIwMDgtMDItMjAgMTU6NDQ6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogV2hlbiBkcm9wcGluZyBidWZmZXJzIGluIGxlYWt5IG1vZGVzLCBtYXJrIG5leHQgYnVmZmVycyB3ZSBzZW50IGFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFdoZW4gZHJvcHBpbmcgYnVmZmVycyBpbiBsZWFreSBtb2RlcywgbWFyayBuZXh0IGJ1ZmZlcnMgd2Ugc2VudCBhcwoJICBESVNDT05ULgoKMjAwOC0wMi0yMCAxMjozMTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBBbHNvLCBpZiBtbWFwKCkgZmFpbHMgdGhhdCB3b3VsZCBiZSBhIFJFQUQgZXJyb3IsIG5vdCBPUEVOX1JFQUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICBBbHNvLCBpZiBtbWFwKCkgZmFpbHMgdGhhdCB3b3VsZCBiZSBhIFJFQUQgZXJyb3IsIG5vdCBPUEVOX1JFQUQuCgoyMDA4LTAyLTIwIDEyOjI2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFJlbW92ZSBHc3RCdWZmZXJTdG9yZSwgbm8gaWRlYSB3aHkgd2Ugd2VyZSBzdGlsbCBidWlsZGluZyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFJlbW92ZSBHc3RCdWZmZXJTdG9yZSwgbm8gaWRlYSB3aHkgd2Ugd2VyZSBzdGlsbCBidWlsZGluZyBpdC4KCSAgSXQncyBub3QgdXNlZCBhbnl3aGVyZSBhbmQgc3VwZXJzZWRlZCBieSBHc3RBZGFwdGVyLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKToKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyBmb3IgNjQtYml0IGludGVnZXJzLgoKMjAwOC0wMi0xOSAxMzowMDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBzZXQgR1NUX0NBQ0hFX0RJUiBhbmQgYWxsb3cgdG8gc2V0IGl0IGJ5IGEgY29uZmlndXJlIHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBzZXQgR1NUX0NBQ0hFX0RJUiBhbmQgYWxsb3cgdG8gc2V0IGl0IGJ5IGEgY29uZmlndXJlIHBhcmFtZXRlci4KCSAgV2UncmUgbm90IGluIDAuOCB0aW1lcyBhbnltb3JlLgoKMjAwOC0wMi0xOSAxMjo1NjoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBNYWtlIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0IG1hdGNoIHRoZSBpbXBsZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19kcm9wX2J1ZmZlcnMpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgTWFrZSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmb3IKCSAgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCBtYXRjaCB0aGUgaW1wbGVtZW50YXRpb24uCgkgIEZpeCB1cCBzcGVsbGluZywgZ3JhbW1hciBhbmQgd29yZGluZyBvZiB0aGUgZG9jdW1lbnRhdGlvbiBpbiBhIGZldwoJICBwbGFjZXMsIGFuZCBhZGQgdGhlIFNpbmNlIGtleXdvcmQgdG8gbmV3IEFQSSBmdW5jdGlvbnMuCgkgIFVzZSBnX2xpc3RfZGVsZXRlX2xpbmsgaW5zdGVhZCBvZiBnX2xpc3RfcmVtb3ZlIGluCgkgIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsIHNpbmNlIGl0J3MgaW1tZWFzdXJhYmx5IG1vcmUgZWZmaWNpZW50LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIG5ldyBnc3RfY2hlY2tfZHJvcF9idWZmZXJzIGZ1bmN0aW9uIHdoZXJlIGFwcHJvcHJpYXRlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIGdzdF9jb2xsZWN0X3BhZHNfdGFrZV9idWZmZXIsCgkgIGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIsIGdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCB0byB0aGUKCSAgZXhwb3J0cwoJICBDaGFuZ2Vsb2cgc3VyZ2VyeSB0byBhZGQgQVBJIGtleXdvcmQgdG8gbmV3IGdzdF9jaGVjayBBUEkuCgoyMDA4LTAyLTE5IDA4OjA1OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6IFVwZGF0ZSBwcmUtZ2VuZXJhdGVkIGZsZXggZmlsZXMgd2l0aCBmbGV4IDIuMy4zNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiAoeXlfZ2V0X25leHRfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXllbnN1cmVfYnVmZmVyX3N0YWNrKSwgKF9nc3RfcGFyc2VfeXlsZXhfaW5pdF9leHRyYSk6CgkgIFVwZGF0ZSBwcmUtZ2VuZXJhdGVkIGZsZXggZmlsZXMgd2l0aCBmbGV4IDIuMy4zNC4KCjIwMDgtMDItMTkgMDU6NDk6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBtYWtlIEdzdE1pbmlPYmplY3RDbGFzczo6Y29weSgpIGEgYml0IG1vcmUgZnJpZW5kbHkgdG8gc3ViY2xhc3NlcyBhbmQgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbWFrZSBHc3RNaW5pT2JqZWN0Q2xhc3M6OmNvcHkoKSBhIGJpdCBtb3JlCgkgIGZyaWVuZGx5IHRvIHN1YmNsYXNzZXMgYW5kIG5vdCByZXF1aXJlIHRoZW0gdG8ga25vdyBhbGwgaW50ZXJuYWxzCgkgIG9mIHRoZWlyIHBhcmVudCBjbGFzcy4KCjIwMDgtMDItMTUgMTM6MTU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBzdWItYnVmZmVyIGZ1bmN0aW9ucyB0byBjb2xsZWN0cGFkcy4gRml4ZXMgIzUxNjE4Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBZGQgc3ViLWJ1ZmZlciBmdW5jdGlvbnMgdG8gY29sbGVjdHBhZHMuIEZpeGVzICM1MTYxODcuCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc190YWtlX2J1ZmZlcigpLCBnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyKCkKCjIwMDgtMDItMTUgMTI6MzM6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBzZWxlY3RlZCBidWZmZXItZmxhZ3Mgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIENvcHkgc2VsZWN0ZWQgYnVmZmVyLWZsYWdzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCSAgRml4ZXMgIzUxNjM5NS4KCjIwMDgtMDItMTIgMTI6MDQ6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFByb3Blcmx5IGNoYWluIHVwIGZpbmFsaXplIGZ1bmN0aW9ucyB0byB0aGUgcGFyZW50IGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfY2xhc3NfaW5pdCksIChnc3RfZXZlbnRfZmluYWxpemUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9jbGFzc19pbml0KSwKCSAgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9jbGFzc19pbml0KSwgKGdzdF9xdWVyeV9maW5hbGl6ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpOgoJICBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMgdG8gdGhlIHBhcmVudCBjbGFzcy4KCjIwMDgtMDItMTEgMTc6NTM6NTcgKzAwMDAgIFNpYXZhc2ggU2FmaSA8c2lhdmFzaC5zYWZpQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmRleC4qOiBBZGQgbmV3IGZ1bmN0aW9uIHdpdGggb3B0aW9uIHRvIGRpc3Bvc2Ugb2YgdXNlcl9kYXRhIGluIHJlc29sdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNpYXZhc2ggU2FmaSA8c2lhdmFzaCBkb3Qgc2FmaSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9zZXRfcmVzb2x2ZXIpLAoJICAoZ3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsKToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgQWRkIG5ldyBmdW5jdGlvbiB3aXRoIG9wdGlvbiB0byBkaXNwb3NlIG9mIHVzZXJfZGF0YSBpbiByZXNvbHZlci4KCSAgQWN0dWFsbHkgY2FsbCB0aGUgZGlzcG9zZSBmdW5jdGlvbiB3aGVuIGZpbmFsaXppbmcgdGhlIG9iamVjdCBhbmQgbm90CgkgIGp1c3Qgd2hlbiBjaGFuZ2luZyB0aGUgcmVzb2x2ZXIvZmlsdGVyLgoJICBBUEk6IEdzdEluZGV4Ojpnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwoKQoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZnVuY3Rpb24gdG8gZG9jcy4gRml4ZXMgIzUxNTQ2OS4KCjIwMDgtMDItMTEgMDg6NTM6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RpbmRleC5jOiBDaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzLiBGaXhlcyBsZWFraW5nIHRoZSBHc3RPYmplY3QgbmFtZSBhbmQgb3RoZXIgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9maW5hbGl6ZSk6CgkgIENoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MuIEZpeGVzIGxlYWtpbmcgdGhlIEdzdE9iamVjdAoJICBuYW1lIGFuZCBvdGhlciB0aGluZ3MuCgoyMDA4LTAyLTEwIDE5OjQ4OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogRml4IEpvc2VwJ3Mgc3VybmFtZSBpbiBwcmV2aW91cyBjb21taXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogRml4IEpvc2VwJ3Mgc3VybmFtZSBpbiBwcmV2aW91cyBjb21taXRzCgoyMDA4LTAyLTA4IDAwOjU0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogTWFrZSBESVNBQkxFX0RFUFJFQ0FURUQgZGVmaW5lZCAqb25seSogZHVyaW5nIENWUywgbm90IGR1cmluZyBwcmUtcmVsZWFzZXMgb3IgcmVsZWFzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgTWFrZSBESVNBQkxFX0RFUFJFQ0FURUQgZGVmaW5lZCAqb25seSogZHVyaW5nIENWUywgbm90IGR1cmluZwoJICBwcmUtcmVsZWFzZXMgb3IgcmVsZWFzZXMuCgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgZ3N0LXBsdWdpbnMtZ2wKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBDaGFuZ2Ugb25lIG9mIHRoZSBzdGVwcyAtIHdlIG9ubHkgdXBsb2FkIGNvcmUgJiBiYXNlIHRvIEdub21lIEZUUAoKMjAwOC0wMi0wNiAxMjoyMTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBBZGQgJ2lkJyBmb3IgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBBZGQgJ2lkJyBmb3IgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgTGluayB0byBzaWduYWxzLiBEb2MgYW5kIGNvbW1lbnQgZml4ZXMuCgoyMDA4LTAyLTA1IDIxOjIyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogU29tZSBtaW5vciBkb2NzIGZpeGVzOiBmaXggdHlwbywgbWVudGlvbiB0aGF0IEdTVF9GTE9XX1JFU0VORCBpcyB1bnVzZWQgYW5kIHVuaW1wbGVtZW50ZWQ7IGZpbmFsbHksIGl0IGlzIHBsdWdpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDogKEdTVF9QQURfTElOS19TVUNDRVNTRlVMKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiAoR3N0UGx1Z2luRmVhdHVyZUNsYXNzKToKCSAgU29tZSBtaW5vciBkb2NzIGZpeGVzOiBmaXggdHlwbywgbWVudGlvbiB0aGF0IEdTVF9GTE9XX1JFU0VORCBpcwoJICB1bnVzZWQgYW5kIHVuaW1wbGVtZW50ZWQ7IGZpbmFsbHksIGl0IGlzIHBsdWdpbiBmZWF0dXJlcywgbm90CgkgIHBsdWdpbnMsIHRoYXQgaGF2ZSByYW5rcy4KCjIwMDgtMDItMDUgMTk6NDI6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IENsYXJpZnkgR3N0UmFuayByYW5nZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBDbGFyaWZ5IEdzdFJhbmsgcmFuZ2UgZG9jcy4KCjIwMDgtMDItMDUgMTg6Mzc6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBBZGQgYSBzZXBhcmF0ZSBnc3RfZGVpbml0aWFsaXplZCB0aGF0IHByZXZlbnRzIGdzdF9pbml0KCkgZnJvbSBiZWluZyBjYWxsZWQgYWZ0ZXIgZ3N0X2RlaW5pdCgpLiAgRml4ZXMgIzUwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogQWRkIGEgc2VwYXJhdGUgZ3N0X2RlaW5pdGlhbGl6ZWQgdGhhdCBwcmV2ZW50cwoJICBnc3RfaW5pdCgpIGZyb20gYmVpbmcgY2FsbGVkIGFmdGVyIGdzdF9kZWluaXQoKS4gIEZpeGVzICM1MDk1NTkKCjIwMDgtMDItMDUgMTQ6MTU6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2VzIHRvIHRoZSBiZWhhdmlvdXIgb2YgR3N0UGFkVGVtcGxhdGVzLCBldGMgYW5kIHRoZSBwb3NzaWJsaXR5IHRvIGNhbGwgdGhlbSBpbiBjbGFzc19pbml0IGFzIGl0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fYmFzZV9pbml0KSwKCSAgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2Jhc2VfaW5pdCksIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NyY19iYXNlX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2VzIHRvIHRoZSBiZWhhdmlvdXIgb2YgR3N0UGFkVGVtcGxhdGVzLCBldGMKCSAgYW5kIHRoZSBwb3NzaWJsaXR5IHRvIGNhbGwgdGhlbSBpbiBjbGFzc19pbml0IGFzIGl0IGJyZWFrcyB0b28KCSAgbWFueSBlbGVtZW50cy4gUmVvcGVucyBidWcgIzQ5MTUwMS4KCSAgU2hvdWxkIGJlIGFwcGxpZWQgYWdhaW4gZm9yIDAuMTEsIHRodXMgYWRkZWQgYSBmZXcgRklYTUUgMC4xMSBhdAoJICBzZXZlcmFsIHBsYWNlcy4KCjIwMDgtMDItMDUgMDk6MjQ6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRHVtcCBvbmUgZ3JhcGggcGVyIHBpcGVsaW5lIHN0YXRlLWNoYW5nZSBhbmQgc3RhdGUgY2hhbmdlIG5hbWUgKGlmIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIgaXMgc2V0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBEdW1wIG9uZSBncmFwaCBwZXIgcGlwZWxpbmUgc3RhdGUtY2hhbmdlIGFuZCBzdGF0ZSBjaGFuZ2UgbmFtZQoJICAoaWYgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUiBpcyBzZXQpLgoKMjAwOC0wMi0wNCAxNDoxNDo0MiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIEJlIHN1cmUgdGhhdCB3ZSBoYXZlIGEgbmV3IGNvcHkgb2YgdGhlIGNhcHMgYW5kIG5vdCByZWZmZWQgY2FwcyBmcm9tIGEgdGVtcGxhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgQmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBuZXcgY29weSBvZiB0aGUgY2FwcyBhbmQgbm90CgkgIHJlZmZlZCBjYXBzIGZyb20gYSB0ZW1wbGF0ZQoKMjAwOC0wMi0wMyAxMjowNDozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgdXNlIGJhc2VfaW5pdCB3aGVyZSBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuIEZvciBleGFtcGxlIGl0J3Mgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGZvciBhZGRpbmcgcGFkIHRlbXBsYXRlcyBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdHlwZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBEb24ndCB1c2UgYmFzZV9pbml0IHdoZXJlIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gRm9yIGV4YW1wbGUgaXQncwoJICBub3QgbmVjZXNzYXJ5IGFueW1vcmUgZm9yIGFkZGluZyBwYWQgdGVtcGxhdGVzIG9yIHNldHRpbmcgZWxlbWVudAoJICBkZXRhaWxzLgoJICBMZWF2ZSBlbXB0eSBiYXNlX2luaXQgZnVuY3Rpb25zIGluIHNldmVyYWwgcGxhY2VzIGFzIEdTVF9CT0lMRVJQTEFURQoJICBzdGlsbCBkZWZpbmVzIGFuZCB1c2VzIHRoZW0uCgoyMDA4LTAyLTAzIDEwOjQ4OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvOiBNYWtlIGl0IHBvc3NpYmxlIChhbmQgcmVjb21tZW5kZWQpIHRvIHNldCBlbGVtZW50IGRldGFpbHMgYW5kIGFkZCBwYWQgdGVtcGxhdGVzIGluIHRoZSBjbGFzc19pbml0IGZ1bmN0aW9ucyBieSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgTWFrZSBpdCBwb3NzaWJsZSAoYW5kIHJlY29tbWVuZGVkKSB0byBzZXQgZWxlbWVudCBkZXRhaWxzIGFuZCBhZGQKCSAgcGFkIHRlbXBsYXRlcyBpbiB0aGUgY2xhc3NfaW5pdCBmdW5jdGlvbnMgYnkgY29weWluZyB0aGUgZGV0YWlscy9wYWQKCSAgdGVtcGxhdGVzIGluIEdzdEVsZW1lbnQncyBiYXNlX2luaXQuCgkgIEFsc28gbWFrZSBpdCBwb3NzaWJsZSB0byByZXBsYWNlIGV4aXN0aW5nIHBhZCB0ZW1wbGF0ZXMgYnkgYWRkaW5nCgkgIGEgbmV3IG9uZSB3aXRoIHRoZSBzYW1lIG5hbWUuIFRoaXMgd2FzIGRvbmUgaW4gYSBoYWNraXNoIGZhc2hpb24KCSAgaW4gc2FtZSBlbGVtZW50cyBiZWZvcmUgYWxyZWFkeS4KCSAgRG9uJ3QgcmVmZXJlbmNlIHBhZCB0ZW1wbGF0ZXMgdGhhdCBhcmUgYWRkZWQgYSBzZWNvbmQgdGltZS4gQQoJICBuZXcgcGFkIHRlbXBsYXRlIGhhcyBhIHJlZmNvdW50IG9mIG9uZSBhbmQgaXMgbm90IGZsb2F0aW5nIGFueW1vcmUKCSAgYW5kIHRvIGJlIG93bmVkIGJ5IHRoZSBlbGVtZW50J3MgY2xhc3MuIE1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0IGJ5CgkgIG1lbnRpb25pbmcgaXQgaW4gdGhlIGRvY3Mgb2YgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSgpLgoJICBUaGVzZSBjaGFuZ2VzIGFyZSBiYWNrd2FyZHMgY29tcGF0aWJsZS4gRml4ZXMgYnVnICM0OTE1MDEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3Igc2V0dGluZyBlbGVtZW50IGRldGFpbHMsIGFkZGluZyBwYWQgdGVtcGxhdGVzIGFuZAoJICByZXBsYWNpbmcgdGhlbSBpbiBhIHN1YmNsYXNzLgoKMjAwOC0wMi0wMiAwNjo0ODozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfcGFkX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDgtMDItMDEgMTc6MTY6MjYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBBZGQgbW9yZSBmdW5jdGlvbnMgZm9yIHVuaXQgdGVzdGluZzogZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywgZ3N0X2NoZWNrX2NhcHNfZXF1YWwsIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBtb3JlIGZ1bmN0aW9ucyBmb3IgdW5pdCB0ZXN0aW5nOiBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLAoJICBnc3RfY2hlY2tfY2Fwc19lcXVhbCwgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCwKCSAgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXIKCjIwMDgtMDItMDEgMTY6Mzc6MjIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9DSEVDS19WRVJTSU9OIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAyLTAxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiB0byB0aGUKCSAgZG9jcwoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X2luZGV4X2ZyZWVfd3JpdGVyKSwKCSAgKGdzdF9pbmRleF9maW5hbGl6ZSksIChnc3RfaW5kZXhfZW50cnlfZnJlZSksCgkgIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKTogRml4IG1lbW9yeSBsZWFrcy4KCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gbWFjcm8uCgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9jbGFzc19pbml0KSwKCSAgKGdzdF9tZW1faW5kZXhfZnJlZV9mb3JtYXQpLCAoZ3N0X21lbV9pbmRleF9mcmVlX2lkKSwKCSAgKGdzdF9tZW1faW5kZXhfZmluYWxpemUpOiBGaXggbWVtb3J5IGxlYWtzLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogVXBkYXRlZCB0byBDVlMgSEVBRC4KCjIwMDgtMDItMDEgMTI6MjU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBTb21lIG1vcmUgZGV0YWlscyBhYm91dCBob3cgdGhlIHBsdWdpbiBkb2NzIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgU29tZSBtb3JlIGRldGFpbHMgYWJvdXQgaG93IHRoZSBwbHVnaW4gZG9jcyB3b3Jrcy4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBXaGl0ZXNwYWNlIGNsZWFudXAuCgoyMDA4LTAyLTAxIDEyOjEwOjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvOiBBZGQgZGVsYXllZCBzZXQtcHJvcGVydHkuIFRoaXMgYWxsb3dzIHRvIHNldCBwcm9wZXJ0aWVzIG9uIGR5bmFtaWNhbHkgY3JlYXRlZCBvYmplY3RzIChwYWRzIGluIHZpZGVvbXhlcikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIEFkZCBkZWxheWVkIHNldC1wcm9wZXJ0eS4gVGhpcyBhbGxvd3MgdG8gc2V0IHByb3BlcnRpZXMgb24gZHluYW1pY2FseQoJICBjcmVhdGVkIG9iamVjdHMgKHBhZHMgaW4gdmlkZW9teGVyKS4KCjIwMDgtMDItMDEgMTE6Mjc6MzIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAyLTAxIDEwOjI3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgZml4bWUgcmVnYXJkaW5nIEVPUyBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpOgoJICBBZGQgZml4bWUgcmVnYXJkaW5nIEVPUyBpbiBwdWxsIG1vZGUuCgkgIEZpeCBwb3NpdGlvbiByZXBvcnRpbmcgaW4gUEFVU0VEIGZvciBuZWdhdGl2ZSByYXRlcy4KCjIwMDgtMDItMDEgMTA6MjM6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBXaGVuIHJlcGxhY2luZyBhIG1pbmlvYmplY3QsIGRvIGEgcXVpY2sgZXF1YWxpdHkgY2hlY2sgZmlyc3Qgc28gdGhhdCB3ZSBjYW4gYXZvaWQgYSByZWYvdW5yZWYgcGFpci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKToKCSAgV2hlbiByZXBsYWNpbmcgYSBtaW5pb2JqZWN0LCBkbyBhIHF1aWNrIGVxdWFsaXR5IGNoZWNrIGZpcnN0IHNvIHRoYXQgd2UKCSAgY2FuIGF2b2lkIGEgcmVmL3VucmVmIHBhaXIuCgoyMDA4LTAyLTAxIDEwOjE3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIG11bHRpcXVldWUgdG8gdGhlIGRvY3MuCgoyMDA4LTAxLTMwIDE0OjM4OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNyA9PT0KCjIwMDgtMDEtMzAgMTQ6MDU6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTcKCjIwMDgtMDEtMzAgMTM6MTM6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBhZGQgQ2hhbmdlTG9nIGVudHJ5IGZvciBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBDaGFuZ2VMb2cgZW50cnkgZm9yIHByZXZpb3VzIGNvbW1pdAoKMjAwOC0wMS0zMCAxMzoxMjoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAxLTMwIDEyOjU1OjQyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMS0zMCAxMjo0NDoxMyArMDAwMCAgQ3lnd2luIFBvcnRzIG1haW50YWluZXIgPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2U+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IGNvbXBpbGF0aW9uIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHBvc2l4IHRpbWVycyBidXQgbm8gbW9ub3RvbmljIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHBvc2l4IHRpbWVycyBidXQgbm8KCSAgbW9ub3RvbmljIGNsb2NrLgoJICBGaXhlczogIzUxMjcxNQoJICBQYXRjaCBCeTogQ3lnd2luIFBvcnRzIG1haW50YWluZXIgPHlzZWxrb3dpdHogYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlCgkgIGRvdCBuZXQ+CgoyMDA4LTAxLTMwIDEyOjM5OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCBwcmV2aW91cyBjb21taXQgaW4gcHJlcGFyYXRpb24gZm9yIGFuIGltcHJvbXB0dSAwLjEwLjE3IHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCBpbiBwcmVwYXJhdGlvbiBmb3IgYW4gaW1wcm9tcHR1IDAuMTAuMTcgcmVsZWFzZQoKMjAwOC0wMS0yOSAwOTo0MzoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfcGFkX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDgtMDEtMjggMjM6MzA6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE2ID09PQoKMjAwOC0wMS0yOCAyMzoyNzoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9MSU5HVUFTOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE2CgoyMDA4LTAxLTI4IDIxOjIwOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTAxLTI0IDIzOjI4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQUNfVFJZX0NPTVBJTEUgaW5zdGVhZCBvZiBBQ19UUllfUlVOIHRvIGNoZWNrIGZvciBfUE9TSVhfVElNRVIsIF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0ssIGV0Yy4gTWFrZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3IKCSAgX1BPU0lYX1RJTUVSLCBfUE9TSVhfTU9OT1RPTklDX0NMT0NLLCBldGMuIE1ha2VzIGNvbmZpZ3VyZQoJICBub3QgZmFpbCB3aGVuIHRyeWluZyB0byBjcm9zc2NvbXBpbGUgb24gT3BlbkVtYmVkZGVkICgjNTExNzUwKS4KCjIwMDgtMDEtMjAgMTc6MDg6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbWFudWFscy5tYWs6IFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZSB0byBmaXggdGhlIGJ1aWxkIGlmIEdOVSBtYWtlIGlzIGNhbGxlZCBkaWZmZXJlbnQuIEZpeGVzIGJ1ZyAjNTEwNzQ3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UgdG8gZml4IHRoZSBidWlsZCBpZiBHTlUgbWFrZSBpcwoJICBjYWxsZWQgZGlmZmVyZW50LiBGaXhlcyBidWcgIzUxMDc0Ny4KCjIwMDgtMDEtMjAgMTU6MDQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBvbGQtc3R5bGUgc3RhdGljIHBsdWdpbnMgdmlhIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBhZ2Fpbiwgd2hpY2ggSSBicm9rZSB0d28gY29tbWl0cyBhZ28gd2hlbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSk6CgkgIEZpeCBvbGQtc3R5bGUgc3RhdGljIHBsdWdpbnMgdmlhIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQwoJICBhZ2Fpbiwgd2hpY2ggSSBicm9rZSB0d28gY29tbWl0cyBhZ28gd2hlbiBjaGFuZ2luZyB0aGUgQVBJCgkgIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCk6IHRoZSBnX2xpc3RfZm9yZWFjaCgpIGluCgkgIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyBzdGlsbCBhc3N1bWVkIHRoZSBvbGQgZnVuY3Rpb24KCSAgc2lnbmF0dXJlIGFuZCB3b3VsZCB0aGVyZWZvcmUgZmFpbCAocmUtZml4ZXMgIzUxMDE4NykuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX251bV9zdGF0aWNfcGx1Z2lucyksIChfc3RhdGljX3BsdWdpbnMpLAoJICAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKToKCSAgUmV2ZXJ0IHRoZSAodGVjaG5pY2FsbHkgY29ycmVjdCkgY2hhbmdlIHRvIGNhbGwgZ190aHJlYWRfaW5pdCgpIGZyb20KCSAgdGhlIHByZS1tYWluKCkgY29uc3RydWN0b3IuIFRoaXMgd2lsbCBicmVhayBwcm9ncmFtcyB3aGljaCBjYWxsCgkgIGdfdGhyZWFkX2luaXQoKSB3aXRob3V0IGFuIGlmICghZ190aHJlYWRfc3VwcG9ydGVkKCkpIGd1YXJkIGluIHRoZWlyCgkgIG1haW4gZnVuY3Rpb24uIFdlIGNvdWxkIGp1c3QgYmxhbWUgaXQgb24gR0xpYiBvciB0aGUgYXBwbGljYXRpb24sIGJ1dAoJICBpdCdzIHByb2JhYmx5IGJlc3QgdG8ganVzdCBhdm9pZCB0aGlzIGFsdG9nZXRoZXIgYW5kIHNpbXBseSBub3QgdXNlCgkgIGFueSBHTGliIGZ1bmN0aW9ucyBoZXJlIGFuZCB1c2UgcGxhaW4gb2xkIG1hbGxvYygpIHdpdGggYSBzaW1wbGUKCSAgYXJyYXkgdG8gc3RvcmUgdGhlIHBsdWdpbnMgdG8gcmVnaXN0ZXIgbGF0ZXIgd2hlbiBnc3RfaW5pdCgpIGlzCgkgIGZpbmFsbHkgY2FsbGVkIChyZS1maXhlcyAjNTEwMTg3KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChHU1RfR05VQ19DT05TVFJVQ1RPUl9ERUZJTkVEKSwKCSAgKEdTVF9HTlVDX0NPTlNUUlVDVE9SX0RFRklORUQpLCAocGx1Z2luX2luaXRfY291bnRlciksCgkgIChwbHVnaW4xX2luaXQpLCAocGx1Z2luMl9pbml0KSwgKHBsdWdpbjNfaW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgRHVtYiB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBvbGQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIHN0aWxsCgkgIHdvcmtzLgoKMjAwOC0wMS0xNyAyMjoyMjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogUmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhcm91bmQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHU1RfUExVR0lOX0RFRklORV9TVEFUSUMpOgoJICBSZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmRzIGFyb3VuZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMuCgkgIFRoaXMgbWFrZXMgZ3RrLWRvYyBjb21wbGFpbiwgYnV0IHJlc3VsdHMgaW4gc2xpZ2h0bHkgYmV0dGVyCgkgIGNvbXBpbGVyIGVycm9ycy4gVGhlIG9sZCBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBpcwoJICBzdGlsbCBndWFyZGVkLCBzbyB0aGVyZSdsbCBiZSBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdGhhdAoJICBpbnN0ZWFkLiBGaXhlcyAjNTEwMTg3IHRvby4KCjIwMDgtMDEtMTcgMjI6MTc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBDaGFuZ2UgQVBJIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgdG8gbm90IHRha2UgYSBHc3RQbHVnaW5EZXNjLCBidXQgcmF0aGVyIGp1c3QgdGFrZSBhbGwgdGhlIGFyZ3VtZW50cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR3N0UGx1Z2luRmlsdGVyKToKCSAgQ2hhbmdlIEFQSSBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIHRvIG5vdCB0YWtlCgkgIGEgR3N0UGx1Z2luRGVzYywgYnV0IHJhdGhlciBqdXN0IHRha2UgYWxsIHRoZSBhcmd1bWVudHMKCSAgaW4gYSBHc3RQbHVnaW5EZXNjIGRpcmVjdGx5LiBUaGlzIGlzIG1vcmUgaW50dWl0aXZlIGFuZAoJICBhdm9pZHMgY2VydGFpbiBtaXN0YWtlcyB3aGVuIHBvcnRpbmcgY29kZSBmcm9tCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyB0byBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpLgoJICBGaXhlcyAjNTEwMTg3LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgRml4IHVwIGZvciBjaGFuZ2VkIEFQSS4KCjIwMDgtMDEtMTcgMTg6NTA6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvbGVnYWwueG1sOiBVcGRhdGUgRkFRLCBUb3RlbSBhY3R1YWxseSBoYXMgYW4gZXhjZXB0aW9uIHRoZXNlIGRheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSAgVXBkYXRlIEZBUSwgVG90ZW0gYWN0dWFsbHkgaGFzIGFuIGV4Y2VwdGlvbiB0aGVzZSBkYXlzLgoKMjAwOC0wMS0xNCAyMjoyMDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBBUEkgZGVjbGFyYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IEFQSSBkZWNsYXJhdGlvbnMKCjIwMDgtMDEtMTQgMTM6MTg6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNwZWxsaW5nIGZpeGVzIGZvciB0aGUgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFNwZWxsaW5nIGZpeGVzIGZvciB0aGUgQVBJIGRvY3MuCgoyMDA4LTAxLTE0IDExOjQ3OjMyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIEFQSSBrZXl3b3JkIGZvciBnc3RfdXRpbF9nZXRfdGltZXN0YW1wLCBhbmQgcmVtb3ZlIHRoZSB0YWcgZm9yIEdTVF9HRVRfVElNRVNUTUFQIHdoaWNoIGRpZG4ndCBzdXJ2aXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIEFQSSBrZXl3b3JkIGZvciBnc3RfdXRpbF9nZXRfdGltZXN0YW1wLCBhbmQgcmVtb3ZlIHRoZSB0YWcgZm9yIEdTVF9HRVRfVElNRVNUTUFQIHdoaWNoIGRpZG4ndCBzdXJ2aXZlLgoKMjAwOC0wMS0xNCAxMTo0MDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBsb25nIHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBRb1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggbG9uZyBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3IgUW9TLgoKMjAwOC0wMS0xMiAyMDoyMjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IF9nc3RfdHJhY2Vfb24gaXMgYWxyZWFkeSBwcm92aWRlZCBieSBnc3R0cmFjZS5oLCBubyBuZWVkIHRvIGRlY2xhcmUgaXQgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIF9nc3RfdHJhY2Vfb24gaXMgYWxyZWFkeSBwcm92aWRlZCBieSBnc3R0cmFjZS5oLCBubyBuZWVkIHRvIGRlY2xhcmUKCSAgaXQgb3Vyc2VsdmVzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCAnYnVmZmVycycsICdjaGVja19jb25kJyBhbmQgJ2NoZWNrX211dGV4JyBmcm9tIGxpYmdzdGNoZWNrCgkgIGFuZCByZW1vdmUgc3RyYW5nZSB0Y2FzZV9hZGRfdGVzdCB3aGljaCBpcyBvdXRwdXR0aW5nIGEgd2FybmluZy4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIFByb3Blcmx5IGRlY2xhcmUgJ2J1ZmZlcnMnLCAnY2hlY2tfY29uZCcsICdjaGVja19tdXRleCcgZXh0ZXJuCgkgIGFuZCBkZWZpbmUgdGhlbSBpbiBnc3RjaGVjay5jIGluc3RlYWQgb2YgaGF2aW5nIGV2ZXJ5IC5jIGZpbGUgd2hjaWgKCSAgaW5jbHVkZXMgZ3N0Y2hlY2suaCBiZSBkZWZpbmluZyBpdHMgb3duIGNvcHkgYW5kIHJlbHlpbmcgb24gc3ltYm9sCgkgIGludGVycG9zaW5nIHRvIG1hcnJ5IHRoZW0gYWxsLCB3aGljaCBkb2Vzbid0IHdvcmsgb24gU29sYXJpcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBkZWZpbmUgJ2J1ZmZlcnMnIGxvY2FsbHksIGl0IGNvbWVzIGZyb20gbGliZ3N0Y2hlY2suCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9idWZmZXIpOgoJICBGaXggdHlwZSBvZiB2YXJpYWJsZSAoR3N0Rmxvd1JldHVybiwgbm90IEdzdFN0YXRlQ2hhbmdlUmV0dXJuKQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGEgYnVuY2ggb2YgY2FzdHMgdG8gbWFrZSB2YXJpb3VzIGNvbnN0YW50cyBmaXQgdGhlIHR5cGVzCgkgIHRoZXkncmUgYmVpbmcgYXNzaWduZWQgdG8uCgoyMDA4LTAxLTEwIDIxOjA2OjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBJbXByb3ZlIGRvY3MgYW5kIGFkZCBzb21lIGlkZWFzIGZvciBtYWtpbmcgdGhpcyBtb3JlIGdlbmVyYWwtcHVycG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgSW1wcm92ZSBkb2NzIGFuZCBhZGQgc29tZSBpZGVhcyBmb3IgbWFraW5nIHRoaXMgbW9yZSBnZW5lcmFsLXB1cnBvc2UuCgoyMDA4LTAxLTEwIDE1OjU1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IEFkZCBHU1RfQ0FUX1RZUEVTLCBmb3IgY29uc2lzdGVuY3ksIGFuZCBzbyB0aGF0IHRoZSBvdGhlciBkZWJ1ZyBjYXRlZ29yaWVzIGRvbid0IG1ha2UgZnVuIG9mIGl0LiBTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoR1NUX0NBVF9UWVBFUyk6CgkgIEFkZCBHU1RfQ0FUX1RZUEVTLCBmb3IgY29uc2lzdGVuY3ksIGFuZCBzbyB0aGF0IHRoZSBvdGhlcgoJICBkZWJ1ZyBjYXRlZ29yaWVzIGRvbid0IG1ha2UgZnVuIG9mIGl0LiBTcG90dGVkIGJ5IFNhdXIgb24gSVJDLgoKMjAwOC0wMS0xMCAxMzowMzozNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBNb3ZlIHR5cGVzLmggZnJvbSBFWFRSQV9ESVNUIHRvIG5vaW5zdF9IRUFERVJTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1vdmUgdHlwZXMuaCBmcm9tIEVYVFJBX0RJU1QgdG8gbm9pbnN0X0hFQURFUlMuCgoyMDA4LTAxLTEwIDEyOjE0OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBhdXRvZ2VuLnNoOiBBZGQgLVduby1wb3J0YWJpbGl0eSB0byB0aGUgYXV0b21ha2UgcGFyYW1ldGVycyB0byBzdG9wIHdhcm5pbmdzIGFib3V0IEdOVSBtYWtlIGV4dGVuc2lvbnMgYmVpbmcgdXNlZC4gV2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncwoJICBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlIHJlcXVpcmUgR05VIG1ha2UgaW4gYWxtb3N0CgkgIGV2ZXJ5IE1ha2VmaWxlIGFueXdheS4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBTV9QUk9HX0NDX0NfTyBhcyBhIGNvbXBpbGVyIHRoYXQgYWNjZXB0cyBib3RoIC1jIGFuZCAtbwoJICBhdCB0aGUgc2FtZSB0aW1lIGlzIHJlcXVpcmVkIGZvciBwZXIgdGFyZ2V0IGZsYWdzLgoKMjAwOC0wMS0wOSAxODoyMzozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgYW5kIGRlcHJlY2F0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHU1RfUExVR0lOX0RFRklORV9TVEFUSUMpOgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGFuZCBkZXByZWNhdGUKCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBzaW5jZSBpdCdzIG5vdCBwb3J0YWJsZQoJICAoIzQ5ODkyNCkuCgkgIEFsc28sIGluIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpLCBtYWtlIHN1cmUgdG8gY2FsbAoJICBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGNhbGxpbmcgR0xpYiBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX2xpc3RfYXBwZW5kKCkgaWYgd2UncmUgbm90IGluaXRpYWxpc2VkIHlldCwgc2luY2UgdGhhdAoJICBtYXkgbGVhZCB0byByYW5kb20gY3Jhc2hlcyB3aXRoIG9sZGVyIEdTbGljZS9HTGliIHZlcnNpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgQWRhcHQgdW5pdCB0ZXN0IHRvIGFib3ZlIGNoYW5nZXMuCgoyMDA4LTAxLTA5IDE2OjM2OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogWWV0IGFub3RoZXIgZ3JhdHVpdG91cyBHU3RyaW5nIG1pY3JvLW9wdGltaXNhdGlvbjogYWRkIGEgKHByaXZhdGUpIGZ1bmN0aW9uIHRoYXQgc2VyaWFsaXNlcyBhIHN0cnVjdHVyZSBhcHBlbmRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoU1RSVUNUVVJFX0VTVElNQVRFRF9TVFJJTkdfTEVOKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfQVNDSUlfSVNfU1RSSU5HKSwKCSAgKHByaXZfZ3N0X3N0cnVjdHVyZV9hcHBlbmRfdG9fZ3N0cmluZyksIChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyk6CgkgIFlldCBhbm90aGVyIGdyYXR1aXRvdXMgR1N0cmluZyBtaWNyby1vcHRpbWlzYXRpb246IGFkZCBhIChwcml2YXRlKQoJICBmdW5jdGlvbiB0aGF0IHNlcmlhbGlzZXMgYSBzdHJ1Y3R1cmUgYXBwZW5kaW5nIHRvIGFuIGV4aXN0aW5nCgkgIEdTdHJpbmcsIHNvIHRoYXQgd2hlbiB3ZSBzZXJpYWxpc2UgY2FwcyB3ZSBkb24ndCBuZWVkIHRvIGFsbG9jK2ZyZWUKCSAgYSB0aHJvd2F3YXkgR1N0cmluZyBmb3IgZWFjaCBzdHJ1Y3R1cmUgKGVhY2ggb2Ygd2hpY2ggYWxzbyBlbnRhaWxpbmcKCSAgbXVsdGlwbGUgcmVhbGxvY3Mgb24gdGhlIHdheSk7IGFsc28gdXNlIGdfc3RyaW5nX3NpemVkX25ldygpIGluCgkgIHZhcmlvdXMgcGxhY2VzIHdpdGggYW4gYXBwcm94aW1hdGUgc3RyaW5nIGxlbmd0aCB0byBhdm9pZCByZWFsbG9jcwoJICB3aXRoaW4gR1N0cmluZy4gU2VlICM1MDAxNDMuCgoyMDA4LTAxLTA5IDE1OjA1OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbHdheXMgY2hlY2sgVVRGLTggY29uZm9ybWFuY2Ugb2Ygc3RydWN0dXJlIHN0cmluZ3MgYW5kIG5vdCBvbmx5IGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgQWx3YXlzIGNoZWNrIFVURi04IGNvbmZvcm1hbmNlIG9mIHN0cnVjdHVyZSBzdHJpbmdzIGFuZCBub3Qgb25seQoJICBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkOyByZWFzb25pbmc6IHRoZSBiZWhhdmlvdXIgb2YKCSAgdGhlIGFjdHVhbCBjb2RlIHNob3VsZG4ndCByZWFsbHkgY2hhbmdlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZQoJICBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQgb3Igbm90ICgjNTA4MjkxKS4KCjIwMDgtMDEtMDkgMTM6NDg6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBSZW1vdmUgb2xkIGNvdmVyYWdlIHRhcmdldCBpbiBmYXZvdXIgb2YgIm1ha2UgbGNvdiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBSZW1vdmUgb2xkIGNvdmVyYWdlIHRhcmdldCBpbiBmYXZvdXIgb2YgIm1ha2UgbGNvdiIuCgoyMDA4LTAxLTA5IDEyOjI1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFRoZSBzdGFydCBzZWdtZW50IGZvciByZXZlcnNlIHBsYXliYWNrIGdvZXMgZnJvbSBzdGFydCB0byBsYXN0X3N0b3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFRoZSBzdGFydCBzZWdtZW50IGZvciByZXZlcnNlIHBsYXliYWNrIGdvZXMgZnJvbSBzdGFydCB0byBsYXN0X3N0b3AuCgoyMDA4LTAxLTA5IDEyOjIyOjIyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oOiBDYXN0IHRoZSByZXN1bHRzIGZyb20gdGhlIHRpbWV2YWwvc3BlY190b190aW1lIG1hY3JvcyB0byB3aGF0IHRoZSBkb2NzIHNheSBpdCBjYXN0cyB0bywgYSBHc3RDbG9ja1RpbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF4aXMgY29tPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBDYXN0IHRoZSByZXN1bHRzIGZyb20gdGhlIHRpbWV2YWwvc3BlY190b190aW1lIG1hY3JvcyB0byB3aGF0IHRoZQoJICBkb2NzIHNheSBpdCBjYXN0cyB0bywgYSBHc3RDbG9ja1RpbWUuIGZpeGVzICM1MDgxNzUuCgoyMDA4LTAxLTA5IDEyOjE5OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBVcGRhdGUgc29tZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBVcGRhdGUgc29tZSBjb21tZW50cy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBJbXByb3ZlIHByaW50aW5nIG9mIGZsYWdzLgoKMjAwOC0wMS0wOCAyMToxMzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcmludCBlbGVtZW50IG5hbWUgd2l0aCBnX3dhcm5pbmcoKSBpZiB0aGVyZSdzIGEgcHJvYmxlbSB3aXRoIHRoZSB1bml0IHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgUHJpbnQgZWxlbWVudCBuYW1lIHdpdGggZ193YXJuaW5nKCkgaWYgdGhlcmUncyBhIHByb2JsZW0KCSAgd2l0aCB0aGUgdW5pdCBzaXplLgoKMjAwOC0wMS0wOCAwMjowNzozOCArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0LzogRml4IGVtcHR5IHByb3RvdHlwZXMuICBGaXhlcyBidWcgIzUwNzk1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEZpeCBlbXB0eSBwcm90b3R5cGVzLiAgRml4ZXMgYnVnICM1MDc5NTcuCgoyMDA4LTAxLTA4IDAyOjAxOjM0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOiBGaXggdHlwby4KCjIwMDgtMDEtMDcgMTE6MjM6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdXBkYXRlIHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gaW4gZG9fc2VlaywgdGhhdCdzIHRoZSBwb3NpdGlvbiB3ZSBkaWQgYSBzZWVrIHRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBEb24ndCB1cGRhdGUgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBpbiBkb19zZWVrLCB0aGF0J3MgdGhlIHBvc2l0aW9uIHdlCgkgIGRpZCBhIHNlZWsgdG8uCgkgIFJlYWQgYmFja3dhcmRzIHdoZW4gd2UgaGF2ZSBhIG5lZ2F0aXZlIHJhdGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoZXZlbnRfZnVuYyksICh3YWl0X2VvcyksCgkgIChzZXR1cF9maWxlc3JjKSwgKGNsZWFudXBfZmlsZXNyYyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkIGNoZWNrIGZvciByZXZlcnNlIHJlYWRpbmcuCgoyMDA4LTAxLTA3IDA5OjQ3OjQ5ICswMDAwICBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXJAZ2VudG9vLm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogRGVjaWRlIHdoaWNoIGhlYWRlciB0byBpbmNsdWRlIGJhc2VkIG9uIHRoZSB1c2VybGFuZCBBQkkgdGFyZ2V0IGFuZCBub3QgdGhlIGtlcm5lbC9jcHUuIEZpeCB1cCBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXhpcyBCYWxsaWVyIDxhYmFsbGllciBhdCBnZW50b28gb3JnPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgRGVjaWRlIHdoaWNoIGhlYWRlciB0byBpbmNsdWRlIGJhc2VkIG9uIHRoZSB1c2VybGFuZCBBQkkgdGFyZ2V0CgkgIGFuZCBub3QgdGhlIGtlcm5lbC9jcHUuIEZpeCB1cCBzdHJ1Y3R1cmUgc2l6ZXMgb2YgcHBjNjQgaGVhZGVyCgkgIGZvciA2NC1iaXQgdXNlcmxhbmQgKCM1MDM1OTApLiAgTWlnaHQgbmVlZCBzb21ldGhpbmcgc2ltaWxhciBmb3IKCSAgeDg2IHRvby4KCjIwMDgtMDEtMDUgMTM6NDU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBMb2cgdGhlIHJlYXNvbiB3aHkgZm9wZW4gZmFpbHMgaW4gYWRkaXRpb24gdG8gdGhlIGZhY3QgdGhhdCBpdCBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSk6CgkgIExvZyB0aGUgcmVhc29uIHdoeSBmb3BlbiBmYWlscyBpbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IGl0IGZhaWxlZC4KCjIwMDgtMDEtMDQgMTg6NDQ6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBVc2UgIiVvcHRpb24gbmV2ZXItaW50ZXJhY3RpdmUiIHRvIHByZXZlbnQgdXNlbGVzcyBjYWxscyB0byBpc2F0dHkoKSBvbiBldmVyeSBpbnB1dCB3aGVuIHBhcnNpbmcuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgVXNlICIlb3B0aW9uIG5ldmVyLWludGVyYWN0aXZlIiB0byBwcmV2ZW50IHVzZWxlc3MgY2FsbHMgdG8gaXNhdHR5KCkKCSAgb24gZXZlcnkgaW5wdXQgd2hlbiBwYXJzaW5nLiBBbHNvIHVzZSAiJW9wdGlvbiBub2lucHV0IiB0byBub3QgZGVmaW5lCgkgIHRoZSBzdGF0aWMgaW5wdXQveXlpbnB1dCBmdW5jdGlvbnMgd2hpY2ggd2UgZG9uJ3QgdXNlIGFueXdheS4gVGhpcwoJICByZW1vdmVzIGEgY29tcGlsZXIgd2FybmluZyB3aXRoIGdjYyA0LjMgYW5kIHNhdmVzIHNvbWUgYnl0ZXMgaW4gdGhlCgkgIGxpYnJhcnkuCgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBSZWdlbmVyYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZS4KCjIwMDgtMDEtMDQgMTg6Mzk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhbmQgZW1wdHkgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiB0cnlpbmcgdG8gZml4YXRlIGFuZCBlbXB0eSBsaXN0LgoJICBGaXhlcyAjNTA2NjQzLgoKMjAwOC0wMS0wMyAwOTo0Mzo0MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBDbGFyaWZ5IHRoZSBjb21tZW50cyB0byBtYWtlIHRoZSB1c2FnZSBvZiB0aGlzIHNjcmlwdCBhbmQgd2hhdCBpdCBkb2VzIGVhc2llciB0byB1bmRlcnN0YW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIENsYXJpZnkgdGhlIGNvbW1lbnRzIHRvIG1ha2UgdGhlIHVzYWdlIG9mIHRoaXMgc2NyaXB0IGFuZCB3aGF0IGl0CgkgIGRvZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCgoyMDA4LTAxLTAxIDE3OjEwOjMyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEFkZCBtb3JlIG9wdGlvbnMgdG8gZ3N0LXBsb3QtdGltZWxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEFkZCBtb3JlIG9wdGlvbnMgdG8gZ3N0LXBsb3QtdGltZWxpbmUKCjIwMDctMTItMzEgMTk6MTE6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNvbWUgbW9yZSBpbmZvIG9uIGhvdyB0aGUgc3RyZWFtX3RpbWUgaW4gR3N0QmFzZVNpbmsgaXMgZG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTb21lIG1vcmUgaW5mbyBvbiBob3cgdGhlIHN0cmVhbV90aW1lIGluIEdzdEJhc2VTaW5rIGlzIGRvbmUuCgoyMDA3LTEyLTMwIDEzOjM2OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogcmVtb3ZlIGJvZ3VzIGNoYW5nZWxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IHJlbW92ZSBib2d1cyBjaGFuZ2Vsb2cgZW50cnkKCjIwMDctMTItMzAgMTM6MzE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IFB1dCBiYWNrIHRoZSB0Y2FzZV9zZXRfdGltZW91dCgpLCBhcHBhcmVudGx5IGl0J3MgbmVlZGVkIGFmdGVyIGFsbDsgZml4IGl0IHVwIGluIGEgd2F5IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgUHV0IGJhY2sgdGhlIHRjYXNlX3NldF90aW1lb3V0KCksIGFwcGFyZW50bHkgaXQncyBuZWVkZWQgYWZ0ZXIKCSAgYWxsOyBmaXggaXQgdXAgaW4gYSB3YXkgdGhhdCBtYWtlcyB0aGluZ3Mgd29yayB3aXRoIHZhbGdyaW5kIHRvby4KCjIwMDctMTItMzAgMTI6MjI6NDkgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBhZGQgd2FybmluZyB3aGVuIGZhaWxlZCB0byBvcGVuIGZpbGUgZm9yIHdyaXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgYWRkIHdhcm5pbmcgd2hlbiBmYWlsZWQgdG8gb3BlbiBmaWxlIGZvciB3cml0aW5nCgoyMDA3LTEyLTI4IDE0OjM0OjM0ICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBnc3QvZ3N0dmFsdWUuYzogT3B0aW1pc2F0aW9uOiBiYWlsIG91dCBvZiB0aGUgbG9vcCBhcyBlYXJseSBhcyBwb3NzaWJsZSAoIzUwMDE0MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogTGF1cmVudCBHbGF5YWwgIDxzcGdsZWdsZSB5YWhvbyBmcj4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIE9wdGltaXNhdGlvbjogYmFpbCBvdXQgb2YgdGhlIGxvb3AgYXMgZWFybHkgYXMgcG9zc2libGUgKCM1MDAxNDMpLgoKMjAwNy0xMi0yOCAxNDoxNTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEJ1bmNoIG9mIGdyYXR1aXRvdXMgbmFuby1vcHRpbWlzYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2NvbnN0cnVjdF90ZXJtX2NvbG9yKToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2h2KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2R1bXBfbWVtKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYW55X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hbnlfbGlzdF9zdHJpbmcpOgoJICBCdW5jaCBvZiBncmF0dWl0b3VzIG5hbm8tb3B0aW1pc2F0aW9ucy4KCjIwMDctMTItMjggMTM6NTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IEZpeCBsZWFrIGluIHVuaXQgdGVzdCAoYnVzIHN5bmMgaGFuZGxlciBtdXN0IHVucmVmIHRoZSBtZXNzYWdlIGlmIGl0IHJldHVybnMgR1NUX0JVU19EUk8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoYXN5bmNfZG9uZV9mdW5jKSwKCSAgKGFzeW5jX2RvbmVfZW9zX2Z1bmMpOgoJICBGaXggbGVhayBpbiB1bml0IHRlc3QgKGJ1cyBzeW5jIGhhbmRsZXIgbXVzdCB1bnJlZiB0aGUgbWVzc2FnZQoJICBpZiBpdCByZXR1cm5zIEdTVF9CVVNfRFJPUCkuIERvbid0IGZpZGRsZSB3aXRoIHRoZSBkZWZhdWx0IHRlc3QKCSAgdGltZW91dCwgdGhpcyBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgcHJlY29uZmlndXJlZCB2YWx1ZQoJICB2aWEgQ0tfREVGQVVMVF9USU1FT1VULCBhbmQgYWxzbyBicmVha3MgdGhpbmdzIHdpdGggdmFsZ3JpbmQKCSAgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIHZhbHVlIHNwZWNpZmllZCBpbiBDS19ERUZBVUxUX1RJTUVPVVQuCgoyMDA3LTEyLTI0IDE5OjIxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBZGQgYnVnIHRoYXQgd2FzIGZpeGVkIHdpdGggbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgYnVnIHRoYXQgd2FzIGZpeGVkIHdpdGggbGFzdCBjb21taXQuCgoyMDA3LTEyLTI0IDE5OjExOjI5ICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdGRpb19leHQuaCBmb3IgdGhlIGZpbGVzaW5rIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBjb25maWd1cmUuYWM6CgkgIENoZWNrIGZvciBzdGRpb19leHQuaCBmb3IgdGhlIGZpbGVzaW5rIGNoYW5nZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoYnVmZmVyX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KSwgKGdzdF9maWxlX3NpbmtfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEFkZCB0d28gcHJvcGVydGllcyB0byBjb250cm9sIHRoZSBidWZmZXJpbmcgbW9kZSBhbmQgc2l6ZS4KCSAgQVBJOiBHc3RGaWxlU2luazo6YnVmZmVyLW1vZGUKCSAgQVBJOiBHc3RGaWxlU2luazo6YnVmZmVyLXNpemUKCjIwMDctMTItMjQgMTQ6MzU6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQWRkIHNvbWUgbW9yZSBkb2NzIHRvIGV4cGxhaW4gd2h5IGEgRklYTUUgd2FzIHdyb25nbHkgYWRkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyB0byBleHBsYWluIHdoeSBhIEZJWE1FIHdhcyB3cm9uZ2x5IGFkZGVkLgoKMjAwNy0xMi0yMiAxMjo0ODoyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBGaXggdHlwbyBpbiB0aGUgZ3N0X29iamVjdF97cmVmLHVucmVmfSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIEZpeCB0eXBvIGluIHRoZSBnc3Rfb2JqZWN0X3tyZWYsdW5yZWZ9IGRvY3VtZW50YXRpb24uCgoyMDA3LTEyLTIxIDIxOjE3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBEb24ndCB1c2UgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBpdCBpcyBub3QgcG9ydGFibGUgYW5kIGlzIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgKHNlZSAjNDk4OTI0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRG9uJ3QgdXNlIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgaXQgaXMgbm90IHBvcnRhYmxlIGFuZCBpcwoJICBnb2luZyB0byBiZSBkZXByZWNhdGVkIChzZWUgIzQ5ODkyNCkuCgoyMDA3LTEyLTIxIDIwOjU4OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kLmM6IE1ha2UgZ3N0X3R5cGVfZmluZF9yZWdpc3RlciB3b3JrIGZvciBzdGF0aWMgdHlwZWZpbmQgZnVuY3Rpb25zLCBpZS4gYWxsb3cgcGFzc2luZyBwbHVnaW4gPT0gTlVMTCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgIE1ha2UgZ3N0X3R5cGVfZmluZF9yZWdpc3RlciB3b3JrIGZvciBzdGF0aWMgdHlwZWZpbmQgZnVuY3Rpb25zLAoJICBpZS4gYWxsb3cgcGFzc2luZyBwbHVnaW4gPT0gTlVMTCAocHJlcmVxdWlzaXRlIGZvciAjNDk4OTI0KS4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgU21hbGwgZG9jcyBhZGRpdGlvbi4KCjIwMDctMTItMjEgMTM6NTQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlYWxseSB1bmxpbmsgdGhlIHBlZXIgcGFkIGluc3RlYWQgb2Ygc2V0dGluZyB0aGUgcGVlciBwb2ludGVyIHRvIE5VTEwgd2hlbiB3ZSBkaXNwb3NlIHRoZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIFJlYWxseSB1bmxpbmsgdGhlIHBlZXIgcGFkIGluc3RlYWQgb2Ygc2V0dGluZyB0aGUgcGVlciBwb2ludGVyIHRvIE5VTEwKCSAgd2hlbiB3ZSBkaXNwb3NlIHRoZSBwYWQuCgkgIFRoaXMgY29ycmVjdGx5IGNhbGxzIHRoZSB1bmxpbmsgZnVuY3Rpb25zIGFuZCBtYWtlcyBzdXJlIHRoYXQgdGhlIHBlZXIKCSAgZG9lcyBub3QgaGF2ZSBhIGhhbmRsZSB0byBpbnZhbGlkIG1lbW9yeS4gU2VlICM1MDQ2NzEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZCB0ZXN0c3VpdGUgZm9yIGFib3ZlIGNhc2UuCgoyMDA3LTEyLTIwIDA5OjIwOjI3ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBkZXRlY3Rpb24gb2YgdGhlIGNoZWNrIHZlcnNpb24gd2UncmUgY29tcGlsaW5nIGFnYWluc3QgKHdvdWxkIG90aGVyd2lzZSBicmVhayBpZiBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF4aXMgY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBkZXRlY3Rpb24gb2YgdGhlIGNoZWNrIHZlcnNpb24gd2UncmUgY29tcGlsaW5nIGFnYWluc3QgKHdvdWxkCgkgIG90aGVyd2lzZSBicmVhayBpZiBjaGVjayBnb2VzIHYwLjEwLjApOyBjb3JyZWN0bHkgcmVwb3J0IHRoZQoJICBuYW1lIG9mIHRoZSBmYWlsZWQgdGVzdCBhZ2FpbiBpbiBjYXNlIG9mIGZhaWx1cmUsIGluc3RlYWQgb2YKCSAganVzdCAndGYnIChmaXhlcyAjNTA0NDk5KS4KCjIwMDctMTItMTkgMTc6NDk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxsb3cgc2VuZGluZyBFT1MgdG8gdGhlIHNvdXJjZSB0byBtYWtlIGl0IHNlbmQgb3V0IGFuIEVPUyBldmVudCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWxsb3cgc2VuZGluZyBFT1MgdG8gdGhlIHNvdXJjZSB0byBtYWtlIGl0IHNlbmQgb3V0IGFuIEVPUyBldmVudCBmcm9tCgkgIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBVcGRhdGUgZG9jcyBhbmQgZGVwcmVjYXRlIHRoZSBvbGQgTlVMTC9SRUFEWSBzaHV0ZG93biBtZXRob2QuCgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYmFzZXNyY19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGNvbnRyb2xsZWQgc2h1dGRvd24uCgoyMDA3LTEyLTE5IDEyOjQ4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTbWFsbCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNtYWxsIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgVGhlIHNlZWsgZm9ybWF0IGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgc2VnbWVudCBmb3JtYXQgd2hlbiB0aGUgc3RhcnQKCSAgYW5kIHN0b3AgdmFsdWVzIGFyZSBub3QgdG8gYmUgdXBkYXRlZCwgd2hlbiB3ZSBvbmx5IGRvIGEgcmF0ZSBjaGFuZ2UgZm9yCgkgIGV4YW1wbGUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgQWRkIGEgdGVzdGNhc2UgZm9yIHRoZSByYXRlLW9ubHkgc2Vla3MsIGNoZWNraW5nIHRoYXQgdGhlIGZvcm1hdCBpcwoJICBjb3JyZWN0bHkgaWdub3JlZCB3aGVuIHN0YXJ0IGFuZCBzdG9wIGFyZSBub3QgdXBkYXRlZC4KCjIwMDctMTItMTggMTM6Mzg6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnksIGdzdGVudW10eXBlcy5jIGNoYW5nZXMgd2VyZSBub3QgY29tbWl0dGVkIGJlY2F1c2UgdGhlcmUgd2VyZSBub25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZyBzdXJnZXJ5LCBnc3RlbnVtdHlwZXMuYyBjaGFuZ2VzIHdlcmUgbm90IGNvbW1pdHRlZCBiZWNhdXNlIHRoZXJlIHdlcmUgbm9uZQoKMjAwNy0xMi0xOCAxMzoxODozNSArMDAwMCAgTWF0dGhpYXMgQm9sdGUgPHBob3RvbkBtYWlsLnVwYi5kZT4KCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogU29tZSBpbmRlbnRpb24gZml4ZXMgYnkgZ3N0LWluZGVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiAocmVnaXN0ZXJfZ3N0X2J1ZmZlcl9mbGFnKSwKCSAgKHJlZ2lzdGVyX2dzdF9idWZmZXJfY29weV9mbGFncyksIChyZWdpc3Rlcl9nc3RfY2xvY2tfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X2RlYnVnX2dyYXBoX2RldGFpbHMpLAoJICAocmVnaXN0ZXJfZ3N0X3N0YXRlX2NoYW5nZV9yZXR1cm4pLCAocmVnaXN0ZXJfZ3N0X3N0YXRlX2NoYW5nZSksCgkgIChyZWdpc3Rlcl9nc3RfZWxlbWVudF9mbGFncyksIChyZWdpc3Rlcl9nc3RfY29yZV9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3RfbGlicmFyeV9lcnJvciksIChyZWdpc3Rlcl9nc3RfcmVzb3VyY2VfZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X3N0cmVhbV9lcnJvciksIChyZWdpc3Rlcl9nc3RfZXZlbnRfdHlwZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfZXZlbnRfdHlwZSksIChyZWdpc3Rlcl9nc3RfaW5kZXhfZW50cnlfdHlwZSksCgkgIChyZWdpc3Rlcl9nc3RfYXNzb2NfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X21lc3NhZ2VfdHlwZSksCgkgIChyZWdpc3Rlcl9nc3RfbWluaV9vYmplY3RfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X3BhZF9saW5rX3JldHVybiksCgkgIChyZWdpc3Rlcl9nc3RfZmxvd19yZXR1cm4pLCAocmVnaXN0ZXJfZ3N0X3BhZF90ZW1wbGF0ZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfcGlwZWxpbmVfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X3BsdWdpbl9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3RfdGFnX21lcmdlX21vZGUpLCAocmVnaXN0ZXJfZ3N0X2FsbG9jX3RyYWNlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF90eXBlX2ZpbmRfcHJvYmFiaWxpdHkpLCAocmVnaXN0ZXJfZ3N0X3BhcnNlX2Vycm9yKToKCSAgU29tZSBpbmRlbnRpb24gZml4ZXMgYnkgZ3N0LWluZGVudC4KCSAgUGF0Y2ggYnk6IE1hdHRoaWFzIEJvbHRlIDxwaG90b24gYXQgbWFpbCBkb3QgdXBiIGRvdCBkZT4KCSAgKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBGaXggY29tcGlsYXRpb24gd2l0aCBWUzggYW5kIGluY2x1ZGUgc29tZSBtaXNzaW5nIGZpbGVzLgoKMjAwNy0xMi0xOCAxMjowMzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IFNtYWxsIGRvY3MgYWRkaXRpb246IG1lbnRpb24gdGhhdCB0aGUgc3RyaW5ncyByZXR1cm5lZCBieSBnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyooKSBhcmUgaW4gVVRGLTggZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uOiBtZW50aW9uIHRoYXQgdGhlIHN0cmluZ3MgcmV0dXJuZWQgYnkKCSAgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcqKCkgYXJlIGluIFVURi04IGVuY29kaW5nLgoKMjAwNy0xMi0xNyAxOTo1OTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBUaGUgY2hlY2stZXhwb3J0cyBzdHVmZiBtb3ZlZCB0byBjb21tb24vd2luMzIubWFrLCBzbyBpbmNsdWRlIHRoYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBUaGUgY2hlY2stZXhwb3J0cyBzdHVmZiBtb3ZlZCB0byBjb21tb24vd2luMzIubWFrLCBzbyBpbmNsdWRlIHRoYXQuCgoyMDA3LTEyLTE3IDE2OjM4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2UgX3dhaXRfcGxheWluZygpIG5vdCBjaGVjayBhbnkgdmFyaWFibGVzIHNvIHRoYXQgd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiBmcm9tIHN1YmNsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wbGF5aW5nKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIF93YWl0X3BsYXlpbmcoKSBub3QgY2hlY2sgYW55IHZhcmlhYmxlcyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoaXMKCSAgZnVuY3Rpb24gZnJvbSBzdWJjbGFzc2VzLiBNb3ZlIHRoZSBjaGVja3MgZWxzZXdoZXJlIHNpbWlsYXIgdG8KCSAgX3dhaXRfcHJlcm9sbCgpIGluIGJhc2VzaW5rLgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9ubHkgc2lnbmFsIHRoZSBMSVZFIGNvbmQgd2hlbiB3ZSBhcmUgZ29pbmcgYmFjayB0byBQTEFZSU5HLgoKMjAwNy0xMi0xNiAxODoyOToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBVc2UgZ19yZW1vdmUoKSBhbmQgZ19yZW5hbWUoKS4gQ2hlY2sgcmVzdWx0IG9mIGdfcmVuYW1lKCksIGFuZCBkb24ndCBsZWFrIHRoZSBvcGVuIGZpbGUgZGVzYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpOgoJICBVc2UgZ19yZW1vdmUoKSBhbmQgZ19yZW5hbWUoKS4gQ2hlY2sgcmVzdWx0IG9mIGdfcmVuYW1lKCksIGFuZAoJICBkb24ndCBsZWFrIHRoZSBvcGVuIGZpbGUgZGVzY3JpcHRvciBpZiB3ZSBlcnJvciBvdXQgd2hlbiB3cml0aW5nLgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIE11c3QgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBjbG9zZSgpIGFmdGVyIHdyaXRpbmcgb3V0IHRoZSBuZXcKCSAgcmVnaXN0cnkgZmlsZS4gIFNvbWV0aW1lcyB3cml0ZSBwcm9ibGVtcyBzdWNoIGFzIG91dC1vZi1kaXNrc3BhY2UKCSAgYXJlIG9ubHkgcmVwb3J0ZWQgd2hlbiB0aGUgZmlsZSBpcyBjbG9zZWQgYW5kIG5vdCBhbHJlYWR5IGR1cmluZwoJICB0aGUgd3JpdGUuICBUaGlzIG1heSBoYXZlIGNhdXNlZCBwYXJ0aWFsL2Jyb2tlbiByZWdpc3RyeSBmaWxlcyBpbgoJICBzb21lIHJhcmUgY2lyY3Vtc3RhbmNlcy4gU2hvdWxkIGZpeCAjNTAzNjc1LgoKMjAwNy0xMi0xNiAxNzozNzoxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvOiBJZ25vcmUgZmlsZXMgZ2VuZXJhdGVkIGJ5IG5ldyBjb21tb24vKiBtb2RpZmljYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0Ly5jdnNpZ25vcmU6CgkgICogZG9jcy9saWJzLy5jdnNpZ25vcmU6CgkgICogZG9jcy9wbHVnaW5zLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBmaWxlcyBnZW5lcmF0ZWQgYnkgbmV3IGNvbW1vbi8qIG1vZGlmaWNhdGlvbnMKCjIwMDctMTItMTUgMTU6MTk6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogWWVzLCB5b3UgY2FuIGFsc28gaGF2ZSBhIDxUQUI+IGlmIHlvdSB3YW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIFllcywgeW91IGNhbiBhbHNvIGhhdmUgYSA8VEFCPiBpZiB5b3Ugd2FudC4KCjIwMDctMTItMTUgMTQ6NTg6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIG5ldyBiYXNldHJhbnNmb3JtIEFQSSB0byB3aW4gZXhwb3J0IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBiYXNldHJhbnNmb3JtIEFQSSB0byB3aW4gZXhwb3J0IGZpbGUuCgoyMDA3LTEyLTE1IDE0OjQyOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEFkanVzdCB0aGUgdGVzdCB0byB0aGUgcmVmY291bnQgY2hhbmdlIHR3byBkYXlzIGFnby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBBZGp1c3QgdGhlIHRlc3QgdG8gdGhlIHJlZmNvdW50IGNoYW5nZSB0d28gZGF5cyBhZ28uCgoyMDA3LTEyLTE0IDIxOjM2OjUwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZmFxL2dldHRpbmcueG1sOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6IEZpeCB0eXBvLgoKMjAwNy0xMi0xNCAxNjo1MjozOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUoKSB0byBjb250cm9sIHdoZXRoZXIgdGhlIGVsZW1lbnQgY29ycmVjdGx5IGhhbmRsZXMgR1NUX0JVRkZFUl9GTEFHX0dBUCBvciBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQVBJOiBBZGQgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUoKSB0byBjb250cm9sIHdoZXRoZXIKCSAgdGhlIGVsZW1lbnQgY29ycmVjdGx5IGhhbmRsZXMgR1NUX0JVRkZFUl9GTEFHX0dBUCBvciBzaG91bGRuJ3QKCSAgZ2V0IGJ1ZmZlcnMgd2l0aCB0aGlzIGZsYWcgYXQgYWxsLiBGaXhlcyAjNTAzMjMxLgoKMjAwNy0xMi0xMyAxNjo0OTo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IFJlcGxhY2UgZ3N0X3BhZF9nZXRfcGFyZW50IGJ5IEdTVF9PQkpFQ1RfUEFSRU5UIGluc2lkZSBzdHJlYW1pbmcgdGhyZWFkLiBDb3JyZWN0IGxvZyBtZXNzYWdlIGluIGdzdGJhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmVwbGFjZSBnc3RfcGFkX2dldF9wYXJlbnQgYnkgR1NUX09CSkVDVF9QQVJFTlQgaW5zaWRlIHN0cmVhbWluZwoJICB0aHJlYWQuIENvcnJlY3QgbG9nIG1lc3NhZ2UgaW4gZ3N0YmFzZXNyYy5jLgoKMjAwNy0xMi0xMyAxMzo1OTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggcG9zc2libGUgY29tcGlsZXIgd2FybmluZyAoIzUwMzQxNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VuY29ubmVjdGVkX3BhZCk6CgkgIEZpeCBwb3NzaWJsZSBjb21waWxlciB3YXJuaW5nICgjNTAzNDE3KS4KCjIwMDctMTItMTMgMTE6NDE6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IERvbid0IHVzZSBHU1RfQ0FUX0VWRU5UIGhlcmUgZm9yIGxvZ2dpbmcsIGl0IG1ha2VzIG5vIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgIERvbid0IHVzZSBHU1RfQ0FUX0VWRU5UIGhlcmUgZm9yIGxvZ2dpbmcsIGl0IG1ha2VzIG5vIHNlbnNlLgoKMjAwNy0xMi0xMyAxMDozMTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIHN1cHBvcnQgZm9yIEdzdEZyYWN0aW9uIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEFkZCBzdXBwb3J0IGZvciBHc3RGcmFjdGlvbiBwcm9wZXJ0aWVzLgoKMjAwNy0xMi0xMiAyMzoyMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBBZGQgY2hlY2stZXhwb3J0cyB0YXJnZXQgYW5kIHJ1biBpdCBhcyBwYXJ0IG9mICdtYWtlIGNoZWNrJyAoc2VlICM0OTkxNDAgYW5kICM0OTM5ODMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgQWRkIGNoZWNrLWV4cG9ydHMgdGFyZ2V0IGFuZCBydW4gaXQgYXMgcGFydCBvZiAnbWFrZSBjaGVjaycKCSAgKHNlZSAjNDk5MTQwIGFuZCAjNDkzOTgzKS4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZm8uYzogKF9wcml2X2dzdF9pbl92YWxncmluZCksIChfZ3N0X2RlYnVnX2luaXQpLAoJICAoX3ByaXZfZ3N0X2luX3ZhbGdyaW5kKToKCSAgKiBnc3QvZ3N0aW5mby5oOiAoR3N0TG9nRnVuY3Rpb24pOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAodHlwZV9maW5kX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6ICh0eXBlX2ZpbmRfZGVidWcpLCAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoR1NUX0NBVF9ERUZBVUxUKSwgKHBhcmVudF9jbGFzcyksIChwcml2X2dzdF9jb250cm9sbGVyX2tleSksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKEdTVF9DQVRfREVGQVVMVCksCgkgIChHU1RfQ0FUX0RFRkFVTFQpLCAoZ3N0X29iamVjdF91bmNvbnRyb2xfcHJvcGVydGllcyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sbGVyKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xsZXIpLAoJICAoZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYyksIChnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfc291cmNlKSwgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cyksIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheSksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgIE1ha2Ugc29tZSBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgc3RhdGljIHN0YXRpYzsgcmVuYW1lIHNvbWUKCSAgcHJpdmF0ZSBzeW1ib2xzIHNvIHRoYXQgdGhleSBkb24ndCBnZXQgZXhwb3J0ZWQ7IGFkZCBzb21lIEZJWE1FCgkgIGNvbW1lbnRzIHNvIHdlIGNhbiBtb3ZlIGFjY2lkZW50YWxseSBleHBvcnRlZCBmdW5jdGlvbnMgaW50bwoJICBvdXIgcHJpdmF0ZSBzZWN0aW9uIGluIDAuMTEuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfdXRpbHNfZ2V0X3RpbWVzdGFtcCgpLgoKMjAwNy0xMi0xMiAxNDowNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IEFkZCBtb3JlIG1pc3NpbmcgIlNpbmNlOiIgdGFncyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQWRkIG1vcmUgbWlzc2luZyAiU2luY2U6IiB0YWdzIHRvIGRvY3MuCgoyMDA3LTEyLTEyIDA2OjU4OjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIG1pc2luZyAiU2luY2U6IiB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1pc2luZyAiU2luY2U6IiB0byBkb2NzLgoKMjAwNy0xMi0xMSAyMjowMzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJbmNsdWRlICJnbGliLWNvbXBhdC1wcml2YXRlLmgiIHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtIHdpdGggZ2xpYiA8IDIuMTAuIEZpeGVzICM1MDMxMzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgSW5jbHVkZSAiZ2xpYi1jb21wYXQtcHJpdmF0ZS5oIiB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbSB3aXRoCgkgIGdsaWIgPCAyLjEwLiBGaXhlcyAjNTAzMTMxLgoKMjAwNy0xMi0xMSAyMDozMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFjdHVhbGx5IGl0cyBub3QgUFVSRSBhcyBpdCBnZXRzIHRoZSB0aW1lIGZyb20gZWxzZXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWN0dWFsbHkgaXRzIG5vdCBQVVJFIGFzIGl0IGdldHMgdGhlIHRpbWUgZnJvbSBlbHNld2hlcmUuCgoyMDA3LTEyLTExIDIwOjIzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2UgR1NUX0dFVF9USU1FU1RBTVAgaW50byBnc3RfdXRpbF9nZXRfdGltZXN0YW1wIGFuZCByZXBsYWNlIGFsbCB1c2VzIGFzIHdlIGRvbid0IGhhdmUgSEFWRV9QT1NJWF9USU1FUlMgaW4gcHVibGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQ2hhbmdlIEdTVF9HRVRfVElNRVNUQU1QIGludG8gZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCBhbmQgcmVwbGFjZSBhbGwKCSAgdXNlcyBhcyB3ZSBkb24ndCBoYXZlIEhBVkVfUE9TSVhfVElNRVJTIGluIHB1YmxpYyBoZWFkZXJzLgoJICBUaGFua3MgVGltIGZvciBzcG90dGluZy4KCjIwMDctMTItMTEgMTU6Mjk6MjYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlIGJ5IG1pcnJvcmluZyBsYXRlc3QgRmVkb3JhIG9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZSBieSBtaXJyb3JpbmcgbGF0ZXN0IEZlZG9yYSBvbmUKCjIwMDctMTItMDkgMDQ6Mjg6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgZGVmaW5lIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZm9yIHJlbGVhc2VzLiBGaXhlcyAjNDk4MTgxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCjIwMDctMTItMDggMTI6NTQ6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IERvbid0IGNyYXNoIGluIF9mcm9tX3N0cmluZygpIGlmIHRoZSBzdHJ1Y3R1cmUgbmFtZSBpcyBub3QgdmFsaWQgKGZpeGVzICM1MDE1NjApLiAgQWxsb3cgc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWxpZGF0ZV9uYW1lKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfbmV3X3ZhbGlzdCksIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICBEb24ndCBjcmFzaCBpbiBfZnJvbV9zdHJpbmcoKSBpZiB0aGUgc3RydWN0dXJlIG5hbWUgaXMgbm90IHZhbGlkCgkgIChmaXhlcyAjNTAxNTYwKS4gIEFsbG93IHN0cnVjdHVyZSBuYW1lcyB0byBzdGFydCB3aXRoIGEgbnVtYmVyCgkgIGFnYWluICh0aGlzIGFwcGFyZW50bHkgYnJva2UgdGhlIHVidW50dSBjb2RlYyBpbnN0YWxsZXIpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGNyYXNoOyB1cGRhdGUgdW5pdCB0ZXN0cyBmb3IgbmV3IGJlaGF2aW91ci4KCjIwMDctMTItMDMgMTE6MDQ6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2xhcmlmeSBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2xhcmlmeSBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSBkb2N1bWVudGF0aW9uLgoJICBGaXhlcyAjNTAwOTE5LgoKMjAwNy0xMi0wMiAyMDozMzo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERvbid0IGZvcmdldCB0byBkaXN0IHtnc3QsbGlic30vc3RydWN0X2hwcGEuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IGZvcmdldCB0byBkaXN0IHtnc3QsbGlic30vc3RydWN0X2hwcGEuaC4KCjIwMDctMTEtMjggMTM6MDI6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoKMjAwNy0xMS0yOCAxMjo1Mjo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IHdyb25nIG9yZGVyIG9mIGFyZ3MgaW4gR1NUX0NMT0NLX0RJRkYoKSB1c2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggd3Jvbmcgb3JkZXIgb2YgYXJncyBpbiBHU1RfQ0xPQ0tfRElGRigpIHVzYWdlLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCjIwMDctMTEtMjggMTI6MzU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlbmFtZSBuZXcgQVBJICsgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gcmVtb3ZlIG9sZCBuYW1lIGZyb20gbGFzdCBlbnRyeS4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBSZW5hbWUgbmV3IEFQSSArIENoYW5nZUxvZyBzdXJnZXJ5IHRvIHJlbW92ZSBvbGQgbmFtZSBmcm9tIGxhc3QgZW50cnkuLgoJICBBUEk6IEdTVF9HRVRfVElNRVNUQU1QCgoyMDA3LTExLTI4IDEyOjExOjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBOb3cgaGlkZSB0aGUgZGlmZmVyZW50IGNsb2NrIHN0dWZmIGJlaGluZCBhIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgTm93IGhpZGUgdGhlIGRpZmZlcmVudCBjbG9jayBzdHVmZiBiZWhpbmQgYSBtYWNyby4KCSAgQVBJOiBHU1RfR0VUX0NVUlJFTlRfVElNRQoKMjAwNy0xMS0yOCAxMTozOTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQXBwbHkgdGhlIHBvc2l4LXRpbWVyIGNoZWNrIGZyb20gIzM2MTE1NS4gQ29uZGl0aW9uYWxseSB1c2UgdGhlIHBvc2l4IHRpbWVyIGZvciBsb2dnaW5nLiBUaGlzIGdpdmVzIGJldHRlciB0aW1lc3RhbXAgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEFwcGx5IHRoZSBwb3NpeC10aW1lciBjaGVjayBmcm9tICMzNjExNTUuIENvbmRpdGlvbmFsbHkgdXNlIHRoZSBwb3NpeAoJICB0aW1lciBmb3IgbG9nZ2luZy4gVGhpcyBnaXZlcyBiZXR0ZXIgdGltZXN0YW1wIHByZWNpc3Npb24sIGxlc3MKCSAgb3ZlcmhlYWQgYW5kIG5vIG50cCBqaXR0ZXIuCgoyMDA3LTExLTI4IDExOjExOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTb21lIGNsZWFudXAgYW5kIGNoZWNraW5nIGFnYWluc3QgaW52YWxpZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9taW5pX29iamVjdF9jb3B5X2RlZmF1bHQpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZpbmFsaXplKSwgKGdzdF9taW5pX29iamVjdF9jb3B5KSwKCSAgKGdzdF9taW5pX29iamVjdF9pc193cml0YWJsZSksIChnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSksCgkgIChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSksIChwYXJhbV9taW5pX29iamVjdF92YWxpZGF0ZSksCgkgIChnc3RfcGFyYW1fc3BlY19taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgIFNvbWUgY2xlYW51cCBhbmQgY2hlY2tpbmcgYWdhaW5zdCBpbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgoyMDA3LTExLTI4IDEwOjU4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU3RhcnQgbWVyZ2luZyBpbiB0aGUgZWFzeSBiaXRzIG9mICMzNjExNTUsIHRoZSBtb25vdG9uaWMgY2xvY2sgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBTdGFydCBtZXJnaW5nIGluIHRoZSBlYXN5IGJpdHMgb2YgIzM2MTE1NSwgdGhlIG1vbm90b25pYyBjbG9jayBwYXRjaC4KCSAgVGhpcyBvbmUgYWRkcyBhIGZldyBoYW5keSBtYWNyb3Mgd2l0aCBkb2NzIGFuZCBhIHRlc3RzdWl0ZS4KCjIwMDctMTEtMjcgMTg6NDU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEJlIGEgYml0IHNtYXJ0ZXIgd2hlbiBzZWVraW5nLCBsaWtlLCBkb24ndCB0cnkgdG8gZG8gYSBzZWVrIHdoZW4gaXQncyBub3QgbmVlZGVkLiBUaGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgIEJlIGEgYml0IHNtYXJ0ZXIgd2hlbiBzZWVraW5nLCBsaWtlLCBkb24ndCB0cnkgdG8gZG8gYSBzZWVrIHdoZW4gaXQncwoJICBub3QgbmVlZGVkLiBUaGlzIGF2b2lkcyBlcnJvcnMgd2hlbiB0aGUgZmlsZSBpcyBub3Qgc2Vla2FibGUuCgkgIEZpeGVzICM0OTk3NzEuCgoyMDA3LTExLTI2IDEzOjE2OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IHJlbW92ZSBwcmVzZXQgaW50ZXJmYWNlIGFnYWluLiA6LSguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCByZW1vdmUgcHJlc2V0IGludGVyZmFjZSBhZ2Fpbi4gOi0oLgoKMjAwNy0xMS0yMiAyMTozMjowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgJ2RlZmF1bHQgdmFsdWUnIGZvciBlbnVtcyBhbmQgZmxhZ3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBQcmludCAnZGVmYXVsdCB2YWx1ZScgZm9yIGVudW1zIGFuZCBmbGFncyB0b28uCgoyMDA3LTExLTIyIDE1OjU5OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6IE1vcmUgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgTW9yZSBpZGVhcy4KCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCB0eXBvIGFuZCBnaXZlIGJldHRlciBsb2cgb3V0cHV0LgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgTW9yZSBpZGVhcywgbWFrZSBncmFwaHMgYSBiaXQgc21hbGxlciBhbmQgZml4IHBhcmFtIG5hbWUgaW4gbWFjcm8uCgoyMDA3LTExLTIyIDEzOjU2OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFRyeSBoYXJkZXIgdG8gdXNlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBmZ2V0cygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFRyeSBoYXJkZXIgdG8gdXNlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBmZ2V0cygpLgoKMjAwNy0xMS0yMSAxNjowODoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBGb3IgdGhlc2VzIHR3byBmZ2V0cyB3ZSBoYW5kbGUgdGhlIGVycm9yIGJlbG93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZvciB0aGVzZXMgdHdvIGZnZXRzIHdlIGhhbmRsZSB0aGUgZXJyb3IgYmVsb3cuCgoyMDA3LTExLTIxIDEzOjQ3OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IHNlbmQgdXBzdHJlYW0gZXZlbnRzIHVwc3RyZWFtLiBGaXhlcyAjNDk4NzQ2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBPbmx5IHNlbmQgdXBzdHJlYW0gZXZlbnRzIHVwc3RyZWFtLiBGaXhlcyAjNDk4NzQ2LgoKMjAwNy0xMS0yMSAxMzoyNzo1MCArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBoYW5kb2ZmIHNpZ25hbCBlbWlzc2lvbi4gRml4ZXMgIzQ5ODY5NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28gZG90IGZyPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBkaXNhYmxlIGhhbmRvZmYgc2lnbmFsIGVtaXNzaW9uLiBGaXhlcyAjNDk4Njk0LgoJICBBUEk6IEdzdElkZW50aXR5OjpzaWduYWwtaGFuZG9mZnMKCjIwMDctMTEtMjEgMDk6NDY6NTAgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBZZXQgYW5vdGhlciBtaXNzaW5nIGxpYnJhcnkgZm9yIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgKGZmdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBZZXQgYW5vdGhlciBtaXNzaW5nIGxpYnJhcnkgZm9yIHRoZQoJICB1bmluc3RhbGxlZCBzY3JpcHQgKGZmdCkKCjIwMDctMTEtMjEgMDA6MjQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6IEFkZCBhIHF1ZXN0aW9uIGFib3V0IGhvdyB0byBzdWJtaXQgbmV3IHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIEFkZCBhIHF1ZXN0aW9uIGFib3V0IGhvdyB0byBzdWJtaXQgbmV3IHRyYW5zbGF0aW9ucy4KCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBVcGRhdGUgdGhlIGNvbnRhY3QgZW1haWwgYWRkcmVzcyBmb3IgdGhlIFRyYW5zbGF0aW9uIFByb2plY3QKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFRoZSBwYXJlbnRfY2xhc3MgZm9yIGZkc3JjIGlzIHB1c2hzcmMsIG5vdCBHc3RFbGVtZW50LgoKMjAwNy0xMS0yMCAxNjozNDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBQbHVnIGEgbGVhayBhbmQgZml4IHNhdmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBQbHVnIGEgbGVhayBhbmQgZml4IHNhdmluZy4KCjIwMDctMTEtMjAgMTY6MTA6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZ3N0X3ByZXNldF9fZ2V0X3Byb3BlcnR5X25hbWVzKCkgZnVuY3Rpb24gdG8gdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBnc3RfcHJlc2V0X19nZXRfcHJvcGVydHlfbmFtZXMoKSBmdW5jdGlvbiB0byB0aGUgZG9jcwoJICB0byBmaXggdGhlIGJ1aWxkLgoKMjAwNy0xMS0yMCAxNTo0NjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC4qOiBDaGFuZ2UgX2dldF9wcmVzZXRfbmFtZXMgQVBJIHRvIHJldHVybiBhIHN0cnYgd2l0aCBjb3BpZXMuIEFkZCBfZ2V0X3Byb3BlcnR5X25hbWVzIHRvIGFsbG93IGltcGxlbWVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIENoYW5nZSBfZ2V0X3ByZXNldF9uYW1lcyBBUEkgdG8gcmV0dXJuIGEgc3RydiB3aXRoIGNvcGllcy4gQWRkCgkgIF9nZXRfcHJvcGVydHlfbmFtZXMgdG8gYWxsb3cgaW1wbGVtZW50YXRpb25zIHRvIGZpbHRlciBhbmQgcHJvdmlkZQoJICBnb29kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDA3LTExLTIwIDExOjQ2OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGFub3RoZXIgbGlicmFyeSB0byB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IChzZHApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0yMCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGFub3RoZXIgbGlicmFyeSB0byB0aGUgdW5pbnN0YWxsZWQKCSAgc2NyaXB0IChzZHApLgoKMjAwNy0xMS0xOSAxNToyMzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBNb3JlIGNsZWFudXBzLCBkb2NzLCBhbmQgVE9ET3MgZnJvbSBjb21tZW50cyB0aGF0IG5vdyBzbG93bHkgY29tZSBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBNb3JlIGNsZWFudXBzLCBkb2NzLCBhbmQgVE9ET3MgZnJvbSBjb21tZW50cyB0aGF0IG5vdyBzbG93bHkgY29tZSBpbi4KCjIwMDctMTEtMTkgMTQ6Mzg6NDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbmV3IGJhc2UgbGlicmFyaWVzIGluIHRoZSBMRCBzZWFyY2ggcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBuZXcgYmFzZSBsaWJyYXJpZXMgaW4gdGhlIExECgkgIHNlYXJjaCBwYXRoLgoKMjAwNy0xMS0xOSAxMTo1NDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBGaXggYm9ndXMgd2FybmluZyBhbmQgbWFrZSB0aGUgcHJvcGVydHkgdHlwZSBzcGVjaWZpYyBjb2RlIG1vcmUgc2ltaWxhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBGaXggYm9ndXMgd2FybmluZyBhbmQgbWFrZSB0aGUgcHJvcGVydHkgdHlwZSBzcGVjaWZpYyBjb2RlIG1vcmUKCSAgc2ltaWxhci4KCjIwMDctMTEtMTkgMDk6MzM6MDUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBNYWtlIGl0IGJ1aWxkIG9uIE9TIFguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF9kZWZhdWx0X2NyZWF0ZV9wcmVzZXQpOiBNYWtlCgkgIGl0IGJ1aWxkIG9uIE9TIFguCgoyMDA3LTExLTE5IDA4OjUwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDaGFuZ2UgZW1haWwsIGNsZWFudXBzIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIENoYW5nZSBlbWFpbCwgY2xlYW51cHMgYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgY29tbWVudHMuCgkgIEFsc28gc2V0IGJ1cyBhbmQgY2xvY2sgb24gbmV3IGVsZW1lbnRzIHdoZW4gdGhlIHBpcGVsaW5lIHdhcyBpbiBlcnJvci4KCjIwMDctMTEtMTggMTk6MzA6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuIEZpeGVzICM0OTc4NTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLiBGaXhlcyAjNDk3ODU5LgoJICBTcG90dGVkIGJ5IFNhbWVlciBOYWlrLgoKMjAwNy0xMS0xNyAxNzo1MDoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IExpdHRsZSBkb2N1bWVudGF0aW9uIGltcHJvdm1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBMaXR0bGUgZG9jdW1lbnRhdGlvbiBpbXByb3ZtZW50LgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgTW9yZSBUT0RPIGNsZWFudXBzLiBSZW1vdmUgYysrIGNvbW1lbnRzLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgVE9ETyBhbmQgdXNlIHF1YXJrIGZyb20gc3RhdGljIHN0cmluZy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXNlIHF1YXJrIGZyb20gc3RhdGljIHN0cmluZy4KCjIwMDctMTEtMTcgMTc6MjQ6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogQWRkIHNvbWUgY29tbWVudHMgYW5kIFRPRE9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEFkZCBzb21lIGNvbW1lbnRzIGFuZCBUT0RPcy4KCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCBwYWRkaW5nIGZvciBmdXR1cmUgY2hhbmdlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEltcGxlbWVudCB0aGUgaWZhY2UuCgoyMDA3LTExLTE3IDE2OjQzOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgdGhlIHByZXNldCBpbnRlcmZhY2UgKEZpeGVzICMzOTY3NzkpLiBEbyBzb21lIGRvYyBjbGVhbnVwcyBhbG9uZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCB0aGUgcHJlc2V0IGludGVyZmFjZSAoRml4ZXMgIzM5Njc3OSkuIERvIHNvbWUgZG9jIGNsZWFudXBzIGFsb25nLgoKMjAwNy0xMS0xNiAwMDoyMzoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTUgPT09CgoyMDA3LTExLTE2IDAwOjA3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMTUsICJPY3RvYmVyIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4xNSA9PT0KCSAgMjAwNy0xMS0xNSAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4xNSwgIk9jdG9iZXIiCgoyMDA3LTExLTE1IDIzOjMxOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTExLTE0IDEyOjI0OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOiBDb252ZXJ0IGxpbmUgZW5kaW5ncyBiYWNrIHRvIERPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIENvbnZlcnQgbGluZSBlbmRpbmdzIGJhY2sgdG8gRE9TLgoKMjAwNy0xMS0xMyAxMTozMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFVwZGF0ZSBmYXN0IHRhZ3JlYWRpbmcgZHJhZnQgYW5kIHBlcmZvcm1hbmNlIHByb2ZpbGluZyBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBVcGRhdGUgZmFzdCB0YWdyZWFkaW5nIGRyYWZ0IGFuZCBwZXJmb3JtYW5jZSBwcm9maWxpbmcgaWRlYXMuCgoyMDA3LTExLTA5IDE0OjA1OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGVuIHVucmVmZmluZyBhIGJ1ZmZlciBiZWNhdXNlIGl0IGNvdWxkIGNhdXNlIGEgZGVhZGxvY2sgd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyKToKCSAgRG9uJ3QgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hlbiB1bnJlZmZpbmcgYSBidWZmZXIgYmVjYXVzZSBpdCBjb3VsZAoJICBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gdGhlIGZpbmFsaXplIGZ1bmN0aW9uIHdhbnRzIHRvIGdyYWIgdGhlIG9iamVjdAoJICBsb2NrIHRvby4gRml4ZXMgIzQ5NTEzMy4KCjIwMDctMTEtMDkgMTE6NTY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBbHNvIGFjY3VtdWxhdGUgdGltZSBjb3JyZWN0bHkgd2hlbiBkb2luZyByZXZlcnNlIHBsYXliYWNrLiBGaXhlcyAjNDg4MjAxLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBBbHNvIGFjY3VtdWxhdGUgdGltZSBjb3JyZWN0bHkgd2hlbiBkb2luZyByZXZlcnNlIHBsYXliYWNrLiBGaXhlcwoJICAjNDg4MjAxLAoJICBXaGVuIGNvbnZlcnRpbmcgdG8gcnVubmluZyBhbmQgc3RyZWFtIHRpbWUsIHVzZSBkZWZhdWx0IHZhbHVlcyBmb3IKCSAgc3RhcnQvc3RvcC90aW1lL2FjY3VtIHdoZW4gY29tcGFyaW5nIGRpZmZlcmVudCBmb3JtYXRzLiBGaXhlcyAjNDk0MjQ1LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBEbyBydW5uaW5nL3N0cmVhbSB0aW1lIGluIFRJTUUgZm9ybWF0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIDIgbmV3IHVuaXQgdGVzdHMgZm9yIHNlZ21lbnQgYWNjdW11bGF0aW9uLgoKMjAwNy0xMS0wNyAxNTo1Mzo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vdmUgZ2V0ZW52KCkgYmFjayBpbnRvIGdzdF9pbml0LCBzbyBldmVyeW9uZSBjYW4gbGl2ZSBoYXBwaWx5IGV2ZXIgYWZ0ZXIuIE1ha2Ugc3VyZSB0aGUgc3ltYm9sIGlzbid0IGV4cG9ydGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKHByaXZfZ3N0X2R1bXBfZG90X2RpciksIChkZWJ1Z19kdW1wX2VsZW1lbnQpLAoJICAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpOgoJICBNb3ZlIGdldGVudigpIGJhY2sgaW50byBnc3RfaW5pdCwgc28gZXZlcnlvbmUgY2FuIGxpdmUgaGFwcGlseQoJICBldmVyIGFmdGVyLiBNYWtlIHN1cmUgdGhlIHN5bWJvbCBpc24ndCBleHBvcnRlZCB0aG91Z2guCgoyMDA3LTExLTA2IDIzOjE3OjA5ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlIGVudW0gdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZSAgPHNlYmFzdGllbiBtb3V0dGUgbmV0PgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZSBlbnVtIHR5cGVzLgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVcGRhdGUgdnM2IHByb2plY3QgZmlsZXMgKCM0OTQzNDMpLgoKMjAwNy0xMS0wNiAxNzoxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVbmlmeSBmbHVzaGluZyBjb2RlLCByZW1vdmUgc29tZSBvbGQgdW5sb2NrIGNvZGUgdGhhdCBpcyBubyBsb25nZXIgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBVbmlmeSBmbHVzaGluZyBjb2RlLCByZW1vdmUgc29tZSBvbGQgdW5sb2NrIGNvZGUgdGhhdCBpcyBubyBsb25nZXIgdXNlZC4KCSAgVGFrZSB0aGUgc3RyZWFtaW5nIGxvY2sgd2hlbiBzZWVraW5nIHRvIGF2b2lkIHJhY2VzLiBGaXhlcyAjNDkyNzI5LgoJICBBZGRlZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA3LTExLTA2IDE1OjEwOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBNYWtlICBfZ3N0X2Rpc2FibGVfc2VndHJhcCBzdGF0aWMsIGl0J3Mgb25seSB1c2VkIGluIGdzdHBsdWdpbi5jIGFuZCB3ZSBjYW4gdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKF9nc3RfZGlzYWJsZV9zZWd0cmFwKToKCSAgTWFrZSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAgc3RhdGljLCBpdCdzIG9ubHkgdXNlZCBpbiBnc3RwbHVnaW4uYyBhbmQKCSAgd2UgY2FuIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgdGhlcmUgbm93IHRoYXQgd2UgaGF2ZSB0aGF0IEFQSS4KCSAgTW92ZSBfZ3N0X2RlYnVnX2R1bXBfZG90X2RpciBpbnRvIGdzdGRlYnVndXRpbHMuYywgdGhlcmUncyBubyByZWFzb24KCSAgdG8gZG8gdGhlIGdldGVudiBoZXJlIChhbmQgZXhwb3J0IHRoZSB2YXJpYWJsZSkuCgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKGRlYnVnX2R1bXBfZWxlbWVudCksCgkgIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSksIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZV93aXRoX3RzKToKCSAgRG9uJ3QgdXNlIFZMQXMgd2hpY2ggaXMgYSBDOTlpc20gYW5kIHRocm93cyBvZmYgTVNWQyAoIzQ5Mzk4MykuCgkgICogZ3N0L2dzdGluZm8uYzogKF9wcml2X2dzdF9pbmZvX3N0YXJ0X3RpbWUpLCAoX2dzdF9kZWJ1Z19pbml0KSwKCSAgKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIFJlbmFtZSBfZ3N0X2luZm9fc3RhcnRfdGltZSB0byBwcml2X2dzdF9pbmZvX3N0YXJ0X3RpbWUgc28gaXQKCSAgZG9lc24ndCBnZXQgZXhwb3J0ZWQgKHdhcyBuZXZlciBpbiBhbnkgaGVhZGVyKS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX3NldHVwKSwKCSAgKGdzdF9wbHVnaW5fbG9hZGluZ19tdXRleCk6CgkgIE1ha2Ugc3RhdGljIG11dGV4IGdzdF9wbHVnaW5fbG9hZGluZ19tdXRleCByZWFsbHkgc3RhdGljICh3YXMgbmV2ZXIKCSAgaW4gYW55IGhlYWRlciksIGFuZCB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIGluc3RlYWQgb2YKCSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAuCgkgICogZ3N0L2dzdHRyYWNlLmM6IChfZ3N0X3RyYWNlX2RlZmF1bHQpOgoJICBNYWtlIGxvY2FsIF9nc3RfdHJhY2VfZGVmYXVsdCBzdGF0aWMgKHdhcyBuZXZlciBpbiBhbnkgaGVhZGVyKS4KCjIwMDctMTEtMDYgMTQ6NDM6MTQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMsIHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMsIGFuZCBzb3J0IGFzIHRoZSAnc29ydCcgY29tbWFuZCBzb3J0cyBpdCAocGFydGlhbGx5IGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMsIHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMsIGFuZCBzb3J0CgkgIGFzIHRoZSAnc29ydCcgY29tbWFuZCBzb3J0cyBpdCAocGFydGlhbGx5IGZpeGVzICM0OTM5ODMpLgoKMjAwNy0xMS0wNiAxMjoyODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE9ubHkgY2hhbmdlIHRoZSBzdGF0ZSBjb29raWUgaWYgYSBkaWZmZXJlbnQgc3RhdGUgd2FzIHNldCBvbiB0aGUgZWxlbWVudC4gU2VlICM0OTI3MjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIE9ubHkgY2hhbmdlIHRoZSBzdGF0ZSBjb29raWUgaWYgYSBkaWZmZXJlbnQgc3RhdGUgd2FzIHNldCBvbiB0aGUKCSAgZWxlbWVudC4gU2VlICM0OTI3MjkuCgoyMDA3LTExLTA2IDExOjQxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJlbW92ZSB1bnVzZWQgYW5kIHVuaW5pdGlhbGlzZWQgdHlwZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIHN0aWxsIGV4cG9ydGVkIGZvciBzb21lIHJlYXNvbiAodGhleSB3ZXJlIG5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBSZW1vdmUgdW51c2VkIGFuZCB1bmluaXRpYWxpc2VkIHR5cGUgdmFyaWFibGVzIHRoYXQgd2VyZSBzdGlsbAoJICBleHBvcnRlZCBmb3Igc29tZSByZWFzb24gKHRoZXkgd2VyZSBuZXZlciBpbiBhbnkgaGVhZGVyIGZpbGVzCgkgIHRob3VnaCkuCgoyMDA3LTExLTA2IDEwOjMzOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB0cnkgdG8gcmVwb3J0IGEgMCBwb3NpdGlvbiB3aGVuIHdlIGRvbid0IGtub3csIHJldHVybiAtMSBhbmQgRkFMU0UgaW5zdGVhZC4gVGhpcyBtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHRyeSB0byByZXBvcnQgYSAwIHBvc2l0aW9uIHdoZW4gd2UgZG9uJ3Qga25vdywgcmV0dXJuIC0xIGFuZCBGQUxTRQoJICBpbnN0ZWFkLiBUaGlzIG1vc3RseSBoYXBwZW5zIHdoZW4gd2UgYXJlIHByZXJvbGxpbmcuCgkgIE1ha2Ugc3VyZSB3ZSBjYW4gcmVwb3J0IHRoZSByaWdodCBwb3NpdGlvbiBiZWZvcmUgd2UgcG9zdCB0aGUgQVNZTkNfRE9ORQoJICBtZXNzYWdlIHNvIHRoYXQgYSBtZXNzYWdlIGhhbmRsZXIgY2FuIHF1ZXJ5IHBvc2l0aW9uIHdpdGhvdXQgcmFjZXMuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9lb3MpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYXN5bmNfZG9uZV9oYW5kb2ZmKSwgKGFzeW5jX2RvbmVfZnVuYyksIChzZW5kX2J1ZmZlciksCgkgIChhc3luY19kb25lX2Vvc19mdW5jKSwgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCB0d28gdGVzdHMgZm9yIHRoZSBhYm92ZS4KCjIwMDctMTEtMDYgMTA6MjE6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNQUlOVEFJTkVSUzogVXBkYXRlIHdpdGggbmV3IGVtYWlsIGFkZHJlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgd2l0aCBuZXcgZW1haWwgYWRkcmVzcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSBtb3JlIGluZm8gYWJvdXQgZnV0dXJlIHBhZC1ibG9jayBhbmQgbmVnb3RpYXRpb24gY2hhbmdlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIEFkZCBzb21lIGlkZWFzIGFib3V0IGJ1ZmZlcmluZyByZXBvcnRpbmcuCgoyMDA3LTExLTA2IDEwOjAxOjA3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIFNQRUMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLCBhbHNvIGFkZCBNQUlOVEFJTkVSUyBmaWxlIHRvIEVYVFJBX0RJU1QsIHRoZSBvbW1pc3Npb24gb2YgdGhpcyBjYXVzZSBhIHdlaXJkIFJQLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgU1BFQyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMsIGFsc28gYWRkIE1BSU5UQUlORVJTIGZpbGUgdG8gRVhUUkFfRElTVCwgdGhlIG9tbWlzc2lvbiBvZiB0aGlzIGNhdXNlIGEgd2VpcmQgUlBNIGJ1aWxkIGVycm9yIG9uIEZDOAoKMjAwNy0xMS0wNiAwMDo1OTo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6IERpc2FibGUgc2lsbHkgcmFjeSB0ZXN0IHRoYXQgYWx3YXlzIGZhaWxzIG9uIHRoaXMgY29tYmluYXRpb24gb2YgQ1BVIGFuZCBrZXJuZWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgRGlzYWJsZSBzaWxseSByYWN5IHRlc3QgdGhhdCBhbHdheXMgZmFpbHMgb24gdGhpcyBjb21iaW5hdGlvbiBvZiBDUFUKCSAgYW5kIGtlcm5lbC4KCjIwMDctMTEtMDQgMTA6MTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCjIwMDctMTEtMDQgMTA6MTM6MzMgKzAwMDAgIE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBDb3JyZWN0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0IHNpZ25hbHM6IFRoZSBwYXJhbWV0ZXIgaXMgYSBHc3RPYmplY3QsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTXVycmF5IEN1bW1pbmcgIDxtdXJyYXljQG11cnJheWMuY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgQ29ycmVjdGVkIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldAoJICBzaWduYWxzOiBUaGUgcGFyYW1ldGVyIGlzIGEgR3N0T2JqZWN0LCBub3QgYSBHT2JqZWN0LgoKMjAwNy0xMS0wMiAxODozNTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vdmUgZGVjbGFyYXRpb24gb2YgcHJpdmF0ZSBfZ3N0X2Zvb19pbml0aWFsaXplKCkgZnVuY3Rpb25zIGludG8gb3VyIHByaXZhdGUgaGVhZGVyIGZpbGUgd2hlcmUgdGhleSBzaG91bGQgaGF2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIE1vdmUgZGVjbGFyYXRpb24gb2YgcHJpdmF0ZSBfZ3N0X2Zvb19pbml0aWFsaXplKCkgZnVuY3Rpb25zIGludG8KCSAgb3VyIHByaXZhdGUgaGVhZGVyIGZpbGUgd2hlcmUgdGhleSBzaG91bGQgaGF2ZSBiZWVuIGFsbCBhbG9uZy4KCjIwMDctMTEtMDIgMTc6NDM6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBndGstZG9jIGZpeGVzOyB0cmFpbGluZy1jb21tYS1pbi1lbnVtIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGd0ay1kb2MgZml4ZXM7IHRyYWlsaW5nLWNvbW1hLWluLWVudW0gZml4LgoKMjAwNy0xMS0wMiAxNjoyNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2xlYW4gdXAgb24gZGVpbml0IChub3QgdGhlIGV4dGVybmFsIG9uZXMgdGhvdWdoLCBkb2Vzbid0IHNlZW0gdG8gYmUgbmVlZGVkIGZvciBzb21lIHJlYXNvbikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWluaXQpOgoJICBDbGVhbiB1cCBvbiBkZWluaXQgKG5vdCB0aGUgZXh0ZXJuYWwgb25lcyB0aG91Z2gsIGRvZXNuJ3Qgc2VlbSB0byBiZQoJICBuZWVkZWQgZm9yIHNvbWUgcmVhc29uKS4KCjIwMDctMTEtMDEgMjM6NTE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBSZW1vdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGZvciBNU1ZDIHRoYXQgd2FzIGNvcGllZCBvdmVyIGludG8gY29yZSBmcm9tIGEgcGx1Z2luLCBvYnZpb3VzbHkgd2l0aG91dCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDogKEdTVF9ERUJVR19DQVRFR09SWV9FWFRFUk4pOgoJICBSZW1vdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGZvciBNU1ZDIHRoYXQgd2FzIGNvcGllZCBvdmVyIGludG8gY29yZQoJICBmcm9tIGEgcGx1Z2luLCBvYnZpb3VzbHkgd2l0aG91dCBldmVyIGhhdmluZyBiZWVuIHRlc3RlZCAobm90ZSB0aGUKCSAgc2luZ2xlIHVuZGVyc2NvcmUgaW4gX2RlY2xzcGVjIGluIHRoZSBpbml0aWFsIGNvbW1pdCksIGFuZCB0aGF0IGRvZXNuJ3QKCSAgcmVhbGx5IG1ha2Ugc2Vuc2UuICBTZWUgIzQ5MjA3Ny4KCjIwMDctMTEtMDEgMjE6NTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3RoZXIgdHlwZXMgYXMgd2VsbCwgc2VlICMzNDk0MTAgYW5kICM2NDc2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX2luaXQpOgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3RoZXIgdHlwZXMgYXMgd2VsbCwgc2VlICMzNDk0MTAgYW5kICM2NDc2NC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpOgoJICBTaW1wbGlmeSBleGlzdGluZyBnX3R5cGVfY2xhc3NfcmVmKCkuCgoyMDA3LTExLTAxIDIwOjEwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBnX3R5cGVfY2xhc3NfcmVmKCkgb3VyIEdzdEZvcm1hdCB0eXBlIHRvIG1ha2Ugc3VyZSB3ZSBhdm9pZCB0aGUgdGhyZWFkLXVuc2FmZSBiaXRzIG9mIHRoZSBHT2JqZWN0L0dULi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpOgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3VyIEdzdEZvcm1hdCB0eXBlIHRvIG1ha2Ugc3VyZSB3ZSBhdm9pZCB0aGUKCSAgdGhyZWFkLXVuc2FmZSBiaXRzIG9mIHRoZSBHT2JqZWN0L0dUeXBlIHN5c3RlbSwgaWUuIGJ1ZyAjMzQ5NDEwIGFuZAoJICBidWcgIzY0NzY0LiBTaG91bGQgZml4IGludGVybWl0dGVudCB0ZWUgdW5pdCB0ZXN0IGZhaWx1cmVzICgjNDc0ODIzKS4KCjIwMDctMTEtMDEgMTk6MTk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogU2ltcGxpZnksIHNpbXBsaWZ5LCBzaW1wbGlmeSAtIG9yIG5vdC4gIFJld3JpdGUgdW5pdCB0ZXN0IG5vdCB0byB1c2UgZ3N0X3BhcnNlX2xhdW5jaCgpOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6ICh0ZXN0X251bV9idWZmZXJzKToKCSAgU2ltcGxpZnksIHNpbXBsaWZ5LCBzaW1wbGlmeSAtIG9yIG5vdC4gIFJld3JpdGUgdW5pdCB0ZXN0CgkgIG5vdCB0byB1c2UgZ3N0X3BhcnNlX2xhdW5jaCgpOyBhbGxvdyBOIHN1Yi1zdHJlYW1zLiBJbmNyZWFzaW5nCgkgIHRoZSBudW1iZXIgb2Ygc3ViLXN0cmVhbXMgc2VlbXMgdG8gcmVwcm9kdWNlICM0NzQ4MjMgbW9yZSBlYXNpbHkuCgoyMDA3LTEwLTMxIDIyOjAxOjAzICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgaW5jbHVkZXMgZm9yIE1TVkMyMDA1IGFuZCBhIEM5OSBpc3N1ZS4gQWxzbywgc3RhcnRpbmcgd2l0aCAyLjE0LjAsIEdMaWIgd29uJ3QgcHJvdmlkZSBhIHBpcGUoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICBGaXggYSBjb3VwbGUgb2YgbWlzc2luZyBpbmNsdWRlcyBmb3IgTVNWQzIwMDUgYW5kIGEgQzk5IGlzc3VlLiBBbHNvLAoJICBzdGFydGluZyB3aXRoIDIuMTQuMCwgR0xpYiB3b24ndCBwcm92aWRlIGEgcGlwZSgpIG1hY3JvIGFueSBsb25nZXIsCgkgIHNvIHVzZSBfcGlwZSgpIGRpcmVjdGx5ICgjNDkyMDc3KS4KCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6IChfdHJlYWRkaXIpOgoJICBBZGQgYSBjb3VwbGUgb2YgY2FzdHMgdG8gbWFrZSBpdCBidWlsZCB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHNvbWUgbW9yZSBzeW1ib2xzIHRoYXQgbmVlZCB0byBiZSBleHBvcnRlZC4KCjIwMDctMTAtMzEgMTg6MDg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IFVzZSBfS0VFUCBhcyBtZXJnZSBtb2RlIHJhdGhlciB0aGFuIF9LRUVQX0FMTCwgc28gdGFncyBhcnJpdmluZyBpbiBhIHNlY29uZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKToKCSAgVXNlIF9LRUVQIGFzIG1lcmdlIG1vZGUgcmF0aGVyIHRoYW4gX0tFRVBfQUxMLCBzbyB0YWdzCgkgIGFycml2aW5nIGluIGEgc2Vjb25kIG9yIHRoaXJkIHRhZyBtZXNzYWdlIGFyZSBhZGRlZCB0bwoJICB0aGUgdGFnIGxpc3QgYXMgd2VsbC4KCjIwMDctMTAtMzEgMTM6MDE6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBJdHMgIlNpbmNlOiIgYW5kIG5vdCAiQFNpbmNlOiIuIEFuZCByZW1vdmUgYW4gc3VwZXJmbG91cyBjYXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgSXRzICJTaW5jZToiIGFuZCBub3QgIkBTaW5jZToiLiBBbmQgcmVtb3ZlIGFuIHN1cGVyZmxvdXMgY2FzdC4KCjIwMDctMTAtMzAgMTg6MzA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgYSBuZXcgbGFzdC1idWZmZXIgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbGFzdCBidWZmZXIgdXNlZCBpbiBiYXNlc2luayBmb3IgcHJlcm9sbCBvciByZW5kZXJpbmcuIHVzZWZ1bCBmb3IgbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbGFzdF9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXIpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYSBuZXcgbGFzdC1idWZmZXIgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbGFzdCBidWZmZXIgdXNlZCBpbgoJICBiYXNlc2luayBmb3IgcHJlcm9sbCBvciByZW5kZXJpbmcuIHVzZWZ1bCBmb3IgbWFraW5nIHNuYXBzaG90cy4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9sYXN0X2J1ZmZlcigpCgkgIEFQSTogR3N0QmFzZVNpbms6Omxhc3QtYnVmZmVyCgoyMDA3LTEwLTI5IDEzOjQ2OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJbXByb3ZlIGJpbiBncmFwaCBkdW1waW5nLCBieSB1c2luZyB0aGUgZW52dmFyIHRvIHNwZWNpZnkgYSBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgSW1wcm92ZSBiaW4gZ3JhcGggZHVtcGluZywgYnkgdXNpbmcgdGhlIGVudnZhciB0byBzcGVjaWZ5IGEgcGF0aC4KCSAgUmVuYW1lIHRoZSBlbnZ2YXIgdG8gR1NUX0RFQlVHX0RVTVBfRE9UX0RJUi4KCjIwMDctMTAtMjkgMTM6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBQb3N0IHNwZWNpYWwgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBzdHJlYW0gYmVjYXVzZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUG9zdCBzcGVjaWFsIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIGEgc3RyZWFtCgkgIGJlY2F1c2UgaXQncyBlbXB0eS4KCjIwMDctMTAtMjkgMTA6MDU6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvY3VtZW50IG5ldyBlbnYtdmFyLiBBZGQgb25lIGxvZy1saW5lIGFmdGVyIGR1bXBuZyBhIGdyYXBoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBEb2N1bWVudCBuZXcgZW52LXZhci4gQWRkIG9uZSBsb2ctbGluZSBhZnRlciBkdW1wbmcgYSBncmFwaC4KCjIwMDctMTAtMjYgMTg6Mzk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVnbHkgaGFjayB0byBwdXQgdGhlIChyZWNlbnRseSByZW1vdmVkIGFuZCBub24tcG9ydGFibGUsIGFwcGFyZW50bHkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVWdseSBoYWNrIHRvIHB1dCB0aGUgKHJlY2VudGx5IHJlbW92ZWQgYW5kIG5vbi1wb3J0YWJsZSwgYXBwYXJlbnRseSkKCSAgLVdsLC0tZXhwb3J0LWR5bmFtaWMgYmFjayBpbnRvIGxpYmdzdGNoZWNrJ3MgTERGTEFHUyB3aGVuIHdlJ3JlIHVzaW5nCgkgIEdOVSBsZCwgYmVjYXVzZSB3aXRob3V0IHRoYXQgJ21ha2UgY2hlY2snIGZhaWxzIG1pc2VyYWJseSBvbiBteSBkZWJpYW4KCSAgc3RhYmxlIGJveC4gIFNvbWVvbmUgd2l0aCBtb3JlIGtub3dsZWRnZSBvZiBsaW5rZXIgaW50cmljYWNpZXMgYW5kCgkgIHBvcnRhYmlsaXR5IGlzc3VlcyB0aGFuIG1lIGZpeCB0aGlzIHByb3Blcmx5IHBsZWFzZS4KCjIwMDctMTAtMjUgMTc6MjA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlc2V0IGxhc3Qgc2VlbiBwb3NpdGlvbiBhZnRlciBmbHVzaGluZyBzbyB0aGF0IHdlIGRvbid0IHJlcG9ydCB0aGUgb2xkIHBvc2l0aW9uIGFueW1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBSZXNldCBsYXN0IHNlZW4gcG9zaXRpb24gYWZ0ZXIgZmx1c2hpbmcgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgdGhlIG9sZAoJICBwb3NpdGlvbiBhbnltb3JlLgoKMjAwNy0xMC0yNSAxNjoxOTowNSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvOiBQYXRjaCBmcm9tIEFsZXNzYW5kcm8gRGVjaW5hIGFkZGluZyBnZXRfdHlwZV9mdWxsIGFuZCBnZXRfcHJvdG9jb2xzX2Z1bGwgcHJpdmF0ZSB2ZnVuY3MgdG8gdGhlIFVSSUhhbmRsZXIgaW50ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBQYXRjaCBmcm9tIEFsZXNzYW5kcm8gRGVjaW5hIGFkZGluZyBnZXRfdHlwZV9mdWxsIGFuZAoJICBnZXRfcHJvdG9jb2xzX2Z1bGwgcHJpdmF0ZSB2ZnVuY3MgdG8gdGhlIFVSSUhhbmRsZXIgaW50ZXJmYWNlCgkgIHRvIGFsbG93IGJpbmRpbmdzIHRvIHN1cHBvcnQgY3JlYXRpbmcgVVJJIGhhbmRsZXJzLgoJICBQYXJ0aWFsbHkgZml4ZXM6ICMzMzkyNzkKCSAgQVBJOiBHc3RVUklIYW5kbGVySW50ZXJmYWNlOjpnZXRfdHlwZV9mdWxsCgkgIEFQSTogR3N0VVJJSGFuZGxlckludGVyZmFjZTo6Z2V0X3Byb3RvY29sc19mdWxsCgoyMDA3LTEwLTI1IDE1OjE0OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBNYWtlIGl0IHNvIHRoYXQgcGFkcyBhcmUgY29uc2lkZXJlZCBsaW5rZWQgdW50aWwgYSBidWZmZXIgaXMgcHVzaGVkIGFuZCBkaXNjb3ZlcmVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIGl0IHNvIHRoYXQgcGFkcyBhcmUgY29uc2lkZXJlZCBsaW5rZWQgdW50aWwgYSBidWZmZXIgaXMgcHVzaGVkCgkgIGFuZCBkaXNjb3ZlcmVkIG90aGVyd2lzZS4gVGhpcyBhdm9pZHMgcHJvYmxlbXMgd2l0aCBkZWNvZGViaW4yIGhhbmdpbmcKCSAgYWZ0ZXIgYSBzZWVrIGluIHRoZSBmaWxlc3JjICEgZGVjb2RlYmluMiBuYW1lPWQgISBmYWtlc2luayBkLiAhIGZha2VzaW5rCgkgIGNhc2UuCgkgIE1ha2Ugc3VyZSB3ZSBsb2NrIHRoZSBtdWx0aXF1ZXVlIHdoZW4gdXBkYXRpbmcgdGhlIG1heC1zaXplIHByb3BlcnRpZXMuCgkgIEZpeCBhIGNyYXNoIG9uIFNvbGFyaXMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQgaW4gZ2V0X3JlcXVlc3RfcGFkIHRoYXQKCSAgcGFzc2VzIGEgTlVMTCBzdHJpbmcgdG8gR1NUX0RFQlVHLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX2R1bW15cGFkX2NoYWluKSwKCSAgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCk6CgkgIEZpeCB0aGUgdGVzdCB0byBhbGxvdyB0aGUgZmlyc3QgYnVmZmVyIG9uIG5vdC1saW5rZWQgcGFkcyB0byBjb21lIG91dAoJICBvZiBzZXF1ZW5jZSB3aGlsZSBtdWx0aXF1ZXVlIGRpc2NvdmVycyB0aGF0IHRoZXkgYXJlIG5vdC1saW5rZWQuCgoyMDA3LTEwLTI1IDE0OjUwOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFVzZSBhIGN1c3RvbSBleHBvcnQgc3ltYm9sIHJlZ2V4IGZvciBsaWJnc3RjaGVjaywgYXMgaXQgbmVlZHMgdG8gZXhwb3J0IHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgc3RhbmRhcmQgR1N0cmVhbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBhIGN1c3RvbSBleHBvcnQgc3ltYm9sIHJlZ2V4IGZvciBsaWJnc3RjaGVjaywgYXMgaXQgbmVlZHMKCSAgdG8gZXhwb3J0IHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgc3RhbmRhcmQgR1N0cmVhbWVyIGdzdF8qCgkgIHBhdHRlcm4sIGFuZCAgLS1leHBvcnQtZHluYW1pYyBpcyBub3QgcG9ydGFibGUgKG9ubHkgd29ya3Mgb24KCSAgR05VIGxkKQoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpOgoJICBNYWtlIHN1cmUgdG8gcGFzcyBhIG1lc3NhZ2UgcGFyYW1ldGVyIHRvIHRoZSBmYWlsXyogbWFjcm9zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNy0xMC0yNSAxNDo0MTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogRGlzYWJsZSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgd2hpdGUgc3BhY2VzIGFyZSBub3QgYWxsb3dlZCBpbiBzdHJ1Y3R1cmUgbmFtZXMgb3IgZmllbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6ICh0ZXN0X3RvX3N0cmluZyk6CgkgIERpc2FibGUgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdoaXRlIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQKCSAgaW4gc3RydWN0dXJlIG5hbWVzIG9yIGZpZWxkIG5hbWVzLCBzaW5jZSB3ZSBuZWVkIHRvCgkgIHN1cHBvcnQgdGhhdCBmb3Igbm93IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLgoKMjAwNy0xMC0yNCAxMzoxMzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBBUEk6IGFkZCBHU1RfVEFHX0FMQlVNX1NPUlROQU1FCgkgIEFQSTogYWRkIEdTVF9UQUdfVElUTEVfU09SVE5BTUUKCSAgQWRkIHRhZyB2YXJpYW50cyBmb3Igc29ydGluZyAoIzQxNDUzOSkuCgoyMDA3LTEwLTI0IDEzOjAwOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbHNvIGFsbG93IHdoaXRlIHNwYWNlIGZvciBuYW1lcyBzbyB3ZSBkb24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBbHNvIGFsbG93IHdoaXRlIHNwYWNlIGZvciBuYW1lcyBzbyB3ZSBkb24ndCBicmVhawoJICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMDctMTAtMjIgMTU6Mzc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgU21hbGwgdXBkYXRlcy4KCjIwMDctMTAtMjIgMTE6MzI6MTQgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeGVkIGRvY3VtZW50YXRpb24gZnJvbSBteSBwcmV2aW91cyBjb21taXQgKGFkZGVkIG5ldyBBUEkgYWRkIGdzdF92YWx1ZV9zZXRfc3RydWN0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXhlZCBkb2N1bWVudGF0aW9uIGZyb20gbXkgcHJldmlvdXMgY29tbWl0IChhZGRlZCBuZXcgQVBJIGFkZAoJICBnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSgpLCBhZGQgZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUoKSBhbmQKCSAgR1NUX1ZBTFVFX0hPTERTX1NUUlVDVFVSRSkuCgoyMDA3LTEwLTIyIDExOjEwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZWZsb3cgY29kZSB0byBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZWZsb3cgY29kZSB0byBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nLgoKMjAwNy0xMC0yMiAwODo1MzoyNiArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSAgQWRkZWQgR3N0U3RydWN0dXJlIHRvIGdzdF92YWx1ZV90YWJsZSBhbmQgaXRzIHJlbGF0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKSwKCSAgKGdzdF9jYXBzX2Zyb21fc3RyaW5nX2lucGxhY2UpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2FiYnJzKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKSwgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9zdHJ1Y3R1cmUpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3N0cnVjdHVyZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBHc3RTdHJ1Y3R1cmUgdG8gZ3N0X3ZhbHVlX3RhYmxlIGFuZCBpdHMgcmVsYXRlZCBmdW5jdGlvbnMuCgkgIENoYW5nZWQgZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcgdG8gcHJpbnQgJzsnIGluIHRoZSBlbmQuCgkgIENoYW5nZWQgZ3N0X2NhcHNfdG9fc3RyaW5nIHRvIG5vdCBwcmludCAnOycgYmV0ZXdlZW4gaXRzCgkgIGZpZWxkcyAoc3RydWN0dXJlcykgYW55bW9yZSBhbmQgcmVtb3ZlIHRoZSBsYXN0ZXMgJzsnIGZyb20gbGF0ZXN0CgkgIHN0cnVjdHVyZS4gTm93IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbmVzdGVkIHN0cnVjdHVyZXMuCgkgIEluIGFkZGl0aW9uLCBiYWNrd2FyZCBjb21wYXRpYmlsdHkgaXMgYXNzdXJlZCBieSBhY2NlcHRpbmcgJ1wwJyBhcwoJICBlbmQgZGVsaW1pdGVyLiBGaXhlczogIzQ4Nzk2OS4KCSAgQVBJOiBhZGQgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUoKQoJICBBUEk6IGFkZCBnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSgpCgoyMDA3LTEwLTE5IDA5OjQ4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBXaGVuIG5vIEdTb3VyY2UgY2FsbGJhY2sgaGFzIGJlZW4gc2V0IHVwLCB0ZWxsIGRldmVsb3BlciB0byB1c2UgYSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBXaGVuIG5vIEdTb3VyY2UgY2FsbGJhY2sgaGFzIGJlZW4gc2V0IHVwLCB0ZWxsIGRldmVsb3BlcgoJICB0byB1c2UgYSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4KCjIwMDctMTAtMTcgMTI6NTg6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFsbG93IGR1bXBpbmcgcGlwZWxpbmVzIGFzIGRvdCBncmFwaHMuIEZpeGVzICM0NTY1NzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFsbG93IGR1bXBpbmcgcGlwZWxpbmVzIGFzIGRvdCBncmFwaHMuIEZpeGVzICM0NTY1NzMuCgoyMDA3LTEwLTE2IDIxOjQ4OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbGxvdyAnKycgYXMgd2VsbCwgaXQgY2FuIGJlIHBhcnQgb2YgbWVkaWEgb3IgbWltZSB0eXBlcyBzdWNoIGFzIGltYWdlL3N2Zyt4bWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWxsb3cgJysnIGFzIHdlbGwsIGl0IGNhbiBiZSBwYXJ0IG9mIG1lZGlhIG9yIG1pbWUgdHlwZXMKCSAgc3VjaCBhcyBpbWFnZS9zdmcreG1sLgoKMjAwNy0xMC0xNiAyMDozMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9idXNfcG9wX2ZpbHRlcmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQVBJOiBhZGQgZ3N0X2J1c19wb3BfZmlsdGVyZWQKCSAgQVBJOiBhZGQgZ3N0X2J1c190aW1lZF9wb3BfZmlsdGVyZWQKCSAgVHdvIG5ldyBmdW5jdGlvbnMgZm9yIHdhaXRpbmcgZm9yIHNwZWNpZmljIG1lc3NhZ2UgdHlwZXMgb24gdGhlCgkgIGJ1cyBmb3IgYSBzcGVjaWZpZWQgYW1vdW50IG9mIHRpbWUgd2l0aG91dCBpdGVyYXRpbmcgYW55IG1haW4KCSAgbG9vcHMgb3IgbWFpbiBjb250ZXh0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIFNvbWUgdGVzdHMgZm9yIHRoZSBuZXcgZnVuY3Rpb25zLgoKMjAwNy0xMC0xNiAxNzoyMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IE1ha2UgZ3RrLWRvYyBpZ25vcmUgc3R1ZmYgaXQgc2hvdWxkIGlnbm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgTWFrZSBndGstZG9jIGlnbm9yZSBzdHVmZiBpdCBzaG91bGQgaWdub3JlLgoKMjAwNy0xMC0xNiAxNjoxMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFsbG93IHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHVuaXQgdGVzdHMgdG8gcnVuIHZpYSB0aGUgR1NUX0NIRUNLUyBlbnZpcm9ubWVudCB2YXJpYWJsZSAodGVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFsbG93IHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHVuaXQgdGVzdHMgdG8gcnVuIHZpYSB0aGUgR1NUX0NIRUNLUwoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSAodGVzdCBjYXNlIGZ1bmN0aW9uIG5hbWVzLCBjb21tYS1zZXBhcmF0ZWQpLgoKMjAwNy0xMC0xNiAxMzo1ODo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV2ZXJ0IHNlcmlhbGlzYXRpb24gY2hhbmdlIGFuZCBjb25zdHJhaW4gc3RydWN0dXJlLW5hbWVzIGFmdGVyIGNvbnNlbnN1cyBvbiBpcmMuIFVwZGF0ZSBhcGkgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFJldmVydCBzZXJpYWxpc2F0aW9uIGNoYW5nZSBhbmQgY29uc3RyYWluIHN0cnVjdHVyZS1uYW1lcyBhZnRlcgoJICBjb25zZW5zdXMgb24gaXJjLiBVcGRhdGUgYXBpIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlLgoKMjAwNy0xMC0xNiAwNjozMjowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBJbXByb3ZlIHNlcmlhbGl6YXRpb24gYW5kIGZpeCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBJbXByb3ZlIHNlcmlhbGl6YXRpb24gYW5kIGZpeCB0ZXN0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCBhbm90aGVyIHRlc3QgdGhhdCBjb3ZlcnMgd2h5IEkgYWN0dWFsbHkgZGlkIHRoZSBwcmV2aW91cyBzdHJ1Y3R1cmUKCSAgY2hhbmdlLgoKMjAwNy0xMC0xNSAxNDozMzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IERvbid0IGNyYXNoIHdoZW4gaW5zcGVjdGluZyBhbiBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiBpbnNwZWN0aW5nIGFuIGVsZW1lbnQuCgoyMDA3LTEwLTE1IDExOjU4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBBZGQgdW5pdCB0ZXN0IGZvciBlc2NhcGluZyBvZiBzdHJ1Y3R1cmUgbmFtZSB3aGVuIHNlcmlhbGlzaW5nIGFuZCBkZXNlcmlhbGlzaW5nIHRvL2ZyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZXNjYXBpbmcgb2Ygc3RydWN0dXJlIG5hbWUgd2hlbiBzZXJpYWxpc2luZwoJICBhbmQgZGVzZXJpYWxpc2luZyB0by9mcm9tIHN0cmluZ3MuCgoyMDA3LTEwLTE1IDExOjM2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gSWYgYWNjZXB0Y2FwcyB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyBUUlVFLCB1cHN0cmVhbSBpcyB0cmlja2VkIGludG8gdGhpbmtpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBJZiBhY2NlcHRjYXBzIHVuY29uZGl0aW9uYWxseSByZXR1cm5zIFRSVUUsCgkgIHVwc3RyZWFtIGlzIHRyaWNrZWQgaW50byB0aGlua2luZyBpdCBjYW4gc3VnZ2VzdCBhIGZvcm1hdCBkb3duc3RyZWFtCgkgIHdoaWxlIGRvd25zdHJlYW0gZG9lcyBub3Qgc3VwcG9ydCB0aGF0IGZvcm1hdC4gVGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0CgkgIGNvcmUgY2FsbHMgYWNjZXB0Y2FwcyB3aGVuIHB1c2hpbmcgYSBidWZmZXIgd2l0aCBuZXcgY2FwcywgZm9yIHdoaWNoIHdlCgkgIGRvIGEgbGl0dGxlIHdvcmthcm91bmQgYnkgc2V0dGluZyB0aGUgY2FwcyBvbiB0aGUgc3JjcGFkIG91cnNlbHZlcwoJICBiZWZvcmUgcHVzaGluZyB0aGUgYnVmZmVyICh1bnRpbCB0aGlzIGlzIGZpZ3VyZWQgb3V0KS4gRml4ZXMgIzQ4Njc1OC4KCjIwMDctMTAtMTUgMTE6MTk6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEFkZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGRlYnVnIG91dHB1dC4gUXVvdGUgc3RydWN0dXJlIG5hbWUgdG8gZml4IGRlc2VyaWFsaXNhdGlvbiBvZiBzb21lIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZGVidWcgb3V0cHV0LiBRdW90ZSBzdHJ1Y3R1cmUgbmFtZSB0byBmaXgKCSAgZGVzZXJpYWxpc2F0aW9uIG9mIHNvbWUgc3RyaW5ncy4KCjIwMDctMTAtMTUgMDc6Mzc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogRGVmaW5lIEdTVF9CVUZGRVJfRkxBR19HQVAgbW9yZSBzdHJpY3RseSB0byBlbmFibGUgb3B0aW1pemF0aW9ucyBiYXNlZCBvbiBpdC4gRml4IGRvY3MgZm9yIEdTVF9CVUZGRS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERlZmluZSBHU1RfQlVGRkVSX0ZMQUdfR0FQIG1vcmUgc3RyaWN0bHkgdG8gZW5hYmxlIG9wdGltaXphdGlvbnMgYmFzZWQKCSAgb24gaXQuIEZpeCBkb2NzIGZvciBHU1RfQlVGRkVSX01BTExPQ0RBVEEgYW5kIEdzdEJ1ZmZlci5tYWxsb2NfZGF0YS4KCjIwMDctMTAtMTUgMDc6MTE6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFNhdmUgYXBwcm94LiA0MDAgMSBieXRlIGFsbG9jcyB3aGVuIHByaW50aW5nLiBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgU2F2ZSBhcHByb3guIDQwMCAxIGJ5dGUgYWxsb2NzIHdoZW4gcHJpbnRpbmcuIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudAoJICBkZXRhaWxzLgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgQXZvaWQgYSBzdHJkdXAuCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50IGRldGFpbHMuCgoyMDA3LTEwLTE1IDA2OjUyOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggc29tZSBzcGVsbGluZyBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCBzb21lIHNwZWxsaW5nIGVycm9ycy4KCjIwMDctMTAtMTQgMTU6NTQ6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENvcnJlY3RseSBzZXQgdGhlIG5leHQgc3RhdGUgaWYgYWxsIG9mIG91ciBhc3luYyBjaGlsZHJlbiBjb21taXRlZCB0aGVpciBzdGF0ZS4gVGhpcyBtYWtlcyBzdXJlIHdlIGNhbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19kb25lKToKCSAgQ29ycmVjdGx5IHNldCB0aGUgbmV4dCBzdGF0ZSBpZiBhbGwgb2Ygb3VyIGFzeW5jIGNoaWxkcmVuIGNvbW1pdGVkIHRoZWlyCgkgIHN0YXRlLiBUaGlzIG1ha2VzIHN1cmUgd2UgY2FuIGFjdHVhbGx5IGNhbmNlbCB0aGUgc3RhdGUgY2hhbmdlIGluCgkgIHByb2dyZXNzLiBGaXhlcyBhIHJlZ3Jlc3Npb24gaW4gUmh5dGhtYm94IHdoZW4gc2Vla2luZy4KCjIwMDctMTAtMTMgMTc6NDM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IHNoYWRvdyBsb2NhbCB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBEb24ndCBzaGFkb3cgbG9jYWwgdmFyaWFibGUuCgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRG9uJ3Qgc2hhZG93IGdsb2JhbCBmdW5jdGlvbiBuYW1lLgoKMjAwNy0xMC0xMyAxNzoyMDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFVzZSBhbHJlYWR5LWludGVybmVkIHN0cmluZyBmb3IgdGhlIHByaXZhdGUgR3N0UGx1Z2luRmVhdHVyZSBwbHVnaW5fbmFtZSBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBVc2UgYWxyZWFkeS1pbnRlcm5lZCBzdHJpbmcgZm9yIHRoZSBwcml2YXRlIEdzdFBsdWdpbkZlYXR1cmUKCSAgcGx1Z2luX25hbWUgZmllbGQuCgoyMDA3LTEwLTEwIDIyOjQzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jczsgZml4ZXMgdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2NzOyBmaXhlcyB0aGUgYnVpbGQuCgoyMDA3LTEwLTEwIDE1OjE4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGQgZnVuY3Rpb24gdG8gd2FpdCBmb3IgRU9TLCBzdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyB0byBjb3JyZWN0bHkgd2FpdCBmb3IgZGV2aWNlcyB0byBkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBpbnNwaXJlZCBieTogQmVub2l0IEZvdWV0IDxiZW5vaXQgZG90IGZvdWV0IGF0IHB1cnBsZWxhYnMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIEVPUywgc3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgdG8gY29ycmVjdGx5IHdhaXQKCSAgZm9yIGRldmljZXMgdG8gZHJhaW4gYmVmb3JlIHBlcmZvcm1pbmcgdGhlIEVPUyBsb2dpYy4gRml4ZXMgIzQ4NTM0My4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKCkKCjIwMDctMTAtMTAgMTA6NTM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IENhc3QgZGVzY3JpcHRpb24gc3RyaW5nIGNvbnN0YW50cyBpbiBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MgdG8gYSAoZ2NoYXIqKSB0byBtYWtlIEMrKyBjb2RlIHVzaW5nIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBDYXN0IGRlc2NyaXB0aW9uIHN0cmluZyBjb25zdGFudHMgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zCgkgIHRvIGEgKGdjaGFyKikgdG8gbWFrZSBDKysgY29kZSB1c2luZyB0aGVzZSBtYWNyb3MgY29tcGlsZQoJICB3aXRob3V0IHdhcm5pbmcgd2l0aCBnKystNC4yIChzZWUgIzQ2MjczNykuICBFdmVuIGlmIHNsaWdodGx5CgkgIHVnbHksIHRoaXMgc2VlbXMgcHJlZmVyYWJsZSB0byBwdXR0aW5nIHRoZSBkZXNjcmlwdGlvbiBzdHJpbmdzCgkgIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUgb3IgbWFraW5nIHRoZSBzdHJ1Y3R1cmUgbWVtYmVyIGEKCSAgY29uc3QgZ2NoYXIgKiBhbmQgZG9pbmcgY2FzdHMgaW4gY29yZSBjb2RlIHRoYXQgYWxsb2NzIGFuZAoJICBmcmVlcyB0aGVzZSBzdHJpbmdzLCBvciByZXF1aXJpbmcgYSBjYXN0IGluIHRoZSBDKysgY29kZS4KCjIwMDctMTAtMDkgMjA6NDU6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBVc2UgX19GVU5DVElPTl9fIGluc3RlYWQgb2YgX19QUkVUVFlfRlVOQ1RJT05fXywgaXQncyBzaWxseSB0byBwcmludCB0aGUgZW50aXJlIGNsYXNzL2Z1bmN0aW9uIHNpZ25hdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVXNlIF9fRlVOQ1RJT05fXyBpbnN0ZWFkIG9mIF9fUFJFVFRZX0ZVTkNUSU9OX18sIGl0J3Mgc2lsbHkKCSAgdG8gcHJpbnQgdGhlIGVudGlyZSBjbGFzcy9mdW5jdGlvbiBzaWduYXR1cmUgaW50byB0aGUgbG9nCgkgIGZpbGUgZm9yIEMrKyBjb2RlLiAgVGhpcyBvbmx5IGFmZmVjdHMgQysrIGNvZGUsIGZvciBDIGNvZGUKCSAgZXZlcnl0aGluZyByZW1haW5zIHRoZSBzYW1lLgoKMjAwNy0xMC0wOSAxNjoyMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogV29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggcGlwZWxpbmVzIGNvbnRhaW5pbmcgKHNlbWkpbG9vcHMgdW50aWwgYSBwcm9wZXIsIG1vcmUgY29tcGxpY2F0ZWQgc29sdXRpb24gaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChyZW1vdmVfZnJvbV9xdWV1ZSk6CgkgIFdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHBpcGVsaW5lcyBjb250YWluaW5nIChzZW1pKWxvb3BzIHVudGlsIGEKCSAgcHJvcGVyLCBtb3JlIGNvbXBsaWNhdGVkIHNvbHV0aW9uIGlzIHJlYWR5LiBTZWUgIzQ3NTQ1NS4KCjIwMDctMTAtMDkgMTQ6MTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBQdXQgbW9yZSBzdHJpbmdzIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUuIE5vIG5lZWQgdG8ga2VlcCBhIGh1bmRyZWQtc29tZXRoaW5nIGNvcGllcyBvZiBpZGVudGljYWwgdmVyc2lvbiBzdHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgUHV0IG1vcmUgc3RyaW5ncyBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlLiBObyBuZWVkIHRvIGtlZXAKCSAgYSBodW5kcmVkLXNvbWV0aGluZyBjb3BpZXMgb2YgaWRlbnRpY2FsIHZlcnNpb24gc3RyaW5ncywKCSAgbGljZW5zZSBzdHJpbmdzLCBwYWNrYWdlIG5hbWUgc3RyaW5ncyBhbmQgcGFja2FnZSBvcmlnaW4KCSAgc3RyaW5ncyBhcm91bmQuCgoyMDA3LTEwLTA5IDEwOjQxOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IERvbid0IGltcGx5IHRoYXQgaXQncyBva2F5IHRvIHVuY29uZGl0aW9uYWxseSBjaGFuZ2UgYnVmZmVyIGRhdGEgb3IgYnVmZmVyIG1ldGFkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBEb24ndCBpbXBseSB0aGF0IGl0J3Mgb2theSB0byB1bmNvbmRpdGlvbmFsbHkgY2hhbmdlCgkgIGJ1ZmZlciBkYXRhIG9yIGJ1ZmZlciBtZXRhZGF0YSBpbiBhIHBhZCBwcm9iZSBjYWxsYmFjaywKCSAgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgY29tbWVudHMuIEZpeGVzICM0MzAwMzEuCgoyMDA3LTEwLTA4IDIwOjQ1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlIGdlbmVyYXRlZCBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBVcGRhdGUgZ2VuZXJhdGVkIGZpbGVzLgoKMjAwNy0xMC0wOCAxNzo1OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IFByZWZpeCBzZWN0aW9uIHdpdGggYnJva2VuIGNvZGUgd2l0aCBhIHdhcm5pbmcgKHNlZSAjMzQyNDMyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgUHJlZml4IHNlY3Rpb24gd2l0aCBicm9rZW4gY29kZSB3aXRoIGEgd2FybmluZyAoc2VlICMzNDI0MzIpLgoKMjAwNy0xMC0wOCAxNzoyNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogQ2FsbCBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgdG8gYXZvaWQgd2FybmluZ3MuIFNwb3R0ZWQgYnkgUml0ZXNoIEtoYWRnYXJheS4gRml4ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKSB0bwoJICBhdm9pZCB3YXJuaW5ncy4gU3BvdHRlZCBieSBSaXRlc2ggS2hhZGdhcmF5LiBGaXhlcyAjNDg0MjI1LgoKMjAwNy0xMC0wOCAxNzowNTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiB3ZSByZWNlaXZlZCBFT1MgYW5kIGFyZSB3YWl0aW5nIGZvciB3aGVuIHRvIHBvc3QgdGhlIEVPUyBtZXNzYWdlLCBvdXIgc3RhdGUgaXMgcHJlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIFdoZW4gd2UgcmVjZWl2ZWQgRU9TIGFuZCBhcmUgd2FpdGluZyBmb3Igd2hlbiB0byBwb3N0IHRoZSBFT1MgbWVzc2FnZSwKCSAgb3VyIHN0YXRlIGlzIHByZXJvbGxlZCBhbmQgd2Ugc2hvdWxkIG5vdCByZXR1cm4gQVNZTkMuCgkgIFJlb3JnYW5pemUgc29tZSBjb2RlIHBhdGhzIHRvIGltcGxlbWVudCB0aGlzIGJlaGF2aW9yLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfZW9zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgdG8gdmVyaWZ5IGFib3ZlIEVPUyBmaXguCgoyMDA3LTEwLTA4IDEwOjI4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTW92ZSBkZXRlY3RpbmcgdGhlIGlucHV0IGNhcHMgb2YgdGhlIHNpbmtwYWQgdG8gdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRjYXBzKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1vdmUgZGV0ZWN0aW5nIHRoZSBpbnB1dCBjYXBzIG9mIHRoZSBzaW5rcGFkIHRvIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBUaGlzIGFsbG93cyB1cyB0byB1cGRhdGUgdGhlIG91dHB1dCBjYXBzIHdoZW4gd2UgcmVjZWl2ZSBuZXcgaW5wdXQgY2FwcwoJICBpbnN0ZWFkIG9mIGFsd2F5cyB1c2luZyB0aGUgZmlyc3QgZGV0ZWN0ZWQgY2Fwcy4KCjIwMDctMTAtMDggMTA6MjE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHRyeSB0byBwcmVyb2xsIG5vbi1hc3luYyBlbGVtZW50cyBhZnRlciBhIGZsdXNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgdHJ5IHRvIHByZXJvbGwgbm9uLWFzeW5jIGVsZW1lbnRzIGFmdGVyIGEgZmx1c2guCgkgIFN1YnRyYWN0IGxhdGVuY3kgZm9ybSBjbG9jayB0aW1lcyB3aGVuIHJlcG9ydGluZyBwb3NpdGlvbi4KCjIwMDctMTAtMDUgMTQ6NDQ6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjb21tZW50IGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wYXVzZV90YXNrKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgY29tbWVudCBhbmQgZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDA3LTEwLTA1IDE0OjQwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFJld29yayB0aGUgbG9ja2luZyBvZiBiYXNlc3JjIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIGJhc2VzaW5rLiBXZSBiYXNpY2FsbHkgaGF2ZSBvbmUgbG9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2xpdmUpLCAoZ3N0X2Jhc2Vfc3JjX2lzX2xpdmUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY191bmxvY2spLCAoZ3N0X2Jhc2Vfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZXdvcmsgdGhlIGxvY2tpbmcgb2YgYmFzZXNyYyBpbiBhIHNpbWlsYXIgZmFzaGlvbiB0byBiYXNlc2luay4gV2UKCSAgYmFzaWNhbGx5IGhhdmUgb25lIGxvY2sgKExJVkVfTE9DSykgcHJvdGVjdGluZyB0aGUgZGF0YWZsb3cuIFRoaXMgYWxsb3dzCgkgIHVzIHRvIGhhbmRsZSBsaXZlIHNvdXJjZXMgYW5kIHNlbWkgbGl2ZSBvbmVzIG11Y2ggYmV0dGVyLgoJICBTaW1wbGlmeSBmbHVzaGluZy4KCSAgRml4IHVubG9ja2luZyB3aGVuIHNlZWtpbmcsIHNodXR0aW5nIGRvd24gYW5kIHBhdXNpbmcgaW4gbGl2ZSBzb3VyY2VzLgoKMjAwNy0xMC0wNSAxMTo1MjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IEZpeCBjb21waWxhdGlvbiBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgIEZpeCBjb21waWxhdGlvbiBhZ2Fpbi4KCjIwMDctMTAtMDMgMTU6Mjc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBtZWFuaW5nZnVsIGNhdGVnb3JpZXMgZm9yIHRoZSBsb2dzIHRvIGNsZWFuIHRoZSBkZWZhdWx0IG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgVXNlIG1lYW5pbmdmdWwgY2F0ZWdvcmllcyBmb3IgdGhlIGxvZ3MgdG8gY2xlYW4gdGhlIGRlZmF1bHQgb25lLgoKMjAwNy0xMC0wMyAxNTowNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgIFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoKMjAwNy0xMC0wMyAxNTowMjo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6IEFkZCBzb21lIG1vcmUgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBBZGQgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAwNy0xMC0wMyAxNDo1MTowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoKMjAwNy0xMC0wMyAxMjowNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBTcGVlZHVwIHR5cGVmaW5kaW5nLiBUaGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MgKHNlZSAjNDU5ODYyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBTcGVlZHVwIHR5cGVmaW5kaW5nLiBUaGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MgKHNlZSAjNDU5ODYyKS4KCjIwMDctMTAtMDMgMTE6MzY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogRml4IGRvY3MgdGhhdCBtZW50aW9uICdwbHVnaW5fZGVzYycgaW5zdGVhZCBvZiAnZ3N0X3BsdWdpbl9kZXNjJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggZG9jcyB0aGF0IG1lbnRpb24gJ3BsdWdpbl9kZXNjJyBpbnN0ZWFkIG9mICdnc3RfcGx1Z2luX2Rlc2MnLgoJICBTcG90dGVkIGJ5IEpvc2VwIFRvcnJhIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+LgoKMjAwNy0xMC0wMyAxMToxNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjbG9jay5oOiBGaXggdXAgYnJva2VuIEdTVF9DTE9DS19GTEFHUyBtYWNybyBhbmQgR3N0Q2xvY2sgZG9jcy4gVGhlIGZsYWdzIGZpZWxkIGhhcyBtb3ZlZCB0byBHc3RPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggdXAgYnJva2VuIEdTVF9DTE9DS19GTEFHUyBtYWNybyBhbmQgR3N0Q2xvY2sgZG9jcy4gVGhlIGZsYWdzCgkgIGZpZWxkIGhhcyBtb3ZlZCB0byBHc3RPYmplY3QuCgoyMDA3LTEwLTAyIDE1OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENhbGwgdW5sb2NrIGZvciBsaXZlIHNvdXJjZXMgc28gdGhhdCB0aGV5IGNhbid0IGdldCBzdHVjayBpbiBfY3JlYXRlIGFuZCBwcm9kdWNlIGEgYnVmZmVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQ2FsbCB1bmxvY2sgZm9yIGxpdmUgc291cmNlcyBzbyB0aGF0IHRoZXkgY2FuJ3QgZ2V0IHN0dWNrIGluIF9jcmVhdGUgYW5kCgkgIHByb2R1Y2UgYSBidWZmZXIgYmVmb3JlIHRoZXkgYXJlIHNldCBiYWNrIHRvIFBMQVlJTkcuCgoyMDA3LTEwLTAyIDA5OjIxOjQ4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBDb21tZW50IHRoZSBzZWdtZW50LXJlbGF0ZWQgY29kZS4uLiBpbiB0aGUgUFJPUEVSIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgQ29tbWVudCB0aGUgc2VnbWVudC1yZWxhdGVkIGNvZGUuLi4gaW4gdGhlIFBST1BFUiBmdW5jdGlvbi4KCSAgU2VlICM0ODIxNDcgYW5kIG15IGNvbW1pdCBmcm9tIHllc3RlcmRheS4KCjIwMDctMTAtMDEgMTc6NTk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxzbyBpbml0aWFsaXplIHRoZSBjb3VudGVyIHRoYXQgY2FsY3VsYXRlcyB0aGUgZmlyc3QgdGltZXN0YW1wIG9uIGEgYnVmZmVyIGNvcnJlY3RseSBmb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWxzbyBpbml0aWFsaXplIHRoZSBjb3VudGVyIHRoYXQgY2FsY3VsYXRlcyB0aGUgZmlyc3QgdGltZXN0YW1wIG9uIGEKCSAgYnVmZmVyIGNvcnJlY3RseSBmb3Igbm9uLWxpdmUgc291cmNlcy4KCjIwMDctMTAtMDEgMTI6MzE6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IERpc2FibGUgY29kZSB0aGF0J3MgYnJlYWtpbmcgdGhlIGN1cnJlbnQtdGltZS1sZXZlbCByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIERpc2FibGUgY29kZSB0aGF0J3MgYnJlYWtpbmcgdGhlIGN1cnJlbnQtdGltZS1sZXZlbCByZXBvcnRpbmcuCgkgIFNlZSAjNDgyMTQ3CgoyMDA3LTA5LTMwIDE4OjE2OjM0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgTV9QSSBhbmQgSU1QT1JUX1NZTUJPTCB0byB0aGUgcHJpdmF0ZSBwYXJ0IG9mIHRoZSBHc3RJbmZvIHNlY3Rpb24gYXMgdGhleSBzaG91bGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIE1fUEkgYW5kIElNUE9SVF9TWU1CT0wgdG8gdGhlIHByaXZhdGUgcGFydCBvZiB0aGUgR3N0SW5mbyBzZWN0aW9uCgkgIGFzIHRoZXkgc2hvdWxkbid0IHNob3cgdXAuIEZpeGVzIHRoZSBkb2NzIGJ1aWxkLgoKMjAwNy0wOS0yOSAxMTo0NjozMSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogQWRkIGFuIGV4cGxpY2l0IHZhcmlhYmxlIGltcG9ydGF0aW9uIG5lZWRlZCBvbiBWUzYgKG9ubHkgZm9yIE1TQ19WRVIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBhbiBleHBsaWNpdCB2YXJpYWJsZSBpbXBvcnRhdGlvbiBuZWVkZWQgb24gVlM2IChvbmx5IGZvciBNU0NfVkVSKQoJICBEZWZpbmUgTV9QSSB3aGljaCBpcyB1c2VkIGluIGZpbGVzIHdoaWNoIGFyZSBpbmNsdWRpbmcgZ3N0aW5mby5oLgoJICBWUzYgaW5jbHVkZXMgZG9lc24ndCBkZWZpbmUgaXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcy4KCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVwZGF0ZSB0aGUgbGlzdCBvZiBmaWxlcyB0byBidWlsZC4KCjIwMDctMDktMjggMTA6MjI6NDAgKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBJbXByb3ZlIGRlYnVnZ2luZy4gRml4ZXMgIzQ4MDg1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUgZG90IGNvbnRyZXJhcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4gRml4ZXMgIzQ4MDg1OC4KCjIwMDctMDktMjggMTA6MTU6MjMgKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBGaXJzdCBwYXRjaCBvZiBjb2RlIGNsZWFudXBzLCB1c2UgdGhlIG1hY3JvcyBhbmQgcmlnaHQgYXJndW1lbnRzIGluIHRoZSBtYWNyb3MgdG8gc2lnbmFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlIGRvdCBjb250cmVyYXMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXJzdCBwYXRjaCBvZiBjb2RlIGNsZWFudXBzLCB1c2UgdGhlIG1hY3JvcyBhbmQgcmlnaHQgYXJndW1lbnRzIGluIHRoZQoJICBtYWNyb3MgdG8gc2lnbmFsIGFuZCBsb2NrIHRoZSBxdWV1ZS4gU2VlICM0ODA4NTguCgoyMDA3LTA5LTI2IDE4OjA2OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBJbXByb3ZlIGRlYnVnZ2luZyB3aGVuIGRlYWxpbmcgd2l0aCBfcG9sbCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChwb2xsX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyB3aGVuIGRlYWxpbmcgd2l0aCBfcG9sbCgpLgoKMjAwNy0wOS0yNiAxODowNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBGaXggbWVtb3J5IGxlYWsgSSBpbnRyb2R1Y2VkIGEgZmV3IGRheXMgYWdvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgRml4IG1lbW9yeSBsZWFrIEkgaW50cm9kdWNlZCBhIGZldyBkYXlzIGFnby4KCjIwMDctMDktMjYgMTc6MDA6MjIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogTWFrZSBpdCBvbmNlIGFnYWluIHBvc3NpYmxlIHRvIGZyZWUgR3N0QnVmZmVycyBpbiB0aGUgZGVmYXVsdCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIE1ha2UgaXQgb25jZSBhZ2FpbiBwb3NzaWJsZSB0byBmcmVlIEdzdEJ1ZmZlcnMgaW4gdGhlIGRlZmF1bHQKCSAgYnVpbGQuCgkgIFRoZSBwb2lzb25pbmcgc2NyaWJibGVzIG9uIHBhcnRzIG9mIHRoZSBtaW5pb2JqZWN0IHdlIG5lZWQgaW4KCSAgb3JkZXIgdG8gZnJlZSBpdC4KCSAgRml4ZXMgIzQ4MDM0MQoKMjAwNy0wOS0yNSAxODozNTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfQ09NUE9TRVIsIGZpeGVzICM0NTk4MDkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTVBPU0VSLCBmaXhlcyAjNDU5ODA5LgoKMjAwNy0wOS0yNCAxNzo0MToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi4qOiBBZGQgdGhlIDMtY2xhdXNlIEJTRCBsaWNlbnNlIGFuZCB0aGUgTUlUL1gxMSBsaWNlbnNlIHRvIHRoZSBsaWNlbnNlIGxpc3QuIEZpeGVzICM0Nzk3ODQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFkZCB0aGUgMy1jbGF1c2UgQlNEIGxpY2Vuc2UgYW5kIHRoZSBNSVQvWDExIGxpY2Vuc2UgdG8gdGhlIGxpY2Vuc2UKCSAgbGlzdC4gRml4ZXMgIzQ3OTc4NC4KCjIwMDctMDktMjQgMTc6MjI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogQWRkIFErQSBhYm91dCBkaWZmZXJlbnQgR1N0cmVhbWVyIHZlcnNpb25zICgjMzY0MDU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgIEFkZCBRK0EgYWJvdXQgZGlmZmVyZW50IEdTdHJlYW1lciB2ZXJzaW9ucyAoIzM2NDA1NikuCgoyMDA3LTA5LTI0IDEyOjQ2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXR1cm4gY29ycmVjdCBnYm9vbGVhbiBmcm9tIHF1ZXJ5IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJldHVybiBjb3JyZWN0IGdib29sZWFuIGZyb20gcXVlcnkgZnVuY3Rpb24uCgoyMDA3LTA5LTI0IDEyOjI5OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW1wbGlmeSBsYXRlbmN5IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2ltcGxpZnkgbGF0ZW5jeSBxdWVyeS4KCSAgV2hlbiBub3Qgc3luY2hyb25pemluZywgd2UgY2FuIHJlcG9ydCBsYXRlbmN5IHdpdGhvdXQgcXVlcnlpbmcgdGhlIHBlZXIKCSAgZWxlbWVudC4KCjIwMDctMDktMjQgMTE6NDY6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggc21hbGwgdHlwb3MgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRml4IHNtYWxsIHR5cG9zIGluIHRoZSBkb2NzLgoKMjAwNy0wOS0yNCAxMToyMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0eXBvIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0eXBvIGZpeGVzLgoKMjAwNy0wOS0yMyAxMDoxNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogQWRkIHNvbWUgZGVidWcgdGV4dCB0byBlcnJvciBtZXNzYWdlIHRvIGluZGljYXRlIHRoYXQgd2UgZXJyb3JlZCBvdXQgb24gcmVxdWVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBBZGQgc29tZSBkZWJ1ZyB0ZXh0IHRvIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUgdGhhdAoJICB3ZSBlcnJvcmVkIG91dCBvbiByZXF1ZXN0LgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgV2hlbiB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcgZmFpbHMsIGNoZWNrIGZvciBhbgoJICBlcnJvciBtZXNzYWdlIG9uIHRoZSBidXMgYW5kIHByaW50IGl0LgoKMjAwNy0wOS0yMiAxNzoyMjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9jcy5wbzoKCSogcG8vaHUucG86CgkqIHBvL3VrLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDctMDktMjIgMTc6MTg6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogSm9yZ2UgR29uesOhbGV6IEdvbnrDoWxleiA8YWxvcmllbEBnbWFpbC5jb20+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9lcy5wbzoKCSAgQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjEgMTQ6Mzc6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEZpeCBwcmludGYgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcHJpbnRmIGFyZ3VtZW50cy4KCjIwMDctMDktMjAgMTA6MzY6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IEltcHJvdmVkIHN0YXRlIGNoYW5nZSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIEltcHJvdmVkIHN0YXRlIGNoYW5nZSB1bml0IHRlc3QuCgoyMDA3LTA5LTIwIDA3OjQyOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IE1vdmUgcHJpdiB0byB0aGUgcmlnaHQgcGxhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgTW92ZSBwcml2IHRvIHRoZSByaWdodCBwbGFjZS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgQWRkIEZJWE1FOiBhbmQgaW1wcm92ZSBsb2cuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBXb3JrIHdpdGggYWxsIHR5cGVzIG9mIHJlZ2lzdHJpZXMuCgoyMDA3LTA5LTE5IDIwOjM5OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVucmVmIHRoZSBldmVudCBhZnRlciBwdXNoaW5nIGl0LiBGaXhlcyAjNDc4NDAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KToKCSAgRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGFmdGVyIHB1c2hpbmcgaXQuIEZpeGVzICM0Nzg0MDEuCgoyMDA3LTA5LTE5IDE4OjA3OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAuY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoKMjAwNy0wOS0xOSAxMzoyODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6IEFkZCBjb21wYXRpYmlsaXR5IG1hY3JvIGZvciBnX2ludGVybl9zdHJpbmcoKSBmb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgQWRkIGNvbXBhdGliaWxpdHkgbWFjcm8gZm9yIGdfaW50ZXJuX3N0cmluZygpIGZvcgoJICBHTGliLTIuOCAoYW55IHJlYXNvbiB3ZSBjYW4ndCBqdXN0IGJ1bXAgdGhlCgkgIHJlcXVpcmVtZW50IHRvIGF0IGxlYXN0IDIuMTA/KQoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBNYWtlIEdzdFN0YXRpY1BhZFRlbXBsYXRlJ3MgdGVtcGxfbmFtZSBmaWVsZCBhIGNvbnN0IGdjaGFyICogYW5kIGZpeAoJICB1cCB0aGUgaW50ZXJuYWwgY29kZSBhY2NvcmRpbmdseS4gIFRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSwgc2luY2UKCSAgdGhlcmUgaXMgbm8gcmVhc29uIGV4dGVybmFsIGNvZGUgY291bGQgZXZlciBhc3N1bWUgdGhlIHN0cmluZyBpbiBzdWNoCgkgIGEgc3RydWN0dXJlIGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB1bmxlc3MgaXQgZGlkIHRoYXQgaXRzZWxmOyAgdGhlCgkgIHVzZSBvZiBnX3N0cmR1cCgpIGlzIHByaXZhdGUgdG8gZWxlbWVudCBmYWN0b3JpZXMuICBUaGUgbmV3IGNvZGUgYWxzbwoJICBzYXZlcyBzb21lIG1lbW9yeSBieSBwdXR0aW5nIHBhZCB0ZW1wbGF0ZSBuYW1lIHN0cmluZ3MgaW50byB0aGUgR0xpYgoJICBxdWFyayB0YWJsZSBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgdGhlbSBkeW5hbWljYWxseS4KCSAgRGVjbGFyaW5nIHRoaXMgZmllbGQgY29uc3RhbnQgZml4ZXMgd2FybmluZ3Mgd2l0aCBnKystNC4yIHdoZW4gdXNpbmcKCSAgdGhlIEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFIG1hY3JvIGluIGMrKyBjb2RlICgjNDc4MDkyKS4KCjIwMDctMDktMTkgMTI6MzE6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZWxlYXNlIHN0YXRpYyBjYXBzLiBGaXhlcyAjNDc1NzIzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgUmVsZWFzZSBzdGF0aWMgY2Fwcy4gRml4ZXMgIzQ3NTcyMy4KCjIwMDctMDktMTggMjI6MTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby4qOiBNYWtlIHNvbWUgaW50ZXJuYWwgQVBJIHRha2UgY29uc3QgZ2NoYXIgKiBpbnN0ZWFkIG9mIGp1c3QgZ2NoYXIgKiB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGcrKy0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBNYWtlIHNvbWUgaW50ZXJuYWwgQVBJIHRha2UgY29uc3QgZ2NoYXIgKiBpbnN0ZWFkIG9mIGp1c3QKCSAgZ2NoYXIgKiB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGcrKy00LjIuMiB3aGVuCgkgIHBhc3Npbmcgc3RyaW5nIGNvbnN0YW50cyAocGFydGlhbGx5IGZpeGVzICM0NzgwOTIpLgoKMjAwNy0wOS0xNyAyMDo1NToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIHdoZW4gb25lIG9mIHRoZSBzaW5rcyBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBBIGxhdGVuY3kgcXVlcnkgZmFpbHMgd2hlbiBvbmUgb2YgdGhlIHNpbmtzIGZhaWwuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDktMTcgMTc6MTc6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IG1pbm9yIGNvbXBpbGF0aW9uIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApOgoJICBGaXggbWlub3IgY29tcGlsYXRpb24gd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCjIwMDctMDktMTcgMDY6MDE6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IE1lYXN1cmUgcXVldWUgbGV2ZWwgYmFzZWQgb24gdGhlIGRpZmYgYmV0d2VlbiBoZWFkIGFuZCB0YWlsIHRpbWVzdGFtcHMgZXZlbiB3aGVuIHB1c2hpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBNZWFzdXJlIHF1ZXVlIGxldmVsIGJhc2VkIG9uIHRoZSBkaWZmIGJldHdlZW4gaGVhZCBhbmQgdGFpbCB0aW1lc3RhbXBzCgkgIGV2ZW4gd2hlbiBwdXNoaW5nIHRoZSBmaXJzdCBidWZmZXIuCgoyMDA3LTA5LTE0IDIzOjA2OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW5rcyB0aGF0IGRvbid0IHByZXJvbGwgY2FuIGFsd2F5cyBiZSBxdWVyaWVkIGZvciB0aGUgbGF0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW5rcyB0aGF0IGRvbid0IHByZXJvbGwgY2FuIGFsd2F5cyBiZSBxdWVyaWVkIGZvciB0aGUgbGF0ZW5jeS4KCSAgRG9uJ3QgcG9zdCBBU1lOQyBzdGFydCB3aGVuIHdlIGFyZSBub3QgYXN5bmMuCgoyMDA3LTA5LTE0IDIwOjI0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBXaGVuIGRvd25zdHJlYW0gcmV0dXJucyBVTkVYUEVDVEVEIGZyb20gcHVzaGluZyBhIGJ1ZmZlciwgZG9uJ3QgdHJ5IHRvIHB1c2ggbW9yZSBidWZmZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBXaGVuIGRvd25zdHJlYW0gcmV0dXJucyBVTkVYUEVDVEVEIGZyb20gcHVzaGluZyBhIGJ1ZmZlciwgZG9uJ3QgdHJ5IHRvCgkgIHB1c2ggbW9yZSBidWZmZXJzIGJ1dCBhbGxvdyBwdXNoaW5nIG9mIEVPUyBhbmQgTkVXU0VHTUVOVC4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGhlcmUgYW5kIHRoZXJlLiBGaXhlcyAjNDc2NTE0LgoKMjAwNy0wOS0xNCAxNTo1MjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTGF0ZW5jeSBxdWVyeSBpcyBhbGxvd2VkIGFmdGVyIHdlIGFyZSBwcmVyb2xsZWQuIEludHJvZHVjZSBhIG5ldyBmbGFnIGZvciB0aGlzIGFuZCBzdG9wIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTGF0ZW5jeSBxdWVyeSBpcyBhbGxvd2VkIGFmdGVyIHdlIGFyZSBwcmVyb2xsZWQuIEludHJvZHVjZSBhIG5ldyBmbGFnCgkgIGZvciB0aGlzIGFuZCBzdG9wIGFidXNpbmcgb3RoZXIgdmFyaWFibGVzLgoKMjAwNy0wOS0xMyAyMzo1Mzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQdXNoIE9PQiBldmVudHMgZG93bnN0cmVhbSB3aGVuIHdlIGdldCB0aGVtIGluIHNlbmRfZXZlbnQuIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KToKCSAgUHVzaCBPT0IgZXZlbnRzIGRvd25zdHJlYW0gd2hlbiB3ZSBnZXQgdGhlbSBpbiBzZW5kX2V2ZW50LiBUaGlzIGFsbG93cwoJICB0aGUgYXBwbGljYXRpb24gdG8gaW5zZXJ0IGV2ZW50cyBpbiB0aGUgcGlwZWxpbmUuCgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA3LTA5LTEzIDIxOjI3OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW92ZSBsYXRlbmN5IHF1ZXJ5IGZyb20gR3N0UGlwZWxpbmUgdG8gR3N0QmluIHNvIHRoYXQgd2UgY2FuIGFsc28gdXNlIGl0IHdoZW4gYXN5bmMtaGFuZGxpbmcgaXMgZW5hYmxlZCBvbiBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoY2xlYXJfcXVldWUpLAoJICAoZG9fYmluX2xhdGVuY3kpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgTW92ZSBsYXRlbmN5IHF1ZXJ5IGZyb20gR3N0UGlwZWxpbmUgdG8gR3N0QmluIHNvIHRoYXQgd2UgY2FuIGFsc28KCSAgdXNlIGl0IHdoZW4gYXN5bmMtaGFuZGxpbmcgaXMgZW5hYmxlZCBvbiBiaW5zLgoKMjAwNy0wOS0xMyAyMToxOTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgVXBkYXRlIGRvY3MuCgkgIENsZWFuIHVwIHRoZSB0aW1lc3RhbXBpbmcgYW5kIHN5bmNpbmcgY29kZSBmb3IgcHNldWRvIGxpdmUgc291cmNlcy4KCjIwMDctMDktMTMgMTk6Mjc6NTMgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOiBNZW50aW9uIGxlc3MgLVIgc3dpdGNoIGluIHRoZSBzZWN0aW9uIGFib3V0IGRlYnVnIG91dHB1dCAoIzQ3NDA1NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgTWVudGlvbiBsZXNzIC1SIHN3aXRjaCBpbiB0aGUgc2VjdGlvbiBhYm91dCBkZWJ1ZyBvdXRwdXQgKCM0NzQwNTUpLgoKMjAwNy0wOS0xMyAxNzoxNTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUXVldWUgY2FuIGxhdGVuY3kgdG8gdGhlIHBpcGVsaW5lIHVwIHRvIHRoZSBjb25maWd1cmVkIG1heCBzaXplIGluIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUXVldWUgY2FuIGxhdGVuY3kgdG8gdGhlIHBpcGVsaW5lIHVwIHRvIHRoZSBjb25maWd1cmVkIG1heCBzaXplIGluIHRpbWUuCgkgIFJlcG9ydCB0aGlzIGZhY3QgaW4gdGhlIGxhdGVuY3kgcXVlcnkuCgoyMDA3LTA5LTEzIDA5OjA4OjIzICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSgpIHdoZW4gY29udmVydGluZyBmcm9tIGEgdWludDY0IG9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuIGF0IG1vdXR0ZSBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSgpIHdoZW4gY29udmVydGluZyBmcm9tIGEgdWludDY0IG9yCgkgIEdzdENsb2NrVGltZSB0byBkb3VibGUgdG8gZml4IHRoZSBidWlsZCBvbiB3aW4zMi4gRml4ZXMgIzQ3NDM3MS4KCjIwMDctMDktMTMgMDg6NDI6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogSW1wbGVtZW50IHBvaXNvbmluZyBmb3IgR3N0QnVmZmVyIGlmIC0tZW5hYmxlLXBvaXNvbmluZyBpcyBzcGVjaWZpZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBJbXBsZW1lbnQgcG9pc29uaW5nIGZvciBHc3RCdWZmZXIgaWYgLS1lbmFibGUtcG9pc29uaW5nIGlzIHNwZWNpZmllZC4KCSAgV2hlbiBmaW5hbGl6aW5nIGEgYnVmZmVyIHRoZSBjb21wbGV0ZSBzdHJ1Y3QgaXMgZmlsbGVkIHdpdGggMHhmZiwKCSAgdGh1cyBtYWtpbmcgYSB1c2Ugb2YgdGhlIGJ1ZmZlciBhZnRlciB0aGUgZmluYWwgdW5yZWYgaW1wb3NzaWJsZS4KCjIwMDctMDktMTMgMDg6MzY6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBVc2UgZmFpbF91bmxlc3NfZXF1YWxzX2ludChhLCBiKSBpbnN0ZWFkIG9mIGZhaWxfdW5sZXNzX2VxdWFscyAoYSA9PSBiKSB0byBnZXQgYmV0dGVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQoYSwgYikgaW5zdGVhZCBvZgoJICBmYWlsX3VubGVzc19lcXVhbHMgKGEgPT0gYikgdG8gZ2V0IGJldHRlciBvdXRwdXQgb24gZmFpbHVyZXMuCgoyMDA3LTA5LTEyIDE2OjM1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOiBBbHNvIGNoZWNrIGZvciB0aGUgb3RoZXIgZmlsZSBVUkkgdmFyaWFudCBvbiB3aW4zMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBBbHNvIGNoZWNrIGZvciB0aGUgb3RoZXIgZmlsZSBVUkkgdmFyaWFudCBvbiB3aW4zMi4KCjIwMDctMDktMTIgMTI6MzY6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IElmIHRoZXJlJ3Mgbm8gaG9zdG5hbWUsIHdlIHdhbnQgdG8gcmV0dXJuICdjOi9mb28vYmFyLnR4dCcgYW5kIG5vdCAnL2M6L2Zvby9iYXIudHh0JyBvbiBXaW5kb3dzLiBGaXhlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfbG9jYXRpb24pOgoJICBJZiB0aGVyZSdzIG5vIGhvc3RuYW1lLCB3ZSB3YW50IHRvIHJldHVybiAnYzovZm9vL2Jhci50eHQnCgkgIGFuZCBub3QgJy9jOi9mb28vYmFyLnR4dCcgb24gV2luZG93cy4gRml4ZXMgIzQ2OTQwMi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlIGFuZCBhIGZldyBtb3JlIHRoaW5ncy4KCjIwMDctMDktMTEgMjM6Mjc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDogQWRkIGRvY3Mgb24gaG93IGxpdmUgc291cmNlcyBzaG91bGQgdGltZXN0YW1wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgQWRkIGRvY3Mgb24gaG93IGxpdmUgc291cmNlcyBzaG91bGQgdGltZXN0YW1wLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIEZvciBzdWJjbGFzc2VzIHRoYXQgYXJlIGxpdmUgYW5kIGxpa2UgdG8gc3luYywgYWRkIGFkaXRpb25hbCBzdGFydHVwCgkgIGxhdGVuY3kgdG8gc3luYyB0aW1lIGFuZCB0aW1lc3RhbXBzIHNvIHRoYXQgd2UgdGltc3RhbXAgYWNjb3JkaW5nIHRvIHRoZQoJICBkZXNpZ24gZG9jLgoKMjAwNy0wOS0xMSAxODo1OTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogQWxzbyBkbyBhIGdfdHlwZV9jbGFzc19yZWYoKSBmb3IgdGhlIHN1YmJ1ZmZlciB0eXBlIGluIHRoZSBpbml0IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIEFsc28gZG8gYSBnX3R5cGVfY2xhc3NfcmVmKCkgZm9yIHRoZSBzdWJidWZmZXIgdHlwZSBpbgoJICB0aGUgaW5pdCBmdW5jdGlvbi4KCjIwMDctMDktMTEgMTU6NTU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgZnVuY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IG9uIHRoZSBwZWVyIG9mIGEgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9xdWVyeSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZnVuY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IG9uIHRoZSBwZWVyIG9mIGEgcGFkLgoJICBBUEk6IGdzdF9wYWRfcGVlcl9xdWVyeSgpCgoyMDA3LTA5LTExIDEzOjQzOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogQ2xlYW51cCB0aGUgdGVzdCBhIGxpdHRsZSAodXNlIGdzdC1sb2dnaW5nIGFuZCBub3QgZ19tZXNzYWdlKS4gSW1wcm92ZSB0ZXN0IHRvIGNoZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIENsZWFudXAgdGhlIHRlc3QgYSBsaXR0bGUgKHVzZSBnc3QtbG9nZ2luZyBhbmQgbm90IGdfbWVzc2FnZSkuIEltcHJvdmUKCSAgdGVzdCB0byBjaGVjayBpZiBhIHdhaXQgcmVhY2hlZCB0aGUgdGFyZ2V0LgoKMjAwNy0wOS0xMSAxMDozMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvY3MgYW5kIGZpeCB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvY3MgYW5kIGZpeCB0aGUgYnVpbGQuCgoyMDA3LTA5LTEwIDE2OjUwOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCBwcm9wZXJ0eSB0byBtYWtlIHRoZSBiYXNlc3JjIHRpbWVzdGFtcCBidWZmZXJzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHJ1bm5pbmcgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCksIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgcHJvcGVydHkgdG8gbWFrZSB0aGUgYmFzZXNyYyB0aW1lc3RhbXAgYnVmZmVycyBiYXNlZCBvbiB0aGUgY3VycmVudAoJICBydW5uaW5nIHRpbWUuCgkgIEFQSTogR3N0QmFzZVNyYzo6ZG8tdGltZXN0YW1wCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXAoKQoJICBBUEk6IGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKCkKCjIwMDctMDktMDggMjA6MjU6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBSZWFsbHkgbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZSBiZWZvcmUgYSByZWxlYXNlICgjNDY1MDEwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgUmVhbGx5IG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlCgkgIGEgcmVsZWFzZSAoIzQ2NTAxMCkuCgoyMDA3LTA5LTA3IDE0OjQ2OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCBoZWFkZXIgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgaGVhZGVyIGZpbGVzCgoyMDA3LTA5LTA3IDA0OjUwOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWx3YXlzIGRlc3Ryb3kgdGhlIHRpbWVyLCBhbHNvIGluIGVycm9yIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEFsd2F5cyBkZXN0cm95IHRoZSB0aW1lciwgYWxzbyBpbiBlcnJvciBjYXNlcy4KCjIwMDctMDktMDUgMjI6Mjk6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDogRml4IFhNTCBleGFtcGxlIGNvZGUuIEZpeGVzICM0NzI3MTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICBGaXggWE1MIGV4YW1wbGUgY29kZS4gRml4ZXMgIzQ3MjcxNC4KCjIwMDctMDktMDUgMjI6MTI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByb3RlY3QgZW9zIGFuZCBoYXZlX3ByZXJvbGwgd2l0aCB0aGUgT0JKRUNUIGxvY2sgc28gd2UgZG9uJ3QgbmVlZCB0byB0YWtlIHRoZSBQUkVST0xMIGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUHJvdGVjdCBlb3MgYW5kIGhhdmVfcHJlcm9sbCB3aXRoIHRoZSBPQkpFQ1QgbG9jayBzbyB3ZSBkb24ndCBuZWVkIHRvCgkgIHRha2UgdGhlIFBSRVJPTEwgbG9jayB3aGVuIHF1ZXJ5aW5nIHRoZSBsYXRlbmN5LiBGaXhlcyAjNDczODQ2LgoKMjAwNy0wOS0wNSAxMzoyNDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogR2l2ZSBzb21lIGxvZy1tZXNzYWdlcyBhIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBHaXZlIHNvbWUgbG9nLW1lc3NhZ2VzIGEgY2F0ZWdvcnkuCgoyMDA3LTA5LTA1IDAxOjAwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGaXggZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBjb2RlLiBUYWtlIHRoZSBmcmFjdGlvbiB3aXRoIHRoZSBzbWFsbGVzdCBkaWZmZXJlbmNlIHdpdGggdGhlIHRhcmdldCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICBGaXggZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBjb2RlLiBUYWtlIHRoZSBmcmFjdGlvbiB3aXRoIHRoZSBzbWFsbGVzdAoJICBkaWZmZXJlbmNlIHdpdGggdGhlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3QuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgdG8gdmVyaWZ5IGNvcnJlY3QgZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBiZWhhdmlvdXIuCgoyMDA3LTA5LTAyIDIwOjMwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEV4cG9ydCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2ggdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRXhwb3J0IGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCB0b28uCgoyMDA3LTA4LTMwIDE3OjUwOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBtZXRob2RzIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgbWV0aG9kcyB0byBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RzX29mZnNldCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIHRzLW9mZnNldCBwcm9wZXJ0eSB0byBmaW5lLXR1bmUgdGhlIHN5bmNocm9uaXNhdGlvbi4KCSAgQVBJOiBHc3RCYXNlU2luazo6dHMtb2Zmc2V0IHByb3BlcnR5CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF90c19vZmZzZXQoKQoKMjAwNy0wOC0yOSAyMDo1Nzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkIGFzeW5jIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBzaW5rIG5ldmVyIHRvIGluZm9ybSB0aGUgcGFyZW50IGFib3V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jKSwgKGdzdF9iYXNlX3Npbmtfc2V0X21heF9sYXRlbmVzcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9tYXhfbGF0ZW5lc3MpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfYXN5bmNfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYXN5bmMgcHJvcGVydHkgdG8gaW5zdHJ1Y3QgdGhlIHNpbmsgbmV2ZXIgdG8gaW5mb3JtIHRoZSBwYXJlbnQgYWJvdXQKCSAgQVNZTkMgc3RhdGUgY2hhbmdlcywgdXBkYXRlIGRvY3MuCgkgIENoZWNrIGFyZ3VtZW50IHdpdGggZ19yZXR1cm5fKiBmb3IgdGhlIHB1YmxpYyBmdW5jdGlvbnMuCgkgIEFQSTogR3N0QmFzZVNpbms6OmFzeW5jIHByb3BlcnR5CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19hc3luY19lbmFibGVkKCkKCjIwMDctMDgtMjggMTU6MDI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2xvb3ApOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZWFycmFuZ2Ugc29tZSBjb2RlIHNvIHRoYXQgd2UgY2FuIGFkZCBzdXBwb3J0IGZvciBtZWFzdXJpbmcgdGhlCgkgIHN0YXJ0dXAgbGF0ZW5jeS4KCjIwMDctMDgtMjcgMjA6MDA6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6IE1vcmUgdGhvdWdocyBvbiB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICBNb3JlIHRob3VnaHMgb24gdGhpcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgQWRkIGJ1Z3ppbGxhIHRpY2tldCBudW1iZXIgdG8gRklYTUUgY29tbWVudC4KCjIwMDctMDgtMjYgMTg6MzA6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHJlbW92ZSB0ZW1wIGZpbGVzIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVtcCBmaWxlcyBhZ2FpbgoKMjAwNy0wOC0yNiAxNjo0MjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA4LTI2IDE1OjU4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIEFVVEhPUlM6CgkqIE1BSU5UQUlORVJTOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDgtMjQgMjE6NTM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA3LTA4LTI0IDE2OjM5OjA2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmV2ZXJ0IHBhdGNoIHdoaWNoIHVzZXMgJChnc3RfaGVhZGVycykgaW5zdGVhZCBvZiAkXiBiZWNhdXNlIGl0IGJyZWFrcyBtYWtlIGRpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmV2ZXJ0IHBhdGNoIHdoaWNoIHVzZXMgJChnc3RfaGVhZGVycykgaW5zdGVhZCBvZiAkXiBiZWNhdXNlIGl0CgkgIGJyZWFrcyBtYWtlIGRpc3QuCgoyMDA3LTA4LTI0IDE0OjU1OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogRml4IGxlYWtzIGluIHRoZSBuZXcgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrcyBpbiB0aGUgbmV3IHVuaXQgdGVzdC4KCjIwMDctMDgtMjMgMjA6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvbid0IHVzZSBHU1RfSU5GTyBiZWZvcmUgdGhlIGRlYnVnIHN5c3RlbSBpcyBhY3R1YWxseSBpbml0aWFsaXNlZCAoc2hvdWxkbid0IGRvIGFueSBoYXJtLCBidXQgd29uJ3QgcHJpbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBEb24ndCB1c2UgR1NUX0lORk8gYmVmb3JlIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgYWN0dWFsbHkgaW5pdGlhbGlzZWQKCSAgKHNob3VsZG4ndCBkbyBhbnkgaGFybSwgYnV0IHdvbid0IHByaW50IGFueXRoaW5nIGVpdGhlciwgc28gd2UgY2FuCgkgIGp1c3QgYXMgd2VsbCByZW1vdmUgaXQpLgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEdTVF9DQVRfTEVWRUxfTE9HX3ZhbGlzdCgpLCB3aGljaCBpcyBvdXIgaW5saW5lIGhlbHBlciBmdW5jdGlvbiBmb3IKCSAgY29tcGlsZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB2YXJpYWRpYyBtYWNyb3MgKHN1Y2ggYXMgTVNWQyksIHNob3VsZAoJICBjaGVjayBmb3IgZGVidWdfbGV2ZWwgPD0gX19nc3RfZGVidWdfbWluIGFzIHdlbGwsIHNpbmNlIHRoYXQncyB0aGUKCSAgZnVuY3Rpb24gY2FsbGVkIGZyb20gYWxsIHRoZSBsZXZlbC1zcGVjaWZpYyBHU1RfQ0FUXypfTE9HX09CSkVDVCgpCgkgIGlubGluZSBoZWxwZXIgZnVuY3Rpb25zLiBTaG91bGQgaW1wcm92ZSBwZXJmb3JtYW5jZSBhIGJpdCwgYnV0IGFsc28KCSAgbWFrZXMgc3VyZSB1c2VzIG9mIEdTVF9JTkZPIGV0LmFsIGFyZSBpZ25vcmVkIGlmIHRoZSBkZWJ1Z2dpbmcKCSAgc3lzdGVtIGlzbid0IGluaXRpYWxpc2VkIHlldCAoaW5zdGVhZCBvZiBwcmludGluZyBhbiBhc3NlcnRpb24KCSAgZmFpbHVyZSkuCgoyMDA3LTA4LTIzIDA3OjEwOjMzICswMDAwICBEYXZpZCBOZcSNYXMgPHlldGlAcGh5c2ljcy5tdW5pLmN6PgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZXBsYWNlIHNvbWUgbm9uIHBvcnRhYmxlIG1ha2VmaWxlIGNvbnN0cnVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogRGF2aWQgTmXEjWFzIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJlcGxhY2Ugc29tZSBub24gcG9ydGFibGUgbWFrZWZpbGUgY29uc3RydWN0cy4KCjIwMDctMDgtMjEgMTQ6MTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbW1vbi9ndGstZG9jLXBsdWdpbnMubWFrOiBHcnJycnIuIERvbid0IHJlbW92ZSB0aGUgdHlwZXMgZmlsZSBvbiBtYWtlIGNsZWFuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3RrLWRvYy1wbHVnaW5zLm1hazoKCSAgR3JycnJyLiBEb24ndCByZW1vdmUgdGhlIHR5cGVzIGZpbGUgb24gbWFrZSBjbGVhbi4KCjIwMDctMDgtMjAgMTc6NTE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEFkZCBjb2xvcnNwYWNlIHRvIGV4YW1wbGUgcGlwZWxpbmUuIEZpeGVzICM0NTgyNzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQWRkIGNvbG9yc3BhY2UgdG8gZXhhbXBsZSBwaXBlbGluZS4gRml4ZXMgIzQ1ODI3NC4KCjIwMDctMDgtMjAgMTI6MzE6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBUaGUgcmVsZWFzZSBtYW5hZ2VyIHNob3VsZCBydW4gJ21ha2UgZG93bmxvYWQtcG8nIGJlZm9yZSBtYWtpbmcgYSByZWxlYXNlIHRvIG1ha2Ugc3VyZSB0cmFuc2xhdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVGhlIHJlbGVhc2UgbWFuYWdlciBzaG91bGQgcnVuICdtYWtlIGRvd25sb2FkLXBvJyBiZWZvcmUgbWFraW5nIGEKCSAgcmVsZWFzZSB0byBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlLgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vYmUucG86CgkgICogcG8vcGwucG86CgkgICogcG8vcncucG86CgkgIEFkZCBzb21lIG5ldyB0cmFuc2xhdGlvbnMuCgoyMDA3LTA4LTE3IDEzOjQ4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb27CtHQgdHJ5IHRvIGRvIGFueSBzdGF0ZSBtYW5hZ2VtZW50IHdoZW4gYSBsaXZlIHBpcGVsaW5lIHBvc3RzIGJ1ZmZlcmluZyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgRG9uwrR0IHRyeSB0byBkbyBhbnkgc3RhdGUgbWFuYWdlbWVudCB3aGVuIGEgbGl2ZSBwaXBlbGluZSBwb3N0cwoJICBidWZmZXJpbmcgbWVzc2FnZXMuCgkgIEFsc28gbWFrZSB0aGUgYnVmZmVyaW5nIHN0cmluZyB0cmFuc2xhdGFibGUuCgoyMDA3LTA4LTE2IDExOjA0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgV2hlbiBhZGRpbmcgZWxlbWVudHMsIGluc2VydCBtZXNzYWdlcyBpbnRvIHRoZSBidXMgb2YgdGhlIG5ld2x5IGFkZGVkCgkgIGVsZW1lbnQgYW5kIG1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyB0aGUgc291cmNlIG9mIHRoZSBtZXNzYWdlLiBUaGlzCgkgIGFsbG93cyB0aGUgcGFyZW50IGJpbiB0byBpbnRlcmNlcHQgdGhlIG1lc3NhZ2UgYW5kIGRvIHRoZQoJICByaWdodCB0aGluZy4gSXQgYWxzbyBhdm9pZHMgdXMgcG9zdGluZyBBU1lOQ19TVEFSVCBhbmQgQ0xPQ0tfUFJPVklERQoJICBtZXNzYWdlcyB0byB0aGUgYXBwICh3aGljaCBpcyBub3QgYWxsb3dlZCkuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0ZXN0c3VpdGUgc28gdGhhdCBpcyBkb2VzIG5vdCB3b3JrIGFyb3VuZCBtZXNzYWdlcyB0aGF0IHNob3VsZCBub3QKCSAgaGF2ZSBiZWVuIHBvc3RlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCgoyMDA3LTA4LTE2IDEwOjI3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYW5ub3lpbmcgYnVnIGluIHRoZSBzb3J0ZWQgaXRlcmF0b3Igd2hlcmUgYSBzaW5rIHRoYXQgaXMgbm90IHJlYWxseSBhIHNpbmsgKHdoZW4gaXQgaGFzIGRvd25zdHJlYW0gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChyZW1vdmVfZnJvbV9xdWV1ZSksIChjbGVhcl9xdWV1ZSksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KToKCSAgRml4IGFubm95aW5nIGJ1ZyBpbiB0aGUgc29ydGVkIGl0ZXJhdG9yIHdoZXJlIGEgc2luayB0aGF0IGlzIG5vdCByZWFsbHkKCSAgYSBzaW5rICh3aGVuIGl0IGhhcyBkb3duc3RyZWFtIGxpbmtzKSBzY3Jld2VkIHVwIHRoZSBpdGVyYXRvci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgVW5pdCB0ZXN0IHRvIHZlcmlmeSB0aGUgZml4LgoKMjAwNy0wOC0xNiAxMDowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IEFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBtZXNzYWdlcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFdoZW4gaW50ZXJydXB0aW5nLCBkb24ndCB0cnkgdG8gc2V0IHBpcGVsaW5lIHRvIFBBVVNFRCB0d2ljZS4KCjIwMDctMDgtMTQgMTQ6MTA6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1vdmUgQVNZTkNfU1RBUlQgbWVzc2FnZSBwb3N0aW5nIHRvIHdoZXJlIGl0IGJlbG9uZ3MsIHNpbWlsYXIgdG8gYXN5bmNfZG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTW92ZSBBU1lOQ19TVEFSVCBtZXNzYWdlIHBvc3RpbmcgdG8gd2hlcmUgaXQgYmVsb25ncywgc2ltaWxhciB0bwoJICBhc3luY19kb25lLgoJICBEb24ndCBwb3N0IEFTWU5DX1NUQVJUIHdoZW4gd2UgYXJlIGluIGVycm9yLgoJICBQb3N0IEFTWU5DX1NUQVJUIHdoZW4gd2UgYWRkZWQgYW4gYXN5bmMgZWxlbWVudCB0byBhIGJpbi4KCjIwMDctMDgtMTQgMTM6NDM6NDQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZGV4LmM6IEZpeCBpbmRleCBlbnRyeSBnZW5lcmF0aW9uIGZyb20gdmFyZ3MuIEZpeGVzICM0NjY1OTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA4LTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKTogRml4IGluZGV4IGVudHJ5CgkgIGdlbmVyYXRpb24gZnJvbSB2YXJncy4gRml4ZXMgIzQ2NjU5NS4KCjIwMDctMDgtMTQgMTM6Mzc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFsd2F5cyBjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgTk9fUFJFUk9MTCBlbGVtZW50IGV2ZW4gaWYgaXQgaGFzIEFTWU5DIGVsZW1lbnRzIGluc2lkZSAoaW4gY2FzZSBvZiBhIGJpbikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBbHdheXMgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIE5PX1BSRVJPTEwgZWxlbWVudCBldmVuIGlmIGl0IGhhcyBBU1lOQwoJICBlbGVtZW50cyBpbnNpZGUgKGluIGNhc2Ugb2YgYSBiaW4pLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgdGhpcyBjYXNlLgoKMjAwNy0wOC0xMyAxMzozMzowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG1vcmUgbWlzc2luZyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIEFkZCBtb3JlIG1pc3NpbmcgZG9jcy4KCjIwMDctMDgtMTIgMTY6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFkZCBTaW5jZSB0YWcgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgU2luY2UgdGFnIHRvIGRvY3MuCgoyMDA3LTA4LTEyIDE2OjQwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGZ1bmN0aW9uIHRvIGdldCB1aW50IGZyb20gYSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBBZGQgZnVuY3Rpb24gdG8gZ2V0IHVpbnQgZnJvbSBhIHN0cnVjdHVyZS4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF91aW50KCkKCjIwMDctMDgtMTIgMTY6Mzg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggcHJvcGVyIGNoZWNrIGZvciBzaW1wbGUgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwKCSAgKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIEZpeCBwcm9wZXIgY2hlY2sgZm9yIHNpbXBsZSBjYXBzLgoKMjAwNy0wOC0xMCAxNzozNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFJlbW92ZSBjcnVmdCBhbmQgZG8gc29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgY3J1ZnQgYW5kIGRvIHNvbWUgY2xlYW51cHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBQcmVwYXJlIGZvciBjb21taW5nIGd0a2RvYyBmZWF0dXJlcyAocmViYXNlIGFnYWluc3Qgb25saW5lIGRvY3MpLgoKMjAwNy0wOC0xMCAxNDo1Mjo0MSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoIHRvIGRvY3MuCgkgIEFsc28gZml4IGZvcm1hdHRpbmcgb2YgYW4gb2xkZXIgY2hhbmdlbG9nIGVudHJ5CgoyMDA3LTA4LTEwIDE0OjQwOjI2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnkuaDogQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCwgd2hpY2ggd2FzIG1pc3NpbmcgZnJvbSB0aGlzIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGgsIHdoaWNoIHdhcyBtaXNzaW5nIGZyb20gdGhpcyBoZWFkZXIuCgoyMDA3LTA4LTEwIDEwOjMwOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6IFByaW50ZiBmb3JtYXQgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXguCgoyMDA3LTA4LTA5IDIxOjUwOjE5ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBzZW5kIGFuIGFzeW5jX3N0YXJ0IG1lc3NhZ2UgZHVyaW5nIGRvd253YXJkcyBzdGF0ZSBjaGFuZ2UgaWYgdGFyZ2V0IHN0YXRlIGlzIGxlc3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRG9uJ3Qgc2VuZCBhbiBhc3luY19zdGFydCBtZXNzYWdlIGR1cmluZyBkb3dud2FyZHMgc3RhdGUgY2hhbmdlIGlmIHRhcmdldAoJICBzdGF0ZSBpcyBsZXNzIHRoYW4gUkVBRFkKCjIwMDctMDgtMDkgMTA6NTA6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBIdW5nYXJpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBHYWJvciBLZWxlbWVuIDxrZWxlbWVuZ0Bnbm9tZS5odT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2h1LnBvOgoJICBBZGRlZCBIdW5nYXJpYW4gdHJhbnNsYXRpb24uCgoyMDA3LTA4LTA5IDEwOjQ4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2ZpLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3VrLnBvOgoJICBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCjIwMDctMDgtMDcgMTY6MDY6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbTogRGlzdCBnc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIERpc3QgZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaAoKMjAwNy0wOC0wNyAxNToxNTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6IERvbid0IHJlZ2lzdGVyIHRoZSBlbnVtIHR5cGUgZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSgpIGluIHRoZSAudHlwZXMgZmlsZSAtIG9ubHkgR08uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBEb24ndCByZWdpc3RlciB0aGUgZW51bSB0eXBlIGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUoKSBpbiB0aGUKCSAgLnR5cGVzIGZpbGUgLSBvbmx5IEdPYmplY3QgZGVyaXZlZCB0eXBlcyBiZWxvbmcuCgoyMDA3LTA4LTA3IDE0OjA0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBSZW1vdmUgY29tbWEgZnJvbSBsYXN0IGVsZW1lbnQgaW4gZW51bSB0byBhdm9pZCBjb21waWxlIGVycm9ycyB3aGVuIHVzaW5nIC1wZW5kYW50aWMuIEZpeGVzICM0NjQzNjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogPGFyZW5ldmllciBhdCBmZG4gZG90IGZyPgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgUmVtb3ZlIGNvbW1hIGZyb20gbGFzdCBlbGVtZW50IGluIGVudW0gdG8gYXZvaWQgY29tcGlsZSBlcnJvcnMgd2hlbgoJICB1c2luZyAtcGVuZGFudGljLiBGaXhlcyAjNDY0MzY2LgoKMjAwNy0wOC0wNyAwOTo1NjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBzb21lIG1vcmUgVE9ETyBpdGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSBtb3JlIFRPRE8gaXRlbXMKCSAgKiBnc3QvZ3N0YmluLmM6IChmaW5kX21lc3NhZ2UpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBPcHRpbWl6ZSB0cml2aWFsIGludGVyc2VjdGlvbiBjYXNlIGJldHdlZW4gaWRlbnRpY2FsIGNhcHMgcG9pbnRlcnMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBzcGVsbGluZyBhbmQgZ3JhbW1hciBtaXN0YWtlcy4KCjIwMDctMDgtMDUgMTQ6NDg6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvL1BPVEZJTEVTLio6IFVwZGF0ZSBQT1RGSUxFUy4gRml4ZXMgIzQ2MTU5OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgVXBkYXRlIFBPVEZJTEVTLiBGaXhlcyAjNDYxNTk5LgoKMjAwNy0wOC0wMyAxOToyNTo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBGaXggY29uZnVzaW5nIHR5cG8gaW4gZGVidWcgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBjb25mdXNpbmcgdHlwbyBpbiBkZWJ1ZyBvdXRwdXQuCgoyMDA3LTA4LTAzIDE1OjQ3OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBBZGQgR3N0TEZPQ29udHJvbFNvdXJjZSwgYSBjb250cm9sIHNvdXJjZSB0aGF0IGdpdmVzIHZhbHVlcyBmb3Igc3BlY2lmaWMgdGltZXN0YW1wcyBiYXNlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzogKF9jYWxjdWxhdGVfcG9zKSwKCSAgKGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUpLCAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9yZXNldCksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX25ldyksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3NldF93YXZlZm9ybSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2JpbmQpLCAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9kaXNwb3NlKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBBUEk6IEFkZCBHc3RMRk9Db250cm9sU291cmNlLCBhIGNvbnRyb2wgc291cmNlIHRoYXQgZ2l2ZXMgdmFsdWVzCgkgIGZvciBzcGVjaWZpYyB0aW1lc3RhbXBzIGJhc2VkIG9uIHNldmVyYWwgcGVyaW9kaWMgd2F2ZWZvcm1zLgoJICBGaXhlcyAjNDU5NzE3LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzIGZvciBHc3RMRk9Db250cm9sU291cmNlLgoKMjAwNy0wOC0wMyAxNDo0MDoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTQgPT09CgoyMDA3LTA4LTAzIDE0OjM5OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNAoKMjAwNy0wOC0wMyAxMzoyMDo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wOC0wMiAxMTo1MToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IE1ha2Ugc3RyaW5ncyBwYXNzZWQgdG8gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgY29uc3RhbnQsIGFzIHRoZXkgc2hvdWxkIGJlICgjNDYyNzUyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTWFrZSBzdHJpbmdzIHBhc3NlZCB0byBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKQoJICBjb25zdGFudCwgYXMgdGhleSBzaG91bGQgYmUgKCM0NjI3NTIpLgoKMjAwNy0wOC0wMiAxMToxNTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgZm9yZ2V0IGFib3V0IHRoZSBmYWN0IHRoYXQgc29tZSBlbGVtZW50IHdlbnQgQVNZTkMgZXZlbiBhZnRlciBhIHJlc3luYy4gVGhpcyBtYWtlcyB1cyBwb3N0IHRoZSBBUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBEb24ndCBmb3JnZXQgYWJvdXQgdGhlIGZhY3QgdGhhdCBzb21lIGVsZW1lbnQgd2VudCBBU1lOQyBldmVuIGFmdGVyIGEKCSAgcmVzeW5jLiBUaGlzIG1ha2VzIHVzIHBvc3QgdGhlIEFTWU5DX0RPTkUgbWVzc2FnZSBjb3JyZWN0bHkuCgkgIEZpeGVzICM0NjI1NTguCgoyMDA3LTA3LTMxIDExOjUxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBXaGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBmZWF0dXJlIGluIHRoZSByZWdpc3RyeSwgbWFrZSBzdXJlIHRvIGNvbnRpbnVlIGhvbGRpbmcgYSByZWZlcmVuY2UgdW50aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSk6CgkgIFdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGZlYXR1cmUgaW4gdGhlIHJlZ2lzdHJ5LCBtYWtlIHN1cmUgdG8KCSAgY29udGludWUgaG9sZGluZyBhIHJlZmVyZW5jZSB1bnRpbCB3ZSd2ZSByZXBsYWNlZCB0aGUgbmFtZSBzdHJpbmcKCSAgd2l0aGluIG91ciBmZWF0dXJlIGhhc2ggdGFibGUuIE1ha2Ugc3VyZSB0byB1c2UgZ19oYXNoX3RhYmxlX3JlcGxhY2UKCSAgaW5zdGVhZCBvZiBnX2hhc2hfdGFibGVfaW5zZXJ0IHRvIGVuc3VyZSB0aGUgbmV3IG5hbWUgc3RyaW5nIGlzIHVzZWQKCSAgYXMgYSBrZXkgaW5zdGVhZCBvZiB0aGUgb2xkIG9uZSB0aGF0IHdlJ3JlIGFib3V0IHRvIGZyZWUuCgkgIEZpeGVzOiAjNDYyMDg1CgoyMDA3LTA3LTMxIDEwOjEwOjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IFJldmVydCBwYXRjaCBmcm9tICM0NTk0NjYgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgYW5kIHdlIGNhbiB3b3JrIG91dCBleGFjdGx5IHdoYXQgdGhlIHByb2JsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9zZXRfbmFtZSk6CgkgIFJldmVydCBwYXRjaCBmcm9tICM0NTk0NjYgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgYW5kIHdlIGNhbiB3b3JrCgkgIG91dCBleGFjdGx5IHdoYXQgdGhlIHByb2JsZW0gaXMgKGlmIGFueSkuCgoyMDA3LTA3LTI2IDE1OjQ4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19MSUNFTlNFX1VSSSBhbmQgR1NUX1RBR19DT1BZUklHSFRfVVJJICgjNDUxOTM5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfTElDRU5TRV9VUkkgYW5kIEdTVF9UQUdfQ09QWVJJR0hUX1VSSSAoIzQ1MTkzOSkuCgoyMDA3LTA3LTI2IDE0OjA1OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogSW5jbHVkZSBvdXIgYnVpbGQtcHJlZml4IGxpYnMgYW5kIGluY2x1ZGVzIGJlZm9yZSB0aGUgZ2VuZXJpYyBvbmVzIHRvIGF2b2lkIGxpbmtpbmcgYWdhaW5zdCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEluY2x1ZGUgb3VyIGJ1aWxkLXByZWZpeCBsaWJzIGFuZCBpbmNsdWRlcyBiZWZvcmUgdGhlIGdlbmVyaWMgb25lcyB0bwoJICBhdm9pZCBsaW5raW5nIGFnYWluc3QgdGhlIGluc3RhbGxlZCBsaWJzIHdoZW4gd2Ugd2FudCB0aGUgYnVpbGQtdHJlZQoJICBvbmVzLgoKMjAwNy0wNy0yNiAwODo0Njo0NiArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBNZW50aW9uIHRoYXQgR1NUX1BMVUdJTl9QQVRIIG9yIC0tZ3N0LXBsdWdpbi1wYXRoIG1pZ2h0IGJlIG5lZWRlZCBpZiBwZW9wbGUgdHJ5IHRvIGJ1aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBNZW50aW9uIHRoYXQgR1NUX1BMVUdJTl9QQVRIIG9yIC0tZ3N0LXBsdWdpbi1wYXRoIG1pZ2h0IGJlIG5lZWRlZAoJICBpZiBwZW9wbGUgdHJ5IHRvIGJ1aWxkIG9yIGluc3RhbGwgdGhlIGV4YW1wbGUgZnJvbSB0aGUgcGx1Z2luCgkgIHRlbXBsYXRlIGFnYWluc3QgYSBHU3RyZWFtZXIgZnJvbSBwYWNrYWdlIHVzaW5nIHRoZSBjb25maWd1cmUKCSAgZGVmYXVsdHMuCgoyMDA3LTA3LTI1IDIyOjI5OjU3ICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjogRG9jdW1lbnQgLS1wcmludC1hbGwgYW5kIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIGNvbW1hbmQgbGluZSBvcHRpb25zIGluIG1hbiBwYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgIERvY3VtZW50IC0tcHJpbnQtYWxsIGFuZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBjb21tYW5kCgkgIGxpbmUgb3B0aW9ucyBpbiBtYW4gcGFnZS4KCjIwMDctMDctMjUgMTg6NDY6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IGFwaSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBhcGkgZnVuY3Rpb24uCgoyMDA3LTA3LTI1IDE4OjM3OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lio6IEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSgpCgkgIEFkZGVkIG1ldGhvZCB0byBjaGVjayBpZiBhbiBlbGVtZW50IGZhY3RvcnkgaW1wbGVtZW50cyBhIG5hbWVkCgkgIGludGVyZmFjZS4KCjIwMDctMDctMjUgMTM6MDA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFub3RoZXIgY29uZGl0aW9uYWwgZG9jIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBBbm90aGVyIGNvbmRpdGlvbmFsIGRvYyBjaGVjay4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgQVBJLWRvYyBmaXhlcy4KCjIwMDctMDctMjQgMTM6NDQ6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBQcmludCBlcnJvciBqdXN0IG9uY2UgYW5kIHdpdGggYWRkaXRpb25hbCBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBQcmludCBlcnJvciBqdXN0IG9uY2UgYW5kIHdpdGggYWRkaXRpb25hbCBpbmZvLgoKMjAwNy0wNy0yNCAxMzozODoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBDbGVhbnVwIHRoZSB0eXBlZmluZGhlbHBlciBjb2RlIGFuZCBhZGQgcHJpdmF0ZSBkb2MgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChoZWxwZXJfZmluZF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSksIChidWZfaGVscGVyX2ZpbmRfc3VnZ2VzdCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKToKCSAgQ2xlYW51cCB0aGUgdHlwZWZpbmRoZWxwZXIgY29kZSBhbmQgYWRkIHByaXZhdGUgZG9jIGNvbW1lbnRzLgoKMjAwNy0wNy0yNCAxMjozMjozMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBGaXggY2Fwc2ZpbHRlciBmb3IgY2FzZXMgd2hlcmUgdGhlIGNhcHMgc2V0IG9uIGNhcHNmaWx0ZXIgd2lsbCBwcm92aWRlIGFkZGl0aW9uYWwgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX3NpemUpLCAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBGaXggY2Fwc2ZpbHRlciBmb3IgY2FzZXMgd2hlcmUgdGhlIGNhcHMgc2V0IG9uIGNhcHNmaWx0ZXIgd2lsbCBwcm92aWRlCgkgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uCgkgIEZpeGVzICM0NDkxOTcKCjIwMDctMDctMjQgMTE6MzE6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRml4IGRvY3MgdGhhdCByZWNvbW1lbmVkIHdyb25nIGZ1bmN0aW9uIHRvIHVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBGaXggZG9jcyB0aGF0IHJlY29tbWVuZWQgd3JvbmcgZnVuY3Rpb24gdG8gdXNlLgoKMjAwNy0wNy0yMyAxMzowMzo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWxzbyBnaXZlIG1lZGlhLXR5cGUgZm9yIHR5cGVmaW5kZXJzIGluIGVsZW1lbnQgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKToKCSAgQWxzbyBnaXZlIG1lZGlhLXR5cGUgZm9yIHR5cGVmaW5kZXJzIGluIGVsZW1lbnQgb3V0cHV0LgoKMjAwNy0wNy0yMyAxMTo0MjoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lio6IFNwZWVkIHVwIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQoKSBieSB1c2luZyBhIGhhc2htYXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2luaXQpLCAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBTcGVlZCB1cCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKCkgYnkgdXNpbmcgYSBoYXNobWFwLgoJICBGaXhlcyAjNDU5NTAxLgoKMjAwNy0wNy0yMyAxMDozOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogQXZvaWQgZG91YmxlIG1lbW9yeSB1c2FnZSBmb3IgcGx1Z2luZmVhdHVyZSBuYW1lcy4gRml4ZXMgIzQ1OTQ2Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfc2V0X25hbWUpOgoJICBBdm9pZCBkb3VibGUgbWVtb3J5IHVzYWdlIGZvciBwbHVnaW5mZWF0dXJlIG5hbWVzLiBGaXhlcyAjNDU5NDY2LgoKMjAwNy0wNy0yMiAxODoyNjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuaDogU21hbGwgYWRkaXRpb24gdG8gR1NUX0ZMT1dfSVNfRkFUQUwoKSBkb2NzOiBtZW50aW9uIHRoYXQgZWxlbWVudHMgZHJpdmluZyB0aGUgcGlwZWxpbmUgbWF5IG5lZWQgdG8gZXhwbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNtYWxsIGFkZGl0aW9uIHRvIEdTVF9GTE9XX0lTX0ZBVEFMKCkgZG9jczogbWVudGlvbiB0aGF0IGVsZW1lbnRzCgkgIGRyaXZpbmcgdGhlIHBpcGVsaW5lIG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgY2hlY2sgZm9yIE5PVF9MSU5LRUQgYXMKCSAgd2VsbCwgc2luY2UgSVNfRkFUQUwgZG9lc24ndCBjb3ZlciB0aGF0LgoKMjAwNy0wNy0yMiAxODoxNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHR5cG8gYW5kIGR1cGxpY2F0ZSBlbnRyeSBpbiB2aWRlbyBmb3JtYXRzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHR5cG8gYW5kIGR1cGxpY2F0ZSBlbnRyeSBpbiB2aWRlbyBmb3JtYXRzIGxpc3QuCgoyMDA3LTA3LTIyIDEyOjE4OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWxzbyByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgd2hlbiB1c2luZyBjdWJpYyBpbnRlcnBvbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgQWxzbyByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgd2hlbiB1c2luZyBjdWJpYyBpbnRlcnBvbGF0aW9uLgoKMjAwNy0wNy0yMSAyMToyMDozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogV2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0aW5nIGludGVnZXIgdHlwZXMsIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCBieSBhZGRpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIFdoZW4gbGluZWFybHkgaW50ZXJwb2xhdGluZyBpbnRlZ2VyIHR5cGVzLCByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQKCSAgYnkgYWRkaW5nIDAuNS4gRG9uJ3QgZG8gaXQgZm9yIGZsb2F0L2RvdWJsZSB0eXBlcy4KCSAgRml4ZXMgdGhlIGZhaWxpbmcgY29udHJvbGxlciB0ZXN0IG9uIG15IG1hY2hpbmUsIHdoaWNoIGlzIHNvbWVob3cKCSAgcm91bmRpbmcgZGlmZmVyZW50bHkgdGhhbiBvbiB0aGUgYnVpbGRib3RzLgoKMjAwNy0wNy0yMCAwNzozNjo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEJldHRlciBsb2cgcGFyc2luZyAoY2F0ZWdvcmllcyBjYW4gaGF2ZSAtKS4gQWRqdXN0IHRleHQgdnMuIGxpbmVzLCBzbyB0aGF0IHRoZXkgc3BhbiB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBCZXR0ZXIgbG9nIHBhcnNpbmcgKGNhdGVnb3JpZXMgY2FuIGhhdmUgLSkuIEFkanVzdCB0ZXh0IHZzLiBsaW5lcywgc28KCSAgdGhhdCB0aGV5IHNwYW4gdGhlIHNhbWUgeS1yYW5nZS4KCjIwMDctMDctMjAgMDc6MjY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBTYXZlIG15IHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2F1ZGlvYmFzZWNsYXNzZXMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBTYXZlIG15IHRob3VnaHRzLgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBBZGQgbm90ZSB0byB1c2UgZ19hc3NlcnQgdHlwZSBtYWNyb3MuCgoyMDA3LTA3LTIwIDA3OjA5OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbGlibSBjaGVjayBhcyB3ZSB1c2UgaW4gZm9yIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgQWRkIGxpYm0gY2hlY2sgYXMgd2UgdXNlIGluIGZvciBwbHVnaW5zLgoKMjAwNy0wNy0xOCAxNDozMToyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENoZWNrIHRoYXQgdGhlIHN0YXRlX2Nvb2tpZSBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgY29udGludWVfZnVuYyB3YXMgc2NoZWR1bGVkLiBBdm9pZHMgcHJvYmxlbXMgd2hlcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgQ2hlY2sgdGhhdCB0aGUgc3RhdGVfY29va2llIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBjb250aW51ZV9mdW5jCgkgIHdhcyBzY2hlZHVsZWQuIEF2b2lkcyBwcm9ibGVtcyB3aGVyZSB0aGUgc3RhdGUgY2hhbmdlcyBiYWNrIHRvCgkgIHNvbWV0aGluZyBpdCBzaG91bGRuJ3QgYmUgYmVjYXVzZSBpdCB3YXMgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgoyMDA3LTA3LTE3IDA5OjQ0OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IG1lbW9yeSBsZWFrLiBCZSBsZXNzIHZlcmJvc2UgaW4gdGhlIGxvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfY29uc3Rfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgRml4IG1lbW9yeSBsZWFrLiBCZSBsZXNzIHZlcmJvc2UgaW4gdGhlIGxvZy4KCjIwMDctMDctMTYgMTY6NDQ6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogQWRkIGZpbGUgdG8gY3ZzaWdub3JlIGFzIGNvbW1hbmRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgQWRkIGZpbGUgdG8gY3ZzaWdub3JlIGFzIGNvbW1hbmRlZC4KCjIwMDctMDctMTYgMTY6MDQ6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiBVc2UgYSBHU3RhdGljTXV0ZXggdG8gcHJvdGVjdCBhbGwgY2FzZXMgd2hlcmUgbGliY2hlY2sgZmFpbF9pZi9mYWlsX3VubGVzcyBtYWNyb3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX2R1bW15cGFkX2NoYWluKSwKCSAgKG1xX2R1bW15cGFkX2V2ZW50KSwgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCk6CgkgIFVzZSBhIEdTdGF0aWNNdXRleCB0byBwcm90ZWN0IGFsbCBjYXNlcyB3aGVyZSBsaWJjaGVjawoJICBmYWlsX2lmL2ZhaWxfdW5sZXNzIG1hY3JvcyBtaWdodCBiZSBjYWxsZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzCgkgIHNpbXVsdGFuZW91c2x5IHRvIGF2b2lkIGVycm9ycyBsaWtlOgoJICAiY2hlY2tfcGFjay5jOjEwNzogOi0xMDgxNzI1NDAwOkJhZCBtZXNzYWdlIHR5cGUgYXJnIgoKMjAwNy0wNy0xNiAxNToxOTowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gdGhlIE5VTEwgc3RhdGUgYmVmb3JlIGRyb3BwaW5nIG91ciBmaW5hbCByZWZlcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIHRoZSBOVUxMIHN0YXRlIGJlZm9yZQoJICBkcm9wcGluZyBvdXIgZmluYWwgcmVmZXJlbmNlLgoKMjAwNy0wNy0xNiAxNDo1NToyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogTWFrZSB0aGUgdGVlIHN0cmVzcy10ZXN0IGEgbGl0dGxlIGxlc3Mgc3RyZXNzZnVsIHNvIGl0IGRvZXNuJ3QganVzdCB0aW1lIG91dCBvbiBzbG93LW1hY2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIHRlZSBzdHJlc3MtdGVzdCBhIGxpdHRsZSBsZXNzIHN0cmVzc2Z1bCBzbyBpdCBkb2Vzbid0IGp1c3QKCSAgdGltZSBvdXQgb24gc2xvdy1tYWNoaW5lcywgYW5kIHJlbW92ZSBhIHNtYWxsIHJhY2Ugd2hlbiBpdCdzIHN0YXJ0aW5nCgkgIHVwIGJ5IGFkZGluZyBhIGdldF9zdGF0ZSgpIGNhbGwuCgoyMDA3LTA3LTE2IDEyOjM2OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IEF2b2lkIHJlYWRpbmcgcmVnaXN0cnkgdHdpY2Ugb24gc3RhcnR1cC4gRml4ZXMgIzQ1NzMyMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBdm9pZCByZWFkaW5nIHJlZ2lzdHJ5IHR3aWNlIG9uIHN0YXJ0dXAuIEZpeGVzICM0NTczMjIuCgoyMDA3LTA3LTEzIDE0OjExOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBrZ2NvbmZpZy86IFN1YnN0aXR1dGUgdGhlIENGTEFHUyBmb3IgbGliY2hlY2sgaW50byBvdXIgLnBjIGZpbGUgdG9vIHNvIHRoYXQgZGVwZW5kZW50IG1vZHVsZXMgd2lsbCBwaWNrIGl0IHVwIHByb3Blci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFN1YnN0aXR1dGUgdGhlIENGTEFHUyBmb3IgbGliY2hlY2sgaW50byBvdXIgLnBjIGZpbGUgdG9vIHNvIHRoYXQKCSAgZGVwZW5kZW50IG1vZHVsZXMgd2lsbCBwaWNrIGl0IHVwIHByb3Blcmx5IGlmIGxpYmNoZWNrIGlzIGluc3RhbGxlZAoJICBpbnRvIHNvbWUgb3RoZXIgcHJlZml4LgoKMjAwNy0wNy0xMyAxMzo0OToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJldmVydCB0aGUgcGtnLWNvbmZpZyBjaGVjayBmb3IgbGliY2hlY2ssIHNpbmNlIGl0IHB1bGxzIGluIHRoZSB3cm9uZyBub24tUElDIGxpYmNoZWNrLmEgb24gVWJ1bnR1IGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgdGhlIHBrZy1jb25maWcgY2hlY2sgZm9yIGxpYmNoZWNrLCBzaW5jZSBpdCBwdWxscyBpbiB0aGUKCSAgd3Jvbmcgbm9uLVBJQyBsaWJjaGVjay5hIG9uIFVidW50dSBhbmQgcHJvYmFibHkgRmVkb3JhIHRvby4gV2UgbmVlZAoJICBhIHByb3BlciBzb2x1dGlvbiwgZWl0aGVyIGZyb20gdGhlIGNoZWNrIHByb2plY3QsIG9yIHNvbWV0aGluZyBlbHNlLgoKMjAwNy0wNy0xMiAxMToxMDoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIGNoZWNrLgoKMjAwNy0wNy0xMCAyMDoxMDoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IGRvYyBzeW50YXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEZpeCBkb2Mgc3ludGF4LgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgZGVwcmVjYXRpb24gZ3VhcmRzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9uJ3QgZG9jdW1lbnQgb2JqZWN0ICh0aGlzIGlzIGltcGxpY2l0bHkgcHJpdmF0ZSkuCgoyMDA3LTA3LTA4IDE0OjExOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBXaGVuIGRlc2VyaWFsaXNpbmcgZm9vPWJhciB3aXRob3V0IGEgdHlwZSBjYXN0LCBjaGVjayBpZiBpdCdzIGEgYm9vbGVhbiBiZWZvcmUgZmFsbGluZyBiYWNrIHRvIGEgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBXaGVuIGRlc2VyaWFsaXNpbmcgZm9vPWJhciB3aXRob3V0IGEgdHlwZSBjYXN0LCBjaGVjayBpZiBpdCdzIGEKCSAgYm9vbGVhbiBiZWZvcmUgZmFsbGluZyBiYWNrIHRvIGEgc3RyaW5nIHR5cGUsIG90aGVyd2lzZSB0aGluZ3MgbGlrZQoJICBhdWRpb3Rlc3RzcmMgISBhdWRpby94LXJhdy1pbnQsc2lnbmVkPXRydWUgISBmYWtlc2luayB3b24ndCB3b3JrLAoJICBiZWNhdXNlIHRoZSBmaWx0ZXJjYXBzIGVuZCB1cCBoYXZpbmcgYSBzaWduZWQ9KHN0cmluZyl0cnVlIGZpZWxkLAoJICB3aGljaCBjYXVzZXMgcHJvYmxlbXMgbGF0ZXIgd2hlbiBpbnRlcnNlY3Rpb24gY2Fwcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMDctMDctMDYgMjE6NTA6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IFJlZmFjdG9yIEdzdENvbnRyb2xsZXIgaW50byB0aGUgY29yZSBjb250cm9sbGVyIHdoaWNoIGNhbiB0YWtlIGEgR3N0Q29udHJvbFNvdXJjZSBmb3IgcHJvdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfYWRkX2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZmluZF9jb250cm9sbGVkX3Byb3BlcnR5KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3KSwgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eV9kaXNhYmxlZCksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfZGlzYWJsZWQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF9jb250cm9sX3NvdXJjZSksIChnc3RfY29udHJvbGxlcl9nZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF9hbGwpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpLCAoZ3N0X2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2dldF92YWx1ZSksCgkgIChnc3RfY29udHJvbF9zb3VyY2VfZ2V0X3ZhbHVlX2FycmF5KSwgKGdzdF9jb250cm9sX3NvdXJjZV9iaW5kKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2ZpcnN0X3ZhbHVlKSwKCSAgKF9pbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV9ub25lX2dldCksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9ib29sZWFuX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KSwKCSAgKF9pbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9ib29sZWFuX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Jlc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX25ldyksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2JpbmQpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfY29tcGFyZSksIChnc3RfY29udHJvbF9wb2ludF9maW5kKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcm5hbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV91bnNldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV91bnNldF9hbGwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2FsbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfY291bnQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9kaXNwb3NlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBBUEk6IFJlZmFjdG9yIEdzdENvbnRyb2xsZXIgaW50byB0aGUgY29yZSBjb250cm9sbGVyIHdoaWNoIGNhbiB0YWtlCgkgIGEgR3N0Q29udHJvbFNvdXJjZSBmb3IgcHJvdmlkaW5nIGFjdHVhbCB2YWx1ZXMgZm9yIHRpbWVzdGFtcHMuCgkgIEltcGxlbWVudCBhIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UgYW5kIHVzZSB0aGlzIGZvciBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5LCBkZXByZWNhdGUgYSBidW5jaCBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgbm93IGhhbmRsZWQKCSAgYnkgR3N0Q29udHJvbFNvdXJjZSBvciBHc3RJbnRlcnBvbGF0aW9uQ29udHJvbFNvdXJjZS4KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSBjb250cm9sbGVyIGNvbXBsZXRlbHkgb3Igb25seSBmb3IKCSAgc3BlY2lmaWMgcHJvcGVydGllcy4gRml4ZXMgIzQ1MDcxMS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB0byB0aGUgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICBQb3J0IHVuaXQgdGVzdCBhbmQgZXhhbXBsZSB0byB0aGUgbmV3IEFQSSBhbmQgYWRkIHNvbWUgbmV3CgkgIHVuaXQgdGVzdHMuCgoyMDA3LTA3LTA1IDA5OjA2OjAyICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEltcGxlbWVudCBub24tZGVmYXVsdCBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gZm9yIG11bHRpcXVldWUgcGFkcyBzbyB0aGF0IHRoZSBwaXBlbGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRfaW50ZXJuYWxfbGlua3MpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgSW1wbGVtZW50IG5vbi1kZWZhdWx0IEdzdFBhZEludExpbmtGdW5jdGlvbiBmb3IgbXVsdGlxdWV1ZSBwYWRzIHNvIHRoYXQKCSAgdGhlIHBpcGVsaW5lIGxheW91dCBjYW4gYmUgdHJhY2tlZCBjb3JyZWN0bHkuIEZpeGVzICM0NTM3MzIuCgoyMDA3LTA3LTA1IDA4OjQyOjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogU2ltcGxpdHkgLS1leHRyYS1kaXIgYXMgZ3RrZG9jIHNjYW5zIHJlY3Vyc2l2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBTaW1wbGl0eSAtLWV4dHJhLWRpciBhcyBndGtkb2Mgc2NhbnMgcmVjdXJzaXZlbHkuCgoyMDA3LTA3LTAzIDE3OjAxOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBXaGVuIHdlIGdvdCBhbiBlcnJvciwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gd2FpdGluZyBmb3IgcHJlcm9sbCB3aGVuIHNodXR0aW5nIGRvd24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBXaGVuIHdlIGdvdCBhbiBlcnJvciwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gd2FpdGluZyBmb3IgcHJlcm9sbCB3aGVuCgkgIHNodXR0aW5nIGRvd24uCgoyMDA3LTA3LTAzIDE2OjI2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQmUgYSBsb3Qgc21hcnRlciB3aGVuIGRlY2lkaW5nIHdoYXQgc3JjcGFkIHRvIHVzZSBmb3IgcHJveHlpbmcgdGhlIGJ1ZmZlcl9hbGxvYy4gQWxzbyBoYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfZmluZF9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X3RlZV9kb19wdXNoKSwgKGNsZWFyX3BhZHMpLCAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF90ZWVfY2hhaW4pOgoJICBCZSBhIGxvdCBzbWFydGVyIHdoZW4gZGVjaWRpbmcgd2hhdCBzcmNwYWQgdG8gdXNlIGZvciBwcm94eWluZwoJICB0aGUgYnVmZmVyX2FsbG9jLiBBbHNvIGhhbmRsZSBwYWQgYWRkZWQvcmVtb3ZlZCB3aGVuIGRvaW5nIHNvLgoJICBGaXhlcyAjMzU3OTU5LgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgcGFkcyB3ZSBhbHJlYWR5IHB1c2hlZCBvbiBpbiBjYXNlIHdlIGhhdmUgcGFkcwoJICBhZGRlZC9yZW1vdmVkIHdoaWxlIHB1c2hpbmcuIEZpeGVzICMzNzQ2MzkKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKGhhbmRvZmYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAodGVlX3N1aXRlKToKCSAgQWRkZWQgdW5pdCB0ZXN0IGZvciBwYWQgcmVzeW5jLgoKMjAwNy0wNy0wMSAyMTozMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9zdi5wbzoKCSAgVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgoyMDA3LTA3LTAxIDIxOjMwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgbmV3IEZpbm5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGlvbiBieTogVG9tbWkgVmFpbmlrYWluZW4gPFRvbW1pLlZhaW5pa2FpbmVuQGlraS5maT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2ZpLnBvOgoJICBBZGRlZCBuZXcgRmlubmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDYtMjggMTE6MjU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiBmaWd1cmluZyBvdXQgd2hlbiBhIHF1ZXVlIGlzIGZpbGxlZCwgdXNlIG91ciBpbnRlcm5hbCB0aW1lIGVzdGltYXRlIGJhc2VkIG9uIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpOgoJICBXaGVuIGZpZ3VyaW5nIG91dCB3aGVuIGEgcXVldWUgaXMgZmlsbGVkLCB1c2Ugb3VyIGludGVybmFsIHRpbWUgZXN0aW1hdGUKCSAgYmFzZWQgb24gc2VnbWVudHMsIGp1c3QgbGlrZSBjaGVja19mdWxsIGRvZXMuCgoyMDA3LTA2LTI3IDExOjQ3OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgNDMwNjgyIGNsb3NlZCBieSBwcmV2aW91cyBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyA0MzA2ODIgY2xvc2VkIGJ5IHByZXZpb3VzIGNvbW1pdC4KCjIwMDctMDYtMjcgMTE6NDM6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFJlbW92ZSAzIGRvLW5vdGhpbmcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgIFJlbW92ZSAzIGRvLW5vdGhpbmcgbWV0aG9kcy4KCjIwMDctMDYtMjcgMTE6MjQ6MDggKzAwMDAgIFRpbSBBbmd1cyA8dGltQG5ndXMubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIGNvcHkgd2hlbiBzZXR0aW5nICJjYXBzIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaW0gQW5ndXMgPHRpbSBhdCBuZ3VzIGRvdCBuZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIGNvcHkgd2hlbiBzZXR0aW5nICJjYXBzIi4KCSAgRml4IGRvY3VtZW50YXRpb24gdG8gY2xhcmlmeSB0aGlzIGJlaGF2aW91ci4gRml4ZXMgIzQ0OTQxNC4KCjIwMDctMDYtMjcgMTA6MTI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBlbXB0eSBpbnN0YW5jZV9pbml0KCkgZnVuY3Rpb25zIHRvIHNhdmUgcmVsb2NzIGFuZCBsZXNzZW4gdGhlIG5vaXNlLiBSZW1vdmUgc29tZSBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2luaXQpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9pbml0KToKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfYmFzZV9pbml0KToKCSAgUmVtb3ZlIGVtcHR5IGluc3RhbmNlX2luaXQoKSBmdW5jdGlvbnMgdG8gc2F2ZSByZWxvY3MgYW5kIGxlc3NlbiB0aGUKCSAgbm9pc2UuIFJlbW92ZSBzb21lIG9mIHRoZSBmdW5jdGlvbiBwcm90b3R5cGVzIHRoYXQgYXJlIGRvdWJsZWQgYnkKCSAgR19ERUZJTkVfVFlQRS4KCjIwMDctMDYtMjcgMDk6MzQ6MDEgKzAwMDAgIMOJdGllbm5lIE5vcmVhdS1Iw6liZXJ0IDxldGllbm5lQGRlZXB1bmRlci5vcmc+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIHBlZXIgYW5kIGRpcmVjdGlvbiBpbiB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgZ2hvc3RwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IMOJdGllbm5lIE5vcmVhdS1Iw6liZXJ0IDxldGllbm5lIGF0IGRlZXB1bmRlciBkb3Qgb3JnPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zYXZlX3RoeXNlbGYpOgoJICBBZGQgcGVlciBhbmQgZGlyZWN0aW9uIGluIHRoZSBYTUwgc2VyaWFsaXNhdGlvbiBvZiBnaG9zdHBhZHMuCgkgIEZpeGVzICM0NDkyMjYuCgoyMDA3LTA2LTI2IDE2OjI0OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFByZXNlcnZlIHVzZWZ1bCBpbmZvcm1hdGlvbiwgdGhhbmtzIFRpbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBQcmVzZXJ2ZSB1c2VmdWwgaW5mb3JtYXRpb24sIHRoYW5rcyBUaW0uCgoyMDA3LTA2LTI2IDE0OjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiBUYWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgd2hlbiB1cGRhdGluZyB0aGUgZmlsbCBsZXZlbCBzbyB3ZSBkb24ndCBnZXQgY29uZnVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKHdha2VfdXBfbmV4dF9ub25fbGlua2VkKSwKCSAgKGNvbXB1dGVfaGlnaF9pZCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIFRha2UgdGhlIG11bHRpcXVldWUgbG9jayB3aGVuIHVwZGF0aW5nIHRoZSBmaWxsIGxldmVsIHNvIHdlIGRvbid0IGdldAoJICBjb25mdXNlZC4KCSAgQWZ0ZXIgYXBwbHlpbmcgYSBidWZmZXIgb3IgZXZlbnQgb24gdGhlIHNyYyBwYWQgc2VnbWVudCwgbWFrZSBzdXJlIHRvCgkgIGNhbGwgZ3N0X2RhdGFfcXVldWVfbGltaXRzX2NoYW5nZWQoKSB0byBnZXQgdGhlIGRhdGEgcXVldWUgdG8gdW5ibG9jawoJICBhbmQgY2hlY2sgdGhlIGZpbGxlZCBzdGF0ZSBhZ2Fpbi4KCSAgUmV3b3JrIHRoZSBub3QtbGlua2VkIHBhZCBoYW5kbGluZyBzbyB0aGUgbG9naWMgaXMgdGhhdCBub3QtbGlua2VkCgkgIHBhZHMgY2FuIHB1c2ggYXMgZmFzdCBhcyB0aGV5IGxpa2UsIGJ1dCBvbmx5IHNvIHRoZXkgbmV2ZXIgZ2V0CgkgIGFoZWFkIG9mIGFueSBsaW5rZWQgcGFkcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9zaW5rcGFkX3RvX3NyY3BhZCksCgkgIChtcV9kdW1teXBhZF9nZXRjYXBzKSwgKG1xX2R1bW15cGFkX2NoYWluKSwgKG1xX2R1bW15cGFkX2V2ZW50KSwKCSAgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCksIChHU1RfU1RBUlRfVEVTVCksIChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgQWRkIGEgdGVzdCB0byBjaGVjayB0aGF0IG5vdC1saW5rZWQgcGFkcyBhbHdheXMgc3RheSBiZWhpbmQKCSAgbGlua2VkIHBhZHMuCgoyMDA3LTA2LTI2IDExOjU3OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFNvbWUgdXBkYXRlcyB0byB0aGUgcmVsZWFzZSBwcm9jZWR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFNvbWUgdXBkYXRlcyB0byB0aGUgcmVsZWFzZSBwcm9jZWR1cmUuCgoyMDA3LTA2LTI2IDA4OjI2OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogTWljcm9vcHRpbWl6YXRpb24gdGhhdCBzYXZlcyBzdHVubmluZyA4MCBieXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChfX2dzdF9lbGVtZW50X2RldGFpbHNfY2xlYXIpOgoJICBNaWNyb29wdGltaXphdGlvbiB0aGF0IHNhdmVzIHN0dW5uaW5nIDgwIGJ5dGVzLgoKMjAwNy0wNi0yNSAxMjozNTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBVcGRhdGUgZG9jcyB3aXRoIGNhcHMgaW5mby4KCjIwMDctMDYtMjMgMjI6NTY6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vaXQucG86IFVwZGF0ZWQgSXRhbGlhbiB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vaXQucG86CgkgIFVwZGF0ZWQgSXRhbGlhbiB0cmFuc2xhdGlvbi4KCjIwMDctMDYtMjMgMTE6MTk6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBmaXggd2luMzIgYXJjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHdpbjMyIGFyY2gKCjIwMDctMDYtMjMgMTE6MTg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgODAgbGluZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDgwIGxpbmUgZml4CgoyMDA3LTA2LTIzIDExOjE1OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIFZpZXRuYW1lc2UgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSBWaWV0bmFtZXNlIHRyYW5zbGF0aW9ucy4KCjIwMDctMDYtMjEgMjI6Mzc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbW92ZSB1bnVzZWQgc2lnbmFsIGVudW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgUmVtb3ZlIHVudXNlZCBzaWduYWwgZW51bS4KCjIwMDctMDYtMjEgMTg6MDA6NTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICB1cGRhdGUgTUFJTlRBSU5FUlMgZmlsZSB0byByZWZsZWN0IGN1cnJlbnQgcmVhbGl0aWVzIGJldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIE1BSU5UQUlORVJTIGZpbGUgdG8gcmVmbGVjdCBjdXJyZW50IHJlYWxpdGllcyBiZXR0ZXIKCjIwMDctMDYtMjEgMTY6Mzk6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQmVlZiB1cCBhbmQgaW5jbHVkZSB0aGUgZG9jcyBmb3IgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwgYW5kIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSBhbmQgYWRkIHRoZSBBLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKToKCSAgQmVlZiB1cCBhbmQgaW5jbHVkZSB0aGUgZG9jcyBmb3IgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwgYW5kCgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSBhbmQgYWRkIHRoZSBBUEkga2V5d29yZAoJICBpbiB0aGUgQ2hhbmdlTG9nLgoKMjAwNy0wNi0yMSAxNDozNTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggc2V0dGluZyBtYXgtKiBwcm9wZXJ0aWVzIGFmdGVyIGFkZGluZyBxdWV1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpOgoJICBGaXggc2V0dGluZyBtYXgtKiBwcm9wZXJ0aWVzIGFmdGVyIGFkZGluZyBxdWV1ZXMuCgkgIFVzZSBJU19GSUxMRUQgZm9yIGNoZWNraW5nIHZpc2libGUgaXRlbXMuCgkgIFNpZ25hbCBvdmVycnVuIGlmIG11bHRpcGxlIHF1ZXVlcyBvdmVycnVuLgoJICBBZGQgZXh0cmEgZGVidWcgb3V0cHV0LgoJICBQYXRjaCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCjIwMDctMDYtMjEgMTQ6Mjk6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFNhdmluZyByZWxvY2F0aW9ucyBmb3IgR1R5cGVJbmZvIGFuZCBHc3RFbGVtZW50RGV0YWlscy4gRml4ZXMgIzQzNzQ1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgU2F2aW5nIHJlbG9jYXRpb25zIGZvciBHVHlwZUluZm8gYW5kIEdzdEVsZW1lbnREZXRhaWxzLiBGaXhlcyAjNDM3NDU3LgoKMjAwNy0wNi0yMSAwOTo0NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHR5cG8gaW4gaWFuYS5vcmcgVVJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCB0eXBvIGluIGlhbmEub3JnIFVSSS4KCjIwMDctMDYtMTkgMjE6NTg6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDYtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAodGVzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJucyk6IEVuYWJsZSBwdWxsLW1vZGUgdGVzdHMgbm93IHRoYXQKCSAgYmFzZXNpbmsgaGFzIGJlZW4gZml4ZWQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpOgoJICBDaGFuZ2VkIGZyb20gZ3N0X2Jhc2Vfc2lua19pc19wcmVyb2xsZWQsIHJldmVyc2luZyB0aGUgc2Vuc2Ugb2YKCSAgdGhlIHJldHVybiB2YWx1ZS4gUmV0dXJucyBGQUxTRSBhbHNvIGlmIHRoZSBzaW5rIGlzIGluIHB1bGwgbW9kZSwKCSAgaW4gd2hpY2ggY2FzZSBpdCBuZWVkcyBubyBwcmVyb2xsLgoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSwgZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBVcGRhdGUgZm9yCgkgIG5lZWRzX3ByZXJvbGwgY2hhbmdlLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBBZGQgYSBjYXNlIGZvciBSRUFEWV9UT19QQVVTRUQgYWZ0ZXIKCSAgY2hhaW5pbmcgdXAsIGluIHdoaWNoIHdlIHJldHVybiBTVUNDRVNTIGRpcmVjdGx5IGlmIHdlIGFjdGl2YXRlZAoJICBpbiBwdWxsIG1vZGUgaW5zdGVhZCBvZiBBU1lOQy4gSW52b2x2ZXMgY291bnRlcmluZyBhbiBhc3luY19zdGFydAoJICBtZXNzYWdlIHNlbnQgYmVmb3JlIGNoYWluaW5nIHVwOyBub3Qgc3VyZSBpZiB0aGlzIGlzIGNvcnJlY3QsIGluCgkgIGFuIGlkZWFsIHdvcmxkIHdlIG9ubHkgc2VuZCBhc3luYy1zdGFydCB3aGVuIGFjdGl2YXRpbmcgaW4gcHVzaAoJICBtb2RlLgoKMjAwNy0wNi0xOSAyMToyODo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDYtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAodGVzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJucyk6IE5ldyB0ZXN0LCBwYXJ0aWFsbHkgZGlzYWJsZWQgdW50aWwKCSAgYmFzZXNpbmsgaXMgZml4ZWQuCgoyMDA3LTA2LTE5IDE2OjA1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBldmVudCBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIEZpeCBldmVudCBsZWFrLgoKMjAwNy0wNi0xOSAxMDo0MTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTW92ZSB0aGUgY29tbW9uIGNvZGUgZm9yIHBvc3Rpbmcgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIGludG8gb25lIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNb3ZlIHRoZSBjb21tb24gY29kZSBmb3IgcG9zdGluZyBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgaW50bwoJICBvbmUgZnVuY3Rpb24uCgkgIEJyb2FkY2FzdCB0aGUgc3RhdGUgc2lnbmFsIGFmdGVyIHdlIHBvc3RlZCB0aGUgbWVzc2FnZXMuCgkgIE1hcmsgdGhlIGJpbiBhcyBidXN5IHdoZW4gaXQncyBkb2luZyBhIHN0YXRlLWNoYW5nZS4KCSAgTWFrZSBzdXJlIGFzeW5jLXN0YXJ0L2RvbmUgbWVzc2FnZXMgZG9uJ3QgaW50ZXJmZXJlIHdpdGggdGhlIGJpbidzCgkgIHN0YXRlIHdoZW4gaXQncyBidXN5LgoJICBBZnRlciB0aGUgc3RhdGUgY2hhbmdlLCBsZXQgdGhlIGJpbiBjaGVjayB3aGljaCBlbGVtZW50cyBjb21wbGV0ZWQgdGhlCgkgIHN0YXRlIGNoYW5nZSB3aGlsZSBpdCB3YXMgYnVzeSBzbyB0aGF0IGl0IGNhbiB1cGRhdGUgaXRzIHN0YXRlLgoKMjAwNy0wNi0xOSAxMDozODozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBBZGQgYSBub3RlIGFib3V0IHVwZGF0aW5nIHRoZSBkb2FwIGZpbGUgdG8gdGhlIHJlbGVhc2UgY2hlY2tsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIEFkZCBhIG5vdGUgYWJvdXQgdXBkYXRpbmcgdGhlIGRvYXAgZmlsZSB0byB0aGUgcmVsZWFzZSBjaGVja2xpc3QKCjIwMDctMDYtMTggMTY6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogTWFrZSBzdXJlIHdlIGRvbid0IHJlZmVyZW5jZSB0aGUgYnVmZmVyL2V2ZW50IGFmdGVyIHdlIGhhdmUgZ2l2ZW4gYXdheSBvd25lcnNoaXAgaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVmZXJlbmNlIHRoZSBidWZmZXIvZXZlbnQgYWZ0ZXIgd2UgaGF2ZSBnaXZlbiBhd2F5CgkgIG93bmVyc2hpcCBpbiB0aGUgcXVldWUuCgoyMDA3LTA2LTE4IDE1OjE1OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFVwZGF0ZSBxdWV1ZSBzdGF0ZSBfYWZ0ZXJfIGFkZGluZyB0aGUgaXRlbSBpbiB0aGUgcXVldWUgYmVjYXVzZSBlbHNlIHdlIGNvdWxkIGVuZCB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBVcGRhdGUgcXVldWUgc3RhdGUgX2FmdGVyXyBhZGRpbmcgdGhlIGl0ZW0gaW4gdGhlIHF1ZXVlIGJlY2F1c2UgZWxzZSB3ZQoJICBjb3VsZCBlbmQgdXAgYmVpbmcgZnVsbCB3aXRob3V0IHRoZSBlbGVtZW50IGFkZGVkIHlldC4KCjIwMDctMDYtMTggMTU6MTI6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IEltbWVkaWF0bHkgY29tbWl0IHRoZSB0b3BsZXZlbCBiaW4gc3RhdGUgd2hlbiByZWNlaXZpbmcgYW4gYXN5bmMtZG9uZSBtZXNzYWdlLiBUaGlzIGVuYWJsZXMgdXMgdG8gYXZvaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwKCSAgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBJbW1lZGlhdGx5IGNvbW1pdCB0aGUgdG9wbGV2ZWwgYmluIHN0YXRlIHdoZW4gcmVjZWl2aW5nIGFuIGFzeW5jLWRvbmUKCSAgbWVzc2FnZS4gVGhpcyBlbmFibGVzIHVzIHRvIGF2b2lkIHNwYXduaW5nIGEgdGhyZWFkIHRvIGNvbW1pdCB0aGUgc3RhdGUKCSAgaW4gc29tZSBjb21tb24gY2FzZXMgYW5kIGl0IGFsc28gYXZvaWRzIHNvbWUgcmFjZXMuCgkgIEF2b2lkIHNwYXduaW5nIGEgc3RhdGUgdGhyZWFkIHdoZW4gYWRkaW5nL3JlbW92aW5nIGFzeW5jIGVsZW1lbnRzIHRvIGEKCSAgdG9wbGV2ZWwgYmluLiBJbnN0ZWFkIHdlIGltbWVkaWF0bHkgdXBkYXRlIHRoZSBiaW4gc3RhdGUuCgkgIEdldCByaWQgb2YgaXRlcmF0aW5nIGFsbCB0aGUgY2hpbGRyZW4gd2hlbiBnZXR0aW5nIHRoZSBzdGF0ZSBpbiB0aGUgYmluCgkgIGJlY2F1c2UgaXQgaXMgbm93IGFsd2F5cyB1cC10by1kYXRlLgoJICBGaXggYnVnIHdoZXJlIGxvY2tlZCBlbGVtZW50cyB3b3VsZCBhbHdheXMgcmV0dXJuIF9TVUNDRVNTIGV2ZW4gaXQgdGhleQoJICByZXR1cm5lZCBOT19QUkVST0xMIGJlZm9yZSBiZWluZyBsb2NrZWQuCgkgIEZpeCB0aGUgb3JkZXIgb2YgdGhlIHN0YXRlX2NoYW5nZSwgYXN5bmMtc3RhcnQvZG9uZSBtZXNzYWdlcyB0aGF0IHdhcwoJICBzb21ldGltZXMgaW5jb3JyZWN0LgoJICBNYXJrIHRoZSBzdGF0ZV9kaXJ0eSBmaWVsZCBhcyBkZXByZWNhdGVkLCB3ZSBkb24ndCBuZWVkIGl0IGFueW1vcmUgYXMgd2UKCSAgYXJlIGFsd2F5cyB1cC10by1kYXRlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSk6CgkgIFNtYWxsIGRlYnVnIGlucHJvdmVtZW50cy4KCSAgUmV0dXJuIHRoZSBwcmV2aW91cyBlbGVtZW50IHN0YXRlIHJldHVybiB3aGVuIG5vdGhpbmcgaXMgcGVuZGluZyBpbnN0ZWFkCgkgIG9mIGJsaW5kbHkgcmV0dXJuaW5nIFNVQ0NFU1MuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocGFkX2Jsb2NrZWRfY2IpLAoJICAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIGEgd2hvbGUgYnVuY2ggb2YgbmV3IHRlc3RjYXNlcy4KCjIwMDctMDYtMTcgMTc6MjY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucy4KCjIwMDctMDYtMTUgMTQ6Mzc6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggdHlwbyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwbyBpbiB0aGUgZG9jcy4KCjIwMDctMDYtMTUgMTE6NDk6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCjIwMDctMDYtMTUgMTE6MzU6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgdXNlIEdTbGljZSBiZWNhdXNlIHdlIGRvbid0IGRlcGVuZCBvbiA+PSAyLjEwIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyk6CgkgIERvbid0IHVzZSBHU2xpY2UgYmVjYXVzZSB3ZSBkb24ndCBkZXBlbmQgb24gPj0gMi4xMCB5ZXQuCgoyMDA3LTA2LTE1IDExOjA5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFJlbW92ZSBkZWJ1ZyBwcmludGYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCk6CgkgIFJlbW92ZSBkZWJ1ZyBwcmludGYuCgoyMDA3LTA2LTE1IDExOjAwOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuKjogVmFyaW91cyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2NsZWFudXApLAoJICAoZ3N0X2RhdGFfcXVldWVfZmluYWxpemUpLCAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2VtcHR5KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9mbHVzaGluZyksIChnc3RfZGF0YV9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3BvcCksIChnc3RfZGF0YV9xdWV1ZV9kcm9wX2hlYWQpLAoJICAoZ3N0X2RhdGFfcXVldWVfbGltaXRzX2NoYW5nZWQpLCAoZ3N0X2RhdGFfcXVldWVfZ2V0X2xldmVsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBBZGRlZCBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCBsZXZlbHMgYW5kIHRvIGluZm9ybSB0aGUgcXVldWUgdGhhdCB0aGUKCSAgJ2Z1bGwnIGxpbWl0cyBjaGFuZ2VkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX3N0ZWFsX29iamVjdCksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0Y2FwcyksIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19xdWVyeSksIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBLZWVwIHRyYWNrIG9mIHRpbWUgaW4gdGhlIHF1ZXVlIGJ5IG1lYXN1cmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCgkgIHJ1bm5pbmdfdGltZSBvbiBpbnB1dCBhbmQgb3V0cHV0LiBUaGlzIGdpdmVzIG1vcmUgYWNjdXJhdGUgcmVzdWx0cyBhbmQKCSAgY2FuIGNvbXBlbnNhdGUgZm9yIHNlZ21lbnRzIGNvcnJlY3RseS4KCSAgTWFrZSBhIHF1ZXVlIGJ5IGRlZmF1bHQgb25seSA1IGJ1ZmZlcnMgZGVlcC4gV2Ugd2lsbCBub3cgaW5jcmVhc2UgdGhlCgkgIGJ1ZmZlciBzaXplIGRlcGVuZGluZyBvbiB0aGUgZmlsbGVkbmVzcyBvZiB0aGUgb3RoZXIgcXVldWVzLgoJICBGYWN0b3Igb3V0IGNvbW1vbmcgZmx1c2ggY29kZS4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGFkZCBhZGRpdGlvbmFsIHJlZmNvdW50cyB0byBidWZmZXJzIHdoZW4gd2UgY2FuIGF2b2lkCgkgIGl0LgoJICBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBkaWZmZXJlbnRseS4KCSAgVXNlIEdTbGljZSBmb3IgaW50ZXJtZWRpYXRlIEdzdE11bHRpUXVldWVJdGVtcy4KCSAgS2VlcCB0cmFjayBvZiBFT1MuCgkgIFJlc2l6ZSBxdWV1ZXMgb24gb3ZlciBhbmQgdW5kZXJydW5zIGJhc2VkIG9uIGZpbGxlZCBsZXZlbCBvZiBvdGhlcgoJICBxdWV1ZXMuCgkgIFdoZW4gY2hlY2tpbmcgaWYgdGhlIHF1ZXVlIGlzIGZpbGxlZCwgcHJlZmVyIHRvIG1lYXN1cmUgaW4gdGltZSBpZiB3ZQoJICBjYW4gYW5kIGZhbGwgYmFjayB0byBieXRlcyB3aGVuIG5vIHRpbWUgaXMga25vd24uCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBGaXggcmV0dXJuIHZhbHVlLgoKMjAwNy0wNi0xNSAxMDo0ODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBXb3JrIGFyb3VuZCB0aGUgYnJva2VubmVzcyBvZiB0aGUgZXZlbnQgdm1ldGhvZCBpbiBiYXNldHJhbnNmb3JtLiBQcmVmZXIgdG8gcmV0dXJuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KToKCSAgV29yayBhcm91bmQgdGhlIGJyb2tlbm5lc3Mgb2YgdGhlIGV2ZW50IHZtZXRob2QgaW4gYmFzZXRyYW5zZm9ybS4gUHJlZmVyCgkgIHRvIHJldHVybiBUUlVFIHdoZW4gdGhlIHN1YmNsYXNzIHJldHVybmVkIEZBTFNFIChtZWFuaW5nIGRvbid0IGZvcndhcmQKCSAgdGhlIGV2ZW50KS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcy4KCjIwMDctMDYtMTUgMTA6NDM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoc2V0dXBfcGlwZWxpbmUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDYtMTUgMDc6Mjc6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogQWRkZWQgbW9yZSBmb3JtYXRzIHRvIGNhcHMgdGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgQWRkZWQgbW9yZSBmb3JtYXRzIHRvIGNhcHMgdGFibGUuCgoyMDA3LTA2LTE1IDA3OjAyOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFJlbW92ZSBjcnVmeSBjb2RlLiBHT3B0aW9uIGRvZXMgbm90IG5lZWQgdGhpcyB3b3JrYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgUmVtb3ZlIGNydWZ5IGNvZGUuIEdPcHRpb24gZG9lcyBub3QgbmVlZCB0aGlzIHdvcmthcm91bmQuCgoyMDA3LTA2LTE0IDIwOjI5OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IHdyb25nIGdldHRlciBmb3IgZW51bXMgaW4gY29udHJvbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgRml4IHdyb25nIGdldHRlciBmb3IgZW51bXMgaW4gY29udHJvbGxlci4KCjIwMDctMDYtMTQgMTc6MzY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBJbnRlcmNlcHQgY3JpdGljYWxzIGFuZCB3YXJuaW5ncyBpbiB0aGUgR3N0LVBob25vbiBsb2cgZG9tYWluLCBzbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpOgoJICBJbnRlcmNlcHQgY3JpdGljYWxzIGFuZCB3YXJuaW5ncyBpbiB0aGUgR3N0LVBob25vbiBsb2cgZG9tYWluLCBzbwoJICBBU1NFUlRfQ1JJVElDQUwoKSBldGMuIGNhbiBiZSB1c2VkIGluIGdzdC1waG9ub24ncyB1bml0IHRlc3RzIGFzCgkgIHdlbGwuCgoyMDA3LTA2LTE0IDE2OjA3OjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhcmFtc3BlY3MuYzogU2luY2UgdGhpcyBmaWxlIGRvZXNuJ3QgaW5jbHVkZSAiZ3N0LmgiIGl0IHdpbGwgbm90IGdvIHRocm91Z2ggdGhlIG1hY3JvcyB0aGF0IGRpc2FibGUgR1NUX0xPRyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbGlkYXRlKToKCSAgU2luY2UgdGhpcyBmaWxlIGRvZXNuJ3QgaW5jbHVkZSAiZ3N0LmgiIGl0IHdpbGwgbm90IGdvIHRocm91Z2ggdGhlCgkgIG1hY3JvcyB0aGF0IGRpc2FibGUgR1NUX0xPRyBpZiBkZWJ1Z2dpbmcgd2FzIGRpc2FibGVkLgoKMjAwNy0wNi0xNCAxNTo1NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVnbHkgJ2ZpeCcgZm9yIHRoZSBjb250cm9sbGVyIHVuaXQgdGVzdCBvbiB0aGUgcDUgYm90OiBpbiBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlICdhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgVWdseSAnZml4JyBmb3IgdGhlIGNvbnRyb2xsZXIgdW5pdCB0ZXN0IG9uIHRoZSBwNSBib3Q6IGluCgkgIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgJ2FsbW9zdAoJICBlcXVhbCcgYnkgYWxsb3dpbmcgYSBzbWFsbCBhYnNvbHV0ZSBlcnJvciwgd2hpY2ggc2hvdWxkIGJlIGdvb2QKCSAgZW5vdWdoIGZvciBvdXIgdXNlIGNhc2VzIChub3JtYWwgbnVtYmVycyBhbmQgdmFsdWVzIGNsb3NlIHRvIDApLgoJICBQcm9wZXIgZml4YWdlIGxlZnQgdG8gZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBhZmljaW9uYWRvcy4KCjIwMDctMDYtMTQgMTI6MDM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHR3byBicmVha3MgdGhhdHMgd2hlcmUgbWlzc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgQWRkIHR3byBicmVha3MgdGhhdHMgd2hlcmUgbWlzc2luZy4KCjIwMDctMDYtMTQgMTE6NTY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBhbmQgYXNzZXJ0X2VxdWFsc19mbG9hdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFQSTogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGFuZCBhc3NlcnRfZXF1YWxzX2Zsb2F0KCkuCgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciBzb21lIG9mIHRoZSBtYWNyb3MuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBuZXdseS1hZGRlZCBhc3NlcnRzLgoKMjAwNy0wNi0xNCAxMDozMzoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBTaG93IHRoZSBjYXBzIGNoYW5nZSBpbiB0aGUgbG9nIHRvIGhlbHAgc3BvdHRpbmcgdGhlIGNhc2Ugb2Ygbm90IGV4YWN0bHkgbWF0Y2hpbmcgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksIChnc3RfcGFkX3B1c2gpOgoJICBTaG93IHRoZSBjYXBzIGNoYW5nZSBpbiB0aGUgbG9nIHRvIGhlbHAgc3BvdHRpbmcgdGhlIGNhc2Ugb2Ygbm90CgkgIGV4YWN0bHkgbWF0Y2hpbmcgY2Fwcy4KCjIwMDctMDYtMTQgMDg6NTI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOiBGaXggdHlwb3MsIHNwb3R0ZWQgYnkgVGhpanMgVmVybWVpciAoIzQ0NzE5MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIEZpeCB0eXBvcywgc3BvdHRlZCBieSBUaGlqcyBWZXJtZWlyICgjNDQ3MTkwKS4KCjIwMDctMDYtMTMgMTY6MTU6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZTogSWdub3JlIGZpbGUgdG8ga2VlcCB0aGUgYnVpbGRib3RzIGhhcHB5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBmaWxlIHRvIGtlZXAgdGhlIGJ1aWxkYm90cyBoYXBweQoKMjAwNy0wNi0xMyAxNTozOTo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBQdWxsIGZkc2luayBpbnRvIHRoZSBkb2NzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgUHVsbCBmZHNpbmsgaW50byB0aGUgZG9jcyB0b28uCgoyMDA3LTA2LTExIDA3OjE0OjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWN0dWFsbHkgdXNlIHRoZSBuZXcgZnVuY3Rpb25zIHdpdGggbWluL21heCBjaGVja3MgZm9yIHRoZSB0cmlnZ2VyIGFuZCBub25lIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEFjdHVhbGx5IHVzZSB0aGUgbmV3IGZ1bmN0aW9ucyB3aXRoIG1pbi9tYXggY2hlY2tzIGZvciB0aGUgdHJpZ2dlciBhbmQKCSAgbm9uZSBpbnRlcnBvbGF0aW9uIG1vZGVzIGZvciBnZXQoKSBhbmQgZ2V0X3ZhbHVlX2FycmF5KCkgaW5zdGVhZCBvZgoJICBqdXN0IHRoZSBsYXR0ZXIuCgoyMDA3LTA2LTEwIDEyOjM4OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVW5zZXQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gR1ZhbHVlcyB3aGVuIGZyZWVpbmcgdGhlIGNvcnJlc3BvbmRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKToKCSAgVW5zZXQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gR1ZhbHVlcyB3aGVuIGZyZWVpbmcgdGhlIGNvcnJlc3BvbmRpbmcKCSAgR3N0Q29udHJvbGxlclByb3BlcnR5IHN0cnVjdC4KCjIwMDctMDYtMDkgMTY6NTg6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBQcm90ZWN0IGFnYWluc3QgdmFsdWVzIGxhcmdlciBvciBzbWFsbGVyIHRoYW4gdGhlIG1pbmltdW0gb3IgbWF4aW11bSBhbGxvd2VkIHZhbHVlIGZvciB0aGUgcHJvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBQcm90ZWN0IGFnYWluc3QgdmFsdWVzIGxhcmdlciBvciBzbWFsbGVyIHRoYW4gdGhlIG1pbmltdW0gb3IgbWF4aW11bQoJICBhbGxvd2VkIHZhbHVlIGZvciB0aGUgcHJvcGVydHkgd2hlbiB1c2luZyB2YWx1ZXMgdGhhdCBjYW4gYmUgY29tcGFyZWQuCgkgIE9wdGltaXplIHRyaWdnZXIgaW50ZXJwb2xhdG9yIGEgYml0IGJ5IHRha2luZyB0aGUgbGFzdCByZXF1ZXN0ZWQgdmFsdWUKCSAgaW50byBhY2NvdW50IGluc3RlYWQgb2YgYWx3YXlzIGxvb3BpbmcgdGhyb3VnaCB0aGUgY29tcGxldGUgbGlzdC4KCSAgRml4IGNvZGluZyBzdHlsZSBhIGJpdCwgZXZlcnl3aGVyZSBlbHNlIHdlIHVzZSAicmV0dXJuIGZvbyIgaW5zdGVhZAoJICBvZiAicmV0dXJuIChmb28pIi4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIHByb3RlY3Rpb24gYWdhaW5zdCB0b28gbGFyZ2Ugb3IgdG9vIHNtYWxsCgkgIHZhbHVlcy4KCjIwMDctMDYtMDggMjE6MDg6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvcmFuZG9tL3Nsb21vL2NvbnRyb2xsZXIudHh0OiBBZGQgc29tZSB0aG91Z2h0cyBhYm91dCB0aGUgZnV0dXJlIG9mIHRoZSBjb250cm9sbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDoKCSAgQWRkIHNvbWUgdGhvdWdodHMgYWJvdXQgdGhlIGZ1dHVyZSBvZiB0aGUgY29udHJvbGxlci4KCjIwMDctMDYtMDggMTE6MDA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvbid0IG92ZXJmbG93IGluIHJldGltZXN0YW1waW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBEb24ndCBvdmVyZmxvdyBpbiByZXRpbWVzdGFtcGluZyBjb2RlLgoKMjAwNy0wNi0wNyAyMDo1MTozNSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFVzZSBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogKERFRklORV9DVUJJQ19HRVQpOgoJICBVc2UgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTA2LTA3IDE3OjIyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFNtYWxsIGRvY3MgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uLgoKMjAwNy0wNi0wNyAxNDo0OTowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUkVBRE1FOiBSZW1vdmUgdGhhdCB0ZXN0IGxpbmUgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgUmVtb3ZlIHRoYXQgdGVzdCBsaW5lIGFnYWluLgoKMjAwNy0wNi0wNyAxNDozNjowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUkVBRE1FOiBUZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgVGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxNDoxNzo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggdHlwbyBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCB0eXBvIGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDE0OjEyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogSW1wcm92ZSBjb21tZW50IGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBJbXByb3ZlIGNvbW1lbnQgYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTA6MTE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZmluZF9tZXNzYWdlKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLCAoaXNfZW9zKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgbWVzc2FnZXMuCgkgIEdlbmVyYXRlIHRoZSBhc3luYy1kb25lIG1lc3NhZ2VzIHRvZ2V0aGVyIHdpdGggdGhlIHN0YXRlIGNoYW5nZQoJICBtZXNzYWdlcy4KCSAgU21hbGwgY2xlYW51cHMgaW4gaGFuZGxpbmcgdG9wbGV2ZWwgYmlucy4KCjIwMDctMDYtMDYgMTg6MTE6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggbXVsdGlxdWV1ZSBsZWFraW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyB3aGVuIGRvd25zdHJlYW0gb3IgdGhlIHF1ZXVlIGFyZSBmbHVzaGluZy4gTWFrZSByZWZjb3VudGluZyBhc3N1bXB0aW9ucyBleHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgRml4IG11bHRpcXVldWUgbGVha2luZyBidWZmZXJzIGFuZCBldmVudHMgd2hlbiBkb3duc3RyZWFtIG9yIHRoZQoJICBxdWV1ZSBhcmUgZmx1c2hpbmcuIE1ha2UgcmVmY291bnRpbmcgYXNzdW1wdGlvbnMgZXhwbGljaXQgYW5kCgkgIGRvY3VtZW50IHRoZW0gKHNob3VsZG4ndCBicmVhayBleGlzdGluZyBjb2RlIHRoYXQgdXNlcyBpdCBvdGhlciB0aGFuCgkgIG1heWJlIGxlYWsgbWluaW9iamVjdHMsIGJ1dCB0aGF0IGFscmVhZHkgaGFwcGVucyBhbnl3YXkpLiBBZGQgdW5pdAoJICB0ZXN0IGZvciB0aGUgbW9zdCBjb21tb24gZmx1c2hpbmcgY2FzZS4gRml4ZXMgIzQyMzcwMC4KCjIwMDctMDYtMDYgMTQ6MjA6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBDbGFyaWZ5IGRvY3M6IFRoZSBnZXRfYWxsLCBnZXRfdmFsdWVfYXJyYXkocykgZnVuY3Rpb25zIGRvbid0IG1vZGlmeSB0aGUgR09iamVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQ2xhcmlmeSBkb2NzOiBUaGUgZ2V0X2FsbCwgZ2V0X3ZhbHVlX2FycmF5KHMpIGZ1bmN0aW9ucwoJICBkb24ndCBtb2RpZnkgdGhlIEdPYmplY3QgcHJvcGVydGllcy4KCjIwMDctMDYtMDYgMTQ6MDE6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBGYWN0b3Igb3V0IHRoZSAnc2V0JyBsb2dpYyBpbnRvIGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCBmb3IgdGhlIGdzdF9jb250cm9sbGVyX3NldCBhbmQgZ3N0Xy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfcHJlcGVuZF9kZWZhdWx0KSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEZhY3RvciBvdXQgdGhlICdzZXQnIGxvZ2ljIGludG8gZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkIGZvciB0aGUKCSAgZ3N0X2NvbnRyb2xsZXJfc2V0IGFuZCBnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0IGZ1bmN0aW9ucy4KCSAgVG8gbWFrZSBsaWZlIG9mIHRoZSBpbnRlcnBvbGF0b3JzIGVhc2llciBhbHdheXMgYWRkIGEgY29udHJvbCBwb2ludAoJICBhdCB0aW1lc3RhbXAgemVybyB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlLgoJICBJbiB0aGUgbGluZWFyIGludGVycG9sYXRvciBtYWtlIHRoaW5ncyBtb3JlIG9idmlvdXMgYnkgYmV0dGVyIHZhcmlhYmxlCgkgIG5hbWluZyAoc2xvcGUpLgoJICBJbXBsZW1lbnQgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlIChieSB1c2luZyBhIG5hdHVyYWwgY3ViaWMgc3BsaW5lKQoJICBhbmQgbWFwIHRoZSBxdWFkcmF0aWMgaW50ZXJwb2xhdGlvbiBtb2RlIHRvIHRoaXMgdG9vIChhcyBxdWFkcmF0aWMKCSAgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UsIHNlZSBkaXNjdXNzaW9uIG9uIHRoZSBsaXN0KS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGN1YmljIGludGVycG9sYXRpb24gbW9kZSBhbmQgY2hlY2sgZXZlcnl3aGVyZQoJICBpZiB0aGUgaW50ZXJwb2xhdGlvbiBtb2RlIGNvdWxkIGJlIHNldCBhcyBleHBlY3RlZC4KCjIwMDctMDYtMDYgMTE6Mzg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFyYW1zcGVjcy5jOiBEb24ndCB1c2UgR0xpYi0yLjEwIGZ1bmN0aW9ucywgd2Ugc3RpbGwgZGVwZW5kIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbl9nZXRfdHlwZSk6CgkgIERvbid0IHVzZSBHTGliLTIuMTAgZnVuY3Rpb25zLCB3ZSBzdGlsbCBkZXBlbmQgb24KCSAgR0xpYi1ob3ctb2xkLWlzLWl0LWFnYWluLTIuOC4KCjIwMDctMDYtMDYgMTE6MTg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHc3RQYXJhbVNwZWNGcmFjdGlvbiwgc28gZWxlbWVudHMgY2FuIGhhdmUgZnJhY3Rpb24gcHJvcGVydGllcyB3aXRob3V0IGxvdHMgb2YgcGFpbmZ1bCBzdHJpbmcgcGFyc2luZyAoIzQ0NDYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoX2dzdF9wYXJhbV9mcmFjdGlvbl9pbml0KSwKCSAgKF9nc3RfcGFyYW1fZnJhY3Rpb25fc2V0X2RlZmF1bHQpLCAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWxpZGF0ZSksCgkgIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbHVlc19jbXApLAoJICAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb25fZ2V0X3R5cGUpLCAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzogKGdzdF9kdW1teV9vYmpfYmFzZV9pbml0KSwKCSAgKGdzdF9kdW1teV9vYmpfY2xhc3NfaW5pdCksIChnc3RfZHVtbXlfb2JqX2luaXQpLAoJICAoZ3N0X2R1bW15X29ial9zZXRfcHJvcGVydHkpLCAoZ3N0X2R1bW15X29ial9nZXRfcHJvcGVydHkpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhcmFtX3NwZWNfc3VpdGUpOgoJICBBUEk6IGFkZCBHc3RQYXJhbVNwZWNGcmFjdGlvbiwgc28gZWxlbWVudHMgY2FuIGhhdmUgZnJhY3Rpb24KCSAgcHJvcGVydGllcyB3aXRob3V0IGxvdHMgb2YgcGFpbmZ1bCBzdHJpbmcgcGFyc2luZyAoIzQ0NDY0OCkuCgoyMDA3LTA2LTA1IDE2OjI1OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBGaXggc2lnbmFsIHNpZ25hdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgRml4IHNpZ25hbCBzaWduYXR1cmUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkIHNtYWxsIGNsYXJpZmljYXRpb24gaW4gdGhlIGFwaSBkb2NzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9sb2NhdGlvbik6CgkgIFN0YXRlcyBhcmUgcHJvdGVjdGVkIHdpdGggb2JqZWN0IGxvY2suCgoyMDA3LTA2LTA1IDE0OjExOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFVVEhPUlM6IEkgc2hvdWxkIHByb2JhYmx5IGJlIGxpc3RlZCBhcyBhbiBhdXRob3IgYnkgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBBVVRIT1JTOgoJICBJIHNob3VsZCBwcm9iYWJseSBiZSBsaXN0ZWQgYXMgYW4gYXV0aG9yIGJ5IG5vdy4KCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBVcGRhdGUgdGhlIHJlbGVhc2UgZG9jCgoyMDA3LTA2LTA1IDEzOjQ5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE1ha2UgZG9jcyBmb3IgZ3N0X3ZhbHVlX2NvbXBhcmUoKSBtZW50aW9uIHJldHVybiBlbnVtcyB0aGF0IGFjdHVhbGx5IGV4aXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgTWFrZSBkb2NzIGZvciBnc3RfdmFsdWVfY29tcGFyZSgpIG1lbnRpb24gcmV0dXJuIGVudW1zIHRoYXQKCSAgYWN0dWFsbHkgZXhpc3QuCgoyMDA3LTA2LTA1IDEzOjIxOjQxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xMyA9PT0KCjIwMDctMDYtMDUgMTI6NDc6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgUmVsZWFzZSAwLjEwLjEzICJXaXRoIG9yIHdpdGhvdXQgeW91IgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjEzICJXaXRoIG9yIHdpdGhvdXQgeW91IgoKMjAwNy0wNi0wNSAxMjowNjo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTA1LTI5IDE1OjUwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjQ5OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjQ4OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjM3OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgc2VuZCBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNlbmQgYSBtYWlsCgoyMDA3LTA1LTI5IDExOjUyOjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDExOjQwOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDExOjAwOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjQzOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjM1OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjM0OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjIwOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI1IDE1OjM2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgYmluIHN0b3BzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGFzeW5jIHN0YXRlIGNoYW5nZSBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGNvbnRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSk6CgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBiaW4gc3RvcHMgYWZ0ZXIgY29tcGxldGluZyB0aGUgYXN5bmMgc3RhdGUKCSAgY2hhbmdlIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gY29udGludWUgdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HLgoJICBGaXhlcyAjNDQxMTU5LgoKMjAwNy0wNS0yNSAwOToyNjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXNlIGFkZGl0aW9uYWwgcmVmY291bnRpbmcgdG8gYXZvaWQgY3Jhc2hlcyB3aGVuIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgcGFkcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyk6CgkgIFVzZSBhZGRpdGlvbmFsIHJlZmNvdW50aW5nIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgYW5kCgkgIHJlbW92aW5nIHBhZHMuIEZpeGVzICM0MjAyMDYuCgoyMDA3LTA1LTI0IDE1OjAwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBXaGVuIGJ1ZmZlcmluZyBnb2VzIGZyb20gYSB0d28gZGlnaXQgdG8gYSBzaW5nbGUgZGlnaXQgbnVtYmVyLCBtYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBvbGQgc2Vjb25kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBXaGVuIGJ1ZmZlcmluZyBnb2VzIGZyb20gYSB0d28gZGlnaXQgdG8gYSBzaW5nbGUgZGlnaXQgbnVtYmVyLCBtYWtlIHN1cmUKCSAgdG8gcmVtb3ZlIHRoZSBvbGQgc2Vjb25kIGRpZ2l0IGJ5IHdyaXRpbmcgYSBibGFuayBvdmVyIGl0LgoKMjAwNy0wNS0yNCAxMjoxOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IEVsaW1pbmF0ZSB0YWJzIGFuZCB0cmFpbGluZyBjb21tYSBpbiBlbnVtIGxpc3Q7IGZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBFbGltaW5hdGUgdGFicyBhbmQgdHJhaWxpbmcgY29tbWEgaW4gZW51bSBsaXN0OyBmaXggc29tZSB0eXBvcy4KCjIwMDctMDUtMjQgMTE6NTA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEFsbG93IHJlZmNvdW50IG9mIDMgYW5kIDQgYmVjYXVzZSBzb21lIHN0YXRlIHRocmVhZCBtaWdodCBzdGlsbCBiZSBidXN5IHdpdGggaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWxsb3cgcmVmY291bnQgb2YgMyBhbmQgNCBiZWNhdXNlIHNvbWUgc3RhdGUgdGhyZWFkIG1pZ2h0IHN0aWxsIGJlIGJ1c3kKCSAgd2l0aCBpdC4KCjIwMDctMDUtMjQgMDk6NDE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVGhlc2UgYXJlIG5vdCBpbnN0YWxsZWQgaGVhZGVycywgbm8gbmVlZCBmb3IgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFRoZXNlIGFyZSBub3QgaW5zdGFsbGVkIGhlYWRlcnMsIG5vIG5lZWQgZm9yIHBhZGRpbmcuCgoyMDA3LTA1LTI0IDA4OjM1OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBFbmFibGUgbGF0ZW5jeSBmb3IgbmV4dCByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBFbmFibGUgbGF0ZW5jeSBmb3IgbmV4dCByZWxlYXNlLgoJICBSZXN0b3JlIFNUQVRFX0xPQ0sgYXJvdW5kIHJlY2FsY19zdGF0ZSB0aGF0IHdhcyBsZWZ0IG91dCBkdXJpbmcgdGhlCgkgIHJld3JpdGUgYW5kIGNvdWxkIHJlc3VsdCBpbiByYWN5IGJlaGF2aW91ciB3aGVuIF9nZXRfc3RhdGUgYW5kCgkgIHJlY2FsY19zdGF0ZSBhcmUgcnVuIGNvbmN1cnJlbnRseS4gU2VlICM0NDA0NjMuCgoyMDA3LTA1LTIzIDEzOjU2OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEltcHJvdmUgdGVzdF9hc3luY19vcmRlciB0byBhbHNvIHdvcmsgd2hlbiBib3RoIHRpbWVycyBhcmUgYWxyZWFkeSBleHBpcmVkIHdoZW4gd2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoc3RvcmVfY2FsbGJhY2spLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIHRlc3RfYXN5bmNfb3JkZXIgdG8gYWxzbyB3b3JrIHdoZW4gYm90aCB0aW1lcnMgYXJlIGFscmVhZHkKCSAgZXhwaXJlZCB3aGVuIHdlIGdldCBzY2hlZHVsZWQgdG8gY2hlY2sgaXQuCgoyMDA3LTA1LTIyIDE3OjEwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi4qOiAncHJpdmF0ZScgaXMgYSBjKysga2V5d29yZCwgbGV0J3Mgbm90IHVzZSB0aGF0IGluIGhlYWRlciBmaWxlcywgb3RoZXJ3aXNlIGMrKyBjb21waWxlcnMgd2lsbCB0aHJvdyBhIHRhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2Rpc3Bvc2UpLAoJICAoZ3N0X2Jpbl9zZXRfcHJvcGVydHkpLCAoZ3N0X2Jpbl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgJ3ByaXZhdGUnIGlzIGEgYysrIGtleXdvcmQsIGxldCdzIG5vdCB1c2UgdGhhdCBpbiBoZWFkZXIgZmlsZXMsCgkgIG90aGVyd2lzZSBjKysgY29tcGlsZXJzIHdpbGwgdGhyb3cgYSB0YW50cnVtLgoKMjAwNy0wNS0yMiAxMTo1NTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvOiBVc2UgI2lmZGVmIGZvciBIQVZFX1hZWiBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgVXNlICNpZmRlZiBmb3IgSEFWRV9YWVogZm9yIGNvbnNpc3RlbmN5LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzogKHNldHVwX2ZpbGVzaW5rKSwKCSAgKGNsZWFudXBfZmlsZXNpbmspLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmlsZXNpbmtfc3VpdGUpOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciBmaWxlc2luay4KCjIwMDctMDUtMjIgMTE6NDM6MDcgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLio6IEZpeCBwb3NpdGlvbiByZXBvcnRpbmc7IHJlbmFtZSBkYXRhX3dyaXR0ZW4gbWVtYmVyIHRvIGN1cnJlbnRfcG9zIHRvIHJlZmxlY3QgaXRzIHJlYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfcXVlcnkpLCAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEZpeCBwb3NpdGlvbiByZXBvcnRpbmc7IHJlbmFtZSBkYXRhX3dyaXR0ZW4gbWVtYmVyIHRvIGN1cnJlbnRfcG9zIHRvCgkgIHJlZmxlY3QgaXRzIHJlYWwgbWVhbmluZyAoZml4ZXMgIzQxMjY0OCkuCgoyMDA3LTA1LTIyIDExOjA5OjQ1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgQWRkIGEgcHJvcGVydHkgZm9yIGJpbnMgdGhhdCBoYW5kbGUgdGhlIHN0YXRlIGNoYW5nZSBvZiB0aGVpciBjaGlsZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9zZXRfcHJvcGVydHkpLCAoZ3N0X2Jpbl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIGEgcHJvcGVydHkgZm9yIGJpbnMgdGhhdCBoYW5kbGUgdGhlIHN0YXRlIGNoYW5nZSBvZiB0aGVpciBjaGlsZHMuCgkgIEZpeGVzICM0MzU4ODAKCjIwMDctMDUtMjIgMTA6MjE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgYWRkIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcXVvdGUKCjIwMDctMDUtMjIgMDk6NTY6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBVc2UgYW4gYXJyYXkgb2YgdGhlIGNvcnJlY3QgdHlwZSB3aGVuIHVzaW5nIF9nZXRfdmFsdWVfYXJyYXkgd2l0aCBsaW5lYXIgaW50ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgVXNlIGFuIGFycmF5IG9mIHRoZSBjb3JyZWN0IHR5cGUgd2hlbiB1c2luZyBfZ2V0X3ZhbHVlX2FycmF5IHdpdGgKCSAgbGluZWFyIGludGVycG9sYXRpb24uCgoyMDA3LTA1LTIyIDA2OjM3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2ssIGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrLCBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCwgZ3N0X2VsZW1lbnRfY2xhc3NfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrLAoJICBnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jaywgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQsCgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzLCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUsCgkgIGdzdF9lbGVtZW50X2RlZmF1bHRfc2VuZF9ldmVudCwgZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUsCgkgIGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlLCBnc3RfZWxlbWVudF9zZXRfc3RhdGUsCgkgIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jLCBpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKToKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCwgZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbiwKCSAgZ3N0X3BhZF9maXhhdGVfY2FwcywgZ3N0X3BhZF9jb25maWd1cmVfc2luaywgZ3N0X3BhZF9jb25maWd1cmVfc3JjLAoJICBnc3RfcGFkX3F1ZXJ5LCBnc3RfcGFkX3NhdmVfdGh5c2VsZiwgaGFuZGxlX3BhZF9ibG9jaywgZ3N0X3BhZF9wdXNoLAoJICBnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfTElOS19TVUNDRVNTRlVMLCBHU1RfRkxPV19DVVNUT01fU1VDQ0VTUywKCSAgR1NUX0ZMT1dfTk9UX1NVUFBPUlRFRCwgR1NUX0ZMT1dfSVNfRkFUQUwsIEdzdFBhZEFjdGl2YXRlRnVuY3Rpb24sCgkgIEdzdFBhZEFjdGl2YXRlTW9kZUZ1bmN0aW9uLCBHc3RQYWRDaGFpbkZ1bmN0aW9uLAoJICBHc3RQYWRHZXRDYXBzRnVuY3Rpb24sIEdzdFBhZEFjY2VwdENhcHNGdW5jdGlvbiwKCSAgR3N0UGFkRml4YXRlQ2Fwc0Z1bmN0aW9uLCBHc3RQYWRUZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUsCgkgIGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lLCBnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrLAoJICBnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrLCBnc3RfcGlwZWxpbmVfYXV0b19jbG9jaywKCSAgZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgIFdoaXRlc3BhY2UgYW5kIGRvY3MgZml4ZXMuCgoyMDA3LTA1LTIxIDIxOjQ4OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWRkIHN1cHBvcnQgZm9yIHJldHJpZXZpbmcgdmFsdWUgYXJyYXlzIHdoZW4gdXNpbmcgdGhlIHRyaWdnZXIgaW50ZXJwb2xhdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIEFkZCBzdXBwb3J0IGZvciByZXRyaWV2aW5nIHZhbHVlIGFycmF5cyB3aGVuIHVzaW5nIHRoZSB0cmlnZ2VyCgkgIGludGVycG9sYXRpb24gbW9kZS4KCjIwMDctMDUtMjEgMjE6MzQ6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci4qOiBDbGFyaWZ5IHRoZSBkb2NzIG9mIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpOiBUaGUgYXJyYXkgd2hlcmUgdGhlIHZhbHVlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIENsYXJpZnkgdGhlIGRvY3Mgb2YgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCk6IFRoZSBhcnJheSB3aGVyZQoJICB0aGUgdmFsdWVzIHNob3VsZCBiZSB3cml0dGVuIHRvIG11c3QgYmUgYWxsb2NhdGVkIGFzIHRoZXJlIHNlZW1zIHRvIGJlCgkgIG5vIHdheSB0byBnZXQgdGhlIHNpemUgb2YgYSByYW5kb20gR1R5cGUuIFRoaXMgZG9lc24ndCBjaGFuZ2UgYW55CgkgIGJlaGF2aW91ci4gQWxzbyBmaXggc29tZSB0eXBvcyBhbGwgb3ZlciB0aGUgcGxhY2UgYW5kIHJlbW92ZSBhbiB1bnVzZWQsCgkgIGNvbW1lbnRlZCBmdW5jdGlvbiB0aGF0IGlzIG5vdCBuZWNlc3NhcnkgYXMgZ19vYmplY3Rfc2V0KCkgY291bGQgYmUKCSAgdXNlZCBpbnN0ZWFkLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKS4KCjIwMDctMDUtMjEgMTQ6NTA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBEaXNhYmxlIHBhcnQgb2YgdGhlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MgdGVzdCwgYmVjYXVzZSBpdCBjYW4gaGFwcGlseSBzdWNjZWVkIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRGlzYWJsZSBwYXJ0IG9mIHRoZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jIHRlc3QsIGJlY2F1c2UKCSAgaXQgY2FuIGhhcHBpbHkgc3VjY2VlZCBvbiA2NC1iaXQgc3lzdGVtcyB3aGVyZSB0aGVyZSdzIG1vcmUgYWRkcmVzcwoJICBzcGFjZSBhdmFpbGFibGUuCgoyMDA3LTA1LTIxIDEyOjA1OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBpbXByb3ZlZCBjYXBzIGNoZWNraW5nIGZyb20gYnVnICM0MjE1NDMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgaW1wcm92ZWQgY2FwcyBjaGVja2luZyBmcm9tIGJ1ZyAjNDIxNTQzLgoKMjAwNy0wNS0yMSAxMjowNToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU21hbGwgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU21hbGwgYWRkaXRpb24uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoYXBwbHlfc2VnbWVudCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEltcHJvdmUgZG9jcy4KCjIwMDctMDUtMjEgMTI6MDA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZGVkIHNpbXBsZSB2ZXJzaW9uIG9mIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcuIEl0IHdhcyBwcmV2aW91c2x5IGFzc3VtZWQgdGhhdCBhIHNldGNhcHMgZnVuY3Rpb24gd291bGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyk6CgkgIEFkZGVkIHNpbXBsZSB2ZXJzaW9uIG9mIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcuIEl0IHdhcyBwcmV2aW91c2x5CgkgIGFzc3VtZWQgdGhhdCBhIHNldGNhcHMgZnVuY3Rpb24gd291bGQgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjYXBzIGJ1dAoJICBwZW9wbGUgcHJlZmVyIHVzIHRvIGNoZWNrIGNhcHMgYWdhaW5zdCB0aGUgdGVtcGxhdGUgYXV0b21hdGljYWxseS4KCSAgRml4ZXMgIzQyMTU0My4KCjIwMDctMDUtMjEgMTE6Mjk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDogRml4IG1hY3JvIGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUgdHJhbnNmb3JtIGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggbWFjcm8gZm9yIGxvY2tpbmcvdW5sb2NraW5nIHRoZSB0cmFuc2Zvcm0gbG9jay4KCjIwMDctMDUtMTkgMTM6NTM6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOiBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA3LTA1LTE4IDE2OjUzOjE4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBIZWxsbywgSSBhbSBNciBUYXltYW5zJyBwZXJzb25hbCBkZWJ1Z2dlci4gVG9kYXkgSSB3aWxsIGludHJvZHVjZSBhIGZpeCBmb3IgdGhlIHN1YnRsZSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgSGVsbG8sIEkgYW0gTXIgVGF5bWFucycgcGVyc29uYWwgZGVidWdnZXIuIFRvZGF5IEkgd2lsbCBpbnRyb2R1Y2UgYSBmaXgKCSAgZm9yIHRoZSBzdWJ0bGUgYXJ0IG9mIHdhcm5pbmcgYSBwb3RlbnRpYWxseSBibG9ja2luZyB0aHJlYWQgdGhhdCBpdAoJICBzaG91bGQgY2hlY2sgdGhlIHNvdXJjZSBwYWQgcmV0dXJuIHZhbHVlLCBhbmQgcmVsYXkgdGhlIGluZm9ybWF0aW9uCgkgIHVwc3RyZWFtLgoKMjAwNy0wNS0xOCAxMToyMDozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUmVsZWFzZSB0aGUgcXVldWUgbG9jayAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgIQoKMjAwNy0wNS0xNyAxNzo1NTo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIHRoZSB0d28gbmV3IGNvbnRyb2xsZXIgZnVuY3Rpb25zIHRvIHRoZSBhcHByb3BpYXRlIHBsYWNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIHRoZSB0d28gbmV3IGNvbnRyb2xsZXIgZnVuY3Rpb25zIHRvIHRoZSBhcHByb3BpYXRlIHBsYWNlcy4KCjIwMDctMDUtMTcgMTc6Mzc6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKCksIGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKSwgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKF9nc3RfY29udHJvbGxlcl9nZXRfcHJvcGVydHkpLCAoX2dzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfaW5pdCksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgIEFQSTogZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMoKSwgZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYygpCgkgIEFkZCBBUEkgdGhhdCBwcm92aWRlcyBzeW5jIHN1Z2dlc3Rpb24gdGltZXN0YW1wcyBmb3IgZWxlbWVudHMgdGhhdAoJICBjYWxsIGdzdF9vYmplY3Rfc3luY192YWx1ZXMoKSBmcm9tIHdoaWNoIHRob3NlIGVsZW1lbnRzIGNhbiBzdWJkaXZpZGUKCSAgdGhlaXIgcHJvY2Vzc2luZyBsb29wIHRvIGdldCB0aGUgYmVzdCByZXN1bHRzIGZvciB0aGUgY29udHJvbGxlZAoJICBwcm9wZXJ0aWVzLiBGb3Igbm93IGl0IGp1c3Qgc3VnZ2VzdHMgbGFzdF9zeW5jICsgY29udHJvbF9yYXRlIGFzCgkgIG5ldyB0aW1lc3RhbXAgYnV0IHRoaXMgd2lsbCBiZSBpbXByb3ZlZCBpbiB0aGUgZnV0dXJlLgoJICBXaGlsZSBkb2luZyB0aGF0IGNoYW5nZSB0aGUgY29udHJvbC1yYXRlIHByb3BlcnR5IHRvIGEgR3N0Q2xvY2tUaW1lCgkgIGZyb20gZ3VpbnQgYW5kIGNoYW5nZSBpdCdzIG1lYW5pbmcgZnJvbSBzYW1wbGVzIHRvIG5hbm9zZWNvbmRzIGFzCgkgIHRoZSBHc3RDb250cm9sbGVyIGRvZXNuJ3Qga25vdyBhbnl0aGluZyBhYm91dCBzYW1wbGluZyByYXRlLiBTdHJpY3RseQoJICBzcGVha2luZyB0aGlzIGJyZWFrcyBBQkkgYnV0IGFzIHRoZSBjb250cm9sLXJhdGUgcHJvcGVydHkgZGlkbid0IGRvCgkgIGFueXRoaW5nIGluIHRoZSBwYXN0IGFuZCBhcyBzdWNoIGNvdWxkbid0IGJlIHVzZWQgdGhpcyBzaG91bGQgYmUgbm8KCSAgcHJvYmxlbS4KCjIwMDctMDUtMTcgMTc6MTY6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBTYXZlIGxhc3Qgc3luY2VkIHZhbHVlIGZyb20gdGhlIGxpc3QgdG8gY29udGludWUgc2VhcmNoaW5nIGZyb20gdGhlcmUgaW4gZnV0dXJlIHN5bmNzLiBUaGlzIHNwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpOgoJICBTYXZlIGxhc3Qgc3luY2VkIHZhbHVlIGZyb20gdGhlIGxpc3QgdG8gY29udGludWUgc2VhcmNoaW5nIGZyb20gdGhlcmUKCSAgaW4gZnV0dXJlIHN5bmNzLiBUaGlzIHNwZWVkcyBldmVyeXRoaW5nIHVwIGEgYml0LgoKMjAwNy0wNS0xNyAxNzowNTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFkZCBhIG5ldyBwcml2YXRlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3Qgd2hpY2ggImluaGVyaXRzIiBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xfcG9pbnRfY29tcGFyZSksCgkgIChnc3RfY29udHJvbF9wb2ludF9maW5kKSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksCgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCk6CgkgIEFkZCBhIG5ldyBwcml2YXRlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3Qgd2hpY2ggImluaGVyaXRzIiBmcm9tCgkgIEdzdFRpbWVkVmFsdWUgdG8gYWxsb3cgZGlmZmVyZW50IGludGVycG9sYXRvcnMgdG8gc3RvcmUgaW50ZXJuYWwKCSAgdmFsdWVzIG5leHQgdG8gZWFjaCBjb250cm9sIHBvaW50LiBGcm9tIHRoZSBvdXRzaWRlIGV2ZXJ5dGhpbmcgaXMKCSAgc3RpbGwgYSBHc3RDb250cm9sUG9pbnQgc28gd2UgZG9uJ3QgbG9vc2UgYmluYXJ5IGNvbXBhdGliaWxpdHkuCgkgIEFsc28gZml4dXAgYWxsIHRoZSBHVmFsdWUgaGFuZGxpbmcgdG8gbm90IGxlYWsgR1ZhbHVlcyBvciBsaXN0IG5vZGVzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGcmVlIHRoZSBsaXN0IG5vZGVzIGFuZCBHVmFsdWVzIGluIHRoZSBjb250cm9sbGVyX21pc2MgdGVzdC4KCjIwMDctMDUtMTcgMTE6MDU6MjIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBTbWFsbCBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBTbWFsbCBkb2MgZml4LgoKMjAwNy0wNS0xNiAxOTozNTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSWYgd2UgZmFpbCB0byBsb2FkIGEgcGx1Z2luIGJlY2F1c2Ugb2YgdW5yZXNvbHZlZCBzeW1ib2xzIG9yIG1pc3NpbmcgbGlicmFyaWVzIGFuZCBzcGV3IGEgd2FybmluZyB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIElmIHdlIGZhaWwgdG8gbG9hZCBhIHBsdWdpbiBiZWNhdXNlIG9mIHVucmVzb2x2ZWQgc3ltYm9scyBvciBtaXNzaW5nCgkgIGxpYnJhcmllcyBhbmQgc3BldyBhIHdhcm5pbmcgdG8gc3RkZXJyLCB3ZSBtYXkganVzdCBhcyB3ZWxsIG1lbnRpb24KCSAgd2hpY2ggcGx1Z2luIGl0IHdhcyB0aGF0IGZhaWxlZCB0byBsb2FkLgoKMjAwNy0wNS0xMyAyMDoyODoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL01ha2VmaWxlLmFtOiB0aGUgZ3RrLWRvYyBtYWtlZmlsZSBzbmlwcGV0IGNvcnJlY3RseSBoYW5kbGVzIHRoZSBjYXNlIHdoZW4gRU5BQkxFX0dUS19ET0MgaXMgZmFsc2UsIGFuZCBpbnN0YWxscyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbTogdGhlIGd0ay1kb2MgbWFrZWZpbGUgc25pcHBldCBjb3JyZWN0bHkKCSAgaGFuZGxlcyB0aGUgY2FzZSB3aGVuIEVOQUJMRV9HVEtfRE9DIGlzIGZhbHNlLCBhbmQgaW5zdGFsbHMKCSAgdGhlIHByZWJ1aWx0IGRvY3VtZW50YXRpb24uICBTbyBndGstZG9jIHN1YmRpcnMgYXJlCgkgIHVuY29uZGl0aW9uYWxseSBlbmFibGVkLiAgRml4ZXM6ICMzNDkwOTkuCgoyMDA3LTA1LTEzIDIwOjExOjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBSZXdvcmQgc29tZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogUmV3b3JkIHNvbWUgZG9jdW1lbnRhdGlvbi4KCjIwMDctMDUtMTMgMDA6MjA6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMoKSBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIHdpdGggdGhlIHBhc3NlZCAibW9kdWxlIiBwYXJhbWV0ZXIsIHNvIHJlbW92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKCkgZG9lc24ndCBhY3R1YWxseQoJICBkbyBhbnl0aGluZyB3aXRoIHRoZSBwYXNzZWQgIm1vZHVsZSIgcGFyYW1ldGVyLCBzbyByZW1vdmUgaXQuCgkgIEFsbG93cyByZW1vdmFsIG9mIGFkZGl0aW9uYWwgdmVzdGlnYWwgY29kZS4KCjIwMDctMDUtMTMgMDA6MDk6MDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBVc2luZyBzaWdhY3Rpb24gc2hvdWxkIGRlcGVuZCBvbiBIQVZFX1NJR0FDVElPTiwgbm90IEhBVkVfV0lOMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgVXNpbmcgc2lnYWN0aW9uIHNob3VsZCBkZXBlbmQgb24gSEFWRV9TSUdBQ1RJT04sIG5vdCBIQVZFX1dJTjMyLgoJICBTd2l0Y2ggdG8gdXNpbmcgZ19zdGF0KCkgYmVjYXVzZSBpdCdzIG1vcmUgcG9ydGFibGUuCgoyMDA3LTA1LTEyIDIzOjUzOjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogQWRkIEdTVF9ESVNBQkxFX09QVElPTl9QQVJTSU5HLCBpbiBvcmRlciB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nIGZvciBlbWJlZGRlZCBzeXN0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBHU1RfRElTQUJMRV9PUFRJT05fUEFSU0lORywgaW4gb3JkZXIgdG8gZGlzYWJsZSBvcHRpb24KCSAgcGFyc2luZyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgQWxsb3cgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoKSB0byBiZSBjYWxsZWQgd2l0aCBwbHVnaW49PU5VTEwuCgkgIERpZCBub2JvZHkgbm90aWNlIHRoYXQgc3RhdGljIGVsZW1lbnRzIHdlcmUgYnJva2VuPwoKMjAwNy0wNS0xMiAxNTozODowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogR2l2ZSBtb3JlIGludGVyZXN0aW5nIGluZm8gd2hlbiBidWZmZXJpbmcgc3RhcnRzIGFuZCBzdG9wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEdpdmUgbW9yZSBpbnRlcmVzdGluZyBpbmZvIHdoZW4gYnVmZmVyaW5nIHN0YXJ0cyBhbmQgc3RvcHMuCgkgIEZpeCBjYXNlIHdoZXJlIGJ1ZmZlcmluZyBzdGFydHMgYnV0IHdlIGZhaWwgdG8gdXBkYXRlIHRoZSBidWZmZXJpbmcgZmxhZwoJICBiZWNhdXNlIHRoZSB0YXJnZXQgc3RhdGUgaXMgbm90IFBMQVlJTkcuCgoyMDA3LTA1LTEyIDE1OjM1OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBSZWZhY3RvciBhbiBjbGVhbnVwIHF1ZXVlIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfZmluYWxpemUpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFJlZmFjdG9yIGFuIGNsZWFudXAgcXVldWUgYSBiaXQuCgkgIERvIGJldHRlciB0aW1lIGxldmVsIGNhbGN1bGF0aW9ucyB0aGF0IGFsc28gd29yayB3aGVuIHRoZSBzcmNwYWQgaXMgbm90CgkgIHlldCBydW5uaW5nLgoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBkZWJ1ZyBsaW5lcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3IgdGltZSBsZXZlbCBtZWFzdXJlbWVudC4KCSAgVHJ5IHRvIG1ha2Ugc29tZSBzdHVmZiBtb3JlIHJhY2VmcmVlLgoKMjAwNy0wNS0xMSAxNDo0NjoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgIERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3VyaV9zdWl0ZSk6CgkgIEFkZCBicmFpbi1kZWFkIHVuaXQgdGVzdC4KCjIwMDctMDUtMTEgMTQ6Mjg6NTUgKzAwMDAgIEplcm9lbiBXb3V0ZXJzIDx3b3V0ZXJzakBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXJpLmM6IFRyZWF0IHByb3RvY29sIHN0cmluZ3MgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIHdheSAoIzQzNzU2MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVyb2VuIFdvdXRlcnMgPHdvdXRlcnNqIGF0IGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9wcm90b2NvbCksIChzZWFyY2hfYnlfZW50cnkpOgoJICBUcmVhdCBwcm90b2NvbCBzdHJpbmdzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkgKCM0Mzc1NjMpLgoKMjAwNy0wNS0xMSAxMDo1Njo0OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogRG9uJ3QgcHJpbnQgYSBnX3dhcm5pbmcgZm9yIGFueSBmYWlsdXJlIHRvIGxvYWQgYSBzaGFyZWQgb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgRG9uJ3QgcHJpbnQgYSBnX3dhcm5pbmcgZm9yIGFueSBmYWlsdXJlIHRvIGxvYWQgYSBzaGFyZWQgb2JqZWN0LgoJICBJbnN0ZWFkLCBwdXNoIHRoaXMgZG93biBpbnRvIGdzdHBsdWdpbi5jLCBhbmQgd2FybiBfb25seV8gaWYgd2UKCSAgZmFpbGVkIHRvIG9wZW4gdGhlIG1vZHVsZSAoaS5lLiBmYWlsdXJlIHRvIGxpbmspLgoJICBBdm9pZHMgd2FybmluZ3Mgb24gbm9ybWFsLCB3b3JraW5nLCBub24tcGx1Z2luIC5zbyBmaWxlcy4KCjIwMDctMDUtMTEgMDg6Mjk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBnc3QvZ3N0cmVnaXN0cnkuYyAoR1NUX0NBVF9ERUZBVUxULCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkLCBnc3Rfci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoR1NUX0NBVF9ERUZBVUxULAoJICBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkLCBnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUHJpbnQgYSBnX3dhcm5pbmcgaWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gbG9hZGluZyBhIHBsdWdpbnMgZHVyaW5nCgkgIHJlZ2lzdHJ5IHNjYW4uIFRoZSBzaHVsZCBoZWxwIGJlZ2lubmVycyBzdGFydGluZyB3aXRoIGdzdC1wbHVnaW4KCSAgdGVtcGxhdGUuCgoyMDA3LTA1LTEwIDE1OjIxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBCZSBzbWFydGVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGRhdGEgaW4gdGhlIHF1ZXVlIGJ5IG1lYXN1cmluZyB0aGUgZGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgQmUgc21hcnRlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGFtb3VudCBvZiBkYXRhIGluIHRoZSBxdWV1ZSBieQoJICBtZWFzdXJpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFydCBhbmQgZW5kIHRpbWVzdGFtcHMgKGluIHJ1bm5pbmcKCSAgdGltZSkgaW5zaWRlIHRoZSBxdWV1ZS4gRml4ZXMgIzQzMjg3Ni4KCSAgQVBJOiBHc3RRdWV1ZTo6cHVzaGluZyB0byBub3RpZnkgZWxlbWVudHMgdGhhdCB3ZSBhcmUgcHVzaGluZyBkYXRhIGFnYWluCgkgIHNpbmNlIHRoZSBydW5uaW5nIHNpZ25hbCBpcyByYXRoZXIgYnJva2VuIGZvciB0aGlzIHB1cnBvc2UuCgoyMDA3LTA1LTEwIDEyOjQwOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKF9kb19pbml0LCBnc3RfcXVldWVfc2lnbmFscywgZ3N0X3F1ZXVlX2Jhc2VfaW5pdCwgZ3N0X3F1ZXVlX2luaXQpOiB1c2UgR1NUX0JPSUxFUlBMQVRFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoX2RvX2luaXQsIGdzdF9xdWV1ZV9zaWduYWxzLAoJICBnc3RfcXVldWVfYmFzZV9pbml0LCBnc3RfcXVldWVfaW5pdCk6CgkgIHVzZSBHU1RfQk9JTEVSUExBVEUKCjIwMDctMDUtMDkgMjE6MDY6MDYgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgVXNlIGdyYW1tYXIgcHJlLWdlbmVyYXRlZCBmaWxlcy4KCjIwMDctMDUtMDkgMTY6MzI6MDcgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogTWFpbnRhaW4gQVBJIGFuZCBBQkkgd2hlbiAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4gTm93IHRoYXQgd2UgaGF2ZSBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLCB3ZSBjYW4ganVzdCByZXR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2h2KSwgKGdzdF9wYXJzZV9sYXVuY2gpOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFpbnRhaW4gQVBJIGFuZCBBQkkgd2hlbiAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4gTm93IHRoYXQKCSAgd2UgaGF2ZSBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLCB3ZSBjYW4ganVzdCByZXR1cm4gTlVMTCBhbmQgdGhlCgkgIGFwcHJvcHJpYXRlIGVycm9yIHdoZW4gZ3N0X3BhcnNlX2xhdW5jaCgpIGlzIHVzZWQgZGVzcGl0ZSBpdCBoYXZpbmcKCSAgYmVlbiBkaXNhYmxlZCAoIzM0MjU2NCkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWRpc2FibGVkLmM6CgkgIE1ha2Ugc3VyZSB0aGVzZSBmdW5jdGlvbnMgZXhpc3QgYW5kIHJldHVybiBOVUxMIHBsdXMgYSBHRXJyb3Igd2hlbgoJICAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4KCjIwMDctMDUtMDkgMTA6MDE6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogU2V0IGEgZ29vZCBleGFtcGxlIGFuZCBkb24ndCBsZWFrIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzogKG1haW4pOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOiAobWFpbik6CgkgIFNldCBhIGdvb2QgZXhhbXBsZSBhbmQgZG9uJ3QgbGVhayBtZXNzYWdlcy4KCjIwMDctMDUtMDYgMTg6Mjc6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBDb3JyZWN0IGZpeHhyZWZzIG9wdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgQ29ycmVjdCBmaXh4cmVmcyBvcHRpb25zLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyAoZ3N0X2NhcHNmaWx0ZXJfZGV0YWlscyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmggKF9fR1NUX0NBUFNGSUxURVJfSF9fLAoJICBHU1RfVFlQRV9DQVBTRklMVEVSLCBHU1RfQ0FQU0ZJTFRFUiwgR1NUX0NBUFNGSUxURVJfQ0xBU1MsCgkgIEdTVF9JU19DQVBTRklMVEVSLCBHU1RfSVNfQ0FQU0ZJTFRFUl9DTEFTUywgR3N0Q2Fwc0ZpbHRlciwKCSAgR3N0Q2Fwc0ZpbHRlckNsYXNzLCBfR3N0Q2Fwc0ZpbHRlciwgdHJhbnMsIGZpbHRlcl9jYXBzLAoJICBfR3N0Q2Fwc0ZpbHRlckNsYXNzLCB0cmFuc19jbGFzcyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jIChuYW1lLCByYW5rLCB0eXBlLCBfZWxlbWVudHMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF90aW1lc3RhbXAsCgkgIGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KToKCSAgRG9jdW1lbnQgY2Fwc2ZpbHRlciBhbmQgYWRkIGRvYy1ibHVyYiB0byBpZGVudGl0eS4KCjIwMDctMDUtMDQgMTI6Mzc6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogRG9uJ3QgY3Jhc2ggaWYgc29tZW9uZSB0cmllcyB0byBzZXQgYW4gaW50ZXJwb2xhdGlvbiBtb2RlIHRoYXQgaXMgaW52YWxpZCBvciB0aGF0IGlzbid0IHN1cHBvcnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgRG9uJ3QgY3Jhc2ggaWYgc29tZW9uZSB0cmllcyB0byBzZXQgYW4gaW50ZXJwb2xhdGlvbiBtb2RlIHRoYXQKCSAgaXMgaW52YWxpZCBvciB0aGF0IGlzbid0IHN1cHBvcnRlZCB5ZXQuIEZpeGVzICM0MjIyOTUuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCBhIHRlc3QgY2FzZSBmb3IgdGhlIGFib3ZlLgoKMjAwNy0wNS0wMyAxNjo0NDozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcm9wZXJseSBzZXQgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBvbiBHc3RTZWdtZW50LiBUaGlzIHdpbGwgb25seSBoYXBwZW4gaWYgdGhlcmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIFByb3Blcmx5IHNldCB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIG9uIEdzdFNlZ21lbnQuIFRoaXMgd2lsbCBvbmx5IGhhcHBlbgoJICBpZiB0aGVyZSBpcyBhIGJ1ZmZlciB0byBwdXNoIG91dC4KCjIwMDctMDUtMDMgMTQ6NTg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogYWx3YXlzX2luX3BsYWNlIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgc2luayBhbmQgc291cmNlIGNhcHMgYXJlIHRoZSBzYW1lISBNYWtlIHN1cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgYWx3YXlzX2luX3BsYWNlIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgc2luayBhbmQgc291cmNlIGNhcHMgYXJlIHRoZQoJICBzYW1lISBNYWtlIHN1cmUgd2UgZG9uJ3QgYmxpbmRseSBwcm94eSB0aGUgYnVmZmVyX2FsbG9jIGluIHRoaXMgY2FzZS4KCjIwMDctMDUtMDMgMTQ6NTQ6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KCkuIEFkZGVkIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGVhc2lseSBnZXQgdGhlIGxhdGVuY3kgdmFsdWVzIG9mIHRoZSBiYXNlIHNvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBUEk6IGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KCkuIEFkZGVkIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuCgkgIGVhc2lseSBnZXQgdGhlIGxhdGVuY3kgdmFsdWVzIG9mIHRoZSBiYXNlIHNvdXJjZSBjbGFzcy4KCjIwMDctMDUtMDMgMDk6MjQ6NTggKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9pbXBsZW1lbnRhdGlvbl9pbmZvKTogUmVtb3ZlIDAuOCBjcnVmdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfaW1wbGVtZW50YXRpb25faW5mbyk6CgkgIFJlbW92ZSAwLjggY3J1ZnQuCgoyMDA3LTA1LTAyIDE3OjA5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBEb24ndCBjcmVhdGUgYSBjdXN0b21pc2VkIG1hbiBwYWdlIGJhc2VkIG9uIHRoZSBob3N0IGFyY2hpdGVjdHVyZSwgZGVzY3JpYmUgdGhlIGRlZmF1bHQgcmVnaXN0cnkgcGF0aCBnZW5lcmljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9uJ3QgY3JlYXRlIGEgY3VzdG9taXNlZCBtYW4gcGFnZSBiYXNlZCBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUsCgkgIGRlc2NyaWJlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHBhdGggZ2VuZXJpY2FsbHkuIFRoYXQgd2F5IHRoZSBtYW4KCSAgcGFnZSBpcyB0aGUgc2FtZSBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgYW5kIHBhY2thZ2VycyBoYXZlIG9uZQoJICBtdWx0aWxpYiBpc3N1ZSBsZXNzIHRvIGRlYWwgd2l0aC4gRml4ZXMgIzQzNDkyNi4KCjIwMDctMDUtMDIgMTU6MTQ6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBkb2N1bWVudGF0aW9uIGFzIHNwb3R0ZWQgYnkgcmcgb24gSVJDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGFzIHNwb3R0ZWQgYnkgcmcgb24gSVJDLgoKMjAwNy0wNC0yOSAxNzozNjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEltcHJvdmUgZG9jcyBmb3IgZ3N0X2VsZW1lbnRfe2xpbmssdW5saW5rfS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEltcHJvdmUgZG9jcyBmb3IgZ3N0X2VsZW1lbnRfe2xpbmssdW5saW5rfS4KCjIwMDctMDQtMjkgMTQ6MDQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL1JFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNy0wNC0yOCAxMToyOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFR5cG8gZml4ZXM7IG1pbm9yIGRvY3MgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVHlwbyBmaXhlczsgbWlub3IgZG9jcyBhZGRpdGlvbi4KCjIwMDctMDQtMjcgMDg6MzA6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKCksIHdoaWNoIGNoZWNrcyBpZiBhbiBzaW5rIG9yIHNyYyB0aGF0IHN1cHBvcnRzIGEgZ2l2ZW4gVVJJIHByb3RvY29sIGV4aXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnZXRfZWxlbWVudF9mYWN0b3JpZXNfZnJvbV91cmlfcHJvdG9jb2wpLAoJICAoZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQpLCAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBBUEk6IEFkZCBnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCgpLCB3aGljaCBjaGVja3MgaWYgYW4gc2luawoJICBvciBzcmMgdGhhdCBzdXBwb3J0cyBhIGdpdmVuIFVSSSBwcm90b2NvbCBleGlzdHMuCgoyMDA3LTA0LTI3IDA3OjM0OjEwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU2V0IHRoZSBsb2NhdGlvbiB0byBOVUxMIGlmICJmaWxlOi8vIiBpcyBzZXQgYXMgVVJJLiBPdGhlcndpc2Ugc29tZSByYW5kb20gcHJldmlvdXMgVVJJIHdvdWxkIHN0aWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBTZXQgdGhlIGxvY2F0aW9uIHRvIE5VTEwgaWYgImZpbGU6Ly8iIGlzIHNldCBhcyBVUkkuIE90aGVyd2lzZQoJICBzb21lIHJhbmRvbSBwcmV2aW91cyBVUkkgd291bGQgc3RpbGwgYmUgc2V0IGlmICJmaWxlOi8vIiBpcwoJICBzZXQgb24gYW4gYWxyZWFkeSB1c2VkIGZpbGVzaW5rL2ZpbGVzcmMuCgoyMDA3LTA0LTI3IDA3OjI3OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU3BlY2lhbCBjYXNlIHRoZSAiZmlsZTovLyIgVVJJIGFzIGFzIHRoaXMgaXMgdXNlZCBieSBzb21lIGFwcGxpY2F0aW9ucyB0byB0ZXN0IHdpdGggZ3N0X2VsZW1lbnRfbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBTcGVjaWFsIGNhc2UgdGhlICJmaWxlOi8vIiBVUkkgYXMgYXMgdGhpcyBpcyB1c2VkIGJ5IHNvbWUKCSAgYXBwbGljYXRpb25zIHRvIHRlc3Qgd2l0aCBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpIGlmIHRoZXJlJ3MKCSAgYW4gZWxlbWVudCB0aGF0IHN1cHBvcnRzIHRoZSBVUkkgcHJvdG9jb2wuCgkgIEFsc28gbW92ZSB0aGUgZ19wYXRoX2lzX2Fic29sdXRlKCkgY2hlY2sgZm9yIHRoZSBsb2NhdGlvbiBwYXJ0CgkgIG9mIHRoZSBVUkkgdG8gYWxzbyBjaGVjayB0aGlzIGZvciAiZmlsZTovL2xvY2FsaG9zdC9ibGEiIFVSSXMuCgoyMDA3LTA0LTI2IDEwOjAwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIHBsdXMgdW5pdCB0ZXN0ICgjNDMxOTQwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgIEFQSTogYWRkIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBwbHVzIHVuaXQgdGVzdCAoIzQzMTk0MCkuCgoyMDA3LTA0LTI2IDA3OjMyOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogSW1wbGVtZW50IG5vLW1tYXAgYWx0ZXJuYXRpdmUgZm9yIHJlZ2lzdHJ5IHJlYWRpbmcuIERvIGNvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgSW1wbGVtZW50IG5vLW1tYXAgYWx0ZXJuYXRpdmUgZm9yIHJlZ2lzdHJ5IHJlYWRpbmcuIERvIGNvZGUgY2xlYW51cHMuCgkgIEFkZCBtb3JlIGNvbW1lbnRzIGFib3V0IGF2b2lkaW5nIHN0cmR1cHMgZm9yIGFsbCB0ZXh0IGRhdGEuIENvbW1lbnRzCgkgIHdlbGNvbWUuCgoyMDA3LTA0LTI1IDEyOjMwOjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaCAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmggKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQsCgkgIEdzdEJpbmFyeVBsdWdpbkZlYXR1cmUsIF9Hc3RCaW5hcnlFbGVtZW50RmFjdG9yeSwgcGx1Z2luX2ZlYXR1cmUsCgkgIEdzdEJpbmFyeUVsZW1lbnRGYWN0b3J5LCBfR3N0QmluYXJ5VHlwZUZpbmRGYWN0b3J5LCBwbHVnaW5fZmVhdHVyZSk6CgkgIENvbW1lbnQgc3RydWN0cyBhbmQgcmVmb3JtYXQgdG8gZml4IHRoZSBidWlsZCAodGhhdCBzdHVmZiBzaG91bGQgZ28KCSAgaW50byBhIHByaXYuIGhlYWRlcikuCgoyMDA3LTA0LTI1IDExOjQ0OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogUmVmYWN0b3Igc28gdGhhdCB3ZSBjYW4gaW1wbGVtZW50IG11bHRpcGxlIGZlYXR1cmVzLiBBZGQgc3VwcG9ydCBmb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIFJlZmFjdG9yIHNvIHRoYXQgd2UgY2FuIGltcGxlbWVudCBtdWx0aXBsZSBmZWF0dXJlcy4gQWRkIHN1cHBvcnQgZm9yCgkgIFR5cGVGaW5kRmFjdG9yeSBmZWF0dXJlcy4KCjIwMDctMDQtMjQgMDY6MTQ6MzUgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8UGV0ZXIuS2plbGxlcnN0ZWR0QGF4aXMuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggQU1fQ09ORElUSU9OQUwoR1NUX0RJU0FCTEVfR1NUX0RFQlVHLC4uLikgYW5kIHVwZGF0ZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8UGV0ZXIuS2plbGxlcnN0ZWR0QGF4aXMuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IEFNX0NPTkRJVElPTkFMKEdTVF9ESVNBQkxFX0dTVF9ERUJVRywuLi4pIGFuZCB1cGRhdGUgY29tbWVudC4KCjIwMDctMDQtMjMgMDc6MzA6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGJ1aWxkIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRml4IGJ1aWxkIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCjIwMDctMDQtMjEgMTM6Mjc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIHN0cmVhbWluZyBoYXMgZmluaXNoZWQgYmVmb3JlIGNhbGxpbmcgdGhlIDo6c3RvcCgpIHZmdW5jLCBzaW5jZSB0aGF0IHZmdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICBNYWtlIHN1cmUgc3RyZWFtaW5nIGhhcyBmaW5pc2hlZCBiZWZvcmUgY2FsbGluZyB0aGUgOjpzdG9wKCkgdmZ1bmMsCgkgIHNpbmNlIHRoYXQgdmZ1bmMgbWlnaHQgY2xlYXIgc3RhdGUgd2hpY2ggaXMgYmVpbmcgdXNlZCBpbiB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4gVGhpcyBmaXhlcyBhIHJhY2UgdGhhdCBjYXVzZWQgY3Jhc2hlcyBpbgoJICBhdWRpb3Jlc2FtcGxlIHdoZW4gc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lICgjNDIwMTA2KS4KCjIwMDctMDQtMjAgMDg6NTM6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFRoYXQgd2FzIG9uZSBieXRlIG1pc3NpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFRoYXQgd2FzIG9uZSBieXRlIG1pc3NpbmcuCgoyMDA3LTA0LTIwIDA4OjM5OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICAybmQgYXR0ZW1wdCB0byBoYXZlIGEgeG1sLWxlc3MgYnVpbGQgYXMgYSBqb2luZWQgZWZmb3J0IG9mICM0MTMxMjMgYW5kICM0MjE0ODAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaWduYWxfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgMm5kIGF0dGVtcHQgdG8gaGF2ZSBhIHhtbC1sZXNzIGJ1aWxkIGFzIGEgam9pbmVkIGVmZm9ydCBvZiAjNDEzMTIzCgkgIGFuZCAjNDIxNDgwLgoKMjAwNy0wNC0yMCAwODoyMToxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6IEFkZGVkIG9wZW4gaXNzdWVzL3Rob3VnaHRzIHRvIGRyYWZ0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgQWRkZWQgb3BlbiBpc3N1ZXMvdGhvdWdodHMgdG8gZHJhZnQuCgoyMDA3LTA0LTE5IDE0OjMyOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvOiBVcGRhdGUgdGhlIHByZWJ1aWxkIHBhcnNlciBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgVXBkYXRlIHRoZSBwcmVidWlsZCBwYXJzZXIgc291cmNlcy4KCjIwMDctMDQtMTkgMTQ6MjM6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogQW5kIG5vdyBmaXggdGhlIGJ1aWxkaW5nIG9mIHRoZSBmbGV4IHNvdXJjZXMuIE5vdyBldmVyeXRoaW5nIHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEFuZCBub3cgZml4IHRoZSBidWlsZGluZyBvZiB0aGUgZmxleCBzb3VyY2VzLiBOb3cgZXZlcnl0aGluZyBzaG91bGQKCSAgd29yayBhcyBleHBlY3RlZC4KCjIwMDctMDQtMTkgMTQ6MDY6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTm93IGhvcGVmdWxseSBmaXggdGhlIGJ1aWxkIGZhaWx1cmVzIGJ5IHNldHRpbmcgcHJvcGVyIHJ1bGUgZGVwZW5kZW5jaWVzIGFuZCBtb3ZpbmcgaW5zdGVhZCBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE5vdyBob3BlZnVsbHkgZml4IHRoZSBidWlsZCBmYWlsdXJlcyBieSBzZXR0aW5nIHByb3BlciBydWxlCgkgIGRlcGVuZGVuY2llcyBhbmQgbW92aW5nIGluc3RlYWQgb2YgY29weWluZy4KCjIwMDctMDQtMTkgMTA6NDM6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBUb3RhbCBsaWNlbnNpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5nbnVwbG90OgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmdudXBsb3Q6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLnNjbToKCSAgVG90YWwgbGljZW5zaWZpY2F0aW9uLgoKMjAwNy0wNC0xOSAxMDoyMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggdGhlIGJ1aWxkIGJ5IGNvcnJlY3RpbmcgdGhlIHJ1bGUgdGhhdCBnYXZlIHdyb25nIGZpbGVzIHRvIGZsZXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IHRoZSBidWlsZCBieSBjb3JyZWN0aW5nIHRoZSBydWxlIHRoYXQgZ2F2ZSB3cm9uZyBmaWxlcyB0byBmbGV4LgoKMjAwNy0wNC0xOSAwODo0MDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IENoYW5nZSBsaWNlbmNlIHRvIExHUEwgYXMgZ3JhbnRlZCBieSBCZW5qYW1pbiBhbmQgQW5keS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIENoYW5nZSBsaWNlbmNlIHRvIExHUEwgYXMgZ3JhbnRlZCBieSBCZW5qYW1pbiBhbmQgQW5keS4KCjIwMDctMDQtMTkgMDY6MTg6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogQWRkIGNvcnJlY3QgZ3JhbW1hci50YWIuaCBkZXBlbmRlbmN5IGlmIGNvbXBpbGluZyB3aXRob3V0IG5ldyBlbm91Z2ggZmxleC4gRml4ZXMgIzQzMTE1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBBZGQgY29ycmVjdCBncmFtbWFyLnRhYi5oIGRlcGVuZGVuY3kgaWYgY29tcGlsaW5nIHdpdGhvdXQgbmV3IGVub3VnaAoJICBmbGV4LiBGaXhlcyAjNDMxMTUwLgoKMjAwNy0wNC0xOCAxMzozNDo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggdHlwbyBhbmQgdXNlIG91dGRhdGVkIHNvdXJjZXMgaWYgdGhlIGZsZXgvYmlzb24gc291cmNlcyBhcmUgbmV3ZXIgdGhhbiB0aGUgcHJlZ2VuZXJhdGVkIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IHR5cG8gYW5kIHVzZSBvdXRkYXRlZCBzb3VyY2VzIGlmIHRoZSBmbGV4L2Jpc29uIHNvdXJjZXMgYXJlIG5ld2VyCgkgIHRoYW4gdGhlIHByZWdlbmVyYXRlZCBvbmVzIGJ1dCBmbGV4IGlzIHRvbyBvbGQuIFByaW50IGEgd2FybmluZyBpbgoJICB0aGF0IGNhc2UuIFRoaXMgc2hvdWxkIGZpeCB0aGUgYnVpbGQgb24gdGhlIGJ1aWxkIGJvdC4KCjIwMDctMDQtMTggMTI6MzQ6NTEgKzAwMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS86IE1ha2UgdGhlIHBhcnNlciByZWVudHJhbnQgYW5kIHJlY3Vyc2l2ZWx5IGNhbGxhYmxlLiBUaGlzIHJlcXVpcmVzIGZsZXggPj0gMi41LjMxLCBmb3Igb2xkZXIgdmVyc2lvbnMgcHJlZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUgZG90IGx1cmVhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBNYWtlIHRoZSBwYXJzZXIgcmVlbnRyYW50IGFuZCByZWN1cnNpdmVseSBjYWxsYWJsZS4gVGhpcyByZXF1aXJlcyBmbGV4CgkgID49IDIuNS4zMSwgZm9yIG9sZGVyIHZlcnNpb25zIHByZWdlbmVyYXRlZCBzb3VyY2VzIGFyZSB1c2VkIGFzIHdlCgkgIGNhbid0IGJ1bXAgdGhlIGJ1aWxkIGRlcGVuZGVuY3kuIEZpbmFsbHkgZml4ZXMgIzM0OTE4MC4KCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBEcm9wIHRoZSBIQVZFX01UX1NBVkVfRkxFWCAjaWZkZWZzIGFzIHdlIGFsd2F5cyB1c2UgYSBuZXcgZW5vdWdoIGZsZXgKCSAgbm93IGFueXdheS4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6IChfX2dzdF9wYXJzZV9zdHJkdXApLAoJICAoX19nc3RfcGFyc2Vfc3RyZnJlZSksIChfX2dzdF9wYXJzZV9saW5rX25ldyksCgkgIChfX2dzdF9wYXJzZV9saW5rX2ZyZWUpLCAoX19nc3RfcGFyc2VfY2hhaW5fbmV3KSwKCSAgKF9fZ3N0X3BhcnNlX2NoYWluX2ZyZWUpLCAoU0VUX0VSUk9SKSwgKFlZUFJJTlRGKSwKCSAgKGdzdF9wYXJzZV9lbGVtZW50X3NldCksIChnc3RfcGFyc2VfZnJlZV9saW5rKSwKCSAgKGdzdF9wYXJzZV9mb3VuZF9wYWQpLCAoZ3N0X3BhcnNlX3BlcmZvcm1fZGVsYXllZF9saW5rKSwKCSAgKGdzdF9wYXJzZV9wZXJmb3JtX2xpbmspLCAoeXl0bmFtZXJyKSwgKHl5c3ludGF4X2Vycm9yKSwgKHl5ZXJyb3IpLAoJICAoX2dzdF9wYXJzZV9sYXVuY2gpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6IChQUklOVCksICh5eV9nZXRfbmV4dF9idWZmZXIpLAoJICAoeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKSwgKHl5X3RyeV9OVUxfdHJhbnMpLCAoaW5wdXQpLAoJICAoX2dzdF9wYXJzZV95eXJlc3RhcnQpLCAoX2dzdF9wYXJzZV95eV9zd2l0Y2hfdG9fYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfbG9hZF9idWZmZXJfc3RhdGUpLCAoX2dzdF9wYXJzZV95eV9jcmVhdGVfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfZGVsZXRlX2J1ZmZlciksIChfZ3N0X3BhcnNlX3l5X2luaXRfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfZmx1c2hfYnVmZmVyKSwgKF9nc3RfcGFyc2VfeXlwdXNoX2J1ZmZlcl9zdGF0ZSksCgkgIChfZ3N0X3BhcnNlX3l5cG9wX2J1ZmZlcl9zdGF0ZSksCgkgIChfZ3N0X3BhcnNlX3l5ZW5zdXJlX2J1ZmZlcl9zdGFjayksIChfZ3N0X3BhcnNlX3l5X3NjYW5fYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfc2Nhbl9zdHJpbmcpLCAoX2dzdF9wYXJzZV95eV9zY2FuX2J5dGVzKSwKCSAgKHl5X2ZhdGFsX2Vycm9yKSwgKF9nc3RfcGFyc2VfeXlnZXRfZXh0cmEpLAoJICAoX2dzdF9wYXJzZV95eWdldF9saW5lbm8pLCAoX2dzdF9wYXJzZV95eWdldF9jb2x1bW4pLAoJICAoX2dzdF9wYXJzZV95eWdldF9pbiksIChfZ3N0X3BhcnNlX3l5Z2V0X291dCksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2xlbmcpLCAoX2dzdF9wYXJzZV95eWdldF90ZXh0KSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfZXh0cmEpLCAoX2dzdF9wYXJzZV95eXNldF9saW5lbm8pLAoJICAoX2dzdF9wYXJzZV95eXNldF9jb2x1bW4pLCAoX2dzdF9wYXJzZV95eXNldF9pbiksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X291dCksIChfZ3N0X3BhcnNlX3l5Z2V0X2RlYnVnKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfZGVidWcpLCAoX2dzdF9wYXJzZV95eWdldF9sdmFsKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfbHZhbCksIChfZ3N0X3BhcnNlX3l5bGV4X2luaXQpLAoJICAoeXlfaW5pdF9nbG9iYWxzKSwgKF9nc3RfcGFyc2VfeXlsZXhfZGVzdHJveSksICh5eV9mbGV4X3N0cm5jcHkpLAoJICAoeXlfZmxleF9zdHJsZW4pLCAoX2dzdF9wYXJzZV95eWFsbG9jKSwgKF9nc3RfcGFyc2VfeXlyZWFsbG9jKSwKCSAgKF9nc3RfcGFyc2VfeXlmcmVlKToKCSAgSWYgdGhlIGluc3RhbGxlZCBmbGV4IHZlcnNpb24gaXMgdG9vIG9sZCB1c2UgcHJlLWdlbmVyYXRlZCBwYXJzZXIKCSAgc291cmNlcy4gVGhlc2UgcHJlLWdlbmVyYXRlZCBwYXJzZXIgc291cmNlcyBhcmUgYWx3YXlzIHVwZGF0ZWQgd2hlbgoJICB0aGUgYWN0dWFsIGZsZXgvYmlzb24gc291cmNlcyBjaGFuZ2UgYnV0IHJlcXVpcmUgZXZlcnlib2R5IHdobyB3YW50cwoJICB0byBjaGFuZ2Ugc29tZXRoaW5nIGluIHRoZSBwYXJzZXIgdG8gaGF2ZSBmbGV4ID49IDIuNS4zMSBpbnN0YWxsZWQuCgoyMDA3LTA0LTE4IDEwOjU4OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlIC0tZGlzYWJsZS1ubHMgdG8gd29yawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vbTQvZ3N0LWdldHRleHQubTQ6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBNYWtlIC0tZGlzYWJsZS1ubHMgdG8gd29yawoKMjAwNy0wNC0xNyAxNjoxMjo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB0aGF0IGJyb2tlIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHRoYXQgYnJva2UgdGhlIGJ1aWxkLgoKMjAwNy0wNC0xNyAxNDozNjozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIE1BTlBBVEggZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNQU5QQVRIIGZpeAoKMjAwNy0wNC0xNyAxMDo0Njo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRHJvcCBsaWJ4bWwyIGRlcGVuZGVuY3kgd2hlbiBidWlsZGluZyB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBEcm9wIGxpYnhtbDIgZGVwZW5kZW5jeSB3aGVuIGJ1aWxkaW5nIHdpdGgKCSAgLS1lbmFibGUtYmluYXJ5LXJlZ2lzdHJ5IC0tZGlzYWJsZS1sb2Fkc2F2ZQoKMjAwNy0wNC0xNiAyMTo0MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZml4IHRoZSByZWxlYXNlIGRhdGUgaW4gdGhlIGRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRoZSByZWxlYXNlIGRhdGUgaW4gdGhlIGRvYXAgZmlsZQoKMjAwNy0wNC0xNiAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBSZW1vdmUgdW5uZWNlc3NhcnkgPHN5cy9tbWFuLmg+IGluY2x1ZGUgd2hpY2ggYnJva2UgdGhlIHdpbjMyIGJ1aWxkIHdpdGggTWluZ1c7IG1vdmUgaW5jbHVkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IDxzeXMvbW1hbi5oPiBpbmNsdWRlIHdoaWNoIGJyb2tlIHRoZSB3aW4zMiBidWlsZAoJICB3aXRoIE1pbmdXOyBtb3ZlIGluY2x1ZGVzIGZyb20gaGVhZGVyIGZpbGUgdG8gLmMgZmlsZSwgZXZlbiBpZiB0aGUKCSAgaGVhZGVyIGZpbGUgaXNuJ3QgaW5zdGFsbGVkOyB1c2UgZ19zdHJlcnJvcigpIHdoZXJlIFVURi04IHN0cmluZ3MKCSAgYXJlIGV4cGVjdGVkLCBzdWNoIGFzIGluIEdTVF9ERUJVRyBtZXNzYWdlcy4KCjIwMDctMDQtMTMgMTU6MTU6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogUmVtb3ZlIGJvZ3VzIGFkZGl0aW9uIGZvciBBUEkgSSBkaWRuJ3QgZW5kIHVwIGtlZXBpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSBib2d1cyBhZGRpdGlvbiBmb3IgQVBJIEkgZGlkbid0IGVuZCB1cCBrZWVwaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNZW50aW9uIFNpbmNlOiAwLjEwLjEzIGluIHRoZSBkb2N1bWVudGF0aW9uLgoJICBBZGQgdGhlIEFQSSBrZXl3b3JkIHRvIHRoZSBwcmV2aW91cyBDaGFuZ2VMb2cgZW50cnkuCgoyMDA3LTA0LTEzIDE0OjE4OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFsbG93IGJhc2VzcmMgZGVyaXZlZCBjbGFzc2VzIHRvIGV4ZWN1dGUgc2Vla3MgaW4gb3RoZXIgZm9ybWF0cyBieSBwcm92aWRpbmcgYSBwcmVwYXJlX3NlZWtfc2VnbWVudCB2bWV0aG9kLiBTdWItY2xhcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3ByZXBhcmVfc2Vla19zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBbGxvdyBiYXNlc3JjIGRlcml2ZWQgY2xhc3NlcyB0byBleGVjdXRlIHNlZWtzIGluIG90aGVyIGZvcm1hdHMKCSAgYnkgcHJvdmlkaW5nIGEgcHJlcGFyZV9zZWVrX3NlZ21lbnQgdm1ldGhvZC4gU3ViLWNsYXNzZXMgY2FuIGNob29zZQoJICB0byBwcmVwYXJlIHRoZSBHc3RTZWdtZW50IGluIGFueSBmb3JtYXQgdGhhdCB0aGVpciBwZXJmb3JtX3NlZWsgbWV0aG9kCgkgIHdpbGwgYmUgYWJsZSB0byB1bmRlcnN0YW5kLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyB0aGUKCSAgb2xkIGJlaGF2aW91ciBvZiBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgdGhlIHNlZWsgb2Zmc2V0cyB0byB0aGUKCSAgY29uZmlndXJlZCBuYXRpdmUgZm9ybWF0LgoKMjAwNy0wNC0xMyAxMTo1MzowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBvdXRwdXQgdGhlIHNhbWUgZGVidWcgc3RhdGVtZW50IHR3aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOgoJICBEb24ndCBvdXRwdXQgdGhlIHNhbWUgZGVidWcgc3RhdGVtZW50IHR3aWNlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfdHJ5X3RvX21lcmdlX3VwKSwKCSAgKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBPcHRpbWlzZSB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGJ1ZmZlcnMgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIHRoYXQKCSAgY2FuIGJlIGpvaW5lZCBxdWlja2x5IChiZWNhdXNlIHRoZXkncmUgY29udGlndW91cyBzdWItYnVmZmVycykgYnkKCSAgbWVyZ2luZyB0aGVtIHRvZ2V0aGVyIHJhdGhlciB0aGFuIGNvcHlpbmcgZGF0YSBvdXQgaW50byBuZXcgbWVtb3J5LgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBGaXggYSBsZWFrIGluIGFuIGVycm9yIHBhdGggZm9yIHBhcnNlX2xhdW5jaCwgYW5kIGFkZCBhIGNoZWNrCgkgIGZvciBpdCB0byB0aGUgdGVzdHN1aXRlLgoKMjAwNy0wNC0xMyAxMToyMDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWxlYXNpbmcgYSBwYWQgLSBnc3RfcGFkX3NldF9hY3RpdmUgbWF5IHRyeSBhbmQgdGFrZSB0aGUgbXVsdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpOgoJICBEb24ndCBkZWFkbG9jayB3aGVuIHJlbGVhc2luZyBhIHBhZCAtIGdzdF9wYWRfc2V0X2FjdGl2ZSBtYXkgdHJ5CgkgIGFuZCB0YWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgdG9vLgoKMjAwNy0wNC0xMiAxMjo1OTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci4qOiBBUEk6IGFkZCBHU1RfQ09SRV9FUlJPUl9ESVNBQkxFRCAoIzM5MjgwNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQVBJOiBhZGQgR1NUX0NPUkVfRVJST1JfRElTQUJMRUQgKCMzOTI4MDQpLgoKMjAwNy0wNC0xMiAxMDozMjozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGRvbid0IGdldCBlbXB0eSBwYXRocyBvbiB0aGUgUEFUSCB2YXJpYWJsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb24ndCBnZXQgZW1wdHkgcGF0aHMgb24gdGhlIFBBVEggdmFyaWFibGVzCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2lzX2FjdGl2ZSwgZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIERvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIHRlcm1pbmFsIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMuCgoyMDA3LTA0LTA5IDExOjU5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCjIwMDctMDQtMDkgMDg6MTc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiBlZGl0b3Igd2lkdGggb2YgODQgY2hhcmFjdGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gZWRpdG9yIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMKCjIwMDctMDQtMDYgMTE6NDg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogT25seSB0cnkgdG8gc2VsZWN0IGEgZGlmZmVyZW50IHBpcGVsaW5lIGNsb2NrIHdoZW4gd2Ugd2VudCBiYWNrIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAocmVzZXRfc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIE9ubHkgdHJ5IHRvIHNlbGVjdCBhIGRpZmZlcmVudCBwaXBlbGluZSBjbG9jayB3aGVuIHdlIHdlbnQgYmFjayB0bwoJICBQQVVTRUQgYW5kIG5vdCB3aGVuIHdlIG1lcmVseSBnb3QgZmx1c2hlZC4KCjIwMDctMDQtMDUgMTY6MTc6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogZnJhY3Rpb25zIGFyZSBiZXR0ZXIgc3VwcG9ydGVkIGluIGdzdHJlYW1lciB0aGFuIHJhY3Rpb25zLCBzbyBzdWdnZXN0IHVzaW5nIHRob3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGZyYWN0aW9ucyBhcmUgYmV0dGVyIHN1cHBvcnRlZCBpbiBnc3RyZWFtZXIgdGhhbiByYWN0aW9ucywgc28KCSAgc3VnZ2VzdCB1c2luZyB0aG9zZS4KCjIwMDctMDQtMDUgMTM6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vbmwucG86CgkgIHVwZGF0ZSBkdXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGR1dGNoCgoyMDA3LTA0LTA1IDEzOjQ2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU3VibWl0dGVkIGJ5OiBNb2dlbnMgSmFlZ2VyIDxtb2dlbnNAamFlZ2VyLnRmPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZGEucG86CgkgIEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDQtMDUgMTE6MTY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBsZWFrIGNhdXNlZCB3aGVuIHJlZnVzaW5nIG5ld3NlZ21lbnQgYWZ0ZXIgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgRml4IGxlYWsgY2F1c2VkIHdoZW4gcmVmdXNpbmcgbmV3c2VnbWVudCBhZnRlciBFT1MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfaW5pdCksIChnc3RfZmFrZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpLAoJICAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpLCAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIG1ha2UgdGhlIGVsZW1lbnQgZ2VuZXJhdGUgRU9TIGFmdGVyIGEKCSAgY29uZmlndXJhYmxlIGFtb3VudCBvZiBidWZmZXJzLgoJICBBUEk6IGZha2VzaW5rOjpudW0tYnVmZmVycyBwcm9wZXJ0eS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBGaXggR3N0QnVzIGxlYWsgaW4gdGVzdC4KCSAgVGVzdCBmb3IgZmFrZXNpbmsgbnVtLWJ1ZmZlcnMuCgoyMDA3LTA0LTA1IDEwOjEwOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBhY2NlcHQgYW55dGhpbmcgYWZ0ZXIgYW4gRU9TLCByZXR1cm4gVU5FWFBFQ1RFRCBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgYWNjZXB0IGFueXRoaW5nIGFmdGVyIGFuIEVPUywgcmV0dXJuIFVORVhQRUNURUQgaW5zdGVhZC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIG5ldyBFT1MgYmVoYXZpb3VyLgoKMjAwNy0wNC0wNSAxMDowODoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE1ha2UgcGFkdGVtcGxhdGVzIGFsc28gd29yayB3aGVuIHRoZXkgZG9uJ3QgY29udGFpbiAlcyBvciAlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCk6CgkgIE1ha2UgcGFkdGVtcGxhdGVzIGFsc28gd29yayB3aGVuIHRoZXkgZG9uJ3QgY29udGFpbiAlcyBvciAlZC4KCjIwMDctMDQtMDUgMTA6MDY6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXByb3ZlIF9hZGp1c3RfdW5sb2NrZWQoKSBzbyB0aGF0IGl0IG92ZXJmbG93cyBsZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksCgkgIChnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQpLCAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEltcHJvdmUgX2FkanVzdF91bmxvY2tlZCgpIHNvIHRoYXQgaXQgb3ZlcmZsb3dzIGxlc3MuCgkgIEFkZCBnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQgdG8gY29udmVydCBmcm9tIGV4dGVybmFsIHRpbWUgdG8KCSAgaW50ZXJuYWwgdGltZSBiYXNlZCBvbiBjYWxpYnJhdGlvbi4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgQVBJOiBHc3RDbG9jazo6Z3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKCkKCjIwMDctMDQtMDMgMTE6MDI6NDEgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRGVhY3RpdmF0ZSBwYWRzIGFuZCBmcmVlIEdzdFNpbmdsZVF1ZXVlIHdpdGggZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKCkgd2hlbiByZWxlYXNpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpOgoJICBEZWFjdGl2YXRlIHBhZHMgYW5kIGZyZWUgR3N0U2luZ2xlUXVldWUgd2l0aCBnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUoKQoJICB3aGVuIHJlbGVhc2luZyBzaW5rIHBhZC4gRml4ZXMgIzQyNTQwMC4KCjIwMDctMDQtMDIgMTQ6NDg6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6IE1vcmUgd29yayBvbiBwcm9wb3NhbCBmb3IgbmV3IGNvcmUgYXBpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICBNb3JlIHdvcmsgb24gcHJvcG9zYWwgZm9yIG5ldyBjb3JlIGFwaS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBUEk6IEdTVF9CQVNFX1RSQU5TRk9STV9MT0NLL1VOTE9DSyBhZGRlZAoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAob25fb2JqZWN0X2NvbnRyb2xsZWRfcHJvcGVydHlfY2hhbmdlZCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgTGVzcyB2ZXJib3NlIGxvZ2dpbmcgYWRkIGRvY3MgZm9yIHVuaW1wbGVtZW50ZWQgcGFydHMgYW5kIGNvcnJlY3RseQoJICByZXR1cm4gd2hlbiB1c2luZyB1bmF2YWlsYWJsZSBwYXJ0cy4KCjIwMDctMDMtMjkgMTY6MDQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1vdmUgYWxsIHRoZSBkZWJ1ZyB0byB0aGUgQ0xPQ0sgY2F0ZWdvcnksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aCB0aGUgY2xvY2sgb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgTW92ZSBhbGwgdGhlIGRlYnVnIHRvIHRoZSBDTE9DSyBjYXRlZ29yeSwgYW5kIGFzc29jaWF0ZSBpdCB3aXRoCgkgIHRoZSBjbG9jayBvYmplY3QuCgoyMDA3LTAzLTI5IDE1OjUzOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBNYWtlIHRha2VfYnVmZmVyIGEgYml0IHF1aWNrZXIgYnkgcmVtb3ZpbmcgcmVkdW5kYW50IGNoZWNrcyBjYXVzZWQgYnkgY2FsbGluZyBnc3RfYWRhcHRlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgTWFrZSB0YWtlX2J1ZmZlciBhIGJpdCBxdWlja2VyIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBjaGVja3MKCSAgY2F1c2VkIGJ5IGNhbGxpbmcgZ3N0X2FkYXB0ZXJfdGFrZS4KCjIwMDctMDMtMjggMTg6Mzg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgbGVhayBHQ29uZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUpOgoJICBEb24ndCBsZWFrIEdDb25kLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAoc2V0dXBfbXVsdGlxdWV1ZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgQWRkIHNvbWUgZGVhZCBzaW1wbGUgdW5pdCB0ZXN0cyBmb3IgdGhlICdtdWx0aXF1ZXVlJyBlbGVtZW50CgkgIChzb21lIGJpdHMgZG9uJ3Qgd29yayB5ZXQgYW5kIGFyZSBkaXNhYmxlZCBmb3Igbm93KS4KCjIwMDctMDMtMjggMTg6MjU6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBNYWtlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGNyZWF0ZSByZXF1ZXN0IHBhZHMgb25seSBmb3IgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIGFuZCBub3QgZm9yLCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19nZXRfcmVxdWVzdF9wYWRfdGVtcGxhdGUpOgoJICBNYWtlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGNyZWF0ZSByZXF1ZXN0IHBhZHMgb25seSBmb3IKCSAgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIGFuZCBub3QgZm9yLCBzYXksIHNvbWV0aW1lcyBwYWQgdGVtcGxhdGVzLgoKMjAwNy0wMy0yOCAxMzo0NDo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgZXhhbXBsZSB0aGF0IG5lZWRzIG1vcmUgdGhpbmtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGV4YW1wbGUgdGhhdCBuZWVkcyBtb3JlIHRoaW5raW5nLgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIE1vcmUgdGhvdWdodHMgYWJvdXQgd3RyYXBwZXIgcGx1Z2lucy4KCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIE1vcmUgZGVzaWduIHdvcmsuCgoyMDA3LTAzLTI1IDE1OjMzOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE9ubHkgcHVzaCB0aGUgc2VnbWVudCBldmVudHMgaW4gdGhlIFBMQVlJTkcgc3RhdGUgZm9yIGxpdmUgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgT25seSBwdXNoIHRoZSBzZWdtZW50IGV2ZW50cyBpbiB0aGUgUExBWUlORyBzdGF0ZSBmb3IgbGl2ZSBzb3VyY2VzLgoKMjAwNy0wMy0yMyAxNzo1MjoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogTW9kaWZ5IHRoZSBjbG9jayBkaXN0cmlidXRpb24gcGF0aCBpbiBQQVVTRUQtPlBMQVlJTkcgc28gdGhhdCB3ZSBuZXZlciBhdHRlbXB0IHRvIGNob29zZSBhIG5ldyBjbG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgTW9kaWZ5IHRoZSBjbG9jayBkaXN0cmlidXRpb24gcGF0aCBpbiBQQVVTRUQtPlBMQVlJTkcgc28gdGhhdCB3ZQoJICBuZXZlciBhdHRlbXB0IHRvIGNob29zZSBhIG5ldyBjbG9jayB1bmxlc3Mgd2UncmUgYWN0dWFsbHkgbGVhdmluZwoJICB0aGUgUEFVU0VEIHN0YXRlIGZvciB0aGUgZmlyc3QgdGltZS4gVGhpcyBwcmV2ZW50cyBjaG9vc2luZyBhCgkgIGRpZmZlcmVudCBjbG9jayB3aGVuIHRoZSBzdGF0ZV9jaGFuZ2UgZ2V0cyBjYWxsZWQgZm9yIGEgMm5kIHRpbWUgZHVlCgkgIHRvIHNvbWUgZWxlbWVudCBkb2luZyBhbiBhc3luYyBzdGF0ZSBjaGFuZ2UuCgoyMDA3LTAzLTIyIDE4OjI4OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBsYXN0IGNvbW1pdC4gVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpOgoJICBSZXZlcnQgbGFzdCBjb21taXQuIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAwNy0wMy0yMiAxNzoxMjoyMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBDaGVjayBpbiBzZXRfY2FwcyBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBwYWQgYW5kIHJlbW92ZSB0d28gZnVuY3Rpb25zIHRoYXQgYXJlIHJlZHVuZGFudCBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpOgoJICBDaGVjayBpbiBzZXRfY2FwcyBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBwYWQgYW5kIHJlbW92ZQoJICB0d28gZnVuY3Rpb25zIHRoYXQgYXJlIHJlZHVuZGFudCBub3cuIEZpeGVzICM0MjE1NDMuCgoyMDA3LTAzLTIyIDEyOjMxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IFVucmVmIHNvbWUgbW9yZSB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKG1peGVkX3RocmVhZCksIChtaXhlZF9hc3luY19jYiksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBVbnJlZiBzb21lIG1vcmUgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCjIwMDctMDMtMjIgMTE6NTg6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogRml4IGFub3lpbmcgcmVncmVzc2lvbiB0aGF0IHN1cnZpdmVkIGEgZmV3IHJlbGVhc2VzLiBXaGVuIGFkZGluZyBhbiBhc3luYyBlbnRyeSB3aGlsZSBibG9ja2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSk6CgkgIEZpeCBhbm95aW5nIHJlZ3Jlc3Npb24gdGhhdCBzdXJ2aXZlZCBhIGZldyByZWxlYXNlcy4gV2hlbiBhZGRpbmcgYW4KCSAgYXN5bmMgZW50cnkgd2hpbGUgYmxvY2tpbmcgb24gYSBzeW5jIGVudHJ5LCB0aGUgc3luYyBlbnRyeSB3aWxsIHVuYmxvY2sKCSAgYnV0IHN0aWxsIGJlIGJ1c3ksIHNvIGl0IHNob3VsZCBjb250aW51ZSB0byB3YWl0IGluc3RlYWQgb2YgcmV0dXJuaW5nCgkgIF9CVVNZIHRvIHRoZSBhcHAuCgkgIEFkZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAobWl4ZWRfdGhyZWFkKSwKCSAgKG1peGVkX2FzeW5jX2NiKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgdGhpcy4KCjIwMDctMDMtMjIgMTE6MTk6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIGVycm9ycyBmcm9tIHRoZSBjbG9jayBzeW5jIGJldHRlciwgb25seSBVTlNDSEVEVUxFRCBpbmRpY2F0ZXMgYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBIYW5kbGUgZXJyb3JzIGZyb20gdGhlIGNsb2NrIHN5bmMgYmV0dGVyLCBvbmx5IFVOU0NIRURVTEVEIGluZGljYXRlcyBhCgkgIFdST05HX1NUQVRFIGFuZCBjYW4gc2lsZW50bHkgcGF1c2UgdGhlIHRhc2suIEFsbCBvdGhlciBjYXNlcyBzaG91bGQKCSAgZXJyb3Igb3V0LgoKMjAwNy0wMy0yMiAwODoyMzo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHBvc3NpYmxlIGRlYWRsb2NrIGlmIHBhZCBldmVudGZ1bmMgaXMgbm90IHNwZWNpZmllZC4gIEZpeGVzICM0MjExNzcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogPHN5cmphbGEgYXQgc2NpIGRvdCBmaT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpZiBwYWQgZXZlbnRmdW5jIGlzIG5vdCBzcGVjaWZpZWQuICBGaXhlcyAjNDIxMTc3LgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDMtMjEgMTg6MTM6NDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHNvbWUgZXJyb3JzIGluIHRoZSB0eXBlZmluZGluZyBkb2NzIHBvaW50ZWQgb3V0IG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggc29tZSBlcnJvcnMgaW4gdGhlIHR5cGVmaW5kaW5nIGRvY3MgcG9pbnRlZCBvdXQgb24gaXJjLgoKMjAwNy0wMy0yMSAxNzo1MDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2xhcmlmeSBGSVhNRSBjb21tZW50IGluIHRoZSBmYWNlIG9mIGhhdmluZyBhZGRlZCB1bmxvY2tfc3RvcCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBDbGFyaWZ5IEZJWE1FIGNvbW1lbnQgaW4gdGhlIGZhY2Ugb2YgaGF2aW5nIGFkZGVkIHVubG9ja19zdG9wKCkKCjIwMDctMDMtMjEgMTE6NTI6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFByZXBhcmUgZm9yIHJlbGVhc2Ugd2hlcmUgd2Ugd2FybiBhZ2FpbnN0IHBvc3NpYmxlIGFwcCBicmVha2FnZSBpbiB0aGUgY2FzZSBvZiBsaXZlIHBpcGVsaW5lcyBhbG9uZyB3aXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgUHJlcGFyZSBmb3IgcmVsZWFzZSB3aGVyZSB3ZSB3YXJuIGFnYWluc3QgcG9zc2libGUgYXBwIGJyZWFrYWdlIGluIHRoZQoJICBjYXNlIG9mIGxpdmUgcGlwZWxpbmVzIGFsb25nIHdpdGggYW4gZW52IHZhciB0byBlbmFibGUvZGlzYWJsZSBsaXZlCgkgIHByZXJvbGwgbW9kZSAoR1NUX0NPTVBBVD1bbm8tXWxpdmUtcHJlcm9sbCkuCgoyMDA3LTAzLTIwIDE0OjI1OjE1ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6IFNvIHdlIHNob3VsZCB1c2UgY29ycmVjdCBjb25zdGFudHMgZm9yIGNoZWNraW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOgoJICBTbyB3ZSBzaG91bGQgdXNlIGNvcnJlY3QgY29uc3RhbnRzIGZvciBjaGVja2luZyBmb3IgTm9uZSBvZmZzZXQuCgoyMDA3LTAzLTIwIDE0OjE3OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IE1lbnRpb24gdGhlIGZhY3QgdGhhdCB0aGUgbmV3bHkgc3dpdGNoZWQgZWxlbWVudCBzaG91bGQgYmUgc2V0IHRvIGF0IGxlYXN0IFBBVVNFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIE1lbnRpb24gdGhlIGZhY3QgdGhhdCB0aGUgbmV3bHkgc3dpdGNoZWQgZWxlbWVudCBzaG91bGQgYmUgc2V0IHRvIGF0CgkgIGxlYXN0IFBBVVNFRC4KCjIwMDctMDMtMjAgMTA6MjM6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb21waWxhdGlvbiB3aXRoIHJlZ2lzdHJ5IGRpc2FibGVkIGFzIHNwb3R0ZWQgYnkgU2F1ci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggY29tcGlsYXRpb24gd2l0aCByZWdpc3RyeSBkaXNhYmxlZCBhcyBzcG90dGVkIGJ5IFNhdXIuCgoyMDA3LTAzLTIwIDA5OjQ2OjExICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0ZSB0b28gd2hlbiBzeW5jaW5nIHRoZSBlbGVtZW50IHN0YXRlIHRvIHRoZSBwYXJlbnQuIEZpeGVzICM0MjAxMzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOgoJICBMb29rIGF0IHRoZSBwZW5kaW5nIHN0YXRlIHRvbyB3aGVuIHN5bmNpbmcgdGhlIGVsZW1lbnQgc3RhdGUgdG8gdGhlCgkgIHBhcmVudC4gRml4ZXMgIzQyMDEzMy4KCjIwMDctMDMtMTkgMTU6MDE6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IEFkZCA6OnVubG9ja19zdG9wIHRvIGJhc2VzcmMgYW5kIGJhc2VzaW5rLiBUaGlzIGFsbG93cyBhbiBvcHBvcnR1bml0eSBmb3Igc3ViLWNsYXNzZXMgdG8gY29ycmVjdGx5IGNsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfZGVhY3RpdmF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCA6OnVubG9ja19zdG9wIHRvIGJhc2VzcmMgYW5kIGJhc2VzaW5rLiBUaGlzIGFsbG93cyBhbiBvcHBvcnR1bml0eQoJICBmb3Igc3ViLWNsYXNzZXMgdG8gY29ycmVjdGx5IGNsZWFyIGFueSBzdGF0ZSB0aGV5IHNldCB0cnlpbmcgdG8KCSAgdW5sb2NrLCBzdWNoIGFzIGNsZWFyaW5nIG91dCB1bmxvY2sgY29tbWFuZHMgZnJvbSBhIGNvbW1hbmQgZmQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwgKGdzdF9mZF9zaW5rX3VubG9jayksCgkgIChnc3RfZmRfc2lua191bmxvY2tfc3RvcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX3VubG9jayksIChnc3RfZmRfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKSwgKGdzdF9mZF9zcmNfZ2V0X3NpemUpLCAoZ3N0X2ZkX3NyY19kb19zZWVrKToKCSAgSW1wbGVtZW50IHVubG9ja19zdG9wIGluIGZkc3JjIGFuZCBmZHNpbmsuCgkgIEltcGxlbWVudCBzZWVraW5nIGluIGZkc3JjIHdoZW4gYSBzZWVrYWJsZSBmZCBpcyBwYXNzZWQsIGFzIGluCgkgIGdzdC1sYXVuY2gtMC4xMCBmZHNyYyAhIC4uLiAhIHh2aW1hZ2VzaW5rIDwgL3BhdGgvdG8vZmlsZQoKMjAwNy0wMy0xOSAxMjowNzozMiArMDAwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy5kYXNoLmdyb3VwLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEZpeCBwYWQtYWRkZWQgYW5kIHBhZC1yZW1vdmVkIHNpZ25hbCBzaWduYXR1cmVzIHNvIHRoYXQgdGhlIHBhZCB0eXBlIGlzIHN0YXRlZCBhcyBHU1RfVFlQRV9QQUQgaW5zdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEV2YW4gTmVtZXJzb24gPGV2YW4gYXQgY29ldXMgZGFzaCBncm91cCBkb3QgY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgRml4IHBhZC1hZGRlZCBhbmQgcGFkLXJlbW92ZWQgc2lnbmFsIHNpZ25hdHVyZXMgc28gdGhhdCB0aGUgcGFkIHR5cGUgaXMKCSAgc3RhdGVkIGFzIEdTVF9UWVBFX1BBRCBpbnN0ZWFkIG9mIEdfVFlQRV9PQkpFQ1QuIEZpeGVzICM0MTk4NTEuCgoyMDA3LTAzLTE5IDEwOjQ3OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBlbGVtZW50IGZpZWxkIGFuZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZWxlbWVudCBmaWVsZCBhbmQgbWV0aG9kLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNYWtlIGFzeW5jIHN0YXRlIGNoYW5nZXMgYSBiaXQgc21hcnRlciBieSB1c2luZyBuZXcgQVNZTkNfU1RBUlQgYW5kCgkgIEFTWU5DX0RPTkUgbWVzc2FnZXMuIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIHJ1biB0aGUgc3RhdGUKCSAgcmVjYWxjdWxhdGlvbiB0aHJlYWQuCgkgIERvbid0IGNoYW5nZSBzdGF0ZSBvZiBlbGVtZW50IHdpdGggYSBwZW5kaW5nIEFTWU5DX1NUQVJUIG1lc3NhZ2UuCgkgIERlcHJlY2F0ZSBTVEFURV9ESVJUWSBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBLZWVwIHRoZSBzdGF0ZSB0aGF0IHdhcyBsYXN0IHNldCBieSB0aGUgYXBwIGluIGEgbmV3IGVsZW1lbnQgZmllbGQuCgkgIERvbid0IGFsbG93IHN0YXRlIGNoYW5nZXMgd2hlbiBoYW5kbGluZyBhbiBlbGVtZW50IGV2ZW50LgoJICBQb3N0IEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzLgoJICBDaGFuZ2UgbG9zdF9zdGF0ZSBzbyB0aGF0IHdlIGdvIHRvIFBBVVNFRCBhbmQgd2FpdCBmb3IgdGhlIHBhcmVudCB0byBzZXQKCSAgdXMgdG8gUExBWUlORyBhZ2FpbiAoc28gbGF0ZW5jeSBjYWxjdWxhdGlvbiBjYW4gYmUgcGVyZm9ybWVkKQoJICBFeHBvcnQgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKCkgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gdXNlIGl0LgoJICBBUEk6IGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpCgkgIEFQSTogR1NUX1NUQVRFX1RBUkdFVAoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAocmVzZXRfc3RyZWFtX3RpbWUpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfaGFuZGxlX21lc3NhZ2UpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBVc2luZyB0aGUgbmV3IEFTWU5DX1NUQVJUIG1lc3NhZ2Ugd2UgY2FuIHJlc2V0IHRoZSBiYXNlX3RpbWUgd2hlbgoJICBuZWVkZWQuIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgYmFzZV90aW1lIHJlZGlzdHJpYnV0aW9uIGluCgkgIGZsdXNoaW5nIHNlZWtzIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGUgZXhwbGljaXQgc2VlayBoYW5kbGluZy4KCSAgUGVyZm9ybSBsYXRlbmN5IHF1ZXJ5IGFuZCBjb25maWd1cmF0aW9uIHdoZW4gZ29pbmcgdG8gUExBWUlORy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUG9zdCBuZXcgQVNZTkNfU1RBUlQvQVNZTkNfRE9ORSBtZXNzYWdlcy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0ZXN0IGJlY2F1c2UgdGhlIGJpbiB3aWxsIG5vdCBzZXQgdGhlIGFzeW5jIGVsZW1lbnQgdG8gUExBWUlORyByaWdodAoJICBhd2F5LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9hc3luY19kb25lKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgbWVzc2FnZSBjaGVjayBhIGxpdHRsZSBzdHJvbmdlci4KCSAgSGFuZGxlIEFTWU5DIG1lc3NhZ2VzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRXhwZWN0IEFTWU5DX0RPTkUgbWVzc2FnZXMuCgoyMDA3LTAzLTE5IDA5OjU1OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIHRvIHByZXBhcmUgZm9yIGxhdGVuY3kgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19hc3luY19kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYXN5bmNfc3RhcnQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyB0byBwcmVwYXJlIGZvciBsYXRlbmN5CgkgIHN1cHBvcnQuCgoyMDA3LTAzLTE1IDIyOjMzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHR5cG9zCgoyMDA3LTAzLTE1IDEyOjM3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogTm93IHRoYXQgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSAnQ29kZWMnIGtleXdvcmQgYW55IGxvbmdlciBpbiB0aGUga2xhc3MsIHdlIHNob3VsZG4ndCBzcGV3IGEgd2FyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpOgoJICBOb3cgdGhhdCB3ZSBkb24ndCBjaGVjayBmb3IgdGhlICdDb2RlYycga2V5d29yZCBhbnkgbG9uZ2VyIGluIHRoZQoJICBrbGFzcywgd2Ugc2hvdWxkbid0IHNwZXcgYSB3YXJuaW5nIGlmIHRoZSBrbGFzcyBpc24ndCBhIGRlY29kZXIgb3IKCSAgZW5jb2RlciAoc2luY2UgaXQgbWlnaHQgYmUgYSBTb3VyY2UvTmV0d29yaywgZm9yIGV4YW1wbGUpLgoKMjAwNy0wMy0xNCAxNzoyNDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IERvbid0IHJlcXVpcmUgZGVjb2Rlci9kZW11eGVyL2RlcGF5bG9hZGVyIGVsZW1lbnRzIG9yIGVuY29kZXIvbXV4ZXIvcGF5bGFkZXIgZWxlbWVudHMgdG8gaGF2ZSAnQy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKToKCSAgRG9uJ3QgcmVxdWlyZSBkZWNvZGVyL2RlbXV4ZXIvZGVwYXlsb2FkZXIgZWxlbWVudHMgb3IKCSAgZW5jb2Rlci9tdXhlci9wYXlsYWRlciBlbGVtZW50cyB0byBoYXZlICdDb2RlYycgYXMgcGFydCBvZiB0aGVpcgoJICBmYWN0b3J5IGNsYXNzIHN0cmluZyB3aGVuIGludHJvc3BlY3RpbmcgYSBwbHVnaW4ncyBjYXBhYmlsaXRpZXMuCgkgIGRyYWZ0LWtsYXNzLnR4dCBtZW50aW9ucyB0aGF0IGl0IG1pZ2h0IGJlIHJlbW92ZWQgaW4gZnV0dXJlLCBhbmQKCSAgZmx1bXAzZGVjIGRvZXNuJ3QgaGF2ZSBpdCBhcyBwYXJ0IG9mIGl0cyBjbGFzcyBzdHJpbmcsIHNvIGNoYW5jZXMKCSAgYXJlIG90aGVycyBtaWdodCBhbHNvIG5vdCBoYXZlIGl0LgoKMjAwNy0wMy0xNCAxNTo0MjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJICB1cGRhdGUgaTE4biBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBpMThuIGRvYwoKMjAwNy0wMy0xNCAxNToxNzowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHJlZm9ybWF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWZvcm1hdAoKMjAwNy0wMy0xNCAxNToxNTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2FmLnBvOgoJICAqIHBvL2F6LnBvOgoJICAqIHBvL2JnLnBvOgoJICAqIHBvL2NhLnBvOgoJICAqIHBvL2NzLnBvOgoJICAqIHBvL2RlLnBvOgoJICAqIHBvL2VuX0dCLnBvOgoJICAqIHBvL2ZyLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25iLnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3J1LnBvOgoJICAqIHBvL3NxLnBvOgoJICAqIHBvL3NyLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3RyLnBvOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICAqIHBvL3poX0NOLnBvOgoJICAqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gdHJhbnNsYXRpb24gcHJvamVjdAoKMjAwNy0wMy0xNCAxMzo0MDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogSW52ZXJ0IHByZWNvbmRpdGlvbiBjaGVjayB0byBiZSBhbGlrZSB0aGUgb25lcyBpbiB0aGUgbWltaWNlZCBnb2JqZWN0IGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSk6CgkgIEludmVydCBwcmVjb25kaXRpb24gY2hlY2sgdG8gYmUgYWxpa2UgdGhlIG9uZXMgaW4gdGhlIG1pbWljZWQgZ29iamVjdAoJICBhcGkuCgoyMDA3LTAzLTE0IDExOjIxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZml4IG1pc2xlYWRpbmcgbG9nIHN0YXRlbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IG1pc2xlYWRpbmcgbG9nIHN0YXRlbWVudAoKMjAwNy0wMy0xMyAxNDo1MzoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IERvIHNvbWUgQXJjaGl0ZWN0IHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvYXVkaW9iYXNlY2xhc3Nlcy50eHQ6CgkgIERvIHNvbWUgQXJjaGl0ZWN0IHdvcmsuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZSk6CgkgIEFkZCBhIFdBUk5JTkcuCgkgICogZ3N0L2dzdHBhZC5jOgoJICBBZGQgZG9jcyB0aGF0IHBvaW50IGZyb20gZ3N0X3BhZF9nZXRfcmFuZ2UgdG8gZ3N0X3BhZF9wdWxsX3JhbmdlCgoyMDA3LTAzLTEyIDE1OjI3OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBEZWZlciBzdGFydGluZyB0aGUgYXN5bmMgc3lzdGVtIGNsb2NrIHRocmVhZCB1bnRpbCB0aGUgZmlyc3QgYXN5bmMgd2FpdCBpcyBzY2hlZHVsZWQuIEZpeGVzICM0MS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX3N0YXJ0X2FzeW5jKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyk6CgkgIERlZmVyIHN0YXJ0aW5nIHRoZSBhc3luYyBzeXN0ZW0gY2xvY2sgdGhyZWFkIHVudGlsIHRoZSBmaXJzdCBhc3luYwoJICB3YWl0IGlzIHNjaGVkdWxlZC4gRml4ZXMgIzQxNDk4Ni4KCjIwMDctMDMtMTIgMTQ6MjM6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IHNtYWxsIGxlYWsgKGZyZWUgR3N0U2luZ2xlUXVldWUgc3RydWN0dXJlIHRvbywgbm90IG9ubHkgY29udGVudHMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUpOgoJICBGaXggc21hbGwgbGVhayAoZnJlZSBHc3RTaW5nbGVRdWV1ZSBzdHJ1Y3R1cmUgdG9vLCBub3Qgb25seSBjb250ZW50cykuCgoyMDA3LTAzLTEwIDE1OjQ0OjQ0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBHU1RfU1RSX05VTEwgdG8gcHJldmVudCBOVUxMIHBvaW50ZXIgdG8gYmUgcGFzc2VkIHRvIEdTVF9DQVRfREVCVUcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzooZ3N0X2Jpbl9hZGQpOgoJICBVc2UgR1NUX1NUUl9OVUxMIHRvIHByZXZlbnQgTlVMTCBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBHU1RfQ0FUX0RFQlVHLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTAzLTA5IDE2OjM5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDogRml4IEdzdFRlZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBGaXggR3N0VGVlIGRvY3MuCgoyMDA3LTAzLTA5IDE2OjMwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLiBGaXhlcyAjMzkzMDk5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfY29weV9tZXRhZGF0YSksIChfZ3N0X2J1ZmZlcl9jb3B5KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4gRml4ZXMgIzM5MzA5OS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9idWZmZXJfc3RhbXApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIFVzZSBuZXcgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuCgoyMDA3LTAzLTA5IDE0OjIwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogU2VwYXJhdGUgb3V0IGNoZWNrLWltcGVyZmVjdC10aW1lc3RhbXAgYW5kIGNoZWNrLWltcGVyZmVjdC1vZmZzZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3RfdGltZXN0YW1wKSwKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KSwgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIFNlcGFyYXRlIG91dCBjaGVjay1pbXBlcmZlY3QtdGltZXN0YW1wIGFuZCBjaGVjay1pbXBlcmZlY3Qtb2Zmc2V0LgoJICBQdXQgYmFjayBjaGVjay1wZXJmZWN0IGFzIGl0IHdhcyB0byBrZWVwIGNvbXBhdGliaWxpdHkuCgoyMDA3LTAzLTA5IDEyOjM0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFRoZXJlJ3Mgbm8gbmVlZCB0byB3YXJuIGlmIFZPSURfUEVORElORyBpcyBub3QgTk9ORSBoZXJlLCBhcyBsb25nIGFzIHRoZSBzdGF0ZSBpcyBOVUxMIGl0J3Mgb2ssIGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byB3YXJuIGlmIFZPSURfUEVORElORyBpcyBub3QgTk9ORSBoZXJlLCBhcwoJICBsb25nIGFzIHRoZSBzdGF0ZSBpcyBOVUxMIGl0J3Mgb2ssIGFuZCB0aGF0J3MgY2hlY2tlZCBpbW1lZGlhdGVseQoJICBhYm92ZS4KCjIwMDctMDMtMDggMTc6NTg6NTcgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IEZpeCBjaGVjayBmb3IgcGVyZmVjdCBzdHJlYW0gdG8gaWdub3JlIGJ1ZmZlcnMgd2l0aCAtMSBvZmZzZXRzL29mZnNldCBlbmRzIHdoZW4gY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDggIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIEZpeCBjaGVjayBmb3IgcGVyZmVjdCBzdHJlYW0gdG8gaWdub3JlIGJ1ZmZlcnMgd2l0aCAtMQoJICBvZmZzZXRzL29mZnNldCBlbmRzIHdoZW4gY2hlY2tpbmcgZGF0YSBjb250aWd1aXR5LgoKMjAwNy0wMy0wOCAxNjoyNjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgSU5GTyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IElORk8gbWVzc2FnZXMuCgoyMDA3LTAzLTA4IDExOjQwOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEFkZCBzdXBwb3J0IGZvciBkcm9wcGluZyBidWZmZXJzIHdpdGggY3VzdG9tIEdzdEZsb3dSZXR1cm4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBZGQgc3VwcG9ydCBmb3IgZHJvcHBpbmcgYnVmZmVycyB3aXRoIGN1c3RvbSBHc3RGbG93UmV0dXJuLgoJICBTZXQgRElTQ09OVCBmbGFncyBvbiBvdXRnb2luZyBidWZmZXJzIGJhc2VkIG9uIFFvUywgaW5jb21taW5nIERJU0NPTlQKCSAgYnVmZmVycyBvciBkcm9wcGVkIGJ1ZmZlcnMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jcyBmb3IgbmV3IGN1c3RvbSByZXR1cm4gY29kZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgVXNlIGRyb3Agc3VwcG9ydCBpbiBiYXNlIGNsYXNzIHRvIGltcGxlbWVudCBkcm9wLXByb2JhYmlsaXR5LgoKMjAwNy0wMy0wNyAxNzoyNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBuZXdsaW5lcyBhdCBlbmQgb2YgZGVidWcgbG9nIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGxvYWRfcGx1Z2luX2Z1bmMpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9ieV9uYW1lKSwgKGdzdF9wbHVnaW5fbG9hZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoZ3N0X3RyYWNlX25ldyksIChnc3RfYWxsb2NfdHJhY2Vfc2V0X2ZsYWdzX2FsbCk6CgkgIFJlbW92ZSBuZXdsaW5lcyBhdCBlbmQgb2YgZGVidWcgbG9nIHN0cmluZ3MuCgoyMDA3LTAzLTA3IDE3OjE0OjUzICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBPbmx5IHBvc3QgYnVzIG1lc3NhZ2UgYXQgbWF4LCBvbmNlIHBlciBidWZmZXIgcmVjZWl2ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBPbmx5IHBvc3QgYnVzIG1lc3NhZ2UgYXQgbWF4LCBvbmNlIHBlciBidWZmZXIgcmVjZWl2ZWQuCgoyMDA3LTAzLTA3IDE3OjEzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBBZGQgZG9jIGFib3V0IHN5bmNocm9uaXNhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIEFkZCBkb2MgYWJvdXQgc3luY2hyb25pc2F0aW9uCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDctMDMtMDcgMTc6MDk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0cmVhbWVyLmRvYXA6IFVwZGF0ZSB0aGUgZG9hcCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgVXBkYXRlIHRoZSBkb2FwIGZpbGUuCgoyMDA3LTAzLTA3IDE3OjAyOjUxICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBSZW5hbWUgbm9uLXBlcmZlY3QgdG8gaW1wZXJmZWN0IGZvciBNaWtlIGFuZCBmb3IgdGhlIHNhbmN0aXR5IG9mIHRoZSBsYW5ndWFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIFJlbmFtZSBub24tcGVyZmVjdCB0byBpbXBlcmZlY3QgZm9yIE1pa2UgYW5kIGZvciB0aGUgc2FuY3RpdHkgb2YKCSAgdGhlIGxhbmd1YWdlLgoJICBBbHNvIG1ha2Ugc3VyZSBidXMgbWVzc2FnZSBnZXRzIGVtaXR0ZWQgZm9yIGRhdGEtaW5jb250aWd1aXRpZXMuCgoyMDA3LTAzLTA3IDE2OjU4OjQyICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBFbWl0IGJ1cyBtZXNzYWdlIGlmIGNoZWNrLXBlcmZlY3QgaXMgdHJ1ZSBhbmQgd2UgZW5jb3VudGVyIGEgbm9uLXBlcmZlY3Qgc3RyZWFtIGJldHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEVtaXQgYnVzIG1lc3NhZ2UgaWYgY2hlY2stcGVyZmVjdCBpcyB0cnVlIGFuZCB3ZSBlbmNvdW50ZXIgYQoJICBub24tcGVyZmVjdCBzdHJlYW0gYmV0d2VlbiAyIGNvbnNlY3V0aXZlIGJ1ZmZlcnMuCgkgIEZpeGVzICM0MTUzOTQuCgoyMDA3LTAzLTA3IDE2OjU1OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xMiA9PT0KCjIwMDctMDMtMDcgMTY6NDQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjEyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTIKCjIwMDctMDMtMDcgMTY6MzE6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTAzLTA3IDEyOjUxOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTAzLTAxIDE4OjQ2OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVmVyc2lvbiAwLjEwLjExLjIgKDAuMTAuMTIgcHJlLXJlbGVhc2UpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVmVyc2lvbiAwLjEwLjExLjIgKDAuMTAuMTIgcHJlLXJlbGVhc2UpCgkgIEJ1bXAgbGlidG9vbCB2ZXJzaW9uaW5nLgoKMjAwNy0wMy0wMSAxNDo0OTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IExvZyBmbG93LW5hbWVzIGFuZCBub3QgbnVtYmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIExvZyBmbG93LW5hbWVzIGFuZCBub3QgbnVtYmVycy4KCjIwMDctMDItMjggMTk6MjU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBDb252ZXJ0IHRvIG5ldyBBR19HU1Qgc3R5bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoKMjAwNy0wMi0yOCAxODo1MTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdW5yZWYgcXVlcnkgdHdpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSk6CgkgIERvbid0IHVucmVmIHF1ZXJ5IHR3aWNlLgoKMjAwNy0wMi0yOCAxNjo1Nzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJbXBsZW1lbnQgR3N0T2JqZWN0IC0+IHN0cmluZyB0cmFuc2Zvcm0gc28gd2UgcHJpbnQgb2JqZWN0IG5hbWVzIHdoZW4gc2VyaWFsaXppbmcgR1ZhbHVlcyBjb250YWluaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fb2JqZWN0X3N0cmluZyksCgkgIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBJbXBsZW1lbnQgR3N0T2JqZWN0IC0+IHN0cmluZyB0cmFuc2Zvcm0gc28gd2UgcHJpbnQgb2JqZWN0IG5hbWVzCgkgIHdoZW4gc2VyaWFsaXppbmcgR1ZhbHVlcyBjb250YWluaW5nIEdzdE9iamVjdHMuCgoyMDA3LTAyLTI4IDE2OjU1OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBzdHVmZiB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IHN0dWZmIHRvIGRvY3MuCgoyMDA3LTAyLTI4IDE2OjQ2OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGxhdGVuY3kgcXVlcnkgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEltcHJvdmUgbGF0ZW5jeSBxdWVyeSBjb2RlLgoJICBEb24ndCBsZWFrIGxhdGVuY3kgZXZlbnRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTI4IDE2OjQzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogSW1wcm92ZSBkb2NzIGEgbGl0dGxlLiBBZGRlZCBTaW5jZTogZm9yIG5ldyBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgSW1wcm92ZSBkb2NzIGEgbGl0dGxlLiBBZGRlZCBTaW5jZTogZm9yIG5ldyBtYWNyby4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NpbmspOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEltcHJvdmUgZGVidWdnaW5nIGFuZCBkb2NzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0yOCAxNjo0MDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEhhbmRsZSBJTkZPIG1lc3NhZ2VzIGZyb20gdGhlIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBJTkZPIG1lc3NhZ2VzIGZyb20gdGhlIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gYXMgd2VsbC4KCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBTbWFsbCBjb2RlIGNsZWFudXBzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19pbmZvKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKCkKCSAgQWRkIElORk8gbWVzc2FnZSBjcmVhdGUgYW5kIHBhcnNlIGNvZGUuCgoyMDA3LTAyLTI4IDE2OjM1OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbHNvIHJlcG9ydCB0aGUgbGl2ZSBwYXJhbWV0ZXIgb2YgYSBsYXRlbmN5IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbWluX21heF9pbml0KSwgKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2xhdGVuY3lfZG9uZSk6CgkgIEFsc28gcmVwb3J0IHRoZSBsaXZlIHBhcmFtZXRlciBvZiBhIGxhdGVuY3kgcXVlcnkuCgoyMDA3LTAyLTI4IDEyOjU3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHBsdWcgdGVzdCBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbHVnIHRlc3QgbGVhawoKMjAwNy0wMi0yOCAxMjo0Mzo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWN0dWFsbHkgdXNlIHRoZSBlbnYgdmFyIGZvciB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWN0dWFsbHkgdXNlIHRoZSBlbnYgdmFyIGZvciB0ZXN0cwoKMjAwNy0wMi0yOCAxMjo0MDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiBDb3B5IHRoZSBjdXJyZW50IGdlbmVyaWMvc3RhdGVzIGV4YW1wbGUgZnJvbSAtYmFzZSBhbmQgYWRhcHQgc28gd2UgY2FuIHVzZSB0aGUgZXhhY3Qgc2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSk6CgkgIENvcHkgdGhlIGN1cnJlbnQgZ2VuZXJpYy9zdGF0ZXMgZXhhbXBsZSBmcm9tIC1iYXNlIGFuZCBhZGFwdCBzbwoJICB3ZSBjYW4gdXNlIHRoZSBleGFjdCBzYW1lIGNvZGUgZXZlcnl3aGVyZS4KCSAgQ2hlY2sgYSBTVEFURVNfSUdOT1JFX0VMRU1FTlRTIGVudiB2YXIgd2hpY2ggY2FuIGJlIHVzZWQKCSAgdG8gaWdub3JlIGNlcnRhaW4gZWxlbWVudCBmYWN0b3JpZXMgZm9yIHRoaXMgdGVzdCwgd2hpY2ggaXMKCSAgd2hhdCBpcyBiZWluZyBkb25lIGluIC1iYXNlCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1lbnRpb24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMDctMDItMjcgMTc6MjI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9idXNfdGltZWRfcG9wKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfcG9zdCksCgkgIChnc3RfYnVzX3RpbWVkX3BvcCksIChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBUEk6IGdzdF9idXNfdGltZWRfcG9wKCkKCSAgSW1wbGVtZW50IGdzdF9idXNfdGltZWRfcG9wKCkgdG8gZG8gYSBibG9ja2luZyB0aW1lZCB3YWl0IGZvciBhCgkgIG1lc3NhZ2UgdG8gYXJyaXZlIG9uIHRoZSBidXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocG9wX3RocmVhZCksCgkgIChnc3RfYnVzX3N1aXRlKToKCSAgVHdvIHVuaXQgdGVzdHMgZm9yIG5ldyBfdGltZWRfcG9wKCkgZnVuY3Rpb24uCgoyMDA3LTAyLTIzIDE3OjQyOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvbid0IHJlZiBhIE5VTEwgY2xvY2sgaW4gX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KToKCSAgRG9uJ3QgcmVmIGEgTlVMTCBjbG9jayBpbiBfcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIERvbid0IGFsbG93IGFuIElOVkFMSUQgZGVsYXkuCgkgIERvbid0IHRyeSB0byBjYWxjdWxhdGUgYmFzZV90aW1lIHdpdGggYW4gaW52YWxpZCBzdGFydF90aW1lLgoJICBBbHNvIGRpc3RyaWJ1dGUgYW5kIG5vdGlmeSBhIE5VTEwgY2xvY2sgd2hlbiBpdCB3YXMgc2VsZWN0ZWQuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIERvbid0IGNyYXNoIHdoZW4gYSBOVUxMIGNsb2NrIHdhcyBzZWxlY3RlZCBpbiB0aGUgcGlwZWxpbmUuCgoyMDA3LTAyLTIzIDEzOjQyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy86IFNvbWUgc21hbGwgdXBkYXRlczogdXBkYXRlIHBsdWdpbiBzeXN0ZW0gaWRlbnRpZmllciBwcmVmaXggbWVudGlvbiBvdXIgbmV3IGluc3RhbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIHNtYWxsIHVwZGF0ZXM6IHVwZGF0ZSBwbHVnaW4gc3lzdGVtIGlkZW50aWZpZXIgcHJlZml4CgkgICgnZ3N0cmVhbWVyLm5ldCcgdG8gJ2dzdHJlYW1lcicpLCBtZW50aW9uIG91ciBuZXcgaW5zdGFsbAoJICBBUEkgaW4gbGliZ3N0YmFzZXV0aWxzIHJhdGhlciB0aGFuIGxpYmdpbW1lLWNvZGVjLCBhZGQKCSAgcmVmZXJlbmNlIHRvIHRoZSBvbmxpbmUgZG9jcy4KCjIwMDctMDItMjEgMTU6MzU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oOiBQcmV0dHkgc3VyZSBCaWxsIG5ldmVyIG1hZGUgYSBwb3dlcnBjIHZlcnNpb24uICBQb3dlcnBjIGhhY2tlcnMsIHVzZSBtb2FwIGNsIGNpIHRvIG9ubHkgY2hlY2sgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUHJldHR5IHN1cmUgQmlsbCBuZXZlciBtYWRlIGEgcG93ZXJwYyB2ZXJzaW9uLiAgUG93ZXJwYyBoYWNrZXJzLAoJICB1c2UgbW9hcCBjbCBjaSB0byBvbmx5IGNoZWNrIGluIHdoYXQgaXMgbWVudGlvbmVkIGluIHRoZSBDaGFuZ2VMb2cuCgoyMDA3LTAyLTIxIDE1OjM0OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEZpeCB1cCBkb2N1bWVudGF0aW9uIHRvIGxpbmsgdG8gdGhlIGNvcnJlY3QgR3N0R0Vycm9yIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IHVwIGRvY3VtZW50YXRpb24gdG8gbGluayB0byB0aGUgY29ycmVjdCBHc3RHRXJyb3Igc2VjdGlvbi4KCSAgQWRkIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gc2luY2Ugc29tZW9uZSBlbHNlIGFkZGVkIGEgSW5mbyBtZXNzYWdlLgoKMjAwNy0wMi0yMSAxNTozMDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1ha2Ugc3VyZSB0aGF0IHdlIGFjdHVhbGx5IHNob3cgdGhlIGltcG9ydGFudCBtZXNzYWdlIHBhcnQgb2YgYSB3YXJuaW5nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIHN1cmUgdGhhdCB3ZSBhY3R1YWxseSBzaG93IHRoZSBpbXBvcnRhbnQgbWVzc2FnZSBwYXJ0IG9mIGEKCSAgd2FybmluZyBtZXNzYWdlLgoJICBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSBnZXJyb3IgaXMgbm90IE5VTEwgdG8gZnJlZTsgZmlyc3Qgb2YgYWxsCgkgIGdfZnJlZSBhY2NlcHRzIE5VTEw7IGFuZCBzZWNvbmQgdGhlIGRlZmF1bHQgZXJyb3IgaGFuZGxlciB3b3VsZAoJICBzZWdmYXVsdCBpZiBnZXJyb3Igd2FzIE5VTEwuCgoyMDA3LTAyLTIxIDEyOjEwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlZCBkb2NzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZWQgZG9jcyBhcyB3ZWxsLgoKMjAwNy0wMi0yMSAxMjowMTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IFJlbW92ZSBuZXcgbWVzc2FnZXMgZm9yIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmVtb3ZlIG5ldyBtZXNzYWdlcyBmb3IgcmVsZWFzZS4KCjIwMDctMDItMjAgMTg6MDI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIHRoZSBnaG9zdHBhZCBhIHBhcmVudCBvZiB0aGUgaW50ZXJuYWwgcGFkIGFnYWluIGZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gRG9uJ3Qgd3JpdGUgY29kZSB0aGF0IHJlbGllcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIE1ha2UgdGhlIGdob3N0cGFkIGEgcGFyZW50IG9mIHRoZSBpbnRlcm5hbCBwYWQgYWdhaW4gZm9yIGJldHRlciBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5LiBEb24ndCB3cml0ZSBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoaXMgaG93ZXZlci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpOgoJICBSZXF1aXJlIHRoYXQgcGFyZW50cyBzaG91bGQgYmUgR3N0RWxlbWVudHMgaW4gdGhlIGhpZXJhcmNoeSBjaGVjay4KCjIwMDctMDItMjAgMTA6NDU6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEltcHJvdmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlcGxhY2VfbWVzc2FnZSksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX3F1ZXJ5X21pbl9tYXhfaW5pdCksCgkgIChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGJpbl9xdWVyeV9sYXRlbmN5X2RvbmUpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEltcHJvdmUgZGVidWcgaW5mby4KCSAgSW1wbGVtZW50IGxhdGVuY3kgcXVlcnkuCgoyMDA3LTAyLTIwIDEwOjE2OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG8gbm90IHNldCB0aGUgaW50ZXJuYWwgcGFkIGFzIGEgcGFyZW50IGFueW1vcmUgc28gd2UgY2FuIGF2b2lkIGhpZXJhcmNoeSBsaW5raW5nIGVycm9ycyB3aGVuIHRoZSBnaG9zdHBhZCBoYXMgbm8gcGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgRG8gbm90IHNldCB0aGUgaW50ZXJuYWwgcGFkIGFzIGEgcGFyZW50IGFueW1vcmUgc28gd2UgY2FuIGF2b2lkCgkgIGhpZXJhcmNoeSBsaW5raW5nIGVycm9ycyB3aGVuIHRoZSBnaG9zdHBhZCBoYXMgbm8gcGFyZW50IHlldC4gVGhpcyBhbHNvCgkgIGZpeGVzIGZhaWxlZCBhY3RpdmF0aW9uIGJlY2F1c2Ugb2YgdW5saW5rZWQgaW50ZXJuYWwgcGFkcywgd2hpY2ggaW4KCSAgdHVybiBmaXhlcyB0aGUgaW1wb3NzaWJsZSBjYXNlIHdoZXJlIHlvdSBoYXZlIHRvIGFjdGl2YXRlIGEgcGFkIGJlZm9yZQoJICB5b3UgY2FuIGFkZCBpdCB0byBhIHJ1bm5pbmcgZWxlbWVudC4KCSAgQWxzbyBmaXggdGhlIGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKSwgKHBvc3RfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBNYXJrIGFjdGl2YXRpb24gbW9kZSBpbiBwcmVfYWN0aXZhdGUgc28gdGhhdCB3ZSBkb24ndCB0cnkgdG8gYWN0aXZhdGUgaW4KCSAgZW5kbGVzcyBsb29wcy4gRml4ZXMgIzM4NTA4NC4KCjIwMDctMDItMTkgMTg6MDg6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSW1wbGVtZW50IGEgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQgY29yZSBiZWhhdmlvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hlY2tfZ2V0X3JhbmdlKToKCSAgSW1wbGVtZW50IGEgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQKCSAgY29yZSBiZWhhdmlvdXIgdGhhdCBhc3N1bWVzIHdlIGNhbiBvcGVyYXRlIGluIHB1bGwgbW9kZSBpZiB3ZSBoYXZlIGEKCSAgZ2V0cmFuZ2UgZnVuY3Rpb24uIEZpcnN0IHN0ZXAgYXQgZml4aW5nICMzODUwODQuCgoyMDA3LTAyLTE1IDEyOjA1OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGRvY3MgY292ZXJhZ2UgYW5kIHNvbWUgQ2hhbmdlTG9nIHN1cmdlcnkgKGFkZCBtaXNzaW5nIG5hbWVzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTW9yZSBkb2NzIGNvdmVyYWdlIGFuZCBzb21lIENoYW5nZUxvZyBzdXJnZXJ5IChhZGQgbWlzc2luZyBuYW1lcykKCjIwMDctMDItMTUgMTE6MzI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgZG9jIHVwZGF0ZXMuIFN0YXJ0IHJlbmFtaW5nIGZyb20gc3RyZWFtX3RpbWUgdG8gcnVubmluZ190aW1lIHdoZXJlIGl0IHdhcyB1c2VkIHdyb25nbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgU29tZSBkb2MgdXBkYXRlcy4gU3RhcnQgcmVuYW1pbmcgZnJvbSBzdHJlYW1fdGltZSB0byBydW5uaW5nX3RpbWUgd2hlcmUKCSAgaXQgd2FzIHVzZWQgd3JvbmdseS4KCjIwMDctMDItMTUgMDk6MDc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQW5zd2VyIExBVEVOQ1kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBBbnN3ZXIgTEFURU5DWSBxdWVyeS4KCjIwMDctMDItMTUgMDg6NDA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0xNSAwODozNzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZGVmYXVsdCBwYWQgZGlzcGF0Y2hlciBhbmQgcXVlcnkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZGlzcGF0Y2hlcik6CgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIGRlZmF1bHQgcGFkIGRpc3BhdGNoZXIgYW5kIHF1ZXJ5IGZ1bmN0aW9ucy4KCjIwMDctMDItMTUgMDg6MzE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmUgb2xkIHVudXNlZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSBvbGQgdW51c2VkIG1ldGhvZC4KCjIwMDctMDItMTMgMTU6NTE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiBGaXggY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGNoZWNrCgoyMDA3LTAyLTEzIDE1OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDogU29tZSBzbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgc21hbGwgdXBkYXRlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIFJldmVydCBvbGQgYm9ndXMgY2hhbmdlIHRoYXQgc2hvdWxkIG1ha2Ugc2Vla2luZyB3b3JrIGFnYWluLgoKMjAwNy0wMi0xMyAxNDo1Mjo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IFBvc3NpYmxlIGR5bmFtaWMgcmVjb25uZWN0aW9uIGFwaSwgcGx1cyBzb21lIHR5cGUgZml4ZXMgdGhlIG90aGVyIHR3byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvaW50ZXJmYWNlcy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9yZWNlaXBpZXMudHh0OgoJICBQb3NzaWJsZSBkeW5hbWljIHJlY29ubmVjdGlvbiBhcGksIHBsdXMgc29tZSB0eXBlIGZpeGVzIHRoZSBvdGhlciB0d28KCSAgZG9jcy4KCjIwMDctMDItMTMgMTM6NDA6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbHNvIGNoZWNrIGZvciBhbiBhYnNvbHV0ZSBwYXRoIGZvbGxvd2luZyBmaWxlOi8vIGluIHRoZSBmaWxlc3JjIGVsZW1lbnQuIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEFsc28gY2hlY2sgZm9yIGFuIGFic29sdXRlIHBhdGggZm9sbG93aW5nIGZpbGU6Ly8gaW4gdGhlIGZpbGVzcmMKCSAgZWxlbWVudC4gUmVtb3ZlIHJlZHVuZGFudCBjaGVjayBhbmQgY2FsbCBnX3BhdGhfaXNfYWJzb2x1dGUoKSBvbiB0aGUKCSAgdW5lc2NhcGVkIGxvY2F0aW9uLgoKMjAwNy0wMi0xMyAwOToxMDo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgZXhpc3RpbmcgY2F0ZWdvcnkgYW5hbHlzaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGV4aXN0aW5nIGNhdGVnb3J5IGFuYWx5c2lzLgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIEZpeCBkb2MgZXhhbXBsZSwgZnJhbWVyYXRlIGlzIGEgZnJhY3Rpb24uCgoyMDA3LTAyLTEyIDE5OjU1OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgY3Jvc3NyZWZlcmVuY2VzIHRvIGdsaWIvZ29iamVjdCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QgZG9jcy4KCjIwMDctMDItMTIgMTE6MzI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX3NlbmRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSgpIHRvIGxldCBzdWJjbGFzc2VzIHF1ZXJ5IHRoZSB1cHN0cmVhbQoJICBsYXRlbmN5LgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X2xhdGVuY3koKSB0byBsZXQgc3ViY2xhc3NlcyBxdWVyeSB0aGUgY29uZmlndXJlZAoJICBsYXRlbmN5IGluIHRoZSBzaW5rLgoJICBJbXBsZW1lbnQgcXVlcnkgYW5kIHNldCBsYXRlbmN5LgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBBcyBzcG90dGVkIGJ5IFdpbGwgTmV3dG9uIDx3aWxsIGRvdCBuZXd0b24gYXQgZ21haWwgZG90IGNvbT46IE1ha2Ugc3VyZSB3ZQoJICBkb24ndCBjb250aW51ZSBwcmVyb2xsIHdoZW4gd2UgYXJlIGZsdXNoaW5nLiBGaXhlcyAjNDA1Mjg0LgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKGNoYW5nZV9zdGF0ZV90aW1lb3V0KSwKCSAgKHF1aXRfdGltZW91dCksIChHU1RfU1RBUlRfVEVTVCksIChzdHJlc3Nfc3VpdGUpOgoJICBUZXN0IGZvciAjNDA1Mjg0LgoKMjAwNy0wMi0xMiAxMDo1MDoyMCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIEFQSTogYWRkIEdTVF9UQUdfUkVGRVJFTkNFX0xFVkVMICgjNDAzNTk3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfUkVGRVJFTkNFX0xFVkVMICgjNDAzNTk3KS4KCjIwMDctMDItMTEgMTk6NTk6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRml4IHBhdGggdG8gY29yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBwYXRoIHRvIGNvcmUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBSZWZpeCBkb2NzIGJ5IGFsc28gcmVuYW1pbmcgJ2ludGVyZmFjZScgdG8gJ2lmYWNlJyBpbiBpbXBsZW1lbnRhdGlvbi4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBEb2N1bWVudCBtb3JlLgoKMjAwNy0wMi0xMCAxODozMToxMiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiBSZXBsYWNlIGludGVyZmFjZSBwYXJhbWV0ZXIgbmFtZSBieSBpZmFjZSBhcyBpbnRlcmZhY2UgaXMgYSByZXNlcnZlZCBrZXl3b3JkIGluIFZpc3VhbCBTdHVkaW8gZm9yIEMrKyBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDooZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgUmVwbGFjZSBpbnRlcmZhY2UgcGFyYW1ldGVyIG5hbWUgYnkgaWZhY2UgYXMgaW50ZXJmYWNlIGlzCgkgIGEgcmVzZXJ2ZWQga2V5d29yZCBpbiBWaXN1YWwgU3R1ZGlvIGZvciBDKysgcHJvamVjdHMgc28gaXQgcmVtb3ZlcwoJICBhIGJ1aWxkIGVycm9yIGZvciBhcHBsaWNhdGlvbiBkZXZlbG9wcGVycyB1c2luZyBWUy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzooZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgRml4IGEgYnVnIG9uIFdpbmRvd3MgaW4gdXJpIGZvcm1hdCBjaGVjay4gTm93IHRoZSBwcmVmaXggY2hlY2tlZAoJICBpcyBmaWxlOi8vIGFuZCBuZXh0IHdlIGNoZWNrIGlmIHRoZSBwYXRoIGFmdGVyIGZpbGU6Ly8gaXMgYWJzb2x1dGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDItMDkgMTU6MjU6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlLCB0ZXN0X3RlZSk6IERpc2FibGUgdGVlIHRlc3QgdW50aWwgSQoJICBoYXZlIHRpbWUgdG8gZml4IGl0IDotKAoKMjAwNy0wMi0wOSAxMzo1OTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtIChub2luc3RfSEVBREVSUyk6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCjIwMDctMDItMDkgMTM6NDU6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMgKHRlc3RfdGVlKTogQWRkIHRlc3RzIGZvciBwdXNoIGFuZCBwdWxsIHRlZSBiZWhhdmlvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYyAodGVzdF90ZWUpOiBBZGQKCSAgdGVzdHMgZm9yIHB1c2ggYW5kIHB1bGwgdGVlIGJlaGF2aW9yLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogRGVzY3JpYmUgaGFzLXNpbmstbG9vcCBiZXR0ZXIsIGFuZAoJICBtYXJrIGFzIGRlcHJlY2F0ZWQgYXMgd2VsbCBhcyB1bmltcGxlbWVudGVkLiBJdCB3YXMgYSBjcmFjayBpZGVhLgoJICBBZGQgc3VwcG9ydCBmb3IgdGVlIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIG9mZiBieSBkZWZhdWx0LgoKMjAwNy0wMi0wOSAxMzo0MToyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmMgKGxvYWRfZmVhdHVyZSwgbG9hZF9wbHVnaW4pOiBEcm9wIHNvbWUgbm9ybWFsLWNhc2UgbG9ncyBkb3duIHRvIExPRywgcmFpc2UgZXJyb3JzIHRvIFdBUk5JTkcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jIChsb2FkX2ZlYXR1cmUsIGxvYWRfcGx1Z2luKTogRHJvcCBzb21lCgkgIG5vcm1hbC1jYXNlIGxvZ3MgZG93biB0byBMT0csIHJhaXNlIGVycm9ycyB0byBXQVJOSU5HLgoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKTogRG9uJ3QgbG9nIGJlZm9yZSBjYWxsaW5nIGEgZnVuY3Rpb24KCSAgdGhhdCBsb2dzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfZmluYWxpemUpOiBMZXNzIGRlYnVnIG9uIHByb2dyYW0KCSAgZXhpdCAocmVnaXN0cnkgZmluYWxpemUpLgoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4sIGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSk6IE5vIG5lZWQgZm9yIGEKCSAgREVCVUcgbG9nIHdoZW4gd2UgZW1pdCBzaWduYWxzIHRoYXQgcGVvcGxlIGRvbid0IGV2ZW4gaGF2ZSB0aGUKCSAgY2hhbmNlIHRvIGNvbm5lY3QgdG8uCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKTogTGVzcyBsb2dnaW5nIGluIHRoZSBub3JtYWwgY2FzZS4KCjIwMDctMDItMDUgMTM6MTU6NDQgKzAwMDAgIE1pY2hhbCBCZW5lcyA8bWljaGFsLmJlbmVzQGl0b25pcy50dj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBDb3JyZWN0bHkgZ2VuZXJhdGUgRU9TIGZvciBub24tc2Vla2FibGUgZmlsZXMuIFdlIGRvbid0IGhhdmUgYSB0b3RhbCBsZW5ndGggZm9yIHRoZW0gYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1pY2hhbCBCZW5lcyA8bWljaGFsIGRvdCBiZW5lcyBhdCBpdG9uaXMgZG90IHR2PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgQ29ycmVjdGx5IGdlbmVyYXRlIEVPUyBmb3Igbm9uLXNlZWthYmxlIGZpbGVzLiBXZSBkb24ndCBoYXZlIGEgdG90YWwKCSAgbGVuZ3RoIGZvciB0aGVtIGFuZCB3b3VsZCBnZXQgYW4gdW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpZiB3ZSBvbmx5CgkgIHNwZWNpYWwtY2FzZWQgZm9yIHJlZ3VsYXIgZmlsZXMuIChGaXhlczogIzQwNDU2OSkKCjIwMDctMDItMDUgMDg6MTU6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlIGluIGZpbGVzcmMuIFRoaXMgYWxzbyB0ZXN0cyB0aGUgbmV3bHkgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlIGluIGZpbGVzcmMuIFRoaXMgYWxzbwoJICB0ZXN0cyB0aGUgbmV3bHkgYWRkZWQgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIHN1cHBvcnQuCgoyMDA3LTAyLTA0IDE2OjE0OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6IFRoZSBrbGFzcyBzdHJpbmcgaXMgbm90IGEgaGllcmFyY2h5LiBBZGQgcmVmZXJlbmNlIHRvIHRoZSBkZXNpZ24gZG9jIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBUaGUga2xhc3Mgc3RyaW5nIGlzIG5vdCBhIGhpZXJhcmNoeS4gQWRkIHJlZmVyZW5jZSB0byB0aGUgZGVzaWduIGRvYwoJICBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgY29tbW9uIHR5cGVzLgoKMjAwNy0wMi0wMiAxODowODozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jOiBSZW1vdmUgb2xkIHN0cnVjdHVyZSBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpOgoJICBSZW1vdmUgb2xkIHN0cnVjdHVyZSBmaWVsZC4KCjIwMDctMDItMDIgMTI6Mjc6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogR2l2ZSBleGFtcGxlIGZvciBuZXR3b3JrIHN0cmVhbWluZyAoIzM1MTk5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBHaXZlIGV4YW1wbGUgZm9yIG5ldHdvcmsgc3RyZWFtaW5nICgjMzUxOTk4KQoKMjAwNy0wMi0wMiAxMTo0ODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19sYXRlbmN5KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIG5ldyBMQVRFTkNZIGV2ZW50IHRvIGNvbmZpZ3VyZSBsYXRlbmN5IGluIGEgcGlwZWxpbmUuCgkgIEFQSTogZ3N0X2V2ZW50X25ld19sYXRlbmN5CgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfbG9zdF9wcmVyb2xsKSwgKGdzdF9tZXNzYWdlX25ld19wcmVyb2xsZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3kpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2xvc3RfcHJlcm9sbCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgbWVzc2FnZXMgdXNlZCBpbiBkcmFmdC1sYXRlbmN5LgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19sb3N0X3ByZXJvbGwKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9sb3N0X3ByZXJvbGwKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfcHJlcm9sbGVkCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3kKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSksIChnc3RfcXVlcnlfc2V0X2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBJbXBsZW1lbnRlZCBuZXcgbGF0ZW5jeSBxdWVyeSBhcyBpbiBkZXNpZ24gZG9jLgoJICBBUEk6IGdzdF9xdWVyeV9uZXdfbGF0ZW5jeQoJICBBUEk6IGdzdF9xdWVyeV9zZXRfbGF0ZW5jeQoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5CgoyMDA3LTAyLTAyIDExOjMzOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFNsaWdodCByZWRlc2lnbiB0byBhbGxvdyBmb3IgZHluYW1pYyBsYXRlbmN5IGFkanVzdG1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgU2xpZ2h0IHJlZGVzaWduIHRvIGFsbG93IGZvciBkeW5hbWljIGxhdGVuY3kgYWRqdXN0bWVudHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIEZpeCBzb21lIHR5cG9zLgoKMjAwNy0wMi0wMiAxMDo0MToyOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsbG93IGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBVUkxzIGFuZCBjb3JyZWN0bHkgZmFpbCBmb3IgZXZlcnkgb3RoZXIgaG9zdG5hbWUgdGhhdCBvbmUgc2V0cy4gVGhpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEFsbG93IGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBVUkxzIGFuZCBjb3JyZWN0bHkgZmFpbCBmb3IgZXZlcnkgb3RoZXIKCSAgaG9zdG5hbWUgdGhhdCBvbmUgc2V0cy4gVGhpcyB3YXMgZ25vbWV2ZnNzcmMgaXMgbGlua2VkIGZvciB0aG9zZSBpZgoJICBpbnN0YWxsZWQgYXMgaXQgY2FuIGhhbmRsZSBpdCAoIzQwMzE3MikKCjIwMDctMDItMDEgMTk6MDA6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogRG9uJ3QgcHV0IHRoZSBwcmV2aW91c2x5IGFkZGVkIGRlc3Ryb3kgbm90aWZ5IGluIHRoZSBHc3RDb2xsZWN0RGF0YSBzdHJ1Y3QgYXMgYWxsIGl0Jy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb24ndCBwdXQgdGhlIHByZXZpb3VzbHkgYWRkZWQgZGVzdHJveSBub3RpZnkgaW4gdGhlIEdzdENvbGxlY3REYXRhCgkgIHN0cnVjdCBhcyBhbGwgaXQncyBwYWRkaW5nIGlzIGFscmVhZHkgdXNlZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBicmVhawoJICBBQkkuIEluc3RlYWQgcHV0IGluIHRoZSBwYWQncyBHT2JqZWN0IGRhdGEgZm9yIG5vdy4gVGhpcyBzaG91bGQgYmUKCSAgY2xlYW5lZCB1cCBmb3IgMC4xMSAoIzQwMjM5MykuCgoyMDA3LTAyLTAxIDE3OjUyOjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgZGVzdHJveSBub3RpZmljYXRpb24gZm9yIGN1c3RvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFQSTogQWRkIGZ1bmN0aW9uIHRvIHNwZWNpZnkgYSBkZXN0cm95IG5vdGlmaWNhdGlvbiBmb3IgY3VzdG9tCgkgIEdzdENvbGxlY3REYXRhIHdoZW4gYWRkaW5nIG5ldyBwYWRzIGluIEdzdENvbGxlY3RQYWRzICgjNDAyMzkzKS4KCjIwMDctMDItMDEgMTc6MTA6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwby9zdi5wbzogVXBkYXRlIFN3ZWRpc2ggdHJhbnNsYXRpb24gKCMzNzgyNTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9zdi5wbzoKCSAgVXBkYXRlIFN3ZWRpc2ggdHJhbnNsYXRpb24gKCMzNzgyNTUpLgoKMjAwNy0wMS0zMSAxMTo0Mjo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBGaXggdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBhIGxpc3Qgb2YgY2F0ZWdvcmllcyBhbmQgbm90IGEgaGllcmFyY2h5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEZpeCB0aGUgcHJldmlvdXMgY2hhbmdlLCB0aGlzIGlzIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGFuZCBub3QgYSBoaWVyYXJjaHkuCgoyMDA3LTAxLTMxIDExOjAyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBpbmZvIGFib3V0IGhvdyB0byBnZXQgYSBsaXN0IG9mIHVzZWQgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgaW5mbyBhYm91dCBob3cgdG8gZ2V0IGEgbGlzdCBvZiB1c2VkIGNsYXNzZXMuCgoyMDA3LTAxLTMwIDE5OjEyOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG9uJ3QgbGVhayBmb3VuZCBjYXBzIGluIGNoYWluIGZ1bmN0aW9uIChubyBpZGVhIHdoeSB0aGF0IG5ldmVyIHNob3dlZCB1cCBhcyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW5fZG9fdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGxlYWsgZm91bmQgY2FwcyBpbiBjaGFpbiBmdW5jdGlvbiAobm8gaWRlYSB3aHkgdGhhdCBuZXZlcgoJICBzaG93ZWQgdXAgYXMgYSBsZWFrIGFueXdoZXJlKS4KCjIwMDctMDEtMzAgMTU6MDQ6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogRml4IGFuZCBleHBhbmQgR3N0UGx1Z2luRGVzYyBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBGaXggYW5kIGV4cGFuZCBHc3RQbHVnaW5EZXNjIEFQSSBkb2NzLgoKMjAwNy0wMS0yOSAxNTo1NDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBjb21tZW50IGFib3V0IHJlZmluaW5nIHRoZSB4bWwgZGVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNvbW1lbnQgYWJvdXQgcmVmaW5pbmcgdGhlIHhtbCBkZXBzCgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgY29tbWVudHMgYWJvdXQgbW92aW5nIGF3YXkgZnJvbSBqYWRlIGZvciBkb2NzCgkgICogZ3N0L2dzdC5jOgoJICByZWNvbW1pdCB0aGUgaWZkZWZzIHRvIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIHRoaXMgYnJlYWsgaXMgb2Jzb2xldGUKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgYmV0dGVyIEdTVF9FTEVNRU5UX0RFVEFJTFMgZG9jcywgYWRkIGNvbW1lbnQgYWJvdXQgdHJhbnNsYXRpb24KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICByZW1vdmUgZW9sIHNsYXNoCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X3NpZ25hbF9vYmplY3RfZ2V0X3R5cGUpOgoJICBhZGQgR19VTkxJS0VMWSBhcyB1c3VhbAoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgIGFkZCBmYWxsIHRyaHUgY29tbWVudAoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBjb21tZW50IHR5cG8gYW5kIGZvcm1hdHRpbmcKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKSwKCSAgKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICByZW1vdmUgb2Jzb2xldGUgYnJlYWtzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBhZGQgRklYTUUgMC4xMSBhbmQgcmVtb3ZlIGNwcCBjb21tZW50CgoyMDA3LTAxLTI5IDE1OjAyOjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBwcmludCBzdGF0ZW1lbnQgaW4gYW4gZXZlbiBtb3JlIHBvcnRhYmxlIHdheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBGaXggcHJpbnQgc3RhdGVtZW50IGluIGFuIGV2ZW4gbW9yZSBwb3J0YWJsZSB3YXkuCgoyMDA3LTAxLTI5IDEzOjQwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1JPVU5EX0RPV05fKiBtYWNyb3MgKCM0MDE3ODEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBHU1RfUk9VTkRfRE9XTl8qIG1hY3JvcyAoIzQwMTc4MSkuCgoyMDA3LTAxLTI3IDE4OjQ0OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRG9jdW1lbnQgcmVnaXN0cnkgc2lnbmFscyBhbmQgbWFrZSBndGstZG9jIHBpY2sgdGhlbSB1cCAoIzQwMTM4MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9jbGFzc19pbml0KToKCSAgRG9jdW1lbnQgcmVnaXN0cnkgc2lnbmFscyBhbmQgbWFrZSBndGstZG9jIHBpY2sgdGhlbSB1cCAoIzQwMTM4MSkuCgoyMDA3LTAxLTI2IDE4OjI0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IEFkZCBzb21lIGF1ZGlvY29udmVydHMgYW5kIGF1ZGlvcmVzYW1wbGUgdG8gdGhlIHBpcGVsaW5lLCBhbmQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBBZGQgc29tZSBhdWRpb2NvbnZlcnRzIGFuZCBhdWRpb3Jlc2FtcGxlIHRvIHRoZSBwaXBlbGluZSwgYW5kIHNvbWUKCSAgbW9yZSBjb21tZW50cyBhbmQgZXJyb3IgaGFuZGxpbmcuCgoyMDA3LTAxLTI2IDEzOjA3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy86IEZpeCB0eXBvICgjNDAwOTg3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBGaXggdHlwbyAoIzQwMDk4NykuCgoyMDA3LTAxLTI2IDA5OjM3OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogSW5pdCBjYXBzIGZsYWdzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICBJbml0IGNhcHMgZmxhZ3MgdG9vLgoKMjAwNy0wMS0yNSAxNzo1NDowNyArMDAwMCAgSmluZHJpY2ggTWFrb3ZpY2thIDxqaW5kcmljaC5tYWtvdmlja0BpdG9uaXMudHY+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogSWYgbm90IHVzaW5nIG1tYXAnZWQgZmlsZXMgdHJ5IHRvIHNlZWsgdG8gdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZSBzdGFydCB0byBkZXRlcm1pbmUgd2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKaW5kcmljaCBNYWtvdmlja2EgPGppbmRyaWNoLm1ha292aWNrIGF0IGl0b25pcyBkb3QgdHY+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBJZiBub3QgdXNpbmcgbW1hcCdlZCBmaWxlcyB0cnkgdG8gc2VlayB0byB0aGUgZW5kIGluc3RlYWQgb2YgdGhlCgkgIHN0YXJ0IHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGNhbiBzZWVrIGF0IGFsbC4gVGhpcyBmaXhlcyB0aGUgY2FzZQoJICBvZiAyR0IrIGZpbGVzIG92ZXIgTkZTLCB3aGVyZSBzZWVrcyBpbiB0aGUgZmlyc3QgMkdCIGNhbiBzdWNjZWVkIGJ1dAoJICBzZWVrcyBmb3IgZXZlcnl0aGluZyBhZnRlcndhcmRzIGZhaWwuIEZpeGVzICM0MDA2NTYKCjIwMDctMDEtMjUgMTc6NDE6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBBZGQgc29tZSByZWZjb3VudCBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChfZ3N0X2NhcHNfZnJlZSksIChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgQWRkIHNvbWUgcmVmY291bnQgZGVidWdnaW5nLgoJICBNYWtlIGdzdF9zdGF0aWNfY2Fwc19nZXQgdGhyZWFkc2FmZSwgd2hpY2ggaXMgbmVlZGVkIHdoZW4gYXV0b3BsdWdnaW5nCgkgIGluIG11bHRpcGxlIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwNy0wMS0yNSAxMDo1MDowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBBUEk6IGdzdF9hZGFwdGVyX2NvcHkoKSB0aGF0IGNhbiByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgd2hlbiBnZXR0aW5nIGRhdGEgZnJvbSB0aGUgYWRhcHRlci4gRml4ZXMgIzM4ODIwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYXZpZCBTY2hsZWVmIDxkcyBhdCBzY2hsZWVmIGRvdCBvcmc+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2NvcHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBBUEk6IGdzdF9hZGFwdGVyX2NvcHkoKSB0aGF0IGNhbiByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgd2hlbgoJICBnZXR0aW5nIGRhdGEgZnJvbSB0aGUgYWRhcHRlci4gRml4ZXMgIzM4ODIwMS4KCjIwMDctMDEtMjUgMTA6MTQ6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW4gcHJpbnQgc3RhdGVtZW50cywgIiV4IiBpcyBmb3IgZ3VpbnQuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBJbiBwcmludCBzdGF0ZW1lbnRzLCAiJXgiIGlzIGZvciBndWludC4gRml4ZXMgYnVpbGQgb24gbWFjb3N4LgoKMjAwNy0wMS0yNCAxMTozMjowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBTbWFsbCBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApOgoJICBTbWFsbCBmaXguCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBJbXBsZW1lbnQgc2luZ2xlIHF1ZXVlIGdyb3d0aCBzeXN0ZW0uCgkgIFRoaXMgdXNlcyB0aGUgZXh0cmEtc2l6ZSBwcm9wZXJ0aWVzLCBhbmQgd2lsbCBncm93IHNpbmdsZSBxdWV1ZXMgYnkKCSAgdGhhdCBtdWNoIGlmIG9uZSBnb2VzIGZ1bGwgd2hlcmVhcyB0aGVyZSBhcmUgb3RoZXJzIGVtcHR5LiBUaGlzIGlzCgkgIGNhbGxlZCBleHRyYS1tb2RlIGluIHRoZSBjb2RlLgoJICBXaGVuIGEgc2luZ2xlIHF1ZXVlJ3MgbGV2ZWxzIGdvIGJhY2sgYmVsb3cgdGhlIGluaXRpYWwgbWF4LXNpemUKCSAgbGltaXRzLCBpdCBpcyBubyBsb25nZXIgaW4gZXh0cmEtbW9kZS4gVGhpcyBpcyB0byBlbnN1cmUgd2UgZG9uJ3QKCSAgY29uc3VtZSB0b28gbXVjaCBtZW1vcnkuCgkgIEZpeGVzICMzOTk4NzUKCjIwMDctMDEtMjMgMTM6NTA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IE1ha2Ugd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKSBjYWxscyBhIGJpdCBtb3JlIGV4cGxpY2l0LCBzbyB0aGF0IGl0J3MgbW9yZSBvYnZpb3VzIHRvIGFwcGxpY2F0aW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCk6CgkgIE1ha2Ugd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKSBjYWxscyBhIGJpdCBtb3JlIGV4cGxpY2l0LAoJICBzbyB0aGF0IGl0J3MgbW9yZSBvYnZpb3VzIHRvIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgd2hhdCB0aGV5IG5lZWQKCSAgdG8gZG8gaWYgYSB1c2VyIGZpbGVzIGEgYnVnIGFnYWluc3QgdGhlaXIgYXBwbGljYXRpb24uCgoyMDA3LTAxLTIyIDE2OjAwOjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFJlbW92ZSBwcmV2aW91cyBoYWNrIG9mIHVuc2V0dGluZyB0aGUgZmx1c2hpbmcgZmxhZyBmb3IgdGhlIHNvdXJjZSBwYWQgaW5zdGVhZCBvZiBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgUmVtb3ZlIHByZXZpb3VzIGhhY2sgb2YgdW5zZXR0aW5nIHRoZSBmbHVzaGluZyBmbGFnIGZvciB0aGUgc291cmNlIHBhZAoJICBpbnN0ZWFkIG9mIGFjdGl2YXRpbmcgaXQuIEluc3RlYWQsIGZpeCB0aGUgc291cmNlIHBhZCBhY3RpdmF0ZSBmdW5jdGlvbgoJICBzbyB0aGF0IGl0IG5vIGxvbmdlciBkZXBlbmRzIG9uIGhhdmluZyBhIHBhcmVudCBzZXQgb3Igbm90LgoKMjAwNy0wMS0yMiAxNDozMDoyNyArMDAwMCAgQ2FybG9zIFNhbm1hcnRpbiBEb21pbmd1ZXogPGNzYW5tYXJ0aW5AaWdhbGlhLmNvbT4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBGaXggZXhhbXBsZSBjb2RlLCBnc3RfZWxlbWVudF91bnJlZigpIGRvZXNuJ3QgZXhpc3QgYW55IGxvbmdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDYXJsb3MgU2FubWFydGluIERvbWluZ3VleiA8Y3Nhbm1hcnRpbkBpZ2FsaWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBGaXggZXhhbXBsZSBjb2RlLCBnc3RfZWxlbWVudF91bnJlZigpIGRvZXNuJ3QgZXhpc3QgYW55IGxvbmdlci4KCjIwMDctMDEtMjEgMjA6MjQ6MTEgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCB0d28gZG9jcyB0eXBvZXMgKCMzOTkwOTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHdvIGRvY3MgdHlwb2VzICgjMzk5MDk0KS4KCjIwMDctMDEtMTkgMDk6MTU6MjEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBnc3QtcGx1Z2lucy1iYXNlL2dzdC91dGlscy8gdG8gTERfTElCUkFSWV9QQVRIIHNvIHRoYXQgcGx1Z2lucyBkZXBlbmRpbmcgb24gbGliZ3N0YmFzZXUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgZ3N0LXBsdWdpbnMtYmFzZS9nc3QvdXRpbHMvIHRvIExEX0xJQlJBUllfUEFUSCBzbyB0aGF0IHBsdWdpbnMKCSAgZGVwZW5kaW5nIG9uIGxpYmdzdGJhc2V1dGlscyBjYW4gd29yayBpbiB1bmluc3RhbGxlZCBlbnZpcm9ubWVudC4KCjIwMDctMDEtMTggMTI6MDA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEFkZCBtb3JlIGRvY3MgcmVnYXJkaW5nIHRhZyBtZXJnZS1tb2RlcyBhbmQgd2hlbiB0byBzZW5kIHRhZ3MuIEZpeCAnc2luY2UnIHN0YXRlbWVudCBmb3IgbmV3IHRhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIEFkZCBtb3JlIGRvY3MgcmVnYXJkaW5nIHRhZyBtZXJnZS1tb2RlcyBhbmQgd2hlbiB0byBzZW5kIHRhZ3MuIEZpeCAnc2luY2UnCgkgIHN0YXRlbWVudCBmb3IgbmV3IHRhZy4KCjIwMDctMDEtMTcgMTQ6MzM6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiBkeW5hbWljYWxseSBjcmVhdGluZyBzaW5nbGUgcXVldWVzLCBhY3RpdmF0ZSBzaW5rcGFkIGJlZm9yZSBhZGRpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBXaGVuIGR5bmFtaWNhbGx5IGNyZWF0aW5nIHNpbmdsZSBxdWV1ZXMsIGFjdGl2YXRlIHNpbmtwYWQgYmVmb3JlIGFkZGluZwoJICBpdC4KCSAgV2Ugc2hvdWxkIGJlIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGZvciB0aGUgc291cmNlIHBhZCwgYnV0IHdlIGNhbid0CgkgIHNpbmNlIGl0IHdvdWxkIGNhbGwgYSBtZXRob2Qgd2hpY2ggbmVlZHMgdGhlIHBhcmVudCB0byBiZSBzZXQgaW4gb3JkZXIKCSAgdG8gd29yayBwcm9wZXJ0bHkuIEluc3RlYWQgb2YgYWN0aXZhdGluZyB0aGUgc291cmNlIHBhZCwgd2UganVzdCB1bnNldAoJICB0aGUgZmx1c2hpbmcgZmxhZywgd2hpY2ggaXMgdGhlIG1pbmltYWwgcmVxdWlyZW1lbnQgZm9yIGFkZGluZyBhIHBhZAoJICB0byBhbiBlbGVtZW50IGluIGEgc3RhdGUgZ3JlYXRlciB0aGFuIFJFQURZLgoKMjAwNy0wMS0xNyAxNDoyNjo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIERZTERfTElCUkFSWV9QQVRIIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gYWxzbyB1c2UgdGhpcyBzY3JpcHQgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgRFlMRF9MSUJSQVJZX1BBVEggZGVjbGFyYXRpb25zIHNvIHdlIGNhbiBhbHNvIHVzZSB0aGlzIHNjcmlwdCBvbgoJICBNYWMgT1MgWC4KCjIwMDctMDEtMTcgMTI6MzE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBBQkkgc3RydWN0cyBmb3IgSFBQQSAoc2VlICMzOTM3OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJICBBZGQgQUJJIHN0cnVjdHMgZm9yIEhQUEEgKHNlZSAjMzkzNzk2KS4KCjIwMDctMDEtMTYgMDk6NTc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBBY3R1YWxseSB3cml0ZSBBQkkgc3RydWN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gdGhlIEdTVF9BQkkgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19hYmlfbGlzdCk6CgkgIEFjdHVhbGx5IHdyaXRlIEFCSSBzdHJ1Y3RzIHRvIHRoZSBmaWxlIHNwZWNpZmllZCBpbiB0aGUgR1NUX0FCSQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYXMgdGhlIG1lc3NhZ2Ugd2UgcHJpbnQgY2xhaW1zIHdlIHdvdWxkLgoKMjAwNy0wMS0xNSAxNDo1MTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogRml4IGhlYWRlciBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICBGaXggaGVhZGVyIGNvbW1lbnQuCgoyMDA3LTAxLTE1IDE0OjM5OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBDaGFuZ2UgdGFnIHR5cGUgZnJvbSBTVFJJTkcgdG8gRE9VQkxFLiBBcHBseSBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgbXkgcHJldmlvdXMgdHdvIGVudHJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgQ2hhbmdlIHRhZyB0eXBlIGZyb20gU1RSSU5HIHRvIERPVUJMRS4gQXBwbHkgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIG15CgkgIHByZXZpb3VzIHR3byBlbnRyaWVzLgoKMjAwNy0wMS0xNSAxMzo1NzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkIHRhZyBzdXBwb3J0IGZvciBiZWF0LXBlci1taW51dGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgYWRkIHRhZyBzdXBwb3J0IGZvciBiZWF0LXBlci1taW51dGUKCjIwMDctMDEtMTUgMTI6MTg6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiB1c2UgZ2xpYiB0eXBlcywgY2xlYW51cCBjb21tZW50cywgaW1wZW1lbnQgaW50ZXJmYWNlcyBhbmQgdXJpLXR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksIChnc3RfcmVnaXN0cnlfYmluYXJ5X21ha2VfZGF0YSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICB1c2UgZ2xpYiB0eXBlcywgY2xlYW51cCBjb21tZW50cywgaW1wZW1lbnQgaW50ZXJmYWNlcyBhbmQgdXJpLXR5cGVzCgoyMDA3LTAxLTEzIDEwOjMzOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBBbGxvdyBnZXRyYW5nZSgpIHRvIHJldHVybiBidWZmZXJzIHdpdGggb3RoZXIgY2Fwcywgd2hpbGUgd2UgZmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogQWxsb3cKCSAgZ2V0cmFuZ2UoKSB0byByZXR1cm4gYnVmZmVycyB3aXRoIG90aGVyIGNhcHMsIHdoaWxlIHdlIGZpeAoJICBkZW11eGVycyBhbmQgdHlwZWZpbmQsIG9yIG90aGVyd2lzZSBjaGFuZ2UgcGFydC1uZWdvdGlhdGlvbi50eHQuCgoyMDA3LTAxLTEyIDIxOjEzOjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKTogRmFjdG9yIHN0YXJ0L3N0b3AgaW50byB0aGlzIHByaXZhdGUgZnVuY3Rpb24gaW5zdGVhZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgIEZhY3RvciBzdGFydC9zdG9wIGludG8gdGhpcyBwcml2YXRlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcGFydGlhbGx5CgkgIGluIGFjdGl2YXRlIGZ1bmN0aW9ucyBhbmQgcGFydGlhbGx5IGluIHRoZSBjaGFuZ2Vfc3RhdGUgZnVuY3Rpb24uCgkgIEZpeGVzIHNldHVwIGJlZm9yZSB0aGUgZWxlbWVudCBoYXMgY2hhbmdlZCBmcm9tIFJFQURZLT5QQVVTRUQsIGFzCgkgIGlzIHRoZSBjYXNlIGluIHB1bGwtbW9kZSBwaXBlbGluZXMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKTogUmVmYWN0b3IgdG8gdXNlCgkgIGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSgpLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IFJlbW92ZWQsIG5vdCBuZWVkZWQgYW55IG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKToKCSAgVHJ1bmNhdGUgYmVmb3JlIGZpeGF0aW5nLgoKMjAwNy0wMS0xMiAxODowNjoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKTogRG9uJ3Qgc2V0X2NhcHMoKSBpZiB0aGUgcmVzdWx0IG9mIGZpeGF0aW5nIGlzIEFOWSwgYXMgaXQnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6CgkgIERvbid0IHNldF9jYXBzKCkgaWYgdGhlIHJlc3VsdCBvZiBmaXhhdGluZyBpcyBBTlksIGFzIGl0J3Mgbm90CgkgIHN1cHBvcnRlZCwgYW5kIG5vdCBuZWNlc3NhcnkgaW4gdGhlIGNhc2Ugb2YgYSBsaW5rIHdpdGggbm8KCSAgdGVtcGxhdGUgY2FwcyBvbiBlaXRoZXIgc2lkZS4gRml4ZXMgdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjIGluCgkgIHNvbWUgcHVsbC1tb2RlIHRlc3RzLgoKMjAwNy0wMS0xMiAxNTo1NjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKF9Hc3RCYXNlVHJhbnNmb3JtUHJpdmF0ZSk6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChfR3N0QmFzZVRyYW5zZm9ybVByaXZhdGUpOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQsIGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBUcmFjayB0aGUgYWN0aXZhdGlvbiBtb2RlLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBJbiBwdWxsIG1vZGUsIHdoZW4gYWN0aXZhdGluZyB0aGUKCSAgc3JjIHBhZCwgYWZ0ZXIgYWN0aXZhdGluZyB0aGUgc2luayBwYWQsIGFjdGl2YXRlIHRoZSBzaW5rIHBhZCdzCgkgIHBlZXIsIGFzIGRpc2N1c3NlZCBpbiBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2ZpeGF0ZSk6IEFkZCBmaXhhdGUKCSAgdm1ldGhvZCwgYXMgaW4gYmFzZXNpbmsuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBSZWZvcm1hdCBkb2NzLCBhZGQgZml4YXRlIHZtZXRob2QuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKTogSW4gcHVsbAoJICBtb2RlLCBmaXJzdCBwcm94eSB0aGUgc2V0Y2FwcyB0byB0aGUgcGVlciBwYWQuCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9maXhhdGUpOiBBZGQgYSBmaXhhdGUgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUKCSAgbmV3IGZpeGF0ZSB2bWV0aG9kLgoJICAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2FjdGl2YXRlX3B1bGwpOiBSZW5hbWUgZnJvbQoJICBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwuCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKTogTmV3IGZ1bmN0aW9uLCBwZXJmb3JtcyBuZWdvdGlhdGlvbgoJICBpbiBwdWxsIG1vZGUgYmVmb3JlIGNhbGxpbmcgOjphY3RpdmF0ZV9wdWxsKCkuCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKTogQWN0dWFsbHkgY2FsbCB0aGUgYWN0aXZhdGVfcHVsbAoJICB2bWV0aG9kIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIEkgaGF2ZSBubyBpZGVhIGhvdwoJICB0aGlzIHdvcmtlZCBiZWZvcmUuIE5lZ290aWF0ZSBiZWZvcmUgY2FsbGluZyBhY3RpdmF0ZV9wdWxsLgoKMjAwNy0wMS0xMiAxNTo0ODowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBSZWZ1c2UgdG8gYWN0aXZhdGUgdW5saW5rZWQgc2luayBwYWRzIGluIHB1bGwgbW9kZS4gSW4gYWRkaXRpb24gdG8gYmVpbmcgY29ycmVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogUmVmdXNlIHRvIGFjdGl2YXRlIHVubGlua2VkCgkgIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGNvcnJlY3QsIGZpeGVzCgkgIGZpbGVzcmMgISBkZWNvZGViaW4gISBpZGVudGl0eSAhIGZha2VzaW5rLgoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IERvbid0IGNhbGwKCSAgZ3N0X3BhZF9zZXRfY2FwcygpIGlmIHRoZSBjYXBzIGNoYW5nZXM7IGluc3RlYWQgZXJyb3Igb3V0IHdpdGgKCSAgR1NUX0ZMT1dfTk9UX05FR09USUFURUQsIGFzIGRpc2N1c3NlZCBpbiBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCjIwMDctMDEtMTIgMTU6Mzk6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCBtb3JlIHBvbGljeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoIG1vcmUgcG9saWN5LgoKMjAwNy0wMS0xMiAxMjo0ODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrLzogQWRkIEdfQkVHSU5fREVDTFMgYW5kIEdfRU5EX0RFQ0xTLiBNb3ZlIEdTVF9DSEVDS19NQUlOIHdoZXJlIGl0IGJlbG9uZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIEdfQkVHSU5fREVDTFMgYW5kIEdfRU5EX0RFQ0xTLiBNb3ZlIEdTVF9DSEVDS19NQUlOIHdoZXJlIGl0CgkgIGJlbG9uZ3MuCgoyMDA3LTAxLTEyIDEwOjUzOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgbWluaW1hbCB1bml0IHRlc3QgZm9yIGJlZm9yZW1lbnRpb25lZCBHc3RUYWdTZXR0ZXIgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfZHVtbXlfZW5jX2FkZF9pbnRlcmZhY2VzKSwKCSAgKGdzdF9kdW1teV9lbmNfYmFzZV9pbml0KSwgKGdzdF9kdW1teV9lbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZHVtbXlfZW5jX2luaXQpLCAodGFnX2xpc3RfZm9yZWFjaCksICh0YWdfc2V0dGVyX2xpc3RfbGVuZ3RoKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc2V0dGVyX3N1aXRlKToKCSAgQWRkIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBiZWZvcmVtZW50aW9uZWQgR3N0VGFnU2V0dGVyIGJ1Zy4KCjIwMDctMDEtMTIgMTA6NDg6NDkgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IGdzdF90YWdfbGlzdF9tZXJnZSgpIHJldHVybnMgYSBuZXcgbGlzdCwgc28gaXQncyBub3QgdGhlIGJlc3QgaWRlYSB0byBpbmdvcmUgaXRzIHJldHVybiB2YWx1ZS4gRWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKToKCSAgZ3N0X3RhZ19saXN0X21lcmdlKCkgcmV0dXJucyBhIG5ldyBsaXN0LCBzbyBpdCdzIG5vdCB0aGUgYmVzdCBpZGVhCgkgIHRvIGluZ29yZSBpdHMgcmV0dXJuIHZhbHVlLiBFZmZlY3RpdmVseSBtZWFudCB0aGF0IHRhZ3MgY291bGQgb25seQoJICBiZSBtZXJnZWQgb24gYSBHc3RUYWdTZXR0ZXIgb25jZSB1c2luZyBfbWVyZ2VfdGFncygpLiBGaXhlcyAjMzk1NTU0LgoJICBBbHNvIGFkZCBmdW5jdGlvbiBndWFyZCB0byByZXF1aXJlIGEgbm9uLU5VTEwgdGFnbGlzdCBhcyBpbnB1dCAoaGFzCgkgIGFsd2F5cyBiZWVuIHNvIGR1ZSB0byBnc3RfdGFnX2xpc3RfY29weSgpLCBqdXN0IG1ha2luZyBpdCBleHBsaWNpdCkuCgoyMDA3LTAxLTExIDE1OjAzOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogU29tZSBhZGRpdGlvbnM6IG1lbnRpb24gbmV3IEFQSSB0aGF0IGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgYXQgdGhlIHZhcmlvdXMgc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgYWRkaXRpb25zOiBtZW50aW9uIG5ldyBBUEkgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHRoZQoJICB2YXJpb3VzIHN0YWdlczsgc2hvcnQgYmxvYiBhYm91dCBuZXcgZ3N0LWluc3BlY3QgaW50cm9zcGVjdGlvbgoJICBvcHRpb247IG1lbnRpb24gcG90ZW50aWFsIGZ1dHVyZSBwcm9ibGVtIHdpdGggcGx1Z2lucyB0aGF0IGhhdmUKCSAgYSBkeW5hbWljIGxpc3Qgb2YgZWxlbWVudHMgKHN1Y2ggYXMgbGFkc3BhLCBwaXRmZGxsLCBsaWJ2aXN1YWwpLgoKMjAwNy0wMS0xMSAxNDoxNjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBvcHRpb24gdG8gZ3N0LWluc3BlY3QsIHNvIHdlIGNhbiBpbnRyb3NwZWN0IHBsdWdpbiBmaWxlcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKSwKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX3Byb3RvY29scyksCgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mbyksIChtYWluKToKCSAgQWRkIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIG9wdGlvbiB0byBnc3QtaW5zcGVjdCwgc28gd2UgY2FuCgkgIGludHJvc3BlY3QgcGx1Z2luIGZpbGVzIGFuZCBnZXQgbWFjaGluZS1wYXJzYWJsZSBvdXRwdXQgdGhhdCBjb3JyZXNwb25kcwoJICB0byB0aGUgbGFzdCBiaXQgb2YgdGhlIG1pc3NpbmctcGx1Z2luIGluc3RhbGxlciBzdHJpbmcgKHNtYWxsIGdvdGNoYToKCSAgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCByYW5rcykuCgoyMDA3LTAxLTExIDEzOjQ1OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb21taXQgYmluYXJ5IHJlZ2lzdHJ5IChkaXNhYmxlZCBieSBkZWZhdWx0LCBzZWUgIzM1OTY1MykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgY29tbWl0IGJpbmFyeSByZWdpc3RyeSAoZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2VlICMzNTk2NTMpCgoyMDA3LTAxLTExIDEwOjQ4OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBGaXggJ21ha2UgY2hlY2snIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAodGVzdF9nZXRfYWxsb3dlZF9jYXBzKToKCSAgRml4ICdtYWtlIGNoZWNrJyB0b28uCgoyMDA3LTAxLTEwIDIxOjI0OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogRml4IGEgdHlwbywgYWRkIGEgY291cGxlIG5vdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogRml4IGEgdHlwbywgYWRkIGEgY291cGxlCgkgIG5vdGVzLgoKMjAwNy0wMS0xMCAyMToxNTowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoLCB1bSwgb25lIHdheSB0aGF0IHB1bGwtbW9kZSBuZWdvdGlhdGlvbiBtaWdodCB3b3JrPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGgsIHVtLCBvbmUgd2F5IHRoYXQKCSAgcHVsbC1tb2RlIG5lZ290aWF0aW9uIG1pZ2h0IHdvcms/CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKTogUmVtb3ZlIHRoZSByZXN0cmljdGlvbgoJICB0aGF0IHRoZSBwYWQgbXVzdCBiZSBhIHNyYyBwYWQ7IG1ha2VzIHNlbnNlIHRvIGNhbGwgaXQgdGhlIG90aGVyCgkgIHdheSBpbiBwdWxsIG1vZGUsIGFuZCB0aGUgbG9naWMgaXMgc3ltbWV0cmljIGFueXdheS4KCjIwMDctMDEtMTAgMTk6MjU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEluY2x1ZGUgPHN0ZGlvLmg+IGZvciBmc2Vla28oKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBJbmNsdWRlIDxzdGRpby5oPiBmb3IgZnNlZWtvKCkuCgoyMDA3LTAxLTEwIDEwOjIxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IFJlc2VydmUgTEFURU5DWSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFJlc2VydmUgTEFURU5DWSBldmVudC4KCjIwMDctMDEtMDkgMTg6MDk6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogVXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFVwZGF0ZXMuCgoyMDA3LTAxLTA5IDE1OjM4OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBVcGRhdGVzLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICBTbWFsbCB0eXBvIGZpeGVzLgoKMjAwNy0wMS0wOSAxNDozODoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6IElnbm9yZSB0ZXN0LXJlZ2lzdHJ5LnhtbCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOgoJICBJZ25vcmUgdGVzdC1yZWdpc3RyeS54bWwgYXMgd2VsbC4KCjIwMDctMDEtMDkgMTI6MzQ6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IHVucmVmIGRhdGEgYXQgdGhlIGVuZCB3aGVuIHdlIGFyZSBkb25lIHdpdGggdGhlIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgdW5yZWYgZGF0YSBhdCB0aGUgZW5kIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCB0aGUgcGFkLgoKMjAwNy0wMS0wOCAyMDozMDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF91cGRhdGVfcmVnaXN0cnkoKSAoIzM5MTI5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAobG9hZF9wbHVnaW5fZnVuYyksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpLCAoZ3N0X3VwZGF0ZV9yZWdpc3RyeSk6CgkgICogZ3N0L2dzdC5oOgoJICBBUEk6IGFkZCBnc3RfdXBkYXRlX3JlZ2lzdHJ5KCkgKCMzOTEyOTYpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBTaW1wbGUgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA3LTAxLTA4IDE2OjIzOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFBsdWdpbiBleHRlbnNpb24gb24gSFAtVVggaXMgLnNsLCBhZGQgdGhhdCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZCBwbHVnaW4gZXh0ZW5zaW9ucyAoc2VlICMzOTM3OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBQbHVnaW4gZXh0ZW5zaW9uIG9uIEhQLVVYIGlzIC5zbCwgYWRkIHRoYXQgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQKCSAgcGx1Z2luIGV4dGVuc2lvbnMgKHNlZSAjMzkzNzk2KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHVsb25nID0+IGd1bG9uZy4gRml4ZXMgY29tcGlsYXRpb24gd2l0aCBIUC1VWCBjb21waWxlci4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBjb21waWxhdGlvbiBpZiB2YWxncmluZCBoZWFkZXJzIGFyZSBub3QgYXZhaWxhYmxlLgoKMjAwNy0wMS0wNyAxMDoyMTozMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9uLgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgQWRkIGdzdGRhdGFxdWV1ZS5jIHRvIHRoZSBidWlsZC4KCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgQWRkIGdzdG11bHRpcXVldWUuYyB0byB0aGUgYnVpbGQuCgoyMDA3LTAxLTA2IDE3OjE4OjAzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE5ldyBHc3RCYXNlU2lua0NsYXNzIHZtZXRob2QsIGFjdGl2YXRlX3B1bGwoKSwgcHJvdmlkaW5nIGZvciBhIHdheSB0byBzcGVjaWFsaXplIHRoZSBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBOZXcgR3N0QmFzZVNpbmtDbGFzcyB2bWV0aG9kLAoJICBhY3RpdmF0ZV9wdWxsKCksIHByb3ZpZGluZyBmb3IgYSB3YXkgdG8gc3BlY2lhbGl6ZSB0aGUgcHJvY2VzcyBvZgoJICBzcGF3bmluZyBhIHRocmVhZCB0byBwdWxsIG9uIHRoZSBzaW5rIHBhZC4gVGhlcmUgaXMgYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCkKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1c2gsIGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKQoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KTogUmVuYW1lZCBwYWQgYWN0aXZhdGlvbiBmdW5jdGlvbnMgKGluc2VydGluZwoJICAiX3BhZCIgaW4gdGhlaXIgbmFtZXMpLiBSZWZhY3RvciB0byB1c2UgdGhlIG5ldyBhY3RpdmF0ZV9wdWxsCgkgIHZtZXRob2QsIGFzIGFwcHJvcHJpYXRlLgoJICAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0LCBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBTZXQgdGhlCgkgIGRlZmF1bHQgYWN0aXZhdGVfcHVsbCBmdW5jdGlvbiB0byBzdGFydCBhIHRhc2sgcHVsbGluZyBmcm9tIHRoZQoJICBzaW5rIHBhZCwgYXMgYmVmb3JlLgoKMjAwNy0wMS0wNiAxNzowOToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogU2V0IGNhcHMgb24gdGhlIHBhZHMgaWYgbmVjZXNzYXJ5LCBhcyBpbiBwdXNoKCkvY2hhaW4oKS4gVXBkYXRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IFNldCBjYXBzCgkgIG9uIHRoZSBwYWRzIGlmIG5lY2Vzc2FyeSwgYXMgaW4gcHVzaCgpL2NoYWluKCkuIFVwZGF0ZSBkb2NzLgoJICBTaG91bGRuJ3QgYWZmZWN0IGV4aXN0aW5nIHB1bGwoKSB1c2FnZSBhcyBpdCBpcyBjdXJyZW50bHkgb25seQoJICBiZWluZyB1c2VkIG9uIGJ1ZmZlcnMgd2l0aG91dCBjYXBzLgoKMjAwNy0wMS0wNSAxNjozNjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2FsbCBnX3RocmVhZF9pbml0KCkgZmlyc3QgdGhpbmcgaW4gZ3N0X2luaXQoKSAvIGdzdF9jaGVja19pbml0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoaW5pdF9wcmUpOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSBmaXJzdCB0aGluZyBpbiBnc3RfaW5pdCgpIC8gZ3N0X2NoZWNrX2luaXQoKS4KCSAgV2hlbiBpbml0aWFsaXNhdGlvbiBpcyBkb25lIHZpYSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgYW5kCgkgIEdPcHRpb24gcGFyc2luZywgaXNzdWUgYSB3YXJuaW5nIGlmIHRoZSBHTGliIHRocmVhZCBzeXN0ZW0gaGFzIG5vdAoJICBiZWVuIGluaXRpYWxpc2VkIHlldCBieSB0aGUgdGltZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgaXMKCSAgY2FsbGVkLCBhcyBpdCdzIHF1aXRlIGxpa2VseSBvdGhlciBHTGliIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgaGF2ZSBiZWVuIGNhbGxlZCBhbHJlYWR5IHRoZW4sIGFuZAoJICBnX3RocmVhZF9pbml0KCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBHTGliIGZ1bmN0aW9uLiBUaGUKCSAgYXBwbGljYXRpb24gaW4gcXVlc3Rpb24gbXVzdCBiZSBmaXhlZCBpbiB0aGF0IGNhc2UsIHNpbmNlIG1lbW9yeQoJICBjb3JydXB0aW9uIG1pZ2h0IGhhcHBlbiBvdGhlcndpc2UuCgkgIFdlIGlzc3VlIHRoZSB3YXJuaW5nIGJlY2F1c2UgZXZlbiBpZiB0aGUgR0xpYiBmb2xrcyBkZWNpZGUgdG8gd29yawoJICBhcm91bmQgdGhlIHByb2JsZW0gb24gdGhlaXIgZW5kIGluIGZ1dHVyZSwgdGhpcyBpcyBzdGlsbCBhbiBpc3N1ZQoJICB3aXRoIGFsbCBHTGliIHZlcnNpb25zID49IDIuMTAuMCwgc28gd2Ugc2hvdWxkIHdhcm4gdW50aWwgd2UgZGVwZW5kCgkgIG9uIGEgR0xpYiB2ZXJzaW9uIHdlIGtub3cgdG8gYmUgc2FmZS4KCSAgVXBkYXRlIGRvY3VtZW50YXRpb24gYXMgd2VsbC4KCSAgQ2xvc2VzIGJ1ZyAjMzkxMjc4LgoKMjAwNy0wMS0wNSAxNTo1NToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQ2FsbCBnX3RocmVhZF9pbml0KCkgcmVhbGx5IHJlYWxseSBlYXJseSwgYmVmb3JlIGFueSBvdGhlciBHTGliIGZ1bmN0aW9uIChzZWUgIzM0MjU2NCBhbmQgcmVjZW50IGRpc2N1c3Npb24gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIHJlYWxseSByZWFsbHkgZWFybHksIGJlZm9yZSBhbnkgb3RoZXIgR0xpYgoJICBmdW5jdGlvbiAoc2VlICMzNDI1NjQgYW5kIHJlY2VudCBkaXNjdXNzaW9uIG9uIGd0ay1kZXZlbC1saXN0KS4KCjIwMDctMDEtMDUgMTM6MjM6MDIgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBnc3QvOiBPbiB3aW4zMiwgYWxsIHRoZSBfX2RlY2xzcGVjIHN0dWZmIGZvciBzeW1ib2wgZXhwb3J0aW5nIGlzIGFwcGFyZW50bHkgb25seSBuZWVkZWQgd2l0aCBNU1ZDLCBidXQgZG9lc24ndCB3b3JrIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBWaW5jZW50IFRvcnJpICA8dnRvcnJpIGF0IHVuaXYtZXZyeSBkb3QgZnI+CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE9uIHdpbjMyLCBhbGwgdGhlIF9fZGVjbHNwZWMgc3R1ZmYgZm9yIHN5bWJvbCBleHBvcnRpbmcgaXMKCSAgYXBwYXJlbnRseSBvbmx5IG5lZWRlZCB3aXRoIE1TVkMsIGJ1dCBkb2Vzbid0IHdvcmsgd2l0aCBNaW5nVy4KCSAgRml4ZXMgY29tcGlsYXRpb24gd2l0aCBNaW5nVyBhbmQgIzM5MTkwOS4KCjIwMDctMDEtMDUgMTE6NTc6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2hhbmdlIHNvbWUgR1NUX0VSUk9SX09CSkVDVCB0aGF0IGFyZW4ndCByZWFsbHkgZXJyb3JzIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBDaGFuZ2Ugc29tZSBHU1RfRVJST1JfT0JKRUNUIHRoYXQgYXJlbid0IHJlYWxseSBlcnJvcnMgdG8KCSAgR1NUX1dBUk5JTkdfT0JKRUNUIGluIG9yZGVyIHRvIHJlZHVjZSB0ZXJtaW5hbCBzcGFtLgoKMjAwNy0wMS0wNCAxMzo1NDoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGRpc2FibGUgdGVzdCBhZ2FpbiwgYXMgdGhlcmUgc2VlbSB0byBiZSBzdGlsbCByYWNlIHByb2JsZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHRlc3QgYWdhaW4sIGFzIHRoZXJlIHNlZW0gdG8gYmUgc3RpbGwgcmFjZSBwcm9ibGVtcwoKMjAwNy0wMS0wNCAxMzozNzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbiwgYWRkIHRlc3RzIGZvciB0aGUgbGVha3kgYmVoYXZpb3VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4sIGFkZCB0ZXN0cyBmb3IgdGhlIGxlYWt5IGJlaGF2aW91cgoKMjAwNy0wMS0wMiAxNzowMTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbXBpbGUgYWRhcHRlciB0ZXN0L2V4YW1wbGUgb25seSBpZiB0aGUgcmVxdWlyZWQgaGVhZGVycyBhcmUgYXZhaWxhYmxlIChmaXhlcyAjMzkxOTE1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBDb21waWxlIGFkYXB0ZXIgdGVzdC9leGFtcGxlIG9ubHkgaWYgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYXJlCgkgIGF2YWlsYWJsZSAoZml4ZXMgIzM5MTkxNSkuCgoyMDA3LTAxLTAyIDA5OjMxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0ZWxsIHVzIHdoYXQncyBub3QgaW1wbGVtZW50ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlbGwgdXMgd2hhdCdzIG5vdCBpbXBsZW1lbnRlZAoKMjAwNy0wMS0wMiAwOTozMToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJ1bXAgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBidW1wIHRvIENWUwoKMjAwNy0wMS0wMiAwNjoxNDowNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFJlc3RvcmUgdGhlIHByZXZpb3VzIHNpZ25hbCBoYW5kbGVyIGZvciBTSUdTRUdWIGluc3RlYWQgb2Ygc2V0dGluZyB0byBkZWZhdWx0LCBzaW5jZSB3ZSBtYXkgaGF2ZSBzdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBSZXN0b3JlIHRoZSBwcmV2aW91cyBzaWduYWwgaGFuZGxlciBmb3IgU0lHU0VHViBpbnN0ZWFkIG9mCgkgIHNldHRpbmcgdG8gZGVmYXVsdCwgc2luY2Ugd2UgbWF5IGhhdmUgc3RvbGVuIGl0IGF3YXkgZnJvbQoJICBzb21lb25lLiAgKGkuZS4sIE1vbm8pCgoyMDA2LTEyLTI2IDE1OjU1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogU29tZSBzbWFsbCBhZGRpdGlvbnMgYW5kIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIHNtYWxsIGFkZGl0aW9ucyBhbmQgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTEyLTI2IDE1OjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCBwYXNzIG5vbi1VVEYtOCBzdHJpbmdzIHRvIGdfbWFya3VwX2VzY2FwZSgpLCBzaW5jZSB0aGF0IGNhbiBsZWFkIHRvIHJhbmRvbSBtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmVfZXNjYXBlZCk6CgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBwYXNzIG5vbi1VVEYtOCBzdHJpbmdzIHRvIGdfbWFya3VwX2VzY2FwZSgpLAoJICBzaW5jZSB0aGF0IGNhbiBsZWFkIHRvIHJhbmRvbSBtZW1vcnkgY29ycnVwdGlvbnMgYW5kIGNyYXNoZXMKCSAgKG1heSBvciBtYXkgbm90IGJlIHJlbGF0ZWQgdG8gIzM4MzI0NCwgIzM4NjcxMSwgYW5kICMzODY3MTEpLgoKMjAwNi0xMi0yMSAxNTo1NDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBzeW5jIC5jdnNpZ25vbWUgYW5kIENMRUFORklMRVMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc3luYyAuY3ZzaWdub21lIGFuZCBDTEVBTkZJTEVTCgoyMDA2LTEyLTIxIDE1OjMyOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoKMjAwNi0xMi0yMSAxNTowMDowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiB0d28gdGlueSBhZGRpdGlvbmFsIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgdHdvIHRpbnkgYWRkaXRpb25hbCBjb21tZW50cwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jIGZpeGluZwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZGlzYWJsZSB0ZXN0IGZvciBub3csIHVubGVzcyBpdCBnZXRzIGZpeGVkCgoyMDA2LTEyLTIxIDE0OjI0OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiBmaXggcmFjZSBpbiB1bmRlcnJ1biB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IHJhY2UgaW4gdW5kZXJydW4gdGVzdAoKMjAwNi0xMi0yMSAwOTo1ODoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHRyeSB0byBuYXJyb3cgdGVzdCBmYWlsdXJlCgoyMDA2LTEyLTIxIDA5OjM3OjU2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBVc2UgZ19yYW5kb21faW50X3JhbmdlKCksIHNpbmNlIGl0IHByb2R1Y2VzIGJldHRlciByYW5kb20gbnVtYmVycyBpbiBhIHJhbmdlIHRoYW4gYWxtby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgVXNlIGdfcmFuZG9tX2ludF9yYW5nZSgpLCBzaW5jZSBpdCBwcm9kdWNlcyBiZXR0ZXIgcmFuZG9tCgkgIG51bWJlcnMgaW4gYSByYW5nZSB0aGFuIGFsbW9zdC1jb3JyZWN0IGZsb2F0aW5nIHBvaW50IGNvZGUuCgoyMDA2LTEyLTIxIDA4OjEyOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBkbyBub3QgYXV0b21hdGljYWxseSAoZGUpYWN0aXZhdGUgcGFkcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgIGRvIG5vdCBhdXRvbWF0aWNhbGx5IChkZSlhY3RpdmF0ZSBwYWRzCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoc2V0dXBfcXVldWUpLCAoY2xlYW51cF9xdWV1ZSksIChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIGFkZCBuZXcsIHlldCBzaW1wbGUgdGVzdHMgZm9yIHF1ZXVlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoY2xlYW51cF9mYWtlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoY2xlYW51cF9mZHNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoY2xlYW51cF9maWxlc3JjKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoY2xlYW51cF9pZGVudGl0eSk6CgkgIGNvbnNpc3RlbnQgcGFkIChkZSlhY3RpdmF0aW9uCgoyMDA2LTEyLTIwIDE5OjA2OjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZpeCB0d28gZG9jIHR5cG9zICgjMzg3ODY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW8gdWJ1bnR1IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIEZpeCB0d28gZG9jIHR5cG9zICgjMzg3ODY2KS4KCjIwMDYtMTItMTkgMTU6MDY6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDogRml4IHR5cG8gKGdfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcygpIGRvZXNuJ3QgZXhpc3QpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgRml4IHR5cG8gKGdfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcygpIGRvZXNuJ3QgZXhpc3QpLgoKMjAwNi0xMi0xOSAxMjozODowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEZpbmUgdHVuZSB0aGUgY2FzZXMgd2hlcmUgdGhlIHNlZ21lbnQgc3RhcnQvc3RvcCB2YWx1ZXMgYXJlIHJlYWxseSB1cGRhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBGaW5lIHR1bmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AgdmFsdWVzIGFyZSByZWFsbHkKCSAgdXBkYXRlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdGVzdHMgZm9yIHRoZSByZXR1cm4gdmFsdWVzIG9mIGdzdF9zZWdtZW50X3NldF9zZWVrKCkuCgoyMDA2LTEyLTE5IDExOjA0OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb2NzIHR5cG8gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIERvY3MgdHlwbyBmaXguCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGaXggaW5jb3JyZWN0IGRvY3VtZW50YXRpb24gYW5kIGZsZXNoIGl0IG91dCBhIGJpdCBtb3JlLgoJICBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBtYXggcHJvcGVydGllcyBvbiB0aGUgR1BhcmFtU3BlYyBhcyB3ZWxsLAoJICBzbyBpdCBzaG93cyB1cCBjb3JyZWN0bHkgaW4gZ3N0LWluc3BlY3QuCgoyMDA2LTEyLTE4IDE2OjAxOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IENvcnJlY3QgZG9jcyBvZiBxdWV1ZSwgYWRkIG1vcmUgZGV0YWlsIGFuZCBjcm9zc2xpbmsgaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBDb3JyZWN0IGRvY3Mgb2YgcXVldWUsIGFkZCBtb3JlIGRldGFpbCBhbmQgY3Jvc3NsaW5rIGl0IG1vcmUuCgoyMDA2LTEyLTE2IDE5OjMzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBQcmludCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gd2hlbiB0aGUgc3RyZWFtIGlzbid0IHBlcmZlY3RseSB0aW1lc3RhbXBlZDsgZG9uJ3QgdHJ5IHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgUHJpbnQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHdoZW4gdGhlIHN0cmVhbSBpc24ndCBwZXJmZWN0bHkKCSAgdGltZXN0YW1wZWQ7IGRvbid0IHRyeSB0byB1c2UgaW52YWxpZCBkdXJhdGlvbnMuCgoyMDA2LTEyLTE2IDE2OjE0OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3QgbmV3IGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBuZXcgZGVzaWduIGRvY3MuCgoyMDA2LTEyLTE2IDE1OjE3OjU0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEFkZCByZWZjb3VudGluZyB0byB0aGUgY29sbGVjdHBhZHMgZGF0YSBzbyB3ZSBjYW4gdHJhY2sgd2hlbiBpdCdzIHNhZmUgdG8gZnJlZSB0aGUgZGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKHJlZl9kYXRhKSwgKHVucmVmX2RhdGEpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFkZCByZWZjb3VudGluZyB0byB0aGUgY29sbGVjdHBhZHMgZGF0YSBzbyB3ZSBjYW4gdHJhY2sgd2hlbiBpdCdzIHNhZmUKCSAgdG8gZnJlZSB0aGUgZGF0YS4gRml4ZXMgIzM4MzM4Mi4KCjIwMDYtMTItMTUgMTc6MDk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEF1dG9tYXRpY2FsbHkgYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gYSBzdGFydGVkL3N0b3BlZCBjb2xsZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIEF1dG9tYXRpY2FsbHkgYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gYQoJICBzdGFydGVkL3N0b3BlZCBjb2xsZWN0cGFkcy4KCjIwMDYtMTItMTUgMTY6MDE6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTZXQgcGFkcyB0byBGTFVTSElORyB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuIENoZWNrLCB3YXJuIGFuZCBmaXggd2hlbiBhIGRlbXV4ZXIgYWRkcyBhbiBpbmFjdGl2ZSBwYWQgdG8gaXRzZWxmIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgU2V0IHBhZHMgdG8gRkxVU0hJTkcgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLiBDaGVjaywgd2FybiBhbmQgZml4IHdoZW4gYQoJICBkZW11eGVyIGFkZHMgYW4gaW5hY3RpdmUgcGFkIHRvIGl0c2VsZiB3aGVuIHJ1bm5pbmcuIEZpeGVzICMzMzkzMjYuCgoyMDA2LTEyLTE1IDE1OjQ5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRXhwb3NlIGRlZmF1bHQgZWxlbWVudCBzZW5kX2V2ZW50IGFuZCBxdWVyeSBoYW5kbGluZyBhcyB2bWV0aG9kcyB0aGF0IHN1YmNsYXNzZXMgY2FuIGNoYWluIHVwIHRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9kZWZhdWx0X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgRXhwb3NlIGRlZmF1bHQgZWxlbWVudCBzZW5kX2V2ZW50IGFuZCBxdWVyeSBoYW5kbGluZyBhcyB2bWV0aG9kcyB0aGF0CgkgIHN1YmNsYXNzZXMgY2FuIGNoYWluIHVwIHRvLgoKMjAwNi0xMi0xNSAxNTozOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA2LTEyLTE1IDE1OjI2OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IENoZWNrZWQgaW4gZHJhZnQgZm9yIGhhbmRsaW5nIGxhdGVuY3kgaW4gcGlwZWxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgQ2hlY2tlZCBpbiBkcmFmdCBmb3IgaGFuZGxpbmcgbGF0ZW5jeSBpbiBwaXBlbGluZXMuCgoyMDA2LTEyLTE1IDAwOjE2OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZGluZyAuZG9hcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGRpbmcgLmRvYXAgZmlsZQoKMjAwNi0xMi0xNCAxNDowNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogaW5pdF9wcmUoKSBhbmQgaW5pdF9wb3N0KCkgbWlnaHQgYmUgY2FsbGVkIHZpYSBvdXIgR09wdGlvbkdyb3VwIG9yIGZyb20gZ3N0X2luaXQoKSwgYW5kIHdlIHNob3VsZCBza2lwIGJvdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChpbml0X3Bvc3QpOgoJICBpbml0X3ByZSgpIGFuZCBpbml0X3Bvc3QoKSBtaWdodCBiZSBjYWxsZWQgdmlhIG91ciBHT3B0aW9uR3JvdXAgb3IKCSAgZnJvbSBnc3RfaW5pdCgpLCBhbmQgd2Ugc2hvdWxkIHNraXAgYm90aCBvZiB0aGVtIGlmIHdlJ3ZlIGFscmVhZHkKCSAgYmVlbiBpbml0aWFsaXNlZCwgb3RoZXJ3aXNlIHdlIHdpbGwgaW5pdCBzb21lIHRoaW5ncyB0d2ljZSBvciBhZGQKCSAgdHdvIGRlZmF1bHQgbG9nIGZ1bmN0aW9ucy4KCjIwMDYtMTItMTMgMTI6NDY6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogTm8sIGdzdF9tYWluX2xvb3AgZG9lcyBub3QgZXhpc3QuIEl0cyBnX21haW5fbG9vcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIE5vLCBnc3RfbWFpbl9sb29wIGRvZXMgbm90IGV4aXN0LiBJdHMgZ19tYWluX2xvb3AuCgkgIERpc2NvdmVyZWQgYnkgc29tZWJvZHkgd2hvIGFidXNlZCB0aGUgY29weS1wYXN0ZSB0ZWNobmlxdWUgb2YgY29kaW5nIDopCgoyMDA2LTEyLTEzIDExOjA1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IExvZyBnaG9zdHBhZCBkZWJ1ZyBzdHVmZiB0byB0aGUgR1NUX1BBRFMgY2F0ZWdvcnkgYXMgd2VsbCByYXRoZXIgdGhhbiBqdXN0IHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgTG9nIGdob3N0cGFkIGRlYnVnIHN0dWZmIHRvIHRoZSBHU1RfUEFEUyBjYXRlZ29yeSBhcyB3ZWxsIHJhdGhlcgoJICB0aGFuIGp1c3QgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkuCgoyMDA2LTEyLTEyIDEzOjUzOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIHNvbWUgYmFzaWMgc3lzdGVtIGRldGFpbHMgc3VjaCBhcyBPUyBhbmQgYXJjaGl0ZWN0dXJlIHRvIHRoZSBkZWJ1ZyBvdXRwdXQgaWYgcG9zc2libGUsIGNvdXJ0ZXN5IG9mIHVuYW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgIEFkZCBzb21lIGJhc2ljIHN5c3RlbSBkZXRhaWxzIHN1Y2ggYXMgT1MgYW5kIGFyY2hpdGVjdHVyZQoJICB0byB0aGUgZGVidWcgb3V0cHV0IGlmIHBvc3NpYmxlLCBjb3VydGVzeSBvZiB1bmFtZSgpLgoKMjAwNi0xMi0xMSAxMzo0MDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L3J1bm5pbmcueG1sOiBEb2N1bWVudCBHU1RfUkVHSVNUUllfRk9SSyBhbmQgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIERvY3VtZW50IEdTVF9SRUdJU1RSWV9GT1JLIGFuZCBHU1RfREVCVUdfTk9fQ09MT1IKCSAgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKMjAwNi0xMi0wOSAyMDoyMzoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEl0IGlzIGFjY2VwdGFibGUgdG8gaGF2ZSBhIHJlZmNvdW50IG9mIDIgb3IgMyBhdCB0aGlzIHBvaW50IGluIHRoZSB0ZXN0LCBiZWNhdXNlIHRoZSBwaXBlbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJdCBpcyBhY2NlcHRhYmxlIHRvIGhhdmUgYSByZWZjb3VudCBvZiAyIG9yIDMgYXQgdGhpcyBwb2ludCBpbiB0aGUKCSAgdGVzdCwgYmVjYXVzZSB0aGUgcGlwZWxpbmUgbWlnaHQgYmUganVzdCBwb3N0aW5nIGl0cyBzdGF0ZV9jaGFuZ2UKCSAgbWVzc2FnZS4gVGhlIG5leHQgbGluZSB0aGVuIHdhaXRzIGZvciB0aGF0IG1lc3NhZ2UgdG8gYXBwZWFyIHVzaW5nCgkgIGJ1c19wb2xsLCBzbyB0aGF0IHNob3VsZCBiZSBmaW5lIHRvby4KCjIwMDYtMTItMDkgMTg6NDg6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBJZ25vcmUgRUlOVFIgd2hlbiByZWFkaW5nIGZyb20gdGhlIGNoaWxkIHJlZ2lzdHJ5IHBpcGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBJZ25vcmUgRUlOVFIgd2hlbiByZWFkaW5nIGZyb20gdGhlIGNoaWxkIHJlZ2lzdHJ5IHBpcGUuCgkgIEV4cGxpY2l0bHkgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBjbG9zZSwgc2luY2UgaXQgbWFrZXMgbm8KCSAgZGlmZmVyZW5jZS4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZiksCgkgIChnc3RfbWluaV9vYmplY3RfdW5yZWYpOgoJICBXaGVuIGRlYnVnZ2luZyByZWZjb3VudHMsIGNoZWNrIEdTVF9JU19NSU5JX09CSkVDVCBhbmQgd2Fybi4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6CgkgIFdoZW4gcmVtb3ZpbmcgY2FjaGVkIHBsdWdpbnMsIHJlbW92ZSB0aGVpciBmZWF0dXJlcyB0b28sIHNvIHRoZXkncmUKCSAgbm90IHZpc2libGUgYWZ0ZXIgdGhleSd2ZSBkaXNhcHBlYXJlZC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHByZXBhcmVfbGlua19tYXliZV9naG9zdGluZyk6CgkgIEluIHRoZSB1bmxpa2VseSBjYXNlIHRoYXQgd2UgYXJlIGxpbmtpbmcgcGFkcyB3aXRoIG5vIHBhcmVudHMsIGRvbid0CgkgIGNyYXNoIHRyeWluZyB0byBnZXQgdGhlIG5vbi1leGlzdGVudCBwYXJlbnQgYmluLgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE91dHB1dCBkZWJ1ZyBpbiB0aGUgUElQRUxJTkUgY2F0ZWdvcnkKCjIwMDYtMTItMDggMTY6MTI6NDQgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0Y2xvY2suYzogUmVqZWN0IGludmFsaWQgY2xvY2sgdGltZXMgZm9yIGludGVydmFsIG9mIHBlcmlvZGljIGlkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19uZXdfcGVyaW9kaWNfaWQpOgoJICBSZWplY3QgaW52YWxpZCBjbG9jayB0aW1lcyBmb3IgaW50ZXJ2YWwgb2YgcGVyaW9kaWMgaWRzLgoJICBGaXhlcyAjIzM4MzUwNi4KCjIwMDYtMTItMDcgMTI6MTE6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHJlZmNvdW50aW5nIG9mIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkIHRvIG1hdGNoIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IHJlZmNvdW50aW5nIG9mIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkIHRvIG1hdGNoIHRoZSBkb2NzLgoJICBGaXhlczogIzM4MDEyOQoKMjAwNi0xMi0wNyAxMDo1OTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZXZlbnRzLgoKMjAwNi0xMi0wNyAxMDo1MTozNiArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYWtlIHBlcmlvZCBpZHMgYWRkIHRoZSBpbnRlcnZhbCB0byB0aGUgb3JpZ2lhbCByZXF1ZXN0ZWQgdGltZSBpbnN0ZWFkIG9mIHRoZSBwb3NzaWJseSB1cGRhdGVkIHRpbWUgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICBNYWtlIHBlcmlvZCBpZHMgYWRkIHRoZSBpbnRlcnZhbCB0byB0aGUgb3JpZ2lhbCByZXF1ZXN0ZWQgdGltZSBpbnN0ZWFkCgkgIG9mIHRoZSBwb3NzaWJseSB1cGRhdGVkIHRpbWUgd2hpY2ggY2FuIGJlIHdyb25nIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlCgkgIHdhaXRlcnMgZm9yIHRoZSBzYW1lIGlkLiBGaXhlcyAjMzgyNTkyLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKToKCSAgRml4IHJlc3RhcnQgaW4gdGhlIGFzeW5jIG5vdGlmeSB0aHJlYWQgd2hlbiBhbiBhc3luYyBlbnRyeSBpcyBhZGRlZCB0bwoJICB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuIEZpeGVzICMzODE0OTIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChzdG9yZV9jYWxsYmFjayksCgkgIChub3RpZnlfY2FsbGJhY2spLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgbXVsdGlwbGUgYXN5bmMgd2FpdHMuCgkgIEFkZGVkIHRlc3QgZm9yIGFzeW5jIHdhaXQgb3JkZXIuCgoyMDA2LTEyLTA3IDEwOjAyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgc29tZSBtb3JlIGRvY3MgYWJvdXQgdGhlIFBPU0lUSU9OIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGFib3V0IHRoZSBQT1NJVElPTiBxdWVyeS4KCjIwMDYtMTItMDcgMDI6Mzc6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gbmFubyAtIGJhY2sgdG8gQ1ZTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiBuYW5vIC0gYmFjayB0byBDVlMuCgo9PT0gcmVsZWFzZSAwLjEwLjExID09PQoKMjAwNi0xMi0wNyAwMjozMzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjExLCAiTG92ZSBuZXZlciBydW5zIG9uIHRpbWUiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjExID09PQoJICAyMDA2LTEyLTA2ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjExLCAiTG92ZSBuZXZlciBydW5zIG9uIHRpbWUiCgoyMDA2LTEyLTAxIDEwOjIzOjI2ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgd2luMzIvOiBGaXggY29tcGlsYXRpb24gb24gd2luMzIgdW5kZXIgVlM4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIEZpeCBjb21waWxhdGlvbiBvbiB3aW4zMiB1bmRlciBWUzgKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgUGFydGlhbGx5IGZpeGVzICMzODExNzUKCjIwMDYtMTEtMzAgMjI6NTU6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTExLTI5IDE2OjM5OjMyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJZiBzb21lb25lIGlzIGZvb2xpc2ggZW5vdWdoIHRvIGNvbXBhcmUgMiBmcmFjdGlvbnMgd2l0aCBkZW5vbWluYXRvciA9IDAsIHJldHVybiBVTk9SREVSRUQgcmF0aGVyIHRoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgSWYgc29tZW9uZSBpcyBmb29saXNoIGVub3VnaCB0byBjb21wYXJlIDIgZnJhY3Rpb25zIHdpdGggZGVub21pbmF0b3IgPQoJICAwLCByZXR1cm4gVU5PUkRFUkVEIHJhdGhlciB0aGFuIGFib3J0aW5nLgoKMjAwNi0xMS0yOCAxMjowNzowNiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBOZXcgR3N0RGF0YVF1ZXVlIG9iamVjdCBmb3IgdGhyZWFkc2FmZSBxdWV1ZWluZy4gTW9zdCB1c2VmdWwgZm9yIGVsZW1lbnRzIHRoYXQgbmVlZCBzb21lIHF1ZXVlaW5nIGZ1bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfZGF0YV9xdWV1ZV9iYXNlX2luaXQpLCAoZ3N0X2RhdGFfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfZGF0YV9xdWV1ZV9pbml0KSwgKGdzdF9kYXRhX3F1ZXVlX25ldyksCgkgIChnc3RfZGF0YV9xdWV1ZV9jbGVhbnVwKSwgKGdzdF9kYXRhX3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZW1wdHkpLAoJICAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2Z1bGwpLCAoZ3N0X2RhdGFfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfaXNfZW1wdHkpLCAoZ3N0X2RhdGFfcXVldWVfaXNfZnVsbCksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfZmx1c2hpbmcpLCAoZ3N0X2RhdGFfcXVldWVfcHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9wb3ApLCAoZ3N0X2RhdGFfcXVldWVfZHJvcF9oZWFkKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfZGF0YV9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIE5ldyBHc3REYXRhUXVldWUgb2JqZWN0IGZvciB0aHJlYWRzYWZlIHF1ZXVlaW5nLiBNb3N0IHVzZWZ1bCBmb3IKCSAgZWxlbWVudHMgdGhhdCBuZWVkIHNvbWUgcXVldWVpbmcgZnVuY3Rpb25uYWxpdHkuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBJbnNlcnQgZG9jdW1lbnRhdGlvbiBmb3IgR3N0RGF0YVF1ZXVlCgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRfcHJvcGVydHkpLCAoZ3N0X211bHRpX3F1ZXVlX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0Y2FwcyksIChnc3RfbXVsdGlfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9hY2NlcHRjYXBzKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfZXZlbnQpLCAoZ3N0X211bHRpX3F1ZXVlX3NyY19xdWVyeSksCgkgICh3YWtlX3VwX25leHRfbm9uX2xpbmtlZCksIChjb21wdXRlX25leHRfbm9uX2xpbmtlZCksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBOZXcgbXVsdGlxdWV1ZSBlbGVtZW50LCB1c2luZyBHc3REYXRhUXVldWUuIFVzZWQgZm9yIHF1ZXVpbmcgbXVsdGlwbGUKCSAgc3RyZWFtcy4KCSAgQ2xvc2VzICMzNDQ2MzkgYW5kICMzNDc3ODUKCjIwMDYtMTEtMjIgMTI6Mjk6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogYWRkIG1vcmUgbWlzc2luZyB0eXBlIGRldGFpbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBhZGQgbW9yZSBtaXNzaW5nIHR5cGUgZGV0YWlscwoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA2LTExLTIxIDA4OjMwOjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvOiBhZGQgdHlwZXMgb2YgYmFzZSBjbGFzc2VzIHRvIGVuYWJsZSBnb2JqZWN0IHNwZWNpZmljIHN0dWZmIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGFkZCB0eXBlcyBvZiBiYXNlIGNsYXNzZXMgdG8gZW5hYmxlIGdvYmplY3Qgc3BlY2lmaWMgc3R1ZmYgaW4gdGhlIGRvY3MKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgbW9yZSBpZGVhcyBhYm91dCBpc29sYXRpbmcgcGxhdGZvcm0gc3BlY2lmaWMgdGhpbmdzCgoyMDA2LTExLTIwIDExOjExOjIwICswMDAwICBTZWJhc3RpYW4gRHJvZWdlIDxzbG9tb0B1YnVudHUuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IGNvbXBpbGF0aW9uIGFuZCBydW5uaW5nIGFnYWluc3QgMC45LjQuIEZpeGVzICMzNzczMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyb2VnZSA8c2xvbW8gYXQgdWJ1bnR1IGRvdCBjb20+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBydW5uaW5nIGFnYWluc3QgMC45LjQuIEZpeGVzICMzNzczMzIuCgoyMDA2LTExLTIwIDEwOjI3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRml4IGJvdW5kYXJ5IGNoZWNraW5nIGluIHRvX3J1bm5pbmdfdGltZSgpIGFuZCB0b19zdHJlYW1fdGltZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBGaXggYm91bmRhcnkgY2hlY2tpbmcgaW4gdG9fcnVubmluZ190aW1lKCkgYW5kIHRvX3N0cmVhbV90aW1lKCkuCgkgIEZpeGVzICMzNzcxODMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgc3RyZWFtIGFuZCBydW5uaW5nIHRpbWUgY2FuIG5vdyBiZSBjYWxjdWxhdGVkIGZvciB0aGUgY29tcGxldGUKCSAgY2xpcHBlZCBzZWdtZW50LgoKMjAwNi0xMS0xNSAxNzozODoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQ2FuJ3QgYWNjZXNzIGV2ZW50IHN0cnVjdHVyZSBhZnRlciBnaXZpbmcgYXdheSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBDYW4ndCBhY2Nlc3MgZXZlbnQgc3RydWN0dXJlIGFmdGVyIGdpdmluZyBhd2F5IG93bmVyc2hpcCBvZgoJICB0aGUgZXZlbnQuCgoyMDA2LTExLTE1IDEzOjAwOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogbW9yZSB0aGlua2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9yZWNlaXBpZXMudHh0OgoJICBtb3JlIHRoaW5raW5nCgoyMDA2LTExLTEzIDE4OjAzOjM1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3BhZF9kaXNwYXRjaGVyLiBGaXhlcyAjMzc0NDc1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9wYWRfZGlzcGF0Y2hlci4gRml4ZXMgIzM3NDQ3NS4KCjIwMDYtMTEtMTMgMTc6NTQ6NTggKzAwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGthb2xpbi53aDkubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFN0b3JlIG5ldyBsZW5ndGggaW4gc2VnbWVudCBkdXJhdGlvbiBzbyB3ZSBkb24ndCBrZWVwIG9uIGNhbGxpbmcgdGhlIHBvdGVudGlhbGx5IGV4cGVuc2l6Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW4gYXQga2FvbGluIGRvdCB3aDkgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgU3RvcmUgbmV3IGxlbmd0aCBpbiBzZWdtZW50IGR1cmF0aW9uIHNvIHdlIGRvbid0IGtlZXAgb24gY2FsbGluZyB0aGUKCSAgcG90ZW50aWFsbHkgZXhwZW5zaXplIGdldF9zaXplKCkgY2FsbC4gRml4ZXMgIzM3MDg2NS4KCjIwMDYtMTEtMTAgMTg6NTY6NDQgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXJ5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCB0d28gbWlzc2luZyBzeW1ib2xzICgjMzY2NDkyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCAgPHNlcmdlcnkuc2NvYmljaCBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCB0d28gbWlzc2luZyBzeW1ib2xzICgjMzY2NDkyKS4KCjIwMDYtMTEtMTAgMTA6NTA6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEZpeCBmb3JtYXQgc3RyaW5nIHRvIHVzZSBhbGwgaXRzIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9mbHVzaCksCgkgIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIEZpeCBmb3JtYXQgc3RyaW5nIHRvIHVzZSBhbGwgaXRzIGFyZ3VtZW50cy4KCSAgUmVtb3ZlIHVzZWxlc3MgPj0gY2hlY2sgb24gYSBndWludAoKMjAwNi0xMS0wOSAxNToyNTozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLy5jdnNpZ25vcmU6IElnbm9yZSBidWlsZCBmaWxlIGFzIGNvbW1hbmRlZCBieSB0aGUgYnVpbGQtYm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvLmN2c2lnbm9yZToKCSAgSWdub3JlIGJ1aWxkIGZpbGUgYXMgY29tbWFuZGVkIGJ5IHRoZSBidWlsZC1ib3QKCjIwMDYtMTEtMDkgMTQ6Mzg6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvYWRhcHRlci86IEFkZCBuZXcgZmlsZXMgZnJvbSB0aGUgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzogKHJ1bl90ZXN0X3Rha2UpLAoJICAocnVuX3Rlc3RfdGFrZV9idWZmZXIpLCAocnVuX3Rlc3RzKSwgKG1haW4pOgoJICBBZGQgbmV3IGZpbGVzIGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0xMS0wOSAxNDozNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBEbyBzb21lIG9wdGltaXNhdGlvbiB3b3JrIGluIEdzdEFkYXB0ZXIgdG8gYXZvaWQgY29waWVzIGluIG1vcmUgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2NsZWFyKSwKCSAgKGdzdF9hZGFwdGVyX3B1c2gpLCAoZ3N0X2FkYXB0ZXJfcGVla19pbnRvKSwgKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfZmx1c2gpLCAoZ3N0X2FkYXB0ZXJfdGFrZSksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChjcmVhdGVfYW5kX2ZpbGxfYWRhcHRlciksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfYWRhcHRlcl9zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIERvIHNvbWUgb3B0aW1pc2F0aW9uIHdvcmsgaW4gR3N0QWRhcHRlciB0byBhdm9pZCBjb3BpZXMgaW4gbW9yZSBjYXNlcy4KCSAgSXQgY291bGQgc3RpbGwgZG8gc2xpZ2h0bHkgYmV0dGVyIGJ5IG1lcmdpbmcgYnVmZmVycyB3aGVuCgkgIGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0IGlzIHRydWUsIGJ1dCBpcyBhbHJlYWR5IGZhc3Rlci4KCSAgQWxzbywgYXZvaWQgdHJhdmVyc2luZyBhIHNpbmdsZS1saW5rZWQgbGlzdCB0byBhcHBlbmQgZWFjaCBpbmNvbWluZwoJICBidWZmZXIgaW5zaWRlIHRoZSBhZGFwdGVyLgoJICBBZGQgc2ltcGxlIHRlc3QgYXBwIHRoYXQgdGltZXMgdGhlIGFkYXB0ZXIgYmVoYXZpb3VyIGluIGRpZmZlcmVudAoJICBzaXR1YXRpb25zLCBhbmQgZXh0ZW5kIHRoZSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBieXRlcyBlbnRlciBhbmQKCSAgZXhpdCB0aGUgYWRhcHRlciBpbiB0aGVpciBvcmlnaW5hbCBvcmRlci4KCjIwMDYtMTEtMDggMTk6Mjc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBVcGRhdGU6IHVzZSBlbGVtZW50IG1lc3NhZ2UgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgbWVzc2FnZSB0eXBlIHRvIHRoZSBjb3JlOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgVXBkYXRlOiB1c2UgZWxlbWVudCBtZXNzYWdlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IG1lc3NhZ2UKCSAgdHlwZSB0byB0aGUgY29yZTsgZG9uJ3QgcHJvdmlkZSBHU3RyZWFtZXIgQVBJIHRvIGluaXRpYXRlIHRoZQoJICBwbHVnaW4gZG93bmxvYWQsIGp1c3QgcHJvdmlkZSBBUEkgdG8gY29tcG9zZSB0aGUgc3RyaW5ncyBuZWVkZWQKCSAgYW5kIGxldCBhbiBleHRlcm5hbCBsaWJnaW1tZXN0dWZmIGhhbmRsZSB0aGUgcmVzdC4KCjIwMDYtMTEtMDggMTE6NDE6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgYSBzdHJpbmcgaW5zdGVhZCBvZiAndW5rbm93biB0eXBlJyBmb3IgR1ZhbHVlQXJyYXkgcHJvcGVydGllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBQcmludCBhIHN0cmluZyBpbnN0ZWFkIG9mICd1bmtub3duIHR5cGUnIGZvciBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzCgoyMDA2LTExLTA4IDEwOjM1OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRml4IENocmlzdGlhbidzIGVtYWlsIGFkZHJlc3MgaW4gQ2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggQ2hyaXN0aWFuJ3MgZW1haWwgYWRkcmVzcyBpbiBDaGFuZ2Vsb2cKCjIwMDYtMTEtMDggMDI6MDQ6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IE1vcmUgc21hbGwgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIE1vcmUgc21hbGwgZml4ZXMuCgoyMDA2LTExLTA4IDAyOjAzOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogTWFrZSB0eXBlZmluZCBlbGVtZW50IGV4YW1wbGUgd29yayBhZ2FpbiAoIzM3MTg5NCk7IGFkZCBhIGxpY2Vuc2UgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCksIChtYWluKToKCSAgTWFrZSB0eXBlZmluZCBlbGVtZW50IGV4YW1wbGUgd29yayBhZ2FpbiAoIzM3MTg5NCk7IGFkZCBhCgkgIGxpY2Vuc2UgaGVhZGVyLgoKMjAwNi0xMS0wOCAwMTo0MDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IENvbW1pdCBpbml0aWFsIGRyYWZ0IGFib3V0IGhvdyB0byBkZWFsIHdpdGggbWlzc2luZyBwbHVnaW5zLCBuZWVkcyB3b3JrIChBUEkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBDb21taXQgaW5pdGlhbCBkcmFmdCBhYm91dCBob3cgdG8gZGVhbCB3aXRoIG1pc3NpbmcgcGx1Z2lucywKCSAgbmVlZHMgd29yayAoQVBJIHRvbykuCgoyMDA2LTExLTA3IDA3OjM0OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGRvY3VtZW50cyB0aGUgbmV3IGNhcHMgZWxlbWVudHMgKHNlZSAjMzYzMTE4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGRvY3VtZW50cyB0aGUgbmV3IGNhcHMgZWxlbWVudHMgKHNlZSAjMzYzMTE4KQoKMjAwNi0xMS0wNiAxNzo1MzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpIC0gd2Ugd2FudCBVVEYtOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgVXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkgLSB3ZSB3YW50IFVURi04LgoKMjAwNi0xMS0wNiAxNzoyNTowMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFub3RoZXIgcHJpbnRmIGZpeCAoIzM3MTQ5MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBbm90aGVyIHByaW50ZiBmaXggKCMzNzE0OTMpLgoKMjAwNi0xMS0wNiAxNToyMjo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiByZWxpY2VuY2UgKG9rYXkgd2l0aCBhdXRob3I9Y29tcGFueSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICByZWxpY2VuY2UgKG9rYXkgd2l0aCBhdXRob3I9Y29tcGFueSkKCjIwMDYtMTEtMDYgMTU6MTg6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRW5oYW5jZSBkZWJ1ZyBhbmQgaW1wcm92ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBFbmhhbmNlIGRlYnVnIGFuZCBpbXByb3ZlIGRvY3MKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEZpeCBkb2NzCgoyMDA2LTExLTA2IDE1OjE3OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogbW9yZSBpZGVhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIG1vcmUgaWRlYXMKCjIwMDYtMTEtMDYgMTU6MTQ6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IGFkZCBuZXcgQVBJIGFuZCBmaXggdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGFkZCBuZXcgQVBJIGFuZCBmaXggdGhlIGJ1aWxkCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICB1c2UgbmV3IEFQSSBhbmQgaW1wcm92ZSBsb2dnaW5nCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZnVuY3Rpb24gdG8gZ2V0IFN0YXRlQ2hhbmdlcmV0dXJuIG5hbWVzIHRvIGltcHJvdmUgbG9ncwoKMjAwNi0xMS0wNiAxMjowMToyNyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGRvY3MvcmFuZG9tL3phaGVlcm0vZHZiLWludGVyZmFjZS50eHQ6CgkgIE5vdGVzIHRha2VuIHdoaWxlIGRpc2N1c3NpbmcgZHZiIGNoYW5uZWwgc2VsZWN0aW9uIHdpdGggV2ltCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOb3RlcyB0YWtlbiB3aGlsZSBkaXNjdXNzaW5nIGR2YiBjaGFubmVsIHNlbGVjdGlvbiB3aXRoIFdpbQoKMjAwNi0xMS0wNCAxMjo1NDowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZG9uJ3QgcHV0IHN0cmVycm9yIGluIHRyYW5zbGF0YWJsZSBtZXNzYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBwdXQgc3RyZXJyb3IgaW4gdHJhbnNsYXRhYmxlIG1lc3NhZ2UKCjIwMDYtMTEtMDMgMTU6MDQ6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEdldCB0aGUgdHlwZSBhbmQgcHJpbnRmIGNvbnZlcnNpb24gc3BlY2lmaWVycyByaWdodC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBHZXQgdGhlIHR5cGUgYW5kIHByaW50ZiBjb252ZXJzaW9uIHNwZWNpZmllcnMgcmlnaHQuCgoyMDA2LTExLTAzIDEzOjU3OjI4ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBTb21lIHNtYWxsIGNsZWFudXBzLiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAocHJlX2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLCAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFNvbWUgc21hbGwgY2xlYW51cHMuIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU2lnbmFsIGFsbCB3YWl0aW5nIHRocmVhZHMgd2l0aCBhIGJyb2FkY2FzdCBpbnN0ZWFkIG9mIGp1c3Qgb25lLgoJICBGaXhlcyAjMzY5OTQyLgoKMjAwNi0xMS0wMyAwOTo0MDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT25seSB1cGRhdGUgZmQgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIHRoZSBvbGQuCgoyMDA2LTExLTAyIDIwOjUyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFByaW50ZiBmaXhlcyBmb3IgUFBDL09TWCwgdGFrZSB0d28gKCMzNjkzNjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFByaW50ZiBmaXhlcyBmb3IgUFBDL09TWCwgdGFrZSB0d28gKCMzNjkzNjYpLgoKMjAwNi0xMS0wMiAxMzowMDozOCArMDAwMCAgSmFuIERhdmlkIE1vbCA8ai5qLmQubW9sQHR1ZGVsZnQubmw+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUHJpbnRmIGZpeGVzIGZvciBnc2l6ZSBwYXJhbWV0ZXJzIG9uIFBQQy9PU1ggKCMzNjkzNjYpLiBBbHNvLCBkb24ndCBjYXN0IHRvIGxvbmcgbG9uZyBmb3IgcG9ydGFiaWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKYW4gRGF2aWQgTW9sICA8ai5qLmQubW9sIGF0IHR1ZGVsZnQgbmw+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFByaW50ZiBmaXhlcyBmb3IgZ3NpemUgcGFyYW1ldGVycyBvbiBQUEMvT1NYICgjMzY5MzY2KS4gQWxzbywKCSAgZG9uJ3QgY2FzdCB0byBsb25nIGxvbmcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMsIGJ1dCB1c2UKCSAgR0xpYidzIHR5cGVzIGluc3RlYWQuCgoyMDA2LTEwLTMwIDE4OjQzOjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEdldCB0aGUgYXJndW1lbnRzIHRvIGxzZWVrKCkgdGhlIHJpZ2h0IHdheSBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgR2V0IHRoZSBhcmd1bWVudHMgdG8gbHNlZWsoKSB0aGUgcmlnaHQgd2F5IGFyb3VuZC4KCSAgRml4ZXMgMzY3Njc3LgoKMjAwNi0xMC0zMCAwNzo1MToxMyArMDAwMCAgZ29yc2hrb3YgPGdvcnNoa292QG9naG1hLm9uLmNhPgoKCSAgZ3N0L2dzdGluZm8uaDogX2RlY2xzcGVjIHNob3VsZCBiZSBfX2RlY2xzcGVjICh0d28gdW5kZXJzY29yZXMsIG5vdCBvbmUpLiBGaXhlcyAzNjY1NzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogZ29yc2hrb3YgPGdvcnNoa292IGF0IG9naG1hIGRvdCBvbiBkb3QgY2E+CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgX2RlY2xzcGVjIHNob3VsZCBiZSBfX2RlY2xzcGVjICh0d28gdW5kZXJzY29yZXMsIG5vdCBvbmUpLiBGaXhlcyAzNjY1NzIuCgoyMDA2LTEwLTI4IDE1OjQyOjI5ICswMDAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJICBUeXBvIGZpeGVzICgjMzY2MjEyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBLamFydGFuIE1hcmFhcyAgPGttYXJhYXMgYXQgZ25vbWUgb3JnPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvY2Fwc25lZ28yLWRvY3M6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBUeXBvIGZpeGVzICgjMzY2MjEyKS4KCjIwMDYtMTAtMjggMTU6MTA6MjYgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBBZGQgbmVlZGVkIGVudHJpZXMgaW4gLmRlZiBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdC5jOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJICBBZGQgbmVlZGVkIGVudHJpZXMgaW4gLmRlZiBmaWxlcy4KCSAgVXNlIEhBVkVfVU5JU1REX0guCgkgIFJlYXJyYW5nZSBkZWYgZmlsZXMgaW4gdnM4IHNvbHV0aW9ucy4gRml4ZXMgIzM2NjI4Ni4KCjIwMDYtMTAtMjggMTU6MDM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IEFkZCBHU1RfU0VHTUVOVF9GT1JNQVQgYW5kIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIHRoZSBoYW5kLW1hZGUgd2luMzIgZ3N0Y29uZmlnLmguIEYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBBZGQgR1NUX1NFR01FTlRfRk9STUFUIGFuZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byB0aGUKCSAgaGFuZC1tYWRlIHdpbjMyIGdzdGNvbmZpZy5oLiBGaXhlcyAjMzY2MzIxLgoKMjAwNi0xMC0yNyAxNjozMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBNYWtlIGFjY2VwdGNhcHMgcmV0dXJuIFRSVUUgd2hlbiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LCBqdXN0IGxpa2Ugc2V0Y2FwcyBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgTWFrZSBhY2NlcHRjYXBzIHJldHVybiBUUlVFIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldCwganVzdCBsaWtlCgkgIHNldGNhcHMgZG9lcy4KCjIwMDYtMTAtMjcgMTA6MTA6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCwgMCBzaXplZCBidWZmZXJzIGFyZSBhbGxvd2VkLiBSZW9wZW5zICMzNjMwOTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCwgMCBzaXplZCBidWZmZXJzIGFyZSBhbGxvd2VkLiBSZW9wZW5zICMzNjMwOTUuCgoyMDA2LTEwLTI2IDA4OjQ5OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBJZiBzb21lb25lIHRyaWVzIHRvIHNldCBhIG5vbi1VVEY4IHN0cmluZyBmaWVsZCBvbiBhIHN0cnVjdHVyZSwgZG9uJ3QganVzdCBwcmludCBhIHdhcm5pbmcsIGJ1dCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgSWYgc29tZW9uZSB0cmllcyB0byBzZXQgYSBub24tVVRGOCBzdHJpbmcgZmllbGQgb24gYSBzdHJ1Y3R1cmUsCgkgIGRvbid0IGp1c3QgcHJpbnQgYSB3YXJuaW5nLCBidXQgYWxzbyBpZ25vcmUgdGhlIHJlcXVlc3QgYW5kIGRvCgkgIG5vdCBjaGFuZ2UvYWRkIHRoYXQgZmllbGQgdG8gdGhlIHN0cnVjdHVyZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKToKCSAgVGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0yNiAwMDowMDozNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5mby5jOiBnX2hhc2hfdGFibGVfaW5zZXJ0KCkgbmVlZHMgYSBjYXN0IHRvIGEgbm9uLWNvbnN0IHBvaW50ZXIgZHVoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBnX2hhc2hfdGFibGVfaW5zZXJ0KCkgbmVlZHMgYSBjYXN0IHRvIGEgbm9uLWNvbnN0IHBvaW50ZXIgZHVoLgoKMjAwNi0xMC0yNSAyMzo0Nzo0MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5mby4qOiBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyIHRvIGNvbnN0IHRvIHJlZmxlY3QgdGhlIGNvbnN0bmVzcyBvZiBpdHMgdXNlIGluIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyIHRvIGNvbnN0CgkgIHRvIHJlZmxlY3QgdGhlIGNvbnN0bmVzcyBvZiBpdHMgdXNlIGluIHRoZSBmdW5jdGlvbiBhcyB3ZWxsCgkgIGFzIHRvIHF1aWV0IGEgZ2NjIHdhcm5pbmcuCgoyMDA2LTEwLTI1IDEzOjQxOjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IHB1c2ggdGhlIGJ1ZmZlciBpZiBpdCdzIGVtcHR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIERvbid0IHB1c2ggdGhlIGJ1ZmZlciBpZiBpdCdzIGVtcHR5LgoJICBDbG9zZXMgIzM2MzA5NQoKMjAwNi0xMC0yNCAwODoyMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5oOiBBZGQgc21hbGwgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBzbWFsbCBjb21tZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKToKCSAgRGVidWcgc2VnbWVudCB2YWx1ZXMgKmFmdGVyKiB1cGRhdGluZyB0aGVtIGFzIHRoaXMgaXMgbW9yZQoJICBpbnRlcmVzdGluZy4KCjIwMDYtMTAtMjMgMTU6MjE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2lzX2Jsb2NraW5nKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgUmV2ZXJ0IEJMT0NLSU5HIHBhdGNoLCBpdCB0cmllcyB0byBiZSBzbWFydCB3aXRob3V0IHJlYWxseSBoYXZpbmcgYQoJICBjbGVhciBpZGVhIHdoYXQgb3IgaG93LiBTbywgbm93IHdlIGRpc2NhcmQgYWxsIEZMVVNISU5HIGV2ZW50cyBhZ2FpbiBvbgoJICBhIGJsb2NraW5nIHBhZC4gU2hvdWxkIGZpeCBnbm9ubGluIGFnYWluLgoKMjAwNi0xMC0yMyAxNDo1MTozMCArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHN1cmUgc2l6ZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQuIEZpeGVzICMzNjQzODguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIHN1cmUgc2l6ZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQuIEZpeGVzICMzNjQzODguCgoyMDA2LTEwLTIwIDExOjM2OjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDogYWRkIHNvbWUgaWRlYXMgYWJvdXQgZG9pbmcgZGlzdHJpYnV0ZWQgcHJvY2Vzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDoKCSAgYWRkIHNvbWUgaWRlYXMgYWJvdXQgZG9pbmcgZGlzdHJpYnV0ZWQgcHJvY2Vzc2luZwoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgZ2V0X3J1c2FnZSBsb29rIHByb21pc2luZwoKMjAwNi0xMC0xOCAxOTo0Mzo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBBZGQgYSBjYXN0IGluIGV4YW1wbGUgdG8gZml4IGNvbXBpbGUgd2FybmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEFkZCBhIGNhc3QgaW4gZXhhbXBsZSB0byBmaXggY29tcGlsZSB3YXJuaW5nCgoyMDA2LTEwLTE4IDE1OjI4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogUmVsYXggYXJnIGNoZWNraW5nIGFnYWluLCAtMSBpcyBhbGxvd2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgUmVsYXggYXJnIGNoZWNraW5nIGFnYWluLCAtMSBpcyBhbGxvd2VkLgoKMjAwNi0xMC0xOCAxMzoyNzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IF9zZXRfbGFzdF9zdG9wKCkgbXVzdCBiZSB3aXRoIGEgdmFsdWUgIT0gLTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIF9zZXRfbGFzdF9zdG9wKCkgbXVzdCBiZSB3aXRoIGEgdmFsdWUgIT0gLTEKCSAgQSBfVFlQRV9TRVQgdG8gLTEgbWVhbnMgc2VlayB0byAwLgoJICBDYWxjIGxhc3Rfc3RvcCBjb3JyZWN0bHkgZm9yIG5lZ2F0aXZlIHJhdGVzLgoJICBNYWtlIHN1cmUgd2Ugd29yayB3aXRoIHBvc2l0aXZlIGR1cmF0aW9ucyB3aGVuIHVwZGF0aW5nIGEgc2VnbWVudC4KCjIwMDYtMTAtMTggMTM6MjE6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU21hbGwgZG9jcyBmaXhlcy4KCjIwMDYtMTAtMTggMTA6MDg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEFkZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdEJ1ZmZlcioqIHRvIGtlZXAgb2xkIGNvZGUgdGhhdCBhZGRlZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdE1pbmlPYmplY3QqKiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RCdWZmZXIqKiB0byBrZWVwIG9sZCBjb2RlIHRoYXQgYWRkZWQgYW4KCSAgZXhwbGljaXQgY2FzdCB0byBHc3RNaW5pT2JqZWN0KiogZm9yIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkKCSAgY29tcGlsaW5nIHdpdGhvdXQgd2FybmluZy4KCjIwMDYtMTAtMTggMDg6NTQ6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBjaGVjayBmb3IgdmFsaWRpdHkgb2YgZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X2RhdGUpLCAoZ3N0X2RhdGVfY29weSk6CgkgIGNoZWNrIGZvciB2YWxpZGl0eSBvZiBkYXRlcwoKMjAwNi0xMC0xNyAxMjowOTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZvcmdvdCB0aGlzIG9uZSwgbWFrZXMgZ3RrLWRvYyBzaHV0IHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGb3Jnb3QgdGhpcyBvbmUsIG1ha2VzIGd0ay1kb2Mgc2h1dCB1cC4KCjIwMDYtMTAtMTcgMTE6NTc6MzIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oOiBEb24ndCBkZWZpbmUgeG1sTm9kZVB0ciB0byBncG9pbnRlciBpZiB0aGUgY29yZSB3YXMgYnVpbHQgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9uJ3QgZGVmaW5lIHhtbE5vZGVQdHIgdG8gZ3BvaW50ZXIgaWYgdGhlIGNvcmUgd2FzIGJ1aWx0IHdpdGgKCSAgLS1kaXNhYmxlLWxvYWRzYXZlIGFuZCAtLWRpc2FibGUtcmVnaXN0cnksIHRoaXMgd2lsbCBicmVhawoJICBhcHBsaWNhdGlvbnMgdGhhdCB3YW50IHRvIHVzZSBsaWJ4bWwyIGJ1dCBhcmUgYnVpbGRsaW5nIGFnYWluc3QgYQoJICBjb3JlIHRoYXQgZG9lc24ndCB1c2UgbGlieG1sMi4gVXNlIGFuIGludGVybWVkaWFyeSB0eXBlIEdzdFhtbE5vZGVQdHIKCSAgaW5zdGVhZCBzbyB3ZSBkb24ndCBoYXZlIHRvIG1lc3Mgd2l0aCB0aGUgbGlieG1sMiBuYW1lc3BhY2UKCSAgKCMzNjE2NzUpLgoKMjAwNi0xMC0xNyAxMDozMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogRml4IGdzdF9idWZmZXJfcmVwbGFjZSgpIG1hY3JvIHRvIGF2b2lkIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCktcmVsYXRlZCB0eXBlLXB1bm5lZCBwb2ludGVyIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEZpeCBnc3RfYnVmZmVyX3JlcGxhY2UoKSBtYWNybyB0byBhdm9pZCBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpLXJlbGF0ZWQKCSAgdHlwZS1wdW5uZWQgcG9pbnRlciB3YXJuaW5ncy4KCjIwMDYtMTAtMTYgMjA6MDI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgY2FzdHMgdG8gdGhlIGNvcnJlY3QgcmV0dXJuIHR5cGUgdG8gc3RhdGUgPD0+IHN0YXRlIHRyYW5zaXRpb24gbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGQgY2FzdHMgdG8gdGhlIGNvcnJlY3QgcmV0dXJuIHR5cGUgdG8gc3RhdGUgPD0+IHN0YXRlIHRyYW5zaXRpb24KCSAgbWFjcm9zLgoKMjAwNi0xMC0xNiAxMzo1Mzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6IGRlc2NyaWJlIGhvd3RvIGhhbmRsZSBsYXRlbmN5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICBkZXNjcmliZSBob3d0byBoYW5kbGUgbGF0ZW5jeQoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgbW9yZSBpZGVhcwoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBmaXggbG9nIHBhcnNpbmcgZm9yIHNvbGFyaXMsIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMDYtMTAtMTYgMTE6NDY6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVcGRhdGUgc29tZSBkb2NzIHJlZ2FyZGluZyByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBVcGRhdGUgc29tZSBkb2NzIHJlZ2FyZGluZyByZXZlcnNlIHBsYXliYWNrLgoKMjAwNi0xMC0xNSAxMjo0NzoxMyArMDAwMCAgTWFyY3VzIEdyYW5hZG8gPG1yYy5ncmFuQGdtYWlsLmNvbT4KCgkgIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajogRXJyb3Igb3V0IHdpdGggYSB3YXJuaW5nIGlmIGdsaWItZ2VubWFyc2hhbC5leGUgaXMgbm90IGluIHBhdGgsIGluc3RlYWQgb2YgY3JlYXRpbmcgYm9ndXMgZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmN1cyBHcmFuYWRvICA8bXJjIGRvdCBncmFuIGF0IGdtYWlsIGNvbT4KCSAgKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkgIEVycm9yIG91dCB3aXRoIGEgd2FybmluZyBpZiBnbGliLWdlbm1hcnNoYWwuZXhlIGlzIG5vdCBpbiBwYXRoLAoJICBpbnN0ZWFkIG9mIGNyZWF0aW5nIGJvZ3VzIGdzdG1hcnNoYWwuW2NoXSBmaWxlcy4gRml4ZXMgIzM2MTcyMC4KCjIwMDYtMTAtMTMgMTY6MDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBXaGVuIHNlZWtpbmcgdG8gc3RvcCAtMSwgc2V0IGxhc3Rfc3RvcCAoY3VycmVudCBwb3NpdGlvbikgdG8gdGhlIGR1cmF0aW9uIG9mIHRoZSBzZWdtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBXaGVuIHNlZWtpbmcgdG8gc3RvcCAtMSwgc2V0IGxhc3Rfc3RvcCAoY3VycmVudCBwb3NpdGlvbikgdG8gdGhlCgkgIGR1cmF0aW9uIG9mIHRoZSBzZWdtZW50LgoKMjAwNi0xMC0xMyAxMzoyNzo0NiArMDAwMCAgWXZlcyBMZWZlYnZyZSA8aXZhbm9oZUBhYmFjb20uY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQ2xhcmlmeSBfTk9fUFJFUk9MTCBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBDbGFyaWZ5IF9OT19QUkVST0xMIGEgYml0IG1vcmUuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksCgkgIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBQYXRjaCBieTogWXZlcyBMZWZlYnZyZSA8aXZhbm9oZSBhdCBhYmFjb20gZG90IGNvbT4gRml4IHBvc3NpYmxlIGRlYWRsb2NrCgkgIGR1ZSB0byB3cm9uZyBsb2NraW5nIG9yZGVyLiBGaXhlcyAjMzYxNzY5LgoJICBSZW1vdmUgc29tZSByZWR1bmRhbnQvbWlzcGxhY2VkIGNoZWNrcyBpbiBwYWRfYmxvY2suCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGb3IgbmVnYXRpdmUgcmF0ZXMsIGNvdW50IGJhY2t3YXJkcyBmcm9tIHRoZSBkdXJhdGlvbi4KCjIwMDYtMTAtMTMgMDk6Mzc6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRml4IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX1NFVFRJTkdTIChmZWVsIGZyZWUgdG8gY29tZSB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfbGlicmFyeV9lcnJvcnNfaW5pdCk6CgkgIEZpeCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9TRVRUSU5HUyAoZmVlbCBmcmVlIHRvIGNvbWUKCSAgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyKS4KCjIwMDYtMTAtMTIgMjI6MzU6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi86IERvbid0IHJlZmVyZW5jZSBnbGliLWNvbXBhdC5jIHdoaWNoIGlzIGN1cnJlbnRseSBub3QgdXNlZCBhbmQgbm90IGRpc3RlZDsgYWRkIGdzdHF1YXJrLmMgd2hpY2ggd2FzIHJlY2VudGx5IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgICogd2luMzIvdnM3L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIERvbid0IHJlZmVyZW5jZSBnbGliLWNvbXBhdC5jIHdoaWNoIGlzIGN1cnJlbnRseSBub3QgdXNlZCBhbmQgbm90CgkgIGRpc3RlZDsgYWRkIGdzdHF1YXJrLmMgd2hpY2ggd2FzIHJlY2VudGx5IGFkZGVkLiBGaXhlcyAjMzYxNzMwLgoKMjAwNi0xMC0xMiAxNjowOToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHJlY2VudGx5LWFkZGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgcmVjZW50bHktYWRkZWQgZnVuY3Rpb25zLgoJICBGaXhlcyAjMzYxNzMyLgoKMjAwNi0xMC0xMSAxNjozMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBlbGVtZW50IGFyZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBVcGRhdGUgZWxlbWVudCBhcmdzLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KSwgKGdzdF90ZWVfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF90ZWVfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBTb21lIHRlZSBsb3Zpbmc6CgkgIEFkZCBkZWZhdWx0IHByb3BlcnR5IGRlZmluZXMuCgkgIEltcGxlbWVudCByZWxlYXNlIHBhZCBmdW5jdGlvbi4KCSAgR2l2ZSBwcm9wZXJ0aWVzIGJldHRlciBibHVicyBldGMuCgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZyB0aGVtIHRvIGEgcnVubmluZyB0ZWUuCgkgIERvIHNpbXBsZSBidWZmZXJfYWxsb2Mgb24gdGhlIGZpcnN0IHJlcXVlc3RlZCBwYWQuCgkgIFBvc3QgZXJyb3Igd2hlbiBhY3RpdmF0aW9uIGZhaWxzLgoKMjAwNi0xMC0xMSAxMjoxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIENoZWNrIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgoyMDA2LTEwLTExIDEwOjEwOjM3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFJlY2hlY2sgcXVldWUgZmlsbGVkbmVzcyBhZnRlciBzaWduYWxsaW5nIHRoZSBvdmVycnVuIHdoZW4gd2UncmUgYWJvdXQgdG8gbGVhayBkb3duc3RyZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFJlY2hlY2sgcXVldWUgZmlsbGVkbmVzcyBhZnRlciBzaWduYWxsaW5nIHRoZSBvdmVycnVuIHdoZW4gd2UncmUgYWJvdXQKCSAgdG8gbGVhayBkb3duc3RyZWFtIGJlY2F1c2Ugd2UgcmVsZWFzZWQgdGhlIGxvY2sgd2hlbiBlbWl0dGluZyB0aGUgc2lnbmFsCgkgIGFuZCB0aGUgcXVldWUgY291bGQgYmUgZW1wdHkgYWdhaW4uIEZpeGVzICMzNTIzNDUuCgoyMDA2LTEwLTExIDA5OjEzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCByZWZjb3VudGluZyBoZXJlIHRvbywganVzdCBsaWtlIHdlIGRpZCBmb3IgX25ld192YWxpc3QoKSBhIGZldyBkYXlzIGFnbyAoIzM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBGaXggcmVmY291bnRpbmcgaGVyZSB0b28sIGp1c3QgbGlrZSB3ZSBkaWQgZm9yIF9uZXdfdmFsaXN0KCkgYSBmZXcKCSAgZGF5cyBhZ28gKCMzNTcxODApICh0aGFua3MgdG8gUmVuw6kgU3RhZGxlcikuIEFsc28gcmVtb3ZlIGFsbCB0aG9zZQoJICAnU2luY2U6IDAuOScgZnJvbSB0aGUgZ3RrLWRvYyBibG9icy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKGNvbnRyb2xsZXJfcmVmY291bnRfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMTAgMTQ6NDc6NDAgKzAwMDAgIFNlYmFzdGllbiBDb3RlIDxzZWJhczY0MkB5YWhvby5jYT4KCgkgIGdzdC9nc3RwYWQuYzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDIgYXQgeWFob28gZG90IGNhPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpOgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBXcml0ZSBwYWQgZGlyZWN0aW9uIGluIFhNTCBvdXRwdXQuIEZpeGVzICMzNDU0OTYuCgoyMDA2LTEwLTEwIDE0OjEzOjA4ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFRha2UgcmVmIHRvIGNvbnRyb2xsZWQgb2JqZWN0IHNvIHRoYXQgaXQgY2Fubm90IGRpc2FwcGVhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLCAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLAoJICAoX2dzdF9jb250cm9sbGVyX2ZpbmFsaXplKSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgVGFrZSByZWYgdG8gY29udHJvbGxlZCBvYmplY3Qgc28gdGhhdCBpdCBjYW5ub3QgZGlzYXBwZWFyLgoJICBGaXhlcyAjMzU3NDMyLgoKMjAwNi0xMC0xMCAxNDowOTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyBpbiBzZXR1cC90ZWFyZG93biByZXNwZWN0aXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgQWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIGluIHNldHVwL3RlYXJkb3duIHJlc3BlY3RpdmVseS4KCjIwMDYtMTAtMTAgMTI6MTI6NDQgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IENhc3QgdmFsdWVzIHdoZW4gbWFraW5nIGdzdGVudW10eXBlcy5oLiAgVGhpcyBwYWNpZmllcyBGb3J0ZSBzbyBpdCBkb2Vzbid0IHdhcm4gYWJvdXQgdGhlIH4wIGFzIEdTVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMTAgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBDYXN0IHZhbHVlcyB3aGVuIG1ha2luZyBnc3RlbnVtdHlwZXMuaC4gIFRoaXMgcGFjaWZpZXMgRm9ydGUKCSAgc28gaXQgZG9lc24ndCB3YXJuIGFib3V0IHRoZSB+MCBhcyBHU1RfTUVTU0FHRV9BTlkgbm90IGZpdHRpbmcKCSAgaW4gdGhlIGVudW1lcmF0aW9uLgoKMjAwNi0xMC0wOSAxNzoxNTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBSZW5hbWUgc29tZSBtb3JlIEBjdXIgdG8gQHN0YXJ0IHRvIGZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfc2VlayksIChnc3RfZXZlbnRfcGFyc2Vfc2Vlayk6CgkgIFJlbmFtZSBzb21lIG1vcmUgQGN1ciB0byBAc3RhcnQgdG8gZml4IGRvY3MuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgRml4IHR5cG8uCgkgIHRpbWUgYW5kIHN0YXJ0IG11c3QgYWx3YXlzIHN0YXkgaW4gc3luYyBhcyBkZWZpbmVkIGluIGRlc2lnbiBkb2MuCgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9pc19lbXB0eSk6CgkgIFJlbmFtZSBwYXJhbSB0byBmaXggZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayB0aGF0IHN0YXJ0IGFuZCB0aW1lIGFyZSBpbiBzeW5jLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWN0aXZhdGUgcGFkIGJlZm9yZSBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuCgoyMDA2LTEwLTA5IDE2OjMzOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXggdHlwby4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgVXBkYXRlIHNlZWsgZXZlbnQgZG9jcyByZWdhcmRpbmcgbmVnYXRpdmUgcmF0ZXMuCgkgIFJlbmFtZSBAY3VyIHRvIEBzdGFydC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIFVwZGF0ZSBzZXRfc2VlayBkb2NzIHJlZ2FyZGluZyBuZWdhdGl2ZSByYXRlcy4KCSAgQ29ycmVjdGx5IHVwZGF0ZSBsYXN0X3N0b3AgdG8gQHN0b3Agd2hlbiBkZWFsaW5nIHdpdGggbmVnYXRpdmUKCSAgcmF0ZXMuCgkgIFJlbmFtZSBAY3VyIHRvIEBzdGFydC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHRyeWluZyB0byB1c2UgdGhlbS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICBBZGQgc2ltcGxlIGNoZWNrIGZvciBzZWdtZW50cyBhbmQgbmVnYXRpdmUgcmF0ZXMuCgoyMDA2LTEwLTA5IDExOjIwOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VtcHR5KCkgKCMzNjA0NjcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2lzX2VtcHR5KToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9pc19lbXB0eSgpICgjMzYwNDY3KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFuZCBhIHRlc3QgY2FzZS4KCjIwMDYtMTAtMDkgMTE6MDY6NTAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBSZXZlcnQgY2hhbmdlIGZyb20gZWFybGllciB3cnQgR1NUX01FU1NBR0VfVFlQRV9BTlkgaGF2aW5nIGEgdmFsdWUgdGhhdCBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZXZlcnQgY2hhbmdlIGZyb20gZWFybGllciB3cnQgR1NUX01FU1NBR0VfVFlQRV9BTlkgaGF2aW5nCgkgIGEgdmFsdWUgdGhhdCBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbi4KCjIwMDYtMTAtMDkgMTA6MTQ6MjggKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogUmVtb3ZlIGxvY2FsIGRlYnVnZ2luZyBzeXN0ZW0gYW5kIHVzZSBHc3RyZWFtZXIncyBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgUmVtb3ZlIGxvY2FsIGRlYnVnZ2luZyBzeXN0ZW0gYW5kIHVzZSBHc3RyZWFtZXIncyBpbnN0ZWFkLgoKMjAwNi0xMC0wOSAwOTozMjoyOSArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6IERpc2FibGUgd2FybmluZyBvZiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQgb24gRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgIERpc2FibGUgd2FybmluZyBvZiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQgb24gRm9ydGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4IHdhcm5pbmcgb24gRm9ydGUgKHZhbHVlIGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uKS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgRml4IHdhcm5pbmcgb24gRm9ydGUgKHZhbHVlIGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uKS4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIERFQlVHIG1hY3JvIHNheXMgaXQgdGFrZXMgbWluaW11bSBvZiAyIGFyZ3MgYW5kIHNvIEZvcnRlCgkgIGNvbXBsYWlucyBhYm91dCB0aGUgdXNlIHdpdGgganVzdCAxIGFyZy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSBjb3JyZWN0IHJldHVybiB0eXBlIGZvciB0aGUgdXJpIGhhbmRsZXIgaW1wbGVtZW50YXRpb25zLgoJICBBbGwgdGhlc2UgZml4IHdhcm5pbmdzIGluIEZvcnRlLiAgRml4ZXMgYnVnICMzNjA4NjAuCgoyMDA2LTEwLTA4IDEzOjI3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogZ2NjIHZlcnNpb25zIHByaW9yIHRvIGdjYyAzLjMgYXBwYXJlbnRseSBjb21wbGFpbiBhYm91dCBhIE5VTEwgcHJpbnRmIGZvcm1hdCBzdHJpbmcsIHNvIGRvbid0IHVzZSBHLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdjYyB2ZXJzaW9ucyBwcmlvciB0byBnY2MgMy4zIGFwcGFyZW50bHkgY29tcGxhaW4gYWJvdXQgYSBOVUxMIHByaW50ZgoJICBmb3JtYXQgc3RyaW5nLCBzbyBkb24ndCB1c2UgR19HTlVDX1BSSU5URiBmb3IgdGhvc2UgdmVyc2lvbnMuCgoyMDA2LTEwLTA3IDE4OjQxOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogTWlub3IgZml4ZXMgdG8gR1NUX0lTX1RBR19MSVNUIGFuZCBnc3RfaXNfdGFnX2xpc3QoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF9pc190YWdfbGlzdCk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTWlub3IgZml4ZXMgdG8gR1NUX0lTX1RBR19MSVNUIGFuZCBnc3RfaXNfdGFnX2xpc3QoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKToKCSAgU21hbGwgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0wNyAxODoxMTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IExlc3MgdGFicywgbW9yZSBzcGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIExlc3MgdGFicywgbW9yZSBzcGFjZXMuCgoyMDA2LTEwLTA2IDE3OjIxOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogVGhvc2UgdHdvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBkbyBhY3R1YWxseSBiZWxvbmcgdGhlcmUsIHJldmVydCBjb21taXQgZnJvbSB5ZXN0ZXJkYXkgdGhhdCB0dXJuZWQgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFRob3NlIHR3byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZG8gYWN0dWFsbHkgYmVsb25nIHRoZXJlLCByZXZlcnQKCSAgY29tbWl0IGZyb20geWVzdGVyZGF5IHRoYXQgdHVybmVkIHRoZW0gaW50cm8gbWFjcm9zLgoKMjAwNi0xMC0wNiAxNDo0NjowNCArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IGVtcHR5IGRlY2xhcmF0aW9uIGFuZCB0eXBlIG1pc21hdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKToKCSAgRml4IGVtcHR5IGRlY2xhcmF0aW9uIGFuZCB0eXBlIG1pc21hdGNoLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggdHlwZSBtaXNtYXRjaC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2hlcy4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2NvbXBhcmVfbG9nX2Z1bmN0aW9uX2J5X2Z1bmMpLAoJICAoZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24pLCAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgIENhc3QgYXMgYXBwcm9wcmlhdGUuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X2NsYXNzX3NpZ25hbF9jb25uZWN0KToKCSAgQ2FzdCBhcyBhcHByb3ByaWF0ZS4gIFRoZSBmdW5jdGlvbiBwb2ludGVyIHBhcmFtZXRlciByZWFsbHkKCSAgaGFzIHRoZSB3cm9uZyB0eXBlIGJ1dCB3b3VsZCBicmVhayBBUEkgaWYgd2UgY2hhbmdlIGl0LgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBGaXggcmVkZWZpbml0aW9uIG9mIF9GSUxFX09GRlNFVF9CSVRTIGNhdXNlZCBvbiBTb2xhcmlzIHdydAoJICBvcmRlciBvZiBpbmNsdWRpbmcgc3RyaW5nLmguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIFJlbW92ZSB1bnJlYWNoYWJsZSBsaW5lLgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfcGFyc2VfZG9jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2guCgkgIEFsbCB0aGVzZSBjYXVnaHQgYnkgRm9ydGUuCgoyMDA2LTEwLTA2IDE0OjAwOjQ5ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgY29tbW9uL200L2dzdC1lcnJvci5tNDogRml4ZWQgYnVnICMzNjAxNTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgIEZpeGVkIGJ1ZyAjMzYwMTUxLgoJICBXZSBuZWVkIHRvIGRpc2FibGUgd2FybmluZ3Mgb24gRm9ydGUgZm9yIGVtcHR5IGRlY2xhcmF0aW9ucwoJICBkdWUgdG8gZ3N0LWluZGVudCBhZGRpbmcgO3MgdG8gbGluZXMgdGhhdCBqdXN0IHVzZSBtYWNyb3MKCSAgd2hlcmUgdGhlIG1hY3JvIGFjdHVhbGx5IGRvZXNuJ3QgbmVlZCBhIDsgYXQgZW5kIHRvIGVuZAoJICBzdGF0ZW1lbnQuCgoyMDA2LTEwLTA2IDEzOjAxOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBBZGQgc29tZSBGSVhNRSBmb3IgdGhlIE5FV1NFR01FTlQgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgQWRkIHNvbWUgRklYTUUgZm9yIHRoZSBORVdTRUdNRU5UIGhhbmRsaW5nLgoKMjAwNi0xMC0wNSAxNTo0Nzo0NCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gZ3N0X3BhcnNlX2VsZW1lbnRfbG9jayBhcyBhbGwgaXQgZG9lcyBpcyByZXR1cm4uICBMb29rcyBsaWtlIGNydWZ0IGZyb20gMC44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gZ3N0X3BhcnNlX2VsZW1lbnRfbG9jayBhcyBhbGwgaXQgZG9lcwoJICBpcyByZXR1cm4uICBMb29rcyBsaWtlIGNydWZ0IGZyb20gMC44LgoKMjAwNi0xMC0wNSAxNTozMToxNiArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIEZpeCBhIGNvbXBpbGF0aW9uIGlzc3VlIHdpdGggRm9ydGUgb24gU29sYXJpcy4gIGluZXRfYXRvbiBpcyBpbiBsaWJyZXNvbHYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgRml4IGEgY29tcGlsYXRpb24gaXNzdWUgd2l0aCBGb3J0ZSBvbiBTb2xhcmlzLiAgaW5ldF9hdG9uIGlzIGluCgkgIGxpYnJlc29sdi4KCjIwMDYtMTAtMDUgMTQ6MjY6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQcmludGYgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBQcmludGYgZml4ZXMuCgoyMDA2LTEwLTA1IDEyOjMxOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIGdzdGNvbmZpZy5oIHNvIHRoYXQgd2Uga25vdyB3aGV0aGVyIHdlIGNhbiB1c2UgR19HTlVDX1BSSU5URiBpbiBvdGhlciBoZWFkZXIgZmlsZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byBnc3Rjb25maWcuaCBzbyB0aGF0IHdlIGtub3cKCSAgd2hldGhlciB3ZSBjYW4gdXNlIEdfR05VQ19QUklOVEYgaW4gb3RoZXIgaGVhZGVyIGZpbGVzIGFuZCBhdAoJICBsZWFzdCBjaGVjayB0aGUgcHJpbnRmIGZvcm1hdC9hcmd1bWVudHMgb2YgZGVidWcgbWVzc2FnZXMgYW5kCgkgIEdTVF9FTEVNRU5UX0VSUk9SIG1lc3NhZ2VzIHdoZW4gdGhlIHByaW50ZiBleHRlbnNpb24gaXMgbm90CgkgIGJlaW5nIHVzZWQuCgkgIFJlcGxhY2UgbW9yZSB0YWJzIHdpdGggc3BhY2VzIGluIGdzdGluZm8uaCBhbmQgcmVtb3ZlIHR3byBzcHVyaW91cwoJICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gR1NUX0RJU0FCTEVfREVCVUcgcGFydCB3aXRoIG1hY3Jvcy4KCjIwMDYtMTAtMDMgMTk6MTM6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1vcmUgZG9jcyBmb3IgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgKG1lbnRpb24gdGhhdCBpdCBpcyBub3QgZW1pdHRlZCBieSBkZWZhdWx0KTsgbG9nIG1lc3NhZ2Ugc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfcG9zdCk6CgkgIE1vcmUgZG9jcyBmb3IgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgKG1lbnRpb24gdGhhdCBpdCBpcyBub3QKCSAgZW1pdHRlZCBieSBkZWZhdWx0KTsgbG9nIG1lc3NhZ2Ugc3RydWN0dXJlcyBvZiBtZXNzYWdlcyBwb3N0ZWQgb24KCSAgdGhlIGJ1cyBhcyB3ZWxsLgoKMjAwNi0xMC0wMyAxNToxMDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IFVzZSBhIHBpcGUgcGFpciB0byByZWNlaXZlIHN0YXR1cyByZXN1bHRzIGZyb20gdGhlIGZvcmtlZCBjaGlsZCwgYW5kIGlnbm9yZSB0aGUgcmVzdWx0IGZyb20gd2FpdHBpZC4gRml4ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIFVzZSBhIHBpcGUgcGFpciB0byByZWNlaXZlIHN0YXR1cyByZXN1bHRzIGZyb20gdGhlIGZvcmtlZCBjaGlsZCwgYW5kCgkgIGlnbm9yZSB0aGUgcmVzdWx0IGZyb20gd2FpdHBpZC4gRml4ZXMgIzM1NTQ5OQoKMjAwNi0xMC0wMiAxNjo0NjoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBGaXggbGVhayBpbiBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgRml4IGxlYWsgaW4gY2hlY2suCgoyMDA2LTEwLTAyIDE2OjM3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgJ1NpbmNlOiAwLjEwLjExJyB0byBnc3RfcGFkX2lzX2Jsb2NraW5nKCkgZ3RrLWRvYyBibHVyYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBBZGQgJ1NpbmNlOiAwLjEwLjExJyB0byBnc3RfcGFkX2lzX2Jsb2NraW5nKCkgZ3RrLWRvYyBibHVyYi4KCjIwMDYtMTAtMDIgMTY6MDE6NTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogRnVydGhlciBleHBsYWluIHRoZSB1c2Ugb2YgZmx1c2hpbmcgb24gYmxvY2tlZCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgRnVydGhlciBleHBsYWluIHRoZSB1c2Ugb2YgZmx1c2hpbmcgb24gYmxvY2tlZCBwYWRzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pc19ibG9ja2luZyksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBuZXcgR3N0UGFkRmxhZyA6IEdTVF9QQURfQkxPQ0tJTkcuCgkgIEFkZHMgdGhlIG5vdGlvbiBvZiBwYWRzIHJlYWxseSBibG9ja2luZywgd2hpY2ggZW5hYmxlcyB0byBwcm9wZXJseQoJICBoYW5kbGUgRkxVU0hfU1RBUlQvRkxVU0hfU1RPUCBldmVudHMgb24gYmxvY2tlZCBwYWRzLgoJICBGaXhlcyAjMzU4OTk5CgkgIEFQSTogZ3N0X3BhZF9pc19ibG9ja2luZygpCgkgIEFQSTogR1NUX1BBRF9JU19CTE9DS0lORygpIG1hY3JvCgkgIEFQSTogR1NUX1BBRF9CTE9DS0lORyBHc3RQYWRGbGFnCgoyMDA2LTEwLTAyIDEwOjA2OjE3ICswMDAwICBtcmNncmFuIDxtcmMuZ3JhbkBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRmlsdGVyIHRoZSBwcm94aWVkIGNhcHMgYWdhaW5zdCB0aGUgcGFkdGVtcGxhdGUgaWYgd2UgaGF2ZSBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogbXJjZ3JhbiA8bXJjLmdyYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2Fwcyk6CgkgIEZpbHRlciB0aGUgcHJveGllZCBjYXBzIGFnYWluc3QgdGhlIHBhZHRlbXBsYXRlIGlmIHdlIGhhdmUgb25lLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KToKCSAgQWRkIGluY2x1ZGUgZm9yIGdzdGluZm8uaCBzbyB0aGF0IGNvbXBpbGF0aW9uIHdpdGgKCSAgLURHU1RfRElTQUJMRV9HU1RfREVCVUcgd29ya3MgYWdhaW4uIEZpeGVzICMzNTg0MzYuCgoyMDA2LTEwLTAyIDA5OjQ0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBHaXZlIGNyZWRpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2l2ZSBjcmVkaXQKCjIwMDYtMTAtMDIgMDk6NDE6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNldCBmaWxlIHRvIE5VTEwgd2hlbiBjbG9zaW5nIGZpbGVzaW5rIHNvIHRoYXQgd2UgY2FuIHNldCBhIG5ldyBmaWxlbmFtZSBpbiBSRUFEWS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KSwKCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKSwgKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgU2V0IGZpbGUgdG8gTlVMTCB3aGVuIGNsb3NpbmcgZmlsZXNpbmsgc28gdGhhdCB3ZSBjYW4gc2V0IGEgbmV3IGZpbGVuYW1lCgkgIGluIFJFQURZLiBGaXhlcyAjMzU4NjEzLgoKMjAwNi0xMC0wMiAwODozNzoyNCArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRml4IGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKCkgYW5kIGdzdF9ldmVudF9jb3B5KCkgZm9yIGV2ZW50cyB3aXRoIGV2ZW50IHN0cnVjdHVyZXMgYnkgc2V0dGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSAgPGFsZXNzYW5kcm8gYXQgbm52YSBvcmc+CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2NvcHkpOgoJICBGaXggZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUoKSBhbmQgZ3N0X2V2ZW50X2NvcHkoKSBmb3IgZXZlbnRzCgkgIHdpdGggZXZlbnQgc3RydWN0dXJlcyBieSBzZXR0aW5nIHRoZSBwYXJlbnQgcmVmY291bnQgYWRkcmVzcyBvZiB0aGUKCSAgY29waWVkIHN0cnVjdHVyZSB0byB0aGUgYWRkcmVzcyBvZiB0aGUgcmVmY291bnQgbWVtYmVyIG9mIHRoZSBuZXdseQoJICBjb3BpZWQgZXZlbnQgcmF0aGVyIHRoYW4gdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZmNvdW50IG1lbWJlciBvZiB0aGUKCSAgb3JpZ2luYWwgZXZlbnQuIEZpeGVzICMzNTg3MzcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0wOS0yOSAyMDoyOTo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3Qgc29tZSBtb3JlIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBzb21lIG1vcmUgZmlsZXMuCgoyMDA2LTA5LTI5IDEyOjMxOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IEFkZCB0ZXN0IGZvciB0aGUgcHJldmlvdXMgZml4OyBhZGQgc29tZSBtb3JlIHRlc3RzIGZvciBjb3JyZWN0IHJlZmNvdW50aW5nIGJlaGF2aW91cjsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdGVzdCBmb3IgdGhlIHByZXZpb3VzIGZpeDsgYWRkIHNvbWUgbW9yZSB0ZXN0cwoJICBmb3IgY29ycmVjdCByZWZjb3VudGluZyBiZWhhdmlvdXI7IGZpeCBhIGZldyBsZWFrcwoJICBpbiB0ZXN0IGNhc2VzOyBjYWxsIGdzdF9jb250cm9sbGVyX2luaXQoKSBhdCBzdGFydAoJICBvZiBhbGwgdGVzdHMuCgoyMDA2LTA5LTI5IDEyOjI0OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IERvbid0IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgb24gdGltZWQgdmFsdWVzIHdpdGggaW52YWxpZCB0aW1lc3RhbXBzIGluc2lkZSBhIGNyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KToKCSAgRG9uJ3QgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBvbiB0aW1lZCB2YWx1ZXMgd2l0aCBpbnZhbGlkIHRpbWVzdGFtcHMKCSAgaW5zaWRlIGEgY3JpdGljYWwgc2VjdGlvbiB3aXRob3V0IHVubG9ja2luZyB0aGUgbXV0ZXguIFNwb3R0ZWQgYnkKCSAgUmVuw6kgU3RhZGxlci4gKCMzNTc2MTcpCgkgIEFsc28sIGZpeCB1cCByZWZjb3VudGluZyBwcm9wZXJseTogd2hlbiByZXR1cm5pbmcgYW4gZXhpc3RpbmcKCSAgY29udHJvbGxlciwgd2Ugc2hvdWxkIGluY3JlYXNlIHRoZSByZWZlcmVuY2Ugb25seSBvbmNlIGFuZCBub3QKCSAgb25jZSBwZXIgcHJvcGVydHkgYW5kIHdoZW4gdHJ5aW5nIHRvIGNvbnRyb2wgYSBwcm9wZXJ0eSBhZ2FpbgoJICB3ZSBzaG91bGQgYWxzbyBpbmNyZWFzZSB0aGUgcmVmY291bnQuCgoyMDA2LTA5LTI5IDA4OjIyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogU3RvcCByZWFkaW5nIGNvbW1hbmRzIHdoZW4gRU9GIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKToKCSAgU3RvcCByZWFkaW5nIGNvbW1hbmRzIHdoZW4gRU9GIGFzIHdlbGwuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgIFVuaWZ5IGRlc2NyaXB0aW9uIG9mIHRoZSBkdW1wIHByb3BlcnR5LgoKMjAwNi0wOS0yOCAxNzoyMDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIG51bWJlciBpbiBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIG51bWJlciBpbiBwcmV2aW91cyBjb21taXQKCjIwMDYtMDktMjggMTU6NTI6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6IE9LLCBzbyBpdCdzIGFjdHVhbGx5IGN2c2lnbm9yZSB0aGF0IG5lZWRzIGNoYW5naW5nLiBTdG9wIGxhdWdoaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgT0ssIHNvIGl0J3MgYWN0dWFsbHkgY3ZzaWdub3JlIHRoYXQgbmVlZHMgY2hhbmdpbmcuIFN0b3AgbGF1Z2hpbmcuCgoyMDA2LTA5LTI4IDE1OjI3OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbTogR2FoLCBkZWNsYXJlIHZhcnMgKmJlZm9yZSogdXNpbmcgdGhlbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIEdhaCwgZGVjbGFyZSB2YXJzICpiZWZvcmUqIHVzaW5nIHRoZW0KCjIwMDYtMDktMjggMTQ6MDA6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmUtY29tbWl0IHRoZSByZWdpc3RyeSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGFuIGV4dHJhIGZpeDoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZS1jb21taXQgdGhlIHJlZ2lzdHJ5IGNoYW5nZXMsIGFsb25nIHdpdGggYW4gZXh0cmEgZml4OgoJICBXaGVuIGEgY2FjaGVkIHBsdWdpbiBpcyBlbmNvdW50ZXJlZCBhdCBhIGRpZmZlcmVudCBmaWxlIHBhdGgsCgkgIHVwZGF0ZSB0aGUgc3RvcmVkIHBhdGggaW4gdGhlIHJlZ2lzdHJ5IGNhY2hlIHNvIHRoYXQgdGhlIHBhcmVudAoJICBwcm9jZXNzIGtub3dzIHdoZXJlIGl0IGFjdHVhbGx5IGlzIG5vdyB3aGVuIGl0IHJlLXJlYWRzIHRoZSByZWdpc3RyeQoJICBjYWNoZS4gRml4ZXMgdGhlIHRoaW5nIHRoYXQgYnJva2UgZGlzdGNoZWNrIHdpdGggdGhlIHByZXZpb3VzIGNvbW1pdC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQ2xlYW4gdXAgZmlsZXMgbmFtZWQgJ2NvcmUnIHRvbyB3aGVuIHJ1bm5pbmcgbWFrZSBjbGVhbi4KCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFNldCB1cCBhIHJlZ2lzdHJ5IHBhdGggZm9yIHJ1bm5pbmcgdGhlc2UgdGVzdHMsIGFuZCBjbGVhbiBpdCBwcm9wZXJseQoJICBmb3IgZGlzdGNoZWNrLgoKMjAwNi0wOS0yOCAxMToxMToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHB1bGwgaW4gZ21vZHVsZS0yLjAucGMgYXMgYSBkZXBlbmRlbmN5IGluIG91ciAucGMgZmlsZXMgLSB3ZSB3YW50IGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYyBpbnN0ZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBwdWxsIGluIGdtb2R1bGUtMi4wLnBjIGFzIGEgZGVwZW5kZW5jeSBpbiBvdXIgLnBjIGZpbGVzIC0gd2UKCSAgd2FudCBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMgaW5zdGVhZCBzbyB0aGF0IHdlIGRvbid0IGRyYWcgaW4KCSAgLS1leHBvcnQtZHluYW1pYyBvbiBldmVyeSBwcm9qZWN0IHRoYXQgbGlua3MgdG8gR1N0cmVhbWVyLgoJICBBbHNvLCBtYWtlIG91ciBleHBvcnQgcmVnZXggb25seSBtYXRjaCB0aGUgc3RhcnQgb2Ygc3ltYm9scywgcmF0aGVyCgkgIHRoYW4gYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zICdfZ3N0JyBzb21ld2hlcmUuCgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIFRoZSBsaWJnc3RjaGVjayB3ZSBidWlsZCBkb2VzIGhvd2V2ZXIgbmVlZCBleHBvcnQtZHluYW1pYywgYXMgaXQKCSAgcHJvZHVjZXMgc29tZSBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggb3VyIF9nc3QuLi4gc3R5bGUgcmVnZXguCgoyMDA2LTA5LTI3IDE3OjQyOjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdW50aWwgSSBmaWd1cmUgb3V0IHdoeSBpdCBicmVha3MgZGlzdGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLCAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHVudGlsIEkgZmlndXJlIG91dCB3aHkgaXQgYnJlYWtzIGRpc3RjaGVjay4KCjIwMDYtMDktMjcgMTY6NTI6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBNYWtlIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgdGFrZSB0aGUgZnVsbCBjb21wbGVtZW50IG9mIEdPcHRpb25GdW5jIGFyZ3Mgc28gdGhleSBjYW4gcmV0dXJuIHVzZWZ1bCBHRXJyb3JzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICBNYWtlIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgdGFrZSB0aGUgZnVsbCBjb21wbGVtZW50IG9mIEdPcHRpb25GdW5jCgkgIGFyZ3Mgc28gdGhleSBjYW4gcmV0dXJuIHVzZWZ1bCBHRXJyb3JzLiBNYWtlIHRoZSByZWdpc3RyeSB1cGRhdGluZwoJICBmdW5jdGlvbnMgZG8gc28uCgkgIENhbGwgX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIGFmdGVyIHNjYW5uaW5nIGZpbGVzIHRvCgkgIGVuc3VyZSB0aGF0IHRoZSByZWdpc3RyeSB3ZSdyZSBhYm91dCB0byB3cml0ZSBvdXQgZG9lc24ndCBjb250YWluCgkgIHN0YWxlIGluZm9ybWF0aW9uIGFib3V0IG9sZC1kZWxldGVkIHBsdWdpbiBmaWxlcy4KCSAgTWFrZSBfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgcmV0dXJuIGEgYm9vbGVhbiBzbwoJICB0aGF0IGRlbGV0aW9uIG9mIHBsdWdpbiBmaWxlcyBpcyBjb25zaWRlcmVkIGEgcmVnaXN0cnkgY2hhbmdlLgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmVuYW1lIF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgYW5kIF9nc3RfcmVnaXN0cnlfY2xlYW51cAoJICBieSBhZGRpbmcgX3ByaXYgcHJlZml4LCBzbyB0aGF0IHRoZXkgd29uJ3QgYXBwZWFyIGluIHRoZSBnbG9iYWwKCSAgc3ltYm9sIHRhYmxlLiBUaGV5IHN0aWxsIGRvIGF0bSB0aG91Z2ggYmVjYXVzZSBvZiAjMzE4MDMxLiBNb3ZlIHRoZQoJICBwcm90b3R5cGVzIHRvIGdzdF9wcml2YXRlLmgKCSAgV2hlbiByZW1vdmluZyBhIHBsdWdpbiwgcmVtb3ZlIGFsbCBmZWF0dXJlcyBmb3IgdGhhdCBwbHVnaW4gdG9vLgoJICBGaXhlcyAjMzQwODc4LgoKMjAwNi0wOS0yNyAxMzoxOTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOiBNYWtlIGl0IGNsZWFyIHRoYXQgdGhlICJjb21waWxlZC1pbiBkZXNjcmlwdGlvbnMiIHJlYWxseSBtZWFuIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBNYWtlIGl0IGNsZWFyIHRoYXQgdGhlICJjb21waWxlZC1pbiBkZXNjcmlwdGlvbnMiIHJlYWxseSBtZWFuCgkgIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpOgoJICBVcGRhdGUgZG9jcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkZWQgZnVuY3Rpb24gdG8gYmxvY2sgd2hpbGUgd2FpdGluZyBmb3IgUExBWUlORywgdGhpcyBmdW5jdGlvbgoJICBpcyB1c2VkIGJ5IGxpdmUgc291cmNlcyB0aGF0IGJsb2NrIG9uIHRoZSBjbG9jay4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKCkKCjIwMDYtMDktMjcgMTA6MTM6MTMgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgTWFrZWZpbGUuYW06IGdzdC1lbGVtZW50LWNoZWNrLm00IGlzIGdlbmVyYXRlZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBiZSBjb3BpZWQgZnJvbSB0aGUgYnVpbGQgZGlyIHJhdGhlciB0aGFuIHRoZSBzb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogTWFrZWZpbGUuYW06CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00IGlzIGdlbmVyYXRlZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBiZQoJICBjb3BpZWQgZnJvbSB0aGUgYnVpbGQgZGlyIHJhdGhlciB0aGFuIHRoZSBzb3VyY2UgZGlyICgjMzU3NTkzKS4KCSAgJ21ha2UgZGlzdGNoZWNrJyBoYXNuJ3Qgbm90aWNlZCB0aGlzIGJlY2F1c2Ugd2Ugd2VyZSBkaXN0aW5nCgkgIHRoZSBmaWxlIGFzIHdlbGwsIHNvIHN0b3AgZG9pbmcgdGhhdC4KCjIwMDYtMDktMjcgMDk6MjM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2NhcHNfaW50ZXJzZWN0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3RzIGZvciBnc3RfY2Fwc19pbnRlcnNlY3QoKS4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgYWxsIGJ1ZmZlcmluZyBwZXJjZW50YWdlcyB3ZSBnZXQsIGV2ZW4gdGhlIDEwMCUgb25lLgoKMjAwNi0wOS0yNiAxMjozOToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBwcmludGluZyBvZiBmbGFncyB0byBtYXRjaCB0aGUgbG9vayBvZiBlbnVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgRml4IHByaW50aW5nIG9mIGZsYWdzIHRvIG1hdGNoIHRoZSBsb29rIG9mIGVudW1zLgoKMjAwNi0wOS0yNSAxMzowODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBGaXggdHlwbyBpbiBkb2NzIGJsdXJiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgRml4IHR5cG8gaW4gZG9jcyBibHVyYi4KCjIwMDYtMDktMjUgMTE6MTY6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IGFzc2VydC9jcmFzaCBoZXJlIGlmIGEgdXJpIGhhbmRsZXIgZG9lc24ndCByZXR1cm4gYW55IHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBsaXN0IG9mIHByb3RvY29scyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoc2VhcmNoX2J5X2VudHJ5KToKCSAgRG9uJ3QgYXNzZXJ0L2NyYXNoIGhlcmUgaWYgYSB1cmkgaGFuZGxlciBkb2Vzbid0IHJldHVybiBhbnkKCSAgc3VwcG9ydGVkIHByb3RvY29scy4gVGhlIGxpc3Qgb2YgcHJvdG9jb2xzIGNvdWxkIGJlIGdlbmVyYXRlZAoJICBkeW5hbWljYWxseSBhdCBydW50aW1lIG9yIGF0IHBsdWdpbiByZWdpc3RyYXRpb24sIGFuZCBhbiBlcnJvcgoJICBpbiB0aGUgdW5kZXJseWluZyBsaWJyYXJ5IHNob3VsZG4ndCBiZSBmYXRhbCAoIzM1MzMwMSkuCgoyMDA2LTA5LTI1IDEwOjM2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IHdhcm5pbmcgaWYgSEFWRV9QUklOVEZfRVhURU5TSU9OIGlzIHVuZGVmaW5lZCAoc3BvdHRlZCBieSBQZXRlciBLamVsbGVyc3RlZHQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggd2FybmluZyBpZiBIQVZFX1BSSU5URl9FWFRFTlNJT04gaXMgdW5kZWZpbmVkCgkgIChzcG90dGVkIGJ5IFBldGVyIEtqZWxsZXJzdGVkdCkuCgoyMDA2LTA5LTIzIDA5OjMwOjQwICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1hdGNoIF9zdGFydC9fc3RvcCBjYWxscyBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zLiBSZW1vdmUgcmVkdW5kYW50IF9zdG9wIGNhbGwgZnJvbSB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYXRjaCBfc3RhcnQvX3N0b3AgY2FsbHMgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucy4gUmVtb3ZlIHJlZHVuZGFudAoJICBfc3RvcCBjYWxsIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4gRml4ZXMgIzM1NjkxMC4KCSAgVHVybiBmYWlsdXJlIERFQlVHIGludG8gRVJST1IuCgoyMDA2LTA5LTIyIDE1OjI5OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXBkYXRlIGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKToKCSAgVXBkYXRlIGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIEZpeCB0eXBvLgoKMjAwNi0wOS0yMiAxNDozMDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBhdWRpb3Rlc3RzcmMgaXMgbm90IHBhcnQgb2YgY29yZSwgZmFrZXNyYyBpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXVkaW90ZXN0c3JjIGlzIG5vdCBwYXJ0IG9mIGNvcmUsIGZha2VzcmMgaXMKCjIwMDYtMDktMjIgMTM6MzI6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBSZWYgaW5zdGFuY2VzIHdoZW4gcmV0dXJuaW5nIHRoZW0gYWdhaW4gKGZpeGVzICMzNTcxODApCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIFJlZiBpbnN0YW5jZXMgd2hlbiByZXR1cm5pbmcgdGhlbSBhZ2FpbiAoZml4ZXMgIzM1NzE4MCkKCjIwMDYtMDktMjIgMTA6MTc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRG9uJ3QgZm9yZ2V0IHRvIHJlbGVhc2UgcHJveHkgbG9jayB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIHJlbGVhc2UgcHJveHkgbG9jayB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuCgoyMDA2LTA5LTIwIDE2OjE3OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RjYXBzLmg6IEFkZCBleHRyYSBpbml0aWFsaXNlcnMgZm9yIENhcHMgdGhpbmdzLCB0byBmaXggc29tZSBwbHVnaW4gd2FybmluZ3Mgd2hlbiB1c2luZyAtV2V4dHJhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEFkZCBleHRyYSBpbml0aWFsaXNlcnMgZm9yIENhcHMgdGhpbmdzLCB0byBmaXggc29tZSBwbHVnaW4gd2FybmluZ3MKCSAgd2hlbiB1c2luZyAtV2V4dHJhCgoyMDA2LTA5LTE4IDEzOjU2OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFsc28gc2V0IHRlbXBsYXRlIG9uIHRoZSBpbnRlcm5hbCBwYWQgc28gdGhhdCBhIGdldGNhcHMgZnJvbSB0aGUgdGFyZ2V0IHBhZCByZXR1cm5zIHRoZSB0ZW1wbGF0ZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIEFsc28gc2V0IHRlbXBsYXRlIG9uIHRoZSBpbnRlcm5hbCBwYWQgc28gdGhhdCBhIGdldGNhcHMgZnJvbSB0aGUgdGFyZ2V0CgkgIHBhZCByZXR1cm5zIHRoZSB0ZW1wbGF0ZSBjYXBzLgoKMjAwNi0wOS0xOCAxMzo0NDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBfREVCVUdfT0JKRUNUIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgVXNlIF9ERUJVR19PQkpFQ1Qgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBBdm9pZCB0eXBlY2hlY2tzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBJZiB0aGUgdG9wbGV2ZWwgZWxlbWVudCBpcyBub3QgYSBHc3RQaXBlbGluZSwgaXQgbXVzdCBiZSBwdXQgaW4gYQoJICBwaXBlbGluZSBzbyB0aGF0IGEgYnVzIGFuZCBjbG9jayBpcyBzZWxlY3RlZC4KCjIwMDYtMDktMTcgMTk6MzE6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSklUVEVSLCBSQVRFLCBhbmQgTEFURU5DWSBxdWVyeSBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBjYXNlIGFuZCBub3QgYnkgdGhlIENPTlYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEpJVFRFUiwgUkFURSwgYW5kIExBVEVOQ1kgcXVlcnkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlCgkgIGRlZmF1bHQgY2FzZSBhbmQgbm90IGJ5IHRoZSBDT05WRVJUIHF1ZXJ5IGNvZGUuCgoyMDA2LTA5LTE3IDE5OjI2OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBGaXggbG9ja2luZyBvcmRlciAobXVzdCB0YWtlIGxvY2sgYmVmb3JlIHVzaW5nIG5fdmFsdWVzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9yZWdpc3Rlcik6CgkgIEZpeCBsb2NraW5nIG9yZGVyIChtdXN0IHRha2UgbG9jayBiZWZvcmUgdXNpbmcgbl92YWx1ZXMpLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9lbnVtKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtX2l0ZXJfY21wKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtKToKCSAgRml4IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIG9mIGN1c3RvbSByZWdpc3RlcmVkIEdzdEZvcm1hdHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIGN1c3RvbSBmb3JtYXQgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24uCgoyMDA2LTA5LTE2IDIxOjM4OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4gQWxzbyBGaXggc29tZSBkZXRhaWxzIG9uIHRoZSBwbHVnaW4tc3RhbXAgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuIEFsc28gRml4IHNvbWUgZGV0YWlscyBvbiB0aGUgcGx1Z2luLXN0YW1wCgkgIHNlY3Rpb24uCgoyMDA2LTA5LTE2IDEyOjQ5OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIGlmIHJlcXVlc3RlZCBjYXBzIGFyZSB0aGUgc2FtZSBhcyB0aGUgc2lua3MgY2FwcyBJRgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBDaGVjayBpZiByZXF1ZXN0ZWQgY2FwcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHNpbmtzIGNhcHMgSUYKCSAgLT5oYXZlX3NhbWVfY2FwcyBpcyBUUlVFLiBJZiB0aGV5IGFyZSBub3QsIGFjdCBhcyBpZiBoYXZlX3NhbWVfY2FwcwoJICBpcyBGQUxTRS4KCSAgVGhpcyBmaXhlcyB0aGUgcmVuZWdvdGlhdGlvbiBpc3N1ZXMgc3RhdGVkIGluICMzNTI4MjcuCgoyMDA2LTA5LTE2IDEwOjQ5OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEV4dHJhY3QgdGhlIG1hbnVhbCBleGFtcGxlcyBhZ2FpbiBsaWtlIHdlIHVzZWQgdG8gZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgRXh0cmFjdCB0aGUgbWFudWFsIGV4YW1wbGVzIGFnYWluIGxpa2Ugd2UgdXNlZCB0byBkby4KCSAgRml4IG9uZSBvZiB0aGVtLgoKMjAwNi0wOS0xNiAxMDo0NzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmg6IHVwZGF0ZSBmb3IgdmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBmb3IgdmVyc2lvbgoKMjAwNi0wOS0xNSAyMTozMDowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IERvY3VtZW50cyBob3cgdG8gcmVjZWl2ZSBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICBEb2N1bWVudHMgaG93IHRvIHJlY2VpdmUgZXJyb3JzLgoKMjAwNi0wOS0xNSAxMDo0MzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQWRkZWQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoc2lnaW50X2hhbmRsZXJfc2lnaGFuZGxlciksIChjaGVja19pbnRyKSwKCSAgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgIFBvc3QgYW4gYXBwbGljYXRpb24gbWVzc2FnZSB3aGVuIGFuIGludGVycnVwdCBpcyBjYXVnaHQgaW5zdGVhZCBvZiBkb2luZwoJICBhbiB1bmNvbnRyb2xsZWQgc3RhdGUgY2hhbmdlLgoJICBDbGVhbiB1cCB0aGUgZXZlbnQgbG9vcC4KCSAgSGFuZGxlIGJ1ZmZlcmluZyBtZXNzYWdlcywgcGF1c2UvcmVzdW1lIHRoZSBwaXBlbGluZS4KCSAgTWFrZSBzaHV0ZG93biBiZWNhdXNlIG9mIGFuIGludGVycnVwdCBtb3JlIHJlbGlhYmxlLgoKMjAwNi0wOS0xNSAwOTo0OToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzdXJlIHRoYXQgb3VyIGludGVybmFsIHN0YXRlIGlzIGNvcnJlY3Qgd2hlbiB3ZSBjb21taXQgb3VyIHN0YXRlIGFzeW5jaHJvbm91c2x5LiBUaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCk6CgkgIE1ha2Ugc3VyZSB0aGF0IG91ciBpbnRlcm5hbCBzdGF0ZSBpcyBjb3JyZWN0IHdoZW4gd2UgY29tbWl0IG91ciBzdGF0ZQoJICBhc3luY2hyb25vdXNseS4gVGhpcyBzb2x2ZXMgYSByYWNlIHdoZXJlIGEgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgY291bGQgY2F1c2UgdGhlIHNpbmsgdG8gcmVtYWluIGJsb2NrZWQgaW4gcHJlcm9sbCBpbiBzb21lIHNpdHVhdGlvbnMuCgoyMDA2LTA5LTE1IDA4OjUwOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogTGlzdCBmbGFncyBhcyBoZXggc28gaXQncyBlYXNpZXIgdG8gZGVhbCB3aXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBMaXN0IGZsYWdzIGFzIGhleCBzbyBpdCdzIGVhc2llciB0byBkZWFsIHdpdGguCgoyMDA2LTA5LTE1IDA4OjQ3OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRXhwb3NlIGxvZ2ljIHRvIHdhaXQgZm9yIHByZXJvbGwgc28gdGhhdCBzdWJjbGFzc2VzIHN1Y2ggYXMgYXVkaW9zaW5rIGNhbiBhbHNvIHVzZSB0aGlzIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRXhwb3NlIGxvZ2ljIHRvIHdhaXQgZm9yIHByZXJvbGwgc28gdGhhdCBzdWJjbGFzc2VzIHN1Y2ggYXMgYXVkaW9zaW5rCgkgIGNhbiBhbHNvIHVzZSB0aGlzIG1ldGhvZC4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCgpCgoyMDA2LTA5LTE1IDA4OjQzOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY2xlYW51cHMgaW4gZG9jcyBhbmQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGRvX3BpcGVsaW5lX3NlZWspOgoJICBTbWFsbCBjbGVhbnVwcyBpbiBkb2NzIGFuZCBjb2RlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBpZiBzdG9wID09IHN0YXJ0IGFuZCBzdGFydCBpcyBpbiB0aGUgc2VnbWVudCwgbm8gY2xpcHBpbmcgc2hvdWxkIGJlCgkgIGRvbmUuIEFsc28gYWRkIGEgdGVzdCBmb3IgdGhpcy4KCjIwMDYtMDktMTUgMDg6Mzk6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBtZXRob2RzIHRvIGNyZWF0ZSBhbmQgcGFyc2UgQlVGRkVSSU5HIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIG1ldGhvZHMgdG8gY3JlYXRlIGFuZCBwYXJzZSBCVUZGRVJJTkcgbWVzc2FnZXMuCgkgIEFkZGVkIHByZWxpbWluYXJ5IGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcKCjIwMDYtMDktMTUgMDg6MzI6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3JlbGVhc2VfcmVxdWVzdF9wYWQpLCAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2dldF9pbmRleCksIChnc3RfZWxlbWVudF9hZGRfcGFkKSwKCSAgKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpLCAoZ3N0X2VsZW1lbnRfZ2V0X3JhbmRvbV9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9nZXRfcXVlcnlfdHlwZXMpLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnkpLCAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZiksCgkgIChnc3RfZWxlbWVudF9yZXN0b3JlX3RoeXNlbGYpOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIFJlbmFtZSBsYXN0IGJpdCBvZiB0aGUgbmV3LXBhZCAtPiBwYWQtYWRkZWQgc2lnbmFsIHJlbmFtZS4KCSAgRml4IHRoZSBjYXNlIHdoZXJlIGFuIGVsZW1lbnQgcXVlcnkgd291bGQgb25seSB3b3JrIGlmIHRoZSBzb3VyY2UKCSAgcGFkIHdhcyBsaW5rZWQuCgkgIEF2b2lkIHNvbWUgdXNlbGVzcyB0eXBlIGNoZWNraW5nIGluIG1lc3NhZ2UgaGFuZGxpbmcuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDktMTQgMjA6MTI6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGFkZCBhbiBJTkZPIGxpbmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkgdXBkYXRlIHRoZSBmZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFuIElORk8gbGluZSBmb3Igd2hlbiB3ZSBhY3R1YWxseSB1cGRhdGUgdGhlIGZkCgoyMDA2LTA5LTE0IDIwOjExOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIHRydW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIHRydW5rCgo9PT0gcmVsZWFzZSAwLjEwLjEwID09PQoKMjAwNi0wOS0xNCAyMDowODoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEwCgoyMDA2LTA5LTA5IDE2OjA4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBmaXJzdCBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXJzdCBwcmVyZWxlYXNlCgoyMDA2LTA5LTA5IDE2OjA3OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdHJhbnNsYXRpb24gdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRpb24gdXBkYXRlcwoKMjAwNi0wOS0wNSAxNDoxMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDogRml4IHR5cG8gaW4gc2FtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgRml4IHR5cG8gaW4gc2FtcGxlIGNvZGUuCgoyMDA2LTA5LTA1IDA4OjM1OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogTWFrZSBzdHVmZiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUyOTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoaW5ldF9hdG9uKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChpbmV0X2F0b24pLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBNYWtlIHN0dWZmIGNvbXBpbGUgb24gd2luZG93cy4gRml4ZXMgIzM0NTI5NS4KCjIwMDYtMDktMDMgMTE6MTY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFByaW50IGJldHRlciBkZXRhaWxzIHdoZW4gY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgUHJpbnQgYmV0dGVyIGRldGFpbHMgd2hlbiBjaGlsZCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwuCgoyMDA2LTA5LTAzIDExOjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFByaW50IGEgd2FybmluZyByYXRoZXIgdGhhbiBnX2Fzc2VydCgpIGlmIGEgcGx1Z2luIGZlYXR1cmUgaXMgYSBVUkkgaGFuZGxlciBidXQgcmV0dXJucyBubyBwcm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICBQcmludCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZ19hc3NlcnQoKSBpZiBhIHBsdWdpbiBmZWF0dXJlCgkgIGlzIGEgVVJJIGhhbmRsZXIgYnV0IHJldHVybnMgbm8gcHJvdG9jb2xzICgjMzUzOTc2KS4KCjIwMDYtMDktMDIgMTk6MTA6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgRml4IHR3byB0eXBvcy4KCjIwMDYtMDktMDIgMTk6MDM6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoKMjAwNi0wOS0wMiAxMzo0MDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgY2xhcmlmeSBlcnJvciBtZXNzYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGFyaWZ5IGVycm9yIG1lc3NhZ2UKCjIwMDYtMDktMDIgMTM6MzY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoKMjAwNi0wOS0wMSAxNjowMzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZml4IHR5cG8KCjIwMDYtMDktMDEgMTU6NTU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggbG9ja2luZyBvcmRlciwgaGFuZGxlIE5VTEwgZnVuY3Rpb24gdmFsdWVzIHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgIEZpeCBsb2NraW5nIG9yZGVyLCBoYW5kbGUgTlVMTCBmdW5jdGlvbiB2YWx1ZXMgcHJvcGVybHkuCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKToKCSAgSW5pdGlhbGlzZWQgdmFyaWFibGUgYmVmb3JlIHVzaW5nIGl0IGFuZCBmaXggZGVidWcgc3RhdGVtZW50IHRvCgkgIHByaW50IHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYWRkcmVzcyBvZiB0aGUKCSAgdmFyaWFibGUgb24gdGhlIHN0YWNrIGhvbGRpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGZ1bmN0aW9uLgoKMjAwNi0wOS0wMSAxMDozMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBNb3JlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3KSwgKGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIE1vcmUgY2xlYW51cHMuCgkgIEF2b2lkIG5lZWRsZXNzIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgIFNpbmNlIHRoZSBpbnRlcm5hbCBwYWQgaXMgYWx3YXlzIHByZXNlbnQgYW5kIG5ldmVyIGNoYW5nZXMsIHRoZXJlIGlzCgkgIG5vIG5lZWQgdG8gbG9ja2luZyBvciByZWYgd2hlbiByZXRyaWV2aW5nIGl0LgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCSAgSGFuZGxlIGxpbmsgZXJyb3JzIHdoZW4gc2V0dGluZyB0aGUgdGFyZ2V0LiBGaXhlcyAjMzQxMDI5LgoKMjAwNi0wOS0wMSAxMDoyNjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvOiBGaXggZG9jcyBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3Mgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgRnJlZSBxdWV1ZWQgYnVmZmVyIHdoZW4gcmVtb3ZpbmcgYSBwYWQuCgoyMDA2LTA4LTMxIDE3OjEzOjM0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogRW5zdXJlIHRoYXQgd2Ugc2V0IGEgY2Fwc2ZpbHRlciB0byBOVUxMIGlmIHdlIGZhaWxlZCB0byBsaW5rIGl0IHdoZW4gZG9pbmcgZmlsdGVyZWQgbGlua2luZywgdG8gYXZvaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgRW5zdXJlIHRoYXQgd2Ugc2V0IGEgY2Fwc2ZpbHRlciB0byBOVUxMIGlmIHdlIGZhaWxlZCB0byBsaW5rIGl0CgkgIHdoZW4gZG9pbmcgZmlsdGVyZWQgbGlua2luZywgdG8gYXZvaWQgY3JpdGljYWxzLgoJICBObyBuZWVkIHRvIGNoZWNrIGZvciB1bnJlZmZpbmcgc3JjcGFkLCB3aGljaCBpcyBleHBsaWNseSBOVUxMZWQKCSAgYWJvdmUgKGEgdHJpdmlhbCBjb2RlIGNsZWFudXApLgoKMjAwNi0wOC0zMSAxNToxOTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBVcGRhdGUgYXNjaWkgYXJ0IGluIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBVcGRhdGUgYXNjaWkgYXJ0IGluIGRvY3VtZW50YXRpb24uCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgbGVhayBmaXhlcy4KCSAgUmVtb3ZlIHNvbWUgY2hlY2tzIG5vdyB0aGF0IHRoZSBpbnRlcm5hbCBwYWQgaXMgbmV2ZXIgTlVMTC4KCSAgRml4IHRoZSBjYXNlIHdoZXJlIGxpbmtpbmcgcGFkcyB3aXRob3V0IGEgdGFyZ2V0IHdvdWxkIGNyZWF0ZSBuYXN0eQoJICBjcml0aWNhbHMuIEZpeGVzICMzNDEwMjkuCgkgIERvbid0IGFzc2lnbiBhIEdzdFBhZExpbmtSZXR1cm4gdG8gYSBnYm9vbGVhbiBhbmQgbWVzcyB1cCB0aGUgcmV0dXJuCgkgIHZhbHVlIG9mIF9zZXRfdGFyZ2V0KCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgU29tZSBtb3JlIHRlc3RzIGZvciBjcmVhdGluZyBhbmQgbGlua2luZyB1bnRhcmdldGVkIGdob3N0cGFkcy4KCjIwMDYtMDgtMzEgMTA6NTk6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBSZWZhY3RvcmVkICpfbmV3KCkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfbmV3KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBSZWZhY3RvcmVkICpfbmV3KCkgZnVuY3Rpb25zLgoJICBUZW1wbGF0ZXMgYXJlIG5vdyB1c2VkIGFzIGEgZ19vYmplY3RfbmV3KCkgcGFyYW1ldGVyLgoJICBVc2UgdGVtcGxhdGUgaW4gX2RvX2dldGNhcHMoKSBpZiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsZWFudXBzLgoJICBBZGRlZCB0d28gbmV3IGNvbnN0cnVjdG9yczoKCSAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSgpCgkgIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKCkKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0cyBmb3IgbmV3IGdob3N0cGFkIGluc3RhbmNpYXRpb24gZnVuY3Rpb25zLgoJICBBUEkgYWRkaXRpb25zOiBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlLAoJICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZQoKMjAwNi0wOC0zMCAxMjoyODo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OiBJZGVhcyBhYm91dCBxb3MgcHJvZmlsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIElkZWFzIGFib3V0IHFvcyBwcm9maWxpbmcuCgoyMDA2LTA4LTI5IDE0OjM5OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ29kZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpOgoJICBDb2RlIGNsZWFudXBzLgoJICBGaXggbWVtbGVhay4KCjIwMDYtMDgtMjkgMTA6NDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0eG1sLmM6IEltcHJvdmUgYW5kIGRldHlwb2Z5IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgSW1wcm92ZSBhbmQgZGV0eXBvZnkgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfeG1sX3N1aXRlKToKCSAgQWRkIGEgYmFzaWMgdGVzdCBzdWl0ZSBmb3IgR3N0WE1MLgoKMjAwNi0wOC0yOSAwOTo1Njo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsZWFyIHRoZSBwYWQgY2FwcyB3aGVuIHRoZSBlbGVtZW50IHNodXQgZG93biBhbGwgb2YgdGhlIHBhZHMgYW5kIGlzIG5vdCBzdHJlYW1pbmcgZGF0YSB0aGF0IGNvdWxkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyksIChjbGVhcl9jYXBzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIENsZWFyIHRoZSBwYWQgY2FwcyB3aGVuIHRoZSBlbGVtZW50IHNodXQgZG93biBhbGwgb2YgdGhlIHBhZHMgYW5kCgkgIGlzIG5vdCBzdHJlYW1pbmcgZGF0YSB0aGF0IGNvdWxkIG1vZGlmeSB0aGUgY2Fwcy4KCSAgRml4ZXMgIzM1Mjk1OC4KCjIwMDYtMDgtMjkgMDg6MDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBJIGRvbid0IGV2ZW4ga25vdyB3aGljaCBhcmNoIHRoYXQgaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgZG9uJ3QgZXZlbiBrbm93IHdoaWNoIGFyY2ggdGhhdCBpcwoKMjAwNi0wOC0yOCAyMzoxNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1vcmUgbG9naWNhbCB0byBsb2cgdGhlIHNlbmRpbmcgcGFkLCBhbmQgdGhlIHBhZCBpdCBpcyBzZW5kaW5nIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGxvZ2ljYWwgdG8gbG9nIHRoZSBzZW5kaW5nIHBhZCwgYW5kIHRoZSBwYWQgaXQgaXMgc2VuZGluZyB0bwoKMjAwNi0wOC0yOCAxODoyMDowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlOyBJIG1pc3VuZGVyc3Rvb2Qgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2U7IEkgbWlzdW5kZXJzdG9vZCBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wOC0yOCAxODowODowOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBVbnNldCBESVNDT05UIG9uIGJ1ZmZlcnMgd2hlbiB1c2luZyBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgVW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIHdoZW4gdXNpbmcgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDgtMjggMTY6Mzk6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBGaXggZG9jcyBhbmQgaW5kZW50YXRpb24gYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEZpeCBkb2NzIGFuZCBpbmRlbnRhdGlvbiBhZ2Fpbi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWsgaW4gdGVzdHMgYW5kIGFkZCBzb21lIG1vcmUgdGVzdHMuCgoyMDA2LTA4LTI4IDE1OjU3OjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbmZvcm0gR3N0U2VnbWVudCBvZiB0aGUgbGFzdCBzdG9wIHBvc2l0aW9uIGluIG9yZGVyIGZvciB0aGUgY3VycmVudCBzZWdtZW50IHRvIGhhdmUgYSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJbmZvcm0gR3N0U2VnbWVudCBvZiB0aGUgbGFzdCBzdG9wIHBvc2l0aW9uIGluIG9yZGVyIGZvciB0aGUgY3VycmVudAoJICBzZWdtZW50IHRvIGhhdmUgYSBwcm9wZXIgZHVyYXRpb24gaWYgaXQgZG9lc24ndCBoYXZlIGEgc3BlY2lmaWMgc3RvcAoJICBwb3NpdGlvbiBmcm9tIHdoaWNoIGEgZHVyYXRpb24gY291bGQgYmUgY2FsY3VsYXRlZC4KCSAgVGhpcyBidWcgd2FzIG5vdGljZWFibGUgd2hlbiBhIG5vbi1mbHVzaGluZywgbm9uLXVwZGF0ZSBuZXcgc2VnbWVudCB3YXMKCSAgZm9sbG93ZWQgYnkgYW5vdGhlciBzZWdtZW50IChhbGwgYnVmZmVycyBmcm9tIHRoZSBuZXcgc2VnbWVudCB3ZXJlIGJlaW5nCgkgIGRyb3BwZWQpLgoKMjAwNi0wOC0yOCAxNTo0ODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgU21hbGwgY29tbWVudCB1cGRhdGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIERyb3AtcHJvYmFiaWxpdHkgaXMgYnJva2VuLCBtZW50aW9uIHRoaXMgaW4gdGhlIGNvZGUgd2l0aCBhCgkgIEZJWE1FIGFuZCBhbHNvIGluIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbi4KCSAgTWFrZSBzaWxlbnQgYWxzbyBiZSBzaWxlbnQgYWJvdXQgdGhlIGRyb3AgbWVzc2FnZXMuCgoyMDA2LTA4LTI4IDExOjA2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOiBSZW1vdmUgbWVudGlvbiBvZiBwb3B0LCB3ZSBkb24ndCBkZXBlbmQgb24gdGhhdCBhbnkgbG9uZ2VyICgjMzUzMTM2KS4gQWRkIHNvbWUgY29tbWVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgcG9wdCwgd2UgZG9uJ3QgZGVwZW5kIG9uIHRoYXQgYW55CgkgIGxvbmdlciAoIzM1MzEzNikuIEFkZCBzb21lIGNvbW1lbnRzIHBvaW50aW5nIG91dCB0aGF0CgkgIHRoaXMgc2VjdGlvbiBpcyBzbGlnaHRseSBvdXRkYXRlZC4KCjIwMDYtMDgtMjggMDg6NDQ6MjkgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBzZWdtZW50IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgc2VnbWVudCBxdWVyeS4KCSAgRml4ZXMgIzM1MzEyMS4KCjIwMDYtMDgtMjggMDg6MzU6MzEgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgQ2hlY2sgZm9yIE5VTEwgYmVmb3JlIF9yZWZmaW5nIHRoZSBidXMuIEZpeGVzICMzNTMxMjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXggZG90IGRlPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayBmb3IgTlVMTCBiZWZvcmUgX3JlZmZpbmcgdGhlIGJ1cy4gRml4ZXMgIzM1MzEyMi4KCjIwMDYtMDgtMjUgMTY6NDY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogRG9jcyB1cGRhdGU6IGZpeCB3cm9uZyBjYWxsYmFjayByZXR1cm4gdmFsdWUgZXhwbGFuYXRpb247IGFkZCBzb21lIGxpbmVzIGFib3V0IHRoZSBpbXBsaWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIERvY3MgdXBkYXRlOiBmaXggd3JvbmcgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIGV4cGxhbmF0aW9uOyBhZGQKCSAgc29tZSBsaW5lcyBhYm91dCB0aGUgaW1wbGljaXQgcmVsYXRpb25zaGlwIGJldHdlZW4gbWFpbiBsb29wCgkgIGFuZCBtYWluIGNvbnRleHQ7IHJlbW92ZSBkdXBsaWNhdGUgbWFpbiBsb29wIHZhcmlhYmxlIGRlY2xhcmF0aW9uLgoKMjAwNi0wOC0yNCAxMjozMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IERvbid0IGxlYWsgY2FwcyBpbiB1bml0IHRlc3Q7IGFkZCBhIGZldyBtb3JlIHNpbXBsZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgY2FwcyBpbiB1bml0IHRlc3Q7IGFkZCBhIGZldyBtb3JlIHNpbXBsZQoJICBjaGVja3MuCgoyMDA2LTA4LTI0IDEwOjQwOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbXBsZW1lbnQgY2FwcyBtZXJnaW5nIChmaXhlcyAjMzUyNTgwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKSwKCSAgKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXQpLCAoZ3N0X2NhcHNfbWVyZ2UpLAoJICAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBpbXBsZW1lbnQgY2FwcyBtZXJnaW5nIChmaXhlcyAjMzUyNTgwKQoKMjAwNi0wOC0yMyAxODo1Mzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvOiBhZGQgZGVidWctbG9nIHBsb3R0aW5nIGRldmVsb3BlciB0b29sICgjMzQwNjc0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgYWRkIGRlYnVnLWxvZyBwbG90dGluZyBkZXZlbG9wZXIgdG9vbCAoIzM0MDY3NCkKCjIwMDYtMDgtMjMgMTY6NTE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcHJvdmUgZGVidWdnaW5nIGZvciB0YXNrIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIEltcHJvdmUgZGVidWdnaW5nIGZvciB0YXNrIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksIChnc3RfdGFza19qb2luKToKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIHRhc2sgZnVuY3Rpb24gc3RhcnRlZCBhbmQgZmluaXNoZWQgYWZ0ZXIgYQoJICBqb2luKCkuCgkgIERvbid0IHRyeSB0byBwdXNoIHRoZSB0YXNrIGZ1bmN0aW9uIG9uIHRoZSB0aHJlYWRwb29sIG11bHRpcGxlCgkgIHRpbWVzLgoJICBJbXByb3ZlIHRoZSBnX3dhcm5pbmcgbWVzc2FnZSB3aXRoIHNvbWUgdXNlZnVsIHN1Z2dlc3Rpb25zCgkgIGFib3V0IGhvdyB0byBmaXggdGhlIHByb2JsZW0uCgoyMDA2LTA4LTIzIDEwOjU5OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEhhbmRsZSBSRVNZTkMgY29ycmVjdGx5IGluIF9wcm94eV9nZXRjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcHJveHlfZ2V0Y2Fwcyk6CgkgIEhhbmRsZSBSRVNZTkMgY29ycmVjdGx5IGluIF9wcm94eV9nZXRjYXBzLgoKMjAwNi0wOC0yMyAwOTo0NzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdvcmQgcmVmY291bnRpbmcgbW9yZSBwcmVjaXNlbHkgZm9yIGdzdF92YWx1ZV8qX2J1ZmZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yZCByZWZjb3VudGluZyBtb3JlIHByZWNpc2VseSBmb3IgZ3N0X3ZhbHVlXypfYnVmZmVyCgoyMDA2LTA4LTIxIDE1OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHhtbC5jOiBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgaW4gZGlzcG9zZSBmdW5jdGlvbiBhbmQgYWxzbyB1bnJlZiB0aGUgZWxlbWVudHMgaW4gdGhlIHRvcGxldmVsX2VsZW1lbnRzIEdMaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2Rpc3Bvc2UpLCAoZ3N0X3htbF9wYXJzZV9maWxlKSwKCSAgKGdzdF94bWxfcGFyc2VfbWVtb3J5KSwgKGdzdF94bWxfZ2V0X2VsZW1lbnQpOgoJICBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgaW4gZGlzcG9zZSBmdW5jdGlvbiBhbmQgYWxzbwoJICB1bnJlZiB0aGUgZWxlbWVudHMgaW4gdGhlIHRvcGxldmVsX2VsZW1lbnRzIEdMaXN0LgoJICBEb24ndCBsZWFrIFhtbERvY1B0ciBpbiBfcGFyc2VfZmlsZSgpIGFuZCBfcGFyc2VfbWVtb3J5KCkuCgkgIEFsd2F5cyByZXR1cm4gYSByZWZlcmVuY2UgaW4gZ3N0X3htbF9nZXRfZWxlbWVudCgpIHJhdGhlcgoJICB0aGFuIG9ubHkgc29tZXRpbWVzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHhtbGxhdW5jaF9wYXJzZV9jbWRsaW5lKToKCSAgRG9uJ3QgbGVhayBHc3RYbWwgb2JqZWN0LgoKMjAwNi0wOC0yMSAxNDo1NDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQVBJOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgdXNlIGl0IGluIGJhc2V0cmFuc2Zvcm0sIGZpeGVzICMzNDU0NDQgaW4gYSBiZXR0ZXIgd2F5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWxfZm9yZWFjaCksCgkgIChnc3RfY2Fwc19tZXJnZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIEFQSTogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIHVzZSBpdCBpbiBiYXNldHJhbnNmb3JtLCBmaXhlcyAjMzQ1NDQ0CgkgIGluIGEgYmV0dGVyIHdheQoKMjAwNi0wOC0yMSAxNDowMzozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R4bWwuYzogSW1wbGVtZW50IEdPYmplY3Q6OmRpc3Bvc2UgdmlydHVhbCBtZXRob2QgaW4gR3N0WE1MIHNvIHdlIGNhbiBmcmVlIHRoZSB0b3BfZWxlbWVudHMgR0xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCksIChnc3RfeG1sX2Rpc3Bvc2UpOgoJICBJbXBsZW1lbnQgR09iamVjdDo6ZGlzcG9zZSB2aXJ0dWFsIG1ldGhvZCBpbiBHc3RYTUwgc28gd2UgY2FuIGZyZWUgdGhlCgkgIHRvcF9lbGVtZW50cyBHTGlzdC4KCjIwMDYtMDgtMjEgMDk6MzA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgZHVyYXRpb24vb2Zmc2V0X2VuZC9jYXBzIHdoZW4gY3JlYXRpbmcgYSBzdWJidWZmZXIgb2YgdGhlIGNvbXBsZXRlIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgIENvcHkgZHVyYXRpb24vb2Zmc2V0X2VuZC9jYXBzIHdoZW4gY3JlYXRpbmcgYSBzdWJidWZmZXIgb2YgdGhlCgkgIGNvbXBsZXRlIHBhcmVudC4KCSAgTWFrZSB0aGUgc3ViYnVmZmVyIHJlYWQtb25seSB3aGVuIHdlIG1ha2UgdGhlIG1ldGFkYXRhIHdyaXRhYmxlIGZvcgoJICBub3cuIEZpeGVzICMzNTE3NjguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBjaGVjayBmb3IgbWV0YWRhdGEgY29weSB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgoyMDA2LTA4LTIxIDA5OjIwOjQyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE9ubHkgY2FsbCBkb3duc3RyZWFtIGJ1ZmZlcl9hbGxvYyBpZiB0cmFuc2Zvcm0gZWxlbWVudCBpcyBwYXNzdGhyb3VnaCBvciBhbHdheXNfaW5fLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIE9ubHkgY2FsbCBkb3duc3RyZWFtIGJ1ZmZlcl9hbGxvYyBpZiB0cmFuc2Zvcm0gZWxlbWVudCBpcyBwYXNzdGhyb3VnaAoJICBvciBhbHdheXNfaW5fcGxhY2UuIENsb3NlcyAjMzUwNDQ5LgoKMjAwNi0wOC0yMCAxOTozNjoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY29tbWVudHMgdG8gcHJldmlvdXMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBjb21tZW50cyB0byBwcmV2aW91cyBjaGFuZ2VzCgoyMDA2LTA4LTIwIDE5OjMwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBTaW1wbGlmeSBjYXBzIHRvIGdldCByaWQgb2YgZHVwbGljYXRlcywgZml4ZXMgIzM0NTQ0NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIFNpbXBsaWZ5IGNhcHMgdG8gZ2V0IHJpZCBvZiBkdXBsaWNhdGVzLCBmaXhlcyAjMzQ1NDQ0CgoyMDA2LTA4LTIwIDE1OjU1OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogVXNlIHRoZXNlIG9wdGltaXphdGlvbnMgb25seSBpbnRlcm5hbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgdGhlc2Ugb3B0aW1pemF0aW9ucyBvbmx5IGludGVybmFseS4KCjIwMDYtMDgtMjAgMTQ6MzA6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBTYXZlcyB0aGUgZXhwZW5zaXZlIGxvb2t1cCBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbiBpbiBtYW55IGNhc2VzICgjMzQ1NDQ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2dldF9jb21wYXJlX2Z1bmMpLCAoZ3N0X3ZhbHVlX2NvbXBhcmUpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfd2l0aF9mdW5jKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgU2F2ZXMgdGhlIGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb24gaW4gbWFueSBjYXNlcwoJICAoIzM0NTQ0NCkKCjIwMDYtMDgtMTggMTM6NDE6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiBEaXNhYmxlIHRlc3QgdGhhdCByZXF1aXJlIGdzdGRlYnVnIGlmIGl0IHdhc24ndCBidWlsdCBpbiBjb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoZ3N0X2luZm9fc3VpdGUpOgoJICBEaXNhYmxlIHRlc3QgdGhhdCByZXF1aXJlIGdzdGRlYnVnIGlmIGl0IHdhc24ndCBidWlsdCBpbiBjb3JlLgoKMjAwNi0wOC0xOCAxMDo1MjozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDogdXBkYXRlIGlkZWFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6CgkgIHVwZGF0ZSBpZGVhcwoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICByZW9yZGVyIGZpZWxkcywgc2F2ZSBzb21lIGNvbHVtbnMsIGFkZCBvcHRpbmFsIGNvbG9yIGNvZGVzIGZvciBsb2ctCgkgIGxldmVscwoKMjAwNi0wOC0xOCAwODowNzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDogYWRkIGlkZWFzIGFib3V0IG1ha2luZyB0aGUgbG9ncyBhYml0IG1vcmUgdXNlZnVsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6CgkgIGFkZCBpZGVhcyBhYm91dCBtYWtpbmcgdGhlIGxvZ3MgYWJpdCBtb3JlIHVzZWZ1bAoKMjAwNi0wOC0xNyAxODoxMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogVXBkYXRlIGZvciAwLjEwIEFQSSAoIzM0MDYyNykuIEFkZCBteXNlbGYgdG8gYXV0aG9ycyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICAqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIFVwZGF0ZSBmb3IgMC4xMCBBUEkgKCMzNDA2MjcpLiBBZGQgbXlzZWxmCgkgIHRvIGF1dGhvcnMgbGlzdC4KCjIwMDYtMDgtMTcgMTA6NDY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIGdzdGNoZWNrIHN0dWZmIHNob3cgdXAgaW4gZG9jcyAoc3RpbGwgbmVlZHMgdG8gYmUgZG9jdW1lbnRlZCBwcm9wZXJseSB0aG91Z2gpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSAgTWFrZSBnc3RjaGVjayBzdHVmZiBzaG93IHVwIGluIGRvY3MgKHN0aWxsIG5lZWRzIHRvCgkgIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkgdGhvdWdoKS4KCjIwMDYtMDgtMTYgMTE6NDc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWRkIGludGVybmFsIGhlbHBlcnMgZm9yIHByZS1yZWdpc3RlcmluZyBxdWFya3MgZnJvbSBzdGF0aWMgc3RyaW5ncyBhbmQgdXNpbmcgdGhlIHF1YXJrIHZhbHVlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGxvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfbmV3X2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCksCgkgIChnc3RfcXVlcnlfc2V0X2NvbnZlcnQpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2NvbnZlcnQpLAoJICAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCksIChnc3RfcXVlcnlfbmV3X3NlZWtpbmcpLAoJICAoZ3N0X3F1ZXJ5X3NldF9zZWVraW5nKSwgKGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nKToKCSAgQWRkIGludGVybmFsIGhlbHBlcnMgZm9yIHByZS1yZWdpc3RlcmluZyBxdWFya3MgZnJvbSBzdGF0aWMgc3RyaW5ncwoJICBhbmQgdXNpbmcgdGhlIHF1YXJrIHZhbHVlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGxvb2tpbmcgdGhlbSB1cCB3aGVuCgkgIGNyZWF0aW5nIGFuZCBwYXJzaW5nIHF1ZXJpZXMuIENhbiBiZSB1c2VkIGZvciBldmVudCBjb25zdHJ1Y3Rpb24gdG9vLgoJICBDbG9zZXMgIzM1MDQzMi4KCjIwMDYtMDgtMTYgMDg6NTQ6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBib2d1cyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCBib2d1cyBkb2NzLgoKMjAwNi0wOC0xNSAxODo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggbWVtbGVhayAoIzM1MTUwMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKToKCSAgRml4IG1lbWxlYWsgKCMzNTE1MDIpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgbW9zdCBvZiBnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcoKQoJICAobm90IHRoYXQgb25lIHdvdWxkIHdhbnQgdG8gZW5jb3VyYWdlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uKS4KCjIwMDYtMDgtMTUgMTg6Mjk6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBVc2UgY29uc3QgZ2NoYXIgKiB2YXJpYWJsZXMgaW4gZmFpbF91bmxlc3NfZXF1YWxzX3N0cmluZyBtYWNybyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgVXNlIGNvbnN0IGdjaGFyICogdmFyaWFibGVzIGluIGZhaWxfdW5sZXNzX2VxdWFsc19zdHJpbmcKCSAgbWFjcm8gdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgKGFuZCBkb24ndCB1c2UgdGFicyBmb3IKCSAgaW5kZW50aW5nKS4KCjIwMDYtMDgtMTUgMTA6MDg6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1vcmUgc3BhY2Ugb24gdGhlIGxlZnQgZm9yIHRoZSB0YWcgbmFtZXMsIHRvIGNhdGVyIGZvciB0aGUgJ2V4dGVuZGVkIGNvbW1lbnQnIHRhZyAobm90IHRvdWNoaW5nIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgTW9yZSBzcGFjZSBvbiB0aGUgbGVmdCBmb3IgdGhlIHRhZyBuYW1lcywgdG8gY2F0ZXIKCSAgZm9yIHRoZSAnZXh0ZW5kZWQgY29tbWVudCcgdGFnIChub3QgdG91Y2hpbmcgdGhlCgkgIHN0cmluZyBmb3IgdGhlIGZpcnN0IGxpbmUgc2luY2UgaXQncyB0cmFuc2xhdGVkKS4KCjIwMDYtMDgtMTUgMDk6NDQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBkb24ndCBmb3JnZXQgdG8gbWVudGlvbiB0aGUgb3RoZXIgY2hhbmdlIGluIHRoZSBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBkb24ndCBmb3JnZXQgdG8gbWVudGlvbiB0aGUgb3RoZXIgY2hhbmdlIGluIHRoZSBDaGFuZ2VMb2cKCjIwMDYtMDgtMTUgMDk6MzM6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggQVNTRVJUX0NSSVRJQ0FMIGFuZCBBU1NFUlRfV0FSTklORyBtYWNyb3MgdG8gYWN0dWFsbHkgcHJpbnQgc29tZXRoaW5nIHdoZW4gdGhleSBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggQVNTRVJUX0NSSVRJQ0FMIGFuZCBBU1NFUlRfV0FSTklORyBtYWNyb3MgdG8gYWN0dWFsbHkKCSAgcHJpbnQgc29tZXRoaW5nIHdoZW4gdGhleSBmYWlsLgoKMjAwNi0wOC0xNCAxOTowNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfRVhURU5ERURfQ09NTUVOVCAoIzM1MDkzNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfRVhURU5ERURfQ09NTUVOVCAoIzM1MDkzNSkuCgoyMDA2LTA4LTE0IDE3OjI5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogTWFrZSBHU1RfUFRSX0ZPUk1BVCBwcmludCBtZXNzYWdlcyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3ByaW50X29iamVjdCk6CgkgIE1ha2UgR1NUX1BUUl9GT1JNQVQgcHJpbnQgbWVzc2FnZXMgYXMgd2VsbC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAocHJpbnRmX2V4dGVuc2lvbl9sb2dfZnVuYyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfaW5mb19zdWl0ZSk6CgkgIE1vcmUgdGVzdHMuCgoyMDA2LTA4LTE0IDE1OjMzOjE3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IElmIHRoZSBHc3RFbGVtZW50Q2xhc3MgZG9lc24ndCBoYXZlIGEgR3N0RWxlbWVudERldGFpbHMgd2l0aCBhbGwgZmllbGRzIHRoZW4gZXJyb3Igb3V0IG5pY2VsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICBJZiB0aGUgR3N0RWxlbWVudENsYXNzIGRvZXNuJ3QgaGF2ZSBhIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggYWxsIGZpZWxkcwoJICBmaWxsZWQgdXAgY29ycmVjdGx5IChsb25nbmFtZSwgZGVzY3JpcHRpb24gQU5EIGF1dGhvciksIHRoZW4gZXJyb3Igb3V0CgkgIG5pY2VseSBpbnN0ZWFkIG9mIGNyYXNoaW5nLgoKMjAwNi0wOC0xNCAxMjozNTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRml4IHR5cG8gaW4gZG9jcyBhbmQgcmUtd3JhcCBkb2NzIGJsdXJiIHRvIG5vdCBleGNlZWQgODAgY2hhcnMvbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBGaXggdHlwbyBpbiBkb2NzIGFuZCByZS13cmFwIGRvY3MgYmx1cmIgdG8gbm90IGV4Y2VlZCA4MCBjaGFycy9saW5lLgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBFeHBhbmQgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhcnJheXMgYW5kIGxpc3RzIGFzIHdlIHVzZSB0aGVtLgoKMjAwNi0wOC0xNCAwNzo0NDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBJZiB0aGUgcGFyZW50IHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmYWlsZWQsIGRvbid0IGFzc3VtZSB3ZSBjYW4gc2FmZWx5IHN0b3AgdGhlIHNvdXJjZSwgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBJZiB0aGUgcGFyZW50IHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmYWlsZWQsIGRvbid0IGFzc3VtZSB3ZSBjYW4gc2FmZWx5CgkgIHN0b3AgdGhlIHNvdXJjZSwgdGhpcyB3aWxsIGJlIGRvbmUgd2hlbiB0aGUgcGFkcyBhcmUgZGVhY3RpdmF0ZWQuCgoyMDA2LTA4LTE0IDA3OjM1OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfam9pbik6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBXaGVuIHBhZCAoZGUpYWN0aXZhdGlvbiBmYWlsZWQgZm9yIHNvbWUgcmVhc29uLCByZXN0b3JlIHRoZSBvbGQKCSAgYWN0aXZhdGlvbiBtb2RlIGFuZCBzZXQgdGhlIHBhZCB0byBmbHVzaGluZyBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZQoJICBwYWQgaXMgZGVhY3RpdmF0ZWQuCgkgIElmIHRoZSBfdGFza19qb2luKCkgZmFpbGVkLCByZWluc3RhbGwgdGhlIHRhc2sgb24gdGhlIHBhZCBzbyB0aGF0IGl0IGNhbgoJICBiZSBzdG9wcGVkIGxhdGVyIGFuZCByZXR1cm4gYW4gZXJyb3IuCgoyMDA2LTA4LTExIDE1OjI2OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzIG9ubHkgZm9yIHVzZXJzIG9mIEFQSSB0aGF0IGRvbid0IHdhbnQgdG8gc2VlIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGluIHRoZSBoZWFkZXJzOyBwZW9wbGUgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDgtMTEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRpemVyX25ldyk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6IEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKCSAgaXMgb25seSBmb3IgdXNlcnMgb2YgQVBJIHRoYXQgZG9uJ3Qgd2FudCB0byBzZWUgZGVwcmVjYXRlZAoJICBmdW5jdGlvbnMgaW4gdGhlIGhlYWRlcnM7IHBlb3BsZSB0aGF0IHdhbnQgdG8gY29tcGlsZSBvdXQKCSAgZGVwcmVjYXRlZCBjb2RlIHNob3VsZCBwYXNzIC1ER1NUX1JFTU9WRV9ERVBSRUNBVEVEIGludG8gdGhlCgkgIENGTEFHUy4gRml4ZXMgdGhlIGJ1aWxkIG9mIG11bHRpZmRzaW5rLCBvciB3aWxsIHNvb24uLgoKMjAwNi0wOC0xMSAxNToyNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHc3RDbG9ja0NsYXNzIHZtZXRob2QgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIEdzdENsb2NrQ2xhc3Mgdm1ldGhvZCBkb2NzLgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIE1hcmsgI2VuZGlmIHdpdGggY29tbWVudCBmb3IgYXNzb2NpYXRlZCAjaWYKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQWRkIHZtZXRob2Qgd2FpdF9qaXR0ZXIgdG8gYXZvaWQgYW4gdW5uZWVkZWQgX2dldF90aW1lKCkgZm9yCgkgIG1vc3QgY2xvY2sgaW1wbGVtZW50YXRpb25zLgoJICBEb2N1bWVudCB2bWV0aG9kcy4KCSAgRmxlc2ggb3V0IGRvY3MgYWJvdXQgcmVzb2x1dGlvbiBtZXRob2RzLgoJICBBUEk6IEdzdENsb2NrQ2xhc3M6OndhaXRfaml0dGVyCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKToKCSAgVXNlIGJhc2UgY2xhc3Mgd2FpdF9qaXR0ZXIgdmFyaWFudCBmb3IgaW1wcm92ZWQgcGVyZm9ybWFuY2UKCSAgZHVlIHRvIGxlc3MgY2xvY2sgcG9sbGluZy4KCjIwMDYtMDgtMTEgMTU6MDc6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IFNldCBnc3QgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHNjYW5uaW5nL3VwZGF0aW5nIHRoZSByZWdpc3RyeSwgc2luY2UgdGhlcmUgbWlnaHQgYmUgc29tZSBwbHVnaW5zIHRoYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfY2hlY2spLCAoaW5pdF9wb3N0KToKCSAgU2V0IGdzdCBhcyBiZWluZyBpbml0aWFsaXplZCBiZWZvcmUgc2Nhbm5pbmcvdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LAoJICBzaW5jZSB0aGVyZSBtaWdodCBiZSBzb21lIHBsdWdpbnMgdGhhdCBjYWxsIGdzdF9pbml0KCkgYW5kIHdlIGRvbid0CgkgIHdhbnQgdG8gbG9vcCBiYWNrIGluLgoJICBDbG9zZXMgIzM1MDg3OQoKMjAwNi0wOC0xMSAxMzoxMzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiB0aGF0IHdlIGZpeGVkIGJ1ZyAjMzQ5OTQzIHdpdGggdGhlIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiB0aGF0IHdlIGZpeGVkIGJ1ZyAjMzQ5OTQzIHdpdGggdGhlIGxhc3QgY29tbWl0LgoKMjAwNi0wOC0xMSAxMzowNTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogQnJpbmcgZG9jcyBpbiBsaW5lIHdpdGggdGhlIGNvZGUuIE1vc3RseSB0aGUgc2lnbiBvZiB0aGUgaml0dGVyIHdhcyB3cm9uZyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBCcmluZyBkb2NzIGluIGxpbmUgd2l0aCB0aGUgY29kZS4gTW9zdGx5IHRoZSBzaWduIG9mIHRoZSBqaXR0ZXIgd2FzCgkgIHdyb25nIGluIHRoZSBkb2NzLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBGaXggdGhlIGRvY3MgZm9yIHRoZSBqaXR0ZXIuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2N1c3RvbSksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9wYXJzZV9xb3MpLAoJICAoZ3N0X2V2ZW50X25ld19zZWVrKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwKCSAgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgIE1ha2Ugc3VyZSB0aGUgR3N0U3RydWN0dXJlIGhhcyBubyBwYXJlbnQgd2hlbiBjcmVhdGluZyBjdXN0b20KCSAgZXZlbnRzLgoJICBBZGQgc29tZSBtb3JlIGFyZ3VtZW50IGNoZWNraW5nIHNvIHRoYXQgd2UgYXZvaWQgMC4wIHJhdGVzLgoJICBGbGVzaCBvdXQgdGhlIGRvY3MgZm9yIHRoZSBRb1MgZXZlbnQgc29tZSBtb3JlLgoKMjAwNi0wOC0xMSAxMDoyMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRvIG1lbnRpb24gZml4ZWQgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRvIG1lbnRpb24gZml4ZWQgYnVnLgoKMjAwNi0wOC0xMSAxMDoxOTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChwYXJzZV9vbmVfb3B0aW9uKSwgKHBhcnNlX2dvcHRpb25fYXJnKSwgKGdzdF9kZWluaXQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZvcmtfaXNfZW5hYmxlZCksIChnc3RfcmVnaXN0cnlfZm9ya19zZXRfZW5hYmxlZCk6CgkgICogZ3N0L2dzdC5oOgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgQVBJIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGRpc2FibGUgcmVnaXN0cnkgZm9ya2luZyBpbgoJICBhZGRpdGlvbiB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIENvbnN0aWZ5IHNvbWUgc3RhdGljIGFycmF5cy4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnLgoJICBEb24ndCBkZWluaXQgdHdpY2UuCgkgIEFQSTogZ3N0X3JlZ2lzdHJ5X2ZvcmtfaXNfZW5hYmxlZCgpCgkgIEFQSTogZ3N0X3JlZ2lzdHJ5X2Zvcmtfc2V0X2VuYWJsZWQoKQoJICBBUEk6IC0tZ3N0LWRpc2FibGUtcmVnaXN0cnktZm9yayBjb21tYW5kIGxpbmUgb3B0aW9uCgoyMDA2LTA4LTExIDA5OjU5OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdCk6CgkgIEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCgoyMDA2LTA4LTEwIDIwOjA1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDogZml4IEFCSSBzaXplLWNvcnJlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIGZpeCBBQkkgc2l6ZS1jb3JyZWN0aW9uCgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIG1ha2UgdGVzdHMgdGhhdCB1c2UgZGVwcmVjYXRlZCBBUEkgY29uZGl0aW9uYWwKCjIwMDYtMDgtMTAgMTk6NDY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9vYmplY3Rfe3MsZ31ldF9jb250cm9sX3JhdGUoKSwgYWRkIHByaXZhdGUgZGF0YSBzZWN0aW9uLCBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2dldF9wcm9wZXJ0eSksIChfZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9pbml0KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwKCSAgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgIEFQSTogYWRkIGdzdF9vYmplY3Rfe3MsZ31ldF9jb250cm9sX3JhdGUoKSwgYWRkIHByaXZhdGUgZGF0YSBzZWN0aW9uLAoJICBmaXggZG9jcwoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRpemVyX25ldyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBhZGQgZGVwcmVjYXRpb24gZ3VhcmRzIHRvIG1ha2UgZ3RrLWRvYyBoYXBweSBhbmQgYWxsb3cgZGlzYWJsaW5nIGNydWZ0CgoyMDA2LTA4LTA5IDE1OjI2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBMZXQncyBlbmFibGUgdGhlIG5ldyB1bml0IHRlc3QgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIExldCdzIGVuYWJsZSB0aGUgbmV3IHVuaXQgdGVzdCBhcyB3ZWxsLgoKMjAwNi0wOC0wOSAxNToxMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCwgd2hpY2ggaXMgYSBwcmludGYgZXh0ZW5zaW9uIHdlIHJlZ2lzdGVyIHRoYXQgbGV0cyB1cyBlYXNpbHkgZHVtcCBHc3RTZWdtZW50cyBpbnRvIGRlYnVnIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCksIChnc3RfZGVidWdfcHJpbnRfc2VnbWVudCksCgkgIChfZ3N0X2luZm9fcHJpbnRmX2V4dGVuc2lvbl9wdHIpLAoJICAoX2dzdF9pbmZvX3ByaW50Zl9leHRlbnNpb25fc2VnbWVudCk6CgkgIEFQSTogYWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCwgd2hpY2ggaXMgYSBwcmludGYgZXh0ZW5zaW9uIHdlCgkgIHJlZ2lzdGVyIHRoYXQgbGV0cyB1cyBlYXNpbHkgZHVtcCBHc3RTZWdtZW50cyBpbnRvIGRlYnVnCgkgIGxvZ3MgKCMzNTA0MTkpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChzZWdtZW50X3ByaW50Zl9leHRlbnNpb25fbG9nX2Z1bmMpLAoJICAoaW5mb19zZWdtZW50X2Zvcm1hdF9wcmludGZfZXh0ZW5zaW9uKSwgKGdzdF9pbmZvX3N1aXRlKToKCSAgQWRkIHNpbXBsZSB1bml0IHRlc3QgdGhhdCBsb2dzIGEgYnVuY2ggb2YgZGlmZmVyZW50IHNlZ21lbnRzIChub3QKCSAgdmFsZ3JpbmRlZCBhdCB0aGUgbW9tZW50IGJlY2F1c2Ugb2YgbGVha3MgaW4gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24pLgoKMjAwNi0wOC0wOSAxMTowMToyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBFdmVuIGlmIHdlIGNhbid0IGZpZ3VyZSBvdXQgdGhlIHByb3BlciBmb3JtYXQgdG8gcmVxdWVzdCBkb3duc3RyZWFtLCBjYWxsIGJ1ZmZlcl9hbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBFdmVuIGlmIHdlIGNhbid0IGZpZ3VyZSBvdXQgdGhlIHByb3BlciBmb3JtYXQgdG8gcmVxdWVzdCBkb3duc3RyZWFtLAoJICBjYWxsIGJ1ZmZlcl9hbGxvYygpIGRvd25zdHJlYW0gd2l0aCB0aGUgaW5wdXQgcGFyYW1ldGVycyB3aXRob3V0IHNldHRpbmcKCSAgdGhlIGNhcHMgb24gdGhlIHNyY3BhZC4gVGhpcyB3aWxsIGZvcmNlIG5lZ290aWF0aW9uIGluIHRoZSBjaGFpbgoJICBmdW5jdGlvbi4KCSAgQ2xvc2VzICMzNTA0NDkKCjIwMDYtMDgtMDggMTY6MjQ6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogVW5saW5raW5nIGZyb20gYSBwYWQgd2l0aG91dCBhIHRhcmdldCBpcyBub3cgYSBwZXJmZWN0bHkgdmFsaWQgY2FzZSB3aGljaCBzaG91bGQgTk9UIHJhaXNlIGFuIGFzc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayk6CgkgIFVubGlua2luZyBmcm9tIGEgcGFkIHdpdGhvdXQgYSB0YXJnZXQgaXMgbm93IGEgcGVyZmVjdGx5IHZhbGlkIGNhc2UKCSAgd2hpY2ggc2hvdWxkIE5PVCByYWlzZSBhbiBhc3NlcnRpb24uCgkgIFRoaXMgY2FzZSB3b3VsZCBoYXBwZW4gaWYgYSBsaW5rZWQgZ2hvc3RwYWQgaXRzIHRhcmdldCBzZXQgdG8gTlVMTCBhZnRlcgoJICBpdCB3YXMgcHJldmlvdXNseSBsaW5rZWQuCgoyMDA2LTA4LTA4IDA5OjU2OjQ1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogQWxzbyBjb21tZW50IG91dCB0aGUgdGVzdCAoc2VlIGJlbG93KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgQWxzbyBjb21tZW50IG91dCB0aGUgdGVzdCAoc2VlIGJlbG93KS4KCjIwMDYtMDgtMDggMDk6MDc6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBVc2UgdGhlIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGNvbmZpZy5oIGFuZCBub3QgZ2NjIG1hY3JvcyBpbiBvcmRlciB0byBwcm9wZXJseSBkaXNhYmwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIFVzZSB0aGUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGZyb20gY29uZmlnLmggYW5kIG5vdCBnY2MgbWFjcm9zCgkgIGluIG9yZGVyIHRvIHByb3Blcmx5IGRpc2FibGUgYSB0ZXN0IHRoYXQgZmFpbHMgb24gUFBDNjQuCgoyMDA2LTA4LTA0IDE1OjE1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3QgY3Jhc2ggcHJpbnRpbmcgdGhlIHdhcm5pbmcgaWYgdGhlIHBhZCBoYXMgbm8gcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCk6CgkgIERvbid0IGNyYXNoIHByaW50aW5nIHRoZSB3YXJuaW5nIGlmIHRoZSBwYWQgaGFzIG5vIHBhcmVudC4KCjIwMDYtMDgtMDIgMTU6MTk6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IE1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfYW55KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzX2FueSksCgkgIChnc3RfZHBfY3JjKSwgKGdzdF9kcF9oZWFkZXJfcGF5bG9hZF9sZW5ndGgpLAoJICAoZ3N0X2RwX2hlYWRlcl9wYXlsb2FkX3R5cGUpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApLCAoZ3N0X2RwX2J1ZmZlcl9mcm9tX2hlYWRlciksCgkgIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCksIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCksIChnc3RfZHBfdmFsaWRhdGVfaGVhZGVyKSwKCSAgKGdzdF9kcF92YWxpZGF0ZV9wYXlsb2FkKToKCSAgTWFrZSBkZWJ1ZyBjYXRlZ29yeSBzdGF0aWMKCSAgQ29uc3RpZnkgdGhlIGNyYyB0YWJsZS4KCSAgRG8gc29tZSBtb3JlIGFyZyBjaGVja2luZyBpbiBwdWJsaWMgZnVuY3Rpb25zLgoJICBGaXggc29tZSBkb2NzIGFuZCBkbyBzb21lIHNtYWxsIGNsZWFudXBzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZHBfc3VpdGUpOgoJICBBZGQgc29tZSBtb3JlIGNoZWNrcyB0byBzZWUgaWYgR0RQIGRlYWxzIHdpdGggYm9ndXMgaW5wdXQuCgoyMDA2LTA3LTMxIDE2OjM0OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbiBjb2RlLiBGaXhlcyAjMzQ3MjkzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpOgoJICBGaXggR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24gY29kZS4gRml4ZXMgIzM0NzI5My4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgdG8gdGVzdCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbi4KCjIwMDYtMDctMzEgMTU6MTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVXNlIE9CSkVDVF9MT0NLIGFuZCByZWZjb3VudGluZyB0byBnZXQgdGhlIHBhZCBjYXBzIGluIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgVXNlIE9CSkVDVF9MT0NLIGFuZCByZWZjb3VudGluZyB0byBnZXQgdGhlIHBhZCBjYXBzIGluIHRoZQoJICBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYmVjYXVzZSB0aGUgY2FwcyBjb3VsZCBjaGFuZ2Ugd2hpbGUgd2UgYXJlCgkgIGJ1c3kgd2l0aCB0aGVtLiBGaXhlcyAjMzQ5MTA1CgoyMDA2LTA3LTMxIDE1OjEyOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBzdXJlIHRvIGZyZWUgdGhlIHBhcnNlIGJ1ZmZlciBvbiBhbGwgY29kZSBwYXRocy4KCSAgTW92ZSBhIGdfZnJlZSB1cCB0byB0aGUgZXJyb3IgaGFuZGxlciB3aGVyZSBpdCdzIGVhc2llciB0byBzZWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgRXh0ZW5kaW5nIHRpbWVvdXQgZm9yIGRvd25zdHJlYW0gdHJhdmVsbGluZyBldmVudHMgdG8gMTAgc2Vjb25kcyB0bwoJICBob3BlZnVsbHkgYXZvaWQgaW50ZXJtaXR0ZW50IGZhaWx1cmUgb24gdGhlIGJ1aWxkYm90cy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KToKCSAgRG9uJ3QgbWFudWFsbHkgc2V0IHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgLSBpdCB3aWxsIGhhcHBlbiBhcyBhCgkgIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIHBpcGVsaW5lIGNoYW5naW5nIHN0YXRlLCBhbmQgdGhhdCB3YXkgaXQKCSAgd2lsbCBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIgdG9vLgoKMjAwNi0wNy0zMSAxNTowNzozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIHN1cmUgdG8gZnJlZSB0aGUgcGFyc2UgYnVmZmVyIG9uIGFsbCBjb2RlIHBhdGhzLgoJICBNb3ZlIGEgZ19mcmVlIHVwIHRvIHRoZSBlcnJvciBoYW5kbGVyIHdoZXJlIGl0J3MgZWFzaWVyIHRvIHNlZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBFeHRlbmRpbmcgdGltZW91dCBmb3IgZG93bnN0cmVhbSB0cmF2ZWxsaW5nIGV2ZW50cyB0byAxMCBzZWNvbmRzIHRvCgkgIGhvcGVmdWxseSBhdm9pZCBpbnRlcm1pdHRlbnQgZmFpbHVyZSBvbiB0aGUgYnVpbGRib3RzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpOgoJICBEb24ndCBtYW51YWxseSBzZXQgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCAtIGl0IHdpbGwgaGFwcGVuIGFzIGEKCSAgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgcGlwZWxpbmUgY2hhbmdpbmcgc3RhdGUsIGFuZCB0aGF0IHdheSBpdAoJICB3aWxsIGRvIGl0IGluIHRoZSByaWdodCBvcmRlciB0b28uCgoyMDA2LTA3LTMxIDE0OjIzOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFByb3RlY3QgX1BBRF9DQVBTIHdpdGggT0JKRUNUX0xPQ0suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9nZXRfZml4ZWRfY2Fwc19mdW5jKToKCSAgUHJvdGVjdCBfUEFEX0NBUFMgd2l0aCBPQkpFQ1RfTE9DSy4KCjIwMDYtMDctMzEgMTQ6MjE6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBfREVCVUdfT0JKRUNUIHdoZW4gaXQgbWFrZXMgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVsbF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1c2hfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2ludGVybmFsX2xpbmtfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfbGlua19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF91bmxpbmtfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY2NlcHRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2ZpeGF0ZWNhcHNfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfc2V0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9idWZmZXJhbGxvY19mdW5jdGlvbiksIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksCgkgIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpLCAoZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKSwKCSAgKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVzZSBfREVCVUdfT0JKRUNUIHdoZW4gaXQgbWFrZXMgc2Vuc2UuCgkgIFByb3RlY3QgR1NUX1BBRF9DQVBTIHdpdGggdGhlIE9CSkVDVF9MT0NLLgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgY29kZSByZWZsb3dzLgoJICBBdm9pZCBjYXBzIHJlZmNvdW50aW5nIGluIF9hY2NlcHRfY2Fwcy4KCSAgUmVmYWN0b3IgYWxsb2NfYnVmZmVyIHNvIHRoYXQgdGhlIGNvZGUgcGVyZm9ybWVkIG9uIHRoZSBwZWVyIGlzIGluIGEKCSAgc2VwYXJhdGUgZnVuY3Rpb24uIEFsc28gaWYgdGhlIHBhZCBkb2VzIG5vdCBpbXBsZW1lbnQgYSBidWZmZXIgYWxsb2MKCSAgZnVuY3Rpb24sIHdlIHNob3VsZCBzdGlsbCBjaGVjayBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nIGJlZm9yZSBmYWxsaW5nCgkgIGJhY2sgdG8gdGhlIGRlZmF1bHQgYWxsb2NhdG9yLgoKMjAwNi0wNy0zMCAyMjoyMDo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IE1ha2UgYWxsIHVzZXMgb2YgaWRlbnRpdHkgYW5kIGZha2VzaW5rIGhhdmUgc2lsZW50PXRydWUgdG8gYXZvaWQgc2VyaWFsaXNpbmcgZXYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGFsbCB1c2VzIG9mIGlkZW50aXR5IGFuZCBmYWtlc2luayBoYXZlIHNpbGVudD10cnVlIHRvIGF2b2lkCgkgIHNlcmlhbGlzaW5nIGV2ZXJ5IHBhc3NpbmcgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGlzIGJyZWFraW5nIHRlc3RzCgkgIG9uIEZDNCBmb3Igc29tZSB1bmtub3duIHJlYXNvbi4KCjIwMDYtMDctMzAgMTg6NTg6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS86IFJldmVydGVkIHByZXZpb3VzIHBhdGNoIGFzIGl0IHJlcXVpcmVkIHRvIGJ1bXAgdGhlIGZsZXggZGVwZW5kZW5jeSB0byAyLjUuMzEsIHdoZXJlIGZjNC81IHNlZW0gdG8gc2hpcCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgUmV2ZXJ0ZWQgcHJldmlvdXMgcGF0Y2ggYXMgaXQgcmVxdWlyZWQgdG8gYnVtcCB0aGUgZmxleCBkZXBlbmRlbmN5IHRvCgkgIDIuNS4zMSwgd2hlcmUgZmM0LzUgc2VlbSB0byBzaGlwIG9ubHkgdGhlIGFuY2llbnQgMi41LjRhIDooCgoyMDA2LTA3LTMwIDE4OjMyOjQ5ICswMDAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvOiBwdXNoICYgcG9wIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIgZm9yIHJlZW50cmFudCB1c2UgY2FzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgcHVzaCAmIHBvcCB0aGUgc3RhdGUgb2YgdGhlIGxleGVyIGZvciByZWVudHJhbnQgdXNlIGNhc2UKCSAgRml4ZXMgIzM0OTE4MAoKMjAwNi0wNy0yOSAxMzo0NTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhlIDo6bmV3c2VnbWVudCB2ZnVuYyBpcyBub3QgYWN0dWFsbHkgdXNlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoZSA6Om5ld3NlZ21lbnQgdmZ1bmMgaXMgbm90IGFjdHVhbGx5IHVzZWQgYnkKCSAgR3N0QmFzZVNyYy4KCjIwMDYtMDctMjggMTQ6MDk6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFdoZW4gZmx1c2hpbmcgYSBwYWQsIGFsc28gY2xlYXIgdGhlIHF1ZXVlZCBidWZmZXIgc28gdGhhdCB3ZSBkb24ndCBhY2NpZGVudGFsbHkgdXNlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGVhciksIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIFdoZW4gZmx1c2hpbmcgYSBwYWQsIGFsc28gY2xlYXIgdGhlIHF1ZXVlZCBidWZmZXIgc28gdGhhdCB3ZSBkb24ndAoJICBhY2NpZGVudGFsbHkgdXNlIGl0IHdoZW4gd2Ugc2hvdWxkbid0LgoJICBGaXggbGVha3MgYnkgaW5yZWZmaW5nIGluY29tbWluZyBidWZmZXIuCgkgIEZsdXNoIG91dCBxdWV1ZWQgYnVmZmVycyBpbiBjYXNlIG9mIGVycm9ycy4KCSAgRml4ZXMgIzM0NzQ1Mi4KCjIwMDYtMDctMjggMTA6MTc6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS9waG9ub24tZ3N0OiBSYW5kb20gbm90ZXMgYWJvdXQgYSBQaG9ub24gYmFja2VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcGhvbm9uLWdzdDoKCSAgUmFuZG9tIG5vdGVzIGFib3V0IGEgUGhvbm9uIGJhY2tlbmQuCgoyMDA2LTA3LTI3IDE0OjMyOjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBFeHRyYSBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEV4dHJhIGRlYnVnIG91dHB1dAoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBUYWtlIGEgd2hhY2sgYXQgZml4aW5nIHRoZSBwcGMgY29tcGlsZSB1c2luZyBhIGRpZmZlcmVudCBkZWZpbmUgdG8KCSAgZGlzYWJsZSB0aGUgYnJva2VuIHRlc3QuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZW1vdmUgZXhjZXNzIGdfcHJpbnQoKQoKMjAwNi0wNy0yNyAxMzo0NDoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IE9vcHMsIG1lYW50IHRvIHVuY29tbWVudCB0aGlzIGxpbmUgdG9vIHRvIGRhbXBlbiB0aGUgbm9pc2UgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSk6CgkgIE9vcHMsIG1lYW50IHRvIHVuY29tbWVudCB0aGlzIGxpbmUgdG9vIHRvIGRhbXBlbiB0aGUgbm9pc2UgYSBiaXQuCgoyMDA2LTA3LTI3IDEzOjI2OjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBzb21lIG9mIHRoZSBsZWFrcyBleHBvc2VkIGJ5IGV4dGVuZGluZyB0aGUgcGFyc2UtbGF1bmNoIHRlc3RzdWl0ZSwgYW5kIG1vdmUgdGhlIDMgSSBjYW4ndCBmaWd1cmUgb3V0IGludG8gYSBzZXBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChwYXJzZV9zdWl0ZSk6CgkgIEZpeCBzb21lIG9mIHRoZSBsZWFrcyBleHBvc2VkIGJ5IGV4dGVuZGluZyB0aGUgcGFyc2UtbGF1bmNoIHRlc3RzdWl0ZSwKCSAgYW5kIG1vdmUgdGhlIDMgSSBjYW4ndCBmaWd1cmUgb3V0IGludG8gYSBzZXBhcmF0ZSB0ZXN0IHRoYXQgd29uJ3QgcnVuCgkgIHRoZSBwaXBlbGluZXMgdW5sZXNzIHRoZSBhcHByb3ByaWF0ZSBsaW5lIGlzIHVuY29tbWVudGVkLgoKMjAwNi0wNy0yNyAxMjozOTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBSZXF1ZXN0aW5nIDAgYnl0ZXMgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUgc2hvdWxkIHJlc3VsdCBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFJlcXVlc3RpbmcgMCBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZmlsZSBzaG91bGQgcmVzdWx0IGluCgkgIEZMT1dfT0sgYW5kIGFuIGVtcHR5IGJ1ZmZlciwgbm90IEZMT1dfVU5FWFBFQ1RFRC4gVGhhbmsgeW91CgkgIHVuaXQgdGVzdC4KCjIwMDYtMDctMjcgMTE6MDA6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggdXNlbGVzcyBhc3NlcnQsIGEgdWludCBpcyBhbHdheXMgcG9zaXRpdmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUpOgoJICBGaXggdXNlbGVzcyBhc3NlcnQsIGEgdWludCBpcyBhbHdheXMgcG9zaXRpdmUuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9udGhfZmllbGRfbmFtZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZvcmVhY2gpLCAoZ3N0X3N0cnVjdHVyZV9tYXBfaW5fcGxhY2UpOgoJICBDaGVjayBpbnB1dCBhcmd1bWVudHMgZm9yIHB1YmxpYyBmdW5jdGlvbnMgdG8gYXZvaWQgb2J2aW91cyBjcmFzaGVzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIERvIGxlc3MgdXNlbGVzcyB0eXBlY2hlY2tpbmcuCgoyMDA2LTA3LTI3IDEwOjU0OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IERvIG5vdCB1c2UgbW1hcCgpIGJ5IGRlZmF1bHQgc2luY2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVycm9yIGNvbmRpdGlvbnMgdGhhdCB3ZSB3b3VsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICBEbyBub3QgdXNlIG1tYXAoKSBieSBkZWZhdWx0IHNpbmNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBlcnJvcgoJICBjb25kaXRpb25zIHRoYXQgd2Ugd291bGQgbGlrZSB0byBoYW5kbGUgaW4gYSBub24tZmF0YWwgd2F5IHRoYXQKCSAgd2lsbCByZXN1bHQgaW4gYSBTSUdCVVMgaWYgd2UgdXNlIG1tYXAoKS4gRXhhbXBsZXM6IGV4dGVybmFsCgkgIGRldmljZXMgKFVTQiBoYXJkZHJpdmUsIHBvcnRhYmxlIG11c2ljIHBsYXllcikgYmVpbmcgdW5wbHVnZ2VkCgkgIHdoaWxlIGluIHVzZTsgZmlsZSBvbiBtb3VudGVkIENEL0RWRCB0aGF0IGNhbid0IGJlIHJlYWQgYmVjYXVzZQoJICB0aGUgbWVkaXVtIGlzIHBhcnRseSBkYW1hZ2VkLiBGaXhlcyAjMzQ4NDU1IGFuZCAjMzQ4NDc1LgoKMjAwNi0wNy0yNiAyMjo1OToxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuaDogRGVsZXRlIHVudXNlZCBhbmQgbWlzbGVhZGluZyBkZWZpbmUgb2YgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4gLSByYXRlcyBhcmUgYSBnZG91YmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBEZWxldGUgdW51c2VkIGFuZCBtaXNsZWFkaW5nIGRlZmluZSBvZiBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTiAtCgkgIHJhdGVzIGFyZSBhIGdkb3VibGUKCjIwMDYtMDctMjYgMjA6MzA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBNb3ZlIGJpZyBkb2N1bWVudGF0aW9uIGNvbW1lbnQgaW50byBjbGFzcyBzZWN0aW9uIGhlYWRlciwgc28gdGhhdCBpdCBhcHBlYXJzIGluIHRoZSBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE1vdmUgYmlnIGRvY3VtZW50YXRpb24gY29tbWVudCBpbnRvIGNsYXNzIHNlY3Rpb24gaGVhZGVyLCBzbyB0aGF0IGl0CgkgIGFwcGVhcnMgaW4gdGhlIEFQSSBkb2NzLgoKMjAwNi0wNy0yNiAxNzoxODoyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBPb3BzLiBDb21taXQgdGhlIGRvY3MgYWRkaXRpb25zIHRvbyBmb3IgbmV3IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgT29wcy4gQ29tbWl0IHRoZSBkb2NzIGFkZGl0aW9ucyB0b28gZm9yIG5ldyBBUEkuCgkgIEFsc28sIHJlbW92ZSB0aGUgbWVudGlvbiBvZiB0aGUgbm9uLWV4aXN0ZW50IEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOCgoyMDA2LTA3LTI2IDE3OjA0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuKjogQWRkIEFQSSBmb3Igc2V0dGluZyB2YWx1ZXMgaW50byBzdHJ1Y3R1cmVzIHdpdGhvdXQgcGVyZm9ybWluZyBhIHF1YXJrIGxvb2t1cCwgaWYgdGhlIGFwcHJvcHJpYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldCksCgkgIChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3QpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgQWRkIEFQSSBmb3Igc2V0dGluZyB2YWx1ZXMgaW50byBzdHJ1Y3R1cmVzIHdpdGhvdXQgcGVyZm9ybWluZwoJICBhIHF1YXJrIGxvb2t1cCwgaWYgdGhlIGFwcHJvcHJpYXRlIHF1YXJrIGlzIGFscmVhZHkga25vd24uCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9zZXQKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3QKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBSZW1vdmUgc29tZSBkZWFkIGNvZGUgc2hvd24gYnkgdGhlIGNvdmVyYWdlIGluZm9ybWF0aW9uLgoJICBEb24ndCB0aHJvdyBhIGNyaXRpY2FsIGdfd2FybmluZyB3aGVuIGVuY291bnRlcmluZyBhIHN5bnRheCBlcnJvciwKCSAganVzdCB3YXJuIGFuZCBsZXQgdGhlIG5vcm1hbCBlcnJvciBwYXRoIGhhbmRsZSBpdC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIEJ1bXAgdGhlIHJhbmsgb2YgZmlsZXNpbmsgdXAgdG8gUFJJTUFSWSBzbyB0aGF0IGl0IGlzIHByZWZlcnJlZCBvdmVyCgkgIGdub21ldmZzc2luayBmb3IgZmlsZTovLyBzaW5rIHVyaSdzCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHJ1bl9kZWxheWVkX3Rlc3QpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jbGFzc19pbml0KSwgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcmVnaXN0ZXJfcGFyc2VfZWxlbWVudCksIChwYXJzZV9zdWl0ZSk6CgkgIEJlZWYgdXAgdGhlIHRlc3RzIGZvciBwYXJzZSBzeW50YXggdG8gY2hlY2sgdGhhdCBtb3JlIGVycm9yIGNhc2VzCgkgIGZhaWwgYXMgdGhleSBhcmUgc3VwcG9zZWQgdG8uIEluY3JlYXNlcyB0aGUgdGVzdCBjb3ZlcmFnZSBhIGJpdC4KCjIwMDYtMDctMjYgMTE6NDM6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOiBGaXggZ3N0X2VsZW1lbnRfbGluaygpIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIEZpeCBnc3RfZWxlbWVudF9saW5rKCkgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTWVudGlvbiBpbiBBUEkgZG9jcyB0aGF0IG9uZSBzaG91bGQgdXN1YWxseSBnc3RfYmluX2FkZCgpCgkgIGVsZW1lbnRzIHRvIGEgYmluIG9yIHBpcGVsaW5lIGJlZm9yZSBkb2luZyB0aGUgbGlua2luZy4KCjIwMDYtMDctMjYgMTA6NDc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIDMyIGJpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byAzMiBiaXQKCjIwMDYtMDctMjYgMTA6Mzk6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEF2b2lkIGZ1bmN0aW9uIGNhbGwgZm9yIGtub3duIHR5cGVzIGJ5IGtlZXBpbmcgdGhlIGJ1ZmZlciBhbmQgc3ViYnVmZmVyIEdUeXBlIGdsb2JhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX25ldyksCgkgIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgIEF2b2lkIGZ1bmN0aW9uIGNhbGwgZm9yIGtub3duIHR5cGVzIGJ5IGtlZXBpbmcgdGhlIGJ1ZmZlciBhbmQKCSAgc3ViYnVmZmVyIEdUeXBlIGdsb2JhbC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFJhbmRvbSBzaWxseSBvcHRpbWlzYXRpb25zIGluIHJlYWQoKSBwYXRoLgoKMjAwNi0wNy0yNiAwNjoxODo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IElmIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHBhcnNlIGlzIGEgbm9ybWFsIGJpbiwgaXQgZG9lc24ndCBkbyB0aGUgcmlnaHQgbG9naWMgdG8gcnVuIGFzIGEgdG9wLWxldmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIElmIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHBhcnNlIGlzIGEgbm9ybWFsIGJpbiwgaXQgZG9lc24ndCBkbyB0aGUKCSAgcmlnaHQgbG9naWMgdG8gcnVuIGFzIGEgdG9wLWxldmVsIGVsZW1lbnQsIHNvIHBsYWNlIGl0IGluc2lkZSBhCgkgIHBpcGVsaW5lLgoKMjAwNi0wNy0yNSAxOTozNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMsIEdPYmplY3QgZG9lcyB0aGF0IGZvciB1cyBhdXRvbWF0aWNhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpOgoJICBSZW1vdmUgc3VwZXJmbHVvdXMgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMsIEdPYmplY3QgZG9lcwoJICB0aGF0IGZvciB1cyBhdXRvbWF0aWNhbGx5LgoKMjAwNi0wNy0yNSAxNTowNzo1OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgLmggYWRkaXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgLmggYWRkaXRpb24KCjIwMDYtMDctMjUgMTM6MDY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IE1vdmUgdGhlIFdpbjMyIHZlcnNpb24gZnJvbSBnc3QtcGx1Z2lucy1nb29kL2dzdC9hdmkvYXZpZGVtdXguYyB0byBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBNb3ZlIHRoZSBXaW4zMiB2ZXJzaW9uIGZyb20gZ3N0LXBsdWdpbnMtZ29vZC9nc3QvYXZpL2F2aWRlbXV4LmMgdG8KCSAgaGVyZS4KCjIwMDYtMDctMjQgMTY6MzM6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBbGxvdyBtb3JlIHRoYW4gb25lIEdTVF9UQUdfSU1BR0UgcGVyIHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgQWxsb3cgbW9yZSB0aGFuIG9uZSBHU1RfVEFHX0lNQUdFIHBlciB0YWdsaXN0LgoKMjAwNi0wNy0yNCAwNzo0MDoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiB1cGRhdGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICB1cGRhdGUgZG9jcwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgbG9nIHJlY3VycmluZyBldmVudHMgYXQgTE9HIGxldmVsCgkgIGFkZCBtb3JlIGRlYnVnIGZvciB3aGVuIHRoZSBmZCBnZXRzIHNldAoKMjAwNi0wNy0yNCAwNzozNzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIHJlbW92ZSAtLWVuYWJsZS1kb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgLS1lbmFibGUtZG9jcwoKMjAwNi0wNy0yMyAwOTo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIGJ1ZyByZWZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgYnVnIHJlZmVyZW5jZQoKMjAwNi0wNy0yMSAxODo1MjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhcnNlLmM6IEFsc28gcmVtb3ZlIHJlZW50cmFuY2UgY2hlY2tzIGlmIGZsZXggaXMgTVQgc2F2ZSAoIzM0ODE3OSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgQWxzbyByZW1vdmUgcmVlbnRyYW5jZSBjaGVja3MgaWYgZmxleCBpcyBNVCBzYXZlICgjMzQ4MTc5KQoJICBGaXggbXkgZW1wdHkgQ2hhbmdlTG9nIGVudHJ5IGJlbG93CgoyMDA2LTA3LTIxIDE2OjAxOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBdHRlbXB0IHRvIHBhY2lmeSBidWlsZGJvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQXR0ZW1wdCB0byBwYWNpZnkgYnVpbGRib3QuCgoyMDA2LTA3LTIxIDE1OjQ4OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbSAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQGluY2x1ZGVfSEVBREVSUykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0KCSAgKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBpbmNsdWRlX0hFQURFUlMpCgkgIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAX2xhX1NPVVJDRVMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzogQWRkIHNvbWUgbmV3IGh5cGUgdGVzdGluZwoJICBmdW5jdGlvbnMsIHRodXMgcHJvdmluZyBJIGFtIHN0aWxsIGEgR1N0cmVhbWVyIGhheG9yLiBPSyBJIHdyb3RlCgkgIHRoZW0gYSBsb25nIHRpbWUgYWdvLCBidXQgYW55d2F5cy4KCjIwMDYtMDctMjEgMTM6MTE6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzogKiBjb25maWd1cmUuYWM6ICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCjIwMDYtMDctMjEgMTA6NDA6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFyc2UuYzogUHJvdGVjdCByZWN1cnNpdmUgY2FsbHMgdG8gX3BhcnNlIHdpdGggYSByZWN1cnNpdmUgbXV0ZXggYW5kIGJ1c3kgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgUHJvdGVjdCByZWN1cnNpdmUgY2FsbHMgdG8gX3BhcnNlIHdpdGggYSByZWN1cnNpdmUgbXV0ZXgKCSAgYW5kIGJ1c3kgZmxhZy4KCjIwMDYtMDctMjEgMTA6Mzg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEZpeCBsZWFrIGluIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWsgaW4gdGVzdC4KCjIwMDYtMDctMjAgMjA6MDI6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYXJzZS5jOiBEbyBub3QgaGFuZ2Ugb24gcmVjdXJzaXZlIHVhc2dlIG9mIGdzdF9wYXJzZV9sYXVuY2goKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBEbyBub3QgaGFuZ2Ugb24gcmVjdXJzaXZlIHVhc2dlIG9mIGdzdF9wYXJzZV9sYXVuY2goKQoKMjAwNi0wNy0yMCAxNjoxMDoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFkZCBzb21lIG1vcmUgZG9jcywgY29tbWVudHMgYW5kIEZJWE1FIDAuMTFzIGhlcmUgYW5kIHRoZXJlIGFuZCAgYWxzbyBmaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzLCBjb21tZW50cyBhbmQgRklYTUUgMC4xMXMgaGVyZSBhbmQgdGhlcmUKCSAgYW5kICBhbHNvIGZpeCBzb21lIHR5cG9zLgoKMjAwNi0wNy0yMCAxMDo1MDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IENvbnZlcnQgdGFicyB0byBzcGFjZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQ29udmVydCB0YWJzIHRvIHNwYWNlcyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAwNi0wNy0yMCAxMDoyNToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IHRoZSB0ZXN0X2J1ZmZlciB0ZXN0IGZhaWxzIGF0IGxpbmUgMTQwIG9uIHBwYzY0IGF0IHRoZSBmb2xsb3dpbmcgY2hlY2s6ICJHU1RfQlVGRkVSX0lOX0NBUFMgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgdGhlIHRlc3RfYnVmZmVyIHRlc3QgZmFpbHMgYXQgbGluZSAxNDAgb24gcHBjNjQgYXQgdGhlIGZvbGxvd2luZwoJICBjaGVjazoKCSAgZmFpbF91bmxlc3MgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQgKG5ld2J1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0lOX0NBUFMpLAoJICAiR1NUX0JVRkZFUl9JTl9DQVBTIGZsYWcgc2hvdWxkIGhhdmUgYmVlbiBjb3BpZWQgISIpOwoJICBTZWUgYnVnICMzNDgxMTQgZm9yIG1vcmUgZGV0YWlscy4KCjIwMDYtMDctMTkgMTI6NDA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggdHlwb3MgKCMzNDgwMDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvcyAoIzM0ODAwMCkuCgoyMDA2LTA3LTE4IDIwOjM4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDogRml4IHdyb25nIGxpbmtzICgjMzQ3OTI3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgRml4IHdyb25nIGxpbmtzICgjMzQ3OTI3KS4KCjIwMDYtMDctMTggMTk6MDE6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1ha2UgLS1kaXNhYmxlLWluZGV4IHdvcmsgKCMzNDI1NjQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBtYWtlIC0tZGlzYWJsZS1pbmRleCB3b3JrICgjMzQyNTY0KQoKMjAwNi0wNy0xOCAwOTo0MjozMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBUaGUgYXR0YWNoZWQgcGF0Y2ggYWRkcyB0d28gbWlzc2luZyBkZWZpbmVzIHRvIGdzdHRyYWNlLmggd2hlbiB0cmFjaW5nIGlzIGRpc2FibGVkLiAgSXQgYWxzbyBjb3JyZWN0cyBvbmUgZXhpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3R0cmFjZS5oOgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggYWRkcyB0d28gbWlzc2luZyBkZWZpbmVzIHRvIGdzdHRyYWNlLmggd2hlbiB0cmFjaW5nCgkgIGlzIGRpc2FibGVkLiAgSXQgYWxzbyBjb3JyZWN0cyBvbmUgZXhpc3RpbmcgZGVmaW5lLgoJICBGaXhlcyAjMzQ3NzU2LgoKMjAwNi0wNy0xNyAxNzo0MDo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCB0d28gZnVuY3Rpb25zIHRvIGNoZWNrIGFuZCBjaGFuZ2UgdGhlIFNJR1NFR1YgYmVoYXZpb3VyIHdoZW4gbG9hZGluZyBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQpLCAoZ3N0X3NlZ3RyYXBfc2V0X2VuYWJsZWQpOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX3Jlc3RvcmUpOgoJICBBZGQgdHdvIGZ1bmN0aW9ucyB0byBjaGVjayBhbmQgY2hhbmdlIHRoZSBTSUdTRUdWIGJlaGF2aW91cgoJICB3aGVuIGxvYWRpbmcgcGx1Z2lucy4KCSAgRG9uJ3QgbWVzcyB3aXRoIHRoZSBTSUdTRUdWIGhhbmRsZXIgd2hlbiB3ZSB3ZXJlIHRvbGQgbm90IHRvLgoJICBGaXhlcyAjMzQ3Nzk0LgoJICBBUEk6IGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQKCSAgQVBJOiBnc3Rfc2VndHJhcF9zZXRfZW5hYmxlZAoKMjAwNi0wNy0xNCAxNjo0MjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJldmVydCBmaXggZm9yIHJlZ3Jlc3Npb24gaW4gIzM0NzQwOCBhZnRlciByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJldmVydCBmaXggZm9yIHJlZ3Jlc3Npb24gaW4gIzM0NzQwOCBhZnRlciByZWxlYXNlLgoKMjAwNi0wNy0xNCAxNjoyMDoxOCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBGcmVlIGl0ZXJhdG9yIHdoZW4gZG9uZSAoIzM0NzMxMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayk6CgkgIEZyZWUgaXRlcmF0b3Igd2hlbiBkb25lICgjMzQ3MzExKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFuZCBhZGQgYSB0ZXN0IGNhc2UgZm9yIHRoaXMuCgoyMDA2LTA3LTE0IDE1OjUyOjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCBuYW5vIGJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBuYW5vIGJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjkgPT09CgoyMDA2LTA3LTE0IDE1OjUwOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuOSwgIk9uIHRoZSByb2FkIGFnYWluIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0xMyAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC45LCAiT24gdGhlIHJvYWQgYWdhaW4iCgoyMDA2LTA3LTEzIDE5OjQ3OjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNy0xMyAxNTo1MTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJldmVydCBwdWxsLTAgZml4IGZvciByZWxlYXNlLiBEaXNhYmxlIGNoZWNrLiBGaXhlcyAjMzQ3NDA4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJldmVydCBwdWxsLTAgZml4IGZvciByZWxlYXNlLiBEaXNhYmxlIGNoZWNrLiBGaXhlcyAjMzQ3NDA4LgoKMjAwNi0wNy0xMyAxNDowMjoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeGVzICMzNDczMzc6IGZhaWx1cmUgdG8gZGVzZXJpYWxpemUgZXZlbnQgcGFja2V0cyB3aXRoIGVtcHR5IHBheWxvYWQgKG9ubHkgZXYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzFfMCk6CgkgIEZpeGVzICMzNDczMzc6IGZhaWx1cmUgdG8gZGVzZXJpYWxpemUgZXZlbnQgcGFja2V0cyB3aXRoCgkgIGVtcHR5IHBheWxvYWQgKG9ubHkgZXZlbnQgdHlwZSkKCjIwMDYtMDctMTMgMTM6NTc6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBkbyBub3QgaW5zdGFsbCBhIC5jIGZpbGUgaW4gdGhlIGhlYWRlciBkaXJlY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBkbyBub3QgaW5zdGFsbCBhIC5jIGZpbGUgaW4gdGhlIGhlYWRlciBkaXJlY3RvcnkKCjIwMDYtMDctMTMgMTA6NDc6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogR2hvc3RQYWQgbm8gbG9uZ2VyIGltcGxpY2l0ZWx5IHVzZSB0aGUgcGFkdGVtcGxhdGVzIG9mIHRoZSB0YXJnZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCk6CgkgIEdob3N0UGFkIG5vIGxvbmdlciBpbXBsaWNpdGVseSB1c2UgdGhlIHBhZHRlbXBsYXRlcyBvZiB0aGUgdGFyZ2V0cy4KCSAgRml4ZXMgIzM0NzM4NAoKMjAwNi0wNy0xMSAyMjo1NTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDctMTEgMjA6NDQ6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyAjMzQxMDI5IGZpeGVkIGJ5IGJpbGJvZWQncyBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnICMzNDEwMjkgZml4ZWQgYnkgYmlsYm9lZCdzIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wNy0xMSAyMDoxNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNYWtlIEdzdFZhbHVlQXJyYXkgY29tcGFyaXNvbiBiZSBvcmRlciBkZXBlbmRlbnQgYXMgZGVzaWduZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9hcnJheSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIEdzdFZhbHVlQXJyYXkgY29tcGFyaXNvbiBiZSBvcmRlciBkZXBlbmRlbnQgYXMgZGVzaWduZWQuCgkgIEFkZCBjaGVja3MgZm9yIHZhbHVlIGxpc3RzIGFuZCB2YWx1ZSBhcnJheSBjb21wYXJpc29ucy4KCSAgRml4ZXMgIzM0NzIyMQoKMjAwNi0wNy0xMSAxNjoyMDowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogKGRlKWFjdGl2YXRlIHNyYyBwYWRzIGJlZm9yZSBjYWxsaW5nIHN0YXRlX2NoYW5nZSBvbiB0aGUgY2hpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhY3RpdmF0ZV9wYWRzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2Jpbl9zcmNfcGFkc19hY3RpdmF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKGRlKWFjdGl2YXRlIHNyYyBwYWRzIGJlZm9yZSBjYWxsaW5nIHN0YXRlX2NoYW5nZSBvbiB0aGUgY2hpbGRzLgoJICBUaGlzIGlzIHRvIGF2b2lkIHRoZSBjYXNlIHdoZXJlIGEgc3JjIGdob3N0cGFkIGlzIGJsb2NrZWQgKGhvbGRpbmcgdGhlCgkgIHN0cmVhbSBsb2NrKSwgd2hpY2ggd291bGQgYmxvY2sgdGhlIGRlYWN0aXZhdGlvbiBvZiB0aGUgZ2hvc3RwYWQncwoJICB0YXJnZXQgcGFkLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeV90eXBlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLCAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLCAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfZ2V0X2ludGVybmFsKSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXcpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgR2hvc3RQYWRzIG5vdyBjcmVhdGUgdGhlaXIgaW50ZXJuYWwgR3N0UHJveHlQYWQgYXQgY3JlYXRpb24gKGFuZCBub3QKCSAgd2hlbiB0aGV5J3JlIGxpbmtlZCwgYXMgaXQgd2FzIGJlaW5nIGRvbmUgcHJldmlvdXNseSkuCgkgIFRoZSBpbnRlcm5hbCBhbmQgdGFyZ2V0IHBhZHMgYXJlIGxpbmtlZCBzdHJhaWdodCBhd2F5LgoJICBUaGUgZGF0YSB3aWxsIGFsc28gdHJhdmVsIHRocm91Z2ggdGhlIG90aGVyIHBhZCBpbiBvcmRlciB0byBtYWtlCgkgIHBhZCBibG9ja2luZyBhbmQgcHJvYmVzIG5vbi1oYWNraXNoICh0aGUgcHJvYmUvYmxvY2sgbm93IHJlYWxseSBoYXBwZW5zCgkgIG9uIHRoZSBHaG9zdFBhZCBhbmQgbm90IG9uIHRoZSB0YXJnZXQpLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgUmVtb3ZlIHByZXZpb3VzIGdob3N0cGFkIGNydWZ0LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBSZW1vdmUgcHJldmlvdXMgZ2hvc3QgcGFkIGNydWZ0LgoJICBBZGRlZCBtb3JlIGRldGFpbGVkIGRlYnVnIHN0YXRlbWVudHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0aGUgdGVzdHN1aXRlIGZvciByZWZjb3VudGluZyBjaGFuZ2VzLgoJICBUaGUgY29tbWVudHMgYWJvdXQgd2hvIGhhcyByZWZlcmVuY2VzIHdlcmUgY29ycmVjdCwgYnV0IHRoZSByZWZjb3VudAoJICBiZWluZyBjaGVja2VkIHdhc24ndCB0aGUgc2FtZSAoIT8hKS4KCjIwMDYtMDctMTAgMTk6MzU6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgZG9jcyBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhZGQgZG9jcyB0byBndGstZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgTW9yZSBkb2NzIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFkZCBkb2NzIHRvIGd0ay1kb2MuCgoyMDA2LTA3LTEwIDE4OjI3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnVpbGQgd2hlbiBkaXNhYmxpbmcgdHJhY2luZyAoZml4ZXMgIzM0NDAxNikuIEFsc28gc3RhcnQgdG8gZG9jdW1lbnQgdGhlIGRlZmluZXMgdGhhdCBkaXNhYmxlIHRoZSBzdWItc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEZpeCBidWlsZCB3aGVuIGRpc2FibGluZyB0cmFjaW5nIChmaXhlcyAjMzQ0MDE2KS4gQWxzbyBzdGFydCB0byBkb2N1bWVudAoJICB0aGUgZGVmaW5lcyB0aGF0IGRpc2FibGUgdGhlIHN1Yi1zeXN0ZW1zLgoKMjAwNi0wNy0xMCAwOTo0MjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogbGV0J3MgbWFrZSB2YWxncmluZCBoYXBweS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgbGV0J3MgbWFrZSB2YWxncmluZCBoYXBweS4uLgoKMjAwNi0wNy0wOSAxNjo1Njo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEJldHRlciBwYWQgYWN0aXZhdGlvbiBjb2RlOiBSZXNldCB0aGUgY29sbGVjdCB2YWx1ZSB0b28gb24gcmVzeW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBCZXR0ZXIgcGFkIGFjdGl2YXRpb24gY29kZTogUmVzZXQgdGhlIGNvbGxlY3QgdmFsdWUgdG9vIG9uIHJlc3luYy4KCSAgQWRkIHNvbWUgY29tbWVudHMuCgoyMDA2LTA3LTA5IDEzOjI2OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2Ugc29tZSBtb3JlIG1hY3JvcyB3aGVyZSBpdCBtYWtlcyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOgoJICBVc2Ugc29tZSBtb3JlIG1hY3JvcyB3aGVyZSBpdCBtYWtlcyBzZW5zZS4KCSAgQWxsb3cgcGFkIG1vZGUgc3dpdGNoaW5nIGluc3RlYWQgb2YgYXNzZXJ0aW5nLiBXaGVuIGEgcGFkCgkgIGlzIGFjdGl2YXRlZCBpbiBvbmUgbW9kZSBhbmQgd2UgYWN0aXZhdGUgaXQgaW4gYW5vdGhlciwKCSAgZGVhY3RpdmF0ZSBpdCBmaXJzdCBiZWZvcmUgYWN0aXZhdGluZyBpdCBpbiBhIGRpZmZlcmVudCBtb2RlLgoJICBGaXhlcyAjMzI5MTk4LgoKMjAwNi0wNy0wOCAxMzoyMjozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jIChtYWluKTogSGFuZGxlIGVyciA9PSBOVUxMLiBnc3QvZ3N0LmMgKGluaXRfcG9zdCwgZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpIChlbnN1cmVfY3VycmVudF9yZWdpc3RyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYyAobWFpbik6IEhhbmRsZSBlcnIgPT0gTlVMTC4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCwgZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKQoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyk6IFJlZHVjZSAjaWZkZWYgcmF0bmVzdCBieQoJICBmYWN0b3Jpbmcgb3V0IHRoZSByZWdpc3RyeSBzY2FubmluZyBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4gRG9uJ3QKCSAgZm9yayBmb3IgdGhlIHJlc2NhbiBpcyBHU1RfUkVHSVNUUllfRk9SSz1ubzsgdXNlZnVsIGluIGRlYnVnZ2luZy4KCSAgQmV0dGVyIGVudmlyb25tZW50IHZhciBuYW1lL2ludGVyZmFjZSBzdWdnZXN0aW9ucyBhY2NlcHRlZC4KCjIwMDYtMDctMDcgMTc6MTY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFJhbmRvbSBtaWNyby1vcHRpbWlzYXRpb246IGRvbid0IHVzZSBhIGhhc2ggdGFibGUgd2l0aCBzdHJpbmdzIGFzIGtleXMgYW5kIHRoZSB1c3VhbCBzdHJkdXAvc3RyY21wIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZV9kZWZhdWx0KSwKCSAgKGdzdF9vYmplY3Rfc2V0X25hbWUpOgoJICBSYW5kb20gbWljcm8tb3B0aW1pc2F0aW9uOiBkb24ndCB1c2UgYSBoYXNoIHRhYmxlCgkgIHdpdGggc3RyaW5ncyBhcyBrZXlzIGFuZCB0aGUgdXN1YWwgc3RyZHVwL3N0cmNtcAoJICBpbnZvbHZlZCwgYnV0IHJhdGhlciBqdXN0IHVzZSB0aGUgR1F1YXJrIG9mIHRoZQoJICB0eXBlIG5hbWUgYXMga2V5LCBzaW5jZSBpdCBuZWVkcyB0byBiZSBsb29rZWQgdXAKCSAgYW55d2F5IHRvIGdldCB0aGUgdHlwZSBuYW1lIHN0cmluZy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB2YXJpb3VzIGxlYWtzLgoKMjAwNi0wNy0wNyAxNTo0MjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogQ2FuJ3QgdXNlIEdQT0lOVEVSX1RPX0lOVCBhbmQgR0lOVF9UT19QT0lOVEVSIHdpdGggR1R5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChjb21wYXJlX2ludGVyZmFjZSksIChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBDYW4ndCB1c2UgR1BPSU5URVJfVE9fSU5UIGFuZCBHSU5UX1RPX1BPSU5URVIgd2l0aCBHVHlwZXMuCgkgIEdUeXBlcyBhcmUgZ3Vsb25ncyBhbmQgdGh1cyB0aGUgdG9wIDQgYnl0ZXMgbWlnaHQgYmUgY3V0CgkgIG9mZiBvbiBzb21lIHBsYXRmb3JtcyB3aGVuIGRvaW5nIEdQT0lOVEVSX1RPX0lOVCwgbGVhZGluZwoJICB0byBpbnZhbGlkIEdUeXBlcyBhbmQgYmFkIHRoaW5ncyBoYXBwZW5pbmcuCgkgIEFsc28gYWRkIGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSB0eXBlIHBhc3NlZCBpbiBpcyByZWFsbHkKCSAgYW4gaW50ZXJmYWNlIHR5cGUuCgoyMDA2LTA3LTA3IDA5OjQ3OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgLmN2c2lnbm9yZTogSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIC5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwNi0wNy0wNyAwOTowOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2UgZ3N0LWVsZW1lbnQtY2hlY2stJFZFUlNJT04ubTQgY2FsbCBnc3QtaW5zcGVjdC0kVkVSU0lPTiBpbnN0ZWFkIG9mIHRoZSB1bnZlcnNpb25lZCBnc3QtaW5zcGVjdCAoIzMyNDE3NiwgIzE2ODY1OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSAgKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSAgTWFrZSBnc3QtZWxlbWVudC1jaGVjay0kVkVSU0lPTi5tNCBjYWxsIGdzdC1pbnNwZWN0LSRWRVJTSU9OCgkgIGluc3RlYWQgb2YgdGhlIHVudmVyc2lvbmVkIGdzdC1pbnNwZWN0ICgjMzI0MTc2LCAjMTY4NjU5KS4KCjIwMDYtMDctMDYgMTY6MTc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBVc2UgYSB2YWxpZCBpbnQgZm9yIHRoZSBfTUVTU0FHRV9BTlkgZW51bSB2YWx1ZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgVXNlIGEgdmFsaWQgaW50IGZvciB0aGUgX01FU1NBR0VfQU5ZIGVudW0gdmFsdWUgdG8gYXZvaWQgY29tcGlsZXIKCSAgd2FybmluZ3MuCgoyMDA2LTA3LTA2IDE1OjQ2OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBkb2NzLiBibG9ja3NpemUgPT0gMCBub3cgbWVhbnMgdGhlIGRlZmF1bHQgYmxvY2tzaXplIHdoZW4gd29ya2luZyBpbiBwdXNoIGJhc2VkIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBVcGRhdGUgZG9jcy4KCSAgYmxvY2tzaXplID09IDAgbm93IG1lYW5zIHRoZSBkZWZhdWx0IGJsb2Nrc2l6ZSB3aGVuIHdvcmtpbmcgaW4gcHVzaAoJICBiYXNlZCBtb2RlLgoJICBSZW1vdmUgc29tZSBwb2ludGxlc3MgYXNzZXJ0cyBpbiBfd2FpdCBmdW5jdGlvbi4KCSAgRml4IG9mZnNldC9sZW5ndGggY2FsY3VsYXRpb25zIGFuZCBFT1MgaGFuZGxpbmcuIFdlIGNhbiBub3cgcHVsbCAwCgkgIGJ5dGVzIGFzIHdlbGwsIHdoaWNoIGlzIGFsbG93ZWQuCgkgIHVzZSBfY2hlY2tfZ2V0X3JhbmdlKCkgdG8gZGVjaWRlIGlmIHdlIGNhbiBvcGVyYXRlIGluIF9wdWxsIGJhc2VkCgkgIG1vZGUuCgkgIEZpeCByZWZjb3VudGluZyBsZWFrIHdoZW4gY2hlY2tfZ2V0X3JhbmdlIGZ1bmN0aW9uIHdhcyBub3QKCSAgaW1wbGVtZW50ZWQuCgkgIEFQSSBHc3RCYXNlU3JjOjpibG9ja3NpemUgcmFuZ2UgY2FuIGJlIDAgdG9vIG5vdyAoZGVmYXVsdCkKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBfZ2V0X3JhbmdlKCkgYmVoYXZpb3VyLgoKMjAwNi0wNy0wNiAxNToyMTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogTG90cyBvZiBjb21tZW50cyBhbmQgZG9jcyBhZGRlZCB0byB0aGUgcGFkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBMb3RzIG9mIGNvbW1lbnRzIGFuZCBkb2NzIGFkZGVkIHRvIHRoZSBwYWQgZnVuY3Rpb25zLgoJICBGbGVzaCBvdXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91ciBvZiB0aGUgZ2V0X3JhbmdlKCkgZnVuY3Rpb25zLgoKMjAwNi0wNy0wNiAwOToyMTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bWVyYXRvciBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdC4KCjIwMDYtMDctMDUgMTk6NTY6MDggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYnNndHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNi0wNy0wNSAxODoyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBBZGQgc29tZSBtb3JlIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hfc3JjX2NoZWNrX2dldF9yYW5nZSk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCjIwMDYtMDctMDUgMTg6MTg6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZSB1cGRhdGUgdGhlIG9mZnNldCBzbyB0aGF0IHdlIHJlYWQgc2VxdWVudGlhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZSB1cGRhdGUgdGhlIG9mZnNldCBzbyB0aGF0IHdlCgkgIHJlYWQgc2VxdWVudGlhbGx5LgoKMjAwNi0wNy0wNSAxODoxNzowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBdm9pZCBzdHJkdXAuICh3aWxsIGhhcHBlbiBpbiBsaWJ4bWwsIGJ1dCBoZXkhKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKToKCSAgQXZvaWQgc3RyZHVwLiAod2lsbCBoYXBwZW4gaW4gbGlieG1sLCBidXQgaGV5ISkKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCjIwMDYtMDctMDUgMTc6MDk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBObyBwb2ludCBpbiBjaGVja2luZyBpZiB0aGUgc2l6ZSBvZiB0aGUgc3ViYnVmZmVyID4gMCwgdGhlIGNvZGUgaGFuZGxlcyBpdCBjb3JyZWNsdHkgYXMgZGVtb25zdHJhdGVkIGJ5IHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfY29weSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9idWZmZXJfc3VpdGUpOgoJICBObyBwb2ludCBpbiBjaGVja2luZyBpZiB0aGUgc2l6ZSBvZiB0aGUgc3ViYnVmZmVyID4gMCwgdGhlCgkgIGNvZGUgaGFuZGxlcyBpdCBjb3JyZWNsdHkgYXMgZGVtb25zdHJhdGVkIGJ5IHVuaXQgdGVzdC4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoZSB6ZXJvIHNpemVkIF9uZXdfYW5kX2FsbG9jIGFuZAoJICBfY29weS4gRml4ZXMgIzM0NjY2My4KCjIwMDYtMDctMDUgMDg6MTY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIHRoZSBidWZmZXIgd2UgcGFzcyB0byB0cmFuc2Zvcm1faXAgaGFzIGEgcmVmY291bnQgb2YgMSBhbmQgdGh1cyBpcyB3cml0YWIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB3ZSBwYXNzIHRvIHRyYW5zZm9ybV9pcCBoYXMgYSByZWZjb3VudCBvZgoJICAxIGFuZCB0aHVzIGlzIHdyaXRhYmxlLiBGaXhlcyAjMzQzMTk2CgoyMDA2LTA3LTA0IDA5OjAxOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy4qOiBBZGQgInNlcXVlbnRpYWwiIHByb3BlcnR5LCBvZmYgYnkgZGVmYXVsdCwgdG8gdXNlIG1hZHZpc2UgYW5kIGhpbnQgdG8gdGhlIGtlcm5lbCB0aGF0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19pbml0KSwgKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIEFkZCAic2VxdWVudGlhbCIgcHJvcGVydHksIG9mZiBieSBkZWZhdWx0LCB0byB1c2UgbWFkdmlzZSBhbmQgaGludAoJICB0byB0aGUga2VybmVsIHRoYXQgc2VxdWVudGlhbCBhY2Nlc3MgaXMgZGVzaXJlZC4KCSAgVG91Y2ggYWxsIHJldHJpZXZlZCBwYWdlcyBieSBkZWZhdWx0IHRvIGVuc3VyZSB0aGV5IGFyZSBwdWxsZWQKCSAgaW50byBtZW1vcnkuIChDbG9zZXMgIzM0NTcyMCkKCjIwMDYtMDctMDMgMTc6NDQ6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoKMjAwNi0wNy0wMyAxNjo1Nzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBHU2xpY2Ugd2hlbiB0aGUgZ2xpYiB3ZSBidWlsZCBhZ2FpbnN0IGlzID49IDIuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX25ld19lbXB0eSksIChfZ3N0X2NhcHNfZnJlZSksCgkgIChnc3RfY2Fwc191bnJlZiksIChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwKCSAgKGdzdF9jYXBzX2FwcGVuZF9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBVc2UgR1NsaWNlIHdoZW4gdGhlIGdsaWIgd2UgYnVpbGQgYWdhaW5zdCBpcyA+PSAyLjEwCgoyMDA2LTA3LTAzIDE2OjQ2OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgY2xlYW51cCBpbiBwYWQgYWN0aXZhdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFNtYWxsIGNsZWFudXAgaW4gcGFkIGFjdGl2YXRpb24gY29kZS4KCjIwMDYtMDctMDMgMTQ6MTQ6NDggKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIHdpbGwgbWFrZSB0aGUgaW5jbHVzaW9uIG9mIGdldHRleHQuaCB1bmNvbmRpdGlvbmFsIGluIGdzdC9nc3QtaTE4bi1hcHAuaCBhbmQgZ3N0L2dzdC1pMThuLWxpYi5oLCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3NpZ25hbF9pbmZvKToKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIHdpbGwgbWFrZSB0aGUgaW5jbHVzaW9uIG9mIGdldHRleHQuaCB1bmNvbmRpdGlvbmFsIGluCgkgIGdzdC9nc3QtaTE4bi1hcHAuaCBhbmQgZ3N0L2dzdC1pMThuLWxpYi5oLCBhbmQgaXQgd2lsbCByZW1vdmUgdGhlIGluY2x1c2lvbiBvZgoJICBsaWJpbnRsLmggaW4gdG9vbHMvZ3N0LWluc3BlY3QuYy4KCSAgVGhpcyBhbGxvd3MgdXNlIG9mIC0tZGlzYWJsZS1ubHMgYWdhaW4gYW5kIGZpeGVzICMzNDQ2NDIuCgoyMDA2LTA3LTAzIDExOjEwOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZml4IGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsZWFrCgoyMDA2LTA3LTAzIDEwOjMwOjQ5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgcGFkIGJsb2NraW5nIG9uIGV2ZW50cyBhY2NvcmRpbmcgdG8gcGFydC1ibG9jay50eHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgSW1wbGVtZW50IHBhZCBibG9ja2luZyBvbiBldmVudHMgYWNjb3JkaW5nIHRvIHBhcnQtYmxvY2sudHh0LgoJICBNb3JlIGNvbW1lbnRzIG9uIGJlaGF2aW91ci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBTZW5kIGV2ZW50IHRvIHBlZXIgcGFkIG9mIGJsb2NrZWQgcGFkIChlbHNlIGl0IHdpbGwgYmxvY2spLgoKMjAwNi0wNy0wMiAyMzoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBpZiB3ZSBnZXQgdGhlIHdyb25nIG1lc3NhZ2UsIGdpdmUgdXMgdGhlIHR5cGVzIGFzIHN0cmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpLAoJICAoZ3N0X2NoZWNrX3J1bl9zdWl0ZSk6CgkgIGlmIHdlIGdldCB0aGUgd3JvbmcgbWVzc2FnZSwgZ2l2ZSB1cyB0aGUgdHlwZXMgYXMgc3RyaW5nCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBGaXggYSB0cmFuc2xhdGFibGUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBhIHRlc3QgZm9yIHRyeWluZyB0byBvcGVuIGEgbm9uLWV4aXN0aW5nIGZpbGUKCjIwMDYtMDctMDIgMjI6NDQ6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1hY3JvcwoKMjAwNi0wNy0wMiAyMjoyODozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGRvdWJsZSB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkb3VibGUgdmFyCgoyMDA2LTA3LTAyIDIyOjI3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGNsZWFuIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIG1vcmUKCjIwMDYtMDctMDIgMjI6MjA6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDIyOjE3OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogYWRkIGEgdGVzdCBmb3IgYWRkaW5nIHNlbGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGFkZGluZyBzZWxmCgoyMDA2LTA3LTAyIDIyOjA1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IGFkZCBzb21lIGFzc2VydF8gYXMgYWxpYXMgZm9yIGZhaWxfdW5sZXNzXyoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIHNvbWUgYXNzZXJ0XyBhcyBhbGlhcyBmb3IgZmFpbF91bmxlc3NfKgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zdWl0ZSk6CgkgIGluY3JlYXNlIHRlc3QgY292ZXJhZ2UKCjIwMDYtMDctMDIgMjE6NTQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGluY2x1ZGUgbGNvdi5tYWsgZm9yIGxjb3YgY292ZXJhZ2UgZ2VuZXJhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgaW5jbHVkZSBsY292Lm1hayBmb3IgbGNvdiBjb3ZlcmFnZSBnZW5lcmF0aW9uCgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGFkZCB0byBDTEVBTkZJTEVTCgoyMDA2LTA3LTAyIDIxOjUyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoKMjAwNi0wNy0wMiAxNjoyNzoxNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IG1vYXBpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgbW9hcGluZwoKMjAwNi0wNy0wMiAxNDozOToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGRvbid0IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgZm9yIGdjb3YsIGRvbmUgZnJvbSBHU1RfR0NPViBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBkb24ndCBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIGZvciBnY292LCBkb25lIGZyb20gR1NUX0dDT1Ygbm93CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNsZWFuIHVwIGdjb3YgZmlsZXMKCjIwMDYtMDctMDIgMTQ6Mzc6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogcmVtb3ZlIGdzdF9jYXBzX3NpbXBsaWZ5OyBpdCB3YXMgbm90IGRlY2xhcmVkIGFuZCBub3QgdXNlZCBhbmQgZGVwcmVjYXRlZCBpbiAwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlbW92ZV9hbmRfZ2V0X3N0cnVjdHVyZSk6CgkgIHJlbW92ZSBnc3RfY2Fwc19zaW1wbGlmeTsgaXQgd2FzIG5vdCBkZWNsYXJlZCBhbmQgbm90IHVzZWQKCSAgYW5kIGRlcHJlY2F0ZWQgaW4gMC44CgoyMDA2LTA3LTAyIDE0OjA1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZG9uJ3QgcHV0IGVtcHR5IHBhdGhzIG9uIFBZVEhPTlBBVEgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb24ndCBwdXQgZW1wdHkgcGF0aHMgb24gUFlUSE9OUEFUSAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBzb21lIHN5bWJvbHMgdGhhdCBhcmUgbm90IHRoZXJlCgoyMDA2LTA3LTAyIDEyOjU3OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHVuYnJlYWsgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5icmVhayB0ZXN0CgoyMDA2LTA3LTAyIDEyOjU0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2NvbXBhcmVfc3RydWN0dXJlcyk6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgYWRkIG1vcmUgdGVzdHMKCjIwMDYtMDctMDIgMTI6NTI6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNi0wNy0wMiAwOTowNDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06IGJ1aWxkIGRhdGFwcm90b2NvbCB0ZXN0IGJ5IGxpbmtpbmcgdG8gdGhlIGxpYiwgaW5zdGVhZCBvZiBjb21waWxpbmcgdGhlIHNvdXJjZSwgc28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICBidWlsZCBkYXRhcHJvdG9jb2wgdGVzdCBieSBsaW5raW5nIHRvIHRoZSBsaWIsIGluc3RlYWQgb2YKCSAgY29tcGlsaW5nIHRoZSBzb3VyY2UsIHNvIHdlIGdldCBjb3ZlcmFnZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGV2ZW50X2Z1bmMpLCAoc2V0dXBfZmlsZXNyYyksCgkgIChjbGVhbnVwX2ZpbGVzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmlsZXNyY19zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGZpbGVzcmMKCjIwMDYtMDctMDIgMDg6MjY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDIgMDA6NDA6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDIgMDA6Mzk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDAwOjM4OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDAwOjMzOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBnc3QtaW5zcGVjdCBldmVyeSBlbGVtZW50OyB0aGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBhbHNvIGdldCBjb3ZlcmFnZSBvbiBlbGVtZW50J3MgZ2V0L3NldCBmdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ3N0LWluc3BlY3QgZXZlcnkgZWxlbWVudDsgdGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgYWxzbyBnZXQKCSAgY292ZXJhZ2Ugb24gZWxlbWVudCdzIGdldC9zZXQgZnVuY3Rpb25zCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAxIDIzOjI2OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogc2V0IENGTEFHUyBhbmQgZnJpZW5kcyB0byAtTzAgaWYgZ2NvdiBpcyBiZWluZyB1c2VkIGFkZCBHQ09WIExJQlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIHRvIC1PMCBpZiBnY292IGlzIGJlaW5nIHVzZWQKCSAgYWRkIEdDT1YgTElCUwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGFkZCBtYWtlZmlsZSBydWxlcyB0byBnZW5lcmF0ZSBnY292IGRhdGEgYW5kIGNsZWFuIHVwCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhIGNvdmVyYWdlIHRhcmdldCB0aGF0IGdlbmVyYXRlcyBhbiBodG1sIG92ZXJ2aWV3CgkgIG9mIGNvdmVyYWdlIGRhdGEKCjIwMDYtMDctMDEgMjM6MTk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZml4IGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzIGJ1aWxkCgoyMDA2LTA3LTAxIDIwOjU2OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogdXNlIHRoZSBuZXcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGdzdF9zaW5rc19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2Vfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKGxpYnNhYmlfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKHN0cmVzc19zdWl0ZSk6CgkgIHVzZSB0aGUgbmV3IG1hY3JvCgoyMDA2LTA3LTAxIDIwOjU0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IGNyZWF0ZSBhIG1hY3JvIGFuZCBmdW5jdGlvbiBzbyB0aGF0IHRoZSBzaW1wbGUgdW5pdCB0ZXN0IGNhc2UgY2FuIGJlIGp1c3Qgb25lIG1hY3JvIHRvIGNyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3J1bl9zdWl0ZSk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY3JlYXRlIGEgbWFjcm8gYW5kIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIHNpbXBsZSB1bml0IHRlc3QKCSAgY2FzZSBjYW4gYmUganVzdCBvbmUgbWFjcm8gdG8gY3JlYXRlIG1haW4oKQoKMjAwNi0wNi0zMCAxMzoxNzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEZpeCBkZXNlcmlhbGlzYXRpb24gZnJvbSBYTUwuIFNldCBwYXJlbnQgbWFudWFsbHkgaW5zdGVhZCBvZiB1c2luZyBnc3RfYmluX2FkZCgpLCBzaW5jZSBnc3RfYmluX2FkZCgpIHdpbGwgdW5saS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9tYWtlX2VsZW1lbnQpOgoJICBGaXggZGVzZXJpYWxpc2F0aW9uIGZyb20gWE1MLiBTZXQgcGFyZW50IG1hbnVhbGx5CgkgIGluc3RlYWQgb2YgdXNpbmcgZ3N0X2Jpbl9hZGQoKSwgc2luY2UgZ3N0X2Jpbl9hZGQoKQoJICB3aWxsIHVubGluayBhbGwgcGFkcyBvZiB0aGUgZWxlbWVudCBiZWluZyBhZGRlZC4KCSAgRml4ZXMgIzM0MTY2Ny4KCjIwMDYtMDYtMjggMTU6MTk6MDggKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggbWlzc2luZyBnX3N0cmR1cCgpIGFuZCBkb3VibGUgZnJlZSB3aGVuIHVzaW5nIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9nc3QuYzogKHByZXBhcmVfZm9yX2xvYWRfcGx1Z2luX2Z1bmMpLCAoc3BsaXRfYW5kX2l0ZXJhdGUpOgoJICBGaXggbWlzc2luZyBnX3N0cmR1cCgpIGFuZCBkb3VibGUgZnJlZSB3aGVuIHVzaW5nIHRoZQoJICAtLWdzdC1wbHVnaW4tbG9hZCBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQ2MDk3KS4KCjIwMDYtMDYtMjMgMTM6MTY6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBQcm9tb3RlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaW4gZXhhbXBsZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBQcm9tb3RlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaW4gZXhhbXBsZSBpbiBkb2NzLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgVXNlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaGVyZSB0b28gKCMzNDI1MDMpLgoKMjAwNi0wNi0yMyAxMDozMDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggYnVmZmVyIHByb2JlIGV4YW1wbGUgY29tcGlsYXRpb24gaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCBidWZmZXIgcHJvYmUgZXhhbXBsZSBjb21waWxhdGlvbiBpbgoJICBBRE0gKCMzNDU3MDgpLgoKMjAwNi0wNi0yMiAxNzowOToxMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdlIG5lZWQgdG8gZGVhY3RpdmF0ZSBzcmMgcGFkcyBmaXJzdCBhbmQgdGhlbiBzaW5rIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgV2UgbmVlZCB0byBkZWFjdGl2YXRlIHNyYyBwYWRzIGZpcnN0IGFuZCB0aGVuIHNpbmsgcGFkcy4KCSAgVGhlIHJlYXNvbiBpcyB0aGUgc3JjIHBhZHMgbWlnaHQgYmUgYmxvY2tpbmcgd2hpbGUgaG9sZGluZyB0aGUgc3RyZWFtaW5nCgkgIGxvY2ssIHNvIHdlIG5lZWQgdG8gZGVhY3RpdmF0ZSB0aGVtIGZpcnN0IHNvIHRoYXQgZGVhY3RpdmF0aW5nIHRoZSBzaW5rCgkgIHBhZHMgZG9lc24ndCBibG9jayAoc2luY2UgaXQgd2lsbCByZXF1aXJlIHRoZSBzdHJlYW1pbmcgbG9jaykuCgoyMDA2LTA2LTIyIDE1OjEyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZvcmdvdCB0byByZW1vdmUgdHdvIHVubmVlZGVkIHVucmVmcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRm9yZ290IHRvIHJlbW92ZSB0d28gdW5uZWVkZWQgdW5yZWZzLgoJICBTaW1wbGlmeSBhIGNoZWNrIF9pc19lcXVhbCBhbGxyZWFkeSBjaGVja3MgdGhlIG9idmlvdXMgY2FzZS4KCjIwMDYtMDYtMjIgMTQ6MDk6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogU29tZSBkb2NzIGFib3V0IHdoYXQgcGFkX2Jsb2NrIHNob3VsZCBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIFNvbWUgZG9jcyBhYm91dCB3aGF0IHBhZF9ibG9jayBzaG91bGQgZG8uCgoyMDA2LTA2LTIyIDEzOjUxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGNyYXNoZXIgd2hlbiBwYXNzZWQgTlVMTC4gRG9jIGNsYXJpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZXBsYWNlKToKCSAgRml4IGNyYXNoZXIgd2hlbiBwYXNzZWQgTlVMTC4gRG9jIGNsYXJpZmljYXRpb24uCgkgIE9wdGltaXplIGZvciB0aGUgdHJpdmlhbCBjYXNlLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRG9uJ3QgdXNlIHNpbGx5IGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcywgR1NUX1BBRF9DQVBTCgkgIGlzIHdoYXQgd2UgbmVlZCBhbmQgaXQgYXZvaWRzIGEgd2hvbGUgbG90IG9mIHJlZHVuZGFudAoJICByZWZjb3VudCBvcGVyYXRpb25zLgoKMjAwNi0wNi0yMiAwODo1Mzo0MCArMDAwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBAbHlzYXRvci5saXUuc2U+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4ICdFbWJlZGRpbmcgc3RhdGljIGVsZW1lbnRzJyBzZWN0aW9uIHRvIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBoaWxpcCBKw6RnZW5zdGVkdCAgPHBoaWxpcCBhdCBseXNhdG9yIGxpdSBzZT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4ICdFbWJlZGRpbmcgc3RhdGljIGVsZW1lbnRzJyBzZWN0aW9uIHRvIHVzZQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgKCMzNDU2MDcpLgoKMjAwNi0wNi0yMSAxMToxMjoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IEF0dGVtcHQgdG8gJ2ZpeCcgc3B1cmlvdXNseSBmYWlsaW5nIHRlc3QgY2FzZTogaXQgc2VlbXMgbGlrZSB0aGUgdGltZW91dC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAodGVzdF9zdG9wX2Zyb21fYXBwKToKCSAgQXR0ZW1wdCB0byAnZml4JyBzcHVyaW91c2x5IGZhaWxpbmcgdGVzdCBjYXNlOiBpdCBzZWVtcyBsaWtlIHRoZQoJICB0aW1lb3V0IG9mIGhhbGYgYSBzZWNvbmQgaXMgc2ltcGx5IHRvbyBzbWFsbCB3aGVuIHRoZSBzeXN0ZW0gaXMgdW5kZXIKCSAgbG9hZCBvdGhlcndpc2UsIGFuZCB0aGUgdGltZW91dCBkb2Vzbid0IHJlYWxseSBzZWVtIHRvIHNlcnZlIGFueQoJICBwYXJ0aWN1bGFyIHB1cnBvc2UgaGVyZS4gR2l2ZSB0aGUgcGlwZWxpbmUgYSBmZXcgc2Vjb25kcyB0byBwcmVyb2xsCgkgIGZpcnN0LCBhbmQgdGhlbiBnaXZlIGl0IGFub3RoZXIgaGFsZiBhIHNlY29uZCB0byBnbyBmcm9tIFBBVVNFRCB0bwoJICBQTEFZSU5HIGFuZCBtYXJzaGFsIHRoZSBtZXNzYWdlIGludG8gdGhlIG1haW4gdGhyZWFkLgoKMjAwNi0wNi0yMSAxMDoxNDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06IERvbid0IG9ubHkgdXNlIHVudmVyc2lvbmVkIHRvb2xzLCB0cnkgdmVyc2lvbmVkIHRvb2xzIGFzIHdlbGwgKCMzNDUwODYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJICBEb24ndCBvbmx5IHVzZSB1bnZlcnNpb25lZCB0b29scywgdHJ5IHZlcnNpb25lZCB0b29scyBhcyB3ZWxsCgkgICgjMzQ1MDg2KS4KCjIwMDYtMDYtMjEgMTA6MDE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBzb21lIHR5cG9zLCBtYWtlIGRvY3MgbW9yZSBleHBsaWNpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgRml4IHNvbWUgdHlwb3MsIG1ha2UgZG9jcyBtb3JlIGV4cGxpY2l0LgoKMjAwNi0wNi0yMCAwODo0MDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBzb21lIG1vcmUgZ2hvc3RwYWQgdGVzdHMsIG1haW5seSBibG9ja2luZyBhbmQgcHJvYmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKGJsb2NrX2NhbGxiYWNrKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgZ2hvc3RwYWQgdGVzdHMsIG1haW5seSBibG9ja2luZwoJICBhbmQgcHJvYmVzLgoKMjAwNi0wNi0xOSAwODo1Njo0OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGxhdGVzdCB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsYXRlc3QgdXBkYXRlcwoKMjAwNi0wNi0xNiAxNjoyODozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuKjogQ2hlY2sgaWYgd2UgY2FuIHNlZWsgaW4gdGhlIGZpbGUgaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBhbHdheXMgY2FuLiBQb3N0IGFuIGVycm9yIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZXZlbnQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQ2hlY2sgaWYgd2UgY2FuIHNlZWsgaW4gdGhlIGZpbGUgaW5zdGVhZCBvZiBhc3N1bWluZwoJICB3ZSBhbHdheXMgY2FuLiBQb3N0IGFuIGVycm9yIHdoZW4gd2UgYXJlIGFza2VkIHRvIHNlZWsgaW4gYQoJICBub24tc2Vla2FibGUgZmlsZSAobGlrZSBhIGZpZm8pLiBGaXhlcyAjMzQzMzEyLgoJICBTb21lIGNsZWFudXBzLgoKMjAwNi0wNi0xNiAxNDozMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogVW4tZ2FyYmxlIChmb3VyY2MpIGJpdCBpbiBmaWx0ZXJlZCBjYXBzIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgVW4tZ2FyYmxlIChmb3VyY2MpIGJpdCBpbiBmaWx0ZXJlZCBjYXBzIHNlY3Rpb24uCgoyMDA2LTA2LTE2IDA5OjM5OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBEb24ndCBsZWFrIGJ1cyByZWZlcmVuY2UgaW4gc2FtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgRG9uJ3QgbGVhayBidXMgcmVmZXJlbmNlIGluIHNhbXBsZSBjb2RlLgoKMjAwNi0wNi0xNiAwODozMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGF1dG9nZW4uc2g6IEFkZCBkZWZhdWx0IGZvciBuZXcgLS1lbmFibGUtcGx1Z2luLWRvY3Mgc3dpdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBBZGQgZGVmYXVsdCBmb3IgbmV3IC0tZW5hYmxlLXBsdWdpbi1kb2NzIHN3aXRjaC4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBuZXcgR1NUX1BMVUdJTl9ET0NTIG1hY3JvIHRvIGNoZWNrIGZvciBweXhtbCBldGMuCgkgIEZpeGVzICMzNDQwMzkuCgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgVXNlIG5ldyBFTkFCTEVfUExVR0lOX0RPQ1MgY29uZGl0aW9uYWwuCgoyMDA2LTA2LTE0IDEwOjM0OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIGl0IGNsZWFyIHdpdGggYSBGSVhNRSBhbmQgYSByZWFsIGRlZmluZSB3aGF0IHRoZSAjaWYgMCBwcmV2aW91c2x5IGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgTWFrZSBpdCBjbGVhciB3aXRoIGEgRklYTUUgYW5kIGEgcmVhbCBkZWZpbmUgd2hhdCB0aGUgI2lmIDAKCSAgcHJldmlvdXNseSBkaXNhYmxlZC4KCjIwMDYtMDYtMTQgMTA6MzE6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogRG9uJ3QgcmFuZG9tbHkgYW5kIHNpbGVudGx5IHJlc2V0IGEgc2VnbWVudCB3aGVuIHRoZSBmb3JtYXQgY2hhbmdlcyBhcyB0aGlzIGlzIGEgYnVnIHNvbWV3aGVyZSB1cHN0cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIERvbid0IHJhbmRvbWx5IGFuZCBzaWxlbnRseSByZXNldCBhIHNlZ21lbnQgd2hlbiB0aGUgZm9ybWF0CgkgIGNoYW5nZXMgYXMgdGhpcyBpcyBhIGJ1ZyBzb21ld2hlcmUgdXBzdHJlYW0uIEZpeGVzICMzMzAzNzkuCgoyMDA2LTA2LTE0IDA4OjI2OjUzICswMDAwICBXb3V0ZXIgUGFlc2VuIDx3b3V0ZXJAa2FuZ2Fyb290Lm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggY29udHJvbGxpbmcgb2YgZmxvYXQgcHJvcGVydGllcyAoIzM0NDg0OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIFBhZXNlbiAgPHdvdXRlciBhdCBrYW5nYXJvb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgRml4IGNvbnRyb2xsaW5nIG9mIGZsb2F0IHByb3BlcnRpZXMgKCMzNDQ4NDkpLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9jbGFzc19pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgV2hpbGUgd2UncmUgYXQgaXQsIGFkZCBzb21lIGZsb2F0IHN0dWZmIHRvIHVuaXQgdGVzdC4KCjIwMDYtMDYtMTMgMTk6MjQ6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIGdkcCBpbWFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL2ltYWdlcy9nZHAtaGVhZGVyLnN2ZzoKCSAgYWRkIGEgZ2RwIGltYWdlCgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nZHAtaGVhZGVyLnBuZzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGFkZCBpdCB0byB0aGUgQVBJIGRvY3MKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgZml4IHR5cG8KCjIwMDYtMDYtMTMgMTY6NDE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IElmIHRoZSBmb3JrKCknZWQgY2hpbGQgcHJvY2VzcyBjYW4ndCB3cml0ZSB0aGUgdXBkYXRlZCByZWdpc3RyeSBjYWNoZSBmaWxlIHRvIGRpc2sgZm9yIHNvbWUgcmVhc29uLCBtYWtlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwgKGluaXRfcG9zdCk6CgkgIElmIHRoZSBmb3JrKCknZWQgY2hpbGQgcHJvY2VzcyBjYW4ndCB3cml0ZSB0aGUgdXBkYXRlZCByZWdpc3RyeSBjYWNoZQoJICBmaWxlIHRvIGRpc2sgZm9yIHNvbWUgcmVhc29uLCBtYWtlIGl0IGV4aXQgd2l0aCBhIGZhaWx1cmUgZXhpdCBjb2RlLAoJICBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIHRoZW4gcmUtc2NhbiB0aGUgcGx1Z2lucyBpdHNlbGYgYW5kIHVwZGF0ZSB0aGUKCSAgcmVnaXN0cnkgc3RydWN0dXJlcyBpbiBtZW1vcnkgYW5kIHdvcmsgd2l0aCB0aGF0IChyYXRoZXIgdGhhbiBmYWlsaW5nCgkgIHdoZW4gY3JlYXRpbmcgZWxlbWVudHMgYmVjYXVzZSBzZWVtaW5nbHkgbm8gcGx1Z2lucyBhcmUgYXZhaWxhYmxlKS4KCSAgUmVmYWN0b3IgcmVnaXN0cnkgc2Nhbm5pbmcgY29kZSBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciB0aGlzIGFuZAoJICBhbHNvIHNlcGFyYXRlIGZvcmsoKSBhbmQgbm9uLWZvcmsoKSBjb2RlIHBhdGhzLiBGaXhlcyAjMzQ0NzQ4LgoKMjAwNi0wNi0xMyAxNjoyNDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggd3JvbmcgUGx1Z2luRGVzYy4gRml4ZXMgIzM0NDc1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCB3cm9uZyBQbHVnaW5EZXNjLiBGaXhlcyAjMzQ0NzU1LgoKMjAwNi0wNi0xMyAxMzozMDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBGaXggc2lsbHkgYnVnIHRoYXQgcHJldmVudGVkIHVzIGZyb20gY3JlYXRpbmcgfi8uZ3N0cmVhbWVyLTAuMTAgYW5kIHdyaXRpbmcgdGhlIHJlZ2lzdHJ5IGluIG9uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBGaXggc2lsbHkgYnVnIHRoYXQgcHJldmVudGVkIHVzIGZyb20gY3JlYXRpbmcKCSAgfi8uZ3N0cmVhbWVyLTAuMTAgYW5kIHdyaXRpbmcgdGhlIHJlZ2lzdHJ5IGluIG9uZQoJICBnbyAodGhlIGZpcnN0IGNhbGwgdG8gZ19ta3N0ZW1wKCkgd291bGQgb3ZlcndyaXRlIHRoZQoJICBwbGFjZWhvbGRlciBpbiB0aGUgdGVtcGxhdGUgc3RyaW5nLCBzbyB0aGUgc2Vjb25kIGNhbGwKCSAgdG8gZ19ta3N0ZW1wKCkgYWZ0ZXIgY3JlYXRpbmcgdGhlIG1pc3NpbmcgZGlyZWN0b3J5CgkgIHdvdWxkIHRoZW4gZXJyb3Igb3V0IHdpdGggJ2ludmFsaWQgYXJndW1lbnQnKS4KCjIwMDYtMDYtMTMgMTE6MTc6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IEZyZWUgc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBGcmVlIHN0cmluZy4KCjIwMDYtMDYtMTMgMDg6MjA6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIEdMaWIgMi42IGNvbXBhdGliaWxpdHkgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIHJlbW92ZSBHTGliIDIuNiBjb21wYXRpYmlsaXR5IGNvZGUKCjIwMDYtMDYtMTIgMTY6NTA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCBidWlsZCB3aXRoICdtYWtlIC1qIE4nIGV2ZW4gbW9yZSAoIzM0MDAxNikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkIHdpdGggJ21ha2UgLWogTicgZXZlbiBtb3JlICgjMzQwMDE2KS4KCjIwMDYtMDYtMTIgMDk6Mzc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3MuCgoyMDA2LTA2LTEyIDA5OjI5OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogVXNlIEdfVU5MSUtFTFkgdG8gaGVscCB0aGUgY29tcGlsZXIgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgVXNlIEdfVU5MSUtFTFkgdG8gaGVscCB0aGUgY29tcGlsZXIgYSBiaXQuCgoyMDA2LTA2LTEyIDA5OjI4OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0Bzb25pY3B1bHNlLmRlPgoKCSAgZ3N0LzogY29uc3RpZnkgcXVhcmsgcmVnaXN0cmF0aW9uIHN0cmluZ3MuIEZpeGVzICMzNDQxMTUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pYyBhdCBzb25pY3B1bHNlIGRvdCBkZT4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIGNvbnN0aWZ5IHF1YXJrIHJlZ2lzdHJhdGlvbiBzdHJpbmdzLiBGaXhlcyAjMzQ0MTE1CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcgaXMgX3BhZF9wdXNoKCkgYnkgaW50ZXJuYWxseQoJICBjYWxsaW5nIGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKCkuCgoyMDA2LTA2LTEyIDA5OjIzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBJbml0IF90eXBlIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKF9nc3RfYnVmZmVyX2NvcHkpLCAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksCgkgIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksIChnc3RfYnVmZmVyX3NwYW4pOgoJICBJbml0IF90eXBlIGZvciBjb25zaXN0ZW5jeS4KCSAgVXNlIF9GTEFHUyBtYWNybyB0byBhdm9pZCB0eXBlIGNoZWNrLgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNrcyBpbiBzdWJidWZlciBjb2RlLgoKMjAwNi0wNi0xMiAwOToxNzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBfQ0FTVCBtYWNyb3MgdG8gYXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlYnVnX2hlbHApOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3BsdWdpbl9maWx0ZXIpLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZlYXR1cmVfZmlsdGVyKSwgKGdzdF9yZWdpc3RyeV9maW5kX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfZmluZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9nZXRfcGx1Z2luX2xpc3QpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCksIChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfdW5yZWYpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpLCAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2ZyZWUpLAoJICAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvcHkpOgoJICBVc2UgX0NBU1QgbWFjcm9zIHRvIGF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIEFkZGVkIHNvbWUgbW9yZSBHX1VOTElLRUxZLgoKMjAwNi0wNi0xMiAwOToxMTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBBUEk6IEdTVF9CVUZGRVJfSVNfRElTQ09OVAoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIEF2b2lkIHR5cGUgY2hlY2sgaW4gZmxhZyBhY2Nlc3Nvci4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgQWRkIF9DQVNUIG1hY3Jvcy4KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX0NBU1QKCSAgQVBJOiBHU1RfUExVR0lOX0NBU1QKCSAgQVBJOiBHU1RfUExVR0lOX0ZFQVRVUkVfQ0FTVAoKMjAwNi0wNi0xMiAwOTowNjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZ2V0X3R5cGUpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZik6CgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBBdm9pZCB0eXBlIGNoZWNrIGluIF9yZWYvX3VucmVmIHNpbmNlIHRoYXQgaXMgYWxzbwoJICBkb25lIGluIGdsaWIuCgoyMDA2LTA2LTEyIDA4OjU1OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoZ3N0X2dfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKToKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgoyMDA2LTA2LTEyIDA4OjUxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJvcGVybHkgcHJpbnQgZW51bSB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9zaWduYWxfaW5mbyk6CgkgIFByb3Blcmx5IHByaW50IGVudW0gdmFsdWVzLgoKMjAwNi0wNi0xMiAwODo0NzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmZvLio6IEFkZCBzb21lIEdfW1VOXUxJS0VMWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19zZXRfYWN0aXZlKSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKSwgKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBzb21lIEdfW1VOXUxJS0VMWS4KCSAgTWFpbnRhaW4gX19nc3RfZGVidWdfbWluIHRvIGF2b2lkIGZvcm1hdHRpbmcgdGhlIGFyZ3VtZW50cyBvZgoJICBkZWJ1ZyBtZXNzYWdlcyB0aGF0IHdpbGwgYmUgZHJvcHBlZCBhbnl3YXkgdG8gYXZvaWQgYSBsb3Qgb2YKCSAgb3ZlcmhlYWQgZnJvbSB0aGUgZGVidWdnaW5nIHN5c3RlbS4KCjIwMDYtMDYtMTEgMjA6Mzc6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvL1BPVEZJTEVTLio6IGFkZCBtaXNzaW5nIGZpbGVzIGNvbnRhaW5pbmcgdHJhbnNsYXRhYmxlIHN0cmluZ3MsIHRlbGwgaW50bHRvb2wgYWJvdXQgb25lIGV4Y2VwdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgKiBwby9QT1RGSUxFUy5za2lwOgoJICBhZGQgbWlzc2luZyBmaWxlcyBjb250YWluaW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzLCB0ZWxsIGludGx0b29sIGFib3V0CgkgIG9uZSBleGNlcHRpb24KCjIwMDYtMDYtMTEgMTc6Mjg6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZTogYWRkIHRlc3QtYmluYXJ5IHRvIGlnbm9yZSBsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgYWRkIHRlc3QtYmluYXJ5IHRvIGlnbm9yZSBsaXN0CgoyMDA2LTA2LTExIDE3OjAzOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiByZW9yZGVyIChwdXQgZHAgaW50byBhIGNoYXB0ZXIpIGFuZCBpbmRlbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgcmVvcmRlciAocHV0IGRwIGludG8gYSBjaGFwdGVyKSBhbmQgaW5kZW50CgoyMDA2LTA2LTExIDExOjU2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJICBhZGQgbm90ZXMgb24gb3VyIGF1dG90b29scyBzZXR1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGVzIG9uIG91ciBhdXRvdG9vbHMgc2V0dXAKCjIwMDYtMDYtMTAgMTc6MzI6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuOCA9PT0KCjIwMDYtMDYtMTAgMTc6MDY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjgKCjIwMDYtMDYtMTAgMTE6NTE6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBtb3ZlIHBpZCBkZWNsYXJhdGlvbiB0byBkZWNsYXJhdGlvbiBibG9jawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBtb3ZlIHBpZCBkZWNsYXJhdGlvbiB0byBkZWNsYXJhdGlvbiBibG9jawoKMjAwNi0wNi0xMCAxMTo0Nzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIG91ciBmb3JrZWQgY2hpbGQ7IHRoaXMgZW5zdXJlcyB0aGF0IG5vbmUgb2YgdGhlIHJlZ2lzdGVyZWQgZXhpdCBoYW5kbGVycyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gb3VyIGZvcmtlZCBjaGlsZDsgdGhpcyBlbnN1cmVzCgkgIHRoYXQgbm9uZSBvZiB0aGUgcmVnaXN0ZXJlZCBleGl0IGhhbmRsZXJzIGZyb20gd2hhdGV2ZXIgaXMgdXNpbmcKCSAgR1N0cmVhbWVyIGdldCBleGVjdXRlZC4gIFRoaXMgZml4ZXMgZ25vbWUtbWl4ZXItYXBwbGV0IGZhaWxpbmcKCSAgdG8gbG9hZCwgYmVjYXVzZSBPUkJpdCB3b3VsZCBzaHV0IGRvd24uCgkgIFNwb3R0ZWQgYnk6IEVkd2FyZCBIZXJ2ZXkgIDxlZHdhcmRAZmx1ZW5kby5jb20+CgkgIEZpeCBzdWdnZXN0ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgRml4ZXMgIzM0NDQ3NAoKMjAwNi0wNi0wOSAxODo1MjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGJhY2sgdG8gVFJVTksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDYtMDkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIFRSVU5LCgo9PT0gcmVsZWFzZSAwLjEwLjcgPT09CgoyMDA2LTA2LTA5IDE4OjQ5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC43CgoyMDA2LTA2LTA3IDEwOjQ2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIDAuMTAuNi4yIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBvL2FmLnBvOgoJICAqIHBvL2F6LnBvOgoJICAqIHBvL2JnLnBvOgoJICAqIHBvL2NhLnBvOgoJICAqIHBvL2NzLnBvOgoJICAqIHBvL2RlLnBvOgoJICAqIHBvL2VuX0dCLnBvOgoJICAqIHBvL2ZyLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25iLnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3J1LnBvOgoJICAqIHBvL3NxLnBvOgoJICAqIHBvL3NyLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3RyLnBvOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICAqIHBvL3poX0NOLnBvOgoJICAqIHBvL3poX1RXLnBvOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC42LjIgcHJlcmVsZWFzZQoKMjAwNi0wNi0wNyAwODozODozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBsZWFrIHNwb3R0ZWQgYnkgY292ZXJpdHkgY2hlY2tlci4gRml4ZXMgIzM0MzgyNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9ndHlwZV9yZXNvbHZlcik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X3BsdWdpbl9pbmZvKToKCSAgRml4IGxlYWsgc3BvdHRlZCBieSBjb3Zlcml0eSBjaGVja2VyLiBGaXhlcyAjMzQzODI3CgkgIEZpeCBhbm90aGVyIG90aGVyIGxlYWsgZm91bmQgYnkgcGFvbG8gYm9yZWxsaS4KCjIwMDYtMDYtMDYgMTY6NTI6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBpZmRlZiBMT0FEU0FWRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWZkZWYgTE9BRFNBVkUKCjIwMDYtMDYtMDYgMTU6MTg6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJICByZW1vdmUgb2xkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgZG9jcwoKMjAwNi0wNi0wNiAxNDo1MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVybWluYXRlIGlmZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXJtaW5hdGUgaWZkZWYKCjIwMDYtMDYtMDYgMTQ6MzI6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Ynl0ZXN0cmVhbS5zZ21sOgoJICByZW1vdmUgdW51c2VkIHRtcGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB1bnVzZWQgdG1wbAoKMjAwNi0wNi0wNiAxNDoyOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBhZGQgbm90ZSB0byBkb2NzIGFib3V0IEdEUCB2ZXJzaW9uaW5nOyByZW1vdmUgdG1wbCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZSB0byBkb2NzIGFib3V0IEdEUCB2ZXJzaW9uaW5nOyByZW1vdmUgdG1wbCBmaWxlCgoyMDA2LTA2LTA2IDE0OjI0OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuKjogQVBJOiBhZGQgYSBHc3REUFBhY2tldGl6ZXIgb2JqZWN0LCBhbmQgY3JlYXRlL2ZyZWUgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfYW55KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzX2FueSksCgkgIChnc3RfZHBfdmVyc2lvbl9nZXRfdHlwZSksIChnc3RfZHBfaW5pdCksCgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfMV8wKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzXzFfMCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKSwgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8xXzApLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KSwgKGdzdF9kcF9wYWNrZXRpemVyX25ldyksCgkgIChnc3RfZHBfcGFja2V0aXplcl9mcmVlKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEFQSTogYWRkIGEgR3N0RFBQYWNrZXRpemVyIG9iamVjdCwgYW5kIGNyZWF0ZS9mcmVlIGZ1bmN0aW9ucwoJICBBUEk6IGFkZCBHc3REUFZlcnNpb24gZW51bQoJICBBZGQgMS4wIGV2ZW50IGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUgc3RyaW5nIHNlcmlhbGl6YXRpb24KCSAgU2VyaWFsaXplIG1vcmUgdXNlZnVsIGJ1ZmZlciBmbGFncwoJICBGaXhlcyAjMzQzOTg4CgoyMDA2LTA2LTA2IDE0OjIxOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICBhZGQgc3ltYm9sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3ltYm9sCgoyMDA2LTA2LTA2IDE0OjE2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd2lkdGggcmVzcGVjdGF0aW9uaXppbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdpZHRoIHJlc3BlY3RhdGlvbml6aW5nCgoyMDA2LTA2LTA2IDE0OjEwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogYWRkIHBwYzY0IHN0cnVjdHVyZSBzaXplcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgIGFkZCBwcGM2NCBzdHJ1Y3R1cmUgc2l6ZXMKCjIwMDYtMDYtMDYgMTM6NTk6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBnZW5lcmF0ZSBhbmQgYWRkIHN0cnVjdHVyZSBzaXplIGxpc3RzIGZvciB4ODZfNjQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGdlbmVyYXRlIGFuZCBhZGQgc3RydWN0dXJlIHNpemUgbGlzdHMgZm9yIHg4Nl82NAoKMjAwNi0wNi0wNiAxMzo1MzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjb3NtZXRpY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljcwoKMjAwNi0wNi0wNiAxMzo0ODoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBmYWN0b3Igb3V0IHRoZSBtZXRob2QgZnJvbSB0ZXN0cyB0aGF0IGNoZWNrcyBzaXplIG9mIHN0cnVjdHVyZXMsIGFuZCBhZGQgY29kZSB0byBnZW5lcmF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19hYmlfbGlzdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZmFjdG9yIG91dCB0aGUgbWV0aG9kIGZyb20gdGVzdHMgdGhhdCBjaGVja3Mgc2l6ZSBvZiBzdHJ1Y3R1cmVzLAoJICBhbmQgYWRkIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIGhlYWRlciBjb250YWluaW5nIHRoZXNlIHNpemVzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgdXNlIGl0CgoyMDA2LTA2LTA2IDEzOjExOjAzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBEb24ndCB1c2UgYysrLXN0eWxlIGNvbW1lbnRzLCBmaXhlcyAjMzQzOTI5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIERvbid0IHVzZSBjKystc3R5bGUgY29tbWVudHMsIGZpeGVzICMzNDM5MjkKCjIwMDYtMDYtMDYgMDk6NDc6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgd2hpdGVzcGFjZS93aWR0aCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZS93aWR0aCBmaXhlcwoKMjAwNi0wNi0wNiAwODo1MDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDYtMDYgMDg6NTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgcmVtb3ZlIGFuIGV4dHJhIHNwYWNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW4gZXh0cmEgc3BhY2UKCjIwMDYtMDYtMDUgMTM6MDU6MzcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IHBsdWdpbl9wYXRocyBpcyBub3QgdXNlZCBpZiB3ZSBidWlsZCB3aXRob3V0IHJlZ2lzdHJ5IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgcGx1Z2luX3BhdGhzIGlzIG5vdCB1c2VkIGlmIHdlIGJ1aWxkIHdpdGhvdXQgcmVnaXN0cnkgc3VwcG9ydC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSk6CgkgIF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoKMjAwNi0wNi0wNSAxMjo1NTo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSk6CgkgIF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoKMjAwNi0wNi0wMiAxNjo0NjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IGZhY3RvciBvdXQgQ1JDIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICBmYWN0b3Igb3V0IENSQyBjb2RlCgoyMDA2LTA2LTAyIDE2OjQ1OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IG1ha2Ugc3VyZSB3ZSB1bnNldCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCk6CgkgIG1ha2Ugc3VyZSB3ZSB1bnNldCBjYXBzCgoyMDA2LTA2LTAyIDE2OjQxOjAyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBZGQgYSBjb25kL211dGV4IHRvIHRoZSBjaGVjayBzdXBwb3J0IGxpYiwgc2lnbmFsIHRoaXMgd2hlbmV2ZXIgd2UgYWRkIHRvIHRoZSBidWZmZXJzIGxpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KSwKCSAgKGdzdF9jaGVja19jaGFpbl9mdW5jKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgYSBjb25kL211dGV4IHRvIHRoZSBjaGVjayBzdXBwb3J0IGxpYiwgc2lnbmFsIHRoaXMgd2hlbmV2ZXIgd2UKCSAgYWRkIHRvIHRoZSBidWZmZXJzIGxpc3QuIFRoaXMgd2lsbCBhbGxvdyB0ZXN0cyB0byBub3QgYnVzeS13YWl0IG9uCgkgIHRoZSBidWZmZXItbGlzdC4KCjIwMDYtMDYtMDIgMTA6NTg6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBmYWN0b3Igb3V0IHNvbWUgY29tbW9uIGhlYWRlciBpbml0IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICBmYWN0b3Igb3V0IHNvbWUgY29tbW9uIGhlYWRlciBpbml0IGNvZGUKCjIwMDYtMDYtMDIgMTA6MDg6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgQVBJOiBtYWtlIGdzdF9kcF9jcmMoKSBwdWJsaWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfY3JjKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEFQSTogbWFrZSBnc3RfZHBfY3JjKCkgcHVibGljCgoyMDA2LTA2LTAyIDA5OjEzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkZWJ1ZyBjaGFuZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGNoYW5nZQoKMjAwNi0wNi0wMSAxODozMDoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiBjb25kaXRpb25hbGx5IHJlZ2lzdGVyIGZpbGVpbmRleGVyIChmaXhlcyAjMzQzNTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIGNvbmRpdGlvbmFsbHkgcmVnaXN0ZXIgZmlsZWluZGV4ZXIgKGZpeGVzICMzNDM1OTgpCgoyMDA2LTA2LTAxIDE4OjIyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmg6IENhbid0IGNhc3QgaWZhY2VzIHRvIGEgY2xhc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBDYW4ndCBjYXN0IGlmYWNlcyB0byBhIGNsYXNzCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSAgRml4IG1vcmUgZ29iamVjdCBtYWNyb3M6IG9iajwtPmtsYXNzLCBHc3RYWFg8LT5Hc3RYWFhDbGFzcwoKMjAwNi0wNi0wMSAxMToxMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IG1ha2Ugc3VyZSB3ZSB6ZXJvIHRoZSB3aG9sZSBBQkktY29tcGF0aWJsZSBhcmVhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpOgoJICBtYWtlIHN1cmUgd2UgemVybyB0aGUgd2hvbGUgQUJJLWNvbXBhdGlibGUgYXJlYQoKMjAwNi0wNi0wMSAwOTowMjoyMyArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IE1ha2Ugc3VyZSB0aGUgRU9TIGZsYWcgaXMgY2xlYXJlZCBmcm9tIHBhZHMgYWZ0ZXIgYSBmbHVzaCBvciBzdG9wLiBGaXhlcyAjMzQzNTM4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICBNYWtlIHN1cmUgdGhlIEVPUyBmbGFnIGlzIGNsZWFyZWQgZnJvbSBwYWRzIGFmdGVyIGEgZmx1c2gKCSAgb3Igc3RvcC4gRml4ZXMgIzM0MzUzOC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgY29sbGVjdHBhZHMgcmV1c2FnZSBhZnRlciBFT1MuCgoyMDA2LTA1LTMwIDIwOjI1OjAzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IHNldCAjaW5jbHVkZSA8c3lzL3dhaXQuaD4gaW4gYSAjaWZkZWYgI2lmZGVmIEhBVkVfRk9SSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIHNldCAjaW5jbHVkZSA8c3lzL3dhaXQuaD4gaW4gYSAjaWZkZWYgI2lmZGVmIEhBVkVfRk9SSwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZXhwb3J0IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfcGFkX3NldF9hY2NlcHRjYXBzX2Z1bmN0aW9uLCBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldywKCSAgZ3N0X3ZhbHVlX2ZyYWN0aW9uX211bHRpcGx5CgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgYWRkIGEgbGluayB0byBpbnRsLmxpYgoKMjAwNi0wNS0zMCAxNTo1NToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29sbGVjdGlvbiB0aGF0IGNvdWxkIGNhdXNlIHRoZSBvdGhlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHBhZCBpcyByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3Rpb24KCSAgdGhhdCBjb3VsZCBjYXVzZSB0aGUgb3RoZXIgcGFkcyB0byBiZWNvbWUgY29sbGVjdGFibGUuCgoyMDA2LTA1LTMwIDE1OjUzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xhcmlmeSB0aGUgdXNlIG9mIF9yZWxlYXNlX3JlcXVlc3RfcGFkKCkgYW5kIF9nZXRfcmVxdWVzdF9wYWQoKSBhIGJpdCBiZXR0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIENsYXJpZnkgdGhlIHVzZSBvZiBfcmVsZWFzZV9yZXF1ZXN0X3BhZCgpIGFuZAoJICBfZ2V0X3JlcXVlc3RfcGFkKCkgYSBiaXQgYmV0dGVyLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIEZpeCBzb21lIGRvYyBhbmQgY29tbWVudCB0eXBvcy4KCjIwMDYtMDUtMzAgMTQ6NDM6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBkZWNsYXJlZCBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIGRlY2xhcmVkIHN5bWJvbHMKCjIwMDYtMDUtMzAgMTQ6NDE6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgcG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBwbyBmaWxlcwoKMjAwNi0wNS0zMCAxNDo0MDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnVpbGQKCjIwMDYtMDUtMzAgMTQ6MDM6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGRlZCBIQVZFX0ZPUksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIEhBVkVfRk9SSwoKMjAwNi0wNS0zMCAxMjowNDoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQWRkIGRlYnVnIHRoYXQgY2FuIGJlIGVuYWJsZWQgdXNpbmcgYSAjZGVmaW5lIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIGZvciBkdW1waW5nIHN0YXRzIGFib3V0IGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBBZGQgZGVidWcgdGhhdCBjYW4gYmUgZW5hYmxlZCB1c2luZyBhICNkZWZpbmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwKCSAgZm9yIGR1bXBpbmcgc3RhdHMgYWJvdXQgaG93IGxhdGUvZWFybHkgd2Ugd2VyZSB3aGVuIHdha2luZyB1cCBmcm9tCgkgIHdhaXRpbmcgb24gdGhlIGNsb2NrLgoKMjAwNi0wNS0zMCAxMTo0Mzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogV2hlbiByZWJ1aWxkaW5nIHRoZSBwYWQgbGlzdCwgZG9uJ3QgbGVhayB0aGUgcHJldmlvdXMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKToKCSAgV2hlbiByZWJ1aWxkaW5nIHRoZSBwYWQgbGlzdCwgZG9uJ3QgbGVhayB0aGUgcHJldmlvdXMgbGlzdC4KCjIwMDYtMDUtMzAgMTA6NTc6NDQgKzAwMDAgIEx1dHogTXVlbGxlciA8bHV0ekB0b3Bmcm9zZS5kZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQdWJsaXNoIHN1cHBvcnRlZCBxdWVyeSB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMdXR6IE11ZWxsZXIgPGx1dHogYXQgdG9wZnJvc2UgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9xdWVyeV90eXBlcyksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgIFB1Ymxpc2ggc3VwcG9ydGVkIHF1ZXJ5IHR5cGVzLgoJICBVcGRhdGUgbGFzdF9zdG9wIGZpZWxkIGluIGdldF9yYW5nZSBtb2RlIHNvIHRoZSBwb3NpdGlvbgoJICBxdWVyeSB3b3Jrcy4gRml4ZXMgIzM0MjMyMS4KCjIwMDYtMDUtMzAgMTA6MTI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX1BSRVZJRVdfSU1BR0UgKCMzNDMzNDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1BSRVZJRVdfSU1BR0UgKCMzNDMzNDEpLgoKMjAwNi0wNS0zMCAwOTo0MjowOSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVubG9jayBtdXRleCB3aGVuIHJlbW92aW5nIGFuIHVua25vd24gcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICBVbmxvY2sgbXV0ZXggd2hlbiByZW1vdmluZyBhbiB1bmtub3duIHBhZC4KCSAgRml4ZXMgIzM0MzMzNC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChjb2xsZWN0ZWRfY2IpLCAocHVzaF9idWZmZXIpLAoJICAocHVzaF9ldmVudCksIChzZXR1cCksICh0ZWFyZG93biksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBjb2xsZWNwYWRzIGNoZWNrLCBkaXNhYmxlZCBmb3Igbm93IGFzIGNoZWNrIGNyYXNoZXMgZm9yCgkgIHNvbWUgcmVhc29uLgoKMjAwNi0wNS0yOSAxNzoyMDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgbGVhayBwYWRzIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKToKCSAgRG9uJ3QgbGVhayBwYWRzIGxpc3RzLgoKMjAwNi0wNS0yOSAxNjowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZ191bmxvY2tlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgIEFkZGVkIGFwaSB0byBzZXQgdGhlIHBhZHMgdG8gZmx1c2hpbmcsIHVzZWZ1bGwgZm9yIHNlZWtpbmcKCSAgY29kZSBpbiBlbGVtZW50cyB1c2luZyBjb2xsZWN0cGFkcy4KCSAgQ2xlYXIgc2VnbWVudCB3aGVuIHJlY2VpdmluZyBhIGZsdXNoLgoKMjAwNi0wNS0yOSAxMTo1Mjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9uJ3Qgc2NhbiByZWdpc3RyeSBwYXRocyBwYXNzZWQgdmlhIC0tZ3N0LXBsdWdpbi0tcGF0aCBpbW1lZGlhdGVseSAod2lsbCBjcmFzaCwgYmVjYXVzZSBhYnNvbHV0ZWx5IG5vdGhpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChhZGRfcGF0aF9mdW5jKSwgKGluaXRfcG9zdCk6CgkgIERvbid0IHNjYW4gcmVnaXN0cnkgcGF0aHMgcGFzc2VkIHZpYSAtLWdzdC1wbHVnaW4tLXBhdGggaW1tZWRpYXRlbHkKCSAgKHdpbGwgY3Jhc2gsIGJlY2F1c2UgYWJzb2x1dGVseSBub3RoaW5nIGlzIHNldCB1cCBhbmQgbm8gdHlwZXMgYXJlCgkgIHJlZ2lzdGVyZWQgZXRjLik7IGRvIHRoaXMgbGF0ZXIgaW4gaW5pdF9wb3N0KCkuIEZpeGVzICMzNDMwNTcuCgoyMDA2LTA1LTI4IDA5OjA5OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogaWYgd2UgaGF2ZSBmb3JrLCBmb3JrIHdoaWxlIHJlYWRpbmcvcmVidWlsZGluZyB0aGUgcmVnaXN0cnkgc28gdGhlIHBhcmVudCBkb2Vzbid0IHRha2UgdGhlIGhpdCBvZiBoYXZpbmcgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBpZiB3ZSBoYXZlIGZvcmssIGZvcmsgd2hpbGUgcmVhZGluZy9yZWJ1aWxkaW5nIHRoZSByZWdpc3RyeQoJICBzbyB0aGUgcGFyZW50IGRvZXNuJ3QgdGFrZSB0aGUgaGl0IG9mIGhhdmluZyBhbGwgcGx1Z2lucyBsb2FkZWQKCSAgaW4gbWVtb3J5LiAgRml4ZXMgIzM0Mjc3Ny4KCSAgKiBjb25maWd1cmUuYWM6CgkgIENoZWNrIGlmIHdlIGhhdmUgZm9yaygpCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBubyBmb3JrKCkgb24gd2luMzIKCjIwMDYtMDUtMjYgMTM6NTI6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFkZCBhIHVzZS1tbWFwIHByb3BlcnR5IHRvIGVuYWJsZSBlYXNpZXIgdGVzdGluZyBvZiBhbGwgY29kZSBwYXRocy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2luaXQpLCAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIEFkZCBhIHVzZS1tbWFwIHByb3BlcnR5IHRvIGVuYWJsZSBlYXNpZXIgdGVzdGluZyBvZiBhbGwgY29kZSBwYXRocy4KCSAgQnVtcCByYW5rIHRvIFBSSU1BUlksIHNvIGZpbGVzcmMgaXMgdGhlIHByZWZlcnJlZCBmaWxlIHJlYWRlciBhbmQgdXNlZAoJICBpbiB0aGUgYWJzZW5jZSBvZiBnbm9tZXZmc3NyYy4gKENsb3NlcyAjMzQwNTAxKQoKMjAwNi0wNS0yNiAxMDozNTozNCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCBtaXNzaW5nIGluY2x1ZGUsIHJlbW92ZXMgd2FybmluZyBvZiBuZ2V0dGV4dCBub3QgYmVpbmcgZGVmaW5lZCBvbiBzb21lIGFyY2hlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMjYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBBZGQgbWlzc2luZyBpbmNsdWRlLCByZW1vdmVzIHdhcm5pbmcgb2YgbmdldHRleHQgbm90IGJlaW5nIGRlZmluZWQgb24KCSAgc29tZSBhcmNoZXMuCgoyMDA2LTA1LTI2IDA5OjE5OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBIYW5kbGUgTlVMTCBpbnB1dCBhbmQgb3V0cHV0IHBvaW50ZXJzIHNpbGVudGx5IGFzIGEgZmFpbGVkIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGdfd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgSGFuZGxlIE5VTEwgaW5wdXQgYW5kIG91dHB1dCBwb2ludGVycyBzaWxlbnRseSBhcyBhIGZhaWxlZCBjb252ZXJzaW9uLAoJICByYXRoZXIgdGhhbiBnX3dhcm5pbmdzLgoKMjAwNi0wNS0yNSAxNTo1MjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBJbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2luZy4gRml4ZXMgIzM0MjgyMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCk6CgkgIEluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzaW5nLiBGaXhlcyAjMzQyODIwLgoKMjAwNi0wNS0yNCAxNzoxMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogRml4IG9mZi1ieS1vbmUgYnVnIHRoYXQgd291bGQgb25seSBhbGxvdyBwZWVrcyBvZiBOLTEgYnl0ZXMgZnJvbSB0aGUgc3RhcnQgZXZlbiBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChidWZfaGVscGVyX2ZpbmRfcGVlayk6CgkgIEZpeCBvZmYtYnktb25lIGJ1ZyB0aGF0IHdvdWxkIG9ubHkgYWxsb3cgcGVla3Mgb2YgTi0xIGJ5dGVzCgkgIGZyb20gdGhlIHN0YXJ0IGV2ZW4gaWYgdGhlIGJ1ZmZlciB0byB0eXBlZmluZCBvbiBjb250YWlucwoJICBpbiBmYWN0IE4gYnl0ZXMgb2YgZGF0YSAobWFrZXMgdm9yYmlzIHR5cGVmaW5kaW5nIGZyb20gYQoJICB2b3JiaXMgaWRlbnRpZmljYXRpb24gaGVhZGVyIGJ1ZmZlciB3b3JrKS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3R5cGVmaW5kaGVscGVyX3N1aXRlKSwgKG1haW4pLCAoZm9vYmFyX3R5cGVmaW5kKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgQWRkIHZlcnkgYmFzaWMgdW5pdCB0ZXN0IGZvciBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkKCSAgdGhhdCBjaGVja3MgZm9yIHRoZSBwcm9ibGVtIGZpeGVkIGFib3ZlLgoKMjAwNi0wNS0yNCAwOTowMDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZG9jIGluZGVudCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBpbmRlbnQgZml4CgoyMDA2LTA1LTI0IDA5OjAwOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgbWFyayBtb3JlIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYXJrIG1vcmUgc3RyaW5ncyBmb3IgdHJhbnNsYXRpb24KCjIwMDYtMDUtMjMgMTQ6MjM6NDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTWFrZSBuZXcgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBtYWNybyB2aXNpYmxlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSnVsaWVuIE1vdXR0ZSAgPGp1bGllbiBhdCBtb3V0dGUgbmV0PgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1ha2UgbmV3IEdTVF9GTE9XX0lTX1NVQ0NFU1MgbWFjcm8gdmlzaWJsZSBpbiBkb2NzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkIG5ldyA6OnByZXJvbGwtaGFuZG9mZiBzaWduYWwgKCMzMzcxMDApLgoKMjAwNi0wNS0yMyAxMToxMzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQWRkZWQgX0NVU1RPTSBlcnJvciBhbmQgc3VjY2VzcyBHc3RGbG93UmV0dXJuIHRoYXQgY2FuIGJlIHVzZWQgYmUgZWxlbWVudHMgaW50ZXJuYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpLCAoZ3N0X2Zsb3dfdG9fcXVhcmspOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgX0NVU1RPTSBlcnJvciBhbmQgc3VjY2VzcyBHc3RGbG93UmV0dXJuIHRoYXQgY2FuIGJlCgkgIHVzZWQgYmUgZWxlbWVudHMgaW50ZXJuYWxseS4KCSAgQWRkZWQgbWFjcm8gdG8gY2hlY2sgZm9yIFNVQ0NFU1MgZmxvd3JldHVybnMuCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1IKCSAgQVBJOiBHU1RfRkxPV19JU19TVUNDRVNTCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBHc3RGbG93UmV0dXJuIHNhbml0eS4KCjIwMDYtMDUtMjMgMDk6NDA6MTQgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGNsZWFyL3Jlc2V0IHNlZ21lbnQgaW5mbyBpbiBGTFVTSF9TVE9QLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgY2xlYXIvcmVzZXQgc2VnbWVudCBpbmZvIGluIEZMVVNIX1NUT1AuCgkgIEZpeGVzICMzMzY5MjkuCgoyMDA2LTA1LTIyIDE2OjMwOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZsdXNoIHF1ZXVlZCBidWZmZXIgb24gX3N0b3AoKSwgZml4ZXMgcGxheWluZyBhZ2FpbiAoIzM0MjQ1NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfY29sbGVjdGVkKToKCSAgRmx1c2ggcXVldWVkIGJ1ZmZlciBvbiBfc3RvcCgpLCBmaXhlcyBwbGF5aW5nIGFnYWluICgjMzQyNDU0KQoKMjAwNi0wNS0yMiAxMzozNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IGFkZCBhIHRlc3QgZm9yIGEgY29tcGxldGUgc3RydWN0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBhIGNvbXBsZXRlIHN0cnVjdHVyZQoKMjAwNi0wNS0yMiAxMzozMTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBkZWJ1Z2dpbmcgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWdnaW5nIGNoYW5nZXMKCjIwMDYtMDUtMTkgMTU6MzU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS86IFNvbWUgbWlub3IgRkFRIHVwZGF0ZXMgdGhhdCB3b24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdCBvdXIgRkFRIGlzIGJhZGx5IHN0cnVjdHVyZWQsIGZ1bGwgb2YgaW5mb3JtYXRpb24gaGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgICogZG9jcy9mYXEvZmFxLnhtbDoKCSAgKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgU29tZSBtaW5vciBGQVEgdXBkYXRlcyB0aGF0IHdvbid0IGNoYW5nZSB0aGUgZmFjdCB0aGF0CgkgIG91ciBGQVEgaXMgYmFkbHkgc3RydWN0dXJlZCwgZnVsbCBvZiBpbmZvcm1hdGlvbiBoYXJkbHkKCSAgYW55b25lIG5ldyB0byBHU3RyZWFtZXIgbmVlZHMgdG8ga25vdyBhbmQgbGFja2luZyBsb3RzCgkgIG9mIGluZm9ybWF0aW9uIHBlb3BsZSBjb25zdGFudGx5IGFzayBmb3IuCgoyMDA2LTA1LTE5IDEzOjQ2OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogU2hvcnQtY2lyY3VpdCBnc3RfcGFkX3NldF9jYXBzIGlmIHNldHRpbmcgdGhlIGV4aXN0aW5nIGNhcHMgcG9pbnRlciBhZ2FpbiwgYW5kIGF2b2lkIHByaW50aW5nIGRlYnVnIGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKToKCSAgU2hvcnQtY2lyY3VpdCBnc3RfcGFkX3NldF9jYXBzIGlmIHNldHRpbmcgdGhlIGV4aXN0aW5nCgkgIGNhcHMgcG9pbnRlciBhZ2FpbiwgYW5kIGF2b2lkIHByaW50aW5nIGRlYnVnIGFuZAoJICByZWZmaW5nL3VucmVmZmluZyB0aGUgY2Fwcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGVyZSdzIGFjdHVhbGx5IG5vIG5lZWQgdG8gc2V0IHRoZSBjYXBzIGJlZm9yZSBwdXNoaW5nIC0KCSAgdGhlIGFjY2VwdGNhcHMgbWV0aG9kIHdpbGwgaGFuZGxlIGl0IGFueXdheS4KCjIwMDYtMDUtMTkgMTA6Mjk6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSgpICgjMzQyMjM4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUoKSAoIzM0MjIzOCkuCgoyMDA2LTA1LTE4IDE0OjI1OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHR5cGVmaW5kLio6IEFkZGVkIEdTVF9UWVBFX1RZUEVfRklORCBhbmQgZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSgpIHNvIGEgR1R5cGUgZ2V0cyByZWdpc3RlcmVkIGZvciBHc3RUeXBlRmluZCBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIEFkZGVkIEdTVF9UWVBFX1RZUEVfRklORCBhbmQgZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSgpIHNvIGEgR1R5cGUgZ2V0cwoJICByZWdpc3RlcmVkIGZvciBHc3RUeXBlRmluZCBwb2ludGVycy4gVGhpcyBhbGxvd3Mgd3JhcHBpbmcgdGhlIHN0cnVjdHVyZQoJICBpbiBiaW5kaW5ncyAoaS5lLiBnc3QtcHl0aG9uKS4KCjIwMDYtMDUtMTggMTQ6MDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IERvY3MgYWRkaXRpb25zIGFuZCBmaXhlcyAoc2VlICMzMzk5MTgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIERvY3MgYWRkaXRpb25zIGFuZCBmaXhlcyAoc2VlICMzMzk5MTgpLgoKMjAwNi0wNS0xOCAwOTowNzo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVGhlIGNhcHMgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSBjYW4gcHJvZHVjZSBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGNhcHMuIFVudGlsIHRoYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFRoZSBjYXBzIGludGVyc2VjdGlvbiBhbGdvcml0aG0gY2FuIHByb2R1Y2UgbXVsdGlwbGUgY29waWVzIG9mIHRoZQoJICBjYXBzLiBVbnRpbCB0aGF0IGlzIGZpeGVkLCB3ZSBuZWVkIHRvIHNpbXBsaWZ5IHRoZSByZXN1bHQgdG8gYmUKCSAgc3VyZSB3aGV0aGVyIHRoZSBhbGxvd2VkIGNhcHMgYXJlIGZpeGVkIG9yIG5vdC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLCAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgUHJveGllZCBidWZmZXIgYWxsb2Mgc2hvdWxkIG5vdCBzZXQgdGhlIGNhcHMgb24gdGhlIHNvdXJjZSBwYWQuCgkgIFdoZW4gcHVzaGluZyBidWZmZXJzLCB3ZSBhbHdheXMgYWNjZXB0IHRoZSBjYXBzIGNoYW5nZSB0aGF0IHRyaWdnZXJzLgoJICBUaGlzIHByZXZlbnRzIG5lZ290aWF0aW9uIGVycm9ycyBjYXVzZWQgYnkgY2FwcyBjaGFuZ2luZyBtaWQtc3RyZWFtCgkgIGFuZCB0aGVuIGJlaW5nIHJlZnVzZWQgb24gb3VyIHNvdXJjZSBwYWQgKGJlY2F1c2UgdXBzdHJlYW0gaXMgbm93CgkgIHJlZnVzaW5nIHRob3NlIGNhcHMpLgoKMjAwNi0wNS0xOCAwODo0ODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiBNdXN0IHBsdWcgYXVkaW9jb252ZXJ0IGFuZCBhdWRpb3Jlc2FtcGxlIGJldHdlZW4gZGVjb2RlciBhbmQgYXVkaW8gc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChtYWluKToKCSAgTXVzdCBwbHVnIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBsZSBiZXR3ZWVuIGRlY29kZXIKCSAgYW5kIGF1ZGlvIHNpbmsuCgoyMDA2LTA1LTE3IDE0OjE4OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgZml4ZWQgYnkgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyBmaXhlZCBieSBwcmV2aW91cyBjb21taXQKCjIwMDYtMDUtMTcgMTQ6MDE6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFsbG93IGVtcHR5IHN0cmluZ3MgZm9yIHNvbWUgb2YgdGhlIHBsdWdpbiBmaWVsZHMgc28gd2UgZG9uJ3QgZHJvcCB2YWxpZCBwbHVnaW4gZW50cmllcyB0aGF0IHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpLCAobG9hZF9wYWRfdGVtcGxhdGUpLAoJICAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKToKCSAgQWxsb3cgZW1wdHkgc3RyaW5ncyBmb3Igc29tZSBvZiB0aGUgcGx1Z2luIGZpZWxkcyBzbyB3ZSBkb24ndAoJICBkcm9wIHZhbGlkIHBsdWdpbiBlbnRyaWVzIHRoYXQgd2VyZSB3cml0dGVuIG91dCBjb3JyZWN0bHkuCgoyMDA2LTA1LTE3IDEzOjQwOjIwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogVXNlIGdfcmVtb3ZlIGFuZCBnX3JlbmFtZSBpbnN0ZWFkIG9mIHJlbW92ZSBhbmQgcmVuYW1lIHRoYXQgZG9uJ3QgaGFuZGxlIHV0ZjggY2hhcmFjdGVycy4gcmVuYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgVXNlIGdfcmVtb3ZlIGFuZCBnX3JlbmFtZSBpbnN0ZWFkIG9mIHJlbW92ZSBhbmQgcmVuYW1lIHRoYXQgZG9uJ3QKCSAgaGFuZGxlIHV0ZjggY2hhcmFjdGVycy4gcmVuYW1lIHdhcyBmYWlsaW5nIGZvciB1c2VycyB3aG8gaGFkIHNwZWNpZmljCgkgIGNoYXJhY3RlcnMgaW4gdGhlaXIgbmFtZSB0aGVuIHRoZSByZWdpc3RyeSB3YXMgYnVpbHQgYXQgZWFjaCBnc3RyZWFtZXIgaW5pdC4KCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVzZSBhIGRlYnVnIHZlcnNpb24gb2YgbGlieG1sMiAobGlieG1sMkQubGliLGxpYnhtbDJELmRsbCkgZm9yIERFQlVHIGJ1aWxkCgkgIG9mIGxpYmdzdHJlYW1lciBhbmQgY2xlYW4gdW51c2VkIGxpYnJhcmllcyBpbiBwcm9qZWN0IGxpbmtzIHNldHRpbmdzLgoKMjAwNi0wNS0xNyAwOToyNDozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVGhlIHF1ZXVlIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgcHVzaGluZyBhbiBFT1Mgd2hlbiByZWNlaXZpbmcgYSBmYXRhbCBmbG93IGVycm9yLiBJdCdzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGUgcXVldWUgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIGFuIEVPUyB3aGVuIHJlY2VpdmluZyBhIGZhdGFsCgkgIGZsb3cgZXJyb3IuIEl0J3MgdXAgdG8gdGhlIHJlYWwgZWxlbWVudCBkcml2aW5nIHRoZSBwaXBlbGluZSB0byBkbyB0aGF0LgoKMjAwNi0wNS0xNiAxNzoxNTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVGhlIHF1ZXVlIHdhcyBwb3N0aW5nIGEgbm9uLW5lZWRlZCBHU1RfTUVTU0FHRV9FUlJPUiB3aGVuIHB1c2hpbmcgYSBidWZmZXIgcmV0dXJuZWQgYSBmYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGUgcXVldWUgd2FzIHBvc3RpbmcgYSBub24tbmVlZGVkIEdTVF9NRVNTQUdFX0VSUk9SIHdoZW4gcHVzaGluZyBhCgkgIGJ1ZmZlciByZXR1cm5lZCBhIGZhdGFsIGVycm9yLiBJdCBzaG91bGQganVzdCBzZW5kIGFuIEVPUyBhbmQgc3RvcAoJICBpdCdzIHRhc2suCgkgIFVwc3RyZWFtIGVsZW1lbnRzIHdpbGwgdGhlbiBwcm9wZXJseSByZWNlaXZlIHRoZSBHU1RfRkxPV19VTkVYUEVDVEVECgkgIHdoZW4gcHVzaGluZyBidWZmZXJzIG9uIHRoZSBxdWV1ZSBhbmQgd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgZXZlbnQuCgoyMDA2LTA1LTE2IDE2OjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggdHlwb3MgYW5kIG1pbm9yIGVycm9ycyBpbiBzYW1wbGUgY29kZSAoIzM0MTg1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgIEZpeCB0eXBvcyBhbmQgbWlub3IgZXJyb3JzIGluIHNhbXBsZSBjb2RlICgjMzQxODU2KS4KCjIwMDYtMDUtMTYgMTM6MzE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpeCBpbmRleGVzIGluIGZvcm11bGFzIHRvIG1ha2UgbW9yZSBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXggaW5kZXhlcyBpbiBmb3JtdWxhcyB0byBtYWtlIG1vcmUgc2Vuc2UuCgoyMDA2LTA1LTE1IDExOjU0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCByZXBvcnQgUE9TSVRJT04gYmFzZWQgb24gY2xvY2sgdGltZSBpZiBzeW5jIGlzIGRpc2FibGVkIGluIGEgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCByZXBvcnQgUE9TSVRJT04gYmFzZWQgb24gY2xvY2sgdGltZSBpZiBzeW5jIGlzCgkgIGRpc2FibGVkIGluIGEgc2luay4KCjIwMDYtMDUtMTUgMDg6MTY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IEFkZCBjYXN0IHRvIG1ha2UgY29tcGlsZXIgaGFwcHkgLSByZWZjb3VudCB2YXJpYWJsZSB3YXMgYSBnaW50IGluIEdzdE9iamVjdCBidXQgaXMgYSBndWludCBpbiBHT2JqZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBBZGQgY2FzdCB0byBtYWtlIGNvbXBpbGVyIGhhcHB5IC0gcmVmY291bnQgdmFyaWFibGUgd2FzIGEgZ2ludAoJICBpbiBHc3RPYmplY3QgYnV0IGlzIGEgZ3VpbnQgaW4gR09iamVjdCBhbmQgZ19hdG9taWNfaW50X2dldCgpCgkgIHdhbnRzIGEgZ2ludCAqLgoKMjAwNi0wNS0xNCAyMzoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgZml4IHBhcmFsbGVsIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBwYXJhbGxlbCBtYWtlCgoyMDA2LTA1LTE0IDIxOjE4OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29uZmlnLmgKCjIwMDYtMDUtMTQgMjE6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA1LTE0IDIxOjE2OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSAgc29tZSBzdHJlYW1oZWFkZXIgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBzdHJlYW1oZWFkZXIgdXBkYXRlcwoKMjAwNi0wNS0xNCAxOToyNTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1pbm9yIGRvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWlub3IgZG9jcyBmaXhlcy4KCjIwMDYtMDUtMTQgMTY6MDM6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC42ID09PQoKMjAwNi0wNS0xNCAxNToyMDoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjYsICJUYWtlIHRoZSBjYW5ub2xpIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0xNCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC42LCAiVGFrZSB0aGUgY2Fubm9saSIKCjIwMDYtMDUtMTQgMTU6MTg6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA1LTEzIDE3OjUwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaW4gdGhlIGh5cG90aGV0aWNhbCBjYXNlIHRoYXQgc29tZSBicm9rZW4gcGx1Z2luIGNyZWF0ZXMgYSBHU1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbiB0aGUgaHlwb3RoZXRpY2FsCgkgIGNhc2UgdGhhdCBzb21lIGJyb2tlbiBwbHVnaW4gY3JlYXRlcyBhIEdTVF9UQUdfSU1BR0UKCSAgdGFnIGNvbnRhaW5pbmcgYSBOVUxMIGJ1ZmZlciAoIzM0MTY2NykuCgoyMDA2LTA1LTEyIDE2OjUwOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUgZm9yIGltYWdlIHRhZ3Mgd2hlbiB1c2luZyB0aGUgLXQgc3dpdGNoICgjMzQxNTU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgUHJpbnQgc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlIGZvciBpbWFnZSB0YWdzIHdoZW4KCSAgdXNpbmcgdGhlIC10IHN3aXRjaCAoIzM0MTU1NikuCgoyMDA2LTA1LTEyIDE0OjUzOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiB1cGRhdGVzIGZvciB3aW4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgdXBkYXRlcyBmb3Igd2luMzIKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRlZmluZSBHU1RfTUFKT1JNSU5PUiBzbyB3ZSBoYXZlIGl0IGF2YWlsYWJsZSBpbiB3aW4zMi9jb21tb24vY29uZmlnLmgKCSAgUG9zc2libHkgcmVtb3ZlIGl0IGZyb20gb3VyIE1ha2VmaWxlLmFtIGZpbGVzIGxhdGVyCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkZWQgR1NUX01BSk9STUlOT1IKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IChyZWdpc3Rlcl9nc3RfcmVzb3VyY2VfZXJyb3IpOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZWQKCjIwMDYtMDUtMTIgMTM6NDI6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJICBhZGRpbmcgbm90ZXMgYWJvdXQgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbmQgaWRlYXMgYWJvdXQgc3RyZWFtaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbm90ZXMgYWJvdXQgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbmQgaWRlYXMgYWJvdXQgc3RyZWFtaGVhZGVyCgoyMDA2LTA1LTEyIDEwOjUwOjQyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogVXBkYXRlIHdpbjMyIGZpbGVzIGxpc3RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBVcGRhdGUgd2luMzIgZmlsZXMgbGlzdGluZy4KCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBBZGQgR1NUX01BSk9STUlOT1IgZGVmaW5pdGlvbi4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA2LTA1LTEyIDA5OjI4OjIyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IElmIGFuIHNvIGZpbGUgaGFzIG5vIHBsdWdpbiBlbnRyeSBwb2ludCwgdW5sb2FkIHRoZSBtb2R1bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgSWYgYW4gc28gZmlsZSBoYXMgbm8gcGx1Z2luIGVudHJ5IHBvaW50LCB1bmxvYWQgdGhlIG1vZHVsZS4KCjIwMDYtMDUtMTEgMTk6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IERvbid0IGZvcmdldCB0byBzaWduYWwgdGhlIF9jaGFpbiBvciBfbG9vcCBmdW5jdGlvbiB3aGVuIHRoZSBxdWV1ZSBzaXplIG9yIHRocmVzaG9sZHMgY2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBEb24ndCBmb3JnZXQgdG8gc2lnbmFsIHRoZSBfY2hhaW4gb3IgX2xvb3AgZnVuY3Rpb24KCSAgd2hlbiB0aGUgcXVldWUgc2l6ZSBvciB0aHJlc2hvbGRzIGNoYW5nZSBzaW5jZSB0aGF0IG1pZ2h0CgkgIGNhdXNlIHRoZW0gdG8gbWFrZSBwcm9ncmVzIGFnYWluLgoKMjAwNi0wNS0xMSAxODoxMDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgR19PQkpFQ1RfQ0xBU1MgbWFjcm8gdXNhZ2UgYmF0Y2ggY2xlYW51cCwgZml4ZXMgIzMzNzc0NyBmb3IgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOiAoZ3N0X2V4YW1wbGVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzogKGdzdF90ZXN0X2NsYXNzX2luaXQpOgoJICBHX09CSkVDVF9DTEFTUyBtYWNybyB1c2FnZSBiYXRjaCBjbGVhbnVwLCBmaXhlcyAjMzM3NzQ3IGZvciBjb3JlCgoyMDA2LTA1LTExIDEwOjM1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBSZWdpc3RlciBzdWJidWZlciBhbG9uZyB3aXRoIHRoZSBidWZmZXIgdHlwZSBzbyB0aGF0IGl0IGRvZXMgbm90IGFjY2lkZW50YWxseSBnZXRzIHJlZ2lzdGVyZWQgZnJvbSBOLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOgoJICBSZWdpc3RlciBzdWJidWZlciBhbG9uZyB3aXRoIHRoZSBidWZmZXIgdHlwZSBzbyB0aGF0CgkgIGl0IGRvZXMgbm90IGFjY2lkZW50YWxseSBnZXRzIHJlZ2lzdGVyZWQgZnJvbSBOCgkgIGRpZmZlcmVudCBzdHJlYW1pbmcgdGhyZWFkcyBpbiBhIG5vbiB0aHJlYWRzYWZlIHdheS4KCjIwMDYtMDUtMTAgMTY6NDQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNYWtlIGd0ay1kb2MgZ2VuZXJhdGUgZG9jcyBmb3Igb3VyIGlubGluZWQgZ3N0X2J1ZmZlcl9yZWYoKSwgZ3N0X2V2ZW50X3JlZigpIGFuZCBnc3RfbWVzc2FnZV9yZWYoKSBmdW5jdGlvbnMgYWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1ha2UgZ3RrLWRvYyBnZW5lcmF0ZSBkb2NzIGZvciBvdXIgaW5saW5lZCBnc3RfYnVmZmVyX3JlZigpLAoJICBnc3RfZXZlbnRfcmVmKCkgYW5kIGdzdF9tZXNzYWdlX3JlZigpIGZ1bmN0aW9ucyBhZ2FpbgoJICAodWdseSBoYWNrLCBwbGVhc2UgZG8gZml4IGlmIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IGJlc2lkZXMKCSAgb3ZlcnJpZGVzLnR4dCwgd2hpY2ggZG9lc24ndCBzZWVtIHRvIHdvcmspLgoKMjAwNi0wNS0xMCAxNTo0OTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBhZGQgYW4gYXNzZXJ0IGZvciBzZXR0aW5nIHN0YXRlIHRvIGF2b2lkIGxvdHMgb2YgcmVwZXRpdGl2ZSBjb2RlIGluIHRoZSBmdXR1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMTAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGFuIGFzc2VydCBmb3Igc2V0dGluZyBzdGF0ZSB0byBhdm9pZCBsb3RzIG9mIHJlcGV0aXRpdmUgY29kZQoJICBpbiB0aGUgZnV0dXJlCgoyMDA2LTA1LTEwIDE1OjM4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBmaXggYSBsZWFrIGlmIG5vIGZsYWdzIGFyZSBzZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgZml4IGEgbGVhayBpZiBubyBmbGFncyBhcmUgc2V0CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCBsZWFrIGluIHRlc3RzCgoyMDA2LTA1LTEwIDE1OjAwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOiBFeHBhbmQgYSBiaXQgb24gY2FwcyBhbmQgZmlsdGVyZWQgbGlua3MgYW5kIHVwZGF0ZSBleGFtcGxlcyB0aGF0IHdlcmUgc3RpbGwgdXNpbmcgdGhlIG5vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgRXhwYW5kIGEgYml0IG9uIGNhcHMgYW5kIGZpbHRlcmVkIGxpbmtzIGFuZCB1cGRhdGUKCSAgZXhhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsIHVzaW5nIHRoZSBubyBsb25nZXIgZXhpc3RpbmcKCSAgZ3N0X3BhZF9saW5rX2ZpbHRlcmVkKCkgKCMzMzgyMDYpLgoKMjAwNi0wNS0xMCAxNDo1MTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogTm8gbmVlZCB0byBjYWxsIF9zdG9wIGluIF9maW5hbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIE5vIG5lZWQgdG8gY2FsbCBfc3RvcCBpbiBfZmluYWxpemUuCgkgIEl0ZXJhdGUgdGhlIG1haW4gcGFkIGxpc3QgaW4gX2ZpbmFsaXplLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcuCgkgIEZyZWUgbGlzdHMgYW5kIGRhdGEgaW4gdGhlIHJpZ2h0IG9yZGVyLgoJICBBbHNvIGZyZWUgZGF0YSB3aGVtIGRvaW5nIF9yZW1vdmVfcGFkIHdoZW4gc3RvcHBlZCBmb3IKCSAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBwcm90ZWN0IDo6c3RhcnRlZCB3aXRoIFBBRF9MT0NLIGFzCgkgIHdlbGwuCgoyMDA2LTA1LTEwIDE0OjEyOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogYWRkIHNvbWUgY29tbWVudHMgcmVuYW1lIGEgbWV0aG9kIHNvIHRoYXQgaXQgYWN0dWFsbHkgc2F5cyB3aGF0IGl0IGRvZXMgYmV0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ3R5cGVfZnJvbV9hYmJyKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBhZGQgc29tZSBjb21tZW50cwoJICByZW5hbWUgYSBtZXRob2Qgc28gdGhhdCBpdCBhY3R1YWxseSBzYXlzIHdoYXQgaXQgZG9lcyBiZXR0ZXIKCjIwMDYtMDUtMTAgMTQ6MDU6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogbWFrZSBzdXJlIHNvbWUgZXNzZW50aWFsIHR5cGVzIHVzZWQgYnkgZXZlbnRzIGFyZSByZWdpc3RlcmVkIGFzIHBhcnQgb2YgZ3N0X2luaXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSk6CgkgIG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCB0eXBlcyB1c2VkIGJ5IGV2ZW50cyBhcmUgcmVnaXN0ZXJlZAoJICBhcyBwYXJ0IG9mIGdzdF9pbml0KCkKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBpZiBubyBmbGFncyBhcmUgc2V0LCBzZXJpYWxpemUgdGhlbSB0byBhIHZhbHVlIHRoYXQgcmVwcmVzZW50cyBOT05FCgkgIHNvIHRoYXQgZGVzZXJpYWxpemluZyB0aGVtIHdvcmtzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbiBvZiBmbGFncwoKMjAwNi0wNS0xMCAxMzo1Mzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBsaW1pdCB0byA4MCBjaGFycyBhZGQgbm90ZSBhYm91dCBjaGFuZ2luZyBkaXZpZGVyIGZvciBmbGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGltaXQgdG8gODAgY2hhcnMKCSAgYWRkIG5vdGUgYWJvdXQgY2hhbmdpbmcgZGl2aWRlciBmb3IgZmxhZ3MKCjIwMDYtMDUtMTAgMTE6MjQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyksIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX2NvbGxlY3RlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBVcGRhdGUgZG9jcy4KCSAgQmV0dGVyIGRlYnVnIGluZm8uCgkgIENhdGNoIGFuZCByZXR1cm4gZXJyb3JzIGZyb20gdGhlIGNvbGxlY3QgZnVuY3Rpb24KCSAgUmVmdXNlIGRhdGEgb24gZW9zIHBhZHMuCgoyMDA2LTA1LTEwIDEwOjI2OjU1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGludGVyZmFjZS5oOiBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0UgYW5kIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRSB1c2UgdGhlIG5vcm1hbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkgIEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRSBhbmQgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFIHVzZSB0aGUgbm9ybWFsCgkgIEdJbnRlcmZhY2UgdHlwZSBjaGVja2luZy4KCSAgVGhleSB3ZXJlIHByZXZpb3VzbHkgdXNpbmcgbm9uLWRlZmluZWQgbWFjcm9zLgoKMjAwNi0wNS0wOSAyMDo0NzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogQ2xlYW4gdXAgdGhlIG1lc3MgdGhhdCBpcyBjb2xsZWN0cGFkcywgYWRkIGNvbW1lbnRzIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcGVlayksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksIChnc3RfY29sbGVjdF9wYWRzX3JlYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIENsZWFuIHVwIHRoZSBtZXNzIHRoYXQgaXMgY29sbGVjdHBhZHMsIGFkZCBjb21tZW50cyBhbmQKCSAgRklYTUVzIHdoZXJlIG5lZWRlZC4KCSAgTWFpbnRhaW4gYSBzZXBhcmF0ZSBwYWQgbGlzdCBzbyB3ZSBjYW4gYWRkIHBhZHMgd2hpbGUKCSAgY29sbGVjdGluZyB0aGUgb3RoZXIgb25lcy4gRm9yIHRoaXMgd2UgbmVlZCBhIG5ldyBzZXBhcmF0ZQoJICBsb2NrIChzZWUgY29taWNzKS4KCSAgRml4IG1lbW9yeSBsZWFrIGluIGZpbmFsaXplLgoJICBSZWZhY3RvciBzb21lIHdlaXJkIGNvZGUgdG8gc2V0L3Vuc2V0IHBhZCBmbHVzaGluZyBmbGFncywgbWFyawoJICB3aXRoIGNvbW1lbnRzLgoJICBEb24ndCBjcmFzaCBpbiBfYXZhaWxhYmxlLCBfcmVhZCwgX2ZsdXNoIHdoZW4gd2UncmUgRU9TLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIGFkYXB0ZXIgY2hlY2sgYmluYXJ5LgoKMjAwNi0wNS0wOSAxOToxNDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA1LTA5IDE3OjU4OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQ29uc3QtaWZ5IEdFbnVtVmFsdWUgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9yZXNvbHZlcl9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAoZ3N0X2Zha2Vfc2lua19zdGF0ZV9lcnJvcl9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZGF0YV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfc2l6ZXR5cGVfZ2V0X3R5cGUpLCAoZ3N0X2Zha2Vfc3JjX2ZpbGx0eXBlX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCjIwMDYtMDUtMDkgMTM6MjM6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IEFkZCB0ZXN0IGNhc2UgZm9yIGZsYWdzICsgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgZmxhZ3MgKyBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKS4KCjIwMDYtMDUtMDkgMTI6MDE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIHNob3VsZCBtYWludGFpbiB0aGUgYnVmZmVyIGZsYWdzICh0aG9zZSB0aGF0IG1ha2Ugc2Vuc2UgYXQgbGVhc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgc2hvdWxkIG1haW50YWluIHRoZQoJICBidWZmZXIgZmxhZ3MgKHRob3NlIHRoYXQgbWFrZSBzZW5zZSBhdCBsZWFzdCkgKHNlZSAjMzQwODU5KS4KCjIwMDYtMDUtMDkgMTA6NTM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEZpeCB1cCBpbmNsdWRlczogbmVlZCB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIHRvb2xzLmggZm9yIGV4aXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgKiB0b29scy90b29scy5oOgoJICBGaXggdXAgaW5jbHVkZXM6IG5lZWQgdG8gaW5jbHVkZSBzdGRsaWIuaCBpbiB0b29scy5oIGZvciBleGl0KCkuCgoyMDA2LTA1LTA5IDEwOjAyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogQVBJOiBhZGQgR1NUX1RBR19JTUFHRSB0YWcgKCMzNDA3MjEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19JTUFHRSB0YWcgKCMzNDA3MjEpLgoKMjAwNi0wNS0wOCAxNzoxMjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jOiBBZGRlZCBzb21lIGRvY3MgZm9yIHRoZSBzZWdtZW50IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgQWRkZWQgc29tZSBkb2NzIGZvciB0aGUgc2VnbWVudCBxdWVyeS4KCjIwMDYtMDUtMDggMTc6MDM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWx3YXlzIHB1c2ggbm9uLWZsdXNoaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGluIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsd2F5cyBwdXNoIG5vbi1mbHVzaGluZyBzZXJpYWxpemVkIGV2ZW50cyBpbiB0aGUgc3RyZWFtaW5nCgkgIHRocmVhZC4KCjIwMDYtMDUtMDggMTU6NTM6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICB3aGl0ZXNwYWNlLCBjb21tZW50LCBkb2MgZml4dXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UsIGNvbW1lbnQsIGRvYyBmaXh1cAoKMjAwNi0wNS0wOCAxNTo1MjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuYzogQWRkIGEgbWlzc2luZyBlcnJvciBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBBZGQgYSBtaXNzaW5nIGVycm9yIHN0cmluZy4KCjIwMDYtMDUtMDggMTQ6NTU6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgYXBwbGllZF9yYXRlIHRvIHRoZSBkZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KToKCSAgQWRkIGFwcGxpZWRfcmF0ZSB0byB0aGUgZGVidWcKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBDb3B5IGFwcGxpZWRfcmF0ZSBpbnRvIHRoZSBvdXRnb2luZyBORVdTRUdNRU5UIGV2ZW50CgoyMDA2LTA1LTA4IDExOjQ5OjQzICswMDAwICBQaGlsaXBwZSBSb3VxdWllciA8cGhpbGlwcGVyb0BsaWJlcnR5c3VyZi5mcj4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogY2FsbCA6OnVubG9jayBiZWZvcmUgdGFraW5nIHRoZSBQUkVST0xMX0xPQ0sgc28gd2UgY2FuIHNhZmVseSBoYW5kbGUgZWxlbWVudHMgdGhhdCBsb2NrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBoaWxpcHBlIFJvdXF1aWVyIDxwaGlsaXBwZXJvIGF0IGxpYmVydHlzdXJmIGRvdCBmcj4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIGNhbGwgOjp1bmxvY2sgYmVmb3JlIHRha2luZyB0aGUgUFJFUk9MTF9MT0NLIHNvIHdlIGNhbiBzYWZlbHkKCSAgaGFuZGxlIGVsZW1lbnRzIHRoYXQgbG9jayBpbiA6OnJlbmRlci4KCSAgRml4ZXMgIzM0MDE3NC4KCjIwMDYtMDUtMDggMTE6NDM6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBhdXRvZ2VuLnNoOiBEYXJ3aW4ncyBsaWJ0b29saXplIGlzIGluIGZhY3QgY2FsbGVkIGdsaWJ0b29saXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOiAoQ09ORklHVVJFX0RFRl9PUFQpOgoJICBEYXJ3aW4ncyBsaWJ0b29saXplIGlzIGluIGZhY3QgY2FsbGVkIGdsaWJ0b29saXplLgoJICBBZGRpbmcgZ2xpYnRvb2xpemUgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgbmFtZXMgZm9yIGxpYnRvb2xpemUuCgoyMDA2LTA1LTA4IDExOjM1OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVuaWZ5IGVycm9yIGhhbmRsaW5nLCBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIHB1c2goKSByZXR1cm5zIEVPUyBidXQgcGVyZm9ybSBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBVbmlmeSBlcnJvciBoYW5kbGluZywgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlCgkgIHdoZW4gYSBwdXNoKCkgcmV0dXJucyBFT1MgYnV0IHBlcmZvcm0gb3VyIG5vcm1hbCBFT1MKCSAgaGFuZGxpbmcgY29kZS4gRml4ZXMgIzM0MDc3Mi4KCjIwMDYtMDUtMDggMDk6NTI6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDogTWFrZSB1cHN0ZWFtL2Rvd25zdHJlYW0gY29uY2VwdHMgbW9yZSBjbGVhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIE1ha2UgdXBzdGVhbS9kb3duc3RyZWFtIGNvbmNlcHRzIG1vcmUgY2xlYXIuCgkgIEdpdmUgYW4gZXhhbXBsZSBvZiBzZXJpYWxpemVkL25vbi1zZXJpYWxpemVkIGV2ZW50cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgTWVudGlvbiBhcHBsaWVkX3JhdGUuCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgTWVudGlvbiBhcHBsaWVkIHJhdGUsIGZsZXNoIG91dCBzb21lIG1vcmUgdXNlIGNhc2VzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQpLCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksCgkgIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgYXBwbGllZF9yYXRlIGZpZWxkIHRvIE5FV1NFR01FTlQgZXZlbnQuCgkgIEFQSTogZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCgpCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFkZCBhcHBsaWVkX3JhdGUgdG8gR3N0U2VnbWVudCBzdHJ1Y3R1cmUuCgkgIE1ha2UgY2FsY3VsYXRpb24gb2Ygc3RyZWFtX3RpbWUgYW5kIHJ1bm5pbmdfdGltZSBtb3JlIGNvcnJlY3QKCSAgd3J0IHJhdGUvYXBwbGllZF9yYXRlLgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgkgIEFQSTogR3N0U2VnbWVudDo6YXBwbGllZF9yYXRlIGZpZWxkCgkgIEFQSTogZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCgpOwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBQYXJzZSBhbmQgdXNlIGFwcGxpZWRfcmF0ZSBpbiB0aGUgR3N0U2VnbWVudCBmaWVsZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGNoZWNrIGZvciBhcHBsaWVkX3JhdGUgZmllbGQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdHNlZ21lbnRzX3N1aXRlKToKCSAgQWRkIG1vcmUgY2hlY2tzIGZvciB2YXJpb3VzIEdzdFNlZ21lbnQgb3BlcmF0aW9ucy4KCjIwMDYtMDUtMDggMDk6MTY6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFN0b3JlIHRoZSBzeW5jIHRpbWUgb2YgdGhlIGJ1ZmZlciBlbmQgcG9zaXRpb24gc2VwYXJhdGx5IGluIGEgbmV3IHZhcmlhYmxlIGVvc19ydGltZSBzbyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFN0b3JlIHRoZSBzeW5jIHRpbWUgb2YgdGhlIGJ1ZmZlciBlbmQgcG9zaXRpb24gc2VwYXJhdGx5IGluIGEKCSAgbmV3IHZhcmlhYmxlIGVvc19ydGltZSBzbyB3ZSBjYW4gcHJvcGVybHkgc3luYyB0aGUgRU9TIGV2ZW50LgoJICBGaXhlcyAjMzQwNjk3LgoJICBGaXggdGhlIGRvY3MgZm9yIGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKCkuCgkgIERvbid0IHNldCBzZWdtZW50IHN0YXJ0IHRvIGludmFsaWQgdmFsdWUgd2hlbiB3ZSByZWNlaXZlIGEKCSAgbm9uIFRJTUUgbmV3c2VnbWVudC4KCSAgZ2V0IGNsb3NlciB0byBoYW5kbGluZyBwb3NpdGlvbiByZXBvcnRpbmcgZm9yIG5lZ2F0aXZlIHJhdGVzCgkgIGNvcnJlY3RseS4KCjIwMDYtMDUtMDcgMTk6NTc6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IERvY3MgYWJvdXQgaG93IHRvIHByaW50IGNhcHMgZm9yIGRlYnVnIHB1cnBvc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBEb2NzIGFib3V0IGhvdyB0byBwcmludCBjYXBzIGZvciBkZWJ1ZyBwdXJwb3Nlcy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCk6CgkgIHVzZSBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIGluc3RlYWQgb2YgZ3N0X2NhcHNfY29weSwgRml4ZXMgIzM0MDYwOAoKMjAwNi0wNS0wNiAyMTo0NToyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogdXNlIGZ1bGwgZW51bSBuYW1lcyBhbmQgcHJlcHJlbmQgYSAnJScgaW4gZG9jcyBzdHJpbmdzIHRvIG1ha2UgcmVjZW50IGd0ay1kb2MgdHVybiB0aGF0IGludG8gYSBsaW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHVzZSBmdWxsIGVudW0gbmFtZXMgYW5kIHByZXByZW5kIGEgJyUnIGluIGRvY3Mgc3RyaW5ncyB0byBtYWtlIHJlY2VudAoJICBndGstZG9jIHR1cm4gdGhhdCBpbnRvIGEgbGluawoKMjAwNi0wNS0wNSAyMTo0NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogU29tZSB0eXBvIGZpeGVzLCBzb21lIGFkZGl0aW9ucywgc29tZSBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgU29tZSB0eXBvIGZpeGVzLCBzb21lIGFkZGl0aW9ucywgc29tZSBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMDUtMDUgMTc6NDU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IFVzZSB0aGUgc3RyaW5nIHBhc3NlZCB0byBnX29wdGlvbl9jb250ZXh0X25ldygpIGZvciB3aGF0IGl0J3MgaW50ZW5kZWQgZm9yIC0gdGhlIHByb2dyYW0gbmFtZSBpcyBhbHJlYWR5IHByaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBVc2UgdGhlIHN0cmluZyBwYXNzZWQgdG8gZ19vcHRpb25fY29udGV4dF9uZXcoKSBmb3IKCSAgd2hhdCBpdCdzIGludGVuZGVkIGZvciAtIHRoZSBwcm9ncmFtIG5hbWUgaXMgYWxyZWFkeQoJICBwcmludGVkIGVsc2V3aGVyZS4KCjIwMDYtMDUtMDUgMTc6MDc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEFkZCBiYWNrIC0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQwNDYwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy90b29scy5oOgoJICBBZGQgYmFjayAtLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0MDQ2MCkuCgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChoYXZlX3R5cGVfaGFuZGxlciksICh0eXBlZmluZF9maWxlKSwgKG1haW4pOgoJICBBZGQgLS12ZXJzaW9uIG9wdGlvbiBhbmQgdXNlIEdPcHRpb24gZm9yIGFyZ3VtZW50IHBhcnNpbmc7IHJlZmFjdG9yIGEKCSAgYml0OyBhY2NlcHQgZGlyZWN0b3JpZXMgYXMgYXJndW1lbnRzIGFuZCByZWN1cnNlIGludG8gdGhlbTsgbGFzdGx5LAoJICBwcmludCBhIGRlY2VudCBlcnJvciBtZXNzYWdlIHdoZW4gdGhpbmdzIGdvIHdyb25nLgoKMjAwNi0wNS0wNSAxNDozODowMSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIERvbid0IG1lbnRpb24gR3N0VGhyZWFkICgjMzQwNjExKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9uJ3QgbWVudGlvbiBHc3RUaHJlYWQgKCMzNDA2MTEpCgkgIFVwZGF0ZSBsaW5rIHRvIEdPYmplY3QgdHV0b3JpYWwgKCMzNDA2MDcpCgoyMDA2LTA1LTA1IDE0OjI3OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkIG5vdGUgYWJvdXQgcmVmY291bnRpbmcgYW5kIG1pbmlvYmplY3QvYnVmZmVyIHdyaXRlYWJpbGl0eSB0byBkb2NzLiBGaXhlcyAjMzQwNjA0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBBZGQgbm90ZSBhYm91dCByZWZjb3VudGluZyBhbmQgbWluaW9iamVjdC9idWZmZXIgd3JpdGVhYmlsaXR5CgkgIHRvIGRvY3MuIEZpeGVzICMzNDA2MDQKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgQWRkZWQgc29tZSBleHBsYW5hdGlvbiBhYm91dCBAa2xhc3MuCgoyMDA2LTA1LTA1IDE0OjA5OjIxICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBBdm9pZCBDT1JCQSAmIEJvbm9ibyByZWZlcmVuY2VzICgjMzQwNTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQXZvaWQgQ09SQkEgJiBCb25vYm8gcmVmZXJlbmNlcyAoIzM0MDU5OCkKCjIwMDYtMDUtMDUgMTM6NTM6MjggKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgRml4IHVwIHNvbWUgaW5hY2N1cmFjaWVzIGFuZCBvbWlzc2lvbnMgaW4gQURNICgjMzQwNjA5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHVwIHNvbWUgaW5hY2N1cmFjaWVzIGFuZCBvbWlzc2lvbnMgaW4gQURNICgjMzQwNjA5KQoKMjAwNi0wNS0wNSAxMjo1MzozMyArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgU21hbGwgdHlwbyBpbiBkb2NzICgjMzQwNjI1KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU21hbGwgdHlwbyBpbiBkb2NzICgjMzQwNjI1KQoKMjAwNi0wNS0wNSAwOTowMTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTWFrZSAnbWFrZSAtaicgcHJvb2YgKHNlZSAjMzQwNjk4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNYWtlICdtYWtlIC1qJyBwcm9vZiAoc2VlICMzNDA2OTgpLgoKMjAwNi0wNS0wNSAwODo1NjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliLTIuOCBoZXJlIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliLTIuOCBoZXJlIGFzIHdlbGwuCgoyMDA2LTA1LTA1IDA4OjE3OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIHByZSBnbGliMi44IGNvbXBhdGliaWxpdHksIGZpeGVzICMzNDA1MDgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKSwgKGdzdF9vYmplY3RfcmVwbGFjZSksIChnc3Rfb2JqZWN0X2Rpc3Bvc2UpLAoJICAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIFJlbW92ZSBwcmUgZ2xpYjIuOCBjb21wYXRpYmlsaXR5LCBmaXhlcyAjMzQwNTA4CgoyMDA2LTA1LTA0IDE4OjE0OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogTWVudGlvbiB0eXBlIG9mIHRhZ3MgaW4gZG9jIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTWVudGlvbiB0eXBlIG9mIHRhZ3MgaW4gZG9jIGJsdXJicy4KCjIwMDYtMDUtMDQgMTY6MzQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXN0b3JlIGFjY2VwdGNhcHMgY2hlY2tpbmcgYmVoYXZpb3VyIG5vdyB0aGF0IGdvb2QgcGx1Z2lucyBoYXZlIGJlZW4gcmVsZWFzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX3B1c2gpOgoJICBSZXN0b3JlIGFjY2VwdGNhcHMgY2hlY2tpbmcgYmVoYXZpb3VyIG5vdyB0aGF0IGdvb2QgcGx1Z2lucyBoYXZlCgkgIGJlZW4gcmVsZWFzZWQuCgoyMDA2LTA1LTA0IDE1OjIwOjE0ICswMDAwICBKYW1lcyBBbmRyZXdhcnRoYSA8dHJzODBAdGFydGFydXMudXdhLmVkdS5hdT4KCgkgIE1ha2Ugc3VyZSBnc3Rwcml2YXRlLmggYW5kL29yIGNvbmZpZy5oIGFyZSBhbHdheXMgaW5jbHVkZWQgZmlyc3QsIG90aGVyd2lzZSBzb21lIG9mIG91ciBkZWZpbmVzIChsaWtlIF9GSUxFX09GRlNFVF9CSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEphbWVzIEFuZHJld2FydGhhIDx0cnM4MCBhdCB0YXJ0YXJ1cyB1d2EgZWR1IGF1PgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIE1ha2Ugc3VyZSBnc3Rwcml2YXRlLmggYW5kL29yIGNvbmZpZy5oIGFyZQoJICBhbHdheXMgaW5jbHVkZWQgZmlyc3QsIG90aGVyd2lzZSBzb21lIG9mIG91cgoJICBkZWZpbmVzIChsaWtlIF9GSUxFX09GRlNFVF9CSVRTKSBtaWdodCBiZQoJICByZWRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXJzLiBGaXhlcyBidWlsZAoJICBvbiBvcGVuc29sYXJpcyAoIzM0MDAxNikuCgoyMDA2LTA1LTA0IDE0OjE5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQVBJOiBhZGRpdGlvbjogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBUEk6IGFkZGl0aW9uOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wdXNoKSwKCSAgKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfdGFrZSksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciksCgkgIChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIFByZXBhcmUgZm9yIG9wdGltaXppbmcgdGhlIGhlbGwgb3V0IG9mIHRoaXMgaHVnZWx5IGluZWZmaWNpZW50CgkgIHBpZWNlIG9mIGNvZGUuCgkgIEFkZGVkIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgc28gd2UgY2FuIGF0IGxlYXN0IHN0YXJ0IHRoaW5raW5nCgkgIGFib3V0IHN1YmJ1ZmZlcmluZyBhbmQgbWVyZ2luZy4KCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9hZGFwdGVyX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBHc3RBZGFwdGVyIGNoZWNrLgoKMjAwNi0wNS0wNCAxMzozMDozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OiBGaXggc29tZSB0eXBvcywgYWRkIGJsdXJiIGFib3V0IGJ1ZmZlciBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIEZpeCBzb21lIHR5cG9zLCBhZGQgYmx1cmIgYWJvdXQgYnVmZmVyIGZsYWdzLgoKMjAwNi0wNS0wMyAxNjo0NToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBtYWtlIHN1cmUgR3N0QmFzZVRyYW5zZm9ybUNsYXNzIHNob3dzIHVwIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIG1ha2Ugc3VyZSBHc3RCYXNlVHJhbnNmb3JtQ2xhc3Mgc2hvd3MgdXAgaW4gdGhlIGRvY3MKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgbW92ZSBkb2NzIHNvIGd0ay1kb2MgcGlja3MgaXQgdXAgbm93CgoyMDA2LTA1LTAzIDE2OjQyOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwgYW5kIHdpZHRoIGNvZXJjaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwgYW5kIHdpZHRoIGNvZXJjaW9uCgoyMDA2LTA1LTAzIDE2OjQwOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICB3aGl0ZXNwYWNlIG1vdmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBtb3ZpbmcKCjIwMDYtMDUtMDIgMTc6Mjk6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IGFkZCBtaXNzaW5nIHN5bWJvbHMgdG8gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbWlzc2luZyBzeW1ib2xzIHRvIGRvY3MKCjIwMDYtMDUtMDIgMTc6MTc6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogYmFjayBvdXQgdGhlIG5ld3NlZ21lbnQgaGFuZGxpbmcgY2hhbmdlLCBzZWUgIzM0MDA2MCBmb3Igb25nb2luZyBkaXNjdXNzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBiYWNrIG91dCB0aGUgbmV3c2VnbWVudCBoYW5kbGluZyBjaGFuZ2UsIHNlZSAjMzQwMDYwIGZvciBvbmdvaW5nCgkgIGRpc2N1c3Npb24KCjIwMDYtMDQtMjkgMjM6MTU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtcnVuLmM6IEZpeCB3cm9uZyBnX2ZpbGVfdGVzdCgpIHVzYWdlIChzZWUgZ2xpYiBkb2NzIGZvciB3aHkgaXQgZG9lc24ndCB3b3JrKTsgZml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAoZ2V0X2NhbmRpZGF0ZXMpLCAobWFpbik6CgkgIEZpeCB3cm9uZyBnX2ZpbGVfdGVzdCgpIHVzYWdlIChzZWUgZ2xpYiBkb2NzIGZvciB3aHkgaXQgZG9lc24ndAoJICB3b3JrKTsgZml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4gRml4ZXMgIzM0MDA3OS4KCjIwMDYtMDQtMjkgMDA6Mzg6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA2LTA0LTI5IDAwOjM2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgdXBsb2FkLm1hayB0byBjb21tb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3VwbG9hZC5tYWs6CgkgICogY29tbW9uL3VwbG9hZC5tYWs6CgkgIG1vdmUgdXBsb2FkLm1hayB0byBjb21tb24KCjIwMDYtMDQtMjkgMDA6MzU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGFkZCBtb3JlIG5vdGVzIG9uIG1vdmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgbm90ZXMgb24gbW92aW5nCgoyMDA2LTA0LTI5IDAwOjMzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBhZGQgbW9yZSBhc3NlcnRzIG9uIHJlZmNvdW50cyBkbyBtb3JlIGNsZWFudXAgYXQgZW5kIG9mIHRlc3RzIGZpeCB0ZXN0IGxlYWtzIHNob3dpbmcgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0yOSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIG1vcmUgYXNzZXJ0cyBvbiByZWZjb3VudHMKCSAgZG8gbW9yZSBjbGVhbnVwIGF0IGVuZCBvZiB0ZXN0cwoJICBmaXggdGVzdCBsZWFrcyBzaG93aW5nIGluIEZDNQoKMjAwNi0wNC0yOCAyMjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogcmV2ZXJ0ZWQgd3JvbmcgY2hhbmdlIGFuZCByZWZsb3dlZCBjb2RlIHRvIGF2b2lkIG90aGVycyBmYWxsaW5nIGludG8gdGhpcyB0cmFwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgcmV2ZXJ0ZWQgd3JvbmcgY2hhbmdlIGFuZCByZWZsb3dlZCBjb2RlIHRvIGF2b2lkIG90aGVycyBmYWxsaW5nIGludG8KCSAgdGhpcyB0cmFwCgoyMDA2LTA0LTI4IDIwOjU1OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGZpeCBjaGFuZ2Vsb2cgZW50cnkgYWJvdXQgbGFzdCBjb2xsZWN0cGFkcyBjaGFuZ2UsIGFkZCBub3RlcyBhYm91dCBwcm9wZXIgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBmaXggY2hhbmdlbG9nIGVudHJ5IGFib3V0IGxhc3QgY29sbGVjdHBhZHMgY2hhbmdlLAoJICBhZGQgbm90ZXMgYWJvdXQgcHJvcGVyIGZpeAoKMjAwNi0wNC0yOCAyMDo0NzoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCjIwMDYtMDQtMjggMjA6NDQ6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgoyMDA2LTA0LTI4IDE4OjU1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtYWtlIEdzdEVsZW1lbnREZXRhaWxzIGNvbnN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIG1ha2UgR3N0RWxlbWVudERldGFpbHMgY29uc3QKCjIwMDYtMDQtMjggMTg6NDg6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBtb3JlIGRldGFpbGVkIGRlYnVnIGFuZCBmb3JtYXR0aW5nIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIG1vcmUgZGV0YWlsZWQgZGVidWcgYW5kIGZvcm1hdHRpbmcgY2xlYW51cAoKMjAwNi0wNC0yOCAxNzo1MjoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGNsZWFudXAgZG91YmxlIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpOgoJICBjbGVhbnVwIGRvdWJsZSBjb2RlCgoyMDA2LTA0LTI4IDE3OjMzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogc29tZSBsaXR0bGUgdHVuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpOgoJICBzb21lIGxpdHRsZSB0dW5pbmcKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgYSBuZXcgdGVzdCBmb3IgbGl2ZSB2YWx1ZSBoYW5kbGluZwoKMjAwNi0wNC0yOCAxNTo1MTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgR2l2ZSBjcmVkaXQgdG8gVGFwaSBQYWF2b2xhIGZvciBsYXN0IHBhdGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHaXZlIGNyZWRpdCB0byBUYXBpIFBhYXZvbGEgZm9yIGxhc3QgcGF0Y2gKCjIwMDYtMDQtMjggMTU6NDg6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAocHVzaF9hbmRfcmVmKToKCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIEZpeCByZWZjb3VudCBpc3N1ZSB3aGl0aCBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkgaGVscGVyCgkgIGZ1bmN0aW9uLiBGaXhlcyAjMzM4MzM1CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0c3VpdGUgZm9yIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKS4KCjIwMDYtMDQtMjggMTM6NTE6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBBdm9pZCBOVUxMIGRlcmVmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZSBmbGFncyBjb250YWluaW5nIGludmFsaWQgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBBdm9pZCBOVUxMIGRlcmVmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZSBmbGFncyBjb250YWluaW5nCgkgIGludmFsaWQgdmFsdWVzLgoKMjAwNi0wNC0yOCAxMzo0NDoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNtYWxsIGRvYyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGRvYyBmaXgKCjIwMDYtMDQtMjggMTM6NDM6MDMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IElmIHdlIGdldCBFT1MgYmVmb3JlIGFueSBkYXRhIGlzIGFjY3VtdWxhdGVkLCBkb24ndCB1c2UgdW5pbml0aWFsaXNlZCBsb2NhbCB2YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIElmIHdlIGdldCBFT1MgYmVmb3JlIGFueSBkYXRhIGlzIGFjY3VtdWxhdGVkLCBkb24ndCB1c2UKCSAgdW5pbml0aWFsaXNlZCBsb2NhbCB2YXJpYWJsZXMuCgoyMDA2LTA0LTI4IDEzOjQwOjE1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeGVzIGluIHJlYWRpbmcvd3JpdGluZyBldmVudHMgb3ZlciBHRFAgKG5vdCBjdXJyZW50bHkgdXNlZD8pIC0gZGVyZWZlcmVuY2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEZpeGVzIGluIHJlYWRpbmcvd3JpdGluZyBldmVudHMgb3ZlciBHRFAgKG5vdCBjdXJyZW50bHkgdXNlZD8pIC0KCSAgZGVyZWZlcmVuY2luZyBOVUxMIGV2ZW50cyBmb3IgdW5rbm93bi9pbnZhbGlkIGV2ZW50IHR5cGVzLCBtZW1vcnkKCSAgbGVhaywgYW5kIGNoYW5nZSBnX3dhcm5pbmcgdG8gR1NUX1dBUk5JTkcuCgoyMDA2LTA0LTI4IDEzOjI1OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIGZyYW1lIGRyb3BwaW5nIGlzIGVuYWJsZWQsIHdlIHNob3VsZCBub3QgaWdub3JlIGZyYW1lcyB3aXRob3V0IGEgZHVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19yZW5kZXJfc3RhdHMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiBmcmFtZSBkcm9wcGluZyBpcyBlbmFibGVkLCB3ZSBzaG91bGQgbm90IGlnbm9yZSBmcmFtZXMKCSAgd2l0aG91dCBhIGR1cmF0aW9uLgoJICBVcGRhdGUgc29tZSBkb2N1bWVudGF0aW9uLgoKMjAwNi0wNC0yOCAxMzoxODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wNC0yOCAxMzoxNjowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IGhhbmRsZSBFQUdBSU4sIEVJTlRSIGFuZCBzaG9ydCB3cml0ZXMgY29ycmVjdGx5LiBBbHNvIGNsZWFuIHVwIHNvbWUgZXJyb3IgY2FzZXMsIGF2b2lkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwKCSAgKGdzdF9mZF9zaW5rX2NoZWNrX2ZkKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgIGhhbmRsZSBFQUdBSU4sIEVJTlRSIGFuZCBzaG9ydCB3cml0ZXMgY29ycmVjdGx5LiBBbHNvIGNsZWFuCgkgIHVwIHNvbWUgZXJyb3IgY2FzZXMsIGF2b2lkIGEgZGVhZGxvY2sgb24gYmFkIGZpbGUgZGVzY3JpcHRvcnMgYW5kCgkgIHVzZSBHU1RfREVCVUdfT0JKRUNULgoJICBGaXhlcyAjMzM5ODQzCgoyMDA2LTA0LTI4IDEzOjEzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvbid0IHRyeSB0byBzZXJpYWxpemUgYSBHVmFsdWUgd2l0aCBhIE5VTEwgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpOgoJICBEb24ndCB0cnkgdG8gc2VyaWFsaXplIGEgR1ZhbHVlIHdpdGggYSBOVUxMIGJ1ZmZlci4KCSAgRml4ZXMgIzMzOTgyMS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBzZXJpYWxpc2F0aW9uIG9mIE5VTEwgYnVmZmVycy4KCjIwMDYtMDQtMjggMTM6MTA6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBUYWtpbmcgYSBOVUxMIG1pbmlvYmplY3QgaXMgdmFsaWQsIGZpeCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gdW5yZWYgdGhlIE5VTEwgbWluaW9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KToKCSAgVGFraW5nIGEgTlVMTCBtaW5pb2JqZWN0IGlzIHZhbGlkLCBmaXggdGhlIGNhc2Ugd2hlcmUKCSAgd2UgdHJ5IHRvIHVucmVmIHRoZSBOVUxMIG1pbmlvYmplY3QuCgoyMDA2LTA0LTI4IDEzOjA1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29uZmlnLmgKCjIwMDYtMDQtMjggMTM6MDQ6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHNvbmljcHVsc2UuZGU+CgoJICBnc3QvZ3N0YmluLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljIGF0IHNvbmljcHVsc2UgZG90IGRlPgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIFVwZGF0ZSBkb2NzLgoJICBEb24ndCBsZWFrIGJpbiByZWZjb3VudCB3aGVuIGEgc3RhdGUgcmVjYWxjIGlzCgkgIGluIHByb2dyZXNzIGFuZCB3ZSBkZWxheSBhbm90aGVyIG9uZSAjMzM5ODA4LgoKMjAwNi0wNC0yOCAxMjo1ODoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IE1lbnRpb24gUW9TIGFzIGFuIG9uZ29pbmcgd29yayBpdGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBNZW50aW9uIFFvUyBhcyBhbiBvbmdvaW5nIHdvcmsgaXRlbS4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIE5ldyBkb2MgYWJvdXQgYnVmZmVyaW5nIHRoYXQgbmVlZHMgdG8gYmUgZmxlc2hlZCBvdXQKCSAgYXQgc29tZSBwb2ludC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIE1vcmUgUW9TIHBvbGljeSBmb3IgZGVjb2RlcnMvZGVtdXhlcnMvdHJhbnNmb3JtcwoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCjIwMDYtMDQtMjggMTA6NTY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjUgPT09CgoyMDA2LTA0LTI4IDEwOjUzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjUKCjIwMDYtMDQtMjggMDk6NDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy91cGxvYWQubWFrOgoJICBmaXggdXBsb2FkLm1hazsgc2hvdWxkIG1vdmUgdG8gY29tbW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXBsb2FkLm1hazsgc2hvdWxkIG1vdmUgdG8gY29tbW9uCgoyMDA2LTA0LTI4IDA5OjIwOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBhZGRpbmcgbWlzc2luZyBkc3AgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBtaXNzaW5nIGRzcCBmaWxlcwoKMjAwNi0wNC0yNiAxMzo1NDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wNC0yMiAyMTozNDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLiAgRml4ZXMgIzMzODcxMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX3B1c2gpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICBGaXggaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4gIEZpeGVzICMzMzg3MTEuCgoyMDA2LTA0LTEyIDExOjU4OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3QgbGVhayB0aGUgZmFjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayB0aGUgZmFjdG9yeS4KCjIwMDYtMDQtMTIgMTE6MDY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA2LTA0LTEyIDExOjA0OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgoyMDA2LTA0LTEyIDEwOjU3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDQtMTIgMTA6Mjg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRnJlZSBhbGxvY2F0ZWQgR3N0VGltZWRWYWx1ZXMgd2hlbiBmcmVlaW5nIGxpc3Qgbm9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgRnJlZSBhbGxvY2F0ZWQgR3N0VGltZWRWYWx1ZXMgd2hlbiBmcmVlaW5nIGxpc3Qgbm9kZXMuCgkgIFNob3VsZCBmaXggbGVha3MgJ21ha2UgY2hlY2stdmFsZ3JpbmQnIGNvbXBsYWlucyBhYm91dC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIEFkZCBnc3RfY29udHJvbGxlcl91bnNldF9hbGwuCgoyMDA2LTA0LTEyIDEwOjE1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgZml4IENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IENoYW5nZUxvZwoKMjAwNi0wNC0xMSAyMTowNzoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkZWQgbmV3IG1ldGhvZCBfdW5zZXRfYWxsKCkgYW5kIGZpeGVkIF91bnNldCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBBZGRlZCBuZXcgbWV0aG9kIF91bnNldF9hbGwoKSBhbmQgZml4ZWQgX3Vuc2V0KCkKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkZWQgdHdvIHRlc3RjYXNlcyBmb3IgbmV3IGFuZCBmaXhlZCBtZXRob2QKCjIwMDYtMDQtMTEgMTg6NDM6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiBNU0dfRE9OVFdBSVQgaXMgbm90IGRlZmluZWQgb24gQ3lnd2luLCBzbyB3b3JrIGFyb3VuZCB0aGF0IChmaXhlcyAjMzE3MDQ4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgIE1TR19ET05UV0FJVCBpcyBub3QgZGVmaW5lZCBvbiBDeWd3aW4sIHNvIHdvcmsKCSAgYXJvdW5kIHRoYXQgKGZpeGVzICMzMTcwNDgpLgoKMjAwNi0wNC0xMSAxNDo0ODozNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB2ZXJzaW9uaW5nIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdmVyc2lvbmluZyBtYWNybwoKMjAwNi0wNC0xMSAxMTo0NzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBTb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKSwgKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIEZpeGVkIGEgRklYTUUuCgkgIFVwZGF0ZWQgZG9jcyAoRml4ZXMgIzEzMTA3OSkKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3IgZWxlbWVudGZhY3RvcnkgY2xhc3MgZmllbGQuCgoyMDA2LTA0LTEwIDEwOjQ2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpOgoJICBDYWxjdWxhdGUgbW9yZSBhY2N1cmF0ZSByYXRlIHZhbHVlcy4KCjIwMDYtMDQtMDkgMTY6NTc6MzQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBhZGQgYSBuZXcgI2lmZGVmIHRvIHVzZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgb25seSBmb3Igb3RoZXIgbW9kdWxlcyBhbmQgbm90IGZvciBnc3RyZWFtZXIgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgYWRkIGEgbmV3ICNpZmRlZiB0byB1c2UgX19kZWNsc3BlYyhkbGxpbXBvcnQpIG9ubHkgZm9yCgkgIG90aGVyIG1vZHVsZXMgYW5kIG5vdCBmb3IgZ3N0cmVhbWVyIGNvcmUKCSAgKiBnc3QvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpOgoJICB1c2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucwoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdG5ldC5kc3A6CgkgIHVwZGF0ZSBwcm9qZWN0IGZpbGVzCgoyMDA2LTA0LTA4IDIwOjU3OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3NpZ25hbF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzogKGdzdF9leGFtcGxlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KToKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCjIwMDYtMDQtMDggMTg6MTE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE11c3Qgc2V0IHBlZXIgcGFkcyBiZWZvcmUgY2FsbGluZyB0aGUgbGluayBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgdGFzayBzdGFydGVkIGZyb20gYSBsaW5rIGZ1bmN0aW9uIG1pZ2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rKToKCSAgTXVzdCBzZXQgcGVlciBwYWRzIGJlZm9yZSBjYWxsaW5nIHRoZSBsaW5rIGZ1bmN0aW9uLCBvdGhlcndpc2UKCSAgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIGxpbmsgZnVuY3Rpb24gbWlnaHQgZ2V0IGEgZmxvdy1ub3QtbGlua2VkCgkgIHJlc3VsdCB3aGVuIHRyeWluZyB0byBwdXNoIGJlY2F1c2UgdGhlIG90aGVyIHRocmVhZCB3aGVyZSB0aGUKCSAgbGlua2luZyBoYXBwZW5zIGhhc24ndCBoYWQgYSBjaGFuY2UgdG8gc2V0IHRoZSBwZWVycyB5ZXQuIFRoaXMKCSAgbWlnaHQgaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gYSBxdWV1ZSBnZXRzIGxpbmtlZCB0byBhIGRvd25zdHJlYW0KCSAgZWxlbWVudCwgYXMgcXVldWUgc3RhcnRzIGEgc3RyZWFtaW5nIHRhc2sgd2hlbiBpdHMgc291cmNlIHBhZAoJICBnZXRzIGxpbmtlZC4gSGFwcGVucyBpbiByZWFsIGxpZmUgd2hlbiBwbGF5aW5nIGJhY2sgZmxhYy9tdXNlcGFjawoJICBmaWxlcyBpbiBwbGF5YmluICgjMzMyMzkwKS4KCjIwMDYtMDQtMDggMTg6MDU6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBicm9rZW4gR09iamVjdCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIEZpeCBicm9rZW4gR09iamVjdCBtYWNyb3MKCjIwMDYtMDQtMDcgMTU6MTk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEluaXRpYWxpemUgc3RhcnQgYW5kIHN0b3AgdGltZXMsIHRoYW5rcyB2YWxncmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEluaXRpYWxpemUgc3RhcnQgYW5kIHN0b3AgdGltZXMsIHRoYW5rcyB2YWxncmluZC4KCjIwMDYtMDQtMDcgMTQ6NTA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJlIGEgYml0IG5pY2VyIHRvIGJhZGx5IGJlaGF2aW5nIHVwc3RyZWFtIGVsZW1lbnRzIHRoYXQgZXhwZWN0IHVzIHRvIGRlYWwgd2l0aCBub24gVElNRSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEJlIGEgYml0IG5pY2VyIHRvIGJhZGx5IGJlaGF2aW5nIHVwc3RyZWFtIGVsZW1lbnRzIHRoYXQgZXhwZWN0CgkgIHVzIHRvIGRlYWwgd2l0aCBub24gVElNRSBzZWdtZW50cyBhbmQgdGltZXN0YW1wcyAoc3VjaCBhcyBmYWtlc3JjCgkgIGluIHRoZSB0ZXN0c3VpdGUpLgoKMjAwNi0wNC0wNyAxNDowMjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogU21hbGwgZG9jdW1lbnRhdGlvbiBjbGFyaWZpY2F0aW9uIGFib3V0IHRoZSBzaWduYWwgd2F0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGFyaWZpY2F0aW9uIGFib3V0IHRoZSBzaWduYWwgd2F0Y2guCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19yZW5kZXJfc3RhdHMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQ29udmVydCBhbmQgc3RvcmUgdGltZXN0YW1wcyBpbiBzdHJlYW0gdGltZSBhbmQgcnVubmluZyB0aW1lLCB0aGUKCSAgcmF3IHRpbWVzdGFtcHMgYXJlIG5vdCB1c2VmdWxsLCBhbHNvIGRvY3VtZW50IHRoaXMgYmV0dGVyLgoJICBVc2UgZGlmZmVyZW50IHdpbmRvdyBzaXplcyBmb3IgZ29vZCBhbmQgYmFkIFFvUyBvYnNlcnZhdGlvbnMgc28KCSAgd2UgcmVhY3QgdG8gYmFkbmVzcyBhIGxpdHRsZSBxdWlja2VyLgoJICBLZWVwIHRyYWNrIG9mIHRoZSBhbW91bnQgb2YgcmVuZGVyZWQgYW5kIGRyb3BwZWQgYnVmZmVycy4KCSAgU2VuZCBRb1MgdGltZXN0YW1wcyBpbiBydW5uaW5nIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBDb21wYXJlIFFvUyB0aW1lc3RhbXBzIGFnYWluc3QgcnVubmluZyB0aW1lLgoKMjAwNi0wNC0wNiAxNzozNjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnbm9ubGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ25vbmxpbgoKMjAwNi0wNC0wNiAxNTo0NjowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogVHlwbyBmaXhlcyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFR5cG8gZml4ZXMgaW4gZG9jcy4KCjIwMDYtMDQtMDYgMTU6MDc6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIGdfdmFsdWVfZ2V0X29iamVjdCgpIGluc3RlYWQgb2YgZ192YWx1ZV9kdXBfZ3N0X29iamVjdCgpLCB0byBhdm9pZCBkb3VibGUtcmVmZmluZyB0aGUgcGFkIHRlbXBsYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBnX3ZhbHVlX2dldF9vYmplY3QoKSBpbnN0ZWFkIG9mIGdfdmFsdWVfZHVwX2dzdF9vYmplY3QoKSwKCSAgdG8gYXZvaWQgZG91YmxlLXJlZmZpbmcgdGhlIHBhZCB0ZW1wbGF0ZSAod2hpY2ggd2UgdGhlbiBzaW5rLAoJICBzbyB0aGlzIHdvcmtlZCBwcmV2aW91c2x5IGlmIChhbmQgb25seSBpZikgdGhlIHBhZCB0ZW1wbGF0ZQoJICB3YXMgZmxvYXRpbmcuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2luaXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCk6CgkgIE5ldmVyIHJldHVybiBmbG9hdGluZyByZWZlcmVuY2VzIHRvIHBhZCB0ZW1wbGF0ZXMsIGNyZWF0ZQoJICB0aGVtIGFzIGluaXRpYWxseS1zdW5rZW4uCgkgIERvY3VtZW50IGFuIGV4dHJhIGZ1bmN0aW9uIChhbmQgbWFrZSB0aGlzIHN0b3Agc2lua2luZyBvdXIKCSAgcGFkIHRlbXBsYXRlLCBzaW5jZSB0aGF0IGlzIG5vdyBndWFyYW50ZWVkIHRvIGRvIG5vdGhpbmcsCgkgIHNpbmNlIHdlIGNyZWF0ZWQgaXQgc3Vua2VuKS4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRml4IGRvY3MgdHlwby4KCjIwMDYtMDQtMDYgMTE6Mjc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBBZGQgc29tZSBuZXdsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9fZ3N0X2luX3ZhbGdyaW5kKToKCSAgQWRkIHNvbWUgbmV3bGluZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIERvbid0IGxlYWsgYnVmZmVyIGNhcHMuCgoyMDA2LTA0LTA2IDEwOjM4OjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBGaXggYSBsZWFrIGluIHBhcnNlLWxhdW5jaCBmb3IgYW55IHNvdXJjZS1vci1zaW5rIG5hbWVkIGVsZW1lbnQgcmVmZXJlbmNlcyB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggYSBsZWFrIGluIHBhcnNlLWxhdW5jaCBmb3IgYW55IHNvdXJjZS1vci1zaW5rIG5hbWVkIGVsZW1lbnQKCSAgcmVmZXJlbmNlcyB1c2VkLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSk6CgkgIFVucmVmIHRoZSBwaXBlbGluZSBpZiBpdCBleGlzdHMgYWZ0ZXIgd2UndmUgZmFpbGVkIHBhcnNpbmcuCgoyMDA2LTA0LTA1IDE1OjQ2OjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogV2hlbiB3ZSBjcmVhdGUgYSBwaXBlbGluZSBidXMsIGluaXRpYWxseSBjcmVhdGUgaXQgaW4gZmx1c2hpbmcgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIFdoZW4gd2UgY3JlYXRlIGEgcGlwZWxpbmUgYnVzLCBpbml0aWFsbHkgY3JlYXRlIGl0IGluIGZsdXNoaW5nIG1vZGUuCgkgIEZpeGVzIGxlYWtzIGluIGF0IGxlYXN0IG9uZSB0ZXN0LCBhbmQgbWFrZXMgYSBuZXcgcGlwZWxpbmUgd29yayB0aGUKCSAgc2FtZSBhcyBvbmUgdGhhdCBoYXMgZ29uZSB0byBSRUFEWSBhbmQgdGhlbiBiYWNrIHRvIE5VTEwuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgVHlwbyBmaXggaW4gZG9jcy4KCjIwMDYtMDQtMDUgMTU6MTI6MzkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBVbnJlZiBhIHBhZCB3ZSByZWZmZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBhIHBhZCB3ZSByZWZmZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGJpbnMKCjIwMDYtMDQtMDUgMTM6MTg6MjkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RxdWVyeS5jOiBGaXggbGVha2luZyBHVmFsdWVzIGluIHF1ZXJpZXMsIGFzIHNob3duIGJ5IHZhbGdyaW5kL3Rlc3RzdWl0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdik6CgkgIEZpeCBsZWFraW5nIEdWYWx1ZXMgaW4gcXVlcmllcywgYXMgc2hvd24gYnkgdmFsZ3JpbmQvdGVzdHN1aXRlLgoKMjAwNi0wNC0wNSAxMjoxMToyMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBGaXggYSB2YXJpZXR5IG9mIG1lbWxlYWtzIGluIHNpbmtzIGNoZWNrLCB3aGljaCBhcmUgb25seSBzb21ldGltZXMgc2hvd24gYnkgcnVubmluZyB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGEgdmFyaWV0eSBvZiBtZW1sZWFrcyBpbiBzaW5rcyBjaGVjaywgd2hpY2ggYXJlIG9ubHkgc29tZXRpbWVzCgkgIHNob3duIGJ5IHJ1bm5pbmcgdGhlIHRlc3RzIHVuZGVyIHZhbGdyaW5kICh3ZWlyZD8pLgoKMjAwNi0wNC0wNSAxMTowNDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46IEZpeCB0aGUgc3Vic3RpdHV0ZWQgZW50aXR5IG5hbWUgYWZ0ZXIgdGhvbWFzJyBjaGFuZ2VzIG9uIHRoZSB3ZWVrZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkgIEZpeCB0aGUgc3Vic3RpdHV0ZWQgZW50aXR5IG5hbWUgYWZ0ZXIgdGhvbWFzJyBjaGFuZ2VzIG9uIHRoZQoJICB3ZWVrZW5kLgoKMjAwNi0wNC0wNSAxMDozMToyMCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9nc3RpbmZvLmM6IFVzZSBwcmludGYgaW5zdGVhZCBvZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RpbmZvLmM6IChfX2dzdF9pbl92YWxncmluZCk6IFVzZSBwcmludGYgaW5zdGVhZCBvZgoJICBWQUxHUklORF9QUklOVEYKCjIwMDYtMDQtMDUgMTA6MjY6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6IE1vcmUgZGVidWcuIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6IE1vcmUgZGVidWcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6IFdoZW4gcmVzZXR0aW5nIG91ciBzZWdtZW50IG9uCgkgIEZMVVNIX1NUT1AsIGFsc28gdXBkYXRlIHRoZSBmbGFnIHNheWluZyB3ZSBoYXZlbid0IHNlZW4gYQoJICBuZXdzZWdtZW50LgoKMjAwNi0wNC0wNCAxODowMjowNyArMDAwMCAgUGFvbG8gQm9yZWxsaSA8cGJvcmVsbGlAa2F0YW1haWwuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBtaW5vciBjbGVhbi11cHM6IEdfREVGSU5FX1RZUEUgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIHRoZSBwYXJlbnRfY2xhc3Mgc3R1ZmYsIG5vIG5lZWQgdG8gZG8gaXQgdHdpY2UuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGFvbG8gQm9yZWxsaSAgPHBib3JlbGxpIGF0IGthdGFtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BsdWdpbl9jaGVja19saWNlbnNlKToKCSAgbWlub3IgY2xlYW4tdXBzOiBHX0RFRklORV9UWVBFIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUKCSAgcGFyZW50X2NsYXNzIHN0dWZmLCBubyBuZWVkIHRvIGRvIGl0IHR3aWNlLiBNYXJrIGFycmF5IG9mCgkgIGxpY2Vuc2Ugc3RyaW5ncyBhcyBjb25zdGFudC4gKCMzMzcxMDMpCgoyMDA2LTA0LTA0IDE3OjU0OjMwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGcmVlIHRoZSByaWdodCBwbHVnaW4gbGlzdDsgZml4ZXMgYSBtZW1vcnkgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfbGlzdCk6CgkgIEZyZWUgdGhlIHJpZ2h0IHBsdWdpbiBsaXN0OyBmaXhlcyBhIG1lbW9yeSBsZWFrLgoKMjAwNi0wNC0wNCAxNTo0NTozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3QgZXJyb3Igb3V0IG9uIGVtcHR5IGJ1ZmZlcnMgKCMzMzY5NDUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIERvbid0IGVycm9yIG91dCBvbiBlbXB0eSBidWZmZXJzICgjMzM2OTQ1KS4KCjIwMDYtMDQtMDQgMTQ6NTg6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBNYWtlIEJhc2VTaW5rIGFuZCBCYXNlU3JjIGRvY3MgY29udGFpbiB0aGUgY2xhc3Mgc3RydWN0dXJlIHNvIHRoYXQgcGVvcGxlIGNhbiBhY3R1YWxseSBzZWUgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuIE1ha2UgQmFzZVNpbmsgYW5kIEJhc2VTcmMgZG9jcyBjb250YWluIHRoZQoJICBjbGFzcyBzdHJ1Y3R1cmUgc28gdGhhdCBwZW9wbGUgY2FuIGFjdHVhbGx5IHNlZSB0aGUgcHJvdG90eXBlcyBmb3IKCSAgdmlydHVhbCBmdW5jdGlvbnMgdGhleSdyZSBzdXBwb3NlZCB0byBiZSBvdmVycmlkaW5nLgoKMjAwNi0wNC0wNCAwODo1NTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE1vcmUgZGVidWcgaW5mbzsgd2hlbiBza2lwcGluZyB0eXBlZmluZGluZywgc2VuZCBjYWNoZWQgZXZlbnRzIGluIGFsbCBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1vcmUgZGVidWcgaW5mbzsgd2hlbiBza2lwcGluZyB0eXBlZmluZGluZywgc2VuZCBjYWNoZWQKCSAgZXZlbnRzIGluIGFsbCBjYXNlcy4KCjIwMDYtMDQtMDMgMTc6MDU6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA2LTA0LTAzIDA4OjU5OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb21tb24gZGlyOyB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29tbW9uIGRpcjsgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoKMjAwNi0wNC0wMSAxNTozMDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHVzZSBvZiBBU19MSUJUT09MX1RBR1MsIGl0IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkKCjIwMDYtMDQtMDEgMDk6NDE6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgbmV3IEFTX1ZFUlNJT04gYW5kIEFTX05BTk8gbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIG5ldyBBU19WRVJTSU9OIGFuZCBBU19OQU5PIG1hY3JvcwoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGUgYWNjb3JkaW5nbHkKCjIwMDYtMDMtMzEgMTU6MjY6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvIG5vdCB0eXBlZmluZCBjb250ZW50IGlmIHRoZSBidWZmZXJzIGFscmVhZHkgaGF2ZSBjYXBzLiBhbmQgdGhlIHJpZ2h0IHRoaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRG8gbm90IHR5cGVmaW5kIGNvbnRlbnQgaWYgdGhlIGJ1ZmZlcnMgYWxyZWFkeSBoYXZlIGNhcHMuCgkgIE5lY2Nlc2FyeSBmb3IgaWN5ZGVtdXggKCMzMzM2NTcpLCBhbmQgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGFueXdheS4KCjIwMDYtMDMtMzAgMTY6MzY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1vcmUgUW9TIG1lYXN1cmVtZW50cyBhcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVjb3JkX3Fvc19vYnNlcnZhdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTW9yZSBRb1MgbWVhc3VyZW1lbnRzIGFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYy4KCSAgR2V0IHJpZCBvZiByaW5nYnVmZmVyIHdpdGggb2JzZXJ2YXRpb25zLCBydW5uaW5nIGF2ZXJhZ2UgaXMKCSAgbW9yZSBzaW1wbGUgYW5kIGVxdWFsbHkgZ29vZC4KCSAgQ2FsY3VsYXRlcyB2YWxpZCBwcm9wb3J0aW9uIG5vdy4KCSAgQWRkZWQgYmVnaW5uaW5nIG9mIGZsb29kIG1lYXN1cmVtZW50LgoKMjAwNi0wMy0yOSAxMzo0NToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgYWRkaXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgYWRkaXRpb25zLgoKMjAwNi0wMy0yOSAxMzozOTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQZXJmb3JtIHRoZSBFT1MgbG9naWMgd2hlbiB3ZSByZWFjaCB0aGUgc2VnbWVudCBzdG9wIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUGVyZm9ybSB0aGUgRU9TIGxvZ2ljIHdoZW4gd2UgcmVhY2ggdGhlIHNlZ21lbnQgc3RvcCBwb3NpdGlvbi4KCSAgRml4IGNvbXBpbGF0aW9uIG9uIGdjYzQuMQoKMjAwNi0wMy0yOSAxMTowMjozMyArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogSW4gcXVldWUsIHdoZW4gRU9TIGlzIHJlY2VpdmVkLCBpZiBtaW5pbXVtIHRocmVzaG9sZCA+IG1heF9zaXplIC0gY3VycmVudF9sZXZlbCwgdGhlcmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnkgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgSW4gcXVldWUsIHdoZW4gRU9TIGlzIHJlY2VpdmVkLCBpZiBtaW5pbXVtIHRocmVzaG9sZCA+IG1heF9zaXplIC0KCSAgY3VycmVudF9sZXZlbCwgdGhlcmUgaXMgY2hhbmNlIHRoYXQgcXVldWUgYmxvY2tzIGZvcmV2ZXIgaW4gY29uZGl0aW9uYWwgaXRlbQoJICBkZWwgd2FpdC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBub3QgZW1wdGllZCBjb21wbGV0ZWx5IGR1ZSB0byBtaW5pbXVtCgkgIHRocmVzaG9sZC4KCSAgSGVyZSBpcyBhbm90aGVyIGFwcHJvYWNoLiBJbnN0ZWFkIG9mIHNldHRpbmcgY3VyX2xldmVscyB0byBtYXggaW4gRU9TLCBqdXN0CgkgIHplcm8gYWxsIG1pbmltdW0gdGhyZXNob2xkIGxldmVscy4gVGhpcyBzaG91bGQgbWFrZSBzdXJlIHRoYXQgcXVldWUgZ2l2ZXMgb3V0CgkgIGFsbCBkYXRhLiBXaGVuIGdvaW5nIHRvIFJFQURZIChzdG9wKSBzdGF0ZSwganVzdCByZXNldCB0aGUgb3JpZ2luYWwgbWluaW11bQoJICB0aHJlc2hvbGQgbGV2ZWxzLgoJICBGaXhlcyAjMzM2MzM2LgoKMjAwNi0wMy0yOSAxMDozMzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFdoZW4gdHlwZWZpbmRpbmcgaXMgZG9uZSBpbiBwdXNoIG1vZGUsIHdlIHNob3VsZCBjYWNoZSBldmVudHMgd2UgcmVjZWl2ZSBkdXJpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgV2hlbiB0eXBlZmluZGluZyBpcyBkb25lIGluIHB1c2ggbW9kZSwgd2Ugc2hvdWxkIGNhY2hlCgkgIGV2ZW50cyB3ZSByZWNlaXZlIGR1cmluZyB0eXBlZmluZGluZyBpbnN0ZWFkIG9mIGp1c3QKCSAgZHJvcHBpbmcgdGhlbSAoZS5nLiBuZXdzZWdtZW50LCBjdXN0b20gZXZlbnRzIGZyb20KCSAgZHZkcmVhZHNyYyBldGMuKSBhbmQgdGhlbiBzZW5kIHRoZW0gb3V0IG9uY2Ugd2UndmUKCSAgZGV0ZXJtaW5lZCB0aGUgdHlwZSBvZiB0aGUgc3RyZWFtIChhbmQgZGVjb2RlYmluCgkgIGhhcyBoYWQgYSBjaGFuY2UgdG8gcGx1ZyBpbiBhIGRlY29kZXIvZGVtdXhlcikuCgoyMDA2LTAzLTI3IDE4OjM4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXJzdCBRb1MgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRmlyc3QgUW9TIGlkZWFzLgoKMjAwNi0wMy0yNyAxMTo0ODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgZWxlbWVudCBzZWVrIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBzdHJlYW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbnNwaXJlZCBieSBhIHBhdGNoIG9mOiBMdXR6IE11ZWxsZXIgPGx1dHogYXQgdG9wZnJvc2UgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgZWxlbWVudCBzZWVrIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBzdHJlYW1pbmcuCgkgIEZpeGVzICMzMjY5OTguCgoyMDA2LTAzLTI0IDE4OjM4OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFNldCB1cCBMRF9MSUJSQVJZX1BBVEggdG8gcG9pbnQgYXQgYWxsIHRoZSBnc3RyZWFtZXIgbGlicy4gVGhpcyB3aWxsIGFsbG93IHlvdSB0byBjb3JyZWN0bHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBTZXQgdXAgTERfTElCUkFSWV9QQVRIIHRvIHBvaW50IGF0IGFsbCB0aGUgZ3N0cmVhbWVyIGxpYnMuIFRoaXMgd2lsbAoJICBhbGxvdyB5b3UgdG8gY29ycmVjdGx5IHJ1biBpbnRhbGxlZCBhcHBsaWNhdGlvbnMgYnVpbHQgYWdhaW5zdCBvbGQgICAgICAgICAgIGNvcmUsIHVzaW5nIHBsdWdpbnMgdGhhdCByZXF1aXJlIHVwZGF0ZWQgY29yZSAoZS5nLiBydW5uaW5nCgkgIGluc3RhbGxlZCB0b3RlbSBhZ2FpbnN0IGEgZnVsbCB1bmluc3RhbGxlZCBnc3RyZWFtZXIgc3RhY2spCgoyMDA2LTAzLTI0IDE3OjI5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIEFQSTogbWFya2VyIGluIENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIEFQSTogbWFya2VyIGluIENoYW5nZUxvZwoKMjAwNi0wMy0yNCAxNzoxMDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBtb3JlIGRlYnVnIGRldGFpbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpOgoJICBtb3JlIGRlYnVnIGRldGFpbHMKCjIwMDYtMDMtMjQgMTE6MDI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZWFycmFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBtZXRob2RzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzIGFyZSBncm91cGVkIHRvZ2V0aGVyIGluIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVhcnJhbmdlIHRoZSBvcmRlciBvZiB0aGUgbWV0aG9kcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcwoJICBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBzZWN0aW9ucy4KCjIwMDYtMDMtMjQgMTA6NDQ6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IExpdHRsZSBjbGFyaWZpY2F0aW9uIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIExpdHRsZSBjbGFyaWZpY2F0aW9uIGluIHRoZSBkb2NzCgoyMDA2LTAzLTI0IDEwOjM4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogZm9ybWF0dGluZyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIGZvcm1hdHRpbmcgZml4CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEdTVF9FTEVNRU5UX0RFVEFJTFMgZm9ybWF0dGluZwoKMjAwNi0wMy0yNCAwOTo0ODozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogT25seSBhZGQgZmllbGRzLCBub3QgaW5zZXJ0IG9yIHdlIGJyZWFrIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBPbmx5IGFkZCBmaWVsZHMsIG5vdCBpbnNlcnQgb3Igd2UgYnJlYWsgQUJJLgoKMjAwNi0wMy0yMyAxODo1MTowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSwgYWRkIHJlY2VudGx5IGFkZGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUsIGFkZCByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgoyMDA2LTAzLTIzIDE4OjQ1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgc29tZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X3BlZXJfcG9zaXRpb24pLAoJICAoZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKSwgKGdzdF9wYWRfcXVlcnlfcGVlcl9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgc29tZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnM6CgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX3Bvc2l0aW9uCgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uCgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX2NvbnZlcnQKCjIwMDYtMDMtMjMgMTY6MzI6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0byBtZW50aW9uIHRoZSBwcmV2aW91cyBjb21taXQgZml4ZWQgIzMyNjMxMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRvIG1lbnRpb24gdGhlIHByZXZpb3VzIGNvbW1pdCBmaXhlZCAjMzI2MzExCgoyMDA2LTAzLTIzIDE2OjIwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEZWNvdXBsZSBtYXgtbGF0ZW5lc3MgYW5kIHRoZSBmYWN0IHRoYXQgUW9TIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQgd2l0aCBhIG5ldyBwcm9wZXJ0eSAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FkZF9xb3Nfb2JzZXJ2YXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEZWNvdXBsZSBtYXgtbGF0ZW5lc3MgYW5kIHRoZSBmYWN0IHRoYXQgUW9TIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQKCSAgd2l0aCBhIG5ldyBwcm9wZXJ0eSAocW9zKS4KCSAgQWRkIHZtZXRob2Qgc28gc3ViY2xhc3NlcyBjYW4gYmUgbm90aWZpZWQgb2YgQVNZTkMgcGxheWluZwoJICBzdGF0ZSBjaGFuZ2VzLgoJICBDb2xsZWN0IHRpbWVzdGFtcCBzdGFydCBhbmQgc3RvcCB0byByZXBvcnQgYmV0dGVyIGN1cnJlbnQKCSAgcG9zaXRpb24gaW4gRU9TL1BMQVlJTkcvUEFVU0VEL1JFQURZL05VTEwuCgkgIFJlZmFjdG9yIFFvUy9mcmFtZSBkcm9wcGluZyBhbmQgb3RoZXIgbWVhc3VyZW1lbnRzLgoJICBBUEk6IEdzdEJhc2VTcmM6OnFvcwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgUHJpdmF0ZSBzdHJ1Y3QuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkCgoyMDA2LTAzLTIzIDExOjU0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IElmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWItMi44IG9yIG5ld2VyLCB0cnkgdG8gcmVhZCB0aGUgcmVnaXN0cnkgZmlsZSB1c2luZyBHTWFwcGVkRmlsZSBmaXJzdCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgSWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYi0yLjggb3IgbmV3ZXIsIHRyeSB0byByZWFkIHRoZQoJICByZWdpc3RyeSBmaWxlIHVzaW5nIEdNYXBwZWRGaWxlIGZpcnN0IGJlZm9yZSBmYWxsaW5nIGJhY2sKCSAgdG8gZm9wZW4oKSArIGZyZWFkKCkgKCMzMzIxNTEpLgoKMjAwNi0wMy0yMiAxODoyNTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmM6IERpc2FibGUgZGVidWdnaW5nIHVubGVzcyBleHBsaWNpdGx5IGFjdGl2YXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19zZXRfYWN0aXZlKSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKToKCSAgRGlzYWJsZSBkZWJ1Z2dpbmcgdW5sZXNzIGV4cGxpY2l0bHkgYWN0aXZhdGVkLgoJICBGaXhlcyAjMzM1NDgwLgoKMjAwNi0wMy0yMiAxMzoxMDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsZWFudXAgdGhlIGVycm9yIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBDbGVhbnVwIHRoZSBlcnJvciBjYXNlLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcG9zZSk6CgkgIHByaW50IGEgY3JpdGljYWwgd2hlbiBzb21lIG9iamVjdCB3YXMgZGlzcG9zZWQgd2l0aAoJICBhIHBhcmVudCwgYWxzbyByZXZpdmUgdGhlIG9iamVjdCBzaW5jZSBpdCBtaWdodAoJICBjcmFzaCB0aGUgcGFyZW50LgoKMjAwNi0wMy0yMiAwOTowMzoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRml4IGFub3RoZXIgdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGaXggYW5vdGhlciB0eXBvLgoKMjAwNi0wMy0yMSAxOToyNzoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkaXNhYmxlIHNvbWUgdGVzdHMgd2hlbiB3ZSBkb24ndCBoYXZlIGEgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHNvbWUgdGVzdHMgd2hlbiB3ZSBkb24ndCBoYXZlIGEgcmVnaXN0cnkKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsc19zdWl0ZSk6CgkgIGRvbid0IGJ1aWxkIHRoZSBwYXJ0IHRoYXQgbmVlZHMgcGFyc2luZwoKMjAwNi0wMy0yMSAxNzoyNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtCgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGZpeCAtLWRpc2FibGUtcGFyc2UgYnVpbGQKCjIwMDYtMDMtMjEgMTc6MjQ6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICB0aGUgLmluIGZpbGUgaXMgaW4gY3ZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGUgLmluIGZpbGUgaXMgaW4gY3ZzCgoyMDA2LTAzLTIxIDE1OjQyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46IEZpeCB0eXBvOiBzL2ZlZWJhY2svZmVlZGJhY2svICgjMTMzNDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgIEZpeCB0eXBvOiBzL2ZlZWJhY2svZmVlZGJhY2svICgjMTMzNDk0KS4KCjIwMDYtMDMtMjEgMTU6MDQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEFkZCBGSUxFUyBzZWN0aW9uIGFuZCBjb3JyZWN0IGVudHJ5IGFib3V0IEdTVF9SRUdJU1RSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlICgjMTMzNDk1OyAjMTMzNDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBBZGQgRklMRVMgc2VjdGlvbiBhbmQgY29ycmVjdCBlbnRyeSBhYm91dCBHU1RfUkVHSVNUUllfUEFUSAoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSAoIzEzMzQ5NTsgIzEzMzQ5NCkuCgoyMDA2LTAzLTIxIDE0OjQxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBSZW1vdmUgZ3N0LW1kNXN1bSBhbmQgbWFuIHBhZ2UgKHRoZSBtZDVzaW5rIGVsZW1lbnQgcmVxdWlyZWQgd2FzIHJlbW92ZWQgYWdlcyBhZ28pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uMS5pbjoKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkgIFJlbW92ZSBnc3QtbWQ1c3VtIGFuZCBtYW4gcGFnZSAodGhlIG1kNXNpbmsgZWxlbWVudAoJICByZXF1aXJlZCB3YXMgcmVtb3ZlZCBhZ2VzIGFnbykKCjIwMDYtMDMtMjEgMTQ6MjQ6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IE1ha2Ugc3VyZSB0aGF0IHN0cmluZyBmaWVsZHMgaW4gc3RydWN0dXJlcy90YWdsaXN0cyBjb250YWluIHZhbGlkIFVURi04IC0gd2UgZG9uJ3Qgd2FudCB0byBwYXNzIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBNYWtlIHN1cmUgdGhhdCBzdHJpbmcgZmllbGRzIGluIHN0cnVjdHVyZXMvdGFnbGlzdHMKCSAgY29udGFpbiB2YWxpZCBVVEYtOCAtIHdlIGRvbid0IHdhbnQgdG8gcGFzcyBydWJiaXNoIHRvCgkgIGFwcGxpY2F0aW9ucyBiZWNhdXNlIG9mIGEgYnVnZ3kgcGx1Z2luIChjcC4gIzMzNDE2NykuCgoyMDA2LTAzLTIxIDE0OjE0OjQ5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgU2VyaWVzIG9mIGZpeGVzIGZvciBkZXJlZmVyZW5jZWQgcG9pbnRlcnMgdGhhdCBnY2MgNC4xIGNvbXBsYWlucyBhYm91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiA8ZGVsZXRlIGlmIG5vdCB1c2luZyBhIGJ1ZGR5PgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2Rpc3Bvc2UpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spLCAoZ3N0X2VsZW1lbnRfZGlzcG9zZSksCgkgIChnc3RfZWxlbWVudF9zZXRfYnVzX2Z1bmMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCksCgkgIChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9kaXNwb3NlKSwKCSAgKGdzdF9waXBlbGluZV91c2VfY2xvY2spLCAoZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpOgoJICBTZXJpZXMgb2YgZml4ZXMgZm9yIGRlcmVmZXJlbmNlZCBwb2ludGVycyB0aGF0IGdjYyA0LjEgY29tcGxhaW5zIGFib3V0LgoJICBJdCdzIGluIGZhY3QgYWxsIGlzc3VlcyB3aXRoIGdzdF8qb2JqZWN0X3JlcGxhY2UoKS4KCjIwMDYtMDMtMjEgMTM6NTU6NDQgKzAwMDAgIExvw69jIE1pbmllciA8bG9vbC5nbm9tZUB2aWEuZWNwLmZyPgoKCSAgcGtnY29uZmlnLzogVXNlIEBDSEVDS19MSUJTQCBoZXJlIGluc3RlYWQgb2YgaGFyZC1jb2RpbmcgLWxjaGVjayAoIzMzNDEwOSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTG/Dr2MgTWluaWVyICA8bG9vbCArIGdub21lIGF0IHZpYSBkb3QgZWNwIGRvdCBmcj4KCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFVzZSBAQ0hFQ0tfTElCU0AgaGVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIC1sY2hlY2sgKCMzMzQxMDkpLgoKMjAwNi0wMy0yMSAxMzo1MDo1MiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IGdzdF9bYnVmZmVyfGV2ZW50fG1lc3NhZ2VdX3JlZigpIG1hY3JvcyBhcmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBiZWNhdXNlIGdjYy00LjEgd2lsbCBhYm91dCBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0X1tidWZmZXJ8ZXZlbnR8bWVzc2FnZV1fcmVmKCkgbWFjcm9zIGFyZSByZXBsYWNlZCBieSBhIHN0YXRpYwoJICBpbmxpbmUgZnVuY3Rpb25zIGJlY2F1c2UgZ2NjLTQuMSB3aWxsIGFib3V0IGlmIHRoZSByZXR1cm4gdmFsdWUKCSAgaXNuJ3QgdXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKToKCSAgZ3N0X2V2ZW50X3JlZiBub3cgaGFzIHRvIGJlIGdpdmVuIGEgR3N0RXZlbnQqICwgZml4IGNoZWNrIGFjY29yZGluZ2x5LgoKMjAwNi0wMy0yMCAxNjo0NzozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICBSZW1vdmUgaXJyaXRhdGluZyBmaWxlIHRoYXQga2VlcHMgYnJlYWtpbmcgbXkgY2hlY2tvdXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgaXJyaXRhdGluZyBmaWxlIHRoYXQga2VlcHMgYnJlYWtpbmcgbXkgY2hlY2tvdXRzCgoyMDA2LTAzLTIwIDE2OjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgR19VTkxJS0VMWSB0byBvdXIgYm9pbGVycGxhdGUgdG8gb3B0aW1pc2UgdGhlICdhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIHR5cGUnIGNhc2UuIChDbG9zZXM6ICMzMzUxOS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIEdfVU5MSUtFTFkgdG8gb3VyIGJvaWxlcnBsYXRlIHRvIG9wdGltaXNlIHRoZSAnYWxyZWFkeSByZWdpc3RlcmVkCgkgIHRoZSB0eXBlJyBjYXNlLiAoQ2xvc2VzOiAjMzM1MTk1IGZvciBub3cpLiBJbiB0aGUgZnV0dXJlLCB3aGVuIHdlCgkgIGRlcGVuZCBvbiBHTGliIDIuMTAsIHdlIGNvdWxkIGFsc28gaW50ZXJuIHRoZSB0eXBlIG5hbWUgdXNpbmcKCSAgZ19pbnRlcm5fc3RhdGljX3N0cmluZygpCgoyMDA2LTAzLTIwIDEwOjU2OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBQb3NpdGlvbiBxdWVyeSBzaG91bGQgYWxzbyB0YWtlIG1heCBvZiBhbGwgc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwKCSAgKGJpbl9xdWVyeV9tYXhfaW5pdCksIChiaW5fcXVlcnlfcG9zaXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfcG9zaXRpb25fZG9uZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgUG9zaXRpb24gcXVlcnkgc2hvdWxkIGFsc28gdGFrZSBtYXggb2YgYWxsIHN0cmVhbXMuCgoyMDA2LTAzLTIwIDA5OjI4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IEZpeCBsZWFrcyBpbiBmYWtlc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19maW5hbGl6ZSk6CgkgIEZpeCBsZWFrcyBpbiBmYWtlc3JjLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWtzIGluIHRoZSB0ZXN0Y2FzZS4KCjIwMDYtMDMtMTkgMjE6Mzk6MjEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBhZGQgd2luMzIgc3BlY2lmaWMgaW1wb3J0IGRlY29yYXRpb24oX19kZWNsc3BlYyhkbGxpbXBvcnQpKSBmb3IgYWxsIGV4dGVybiBHc3REZWJ1Z0NhdGVnb3J5ICogdmFyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgYWRkIHdpbjMyIHNwZWNpZmljIGltcG9ydCBkZWNvcmF0aW9uKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkKCSAgZm9yIGFsbCBleHRlcm4gR3N0RGVidWdDYXRlZ29yeSAqIHZhcmlhYmxlcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBzb21lIGV4cG9ydHMsIHJlbW92ZSBlbXB0eSBsaW5lcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZHNwOgoJICBuZXcgcHJvamVjdCBmaWxlcyBhbmQgZXhwb3J0YXRpb24gZmlsZXMgYWRkZWQKCjIwMDYtMDMtMTkgMTY6MDU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogVXNlIHByb3BlciByZXR1cm4gdmFsdWUgZm9yIHByb2JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKGVvc19ldmVudF9jb3VudGVyKToKCSAgVXNlIHByb3BlciByZXR1cm4gdmFsdWUgZm9yIHByb2JlLgoKMjAwNi0wMy0xNyAxOToyNzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgbGVhayBidWZmZXJzLCBjYXBzIGFuZCBwYWRzIG9uIG5lZ290aWF0aW9uIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIERvbid0IGxlYWsgYnVmZmVycywgY2FwcyBhbmQgcGFkcyBvbiBuZWdvdGlhdGlvbiBlcnJvcnMuCgoyMDA2LTAzLTE2IDE1OjMzOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2ZhcS86IEZhcSByZXZpZXcgYW5kIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICAqIGRvY3MvZmFxL2ZhcS54bWw6CgkgICogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgICogZG9jcy9mYXEvbGVnYWwueG1sOgoJICAqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBGYXEgcmV2aWV3IGFuZCB1cGRhdGUuCgoyMDA2LTAzLTE2IDEwOjE4OjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgcG91bmQgdGhlIGNwdSB0byBwaWVjZXMgYnkgY2hlY2tpbmcgZ2V0X2NhcHMgd2hlbiBhY2NlcHRfY2FwcyBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZSBjYXBzIGFzIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgRG9uJ3QgcG91bmQgdGhlIGNwdSB0byBwaWVjZXMgYnkgY2hlY2tpbmcgZ2V0X2NhcHMgd2hlbiBhY2NlcHRfY2FwcwoJICBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZSBjYXBzIGFzIHRoZSBwYWQgYWxyZWFkeSBoYXMuCgkgIFVzZSBHU1RfREVCVUdfT0JKRUNUIHdoZW4gb3V0cHV0dGluZyBjYXBzIGNoYW5nZSBpbmZvcm1hdGlvbi4KCjIwMDYtMDMtMTUgMjA6MTc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICBGaXggZG9jcy4KCjIwMDYtMDMtMTUgMTY6Mjk6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEb2N1bWVudGF0aW9uIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEb2N1bWVudGF0aW9uIGZpeC4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCk6CgkgIE1ha2UgdGhlIGRlZmF1bHQgYWNjZXB0Y2FwcyBiZWhhdmlvdXIgYmUgdG8gY2hlY2sgdGhlIHJlcXVlc3RlZAoJICBjYXBzIGFnYWluc3QgdGhlIGdzdF9wYWRfZ2V0X2NhcHMgb3V0cHV0LgoJICBFbnN1cmUgdGhhdCBnc3RfcGFkX2FjY2VwdF9jYXBzIGlzIHVzZWQgdG8gY2hlY2sgY2FwcyB3aGVuIGEgcGFkCgkgIGRvZXNuJ3QgaGF2ZSBhIHNldGNhcHMgZnVuY3Rpb24sIHNvIHRoYXQgcGFkcyBhdXRvbWF0aWNhbGx5IHJlZnVzZQoJICBjYXBzIHRoYXQgdGhleSBkb24ndCBhbGxvdyBpbiB0aGVpciBwYWQgdGVtcGxhdGUuIChGaXhlcyAjMzMyOTg2KQoJICBXaGVuIGEgYnVmZmVyIHdpdGggYXR0YWNoZWQgY2FwcyBpcyBwdXNoZWQsIGVuc3VyZSB0aGF0IHRoZSBzb3VyY2UKCSAgcGFkIHJlY2VpdmVzIHRob3NlIGNhcHMgZXZlbiBpZiB0aGUgZWxlbWVudCBkaWRuJ3QgY2FsbAoJICBnc3RfcGFkX3NldF9jYXBzIGZpcnN0LgoKMjAwNi0wMy0xNSAxNjoyMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBBZGQgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgQWRkIHNvbWUgZG9jcy4KCjIwMDYtMDMtMTUgMTU6NTc6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgYSB3aG9sZSBidW5jaCBvZiBtaXNzaW5nIGZ1bmN0aW9ucyAoIzMzNDQzNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBhIHdob2xlIGJ1bmNoIG9mIG1pc3NpbmcgZnVuY3Rpb25zICgjMzM0NDM0KS4KCjIwMDYtMDMtMTQgMTk6MzY6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJldHRlciBkZWJ1ZyBpbmZvIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfZG9fcW9zKToKCSAgQmV0dGVyIGRlYnVnIGluZm8gd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudC4KCSAgUmVvcmdhbml6ZSBhIGJpdCBzbyB3ZSBjYW4gcGFzcyB0aGUgZ2V0X3RpbWVzKCkgcmVzdWx0cyBhcm91bmQuCgkgIFVzZSB0aGUgc2VnbWVudCBmb3JtYXQgd2hlbiBjYWxjdWxhdGluZyB0aGUgcnVubmluZyB0aW1lLgoJICBEb24ndCBkbyBRb1MgaXMgc3luYyBpcyBkaXNhYmxlZCBvciB3ZSBoYXZlIG5vIGNsb2NrIG9yIHRoZQoJICBlbGVtZW50IGRvZXMgbm90IHdhbnQgdXMgdG8gc3luYyB0byB0aGUgY2xvY2suCgkgIERvbid0IGRyb3AgYnVmZmVycyBpZiBRb1MgaXMgZGlzYWJsZWQgZm9yIG5vdy4KCjIwMDYtMDMtMTQgMTk6Mjg6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFya2VkIHRoZSBzdGF0cyBwcm9wZXJ0eSBhcyB1bmltcGxlbWVudGVkIHNvIHBlb3BsZSBkb24ndCBnZXQgd2lsZCBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCksIChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIE1hcmtlZCB0aGUgc3RhdHMgcHJvcGVydHkgYXMgdW5pbXBsZW1lbnRlZCBzbyBwZW9wbGUgZG9uJ3QgZ2V0CgkgIHdpbGQgaWRlYXMuCgkgIEFkZCBkZWJ1ZyBtZXNzYWdlIHdoZW4gcmVncmVzc2lvbiBnb2VzIHdyb25nLgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCjIwMDYtMDMtMTQgMTk6MjY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBSZXR1cm4gY29ycmVjdCByZXR1cm4gdHlwZSBpbiBjYXNlIG9mIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKToKCSAgUmV0dXJuIGNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gY2FzZSBvZiBlcnJvcnMuCgoyMDA2LTAzLTE0IDE5OjE2OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBEb24ndCBzZWdmYXVsdCBvbiBpbnZhbGlkIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfZ2V0X25hbWUpLCAoZ3N0X2Zvcm1hdF90b19xdWFyayk6CgkgIERvbid0IHNlZ2ZhdWx0IG9uIGludmFsaWQgZm9ybWF0cy4KCjIwMDYtMDMtMTQgMTg6MjU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IENhbid0IHVzZSBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSB3aGVuIHRoZSBzZWdtZW50IGlzIG5vdCBpbiBHU1RfVElNRV9GT1JNQVQgKGxpa2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIENhbid0IHVzZSBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSB3aGVuIHRoZSBzZWdtZW50CgkgIGlzIG5vdCBpbiBHU1RfVElNRV9GT1JNQVQgKGxpa2Ugd2l0aCBmaWxlc2luaywgZm9yIGV4YW1wbGUpLgoJICBTdG9wcyBmbGFjIGVuY29kaW5nIHBpcGVsaW5lcyBmcm9tIHNwZXdpbmcgY3JpdGljYWwgd2FybmluZ3MKCSAgYXQgRU9TICgjMzMxMjQ4KS4KCjIwMDYtMDMtMTQgMTY6MzI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogQWRkICdTaW5jZTogMC4xMC41JyB0byBndGstZG9jIGJsdXJiIGZvciBhZGRlZCBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgIEFkZCAnU2luY2U6IDAuMTAuNScgdG8gZ3RrLWRvYyBibHVyYiBmb3IgYWRkZWQgcHJvcGVydHkuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBEb24ndCB0cnkgdG8gdHlwZWZpbmQgZW1wdHkgc3RyZWFtcy4KCjIwMDYtMDMtMTQgMTE6MTg6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNlcGFyYXRlIFFvUyBjYWxjdWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcW9zKToKCSAgU2VwYXJhdGUgUW9TIGNhbGN1bGF0aW9uLgoJICBPbmx5IGRyb3AgYnVmZmVycyB3aGVuIGxhdGVuZXNzIGlzIGJpZ2dlciB0aGFuIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgYnVmZmVyLgoKMjAwNi0wMy0xMyAxNToxNzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEb24ndCBkZWFkbG9jayB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgIERvbid0IGRlYWRsb2NrIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLgoKMjAwNi0wMy0xMyAxMToyNzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYWtlIGJhc2V0cmFuc2Zvcm0gdmlydHVhbCBtZXRob2QgZm9yIHNyYyBldmVudHMgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1ha2UgYmFzZXRyYW5zZm9ybSB2aXJ0dWFsIG1ldGhvZCBmb3Igc3JjIGV2ZW50cyB0b28uCgkgIEhhbmRsZSBRT1MgaW4gYmFzZXRyYW5zZm9ybS4KCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcwoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQKCjIwMDYtMDMtMTMgMTE6MTY6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIFVzZSBRT1MgZGVidWcgY2F0ZWdvcnkuCgoyMDA2LTAzLTEzIDExOjExOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBWZXJ5IHNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgVmVyeSBzbWFsbCBkb2MgdXBkYXRlLgoKMjAwNi0wMy0xMyAxMTowODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIFFPUyBkZWJ1ZyBjYXRlZ29yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgQWRkZWQgUU9TIGRlYnVnIGNhdGVnb3J5CgoyMDA2LTAzLTEzIDExOjA0OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlciksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwgKGdzdF9waXBlbGluZV9pbml0KSwKCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBBZGRlZCBtZXRob2RzIGZvciBzZXR0aW5nIHRoZSBkZWxheS4KCSAgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2RlbGF5CgkgIEFQSTogZ3N0X3BpcGVsaW5lX2dldF9kZWxheQoJICBBZGQgcGlwZWxpbmUgZGVidWcgY2F0ZWdvcnkKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgVXBkYXRlZCBkb2NzLgoJICBEb24ndCByZXNldCBzdHJlYW0gdGltZSB3aGVuIHNlZWsgZmFpbGVkLgoKMjAwNi0wMy0xMyAxMDozMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTAzLTEyIDIwOjQ0OjQ2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBydWJiaXNoIGRvY3MgdGhhdCBhcmUgZW5jb3VyYWdpbmcgdXMgdG8gbGVhayBzdHJpbmdzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAzLTEyICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHJ1YmJpc2ggZG9jcyB0aGF0IGFyZSBlbmNvdXJhZ2luZwoJICB1cyB0byBsZWFrIHN0cmluZ3MuLi4KCjIwMDYtMDMtMTIgMjA6NDA6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGZpeCBkb2NzCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUKCjIwMDYtMDMtMTIgMTQ6MzI6MzcgKzAwMDAgIEp1bGlvIE0uIE1lcmlubyBWaWRhbCA8am1tdkBuZXRic2Qub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBjaGVjayBmb3IgbGliZ25vbWV1aSAobGVmdG92ZXIgZnJvbSBvbGQgZXhhbXBsZXMgdGhhdCBhcmVuJ3QgYnVpbHQgb3IgZGlzdGVkIGFueSBsb25nZXIpICgjMzM0MzAzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdWxpbyBNLiBNZXJpbm8gVmlkYWwgPGptbXYgYXQgbmV0YnNkIG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IGNoZWNrIGZvciBsaWJnbm9tZXVpIChsZWZ0b3ZlciBmcm9tIG9sZCBleGFtcGxlcwoJICB0aGF0IGFyZW4ndCBidWlsdCBvciBkaXN0ZWQgYW55IGxvbmdlcikgKCMzMzQzMDMpLgoKMjAwNi0wMy0xMSAxMzowMjoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBFbWl0IFJFU09VUkNFX05PX1NQQUNFX0xFRlQgZXJyb3IgaGVyZSBhcyB3ZWxsIHdoZW4gdGhlcmUncyBubyBzcGFjZSBsZWZ0IG9uIHRoZSBkZXZpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRW1pdCBSRVNPVVJDRV9OT19TUEFDRV9MRUZUIGVycm9yIGhlcmUgYXMgd2VsbCB3aGVuCgkgIHRoZXJlJ3Mgbm8gc3BhY2UgbGVmdCBvbiB0aGUgZGV2aWNlLgoKMjAwNi0wMy0xMCAyMzo0NDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjbG9jay5oOiBGaXggR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgc2lnbmVkbmVzcyBpc3N1ZXMgLSB3ZSBuZWVkIHRvIGNhc3QgdGhlIGlucHV0IHRvIEdzdENsb2NrVGltZSBiZWZvcmUgY29tcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIHNpZ25lZG5lc3MgaXNzdWVzIC0gd2UgbmVlZAoJICB0byBjYXN0IHRoZSBpbnB1dCB0byBHc3RDbG9ja1RpbWUgYmVmb3JlIGNvbXBhcmluZyB3aXRoCgkgIGFub3RoZXIgR3N0Q2xvY2tUaW1lIHZhbHVlLgoKMjAwNi0wMy0xMCAxOToxMjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nIHdoYXQgd2UncmUgd2FpdGluZyBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIHdoYXQgd2UncmUgd2FpdGluZyBvbgoKMjAwNi0wMy0xMCAxOToxMTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjEwLjQgPT09CgoyMDA2LTAzLTEwIDE5OjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL21hbnVhbC9SRUFETUU6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC40CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC40CgoyMDA2LTAzLTEwIDE1OjMwOjI3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBkb2NzIGZvciBkYXRhcHJvY290b2wgdG8gbm90IGdldCB0aGUgcmV0dXJuIHR5cGVzIGNvbXBsZXRlbHkgd3JvbmcgZm9yIGEgZmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBGaXggZG9jcyBmb3IgZGF0YXByb2NvdG9sIHRvIG5vdCBnZXQgdGhlIHJldHVybiB0eXBlcyBjb21wbGV0ZWx5CgkgIHdyb25nIGZvciBhIGZldyBmdW5jdGlvbnMuCgoyMDA2LTAzLTA5IDE5OjAwOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzaW5nCgoyMDA2LTAzLTA5IDE2OjUzOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMoKSBhbmQgZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cygpIHRvIGRpc2FibGUgYXV0b21hdGljIGZsdXNoaW5nIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cygpIGFuZAoJICBnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKCkgdG8gZGlzYWJsZSBhdXRvbWF0aWMKCSAgZmx1c2hpbmcgb2YgdGhlIHBpcGVsaW5lJ3MgR3N0QnVzIHdoZW4gZ29pbmcgZnJvbSBSRUFEWQoJICB0byBOVUxMIHN0YXRlICgjMzMyMDQ1KS4KCjIwMDYtMDMtMDkgMTI6MDg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3VyaV9oYXNfcHJvdG9jb2woKSAoIzMzMzc3OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF91cmlfaGFzX3Byb3RvY29sKCkgKCMzMzM3NzkpLgoKMjAwNi0wMy0wOSAxMTo0NToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay4qOiBSZXZpZXcgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwKCSAgKGdzdF9jbG9ja19pZF9jb21wYXJlX2Z1bmMpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2lkX3Vuc2NoZWR1bGUpLAoJICAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2dldF9pbnRlcm5hbF90aW1lKSwKCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pLCAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFJldmlldyBkb2NzLgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgRml4IGEgcG9zc2libGUgc2VnZmF1bHQgd2hlbiB0aGUgd2luZG93LXNpemUgaXMgbWFkZSBzbWFsbGVyLgoJICBDYWxjdWxhdGUgaml0dGVyIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBjbG9jayB3YWl0LiBJZGVhbGx5CgkgIHRoZSBjbG9jayBpbXBsZW1lbnRhdGlvbiBzaG91bGQgY2FsY3VsYXRlIGppdHRlciBidXQgd2UgbmVlZAoJICBBUEkgYnJlYWthZ2UgZm9yIHRoYXQuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOgoJICBEb2NzIHJldmlldy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBSZW1vdmUgbGVmdG92ZXIgZWxzZQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBHU1RfQ0xPQ0tfRElGRi4KCjIwMDYtMDMtMDkgMTA6NDY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IElmIHdlIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBzaXplLCB3ZSBzaG91bGQgaW1wbGVtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKToKCSAgSWYgd2UgYXJlIHByb3ZpZGVkIHdpdGggdGhlIHNpemUsIHdlIHNob3VsZCBpbXBsZW1lbnQKCSAgR3N0VHlwZUZpbmQ6OmdldF9sZW5ndGgsIHNvIHRoYXQgdHlwZWZpbmQgZnVuY3Rpb25zIHdobwoJICB3YW50IHRvIGNhbiBhY3R1YWxseSBwZWVrIGF0IHRoZSBtaWRkbGUgb2YgYSBmaWxlLgoKMjAwNi0wMy0wOCAxNDozMDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBBZGQgc29tZSB2ZXJ5IHZlcnkgYmFzaWMgZXJyb3IgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBBZGQgc29tZSB2ZXJ5IHZlcnkgYmFzaWMgZXJyb3IgY2hlY2tpbmcuCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgU29tZSB1cGRhdGVzIHRvIHRoZSBsaXN0IG9mIHRoaW5ncyB0byBjaGVjayB3aGVuIHdyaXRpbmcgYW4gZWxlbWVudC4KCjIwMDYtMDMtMDggMTM6NDQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDogQWRkZWQgc29tZSBkb2NzIGFib3V0IHRoZSBkZXNpZ24gb2YgdHJhbmZvcm0gZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBBZGRlZCBzb21lIGRvY3MgYWJvdXQgdGhlIGRlc2lnbiBvZiB0cmFuZm9ybSBlbGVtZW50cy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1hcmsgYnVmZmVycyB3aXRoIHRoZSBESVNDT05UIGZsYWcuCgoyMDA2LTAzLTA4IDEyOjU3OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBSZXdyaXRlIHJlZ2lzdHJ5LXNhdmluZyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgYW5kIGNoZWNrIGZvciBmYWlsZWQgd3JpdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlKSwKCSAgKGdzdF9yZWdpc3RyeV9zYXZlX2VzY2FwZWQpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2NhcHMpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBSZXdyaXRlIHJlZ2lzdHJ5LXNhdmluZyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgYW5kIGNoZWNrIGZvcgoJICBmYWlsZWQgd3JpdGVzLgoKMjAwNi0wMy0wOCAxMDoxNzo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDbGVhbnVwcywgc2VwYXJhdGUgbm9ybWFsIGZsb3cgZnJvbSBlcnJvcnMsIGFkZCBzZW5zaWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbnVwcywgc2VwYXJhdGUgbm9ybWFsIGZsb3cgZnJvbSBlcnJvcnMsIGFkZCBzZW5zaWJsZQoJICBERUJVRyBsaW5lcy4KCSAgRG9uJ3QgdHJ5IHRvIHJlbmVnb3RpYXRlIHdoZW4gYWxsb2NhdGluZyBhbiBvdXRwdXQgYnVmZmVyLgoJICBBbHNvIGNvcHkgRElTQ09OVCBidWZmZXIgZmxhZyB3aGVuIGNvcHlpbmcgYSBidWZmZXIuCgkgIFJlc2V0IHRoZSB0cmFuc2Zvcm0gYWZ0ZXIgd2UgZmluaXNoIHN0cmVhbWluZywgbm90IGR1cmluZy4KCjIwMDYtMDMtMDggMDk6NDY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVzZSBsYXN0IGJ1ZmZlciB0aW1lc3RhbXAgaW4gcW9zIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFVzZSBsYXN0IGJ1ZmZlciB0aW1lc3RhbXAgaW4gcW9zIG1lc3NhZ2UuCgoyMDA2LTAzLTA3IDE3OjA2OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvOiBBcHBsaWVkIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBGZXJnZWF1LCBmaXhlcyAjMzMzNDE2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICBBcHBsaWVkIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBGZXJnZWF1LCBmaXhlcyAjMzMzNDE2CgoyMDA2LTAzLTA3IDE2OjIxOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkZWQgYmFzZXNpbmsgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIGJhc2VzaW5rIG5ldyBtZXRob2RzLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBEb2NzIHVwZGF0ZXMuIEZsZXNoIG91dCB0aGUgUW9TIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNtYWxsIGRvYyBjbGFyaWZpY2F0aW9uIGFib3V0IG93bmVyc2hpcCBhbmQgZmx1c2hpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jKSwgKGdzdF9iYXNlX3Npbmtfc2V0X21heF9sYXRlbmVzcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9tYXhfbGF0ZW5lc3MpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIG5ldyBtZXRob2RzIHRvIGFsbG93IHN1YmNsYXNzIHRvIGNvbnRyb2wgbWF4LWxhdGVuZXNzCgkgIGFuZCBzeW5jLgoJICBHZW5lcmF0ZSB2ZXJ5IGJhc2ljIFFvUyBldmVudHMgYmFzZWQgb24gbGFzdCBzeW5jIG9ic2VydmF0aW9uLgoJICBVcGRhdGVkIGRvY3MsIGZpeCB0eXBvLCBhZGRlZCBzb21lIFFvUyBibHVyYi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmVtb3ZlIG9ic29sZXRlIF9nZXRfc3RhdGUoKSBjYWxscyBmcm9tIGRvY3MuCgoyMDA2LTAzLTA3IDE1OjE0OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4ICMzMzM2NjksIEFkZCBwYWQgYWNjZXNzb3IgZGVmaW5lcyBmb3IgR3N0QmFzZVRyYW5zZm9ybQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggIzMzMzY2OSwgQWRkIHBhZCBhY2Nlc3NvciBkZWZpbmVzIGZvciBHc3RCYXNlVHJhbnNmb3JtCgkgIEZpeCBkb2NzIGZvciBHc3RCYXNlU3JjLgoKMjAwNi0wMy0wNyAxNTowODo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNi0wMy0wNyAxMTo0NzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb2N1bWVudCB0aHJlYWQtdW5zYWZldHkgb2YgZ3N0X3ZhbHVlX3JlZ2lzdGVyX2Zvb19mdW5jKCkgd2hlbiB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ3N0X3ZhbHVlX2Zvby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jdW1lbnQgdGhyZWFkLXVuc2FmZXR5IG9mIGdzdF92YWx1ZV9yZWdpc3Rlcl9mb29fZnVuYygpCgkgIHdoZW4gdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIGdzdF92YWx1ZV9mb28oKSAoIzMyMjYyOCkuCgoyMDA2LTAzLTA3IDEwOjE5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNi0wMy0wNyAwOToyODo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBQdXNoIHNvdXJjZXMgZG9uJ3Qgc3VwcG9ydCBwdWxsIG1vZGUgYnkgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVzaF9zcmNfY2hlY2tfZ2V0X3JhbmdlKToKCSAgUHVzaCBzb3VyY2VzIGRvbid0IHN1cHBvcnQgcHVsbCBtb2RlIGJ5IGRlZmF1bHQuCgoyMDA2LTAzLTA2IDE5OjU1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCA6OmNoZWNrX2dldF9yYW5nZSgpIHZmdW5jIHRvIEdzdEJhc2VTcmMgKCMzMzI2MTEpLCBwcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIDo6Y2hlY2tfZ2V0X3JhbmdlKCkgdmZ1bmMgdG8gR3N0QmFzZVNyYyAoIzMzMjYxMSksCgkgIHByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYW5kIHJlbmFtZQoJICBnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKCkgdG8KCSAgZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UoKSBmb3IgY2xhcml0eS4KCjIwMDYtMDMtMDYgMTY6MjQ6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3R5bGVndWlkZToKCSAgc3R5bGUgZ3VpZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN0eWxlIGd1aWRlCgoyMDA2LTAzLTA2IDE2OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHByb3BlcnR5IG92ZXJyaWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICBNYWtlIHByb3BlcnR5IG92ZXJyaWRhYmxlLgoKMjAwNi0wMy0wNiAxNjowMjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogTWFrZSBtYXgtbGF0ZW5lc3MgYSBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgTWFrZSBtYXgtbGF0ZW5lc3MgYSBwcm9wZXJ0eS4KCjIwMDYtMDMtMDYgMTU6MTY6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGV2ZXIgZHJhdyBhIGZyYW1lIHRoYXQgaXMgPjEwbXMgbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpOgoJICBEb24ndCBldmVyIGRyYXcgYSBmcmFtZSB0aGF0IGlzID4xMG1zIGxhdGUuCgoyMDA2LTAzLTA2IDE0OjUxOjM2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBXaGVuIGNvcHlpbmcgYSBtZXNzYWdlLCBzZXQgdGhlIHBhcmVudF9yZWZjb3VudCBvZiB0aGUgZW5jbG9zZWQgc3RydWN0dXJlIHRvIHBvaW50IGF0IHRoZSBjb3B5LCBub3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9jb3B5KToKCSAgV2hlbiBjb3B5aW5nIGEgbWVzc2FnZSwgc2V0IHRoZSBwYXJlbnRfcmVmY291bnQgb2YgdGhlIGVuY2xvc2VkCgkgIHN0cnVjdHVyZSB0byBwb2ludCBhdCB0aGUgY29weSwgbm90IHRoZSBvcmlnaW5hbCBtZXNzYWdlLgoKMjAwNi0wMy0wNiAxNDo0NjozMSArMDAwMCAgQ2hyaXN0b3BoZSBGZXJnZWF1IDx0ZXVmQGdub21lLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBEbyBwcm9wZXIgY2FzdCBoZXJlIHRvIG1ha2UgR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBEbyBwcm9wZXIgY2FzdCBoZXJlIHRvIG1ha2UgR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFCgkgIHVzYWJsZSBpbiBjKysgY29kZSAoIzMzMzQxNzsgcGF0Y2ggYnk6IENocmlzdG9waGUgRmVyZ2VhdSkKCjIwMDYtMDMtMDYgMTQ6MzQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IFNob3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyA5OTo5OTo5OS45OTk5OTk5OTkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNob3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyA5OTo5OTo5OS45OTk5OTk5OTkKCjIwMDYtMDMtMDYgMTQ6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIGFub3RoZXIgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbm90aGVyIHF1b3RlCgoyMDA2LTAzLTA1IDIwOjU2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSBjYXBzIGFyZSB3cml0YWJsZSBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIGdzdF9jYXBzX2FwcGVuZCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIE1ha2Ugc3VyZSBjYXBzIGFyZSB3cml0YWJsZSBiZWZvcmUgcGFzc2luZyB0aGVtIHRvCgkgIGdzdF9jYXBzX2FwcGVuZCgpLgoKMjAwNi0wMy0wNCAxNDo0NTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5oOiBGaXggc29tZSBtaW5vciBkb2NzIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3MgZXJyb3JzLgoKMjAwNi0wMy0wNCAxMzo1NDoyNiArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3NAYnVydG9uaW5pLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgR1NUX1JFU09VUkNFX0VSUk9SX05PX1NQQUNFX0xFRlQgKGZvciAjMzMzMzUyOwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfcmVzb3VyY2VfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgR1NUX1JFU09VUkNFX0VSUk9SX05PX1NQQUNFX0xFRlQgKGZvciAjMzMzMzUyOwoJICBwYXRjaCBieTogUm9zcyBCdXJ0b24gPHJvc3MgYXQgYnVydG9uaW5pIGRvdCBjb20+KS4KCjIwMDYtMDMtMDMgMTY6NTg6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBBZGQgYSBjaGVjayBhbmQgb3V0cHV0IGEgZ193YXJuaW5nIHdoZW4gR1N0cmVhbWVyIGlzIGJ1aWx0IGFnYWluc3QgR0xpYiAyLjYgYnV0IHJ1bm5pbmcgYWdhaW5zdCAyLjggb3IgaGlnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIGEgY2hlY2sgYW5kIG91dHB1dCBhIGdfd2FybmluZyB3aGVuIEdTdHJlYW1lciBpcyBidWlsdAoJICBhZ2FpbnN0IEdMaWIgMi42IGJ1dCBydW5uaW5nIGFnYWluc3QgMi44IG9yIGhpZ2hlciwgYW5kIHZpY2UKCSAgdmVyc2EuIChDbG9zZXM6ICMzMjM1NDIpCgoyMDA2LTAzLTAzIDE1OjMyOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBDb21taXQgcGF0Y2ggZm9yIHBhcnNlX2xhdW5jaCBzeW50YXggZnJvbSAjMzMxMjU1LiBSZW1vdmVzIHN1cHBvcnQgZm9yIHF1b3RlZCBzdHJpbmdzIGFuZCBtaW1ldHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgQ29tbWl0IHBhdGNoIGZvciBwYXJzZV9sYXVuY2ggc3ludGF4IGZyb20gIzMzMTI1NS4gUmVtb3ZlcwoJICBzdXBwb3J0IGZvciBxdW90ZWQgc3RyaW5ncyBhbmQgbWltZXR5cGVzIHdoZW4gd3JpdGluZyBmaWx0ZXJlZAoJICBjYXBzLiBTZWUgdGhlIGJ1ZyByZXBvcnQgZm9yIG1vcmUgZGV0YWlscyAtIEknbSBwcmV0dHkgc3VyZSB0aGlzCgkgIG9ic2N1cmUgZmVhdHVyZSBpcyBub3QgaW4gdXNlIGJ5IF9hbnlvbmVfIGFueXdoZXJlLgoJICBXaXRoIHRoaXMgc2ltcGxlIGNoYW5nZSwgdGhlIHNpemUgb2YgdGhlIGdzdHJlYW1lci5zbyBoZXJlCgkgIGRyb3BzIGZyb20gMjE5M0tCIHRvIDE1NjVLQi4KCjIwMDYtMDMtMDMgMTQ6MTg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpIGZvciBjaGFpbi1iYXNlZCB0eXBlZmluZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksIChzdGFydF90eXBlZmluZGluZyksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbl9kb190eXBlZmluZGluZyk6CgkgIFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgZm9yIGNoYWluLWJhc2VkCgkgIHR5cGVmaW5kaW5nLgoKMjAwNi0wMy0wMyAxMTo0Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERlcHJlY2F0ZSAibWF4aW11bSIgcHJvcGVydHkgKG5vdCBvbmx5IHdhcyBpdCBvbmx5IHRha2VuIGludG8gYWNjb3VudCBmb3IgdHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X3Byb3BlcnR5KToKCSAgRGVwcmVjYXRlICJtYXhpbXVtIiBwcm9wZXJ0eSAobm90IG9ubHkgd2FzIGl0IG9ubHkgdGFrZW4gaW50bwoJICBhY2NvdW50IGZvciB0eXBlZmluZGluZyBpbiBwdXNoLW1vZGUgYW55d2F5LCBpdCBhbHNvIHdhcyBuZXZlcgoJICBhY3R1YWxseSBwb3NzaWJsZSB0byBzZXQgaXQgaW4gdGhlIGZpcnN0IHBsYWNlIGJlY2F1c2UgdGhlCgkgIHByb3BlcnR5IHdhcyByZWdpc3RlcmVkIHdpdGggdGhlIG51bWVyaWMgcHJvcGVydHkgSUQgZm9yIHRoZQoJICAibWluaW11bSIgcHJvcGVydHkpLiBSZWdpc3RlciAibWF4aW11bSIgcHJvcGVydHkgY29ycmVjdGx5LAoJICBmb3IgdGhlIHNha2Ugb2YgZnV0dXJlIGNvcHknbidwYXN0ZXJzLiBSZW1vdmUgc29tZSBjcnVmdAoJICBmcm9tIHByb3BlcnR5IGdldC9zZXQgZnVuY3Rpb25zLgoKMjAwNi0wMy0wMyAxMToyNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSBoZXJlLCBzbyB3ZSBjYW4gaG9ub3VyIHRoZSBtaW4tcHJvYmFiaWxpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpIGhlcmUsIHNvIHdlCgkgIGNhbiBob25vdXIgdGhlIG1pbi1wcm9iYWJpbGl0eSBwcm9wZXJ0eSBhbmQgYWxzbyBlbWl0CgkgIHRoZSBzaWduYWwgd2l0aCB0aGUgY29ycmVjdCBwcm9iYWJpbGl0eSBvZiB0aGUgZm91bmQgY2Fwcy4KCjIwMDYtMDMtMDIgMTM6NDU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSAoIzMzMzA0MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSAoIzMzMzA0MikuCgoyMDA2LTAzLTAyIDExOjA0OjU4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQXNzZXJ0aW5nIG9uIGEgZmFpbHVyZSB0byByZWFkIHBhcnQgb2YgdGhlIHJlZ2lzdHJ5IGlzIE5vdCBDb29sLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSk6CgkgIEFzc2VydGluZyBvbiBhIGZhaWx1cmUgdG8gcmVhZCBwYXJ0IG9mIHRoZSByZWdpc3RyeSBpcyBOb3QgQ29vbC4KCSAgSnVzdCBsb2cgYSB3YXJuaW5nIGFuZCByZXR1cm4gTlVMTCAod2hpY2ggaXMgYWxyZWFkeSBoYW5kbGVkKQoKMjAwNi0wMi0yOCAyMDo1NzoxMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBhZGRlZCBleHBvcnQgb2YgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZGVkIGV4cG9ydCBvZiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGRlZCBzb21lIGV4cG9ydHMgOiBnc3RfYmluX2l0ZXJhdGVfZWxlbWVudHMsIGdzdF9pdGVyYXRvcl9yZXN5bmMsCgkgIGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldAoKMjAwNi0wMi0yOCAxNzoyNDoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogV2UgdXNlIEZpbHRlciBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgV2UgdXNlIEZpbHRlciBub3cuCgkgIEFkZGVkIENvbm5lY3RvciB0byBtYXJrIGVsZW1lbnRzIHRoYXQgYXJlIG9ubHkgdXNlZCB0bwoJICBhbGxvdyBwaXBlbGluZSBjb25uZWN0aW9ucy4KCSAgTW92ZWQgRGVidWcgdG8gZXh0cmEgZmVhdHVyZSBzaW5jZSBtb3N0IG9mIHRoZW0gYXJlCgkgIGZ1bmN0aW9uYWxseSBzb21ldGhpbmcgZWxzZS4KCjIwMDYtMDItMjggMTc6MDM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFNvbWUgdXBkYXRlcyBhbmQgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgU29tZSB1cGRhdGVzIGFuZCBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMDItMjggMTU6NTQ6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFByb3Bvc2FsIGZvciBrbGFzcyBmaWVsZCB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgUHJvcG9zYWwgZm9yIGtsYXNzIGZpZWxkIHZhbHVlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBTdGFydCBvZiBhIGRvYyBkZXNjcmliaW5nIHN0cmVhbSBhbmF0b215LgoKMjAwNi0wMi0yOCAxMDo1MjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSGVscCB0aGUgY29tcGlsZXIgYSBiaXQgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBIZWxwIHRoZSBjb21waWxlciBhIGJpdCB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBVc2UgZXhpc3RpbmcgZm9yd2FyZCBjb2QgcGF0aCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0IHdoZW4KCSAgaGFuZGxpbmcgYSBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19nZXRfdHlwZSksIChnc3Rfc3RhdGljX2NhcHNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3R5cGUpLAoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEhlbHAgY29tcGlsZXIgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNi0wMi0yNyAyMDowMTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdoZW4gd2UgZ2V0IGFuIEVPUyBldmVudCBhbmQgaGF2ZSBub3QgZm91bmQgYSB0eXBlIHlldCAobW9zdCBsaWtlbHkgYmVjYXVzZSB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIFdoZW4gd2UgZ2V0IGFuIEVPUyBldmVudCBhbmQgaGF2ZSBub3QgZm91bmQgYSB0eXBlIHlldAoJICAobW9zdCBsaWtlbHkgYmVjYXVzZSB3ZSBoYWQgbm90IHlldCBhY2N1bXVsYXRlZAoJICBUWVBFX0ZJTkRfTUlOX1NJWkUgb2YgZGF0YSB5ZXQpLCB0cnkgdG8gZGV0ZXJtaW5lIHRoZQoJICB0eXBlIGdpdmVuIHRoZSBkYXRhIHdlIGhhdmUgc28gZmFyLiBGaXhlcyB0eXBlZmluZGluZwoJICBmb3IgdmVyeSBzaG9ydCBzdHJlYW1zIGFnYWluLCBtb3N0IG5vdGFibHkgcXVpY2t0aW1lCgkgIHJlZGlyZWN0aW9ucyBhcyB1c2VkIG9uIEFwcGxlJ3MgdHJhaWxlciBzaXRlICgjMzMxNzAxKS4KCjIwMDYtMDItMjcgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFRyeSB0eXBlZmluZGluZyBmYWN0b3JpZXMgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGZpcnN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6ICh0eXBlX2ZpbmRfZmFjdG9yeV9yYW5rX2NtcCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIFRyeSB0eXBlZmluZGluZyBmYWN0b3JpZXMgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGZpcnN0LgoKMjAwNi0wMi0yNyAxOToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBzZWN0aW9uIGZvciB0eXBlZmluZCBoZWxwZXIgYW5kIGFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBBZGQgc2VjdGlvbiBmb3IgdHlwZWZpbmQgaGVscGVyIGFuZCBhZGQgZG9jdW1lbnRhdGlvbgoJICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBmdW5jdGlvbi4KCjIwMDYtMDItMjcgMTg6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLio6IE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSAoIzMzMjcyMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGJ1Zl9oZWxwZXJfZmluZF9wZWVrKSwKCSAgKGJ1Zl9oZWxwZXJfZmluZF9zdWdnZXN0KSwgKHR5cGVfZmluZF9mYWN0b3J5X3JhbmtfY21wKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpICgjMzMyNzIzKS4KCjIwMDYtMDItMjcgMTU6NDM6MTAgKzAwMDAgIExvw69jIE1pbmllciA8bG9vbC5nbm9tZUB2aWEuZWNwLmZyPgoKCSAgUGF0Y2ggZnJvbSBMb8OvYyBNaW5pZXIgdG8gcHJldmVudCBDVlMgZGlyZWN0b3JpZXMgZ2V0dGluZyBkaXN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3Mvc2xpZGVzL01ha2VmaWxlLmFtOgoJICBQYXRjaCBmcm9tIExvw69jIE1pbmllciB0byBwcmV2ZW50IENWUyBkaXJlY3RvcmllcyBnZXR0aW5nIGRpc3RlZC4KCjIwMDYtMDItMjcgMTI6MTA6NDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNi0wMi0yNyAxMTowMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IFVzZSB0aGUgUkVGQ09VTlRJTkcgY2F0ZWdvcnkgZm9yIGNhcHMgcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZWYpLCAoZ3N0X2NhcHNfdW5yZWYpOgoJICBVc2UgdGhlIFJFRkNPVU5USU5HIGNhdGVnb3J5IGZvciBjYXBzIHJlZmNvdW50aW5nLgoKMjAwNi0wMi0yNiAxOToyMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFRoaXMgc2hvdWxkIGJlIDAgbm90IEdTVF9DTE9DS19USU1FX05PTkUgKHNlZSAjMzMxNzAxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICBUaGlzIHNob3VsZCBiZSAwIG5vdCBHU1RfQ0xPQ0tfVElNRV9OT05FIChzZWUgIzMzMTcwMSkuCgoyMDA2LTAyLTI2IDE0OjQyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSgpIGJlZm9yZSBfYWN0aXZhdGVfcHVsbCgpIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVc2UgZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKCkgYmVmb3JlIF9hY3RpdmF0ZV9wdWxsKCkKCSAgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgb3Blbi9jbG9zZSAoc2VlICMzMzE2OTApLgoKMjAwNi0wMi0yNCAxNjo1NDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBEb2NzIGVuaGFuY2VtZW50OiBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgd2hhdCB0aGUgZ3N0X3BhZF9hZGRfKl9wcm9iZSgpIGNhbGxiYWNrcyBzaG91bGQgbG9vayBsaWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jcyBlbmhhbmNlbWVudDogbWFrZSBpdCBjcnlzdGFsIGNsZWFyIHdoYXQgdGhlCgkgIGdzdF9wYWRfYWRkXypfcHJvYmUoKSBjYWxsYmFja3Mgc2hvdWxkIGxvb2sgbGlrZS4KCjIwMDYtMDItMjQgMTA6NTc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9jdW1lbnQgaG93IGFwcGxpY2F0aW9ucyBjYW4gc3RvcCByZWNvcmRpbmcgZnJvbSBsaXZlIHNvdXJjZXMgKHNlZSAjMzMwOTk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIERvY3VtZW50IGhvdyBhcHBsaWNhdGlvbnMgY2FuIHN0b3AgcmVjb3JkaW5nIGZyb20KCSAgbGl2ZSBzb3VyY2VzIChzZWUgIzMzMDk5NikuCgoyMDA2LTAyLTIzIDE4OjA2OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgSWdub3JlIG1vcmUgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUgc3R1ZmYuCgoyMDA2LTAyLTIzIDE3OjM5OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiAuLi4gYW5kIGFkZCBzb21lIHRlc3RzIGZvciB0aGUgYmFzZSBzb3VyY2UgRU9TIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKGVvc19ldmVudF9jb3VudGVyKSwKCSAgKGJhc2VzcmNfZW9zX2V2ZW50c19wdWxsKSwgKGJhc2VzcmNfZW9zX2V2ZW50c19wdXNoKSwKCSAgKGJhc2VzcmNfZW9zX2V2ZW50c19wdXNoX2xpdmVfb3ApLCAoYmFzZXNyY19lb3NfZXZlbnRzX3B1bGxfbGl2ZV9vcCksCgkgIChnc3RfYmFzZXNyY19zdWl0ZSksIChtYWluKToKCSAgLi4uIGFuZCBhZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGJhc2Ugc291cmNlIEVPUyBzdHVmZi4KCjIwMDYtMDItMjMgMTY6NTY6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogVGVzdCBjYXNlIG9yaWdpbmFsbHkgc2hvd2VkIHRoZSBwcm9ibGVtIGZpeGVkIGJlbG93LCBidXQgd2FzIHRoZW4gYW1lbmRlZC4gQWRkIGNoZWNrcyBiYWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6ICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKToKCSAgVGVzdCBjYXNlIG9yaWdpbmFsbHkgc2hvd2VkIHRoZSBwcm9ibGVtIGZpeGVkIGJlbG93LAoJICBidXQgd2FzIHRoZW4gYW1lbmRlZC4gQWRkIGNoZWNrcyBiYWNrIGF0IHRoZSBwbGFjZQoJICB3aGVyZSB0aGV5IHVzZWQgdG8gYmUuCgoyMDA2LTAyLTIzIDE2OjI0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IERvbid0IHVuY29uZGl0aW9uYWxseSBzZW5kIEVPUyB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvbid0IHVuY29uZGl0aW9uYWxseSBzZW5kIEVPUyB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvCgkgIFJFQURZIHN0YXRlLCBlc3AuIG1ha2Ugc3VyZSB3ZSBkb24ndCBzZW5kIHR3byBFT1MgZXZlbnRzCgkgIGluIHNvbWUgY2FzZXMgKGUuZy4gb25lIHdoZW4gcmVhY2hpbmcgRU9TIGFuZCBvbmUgd2hlbgoJICBnb2luZyBmcm9tIFBBVVNFRCB0byBSRUFEWSkuIEFsc28sIHdlIGRvbid0IHdhbnQgdG8gc2VuZAoJICBFT1MgZXZlbnRzIHdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZS4gSG93ZXZlciwgd2UgZG8KCSAgd2FudCB0byBzZW5kIGFuIEVPUyBldmVudCB3aGVuIHNodXR0aW5nIGRvd24gYSBsaXZlCgkgIHNvdXJjZSBleHBsaWNpdGx5LCBmb3IgZXhhbXBsZSAoZml4ZXMgIzMzMDk5NikuCgoyMDA2LTAyLTIzIDEwOjI0OjEzICswMDAwICBSZW5jaGkgUmFqdSA8cmVuY2hpQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVcGRhdGUgc3JjLT5yZWFkX3Bvc2l0aW9uIGFmdGVyIGEgc2VlayB3aGVuIG5vdCB1c2luZyBtbWFwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFVwZGF0ZSBzcmMtPnJlYWRfcG9zaXRpb24gYWZ0ZXIgYSBzZWVrIHdoZW4gbm90IHVzaW5nIG1tYXAuCgkgIEZpeGVzICMzMzIyNzcsIHBhdGNoIGJ5OiBSZW5jaGkgUmFqdSA8cmVuY2hpIGdtYWlsIGNvbT4KCjIwMDYtMDItMjAgMjM6MzQ6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogTWFrZSB0aGluZ3Mgd29yayB3aXRoIC0tZGlzYWJsZS1wYXJzZSBhcyB0aGV5IGRvIHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWtlIHRoaW5ncyB3b3JrIHdpdGggLS1kaXNhYmxlLXBhcnNlIGFzIHRoZXkgZG8gd2l0aAoJICAtLWRpc2FibGUtbG9hZC1zYXZlIC0gdGhlIHN5bWJvbHMgaW52b2x2ZWQgZGlzYXBwZWFyLCBidXQgdGhlCgkgIGhlYWRlciBpcyBzdGlsbCBpbnN0YWxsZWQgYW5kIEdTVF9ESVNBQkxFX1BBUlNFIGlzIGluY2x1ZGVkIHZpYQoJICBnc3Rjb25maWcuaAoKMjAwNi0wMi0yMCAxNjowNzo0MiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgc3R1cGlkIGJ1Zy4gSSB3YXMgc3VyZSBpIGNvbXBpbGVkIHRoYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IEZpeCBhIHN0dXBpZCBidWcuIEkgd2FzCgkgIHN1cmUgaSBjb21waWxlZCB0aGF0LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTU6MDc6MzMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0LzogTWFrZSB0aG9zZSBmdW5jdGlvbiBhY3Qgb24gdGhlIGdob3N0cGFkIHRhcmdldCB3aGVuIGl0J3MgYSBnaG9zdHBhZC4gKENsb3NlcyAjMzMxNzI3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKTogTWFrZSB0aG9zZSBmdW5jdGlvbiBhY3Qgb24gdGhlCgkgIGdob3N0cGFkIHRhcmdldCB3aGVuIGl0J3MgYSBnaG9zdHBhZC4gKENsb3NlcyAjMzMxNzI3KQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTU6MDE6MTQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2UgYmFzZXRyYW5zZm9ybSByZXVzYWJsZS4gKENsb3NlcyAjMzMxODk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBNYWtlIGJhc2V0cmFuc2Zvcm0gcmV1c2FibGUuCgkgIChDbG9zZXMgIzMzMTg5OCkKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDEyOjI2OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IE1vdmUgdGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBvZiBob3cgdG8gZG8gYSByZWxlYXNlIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIE1vdmUgdGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBvZiBob3cgdG8gZG8gYSByZWxlYXNlIHRvIHRoZSB0b3AKCSAgb2YgdGhlIGZpbGUuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEFsbG93IG11bHRpcGxlIHN0YXRlLXJlY2FsY3VsYXRpb24gdGhyZWFkcy4gKENsb3NlcyAjMzI4ODczKQoKMjAwNi0wMi0xOSAxMjoyNTowMSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBBZGQgR1NUX1NUUl9OVUxMIHRvIHRoZSBzZWNvbmQgc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RpbmZvLmg6IEFkZCBHU1RfU1RSX05VTEwgdG8gdGhlIHNlY29uZCBzdHJpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKTogR1NUX0RFQlVHX1BBRF9OQU1FIGV2YWx1YXRlcyB0bwoJICAyIHN0cmluZ3MuIFlvdSBjYW4ndCB1c2UgdGhlIFNUUl9OVUxMIG1hY3JvIG9uIHRoYXQuCgoyMDA2LTAyLTE5IDEyOjAwOjM4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogKGdzdF9wYXJzZV9mb3VuZF9wYWQpLCAoZ3N0X3BhcnNlX3BlcmZvcm1fZGVsYXllZF9saW5rKQoJICBGaXhlZCBOVUxMIHBvaW50ZXIgdXNlZCBpbiBHU1RfQ0FUX0RFQlVHIHVzaW5nIEdTVF9TVFJfTlVMTCBtYWNybwoJICBTbyBub3csIHdlIGNhbiB1c2UgLS1nc3QtZGVidWctbGV2ZWw9NSBvbiBXaW5kb3dzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBBZGRlZCBleHBvcnQgb2YgZ3N0X2NvbnRyb2xsZXJfaW5pdAoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgRml4ZWQgUmVsZWFzZSBwb3N0IGJ1aWxkIGNvbmZpZ3VyYXRpb24KCjIwMDYtMDItMTcgMTU6MjU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogQWRkZWQgYW5vdGhlciBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIGFub3RoZXIgY2hlY2suCgoyMDA2LTAyLTE1IDEyOjE3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2UgY2FuIGRvIHBlZWtzIGF0IG5vbi16ZXJvIG9mZnNldHMsIGFzIGxvbmcgYXMgdGhleSBmYWxsIHdpdGhpbiB0aGUgYnVmZmVyIHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspOgoJICBXZSBjYW4gZG8gcGVla3MgYXQgbm9uLXplcm8gb2Zmc2V0cywgYXMgbG9uZyBhcyB0aGV5CgkgIGZhbGwgd2l0aGluIHRoZSBidWZmZXIgd2UgaGF2ZS4KCjIwMDYtMDItMTUgMDE6MDI6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgdGVzdHN1aXRlIGZvciBwYXJzZSBsYXVuY2ggc3ludGF4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKGV4cGVjdGVkX2ZhaWxfcGlwZSksIChjaGVja19waXBlbGluZV9ydW5zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHBhcnNlX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGVzdHN1aXRlIGZvciBwYXJzZSBsYXVuY2ggc3ludGF4CgoyMDA2LTAyLTE0IDIwOjU3OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLCBkb24ndCBlcnJvciBvdXQgaW1tZWRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBXaGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgY2hhaW4gZnVuY3Rpb24sIGRvbid0CgkgIGVycm9yIG91dCBpbW1lZGlhdGVseS4gT25seSBlcnJvciBvdXQgd2l0aCBOT19DQVBTX0ZPVU5EIGlmCgkgIHRoZSBhbW91bnQgb2YgZGF0YSBpcyBhdCBsZWFzdCBNQVhfVFlQRUZJTkRfU0laRSBieXRlcywKCSAgb3RoZXJ3aXNlIHNpbXBseSB3YWl0IGZvciBtb3JlIGRhdGEgc28gd2UgY2FuIHRyeSB0eXBlZmluZGluZwoJICBhZ2FpbiB3aXRoIG1vcmUgZGF0YSBsYXRlci4gQWxzbywgZG9uJ3QgYXR0ZW1wdCB0byB0eXBlZmluZAoJICBpZiB3ZSBoYXZlIGxlc3MgdGhhbiBNSU5fVFlQRUZJTkRfU0laRSBkYXRhIGF2YWlsYWJsZS4gT3ZlcmFsbCwKCSAgdGhpcyBzaG91bGQgaW1wcm92ZSB0eXBlZmluZGluZyBmcm9tIG5ldHdvcmsgc291cmNlcyB3aGVyZSB0aGUKCSAgc2l6ZSBvZiB0aGUgZmlyc3QgYnVmZmVyIGNhbiBiZSBzb21ld2hhdCByYW5kb20uCgoyMDA2LTAyLTE0IDE4OjI2OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IHBhZHRlbXBsYXRlIGRvY3MsIGZpeGVzICMzMjg4MDUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIEZpeCBwYWR0ZW1wbGF0ZSBkb2NzLCBmaXhlcyAjMzI4ODA1LgoKMjAwNi0wMi0xNCAxNzoyNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTk9fUFJFUk9MTCBpcyBub3QgYW4gRVJST1Igc28gZG9uJ3Qgc2VuZCBjb25mdXNpbmcgbWVzc2FnZXMgdG8gdGhlIHVzZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBOT19QUkVST0xMIGlzIG5vdCBhbiBFUlJPUiBzbyBkb24ndCBzZW5kIGNvbmZ1c2luZyBtZXNzYWdlcwoJICB0byB0aGUgdXNlci4KCjIwMDYtMDItMTQgMTY6MTU6MDUgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFByb3RlY3QgZGVmYXVsdCByZWdpc3RyeSB3aXRoIGxvY2sgYW5kIHJlZi9zaW5rIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCksCgkgIChfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICBQcm90ZWN0IGRlZmF1bHQgcmVnaXN0cnkgd2l0aCBsb2NrIGFuZCByZWYvc2luayBpdC4KCSAgRml4ZXMgIzMyNDgxOCwgcGF0Y2ggYnkgVG9yc3RlbiBTY2hvZW5mZWxkLgoKMjAwNi0wMi0xNCAxMzowNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9saXN0X2FkZF9mb3JtYXQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdiksIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19sZW5ndGgpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbnRoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgRG9jcyBmaXhlcy4KCjIwMDYtMDItMTQgMTI6MDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZXdvcmtlZCBxdWVyeSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZXdvcmtlZCBxdWVyeSBkb2NzLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9saXN0X2FkZF9mb3JtYXQpLCAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbGVuZ3RoKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX250aCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZsZXNoIG91dCBmb3JtYXRzIHF1ZXJ5LCBhZGRlZCBzb21lIG5ldyBtZXRob2RzLgoJICBGaXggcGFydCBvZiAjMzI0Mzk4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0cXVlcnlfc3VpdGUpOgoJICBBZGRlZCBxdWVyeSBjcmVhdGlvbiB0ZXN0cy4KCjIwMDYtMDItMTQgMTE6Mzg6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgYSBkZWZhdWx0IGZpeGF0aW9uIGZvciBmcmFjdGlvbiBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKToKCSAgQWRkIGEgZGVmYXVsdCBmaXhhdGlvbiBmb3IgZnJhY3Rpb24gbGlzdHMuCgoyMDA2LTAyLTEzIDE3OjAzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRhc2suKjogRGV0ZWN0IGFuZCB3YXJuIGZvciBvYnZpb3VzIGRlYWRsb2Nrcy4gZml4ZXMgIzMyMDM0MAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfaW5pdCksIChnc3RfdGFza19mdW5jKSwKCSAgKGdzdF90YXNrX3NldF9sb2NrKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwKCSAgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIERldGVjdCBhbmQgd2FybiBmb3Igb2J2aW91cyBkZWFkbG9ja3MuIGZpeGVzICMzMjAzNDAKCSAgRml4IGVycm9yIGNhc2Ugd2hlcmUgbG9jayB3YXMgbm90IHJlbGVhc2VkLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6ICh0YXNrX2Z1bmMyKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRhc2tfZnVuYyksIChnc3RfZWxlbWVudF9zdWl0ZSksIChtYWluKToKCSAgQWRkIHRhc2sgY2hlY2suCgoyMDA2LTAyLTEzIDE0OjAwOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgY2hhbmdlbG9nCgoyMDA2LTAyLTEzIDEzOjU3OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGRvY3MuCgoyMDA2LTAyLTEzIDExOjUyOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlZCBUT0RPIGxpc3QsIGJhc2VzcmMgc3VwcG9ydHMgc2Vla2luZyB0byBub24tYnl0ZXMgZm9ybWF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPIGxpc3QsIGJhc2VzcmMgc3VwcG9ydHMgc2Vla2luZyB0byBub24tYnl0ZXMKCSAgZm9ybWF0cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXNlIHNoaW55IG5ldyBfVFlQRV9OQU1FIG1hY3Jvcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBNb3ZlIGRlYnVnIHN0YXRlbWVudCB1cC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCjIwMDYtMDItMTMgMTE6MTk6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgQVBJOiBhZGQgR1NUX01FU1NBR0VfVFlQRV9OQU1FIGFuZCBHU1RfUVVFUllfVFlQRV9OQU1FIG1hY3JvcyAoIzMzMDkwNikuIEFsc28sIGRvY3VtZW50IHRoZSBhbHJlYWR5IGV4aXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgTmV3IEFQSTogYWRkIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSBhbmQgR1NUX1FVRVJZX1RZUEVfTkFNRQoJICBtYWNyb3MgKCMzMzA5MDYpLiBBbHNvLCBkb2N1bWVudCB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBHU1RfUVVFUllfVFlQRSBtYWNyby4KCjIwMDYtMDItMTMgMTA6NTQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogT25seSBldmVudHMgdXAgdG8gdGhlIHBpcGVsaW5lIEVPUyBhcmUgY291bnRlZCwgdGhlcmUgYXJlIHNvbWUgbW9yZSB3aGVuIGdvaW5nIHRvIE5VTEwgY3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChkYXRhX3Byb2JlKSwgKGJ1ZmZlcl9wcm9iZSksCgkgIChldmVudF9wcm9iZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIE9ubHkgZXZlbnRzIHVwIHRvIHRoZSBwaXBlbGluZSBFT1MgYXJlIGNvdW50ZWQsIHRoZXJlIGFyZQoJICBzb21lIG1vcmUgd2hlbiBnb2luZyB0byBOVUxMIGN1cnJlbnRseSB3aGljaCB3ZSBkb24ndCBjYXJlCgkgIGFib3V0IGZvciBub3cuCgoyMDA2LTAyLTEzIDA5OjU5OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDb3JyZWN0bHkgY2hlY2sgZmx1c2hpbmcgYW5kIGVtaXQgcHJvYmVzLiBmaXhlcyAjMzMwMTI1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIENvcnJlY3RseSBjaGVjayBmbHVzaGluZyBhbmQgZW1pdCBwcm9iZXMuIGZpeGVzICMzMzAxMjUKCjIwMDYtMDItMTIgMTM6MTE6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZXZlcnQgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgd3JvbmcgY29tbWl0CgoyMDA2LTAyLTEwIDE2OjA0OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfY2xhc3NfaW5pdCk6IERlY2xhcmUgb3VyIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19jbGFzc19pbml0KTogRGVjbGFyZSBvdXIgcHJpdmF0ZSBkYXRhCgkgIHN0cnVjdHVyZS4KCSAgKGdzdF9idXNfaW5pdCk6IENhY2hlIHRoZSBsb2NhdGlvbiBvZiB0aGUgcHJpdmF0ZSBkYXRhIGluIHRoZQoJICBpbnN0YW5jZSBzdHJ1Y3R1cmUuCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKTogSW1wbGVtZW50IG5ldyBwdWJsaWMKCSAgZnVuY3Rpb25zLgoJICAoZ3N0X2J1c19wb3N0KTogRW1pdCB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCBpZiB0aGUgdXNlciBhc2tlZCBmb3IKCSAgaXQuIEZpeGVzICMzMzA2ODQuCgkgICogZ3N0L2dzdGJ1cy5oIChHc3RCdXMpOiBVc2UgYSBwYWRkaW5nIHBvaW50ZXIgdG8gY2FjaGUgdGhlCgkgIGxvY2F0aW9uIG9mIHRoZSBidXMtcHJpdmF0ZSBzdHJ1Y3R1dXJlLgoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKQoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbik6IE5ldyBwdWJsaWMgZnVuY3Rpb25zLgoKMjAwNi0wMi0wOSAyMzo0MDo0MyArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFBXRyBwYXRjaCBmcm9tICMzMjY4MDAgKFBhdGNoIGJ5IFZpbmNlbnQgVG9ycmkpCgoyMDA2LTAyLTA5IDE4OjMwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgYW5kIGFkZCBtaXNzaW5nIG5ldyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBhbmQgYWRkIG1pc3NpbmcgbmV3IGZpbGUKCjIwMDYtMDItMDkgMTg6Mjg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbQoJICBEaXN0IGRlc2lnbiBkb2NzLgoKMjAwNi0wMi0wOCAxNzozNDo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IGJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMyA9PT0KCjIwMDYtMDItMDggMTc6MzE6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4zLCAiTGlrZSBhIHZpcmdpbiIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMyA9PT0KCSAgMjAwNi0wMi0wOCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4zLCAiTGlrZSBhIHZpcmdpbiIKCjIwMDYtMDItMDggMTE6MTI6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAybmQgcHJlcmVsZWFzZSBvZiAwLjEwLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDggIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIDJuZCBwcmVyZWxlYXNlIG9mIDAuMTAuMwoJICBCdW1wIGxpYnRvb2wgdmVyc2lvbmluZy4KCjIwMDYtMDItMDcgMTU6NDk6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IE9ubHkgdXBkYXRlIGxhc3Rfc3RvcCBpZiB3ZSdyZSBpbiBUSU1FIGZvcm1hdCBhbmQgdGhlIHRpbWVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBPbmx5CgkgIHVwZGF0ZSBsYXN0X3N0b3AgaWYgd2UncmUgaW4gVElNRSBmb3JtYXQgYW5kIHRoZSB0aW1lc3RhbXAgaXMKCSAgdmFsaWQuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnRmdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpOgoJICBJZiB3ZSBnZXQgYSBuZXcgbmV3c2VnbWVudCB3aXRoIGEgZGlmZmVyZW50IGZvcm1hdCwgYWRhcHQKCSAgYWNjb3JkaW5nbHkuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOiBBY2NlcHQgYSBudW1lcmF0b3IKCSAgb2YgMC4gTm90IGEgcHJvYmxlbSwgcmVhbGx5LgoKMjAwNi0wMi0wNyAxMzoyMDoxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKTogT25seSB3YXJuIGlmIHN5bmM9dHJ1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKTogT25seQoJICB3YXJuIGlmIHN5bmM9dHJ1ZS4KCjIwMDYtMDItMDcgMTA6NTE6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA2LTAyLTA2IDIyOjAxOjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUHJlbGVhc2Ugb2YgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUHJlbGVhc2Ugb2YgMC4xMC4zCgoyMDA2LTAyLTA2IDIxOjUzOjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wMi0wNiAyMToyOTowNCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBwcm9qZWN0IGZpbGVzIHVwZGF0ZWQgdG8gdGhlIGRlZmF1bHQgdnM3IGNvbmZpZ3VyYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3OgoJICBwcm9qZWN0IGZpbGVzIHVwZGF0ZWQgdG8gdGhlIGRlZmF1bHQgdnM3IGNvbmZpZ3VyYXRpb24KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZGVkIG5ldyBzeW1ib2xzLAoJICByZW1vdmVkIGVtcHR5IGxpbmVzLAoJICBzb3J0ZWQgYWxsIGV4cG9ydGVkIHN5bWJvbHMgYWxwaGFiZXRpY2FsbHkKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9nY2hhci5oOgoJICB1c2Ugd2luZG93cyBsaW5lIGVuZC4KCjIwMDYtMDItMDYgMTU6MjU6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jIHN1YjgwIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2Mgc3ViODAgZml4ZXMKCjIwMDYtMDItMDYgMTQ6NTc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2VuZCBFT1MgZXZlbnQgd2hlbiBzdG9wcGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU2VuZCBFT1MgZXZlbnQgd2hlbiBzdG9wcGluZy4KCjIwMDYtMDItMDYgMTA6NDI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL1JFQURNRTogVGVsbCBmb2xrcyB3aGF0IHRvIGRvIGlmIHRoZSBwbHVnaW4tZm9vYmFyLnhtbCBmaWxlIGhhc24ndCBiZWVuIGdlbmVyYXRlZCBmb3IgYSBuZXdseS1hZGRlZCBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBUZWxsIGZvbGtzIHdoYXQgdG8gZG8gaWYgdGhlIHBsdWdpbi1mb29iYXIueG1sIGZpbGUKCSAgaGFzbid0IGJlZW4gZ2VuZXJhdGVkIGZvciBhIG5ld2x5LWFkZGVkIHBsdWdpbi4KCjIwMDYtMDItMDUgMTg6MTM6MjggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBDb2xsZWN0cGFkcyBub3cgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIEdzdFBhZCB0aGF0IHdhcyBhZGRlZC4gSW5kZWVkIHdlIGRvbid0IHdhbnQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOiBDb2xsZWN0cGFkcyBub3cgaG9sZHMgYSByZWZlcmVuY2UKCSAgdG8gdGhlIEdzdFBhZCB0aGF0IHdhcyBhZGRlZC4gSW5kZWVkIHdlIGRvbid0IHdhbnQgdG8gbG9vawoJICBhdCBwYWRzIHRoYXQgbWlnaHQganVzdCBnbyBhd2F5IHdpdGggbm8gd2FybmluZy4uLgoKMjAwNi0wMi0wNSAxNjoxODozNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBmbHVzaC4gQWRhcHRlZCBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgZmx1c2guIEFkYXB0ZWQgZnJvbQoJICBNYXJrIE5hdXdlbGFlcnRzJ3MgcGF0Y2ggb24gYnVnICMzMjg0OTEuCgoyMDA2LTAyLTA0IDEyOjQ5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAodGVzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZAoJICBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoKMjAwNi0wMi0wNCAxMTo1NjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2F0Y2ggZXJyb3JzIGR1cmluZyBwcmVyb2xsICgjMzIwMDg0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQ2F0Y2ggZXJyb3JzIGR1cmluZyBwcmVyb2xsICgjMzIwMDg0KS4KCjIwMDYtMDItMDMgMjE6MTQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBQb3N0IFRZUEVfTk9UX0ZPVU5EIGVycm9yIG1lc3NhZ2Ugd2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGFjdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFBvc3QgVFlQRV9OT1RfRk9VTkQgZXJyb3IgbWVzc2FnZSB3aGVuIHR5cGVmaW5kaW5nCgkgIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gYXMgd2VsbC4KCjIwMDYtMDItMDIgMTY6MTU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFVwZGF0ZWQgZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZWQgZG9jLgoKMjAwNi0wMi0wMiAxNjoxMjozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBrZWVwIHRyYWNrIG9mIHByZXJvbGxhYmxlIGl0ZW1zIHdoZW4gd2UgYXJlIHByZXJvbGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpOgoJICBPbmx5IGtlZXAgdHJhY2sgb2YgcHJlcm9sbGFibGUgaXRlbXMgd2hlbiB3ZSBhcmUKCSAgcHJlcm9sbGluZy4KCSAgQmVmb3JlIHJlbmRlcmluZyBhZnRlciBwcmVyb2xsLCBhbHdheXMgY2hlY2sgaWYgd2UKCSAgaGF2ZSBxdWV1ZWQgaXRlbXMuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTAyIDEzOjU4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRml4ZWQgIzMyNjU3NiwgYmVlbiBydW5uaW5nIHRoaXMgZm9yIHF1aXRlIHNvbWUgdGltZSB3aXRoIG5vIHJlZ3Jlc3Npb25zIGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEZpeGVkICMzMjY1NzYsIGJlZW4gcnVubmluZyB0aGlzIGZvciBxdWl0ZSBzb21lIHRpbWUgd2l0aAoJICBubyByZWdyZXNzaW9ucyBhdCBhbGwuCgoyMDA2LTAyLTAyIDEzOjQ0OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBBZGRlZCBtb3JlIHN1cHByZXNzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIEFkZGVkIG1vcmUgc3VwcHJlc3Npb25zCgoyMDA2LTAyLTAyIDEyOjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBVcGRhdGVkIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZWQgZG9jdW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLCAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2NoYWluKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgVG90YWxseSByZWZhY3RvcmVkIG1hdGNoaW5nIHRoZSBkZXNpZ24gZG9jLgoJICBVc2UgdHdvIHNlZ21lbnRzLCBvbmUgdG8gY2xpcCBpbmNvbW1pbmcgYnVmZmVycyBhbmQgYW5vdGhlciB0bwoJICBwZXJmb3JtIHN5bmMuCgkgIEhhbmRsZSBxdWV1ZWluZyBjb3JyZWN0bHksIGJ5cGFzcyB0aGUgcXVldWUgd2hlbiBwbGF5aW5nLgoJICBNYWtlIEVPUyBjYW5jZWxhYmxlLgoJICBIYW5kbGUgZXJyb3JzIGNvcnJlY3RseSB3aGVuIG9wZXJhdGluZyBpbiBwdWxsIGJhc2VkIG1vZGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgQWRkZWQgbmV3IGNoZWNrIGZvciBzaW5rcy4KCjIwMDYtMDItMDIgMTE6NTk6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBObyByZWFzb24gdG8gcmVmdXNlIHRvIGNsaXAgd2hlbiBzdGFydCA9PSAtMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgIE5vIHJlYXNvbiB0byByZWZ1c2UgdG8gY2xpcCB3aGVuIHN0YXJ0ID09IC0xCgoyMDA2LTAyLTAyIDExOjI0OjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogZGVzY3JpYmUgZHBhcmFtcyAoY29udHJvbGxlcikgZm9yIHBsdWdpbnMgdW5pZnkgZG9jcyBhIGxpdHRsZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRlc2NyaWJlIGRwYXJhbXMgKGNvbnRyb2xsZXIpIGZvciBwbHVnaW5zCgkgIHVuaWZ5IGRvY3MgYSBsaXR0bGUgbW9yZQoKMjAwNi0wMi0wMiAwOTo1MToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmNvbm5lY3RlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kCgkgIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgoyMDA2LTAyLTAxIDIyOjQzOjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9SRUFETUU6IHVuY292ZXIgYSBuYXN0eSBkZXRhaWwgb2YgdGhlIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvUkVBRE1FOgoJICB1bmNvdmVyIGEgbmFzdHkgZGV0YWlsIG9mIHRoZSBkb2NzIGJ1aWxkCgoyMDA2LTAyLTAxIDA4OjI3OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICB1cGRhdGVzIGZvciBwbHVnaW4gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyBmb3IgcGx1Z2luIGRvY3MKCjIwMDYtMDEtMzEgMTg6NDY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGNhY2hlIGR1cmF0aW9uIG1lc3NhZ2VzIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB1c2Ugb3IgZnJlZSB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKToKCSAgRG9uJ3QgY2FjaGUgZHVyYXRpb24gbWVzc2FnZXMgaWYgd2UncmUgbm90IGdvaW5nIHRvIHVzZSBvcgoJICBmcmVlIHRoZW0uCgoyMDA2LTAxLTMxIDE2OjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogbW9yZSBkcGFyYW0gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbW9yZSBkcGFyYW0gZG9jcwoJICAqIGdzdC9nc3RpbmRleC5jOgoJICBmaXggZG9jcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6IChnc3RfY29udHJvbGxlcl9pbml0KToKCSAgaW5pdCBqdXN0IG9uY2UKCjIwMDYtMDEtMzEgMTA6MTY6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogYWxzbyBzaG93IGZpbGUvbGluZS9mdW5jIGlmIG5vIGFkZGl0aW9uYWwgZGVidWcgd2FzIGdpdmVuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpOgoJICBhbHNvIHNob3cgZmlsZS9saW5lL2Z1bmMgaWYgbm8gYWRkaXRpb25hbCBkZWJ1ZyB3YXMgZ2l2ZW4KCjIwMDYtMDEtMzAgMjM6NTI6NTIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajogYWN0aXZhdGUgY29weSBvZiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOgoJICBhY3RpdmF0ZSBjb3B5IG9mIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0zMCAyMjoyOTowMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IGV4cG9ydCBnc3RfdmFsdWVfY29tcGFyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF92YWx1ZV9jb21wYXJlCgoyMDA2LTAxLTMwIDIxOjU3OjAwICswMDAwICBQaGlsaXBwZSBSb3VxdWllciA8Ym9uZmlyZS1hcHBAd2FuYWRvby5mcj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoX2RvX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfaW5pdCksIChnc3RfZmRfc2lua19kaXNwb3NlKSwgKGdzdF9mZF9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9mZF9zaW5rX3JlbmRlciksIChnc3RfZmRfc2lua19jaGVja19mZCksIChnc3RfZmRfc2lua19zdGFydCksCgkgIChnc3RfZmRfc2lua19zdG9wKSwgKGdzdF9mZF9zaW5rX3VubG9jayksIChnc3RfZmRfc2lua191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zaW5rX3VyaV9nZXRfdHlwZSksCgkgIChnc3RfZmRfc2lua191cmlfZ2V0X3Byb3RvY29scyksIChnc3RfZmRfc2lua191cmlfZ2V0X3VyaSksCgkgIChnc3RfZmRfc2lua191cmlfc2V0X3VyaSksIChnc3RfZmRfc2lua191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBQb3J0IGZkc2luayB0byAwLjEwIChwYXRjaCBieSBQaGlsaXBwZSBSb3VxdWllcikgKEZpeGVzICMzMjU0OTApCgoyMDA2LTAxLTMwIDIxOjExOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDogZGVzY3JpYmUgY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgZGVzY3JpYmUgY29udHJvbGxlcgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL21hbnVhbC90aXRsZXBhZ2UueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgICogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgY2xlYW51cCB4bWwgKG1vcmUgdG8gY29tZSkKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZml4IHR5cG8KCjIwMDYtMDEtMzAgMjA6MzY6NTEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDogYWRkIGF1dG9nZW4gb2YgZ3N0bWFyc2hhbC5jLGggZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIGFkZCBhdXRvZ2VuIG9mIGdzdG1hcnNoYWwuYyxoIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMzAgMTY6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJhc2VzaW5rIGNsZWFudXBzLCByZW1vdmUgc29tZSBvbGQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3ByZXJvbGxlZCksIChnc3RfYmFzZV9zaW5rX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2RlYWN0aXZhdGUpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEJhc2VzaW5rIGNsZWFudXBzLCByZW1vdmUgc29tZSBvbGQgY29kZS4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgc3ViY2xhc3MgY2FuIHByZXJvbGwgaW4gdGhlIHJlbmRlcgoJICBtZXRob2QgKG1vc3RseSBhdWRpb3NpbmtzKS4KCSAgSGFuZGxlIG1vcmUgZXZlbnRzLgoJICBSZW1vdmUgc29tZSBsb2NrcyBhcm91bmQgdmFyaWFibGVzIHRoYXQgYXJlIG5vdyBwcm90ZWN0ZWQKCSAgd2l0aCB0aGUgUFJFUk9MTF9MT0NLIChjbG9ja19pZCwgZmx1c2hpbmcsIC4uKS4KCSAgT3B0aW1pemUgcG9zaXRpb24gcXVlcnkgc29tZSBtb3JlLCBkbyBjb3JyZWN0IGxvY2tpbmcuCgkgIFJlbW92ZSBvbGQgY29kZSB0byBwdXNoIHF1ZXVlIGluIHN0YXRlIGNoYW5nZSwgdGhpcyBpcyBub3QKCSAgbmVlZGVkIGFueW1vcmUgc2luY2UgcHJlcm9sbCBibG9ja3Mgb24gYWxsIHByZXJvbGxhYmxlIGl0ZW1zCgkgIG5vdy4KCSAgQWxtb3N0IGltcGxlbWVudGVkIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jLgoKMjAwNi0wMS0zMCAxNTo1Nzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogV2FpdCBmb3IgcmVmY291bnQgdG8gc2V0dGxlIGRvd24gYmVmb3JlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFdhaXQgZm9yIHJlZmNvdW50IHRvIHNldHRsZSBkb3duIGJlZm9yZSBjaGVja2luZy4KCjIwMDYtMDEtMzAgMTU6MTU6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFBzZXVkbyBjb2RlIG92ZXJ2aWV3IG9mIGRlc2lyZWQgc2luayBiZWhhdmlvdXIgcmVnYXJkaW5nIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgUHNldWRvIGNvZGUgb3ZlcnZpZXcgb2YgZGVzaXJlZCBzaW5rIGJlaGF2aW91ciByZWdhcmRpbmcKCSAgcHJlcm9sbC4KCjIwMDYtMDEtMzAgMTQ6Mjg6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBCbGVoLCBmb3Jnb3QgdG8gY29tbWl0IHRoZSBjaGFuZ2Vsb2cgZW50cnkgb24gU2F0dXJkYXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCbGVoLCBmb3Jnb3QgdG8gY29tbWl0IHRoZSBjaGFuZ2Vsb2cgZW50cnkgb24gU2F0dXJkYXkuCgoyMDA2LTAxLTI5IDIxOjU2OjAwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czYvZ3JhbW1hci5kc3A6IGZpeCBzb21lIGJ1Z3MgaW4gYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgZml4IHNvbWUgYnVncyBpbiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMjkgMTk6MjQ6MTggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IGV4cG9ydCBzb21lIG5ldyBzeW1ib2xzOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCwgZ3N0X2l0ZXJhdG9yX25leHQsIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBzb21lIG5ldyBzeW1ib2xzOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCwKCSAgZ3N0X2l0ZXJhdG9yX25leHQsIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdAoKMjAwNi0wMS0yOSAxNzozNzowOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogU2V0IHBhZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5LiBGaXhlcyAjMzI5MTA1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKToKCSAgU2V0IHBhZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5LiBGaXhlcyAjMzI5MTA1LgoKMjAwNi0wMS0yOSAxNjo1NDo0MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM4OiBhZGQgdnM4IHByb2plY3QgZmlsZXMgY3JlYXRlZCBieSBTZXJnZXkgU2NvYmljaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czg6CgkgIGFkZCB2czggcHJvamVjdCBmaWxlcyBjcmVhdGVkIGJ5IFNlcmdleSBTY29iaWNoCgoyMDA2LTAxLTI4IDAwOjU5OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBEb24ndCBsZWFrIHBhZCByZWZlcmVuY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGlua19wYWRzKToKCSAgRG9uJ3QgbGVhayBwYWQgcmVmZXJlbmNlcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIGJ1bmNoIG9mIGxlYWtzLiBNYWtlIGdlbmVyaWMvc2lua3MuYwoJICB1c2UgYSBiaXQgbGVzcyBjcHUgYnkgc2xvd2luZyB0aGUgYnVmZmVyIHJhdGUKCSAgYmV0d2VlbiBmYWtlc3JjIGFuZCBmYWtlc2luay4KCjIwMDYtMDEtMjcgMjI6MzQ6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvYyBmaXhlcywgdG8gbGluayB0byBmdW5jdGlvbiwganVzdCB3cml0ZSBnc3RfY29vbF9mdW5jdGlvbigpLCBkb24ndCBwcmVmaXggd2l0aCAnIycKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvYyBmaXhlcywgdG8gbGluayB0byBmdW5jdGlvbiwganVzdCB3cml0ZSBnc3RfY29vbF9mdW5jdGlvbigpLCBkb24ndAoJICBwcmVmaXggd2l0aCAnIycKCjIwMDYtMDEtMjcgMTY6NTk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQWx3YXlzIHByZWZlciBhbiBhY3R1YWwgcmV0dXJuIHZhbHVlIGZyb20gYSBzcmMgcGFkIGluIHBsYWNlIG9mIE5PVF9MSU5LRUQuIFRoaXMgbWVhbnMgd2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLAoJICAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgQWx3YXlzIHByZWZlciBhbiBhY3R1YWwgcmV0dXJuIHZhbHVlIGZyb20gYSBzcmMKCSAgcGFkIGluIHBsYWNlIG9mIE5PVF9MSU5LRUQuIFRoaXMgbWVhbnMgd2UgcmV0dXJuCgkgIFdST05HX1NUQVRFIHdoZW4gYWxsIHNyYyBwYWRzIGFyZSBXUk9OR19TVEFURQoJICBpbnN0ZWFkIG9mIE5PVF9MSU5LRUQuCgkgIExvY2sgd2hlbiByZXBsYWNpbmcgdGhlIGxhc3QgbWVzc2FnZSB0byBwcmV2ZW50CgkgIHJhY2luZyB3aXRoIHRoZSBnZXRfcHJvcGVydHkgbWV0aG9kLgoJICBBZGQgZGVidWcgb3V0cHV0CgoyMDA2LTAxLTI3IDExOjUzOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIGEgdmVyeSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgaGF2ZSBjYXVnaHQgdGhlIG1lbWxlYWsgSSBmaXhlZCBsYXN0IG5pZ2h0IChpZiBub3QgZm9yIHRoZSBzbGljZSBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHF1ZXJ5X3N1aXRlKSwKCSAgKG1haW4pOgoJICBBZGQgYSB2ZXJ5IHNpbXBsZSBjaGVjayB0aGF0IHNob3VsZCBoYXZlIGNhdWdodCB0aGUgbWVtbGVhayBJIGZpeGVkCgkgIGxhc3QgbmlnaHQgKGlmIG5vdCBmb3IgdGhlIHNsaWNlIGFsbG9jYXRvciBoaWRpbmcgaXQpCgoyMDA2LTAxLTI3IDAxOjQ4OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2xlYW4gdXAgcmVmZXJlbmNlcyB0byB0aGUgY2xvY2sgcHJvdmlkZXIgd2hlbiBkaXNwb3NlZCBvciB3aGVuIGhhbmRsaW5nIGEgY2xvY2stbG9zdCBtZXNzYWdlIGZyb20gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKToKCSAgQ2xlYW4gdXAgcmVmZXJlbmNlcyB0byB0aGUgY2xvY2sgcHJvdmlkZXIgd2hlbiBkaXNwb3NlZCBvciB3aGVuCgkgIGhhbmRsaW5nIGEgY2xvY2stbG9zdCBtZXNzYWdlIGZyb20gaXQuCgkgIFVucmVmIHNpbmtzIHdoZW4gcGVyZm9ybWluZyBhIHF1ZXJ5IHZpYSBnc3RfaXRlcmF0b3JfZm9sZCwgYXMgdGhlCgkgIGdzdF9iaW5faXRlcmF0ZV9zaW5rcyBpdGVyYXRvciByZWZzIGVhY2ggaXRlbS4gKEZpeGVzICMzMjM4NzQpCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCksIChnc3RfY2xvY2tfZGlzcG9zZSksCgkgIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6CgkgIERyb3Agb3VyIHJlZmVyZW5jZSB0byB0aGUgbWFzdGVyIGNsb2NrLCBpZiBhbnksIHdoZW4gd2UgYXJlIGRpc3Bvc2VkLgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKToKCSAgQ2hhaW4gdXAgaW4gZGlzcG9zZS4KCjIwMDYtMDEtMjcgMDE6MTM6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vaTE4bjoKCSAgYWRkIG5vdGVzIG9uIGkxOG4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlcyBvbiBpMThuCgoyMDA2LTAxLTI2IDEyOjU5OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoKMjAwNi0wMS0yNiAxMjo0MDoxNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBBcHBseSBwYXRjaCBmcm9tICMzMjg3MTUuIFRlZSBub3cgaGFuZGxlcyBwYWQgYmVpbmcgTk9UX0xJTktFRCBvciBpbiBXUk9OR19TVEFURS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwKCSAgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6IEFwcGx5IHBhdGNoIGZyb20gIzMyODcxNS4gVGVlIG5vdwoJICBoYW5kbGVzIHBhZCBiZWluZyBOT1RfTElOS0VEIG9yIGluIFdST05HX1NUQVRFLgoKMjAwNi0wMS0yNiAwODo1Nzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IG1vcmUgdXBkYXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIG1vcmUgdXBkYXRpbmcKCjIwMDYtMDEtMjYgMDg6Mzk6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiByZW1vdmUgb2Jzb2xldGUgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIHJlbW92ZSBvYnNvbGV0ZSBlbnRyeQoKMjAwNi0wMS0yNiAwNjo1NzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgY29kZSBmb3IgZG93bnN0cmVhbSBldmVudHMsIHJldmlld2VkIGRvY3MgaW4gZ3N0ZXZlbnQuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NyYyksIChzcmNfaXRlcmF0b3JfZmlsdGVyKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3VyY2VzKSwgKGdzdF9iaW5fc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBhZGRlZCBjb2RlIGZvciBkb3duc3RyZWFtIGV2ZW50cywgcmV2aWV3ZWQgZG9jcyBpbiBnc3RldmVudC5jCgoyMDA2LTAxLTI1IDE4OjA3OjAyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2Ugb25seSBxdWVyeSBwb3NpdGlvbiB1c2luZyB0aGUgY2xvY2sgaW4gdGhlIHBsYXlpbmcgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBXZSBvbmx5IHF1ZXJ5IHBvc2l0aW9uIHVzaW5nIHRoZSBjbG9jayBpbiB0aGUgcGxheWluZyBzdGF0ZS4KCSAgUXVlcnkgcGVlciBpbiB0aGUgb3RoZXIgY2FzZXMuCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiBVcGRhdGVzLgoKMjAwNi0wMS0yNCAxNjoyMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBIGNsb2NrIGVudHJ5IHRoYXQgaXMgc2NoZWR1bGVkIGZvciB0aGUgZXhhY3QgdGltZSBvZiB0aGUgY2xvY2sgaXMgc3RpbGwgaW4gdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBBIGNsb2NrIGVudHJ5IHRoYXQgaXMgc2NoZWR1bGVkIGZvciB0aGUgZXhhY3QgdGltZSBvZiB0aGUKCSAgY2xvY2sgaXMgc3RpbGwgaW4gdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoKMjAwNi0wMS0yMyAxMjozNzozMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBBZGQgbmV3IHZzNyBwcm9qZWN0IGZpbGVzIGFuZCBzb2x1dGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3IDoKCSAgQWRkIG5ldyB2czcgcHJvamVjdCBmaWxlcyBhbmQgc29sdXRpb24uCgoyMDA2LTAxLTIzIDEyOjIzOjAwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IGFsbCBmaWxlcyByZW1vdmVkIGFzIHRoZXkgd2VyZSBvdXQtZGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNzoKCSAgYWxsIGZpbGVzIHJlbW92ZWQgYXMgdGhleSB3ZXJlIG91dC1kYXRlZC4KCjIwMDYtMDEtMjAgMTk6MDE6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogdXBkYXRlIG5vdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZSBub3RlcwoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19uZXcpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgdXNlIGdzdF9idXNfbmV3KCksIGltcHJvdmUgbG9nZ2luZywgZml4IGRvY3MKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBmb3IgY3ZzIGJ1aWxkCgoyMDA2LTAxLTIwIDE4OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGF1dG9nZW4uc2g6IHVwIHJlcXVpcmVkIHZlcnNpb24gb2YgYXV0b21ha2UgdG8gMS43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIHVwIHJlcXVpcmVkIHZlcnNpb24gb2YgYXV0b21ha2UgdG8gMS43CgoyMDA2LTAxLTIwIDEyOjUzOjQwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogZXhwb3J0IGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlCgoyMDA2LTAxLTIwIDExOjQ2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGdzdF9ldmVudF9yZXBsYWNlKCkgKCMzMjcwMDEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBnc3RfZXZlbnRfcmVwbGFjZSgpICgjMzI3MDAxKQoKMjAwNi0wMS0yMCAwOTo1NjozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogTWFrZSBpdCBhY3R1YWxseSBjb21waWxlIHRvby4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgTWFrZSBpdCBhY3R1YWxseSBjb21waWxlIHRvby4uCgoyMDA2LTAxLTIwIDA5OjUzOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ2xhcmlmeSBiZWhhdmlvdXIgb2YgX2lzX2VxdWFsKCkgd2hlbiBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgQ2xhcmlmeSBiZWhhdmlvdXIgb2YgX2lzX2VxdWFsKCkgd2hlbiBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX3NldF9jYXBzKToKCSAgQ2xlYW51cHMuIERvbid0IHVucmVmIE5VTEwgY2Fwcy4KCSAgV2hlbiBzZXR0aW5nIHRoZSBzYW1lIGNhcHMsIHByb3RlY3QgY2FwcyBvZiB0aGUgcGFkIHdpdGgKCSAgcHJvcGVyIGxvY2suCgkgIFVzZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgX2lzX2VxdWFsKCkgd2hlbiBjb21wYXJpbmcgY2Fwcy4KCjIwMDYtMDEtMjAgMDk6MjY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCBsb29wIGluZmluaXRlbHkgaWYgdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgdG8gcHJlc2VudC4gUGFydGlhbGx5IGZpeGVzICMzMjcxOTcsIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKToKCSAgRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IGlmIHRoZXJlIGFyZSBubyBidWZmZXJzIHRvIHByZXNlbnQuIFBhcnRpYWxseQoJICBmaXhlcyAjMzI3MTk3LCBidXQgY29sbGVjdHBhZHMgaXMganVzdCBicm9rZW4gZm9yIHJldXNpbmcgZWxlbWVudHMKCSAgdG8gZG8gbXVsdGlwbGUgZW5jb2RlcyBhdG0uCgoyMDA2LTAxLTIwIDA5OjEyOjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzLzogVVJMX0hBTkRMRVIgaXMgbm90IGEgcGx1Z2luIGZlYXR1cmUgd2UgY2FuIHNlYXJjaCBmb3IgaW4gdGhlIHJlZ2lzdHJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9mZWF0dXJlcyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBVUkxfSEFORExFUiBpcyBub3QgYSBwbHVnaW4gZmVhdHVyZSB3ZSBjYW4gc2VhcmNoIGZvciBpbgoJICB0aGUgcmVnaXN0cnkuCgoyMDA2LTAxLTE5IDE4OjA2OjE4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2hlbiBhY3RpdmF0aW5nLCBkbyBzcmMgcGFkcyBmaXJzdCwgdGhlbiBzaW5rIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgV2hlbiBhY3RpdmF0aW5nLCBkbyBzcmMgcGFkcyBmaXJzdCwgdGhlbiBzaW5rIHBhZHMuCgkgIFdoZW4gZGUtYWN0aXZhdGluZywgZG8gc2luayBwYWRzIGZpcnN0LCB0aGVuIHNyYyBwYWRzLgoKMjAwNi0wMS0xOSAxNDowMjowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252IHRvIHRoZSBkb2NzCgoyMDA2LTAxLTE5IDEzOjMwOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBGaXggZG9jcyB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBGaXggZG9jcyB0eXBvCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBEbyBzb21lIHJlZmFjdG9yaW5nLiBEb2Vzbid0IGFjdHVhbGx5IGNoYW5nZSBmdW5jdGlvbmFsaXR5LAoJICBidXQgbWFrZXMgbGFuZGluZyB0aGUgRFJBSU4gZXZlbnQgZWFzaWVyIGxhdGVyLgoKMjAwNi0wMS0xOSAxMDozOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOiBVcGRhdGUgZnJvbSAwLjkueCB0byAwLjEwIEFQSSBhbmQgbWFrZSBleGFtcGxlIGEgYml0IGNsZWFyZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBVcGRhdGUgZnJvbSAwLjkueCB0byAwLjEwIEFQSSBhbmQgbWFrZSBleGFtcGxlIGEgYml0CgkgIGNsZWFyZXIuCgoyMDA2LTAxLTE5IDA5OjI0OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgbWV0aG9kcy4KCjIwMDYtMDEtMTkgMDk6MDg6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDogVXBkYXRlIHNwYXJzZSBzdHJlYW1zIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBVcGRhdGUgc3BhcnNlIHN0cmVhbXMgZG9jCgoyMDA2LTAxLTE5IDA5OjAyOjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBBZGQgRFJBSU4gZXZlbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgV3JpdGUgc29tZSB0aGluZ3MgYWJvdXQgdXNpbmcgTkVXU0VHTUVOVCB0byBrZWVwIHNwYXJzZSBzdHJlYW1zCgkgIGZsb3dpbmcuCgoyMDA2LTAxLTE4IDE4OjU2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBHdWFyZCBnc3Rfb2JqZWN0X3VucmVmIGNhbGwgYWdhaW5zdCBhIE5VTEwgb2JqZWN0IChkaXNwb3NlIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSk6CgkgIEd1YXJkIGdzdF9vYmplY3RfdW5yZWYgY2FsbCBhZ2FpbnN0IGEgTlVMTCBvYmplY3QgKGRpc3Bvc2UKCSAgY2FuIHRoZW9yZXRpY2FsbHkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzKS4KCjIwMDYtMDEtMTggMTg6MDU6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIEFkZCBEUkFJTiBldmVudC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBXcml0ZSBzb21lIHRoaW5ncyBhYm91dCB1c2luZyBORVdTRUdNRU5UIHRvIGtlZXAgc3BhcnNlIHN0cmVhbXMKCSAgZmxvd2luZy4KCjIwMDYtMDEtMTggMTg6MDE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBBZGRlZCBtb3JlIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluKToKCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCjIwMDYtMDEtMTggMTc6NTk6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBJZ25vcmUgZmFrZXNpbmsgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIElnbm9yZSBmYWtlc2luayB0ZXN0LgoKMjAwNi0wMS0xOCAxNzo1Nzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgZmFrZXNpbmsgdGVzdCB0aGF0IGNoZWNrcyBwcmVyb2xsaW5nIGFuZCBjbGlwcGluZyBiZWhhdmlvdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChjaGFpbl9hc3luY19idWZmZXIpLAoJICAoY2hhaW5fYXN5bmMpLCAoY2hhaW5fYXN5bmNfcmV0dXJuKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBmYWtlc2luayB0ZXN0IHRoYXQgY2hlY2tzIHByZXJvbGxpbmcgYW5kIGNsaXBwaW5nCgkgIGJlaGF2aW91ci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBjaGVjayBydW4gZmFzdGVyIHNvIHRoYXQgYnVpbGRib3RzIGRvbid0IHRpbWVvdXQuCgoyMDA2LTAxLTE4IDE3OjE4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgU29tZSBjbGVhbnVwcy4KCSAgV2hlbiB0aGUgc2luayBmaW5pc2hlcyBibG9ja2luZyBvbiB0aGUgcHJlcm9sbCBidWZmZXIsIGl0IGNhbgoJICBpbW1lZGlhdGx5IHJlbmRlciBpdCBpbnN0ZWFkIG9mIHJlbmRlcmluZyB3aGVuIHRoZSBuZXh0IGJ1ZmZlcgoJICBhcnJpdmVzLgoKMjAwNi0wMS0xOCAxNjo0MDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIEdTVF9FTEVNRU5UX0NMT0NLIGFuZCBzeW5jIGFyZSBwcm90ZWN0ZWQgd2l0aCBMT0NLLgoJICBEb24ndCBzdG9yZSBfbGFzdF9zdG9wIGlmIHRoZSBidWZmZXIgaXMgZHJvcHBlZC4KCjIwMDYtMDEtMTggMTY6MzE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAnaGF2ZS10eXBlJyBzaWduYWwgbmVlZHMgdG8gYmUgR19TSUdOQUxfUlVOX0ZJUlNULCBhcyBpdCBpcyB0aGUgb2JqZWN0IG1ldGhvZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgJ2hhdmUtdHlwZScgc2lnbmFsIG5lZWRzIHRvIGJlIEdfU0lHTkFMX1JVTl9GSVJTVCwgYXMgaXQgaXMgdGhlCgkgIG9iamVjdCBtZXRob2QgaGFuZGxlciB0aGF0IHNldHMgdGhlIGNhcHMgb24gdGhlIHBhZCBhbmQgd2Ugd2FudAoJICB0aGF0IHRvIGhhcHBlbiBiZWZvcmUgd2UgZW1pdCB0aGUgc2lnbmFsIChmaXhlcyBlLmcuIGZlZWRpbmcgYQoJICBwbGFpbiB0ZXh0IGZpbGUgdG8gZGVjb2RlYmluKS4KCjIwMDYtMDEtMTggMTE6NDQ6NTUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBhZGQgTVBMIGFuZCBQcm9wZXJpZXRhcnQgdG8gbGlzdCBvZiBsaWNlbnNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIE1QTCBhbmQgUHJvcGVyaWV0YXJ0IHRvIGxpc3Qgb2YgbGljZW5zZXMKCjIwMDYtMDEtMTggMDk6NDI6MTIgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdGluZGV4LmggKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQWRkIHRvIGhlYWRlci4gVGhlIHN5bWJvbCB3YXMgZXhwb3J0ZWQgYmVmb3JlLCBpdCBhcHBlYXJzIHRoaXMgd2FzIGp1c3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IEFkZCB0byBoZWFkZXIuIFRoZQoJICBzeW1ib2wgd2FzIGV4cG9ydGVkIGJlZm9yZSwgaXQgYXBwZWFycyB0aGlzIHdhcyBqdXN0IGFuIG92ZXJzaWdodC4KCSAgRml4ZXMgIzE2ODcwMy4KCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214LmRlPgoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IENoYW5nZWQgaW50IGluCgkgIHByb3RvdHlwZSB0byBnaW50LiBPSyBzaW5jZSB0aGlzIHByb3RvdHlwZSB3YXMgbm90IGluIHRoZSBoZWFkZXIuCgoyMDA2LTAxLTE3IDE2OjM5OjIzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJICBzbWFsbCBmaXggdG8gdGhlIHByb3Bvc2VkIGxpY2Vuc2UgY2xhdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBmaXggdG8gdGhlIHByb3Bvc2VkIGxpY2Vuc2UgY2xhdXNlCgoyMDA2LTAxLTE3IDEyOjUzOjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYyAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6IExvY2sgdGhlIHJlZ2lzdHJ5IHdoaWxlIHdlIHJlbW92ZSBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6IExvY2sgdGhlCgkgIHJlZ2lzdHJ5IHdoaWxlIHdlIHJlbW92ZSBwbHVnaW5zLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2VsZW1lbnRfaW5mbyk6IERvbid0IHVucmVmIHRoZQoJICBmYWN0b3J5IGFyZywgdGhhdCBzaG91bGQgYmUgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHdoYXRldmVyIGNvZGUKCSAgcmVjZWl2ZWQgdGhlIHJlZi4gRml4ZXMgYSBkb3VibGUtZnJlZSB3aGVuIGNhbGxlZCBmcm9tCgkgIHByaW50X2VsZW1lbnRfbGlzdCB2aWEgZ3N0LWluc3BlY3QtMC4xMCAtYS4gRml4ZXMgIzMyNzMyNC4KCSAgKG1haW4pOiBVbnJlZiB0aGUgZmFjdG9yeSBpZiB3ZSBoYXZlIG9uZS4KCSAgKHByaW50X2VsZW1lbnRfbGlzdCk6IE5vIGNoYW5nZSAtLSByZWxpZXMgb24gdGhlCgkgIHBsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSB0byBmcmVlIHRoZSBsaXN0IG9mIGZlYXR1cmVzLgoKMjAwNi0wMS0xNyAxMjoxNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZXBsYWNlIGdzdF9idWZmZXJfKG1ha2V8aXMpX21ldGFkYXRhX3dyaXRhYmxlIHBhdGNoIG5vdyB0aGF0IHRoZSByZWxlYXNlIGlzIG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgUmVwbGFjZSBnc3RfYnVmZmVyXyhtYWtlfGlzKV9tZXRhZGF0YV93cml0YWJsZSBwYXRjaCBub3cKCSAgdGhhdCB0aGUgcmVsZWFzZSBpcyBvdXQuCgoyMDA2LTAxLTE3IDEyOjA4OjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUmVmbG93IGRlc2lnbiBjb21tZW50LiBVcGRhdGUgc28gYXMgdG8gc3BlYWsgaW4gdGhlIHByZXNlbnQgdGVuc2Ugd2l0aG91dCByZWZlcmVuY2UgdG8gdmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWZsb3cgZGVzaWduIGNvbW1lbnQuIFVwZGF0ZSBzbyBhcyB0byBzcGVhawoJICBpbiB0aGUgcHJlc2VudCB0ZW5zZSB3aXRob3V0IHJlZmVyZW5jZSB0byB2ZXJzaW9ucy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiwgZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlKQoJICAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfZmVhdHVyZSwgZ3N0X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3QpCgkgIChnc3RfcmVnaXN0cnlfZ2V0X3BsdWdpbl9saXN0LCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmUpCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwLCBnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKQoJICAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucykKCSAgKGdzdF9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0X2J5X3BsdWdpbik6IEFkZCBhcmd1bWVudAoJICB2YWxpZGF0aW9uLgoKMjAwNi0wMS0xNiAyMTowMDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjIgPT09CgoyMDA2LTAxLTE2IDIwOjU5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMgoKMjAwNi0wMS0xNiAxNTo0MjowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBCYWNrIG91dCBwYXRjaCB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKGdzdF90ZXN0X3N1aXRlKToKCSAgQmFjayBvdXQgcGF0Y2ggdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UuCgoyMDA2LTAxLTE2IDE0OjM3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNwZWxsaW5nIGZpeCBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBTcGVsbGluZyBmaXggaW4gZG9jcy4KCSAgKiBDaGFuZ2VMb2cgLSByZW1vdmUgY29uZmxpY3QgaW5kaWNhdG9yCgoyMDA2LTAxLTE2IDE0OjM3OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIChNaXNzZWQgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgaW4gcHJldmlvdXMgY29tbWl0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKE1pc3NlZCBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyBpbiBwcmV2aW91cyBjb21taXQpCgkgIFJldmlld2VkIEJ5OiBBbmR5IFdpbmdvCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZgoJICBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBVc2UgbmFtZSBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBmdW5jdGlvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBUZXN0IGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlCgkgIChDbG9zZXM6ICMzMjQxNjIpCgoyMDA2LTAxLTE2IDE0OjMyOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZiBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIEJ5OiBBbmR5IFdpbmdvCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZgoJICBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBVc2UgbmFtZSBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBmdW5jdGlvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBUZXN0IGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlCgkgIChDbG9zZXM6ICMzMjQxNjIpCgoyMDA2LTAxLTE0IDIyOjU5OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDEtMTQgMTQ6MTI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBhZGQgdW5saW5rIGFuZCBzb21lIGFzc2VydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB1bmxpbmsgYW5kIHNvbWUgYXNzZXJ0cwoKMjAwNi0wMS0xNCAxMToyMDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbTogZG9uJ3QgZG8gcGFyYWxsZWwgbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZG8gcGFyYWxsZWwgbWFrZQoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQUNfU1VCU1QgSE9TVF9DUFUKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZCBnZW5lcmF0aW9ucyBmb3IgSE9TVF9DUFUgYW5kIEdTVF9NQUpPUk1JTk9SCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiAgICAgICAgICAgY29tbWl0IGdlbmVyYXRlZCByZXN1bHQKCjIwMDYtMDEtMTMgMTk6NTE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgdXBkYXRlcyB0byByZWxlYXNlIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyB0byByZWxlYXNlIGRvYwoKMjAwNi0wMS0xMyAxOToxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDogVXBkYXRlIEdOT01FIGludGVncmF0aW9uIHNlY3Rpb24gdG8gdXNlIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBpbnN0ZWFkIG9mIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIFVwZGF0ZSBHTk9NRSBpbnRlZ3JhdGlvbiBzZWN0aW9uIHRvIHVzZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkKCSAgaW5zdGVhZCBvZiB0aGUgb2xkIHBvcHQgc3R1ZmYgKCMzMjI5MTEpLiBBbHNvLCBHTk9NRSBhcHBsaWNhdGlvbnMKCSAgc2hvdWxkICBub3cgdXNlIGdjb25mKnNpbmsgYW5kIGdjb25mKnNyYyBpbnN0ZWFkIG9mIHRoZSBvbGQgZ2NvbmYKCSAgaGVscGVyIGxpYiB3ZSBoYWQuCgoyMDA2LTAxLTEzIDE2OjE2OjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZpbmcgMDEwIHN1ZmZpeGluZyBvZiBwYWNrYWdlIG5hbWUgYXMgRmVkb3JhIG9ubHkgdXNlIGl0IGZvciAwLjgsIHdhbnQgdG8gaGF2ZSB0aGUgcGFja2FnZXMgYmUgaW50ZXJjaGFuZ2VhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmluZyAwMTAgc3VmZml4aW5nIG9mIHBhY2thZ2UgbmFtZSBhcyBGZWRvcmEgb25seSB1c2UgaXQgZm9yIDAuOCwgd2FudAoJICB0byBoYXZlIHRoZSBwYWNrYWdlcyBiZSBpbnRlcmNoYW5nZWFibGUKCjIwMDYtMDEtMTMgMTQ6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJICByZWFkZCB6aF9UVyBhbmQgZm9yY2UgYW4gYXV0b2dlbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVhZGQgemhfVFcgYW5kIGZvcmNlIGFuIGF1dG9nZW4KCjIwMDYtMDEtMTMgMTQ6MjE6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBhZGQgbmV3IEFQSSBlbnRyaWVzIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbmV3IEFQSSBlbnRyaWVzIHRvIHRoZSBkb2NzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgbW92ZSBwcml2YXRlIHN0cnVjdHMgdG8gcHJpdmF0ZSBoZWFkZXIKCSAgKiBwby9SRUFETUU6CgkgIGdzdHJlYW1lci0wLjcgLT4gZ3N0cmVhbWVyLTAuMTAKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHJlbW92ZSBwcml2YXRlIHN0cnVjdHMKCjIwMDYtMDEtMTMgMTQ6MTk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoKMjAwNi0wMS0xMyAxNDoxOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9MSU5HVUFTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCjIwMDYtMDEtMTMgMTQ6MTI6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbTogRml4ZXMgYXMgcGFydCBvZiAjMzE3MDQ4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIEZpeGVzIGFzIHBhcnQgb2YgIzMxNzA0OAoKMjAwNi0wMS0xMyAxMzo0MTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOiBmaXggIzMxNjA4NiAtIGNvbXBpbGF0aW9uIHdoZW4gbW1hcCBpcyBtaXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGZpeCAjMzE2MDg2IC0gY29tcGlsYXRpb24gd2hlbiBtbWFwIGlzIG1pc3NpbmcKCjIwMDYtMDEtMTIgMjI6MDQ6NTggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKmN1ciA9IChub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgcmVwbGFjZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqY3VyID0gKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyByZXBsYWNlZCBieQoJICAqY3VyID0gZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZShub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgZm9yIHZzNgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkZWQgc29tZSBkZWZpbmVzIEdTVF9NQUpPUk1JTk9SIGFuZCBIT1NUX0NQVQoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkZWQgc29tZSBleHBvcnRlZCBmdW5jdGlvbnMKCjIwMDYtMDEtMTIgMjE6NTU6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBtYWtlIEdfVFlQRV9TVFJJTkcgY29udHJvbGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBtYWtlIEdfVFlQRV9TVFJJTkcgY29udHJvbGFibGUKCjIwMDYtMDEtMTIgMTY6MzE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzLzogY2xlYW51cCBtYW4tcGFnZXMsIHJlbW92ZSByZWZlcmVuY2UgdG8gZ3N0LXJlZ2lzdGVyLCBkb2N1bWVudCBlbnYtdmFycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9SRUFETUU6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgICogdG9vbHMvZ3N0LW1kNXN1bS4xLmluOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LjEuaW46CgkgICogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICBjbGVhbnVwIG1hbi1wYWdlcywgcmVtb3ZlIHJlZmVyZW5jZSB0byBnc3QtcmVnaXN0ZXIsIGRvY3VtZW50IGVudi12YXJzCgoyMDA2LTAxLTEyIDE2OjA3OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogZ3N0X2J1ZmZlcl9zcGFuIHNob3VsZCBjb3B5IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IGJ1ZmZlciBpZiB0aGV5IHdlcmUgYm90aCBvcmlnaW5hbGx5IG92ZXJsYXBwaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3NwYW4pOgoJICBnc3RfYnVmZmVyX3NwYW4gc2hvdWxkIGNvcHkgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZmlyc3QgYnVmZmVyCgkgIGlmIHRoZXkgd2VyZSBib3RoIG9yaWdpbmFsbHkgb3ZlcmxhcHBpbmcgc3ViYnVmZmVycyBvZiB0aGUKCSAgc2FtZSBwYXJlbnQsIHVzaW5nIHRoZSBzYW1lIGxvZ2ljIGFzIHRoZSAnc2xvdyBjb3B5JyBjYXNlLgoKMjAwNi0wMS0xMSAyMTozMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IE5lZWQgdG8gYXdha2VuIEFMTCB0aGUgcGFkcyB3aGVuIHdlIHBvcCBhIGJ1ZmZlciwgb3RoZXJ3aXNlIGNvbGxlY3RwYWRzIG9ubHkgd29ya3Mgd2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApOgoJICBOZWVkIHRvIGF3YWtlbiBBTEwgdGhlIHBhZHMgd2hlbiB3ZSBwb3AgYSBidWZmZXIsIG90aGVyd2lzZQoJICBjb2xsZWN0cGFkcyBvbmx5IHdvcmtzIHdoZW4gdGhlcmUgaXMgMiBpbnB1dCBzdHJlYW1zLgoKMjAwNi0wMS0xMSAxOToxODoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDogbW9yZSBpZGVhcyAoZGJ1cykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgbW9yZSBpZGVhcyAoZGJ1cykKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGZpeCBkb2MgZXhhbXBsZSwgYWRkIGNsYXJpZmljYXRpb24KCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGFkZCBpbml0aWFsIGluZm8gYWJvdXQgR1NUX1BMVUdJTl9QQVRILCBuZWVkcyBtb3JlIHdvcmsKCjIwMDYtMDEtMTEgMTA6Mzg6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgbW9yZSBtaW5vciBkb2NzIGFkZGl0aW9ucyBhbmQgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgU29tZSBtb3JlIG1pbm9yIGRvY3MgYWRkaXRpb25zIGFuZCB1cGRhdGVzLgoKMjAwNi0wMS0xMSAxMDoyMDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBzbWFsbCBmaXhlcyBhcyBwb2ludGVkIG91dCBieSBTZXItdmVyIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIFNvbWUgc21hbGwgZml4ZXMgYXMgcG9pbnRlZCBvdXQgYnkgU2VyLXZlciBvbiBJUkMuCgoyMDA2LTAxLTEwIDE1OjQyOjI5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBTZXQgdGhlIGJ1ZmZlciBvZmZzZXQvb2Zmc2V0X2VuZCB0byBHU1RfQ0xPQ0tfVElNRV9OT05FIHdoZW4gdXNpbmcgdGhlIHNpbmdsZS1zZWdtZW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBTZXQgdGhlIGJ1ZmZlciBvZmZzZXQvb2Zmc2V0X2VuZCB0byBHU1RfQ0xPQ0tfVElNRV9OT05FIHdoZW4gdXNpbmcKCSAgdGhlIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTAxLTEwIDA5OjIzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IE5hbWUgKHByaXZhdGUpIHVuaW9uOyBtYWtlcyBTdW4ncyBGb3J0ZSBjb21waWxlciBoYXBweSAoIzMyNDkwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTmFtZSAocHJpdmF0ZSkgdW5pb247IG1ha2VzIFN1bidzIEZvcnRlIGNvbXBpbGVyIGhhcHB5ICgjMzI0OTAwKS4KCjIwMDYtMDEtMDkgMTA6NDc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSRUFETUU6IGdzdC1yZWdpc3RlciBpcyBnb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIGdzdC1yZWdpc3RlciBpcyBnb25lLgoKMjAwNi0wMS0wNyAxMTowNzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9MSU5HVUFTOgoJICByZW1vdmUgYW5kIHJlYWRkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5kIHJlYWRkCgoyMDA2LTAxLTA3IDExOjA3OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogcG8vTElOR1VBUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoKMjAwNi0wMS0wNyAxMDowNDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogbWFrZSB0aGUgR19UWVBFX0RBVEUgaW5zdGFudGlhdGlvbiB3b3JrIGlmIGRlYnVnIGlzIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgbWFrZSB0aGUgR19UWVBFX0RBVEUgaW5zdGFudGlhdGlvbiB3b3JrIGlmIGRlYnVnIGlzIGRpc2FibGVkCgoyMDA2LTAxLTA3IDA5OjU2OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNi0wMS0wNiAxNzoxNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IERvbid0IGNyYXNoIHdoZW4gcmV0dXJuIGxvY2F0aW9uIGZvciBlcnJvci93YXJuaW5nIGRlYnVnIHN0cmluZyBpcyBOVUxMOyBhZGQgZmFjdCB0aGF0IHJldHVybiBsb2NhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpOgoJICBEb24ndCBjcmFzaCB3aGVuIHJldHVybiBsb2NhdGlvbiBmb3IgZXJyb3Ivd2FybmluZyBkZWJ1ZwoJICBzdHJpbmcgaXMgTlVMTDsgYWRkIGZhY3QgdGhhdCByZXR1cm4gbG9jYXRpb25zIGNhbiBiZQoJICBOVUxMIHRvIGRvY3Mgd2hlcmUgYXBwcm9wcmlhdGUuCgoyMDA2LTAxLTA1IDEwOjQzOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBSZXBsYWNlIHN0cmR1cCBieSBnX3N0cmR1cCBhcyBzdWdnZXN0ZWQgYnkgU2VyLXZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBSZXBsYWNlIHN0cmR1cCBieSBnX3N0cmR1cCBhcyBzdWdnZXN0ZWQgYnkgU2VyLXZlci4KCjIwMDYtMDEtMDQgMjM6NTM6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnIGZvciAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGNvbmZpZyBmb3IgLjEKCjIwMDYtMDEtMDQgMjM6NTI6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBmaXggZG9jIGJvcmthZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBmaXggZG9jIGJvcmthZ2UKCjIwMDYtMDEtMDQgMjM6NTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc3VibWl0dGVkIGJ5OiBBYmVsIENoZXVuZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3VibWl0dGVkIGJ5OiBBYmVsIENoZXVuZwoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vemhfVFcucG86CgkgIEFkZGVkIENoaW5lc2UgKHRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoKMjAwNi0wMS0wNCAxMjo0MTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIHVwZGF0ZXMgdG8gdmFyaW91cyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTbWFsbCB1cGRhdGVzIHRvIHZhcmlvdXMgZG9jcy4KCSAgQWRkZWQgY29yZSBwbHVnaW5zIHRvIGRvY3MuCgoyMDA2LTAxLTAzIDE4OjA4OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIGEgc3VwcHJlc3Npb24gZm9yIGxpYm9pbCdzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmb3IgbGlib2lsJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAwNi0wMS0wMiAyMDoyNjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgcHJvdG90eXBlIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0byBHU1RfQk9JTEVSUExBVEVfRlVMTCBtYWNybywgc28gdGhhdCBnY2MgZG9lc24ndCBjb21wbGFpbiBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHByb3RvdHlwZSBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb24gdG8gR1NUX0JPSUxFUlBMQVRFX0ZVTEwKCSAgbWFjcm8sIHNvIHRoYXQgZ2NjIGRvZXNuJ3QgY29tcGxhaW4gaWYgdGhlIC1XbWlzc2luZy1wcm90b3R5cGVzCgkgIGNvbXBpbGVyIHN3aXRjaCBpcyBiZWluZyB1c2VkICgjMzI1NDI5KS4KCjIwMDUtMTItMjkgMTY6NDc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IERpc2FibGUgZHVyYXRpb24gcXVlcnkgY2FjaGluZyBpbiBiaW5zIHVudGlsIGl0IGdldHMgZml4ZWQgKHNlZSAjMzI0ODA3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgIERpc2FibGUgZHVyYXRpb24gcXVlcnkgY2FjaGluZyBpbiBiaW5zIHVudGlsIGl0IGdldHMKCSAgZml4ZWQgKHNlZSAjMzI0ODA3KS4KCjIwMDUtMTItMjcgMTg6MDQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBIYW5kbGUgcHJvcGVydGllcyBvZiBQT0lOVEVSIGFuZCBCT1hFRCB0eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBIYW5kbGUgcHJvcGVydGllcyBvZiBQT0lOVEVSIGFuZCBCT1hFRCB0eXBlLgoKMjAwNS0xMi0yNyAxMjoxMToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogSW5pdCB0YWdzIHN0dWZmIGFuZCBzb21lIG90aGVyIHRoaW5ncyBiZWZvcmUgbG9hZGluZyBhbnkgc3RhdGljIHBsdWdpbnMgKHRoZXJlIG1heSBiZSBvdGhlciBzdGF0aWMgcGx1Z2lucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBJbml0IHRhZ3Mgc3R1ZmYgYW5kIHNvbWUgb3RoZXIgdGhpbmdzIGJlZm9yZSBsb2FkaW5nCgkgIGFueSBzdGF0aWMgcGx1Z2lucyAodGhlcmUgbWF5IGJlIG90aGVyIHN0YXRpYyBwbHVnaW5zCgkgIHRoYW4ganVzdCB0aGUgR1N0cmVhbWVyIG9uZXMsIGFuZCB0aGV5IG1heSB3YW50IHRvCgkgIHJlZ2lzdGVyIHRoZWlyIG93biB0YWdzIG9yIGZvcm1hdHMgb3Igd2hhdGV2ZXIsIGFuZAoJICBwcmVmZXJhYmx5IHdpdGhvdXQgc2VnZmF1bHRpbmcpLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUHJpbnQgYXQgbGVhc3QgYSB3YXJuaW5nIGluIHRoZSBkZWJ1ZyBsb2dzIGlmIHdlIGRyb3AgYQoJICBxdWVyeSBqdXN0IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgdG8gYWRqdXN0IHRoZSB2YWx1ZQoJICBpbiB0aGUgcGFydGljdWxhciBmb3JtYXQuCgoyMDA1LTEyLTI1IDAzOjQ1OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBSZXBsYWNlbWVudCBmb3IgZ3N0LWNvbXBsZXRlIHdyaXR0ZW4gaW4gc2ggYW5kIHNlZC4gIE9ubHkgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgUmVwbGFjZW1lbnQgZm9yIGdzdC1jb21wbGV0ZSB3cml0dGVuIGluIHNoIGFuZCBzZWQuICBPbmx5CgkgIGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnV0IHRoYXQncyA5MCUgb2Ygd2hhdCBJIHdhbnQKCSAgaXQgZm9yLiAgUHJvcGVydGllcyBhcmUgbm90IGF2YWlsYWJsZSBpbiByZWdpc3RyeS54bWwuICAoTWF5YmUKCSAgdGhleSBzaG91bGQgYmUuLi4pCgoyMDA1LTEyLTIzIDE4OjE1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMSA9PT0KCjIwMDUtMTItMjMgMTg6MDQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMQoKMjAwNS0xMi0yMyAxNDo1MzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0yMyAxMzo0NToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMi0yMiAxNDo0ODoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2N2cy54bWw6IEFkZCBtaXNzaW5nIHF1b3RlLCBzaG91bGQgYmUgbWFrZSBFUlJPUl9DRkxBR1M9IiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIEFkZCBtaXNzaW5nIHF1b3RlLCBzaG91bGQgYmUgbWFrZSBFUlJPUl9DRkxBR1M9IiIuCgoyMDA1LTEyLTIwIDE2OjAxOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2luZwoKMjAwNS0xMi0yMCAxMjo1MDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6IE1vcmUgZG9jdW1lbnRhdGlvbiBvbiB0cmlja21vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBNb3JlIGRvY3VtZW50YXRpb24gb24gdHJpY2ttb2Rlcy4KCjIwMDUtMTItMjAgMTE6MTI6NTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljQ2FwcyBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljQ2FwcyBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluIGJpbmRpbmdzLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljUGFkVGVtcGxhdGUgc28gd2UgY2FuIHdyYXAgdGhlbSBpbgoJICBiaW5kaW5ncy4KCjIwMDUtMTItMTggMTY6MDQ6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC86IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0xMi0xOCAxNDoyODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNsb3NpbmcgYnJhY2tldCBpbiBoZWxsb3dvcmxkIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIGNsb3NpbmcgYnJhY2tldCBpbiBoZWxsb3dvcmxkIGV4YW1wbGUuCgoyMDA1LTEyLTE3IDE0OjE5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBVcGRhdGUgZ3N0LWxhdW5jaCBtYW4gcGFnZTsgYWRkIGEgc2VjdGlvbiB3aXRoIHVzZWZ1bCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIEZpeGVzICMzMjM4ODIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgVXBkYXRlIGdzdC1sYXVuY2ggbWFuIHBhZ2U7IGFkZCBhIHNlY3Rpb24gd2l0aCB1c2VmdWwKCSAgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGaXhlcyAjMzIzODgyLgoKMjAwNS0xMi0xNiAyMTo1OToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBjaGFuZ2Ugc29tZSBjaGFyKiBpbnRvIGNoYXJbXQoKMjAwNS0xMi0xNiAxOToyNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpOgoJICBDbGVhbnVwcy4KCSAgRG9uJ3QgdXNlIGdfb2JqZWN0X3VucmVmIG9uIEdzdE9iamVjdHMgc28gdGhhdCB3ZSBhdm9pZAoJICBsZWFrcyBvbiB1bnNhZmUgZ2xpYnMuCgoyMDA1LTEyLTE2IDE4OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCjIwMDUtMTItMTYgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vY2hlY2subWFrOiBBZGRlZCBtYWtlIGZvcmV2ZXIgdGFyZ2V0IGZvciBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgQWRkZWQgbWFrZSBmb3JldmVyIHRhcmdldCBmb3IgY2hlY2suCgoyMDA1LTEyLTE2IDE3OjM0OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogbWFrZSB0aGUgcmVnaXN0cnkgY2FjaGUgZmlsZSBIT1NUX0NQVS1kZXBlbmRlbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgbWFrZSB0aGUgcmVnaXN0cnkgY2FjaGUgZmlsZSBIT1NUX0NQVS1kZXBlbmRlbnQKCjIwMDUtMTItMTYgMTQ6NDQ6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmMKCSAgKGdzdF9idWZmZXJfc3RvcmVfY2xlYXJlZF9mdW5jKTogUGF5IGF0dGVudGlvbiB0byBnX2xpc3RfYXBwZW5kCgkgIHJldHVybiB2YWx1ZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmMKCSAgKHRlc3RfZmFrZV9vYmplY3RfbmFtZV90aHJlYWRlZF91bmlxdWUpOiBQYXkgYXR0ZW50aW9uIHRvCgkgIGdfbGlzdF9zb3J0IHJldHVybiB2YWx1ZS4KCjIwMDUtMTItMTYgMTE6NTI6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2stbS5tOiBVcGRhdGUgZm9yIDAuOS8wLjEwIChmaXhlcyAjMzIzODcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSAgVXBkYXRlIGZvciAwLjkvMC4xMCAoZml4ZXMgIzMyMzg3MCkuCgoyMDA1LTEyLTE1IDEyOjIyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogRml4IGxjb3B5IGZvciBtaW5pIG9iamVjdHMsIHRoZSBtaW5pIG9iamVjdCBuZWVkcyB0byBiZSByZWYnZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfbWluaV9vYmplY3RfbGNvcHkpOgoJICBGaXggbGNvcHkgZm9yIG1pbmkgb2JqZWN0cywgdGhlIG1pbmkgb2JqZWN0IG5lZWRzIHRvIGJlIHJlZidlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAobXlfZm9vX2luaXQpLAoJICAobXlfZm9vX2dldF9wcm9wZXJ0eSksIChteV9mb29fc2V0X3Byb3BlcnR5KSwgKG15X2Zvb19jbGFzc19pbml0KSwKCSAgKHRlc3RfdmFsdWVfY29sbGVjdGlvbiksIChnc3RfbWluaV9vYmplY3Rfc3VpdGUpOgoJICBBZGQgdGVzdCB0byBlbnN1cmUgcmVmY291bnRzIGVuZCB1cCBhcyBleHBlY3RlZCB3aGVuIHBhc3NpbmcKCSAgR3N0TWluaU9iamVjdHMgdGhyb3VnaCBnX29iamVjdF9nZXQoKSBhbmQgZ19vYmplY3Rfc2V0KCkuCgoyMDA1LTEyLTE0IDE3OjA4OjM2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogUmVmYWN0b3Jpbmcgb2YgY29sbGVjdHBhZHMuIFRoaXMgdmVyc2lvbiByZW1vdmVzIGEgbG90IG9mIHJhY2VzIHdpdGhvdXQgdG91Y2hpbmcgQVBJLy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBSZWZhY3RvcmluZwoJICBvZiBjb2xsZWN0cGFkcy4gVGhpcyB2ZXJzaW9uIHJlbW92ZXMgYSBsb3Qgb2YgcmFjZXMgd2l0aG91dAoJICB0b3VjaGluZyBBUEkvQUJJLiBZYXkgIQoKMjAwNS0xMi0xNCAxMDowOTozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGFsbG93IGFjdGl2YXRpb24gb2YgYSBzcmNwYWQgaW4gcHVsbF9yYW5nZSBpZiBpdCBoYXMgbm8gZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSk6CgkgIERvbid0IGFsbG93IGFjdGl2YXRpb24gb2YgYSBzcmNwYWQgaW4gcHVsbF9yYW5nZSBpZiBpdCBoYXMgbm8KCSAgZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIENoYW5nZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgdG8gYmUgYSBsaXR0bGUgY2xlYXJlcgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBDaGVjayB0aGF0IHdlIGhhdmUgYSBwZWVyIGJlZm9yZSBleGVjdXRpbmcgcXVlcmllcyB0aGVyZXVwb24uCgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKToKCSAgVXNlIGdzdF9idXNfcG9wIGluc3RlYWQgb2YgZ3N0X2J1c19wb2xsIHdoZW4gd2UganVzdCB3YW50IGl0IHRvCgkgIGltbWVkaWF0ZWx5IHJldHVybiB1cyBhbnkgYXZhaWxhYmxlIG1lc3NhZ2Ugd2l0aCAwIHRpbWVvdXQuCgoyMDA1LTEyLTEyIDE5OjA5OjQ5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IERvbid0IHVucmVmIGZhY3RvcmllcyBhZnRlciBjYWxsaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgRG9uJ3QgdW5yZWYgZmFjdG9yaWVzIGFmdGVyIGNhbGxpbmcgdGhlbS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIEZyZWUgbGlzdHMgb2YgZmFjdG9yaWVzIGFmdGVyIHVzaW5nIHRoZW0uIEZpeGluZyB0eXBlZmluZGluZyBtZW1vcnkKCSAgbGVha3MuCgoyMDA1LTEyLTEyIDE4OjEyOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBtb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBtb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgbWFrZSBtYWtlIGRpc3RjaGVjayBoYXBweSBhZ2FpbgoKMjAwNS0xMi0xMiAxNzozNzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBhbGwgdGVzdHMvb2xkIE1ha2VmaWxlcyBmcm9tIHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFsbCB0ZXN0cy9vbGQgTWFrZWZpbGVzIGZyb20gdGhlIGJ1aWxkCgoyMDA1LTEyLTEyIDE3OjA5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogQ2F0Y2ggdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBhcmUgb3BlcmF0aW5nIGNoYWluLWJhc2VkLCBidXQgdGhlIGRvd25zdHJlYW0gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgQ2F0Y2ggdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBhcmUgb3BlcmF0aW5nIGNoYWluLWJhc2VkLAoJICBidXQgdGhlIGRvd25zdHJlYW0gcGVlciBwYWQgaGFzIG5vIGNoYWluIGZ1bmN0aW9uLiBFbWl0IGEKCSAgY3VzdG9tIGVycm9yIG1lc3NhZ2UgaW4gdGhpcyBjYXNlIGluc3RlYWQgb2YgbGV0dGluZyB0aGUKCSAgY29yZSBnZW5lcmF0ZSBvbmUgaW1wbHlpbmcgdGhhdCB0aGlzIGlzIHNvbWUgc29ydCBvZiBjb3JlCgkgIGJ1Zy4gSXQncyBub3QsIGl0IGp1c3QgbWVhbnMgdGhhdCB3aGF0ZXZlciBnb3QgcGx1Z2dlZAoJICBpbnRvIHRoZSBwaXBlbGluZSBkb3duc3RyZWFtIHdoZW4gd2UgYW5ub3VuY2VkIHRoZSB0eXBlCgkgIGNhbiBvbmx5IG9wZXJhdGUgcHVsbC1iYXNlZCwgd2hpbGUgb3VyIHNvdXJjZSBjYW4gb25seQoJICBvcGVyYXRlIHB1c2gtYmFzZWQgKGUuZy4gaHR0cDovL2Zvby9iYXIubW92ICEgcXRkZW11eCAhIC4uLikKCSAgRXJyb3Igc3RyaW5nIGhhcyBub3QgYmVlbiBtYXJrZWQgZm9yIHRyYW5zbGF0aW9uIHlldCwgYXMKCSAgaXQgcHJvYmFibHkgbmVlZHMgc29tZSBtb3JlIHdvcmsgZmlyc3QuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X2Jlc3RfcG9zc2liaWxpdHkpOgoJICBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGJlc3Qgb2YgYWxsIGF2YWlsYWJsZQoJICBmb3VuZCBwb3NzaWJpbGl0aWVzIHRoYXQgcXVhbGlmeSBnaXZlbiB0aGUgbWluLiB0aHJlc2hvbGQuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRml4IHRoZSBjYXNlIHdoZXJlIHdlIGdldCBhbiBFT1Mgd2hpbGUgc3RpbGwgaW4gVFlQRUZJTkQKCSAgbW9kZSAod2Ugd2FudCB0byBjaG9zZSB0aGUgYmVzdCBvZiBhbGwgcG9zc2libGUgdHlwZXMsCgkgIG5vdCBqdXN0IHRoZSBmaXJzdCB0eXBlIHRoYXQgaGFwcGVucyB0byBiZSBpbiBvdXIgdW5zb3J0ZWQKCSAgbGlzdCBvZiBwb3NzaWJsZSB0eXBlcykuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNYWtlIHN1cmUgd2UgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIHdoZW4gd2UgZXJyb3JlZCBvdXQKCSAgaW4gc3RvcF90eXBlZmluZGluZygpOyBhbHNvLCBkb24ndCBqdXN0IGZpbmQgdGhlIGJlc3Qgb2YKCSAgYWxsIGZvdW5kIHR5cGUgZW50cmllcyBhbmQgdGhlbiB1c2UgdGhlIGxhc3QgZXhhbWluZWQKCSAgdHlwZSBlbnRyeSwgYnV0IGFjdHVhbGx5IHVzZSB0aGUgYmVzdCBlbnRyeS4KCjIwMDUtMTItMTIgMTc6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy86IE1vcmUgZ2NjNCBmaXhlcyBhbmQgYSBtZW0gbGVhayBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6ICh4bWxfbG9hZGVkKToKCSAgTW9yZSBnY2M0IGZpeGVzIGFuZCBhIG1lbSBsZWFrIGZpeC4KCjIwMDUtMTItMTIgMTY6MjA6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgbW9yZSBnY2MgNCB3YXJuaW5nIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGdjYyA0IHdhcm5pbmcgZml4ZXMKCjIwMDUtMTItMTIgMTY6MDQ6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgYW5vdGhlciBnY2M0IGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBnY2M0IGZpeAoKMjAwNS0xMi0xMiAxNTo1OTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiBnY2MgNCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IChvYmplY3Rfc2F2ZWQpOgoJICBnY2MgNCBmaXhlcwoKMjAwNS0xMi0xMiAxNTo0NjoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvTWFrZWZpbGUuYW06IGVuYWJsZSB0aGUgZXhhbXBsZXMgZXZlbiBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBlbmFibGUgdGhlIGV4YW1wbGVzIGV2ZW4gbW9yZQoKMjAwNS0xMi0xMiAxNTowMjowMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCwgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpIChnc3RfbmV0X3RpbWVfcHJvdmlkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYwoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQsIGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KQoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSkKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9nZXRfcHJvcGVydHkpOiBFeHBvcnQgImFjdGl2ZSIgYXMgYSBHT2JqZWN0CgkgIHByb3BlcnR5LgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCk6IE9ubHkgcmVzcG9uZCB0byB0aW1lIHF1ZXJpZXMgaWYKCSAgdGhlIHRpbWUgcHJvdmlkZXIgaXMgYWN0aXZlLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogQWRkIGFuICJhY3RpdmUiIGJvb2xlYW4gdG8KCSAgTmV0VGltZVByb3ZpZGVyLCBwcmVzZXJ2aW5nIGJpbmFyeSBjb21wYXQuCgoyMDA1LTEyLTEyIDE0OjQ2OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy86IGNvbnZlcnQgY29tbWVudHMgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgIGNvbnZlcnQgY29tbWVudHMgYWdhaW4KCjIwMDUtMTItMTIgMTQ6NDM6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBGaXggdHlwby4KCjIwMDUtMTItMTIgMTQ6NDI6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0aGUgQ2hhbmdlbG9nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdGhlIENoYW5nZWxvZy4uLgoKMjAwNS0xMi0xMiAxNDo0MTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2wgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgbmV3IHN5bWJvbCB0byBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEltcGxlbWVudCBzZWVraW5nIHRvIG90aGVyIGZvcm1hdHMgdGhhbiBfQllURVMuCgkgIEltcGxlbWVudCBtb3JlIHNlZWtpbmcgbWV0aG9kcyBjb3JyZWN0bHkuCgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBxdWVyeSB2bWV0aG9kLgoJICBBZGRlZCBkb19zZWVrIHZtZXRob2QgdG8gbWFrZSBsaWZlIGVhc2llciBmb3Igc3ViY2xhc3NlcwoJICB3aGVuIHNlZWtpbmcuCgkgIEFQSSBhZGRpdGlvbjogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQoKQoKMjAwNS0xMi0xMiAxNDowODowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06IGFkZGVkIHRoYXQgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBhZGRlZCB0aGF0IHRvbwoKMjAwNS0xMi0xMiAxNDowMjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYXBwbGllZCBzb21lIHNpbXBsZSBmaXhpbmcgdG8gc29tZSBleGFtcGxlcyByZS1lbmFibGVkIHRoZSB3b3JraW5nIGV4YW1wbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAobWFrZV9waXBlbGluZSksIChwcmludF90YWcpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKSwgKGV2ZW50X2xvb3ApLAoJICAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogKG9iamVjdF9zYXZlZCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6ICh4bWxfbG9hZGVkKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9UT0RPOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL21wM3BsYXk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgYXBwbGllZCBzb21lIHNpbXBsZSBmaXhpbmcgdG8gc29tZSBleGFtcGxlcwoJICByZS1lbmFibGVkIHRoZSB3b3JraW5nIGV4YW1wbGVzCgoyMDA1LTEyLTEyIDEyOjQ4OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgTWFrZSBzdXJlIHRoZSBsYXN0X3BvcyB2YWx1ZSBpcyB1cGRhdGVkIHByb3Blcmx5LgoJICBNYWtlIHN1cmUgdG9fc3RyZWFtX3RpbWUgYW5kIHRvX3J1bm5pbmdfdGltZSBkb24ndAoJICBvcGVyYXRlIG9uIHdyb25nIHZhbHVlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGUgY2hlY2suCgoyMDA1LTEyLTEyIDEyOjMyOjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBOb3cgdGhhdCB3ZSdyZSBub3QgbGVha2luZyBmYWN0b3JpZXMsIG1ha2Ugc3VyZSB3ZSBrZWVwIHJlZmVyZW5jZXMgdG8gdGhlbSB3aGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZyZWVfZW50cnkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTm93IHRoYXQgd2UncmUgbm90IGxlYWtpbmcgZmFjdG9yaWVzLCBtYWtlIHN1cmUgd2Uga2VlcCByZWZlcmVuY2VzCgkgIHRvIHRoZW0gd2hpbGUgd2UgbmVlZCB0aGVtLgoKMjAwNS0xMi0xMiAxMTo0MDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDogaWZkZWYgb3V0IHRoZSBYTUwgc3RydWN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgaWZkZWYgb3V0IHRoZSBYTUwgc3RydWN0cwoKMjAwNS0xMi0xMiAxMDo1OToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogZmxvb3IgaXMgbm90IG5lZWRlZCwgRiBpcyBhbHdheXMgcG9zaXRpdmU7IHRoaXMgb2J2aWF0ZXMgdGhlIG5lZWQgZm9yIGFkZGluZyAtbG0gd2hlbiBidWlsZGluZyB3aXRob3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX2RvdWJsZV9mcmFjdGlvbik6CgkgIGZsb29yIGlzIG5vdCBuZWVkZWQsIEYgaXMgYWx3YXlzIHBvc2l0aXZlOyB0aGlzIG9idmlhdGVzIHRoZQoJICBuZWVkIGZvciBhZGRpbmcgLWxtIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBsaWJ4bWwKCjIwMDUtMTItMTIgMTA6NTc6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vYXNwZWN0cmF0aW86CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgYWRkIGEgOyBhbmQgYW4gZXhhbXBsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgOyBhbmQgYW4gZXhhbXBsZQoKMjAwNS0xMi0xMiAxMDoxNjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVGFrZSBjdXJyZW50IHBsYXliYWNrIHJhdGUgaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nIHRoZSBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBUYWtlIGN1cnJlbnQgcGxheWJhY2sgcmF0ZSBpbnRvIGFjY291bnQgd2hlbiByZXBvcnRpbmcKCSAgdGhlIHBvc2l0aW9uLgoKMjAwNS0xMi0xMSAxOTozNTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOiBMZXQncyB0cnkgdGhpcyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggYSBmaWxlIHRoYXQgaXMgYWN0dWFsbHkgaW4gWEZpZyBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBMZXQncyB0cnkgdGhpcyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggYSBmaWxlIHRoYXQgaXMKCSAgYWN0dWFsbHkgaW4gWEZpZyBmb3JtYXQuCgoyMDA1LTEyLTExIDE5OjE5OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6IEFkZCBhdWRpb2NvbnZlcnQgZWxlbWVudCB0byBkaWFncmFtIHNvIHRoYXQgaXQgbWF0Y2hlcyB0aGUgdGV4dCBhbmQgdGhlIGNvZGUgKGZpeGVzICMzMTk1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBBZGQgYXVkaW9jb252ZXJ0IGVsZW1lbnQgdG8gZGlhZ3JhbSBzbyB0aGF0IGl0CgkgIG1hdGNoZXMgdGhlIHRleHQgYW5kIHRoZSBjb2RlIChmaXhlcyAjMzE5NTI2KS4KCjIwMDUtMTItMTEgMTg6MjQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IFVwZGF0ZSBzdGF0ZSBjaGFuZ2Ugc3R1ZmYgZm9yIDAuMTAgKGZpeGVzICMzMjI5NjkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSAgVXBkYXRlIHN0YXRlIGNoYW5nZSBzdHVmZiBmb3IgMC4xMCAoZml4ZXMgIzMyMjk2OSkuCgoyMDA1LTEyLTExIDE3OjQ5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBVcGRhdGUgZm9yIDAuMTA6IHMvMC45LzAuMTAvOyBzL2F1ZGlvc2NhbGUvYXVkaW9yc2FtcGxlLzsgYWRkIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2YgcGlwZWxpbmVzOyByZW1vdmUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgVXBkYXRlIGZvciAwLjEwOiBzLzAuOS8wLjEwLzsgcy9hdWRpb3NjYWxlL2F1ZGlvcnNhbXBsZS87CgkgIGFkZCBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHBpcGVsaW5lczsgcmVtb3ZlIGN1cmx5CgkgIGJyYWNrZXRzIGZvciB0aHJlYWRzIHN0dWZmLCB0aGV5IG5vIGxvbmdlciBleGlzdDsgdXNlCgkgIEdTVF9UWVBFX0ZSQUNUSU9OIGZvciBmcmFtZXJhdGVzOyB1cGRhdGUgc29tZSBwaWVjZXMgb2YKCSAgY29kZSB0byAwLjEwLCBidXQgdGhlcmUncyBwbGVudHkgbW9yZSB0byBkby4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRXhwYW5kIG9uIGFzeW5jaHJvbmVvdXMgc3RhdGUgY2hhbmdlczsgcy8wLjkvMC4xMC87CgkgIG1lbnRpb24gZGlzYXBwZWFyYW5jZSBvZiBnc3RfaW5pdF9nZXRfcG9wdF90YWJsZSgpCgkgIChmaXhlcyAjMzIyOTE2KS4KCjIwMDUtMTItMTEgMTE6NTM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS91c2luZy54bWw6IFNwaWRlciBubyBsb25nZXIgZXhpc3RzLCBhbmQgbmVpdGhlciBkb2VzIGdzdC1sYXVuY2gtZXh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIFNwaWRlciBubyBsb25nZXIgZXhpc3RzLCBhbmQgbmVpdGhlciBkb2VzIGdzdC1sYXVuY2gtZXh0LgoJICBVcGRhdGUgZXhhbXBsZXMgdG8gdXNlIGRlY29kZWJpbiBhbmQgcGxheWJpbiBhbmQgcHV0CgkgIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2Ygc2lua3MgKGZpeGVzICMzMjM3MjYpLgoKMjAwNS0xMi0wOSAxNzoyNjozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRml4IGxlYWtpbmcgZWxlbWVudCBmYWN0b3JpZXMgaW4gdHlwZWZpbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRml4IGxlYWtpbmcgZWxlbWVudCBmYWN0b3JpZXMgaW4gdHlwZWZpbmRpbmcuCgkgIEZpeCBwcm9ibGVtIHdoZXJlIHdlIGZvcmdvdCBhYm91dCBhIHByb2JhYmxlIHR5cGUgb24gbm9uLXNlZWthYmxlCgkgIGZpbGVzLCBhbmQgdGh1cyBsYXRlciBtaXMtdHlwZWZvdW5kIGl0LgoKMjAwNS0xMi0wOSAxNTowOTo0MiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgUmVtb3ZlIG1ha2Vjb250ZXh0IHN0dWZmOyBub3QgdXNlZCBpbiAwLjEwIGFuZCBjYXVzZXMgcHJvYmxlbXMgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL200L2dzdC1tYWtlY29udGV4dC5tNDoKCSAgKiBjb21tb24vbTQvZ3N0LW1jc2MubTQ6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIFJlbW92ZSBtYWtlY29udGV4dCBzdHVmZjsgbm90IHVzZWQgaW4gMC4xMCBhbmQgY2F1c2VzIHByb2JsZW1zIG9uCgkgIEhQVVggYWNjb3JkaW5nIHRvIGJ1ZyAjMzIyNDQxCgoyMDA1LTEyLTA3IDE5OjAzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMsIHRoaXMgdGltZSBmb3IgcmVhbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicywgdGhpcyB0aW1lIGZvciByZWFsCgoyMDA1LTEyLTA3IDE5OjAzOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMKCjIwMDUtMTItMDcgMTc6NTk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogQW5kIGFkZCB0aGUgc3RydWN0X2kzODYuaCB0byBkaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQW5kIGFkZCB0aGUgc3RydWN0X2kzODYuaCB0byBkaXN0LgoKMjAwNS0xMi0wNyAxNzozNjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgY2hlY2sgZm9yIEFCSSBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIGNoZWNrIGZvciBBQkkgY29tcGF0aWJpbGl0eS4KCjIwMDUtMTItMDcgMTU6MzM6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogRml4IGJyb2tlbiBzeW5jIG9wdGlvbiwgZml4ZXMgIzMyMzI1OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfdGltZXMpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEZpeCBicm9rZW4gc3luYyBvcHRpb24sIGZpeGVzICMzMjMyNTkKCjIwMDUtMTItMDcgMTU6MTY6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNtYWxsIGRvY3MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFNtYWxsIGRvY3MgdXBkYXRlLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIERvbid0IGFzc2VydCBvbiBOVUxMIDwtLT4gWC4gRml4ZXMgIzMyMzI2MAoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSk6CgkgIElmIHdlJ3JlIGRvaW5nIGF0b21pYyBvcGVyYXRpb25zLCB3ZSBtaWdodCBqdXN0IGFzIHdlbGwgdXNlCgkgIHRoZSBwcm9wZXIgd2F5IHRvIGdldCBhbiBhdG9taWMgcG9pbnRlci4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIENsZWFuIHVwIGRlYnVnZ2luZy4KCjIwMDUtMTItMDcgMTE6NTI6MDUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSBoYW5kbGluZyBvZiB7IH0gZm9yIHRocmVhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSBoYW5kbGluZyBvZiB7IH0gZm9yIHRocmVhZHMuCgoyMDA1LTEyLTA2IDIzOjMyOjAxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBzcGVsaW5nIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHNwZWxpbmcgZml4LgoKMjAwNS0xMi0wNiAxOToyOToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS90ZXN0aW5nL2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkgIGV4cGFuZCB0YWJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBleHBhbmQgdGFicwoKMjAwNS0xMi0wNiAxOTowNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gY3ZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGN2cwoKMjAwNS0xMi0wNSAxODoxMzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjAgPT09CgoyMDA1LTEyLTA1IDE4OjA1OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjAKCjIwMDUtMTItMDUgMTU6NTc6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTItMDUgMTQ6MzY6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBhZGRlZCBDaGluZXNlIChUcmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN1Ym1pdHRlZCBieTogRnVuZGEgV2FuZyA8ZnVuZGF3YW5nQGxpbnV4Lm5ldC5jbj4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3poX0NOLnBvOgoJICBhZGRlZCBDaGluZXNlIChUcmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCjIwMDUtMTItMDUgMTQ6MTQ6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkgIHVwZGF0ZWQgQWZyaWthYW5zIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIEFmcmlrYWFucyB0cmFuc2xhdGlvbgoKMjAwNS0xMi0wNSAxNDoxNDowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHJlbW92ZSBkZXByZWNhdGlvbiBndWFyZCBmcm9tIGRvY3N0cmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkIGZyb20gZG9jc3RyaW5nCgoyMDA1LTEyLTA1IDEzOjEwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDUtMTItMDUgMTM6MDY6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9UT0RPOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0xMi0wNSAxMzowMTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyk6IENhbGwKCSAgYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2Fwcy4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKTogQ2hhbmdlZCB0byBub3QgY2FsbAoJICBzZXRfY2FwcyBvbiB0aGUgc291cmNlIHBhZC4KCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2Fwcyk6IE5ldyBmdW5jdGlvbiwgZG9lcyB3aGF0CgkgIGFsbG9jX2J1ZmZlciB1c2VkIHRvIGRvLiBGaXhlcyAjMzIyODc0LgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOiBVcGRhdGUgZm9yIHRoZSBhbGxvY19idWZmZXIKCSAgY2hhbmdlcy4KCjIwMDUtMTItMDUgMTI6MzM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHJlYWxseSBhZGQgdGhlIHRlc3RzIGZvciB0aGUgNjQvZG91YmxlIGNvbnZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlYWxseSBhZGQgdGhlIHRlc3RzIGZvciB0aGUgNjQvZG91YmxlIGNvbnZlcnNpb24KCjIwMDUtMTItMDUgMTI6MDk6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBhZGQgZGVmIGZvciBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZGVmIGZvciBjb250cm9sbGVyCgoyMDA1LTEyLTA1IDEyOjA5OjAxICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyLzogd2luMzIgYnVpbGQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlCgkgICogd2luMzIvTUFOSUZFU1Q6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgd2luMzIgYnVpbGQgZml4ZXMKCjIwMDUtMTItMDUgMTA6NTk6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBCYWNrIG91dCBwcmV2aW91cyBjb2RlIGNoYW5nZXMsIGxlYXZlIGRvYyB1cGRhdGVzLCBmaWxlIGJ1Z3MgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBCYWNrIG91dCBwcmV2aW91cyBjb2RlIGNoYW5nZXMsIGxlYXZlIGRvYyB1cGRhdGVzLCBmaWxlIGJ1Z3MKCSAgaW5zdGVhZC4KCjIwMDUtMTItMDUgMTA6Mjc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuKjogRml4IGJyb2tlbiBzeW5jIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF90aW1lcyksIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgRml4IGJyb2tlbiBzeW5jIGNvZGUuCgoyMDA1LTEyLTA1IDEwOjIyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ29tcGFyaW5nIE5VTEwgYWdhaW5zdCAhTlVMTCB5aWVsZHMgZGlmZmVyZW50IGNhcHMsIG5vdCBhIGZhaWx1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIENvbXBhcmluZyBOVUxMIGFnYWluc3QgIU5VTEwgeWllbGRzIGRpZmZlcmVudCBjYXBzLCBub3QgYQoJICBmYWlsdXJlLgoKMjAwNS0xMi0wNSAxMDoxODoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBGaXggc21hbGwgdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgRml4IHNtYWxsIHR5cG8gaW4gZG9jcy4KCjIwMDUtMTItMDUgMDk6NTM6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiByZW1vdmUgaGFyZC1jb2RlZCAwLjkgbG9jYXRpb24gZm9yIHJlZ2lzdHJpZXMvcGx1Z2lucyB3aXRoIGEgTUFKT1JNSU5PUiBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IHJlbW92ZSBoYXJkLWNvZGVkIDAuOSBsb2NhdGlvbiBmb3IKCSAgcmVnaXN0cmllcy9wbHVnaW5zIHdpdGggYSBNQUpPUk1JTk9SIG9uZS4KCSAgKHBsdWdpbl9kZXNjKTogUmVuYW1lIGxpYnJhcnkgZnJvbSBnc3Rjb3JlbGVlbWVudHMgdG8KCSAgc3RhdGljZWxlbWVudHMuIEZpeGVzICMzMjMyMjIuCgoyMDA1LTEyLTA1IDA5OjQ1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBDaGFuZ2UgZGVidWcgY2F0ZWdvcnkgdG8gJ2NvbGxlY3RwYWRzJyBmcm9tICdjb2xsZWN0X3BhZHMnIChmaXhlcyAjMzIzMjUwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpOgoJICBDaGFuZ2UgZGVidWcgY2F0ZWdvcnkgdG8gJ2NvbGxlY3RwYWRzJyBmcm9tICdjb2xsZWN0X3BhZHMnCgkgIChmaXhlcyAjMzIzMjUwKS4KCjIwMDUtMTItMDQgMTk6NTc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbmFtZSB0d28gZXhwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lIHR3byBleHBvcnRzCgoyMDA1LTEyLTA0IDE4OjU0OjE5ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiB1c2UgY29udmVydCBmdW5jdGlvbiBmb3IgdWludDY0L2RvdWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgdXNlIGNvbnZlcnQgZnVuY3Rpb24gZm9yIHVpbnQ2NC9kb3VibGUKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIGxpbmsgdG8gR0xpYgoKMjAwNS0xMi0wNCAwOTo1NzoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgdGVzdHMgdGhhdCBzZWVtIHRvIHNob3cgdGhhdCB0aGUgZ3VpbnQ2NC9nZG91YmxlIGNvbnZlcnNpb25zIGFyZSBjb3JyZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSksCgkgIChnc3RfdXRpbF9nZG91YmxlX3RvX2d1aW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIGFkZCB0ZXN0cyB0aGF0IHNlZW0gdG8gc2hvdyB0aGF0IHRoZSBndWludDY0L2dkb3VibGUgY29udmVyc2lvbnMKCSAgYXJlIGNvcnJlY3QuCgoyMDA1LTEyLTAyIDEyOjQ0OjUzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgbWFrZSB2ZXJzaW9uIG51bWJlciBhIGxpdHRsZSBsZXNzIGhvcGVmdWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHZlcnNpb24gbnVtYmVyIGEgbGl0dGxlIGxlc3MgaG9wZWZ1bGwKCjIwMDUtMTItMDIgMTI6MzQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZG9jcyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBGaXggZG9jcyBhZ2Fpbi4KCSAgUmVtb3ZlZCBvbGQgY29kZSBmcm9tIGdzdHJlZ2lzdHJ5eG1sLmMKCjIwMDUtMTItMDIgMTI6MTk6NTUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXBkYXRpbmcgZ3N0cmVhbWVyIHNwZWMgZmlsZSBtYWtpbmcgaXQgMC4xMCByZWFkeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwZGF0aW5nIGdzdHJlYW1lciBzcGVjIGZpbGUgbWFraW5nIGl0IDAuMTAgcmVhZHkKCjIwMDUtMTItMDIgMTE6MzY6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogU21hbGwgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIFNtYWxsIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgQWRkIGRlYnVnIGxvZyBsaW5lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgQWRkIEZJWE1FLgoKMjAwNS0xMi0wMiAwOTo0ODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi86IHJlbmFtZWQgY29yZSBlbGVtZW50cyBwbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgIHJlbmFtZWQgY29yZSBlbGVtZW50cyBwbHVnaW4KCjIwMDUtMTItMDIgMDE6MzU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBkbyBwaWVjZS13aXNlIG1ham9yL21pbm9yIGNvbXBhcmlzb24gc28gMC45IDwgMC4xMCBhbHNvIGFsbG93IC5leGUgZXh0ZW5zaW9ucyBmb3IgdG9vbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAoY29tcGFyZV9tYWpvcl9taW5vciksIChmaW5kX2hpZ2hlc3RfdmVyc2lvbiksCgkgIChnZXRfY2FuZGlkYXRlcyk6CgkgIGRvIHBpZWNlLXdpc2UgbWFqb3IvbWlub3IgY29tcGFyaXNvbiBzbyAwLjkgPCAwLjEwCgkgIGFsc28gYWxsb3cgLmV4ZSBleHRlbnNpb25zIGZvciB0b29scwoKMjAwNS0xMi0wMSAyMzo1NzowNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdC5jOiBFc2NhcGUgYSAlIHRvIG1ha2UgZ3RrZG9jIGhhcHBpZXI7IGJ1ZyAzMjI5NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRXNjYXBlIGEgJSB0byBtYWtlIGd0a2RvYyBoYXBwaWVyOyBidWcgMzIyOTU4LgoKMjAwNS0xMi0wMSAxOToxODo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNyA9PT0KCjIwMDUtMTItMDEgMTk6MTE6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ0hBTkdFUy0wLjk6CgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjcKCjIwMDUtMTItMDEgMTY6NTE6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkqIHdpbjMyL3ZzNy9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSAgYnVtcCBHU1RfTUFKT1JNSU5PUiB0byAwLjEwIHJlc2V0IGxpYnRvb2wgdmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYnVtcCBHU1RfTUFKT1JNSU5PUiB0byAwLjEwCgkgIHJlc2V0IGxpYnRvb2wgdmVyc2lvbgoKMjAwNS0xMi0wMSAxNToyODoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0b29scy9nc3QtZmVlZGJhY2stMC43OgoJICByZW1vdmUgb2xkIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgZmlsZQoKMjAwNS0xMi0wMSAxNToxODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTEyLTAxIDE1OjA4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogcG8vTElOR1VBUzoKCSogcG8vYmcucG86CgkgIEFkZGVkIEJ1bGdhcmlhbiB0cmFuc2xhdGlvbiBieSAoQWxleGFuZGVyIFNob3BvdikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIEJ1bGdhcmlhbiB0cmFuc2xhdGlvbiBieSAoQWxleGFuZGVyIFNob3BvdikKCjIwMDUtMTItMDEgMTU6MDQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QtYnVpbGQuc3RhbXA6CgkgIGNvbW1pdCBmaW5hbCBzdGFtcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgZmluYWwgc3RhbXAgZmlsZQoKMjAwNS0xMi0wMSAxNDo1MTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgYWRkIG1vcmUgZmlsZXMgZm9yIGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgZmlsZXMgZm9yIGRpc3RjaGVjawoKMjAwNS0xMi0wMSAxNDo0MDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkgIGFkZCBzaWduYWxzIGFuZCBhcmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2lnbmFscyBhbmQgYXJncwoKMjAwNS0xMi0wMSAxMjozNjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgZml4IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0ZXN0CgoyMDA1LTEyLTAxIDEyOjI5OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMudHlwZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9zY2Fub2JqLWJ1aWxkLnN0YW1wOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSAgZG9jdW1lbnQgY29yZSBwbHVnaW5zIGluIGEgc2VwYXJhdGUgZG9jdW1lbnQganVzdCBsaWtlIGFsbCB0aGUgb3RoZXJzIHJlbmFtZSB0aGVzZSBwbHVnaW5zIHRvIHNvbWV0aGluZyBzdGFydGluZyB3aXRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBjb3JlIHBsdWdpbnMgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudCBqdXN0IGxpa2UgYWxsIHRoZQoJICBvdGhlcnMKCSAgcmVuYW1lIHRoZXNlIHBsdWdpbnMgdG8gc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggY29yZQoKMjAwNS0xMi0wMSAxMjowMDo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBNZWFudCB0byByZW1vdmUgdGhlIGV4dHJhIHBhZGRpbmcgaGVyZSBiZWZvcmUsIGJ1dCBpdCBtaXNzZWQgdGhlIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBNZWFudCB0byByZW1vdmUgdGhlIGV4dHJhCgkgIHBhZGRpbmcgaGVyZSBiZWZvcmUsIGJ1dCBpdCBtaXNzZWQgdGhlIGNvbW1pdC4KCjIwMDUtMTItMDEgMTA6MDc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIGFkZCBsaWJnc3Rjb250cm9sbGVyIHRvIHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxpYmdzdGNvbnRyb2xsZXIgdG8gdGhlIGJ1aWxkCgoyMDA1LTEyLTAxIDA5OjU0OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiB3aGl0ZXNwYWNlIHByaWNlcyBoYXZlIGNyYXNoZWQsIHdlIHNob3VsZCBmZWVsIGZyZWUgdG8gdXNlIHNvbWUgbm93IHVzZSBnc3RfZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgd2hpdGVzcGFjZSBwcmljZXMgaGF2ZSBjcmFzaGVkLCB3ZSBzaG91bGQgZmVlbCBmcmVlIHRvIHVzZSBzb21lIG5vdwoJICB1c2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZQoKMjAwNS0xMi0wMSAwOTozMjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmaXggdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHR5cG8KCjIwMDUtMTItMDEgMDk6MjM6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIHdyYXAgY29uZmlnLmggaW5jbHVkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd3JhcCBjb25maWcuaCBpbmNsdWRlCgoyMDA1LTEyLTAxIDAyOjA4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdXBkYXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkb2NzCgoyMDA1LTEyLTAxIDAwOjU0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBtb3JlIGFuYWwgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfX2NsYXNzX2luaXQpLCAoZ3N0X2ZkX3NpbmtfX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfX2NoYWluKSwgKGdzdF9mZF9zaW5rX19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NpbmtfX2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChfZG9faW5pdCksIChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfZGlzcG9zZSksCgkgIChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksIChnc3RfZmRfc3JjX3N0YXJ0KSwgKGdzdF9mZF9zcmNfc3RvcCksCgkgIChnc3RfZmRfc3JjX3VubG9jayksIChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmRfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmRfc3JjX2lzX3NlZWthYmxlKSwgKGdzdF9mZF9zcmNfZ2V0X3NpemUpLAoJICAoZ3N0X2ZkX3NyY191cmlfZ2V0X3R5cGUpLCAoZ3N0X2ZkX3NyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3RfZmRfc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9mZF9zcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X2ZkX3NyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKToKCSAgbW9yZSBhbmFsIGNsZWFudXAKCjIwMDUtMTEtMzAgMTk6MzY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgZml4IHRoZSBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGhlIGRvY3MgYnVpbGQKCjIwMDUtMTEtMzAgMTk6MDM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBhZGQgbmV3IGlucHV0IHR5cGVzIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBuZXcgaW5wdXQgdHlwZXMgZmlsZQoKMjAwNS0xMS0zMCAxOTowMTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB2YXJpb3VzIGZpeGVzIHRvIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdmFyaW91cyBmaXhlcyB0byBtYWtlCgkgIC0tZGlzYWJsZS1ubHMgLS1kaXNhYmxlLXJlZ2lzdHJ5IC0tZGlzYWJsZS1sb2Fkc2F2ZSAgICAgICAgICAgLS1kaXNhYmxlLXBhcnNlIC0tZGlzYWJsZS1nc3QtZGVidWcKCSAgd29yayBhbmQgZ2V0IHRoZSBjb3JlIC5zbyBkb3duIHRvIDM2MDQ0NCBieXRlcyBhZnRlciBzdHJpcHBpbmcKCjIwMDUtMTEtMzAgMTc6MDU6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtb3ZlIGxvY2F0aW9uIG9mIHRlc3QgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgbG9jYXRpb24gb2YgdGVzdCByZWdpc3RyeQoKMjAwNS0xMS0zMCAxNjo0NTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTMwIDE2OjQ1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL21pc2MvTWFrZWZpbGUuYW06CgkgIG1pc3NpbmcgbWFrZWZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1pc3NpbmcgbWFrZWZpbGUKCjIwMDUtMTEtMzAgMTY6NDM6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBwcnVuZSBlbXB0eSBkaXJzIHdoZW4gdXBkYXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBydW5lIGVtcHR5IGRpcnMgd2hlbiB1cGRhdGluZwoKMjAwNS0xMS0zMCAxNjo0MjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBET0NCVUlMRElORzoKCSogZG9jcy9SRUFETUU6CgkgIHJlbW92ZSBlbXB0eSBkaXJzOyBtb3ZlIGRvY2J1aWxkaW5nIG5vdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZW1wdHkgZGlyczsgbW92ZSBkb2NidWlsZGluZyBub3RlcwoKMjAwNS0xMS0zMCAxNjozOTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkZXNjZW5kIGludG8gdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICBkZXNjZW5kIGludG8gdGVzdHMKCSAgKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9UT0RPOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL1JFQURNRToKCSAgYWRkIGEgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjMyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0zMCAxNjozMDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6Mjk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZmFpbCBvbiBtaXNzaW5nIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBmYWlsIG9uIG1pc3NpbmcgcmVnaXN0cnkKCjIwMDUtMTEtMzAgMTY6Mjg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSAgYWRkIGEgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6MjY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvTWFrZWZpbGU6CgkqIHdpbjMyL01ha2VmaWxlLmluc3BlY3Q6CgkqIHdpbjMyL01ha2VmaWxlLmxhdW5jaDoKCSogd2luMzIvTWFrZWZpbGUucmVnaXN0ZXI6CgkqIHdpbjMyL1JFQURNRS50eHQ6CgkqIHdpbjMyL2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL2dzdC1yZWdpc3Rlci52Y3Byb2o6CgkqIHdpbjMyL2dzdGVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvZ3N0Z2V0Yml0cy5kZWY6CgkqIHdpbjMyL2dzdGdldGJpdHMudmNwcm9qOgoJKiB3aW4zMi9nc3RyZWFtZXItZGJnLmRlZjoKCSogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi9saW5rX29sZHJ1bnRpbWUuYzoKCSogd2luMzIvbW1hbi5jOgoJKiB3aW4zMi9tbWFuLmg6CgkqIHdpbjMyL21tYW4uaW5sOgoJKiB3aW4zMi9tc3ZjNzEuc2xuOgoJICBtb3ZlIGV2ZW4gbW9yZSBzdHVmZiwgd2luMzIvIGlzIG5pY2UgYW5kIGNsZWFuIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBldmVuIG1vcmUgc3R1ZmYsIHdpbjMyLyBpcyBuaWNlIGFuZCBjbGVhbiBub3cKCjIwMDUtMTEtMzAgMTY6MTc6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL2NvbmZpZy5oOgoJKiB3aW4zMi9kaXJlbnQuYzoKCSogd2luMzIvZGlyZW50Lmg6CgkqIHdpbjMyL2dzdGJ5dGVzdHJlYW0uZGVmOgoJKiB3aW4zMi9nc3RieXRlc3RyZWFtLnZjcHJvajoKCSogd2luMzIvZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvZ3N0b3B0aW1hbHNjaGVkdWxlci52Y3Byb2o6CgkqIHdpbjMyL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZ3RjaGFyLmg6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9iaW5zLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2J5dGVzdHJlYW0udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2Fwcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jbGVhbnVwLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2Nsb2NrLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2RlYnVnLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2Rsb3Blbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9keW5wYXJhbXMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZ2hvc3RwYWRzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2luZGV4ZXJzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL25lZ290aWF0aW9uLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3BhcnNlLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3BsdWdpbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3N0YXRlcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS90YWdzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3RocmVhZHMudmNwcm9qOgoJICByZW1vdmUgb2xkIHdpbjMyIHN0dWZmIHRoYXQgaXNuJ3QgbWFpbnRhaW5lZCBhbmQgc2hvdWxkIGJlIHJlb3JnYW5pemVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIHdpbjMyIHN0dWZmIHRoYXQgaXNuJ3QgbWFpbnRhaW5lZCBhbmQgc2hvdWxkIGJlCgkgIHJlb3JnYW5pemVkCgoyMDA1LTExLTMwIDE2OjEyOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGdldGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBnZXRiaXRzCgoyMDA1LTExLTMwIDE2OjEwOjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFJldmVydCBwcmV2aW91cyBwYXRjaCwgbWFrZXMgbG9hZGluZyB0aGUgZ3N0LmludGVyZmFjZXMgcHl0aG9uIG1vZHVsZSBib3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFJldmVydCBwcmV2aW91cyBwYXRjaCwgbWFrZXMKCSAgbG9hZGluZyB0aGUgZ3N0LmludGVyZmFjZXMgcHl0aG9uIG1vZHVsZSBib3JrLgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywKCSAgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoKMjAwNS0xMS0zMCAxNjowODozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay8uZ2l0aWdub3JlOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiBjaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIGNoZWNrL2dzdC1saWJzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL25ldC8uZ2l0aWdub3JlOgoJKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBjaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJKiBjaGVjay9zdGF0ZXMvLmdpdGlnbm9yZToKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2FwcHJlYWRlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogZXhhbXBsZXMvY3V0dGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2N1dHRlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIGV4YW1wbGVzL2V2ZW50cy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvZXZlbnRzL3NlZWsuYzoKCSogZXhhbXBsZXMvaGVsbG93b3JsZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyL2hlbGxvd29ybGQyLmM6CgkqIGV4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiBleGFtcGxlcy9sYXVuY2gvbXAzcGxheToKCSogZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkqIGV4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIGV4YW1wbGVzL21peGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21peGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5oOgoJKiBleGFtcGxlcy9waW5ncG9uZy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9waW5ncG9uZy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcGluZ3BvbmcvcGluZ3BvbmcuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJKiBleGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogZXhhbXBsZXMvcXVldWUyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlMi9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOgoJKiBleGFtcGxlcy9xdWV1ZTMvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTMvcXVldWUzLmM6CgkqIGV4YW1wbGVzL3F1ZXVlNC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlNC9xdWV1ZTQuYzoKCSogZXhhbXBsZXMvcmV0YWcvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcmV0YWcvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIGV4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiBleGFtcGxlcy90aHJlYWQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvdGhyZWFkL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIGV4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJKiBleGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkqIGV4YW1wbGVzL3htbC9ydW54bWwuYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvUnVsZXM6CgkqIHRlc3RzdWl0ZS9jYXBzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy9hcHBfZml4YXRlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmg6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHNfc3RyaW5nczoKCSogdGVzdHN1aXRlL2NhcHMvY29tcGF0aWJpbGl0eS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9lcmF0b3N0aGVuZXMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9maXhlZC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1jb252ZXJ0LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLW11bHRpcGx5LWFuZC16ZXJvLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3NldHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3RyaW5nLWNvbnZlcnNpb25zLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N0cnVjdHVyZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2RlYnVnL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZGVidWcvY2F0ZWdvcnkuYzoKCSogdGVzdHN1aXRlL2RlYnVnL2NvbW1hbmRsaW5lLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHN1aXRlL2RlYnVnL291dHB1dC5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZGxvcGVuLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9kbG9wZW4vZGxvcGVuX2dzdC5jOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1pbnNwZWN0LWNoZWNrLmluOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9zaXplLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0c3VpdGUvcGFyc2UvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3BhcnNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRlc3RzdWl0ZS9wYXJzZS9wYXJzZTIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL1JFQURNRToKCSogdGVzdHN1aXRlL3BsdWdpbi9keW5hbWljLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vbGlua2VkLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3JlZ2lzdHJ5LmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vc3RhdGljLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vc3RhdGljMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4uYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yX3MuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luX3MuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21haW5sb29wLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5oOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvb2JqZWN0LmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy90aHJlYWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8xNTk1NjYuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvMTU5ODUyLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9xdWV1ZS5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3N0YXRpY3JlYy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRjLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZS5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRmLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGcuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRpLmM6CgkgIG1vdmUgYWxsIG9mIHRoZXNlIHVuZGVyIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGFsbCBvZiB0aGVzZSB1bmRlciB0ZXN0cwoKMjAwNS0xMS0zMCAxNTozNzozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBhZnRlciB0aG9tYXMncyBDVlMgc3VyZ2VyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGFmdGVyIHRob21hcydzIENWUyBzdXJnZXJ5CgoyMDA1LTExLTMwIDE1OjM0OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSAgYWRkIE1ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgTWFrZWZpbGUuYW0KCjIwMDUtMTEtMzAgMTU6Mjk6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMTEtMzAgMTU6MjA6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJICBjb21waWxlIHdhcm5pbmcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBpbGUgd2FybmluZyBmaXhlcwoKMjAwNS0xMS0zMCAxMzoyODoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1jb21wcHJlcC1jaGVjay5pbjoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWNvbXBwcmVwLWNoZWNrLmluOgoJICByZW1vdmUgY29tcHByZXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb21wcHJlcAoKMjAwNS0xMS0zMCAxMzoyNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLCBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywKCSAgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoKMjAwNS0xMS0zMCAxMzowODowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBGaXJzdCBwYXNzIGF0IGNsZWFuaW5nIHVwIHRlc3RzLyBkaXIgYmVmb3JlIG1vdmluZyB0aGUgcmVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvYmVuY2gtY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvYmVuY2gtbWFzc19lbGVtZW50cy5zY206CgkgICogdGVzdHMvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuZ251cGxvdDoKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NhcHMuYzoKCSAgKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmM6CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206CgkgICogdGVzdHMvcGxvdC1kYXRhOgoJICBGaXJzdCBwYXNzIGF0IGNsZWFuaW5nIHVwIHRlc3RzLyBkaXIgYmVmb3JlIG1vdmluZyB0aGUgcmVzdAoJICBDb21iaW5lZCB3aXRoIENWUyBzdXJnZXJ5CgoyMDA1LTExLTMwIDEzOjA3OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vdmUgaW5jbHVkZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgaW5jbHVkZXMKCjIwMDUtMTEtMzAgMTE6NTU6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICByZW1vdmUgbm9yd2VnaWFuaXNtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbm9yd2VnaWFuaXNtCgoyMDA1LTExLTMwIDEwOjUwOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICBtYWtlIG5vdCBoYXZpbmcgY2hlY2sgbm9uLWZhdGFsIGZvciBleHRyYSB0YXJnZXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIG5vdCBoYXZpbmcgY2hlY2sgbm9uLWZhdGFsIGZvciBleHRyYSB0YXJnZXRzCgoyMDA1LTExLTMwIDEwOjE1OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL1BPVEZJTEVTLmluOiBxdWV1ZSBoYXMgbW92ZWQsIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgcXVldWUgaGFzIG1vdmVkLCB1cGRhdGUKCjIwMDUtMTEtMzAgMTA6MTM6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBhZGQgc29tZSBleHBsaWNpdCBjYXN0cyB1cGRhdGUgZHNwIGZpbGVzOyBhbHNvIGluc3RhbGxzIHRoZSBkZWJ1ZyBidWlsZCBpbiBcZ3N0cmVhbWVyXGRlYnVnIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGV4cGxpY2l0IGNhc3RzCgkgIHVwZGF0ZSBkc3AgZmlsZXM7IGFsc28gaW5zdGFsbHMgdGhlIGRlYnVnIGJ1aWxkIGluIFxnc3RyZWFtZXJcZGVidWcgdG8gc2VwYXJhdGUgaXQgZnJvbSB0aGUgbm9uLWRlYnVnIGJ1aWxkCgoyMDA1LTExLTMwIDEwOjAzOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjU5OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IHJlbW92ZSBkb3VibGUgZW50cmllcyBmcm9tIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBkb3VibGUgZW50cmllcyBmcm9tIHRoZSBkb2NzCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIHJlbW92ZSB0aGUgVEhSRUFEIGRlYnVnIGNhdGVnb3J5CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RxdWV1ZS5jOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBjb21wbGV0ZWx5IG1vdmUgcXVldWUgYW5kIGZpeCB1cCBkZWJ1Z2dpbmcgY2F0ZWdvcmllcwoKMjAwNS0xMS0zMCAwOTozODo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IG1ha2UgaW5pdGlhbGl6YXRpb24gcG9ydGFibGUsIHVzaW5nIExMIGlzIG5vdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgbWFrZSBpbml0aWFsaXphdGlvbiBwb3J0YWJsZSwgdXNpbmcgTEwgaXMgbm90CgoyMDA1LTExLTMwIDA5OjM2OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjMwOjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjI3OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogYWRkIGxhcmdlIHBhZGRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBhZGQgbGFyZ2UgcGFkZGluZwoKMjAwNS0xMS0zMCAwOToyMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogcmVuYW1lIHN5bWJvbHM7IHNvcnQgYmFzZSBzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW5hbWUgc3ltYm9sczsgc29ydCBiYXNlIHNlY3Rpb24KCjIwMDUtMTEtMzAgMDk6MTg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IHJlbW92ZSBjcmFjayBub24tcG9ydGFibGUgaGFuZHJvbGxlZCBERUJVRyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgcmVtb3ZlIGNyYWNrIG5vbi1wb3J0YWJsZSBoYW5kcm9sbGVkIERFQlVHIG1hY3JvCgoyMDA1LTExLTMwIDA5OjEyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZSB2aXN1YWwgc3R1ZGlvIGdlbmVyYXRlZCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHZpc3VhbCBzdHVkaW8gZ2VuZXJhdGVkIGZpbGVzCgoyMDA1LTExLTMwIDA4OjU2OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL3ZzNi86IHVwZGF0ZSBwcm9qZWN0IGZpbGVzIGZvciBuZXcgbG9jYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICB1cGRhdGUgcHJvamVjdCBmaWxlcyBmb3IgbmV3IGxvY2F0aW9ucwoKMjAwNS0xMS0zMCAwODo1Mjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogcmVtb3ZlIHNvbWUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBzb21lIGZpbGVzCgkgICogUkVBRE1FOgoJICByZWluc3RhdGUgYW5kIHVwZGF0ZQoJICAqIERFVkVMOgoJICAqIFJFUVVJUkVNRU5UUzoKCSAgcmVtb3ZlZAoJICAqIExJQ0VOU0U6CgkgICogZG9jcy9yYW5kb20vTElDRU5TRToKCSAgbW92ZWQgdG8gcmFuZG9tCgoyMDA1LTExLTMwIDA4OjM2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgcHV0IHRoZSBSRUFETUUgYmFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHV0IHRoZSBSRUFETUUgYmFjawoKMjAwNS0xMS0zMCAwODozMzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBUT0RPOgoJICBjbGVhbiB1cCBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBUT0RPCgoyMDA1LTExLTMwIDA4OjI5OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZXh0L01ha2VmaWxlLmFtOgoJICByZW1vdmluZyBleHQsIHdhcyBub3QgdXNlZCBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmluZyBleHQsIHdhcyBub3QgdXNlZCBhbnltb3JlCgoyMDA1LTExLTI5IDIzOjU2OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogRml4IG1lbW9yeSBsZWFrIGluIEdzdFR5cGVGaW5kRmFjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICBGaXggbWVtb3J5IGxlYWsgaW4gR3N0VHlwZUZpbmRGYWN0b3J5LgoKMjAwNS0xMS0yOSAyMDoxNjo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNS0xMS0yOSAxOTo0NzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHF1ZXVlIGZyb20gY29yZSB0byB0aGUgZWxlbWVudHMgcGx1Z2luIMOnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIG1vdmUgcXVldWUgZnJvbSBjb3JlIHRvIHRoZSBlbGVtZW50cyBwbHVnaW4KCSAgw6cKCjIwMDUtMTEtMjkgMTk6NDQ6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgcGMgZmlsZXMKCjIwMDUtMTEtMjkgMTk6Mzc6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBlbi1MQVJHRSB0aGUgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBlbi1MQVJHRSB0aGUgcGFkZGluZy4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW4gKEdTVF9QQURESU5HX0xBUkdFKTogTmV3IGRlZmluZSwgdGhlIG51bWJlcgoJICBvZiBwb2ludGVycyBieSB3aGljaCB0byBwYWQgdmVyeSBleHRlbnNpYmxlIGJhc2UgY2xhc3NlcyAobGlrZSB0aGUKCSAgb25lcyBpbiBsaWJzL2dzdC9iYXNlKS4KCjIwMDUtMTEtMjkgMTk6MzQ6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IG1vdmluZyBkb2N1bWVudGF0aW9uIGZyb20gY29yZSB0byBsaWIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbW92aW5nIGRvY3VtZW50YXRpb24gZnJvbSBjb3JlIHRvIGxpYgoKMjAwNS0xMS0yOSAxOToxMjozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogZ3N0L25ldC9nc3RuZXQuaDoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcG8vUE9URklMRVMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBDVlMgc3VyZ2VyeSArIHN1cHBvcnQgdG8gbW92ZSBiYXNlLCBjaGVjaywgYW5kIG5ldCBvdXQgb2YgZ3N0IGFuZCBpbnRvIGxpYnMvZ3N0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDVlMgc3VyZ2VyeSArIHN1cHBvcnQgdG8gbW92ZSBiYXNlLCBjaGVjaywgYW5kIG5ldCBvdXQgb2YgZ3N0CgkgIGFuZCBpbnRvIGxpYnMvZ3N0CgoyMDA1LTExLTI5IDE4OjU3OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oIChzdHJ1Y3QgX0dzdFN0cnVjdHVyZSk6IE9ubHkgb25lIHBvaW50ZXIgb2YKCSAgcGFkZGluZy4KCSAgKiBnc3QvZ3N0cXVlcnkuaCAoc3RydWN0IF9Hc3RRdWVyeSk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiBSZW1vdmUgYSBjb21tZW50IGluIFBsdWdpbkZlYXR1cmUuCgkgICogZ3N0L2dzdHBsdWdpbi5oIChzdHJ1Y3QgX0dzdFBsdWdpbkNsYXNzKTogQWRkIHNvbWUgcGFkZGluZy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6IChzdHJ1Y3QgX0dzdE9iamVjdCk6IE9ubHkgb25lIHBvaW50ZXIgb2YKCSAgcGFkZGluZzsgcmVkdWNlcyBvYmplY3Qgc2l6ZSBieSBhYm91dCAzMCUuIFdlIGRvbid0IGV4cGVjdAoJICBhbnl0aGluZyBlbHNlIHRvIGdvIGludG8gZ3N0b2JqZWN0LgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmggKHN0cnVjdCBfR3N0TWluaU9iamVjdCkKCSAgKHN0cnVjdCBfR3N0TWluaU9iamVjdENsYXNzKTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nOyB0aGUKCSAgcGF5bG9hZCBpcyBvbmx5IGEgcG9pbnRlciBhbmQgdHdvIGludHMgYW55d2F5LiBGb3IgdGhlIGNsYXNzIHRoZXJlCgkgIGFyZSBvbmx5IHR3byBtZXRob2RzIGFzIHdlbGwuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoc3RydWN0IF9Hc3RFbGVtZW50Q2xhc3MpOiBSZW1vdmVkCgkgIHRoZSBzdGF0ZV9jaGFuZ2VkIHNpZ25hbCBjYWxsYmFjaywgaXQgaXMgbm90IHVzZWQuCgoyMDA1LTExLTI5IDE4OjQ5OjE5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvLmdpdGlnbm9yZToKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L01ha2VmaWxlLmFtOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvYm9ub2JvLWdzdG1lZGlhcGxheS11aS54bWw6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9ib25vYm8tZ3N0bWVkaWFwbGF5LmM6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9nc3RtZWRpYXBsYXkub2FmaW5mbzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvTWFrZWZpbGUuYW06CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXItZmFjdG9yeS5jOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLmdvYjoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci5vYWZpbmZvOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVydmlkZW8uZ29iOgoJICB3aGFjayBhIG1vbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoYWNrIGEgbW9sZQoKMjAwNS0xMS0yOSAxODozODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgdGhlc2UgZmlsZXMgd2VyZSBtb3ZlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlc2UgZmlsZXMgd2VyZSBtb3ZlZAoKMjAwNS0xMS0yOSAxODoyMToxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGZpeCBpbmNsdWRlcywgdGhvdWdoIHRoZXkgYXJlIGEgbGl0dGxlIGRpbmt5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZml4IGluY2x1ZGVzLCB0aG91Z2ggdGhleSBhcmUgYSBsaXR0bGUgZGlua3kKCjIwMDUtMTEtMjkgMTg6MTQ6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGxvb2sgaW4gdGhlIHJpZ2h0IHBsYWNlIGZvciBlbGVtZW50cywgYSBsb3QgbW9yZSBjaGFuY2Ugb2Ygc3VjY2VzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgbG9vayBpbiB0aGUgcmlnaHQgcGxhY2UgZm9yIGVsZW1lbnRzLCBhIGxvdCBtb3JlIGNoYW5jZSBvZgoJICBzdWNjZXNzCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICByZW1vdmUgaW5kZXhlcnMgYW5kIGVsZW1lbnRzIHN1YmRpcnMKCSAgKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBtYWtlIGluZGV4ZXJzIGNvbmRpdGlvbmFsCgoyMDA1LTExLTI5IDE4OjA4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGFkZCBtaXNzaW5nIE1ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBNYWtlZmlsZS5hbQoKMjAwNS0xMS0yOSAxODowNDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZml4IGRvYyBidWlsZCBmb3Igc3R1ZmYgbW92ZWQgYXJvdW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jIGJ1aWxkIGZvciBzdHVmZiBtb3ZlZCBhcm91bmQKCjIwMDUtMTEtMjkgMTg6MDM6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcmVtb3ZlIG1vdmVkIGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtb3ZlZCBkaXJzCgoyMDA1LTExLTI5IDE4OjAyOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBlbXB0eSBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZW1wdHkgZGlycwoKMjAwNS0xMS0yOSAxODowMDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkbyBDVlMgc3VyZ2VyeSBhbmQgcmVsYXRlZCBidWlsZCBmaXhlcnkgdG8gbW92ZSBlbGVtZW50cyBhbmQgaW5kZXhlcnMgaW4gYSBuZXcgZ3N0cmVhbWVyL3BsdWdpbnMgZGlyZWN0b3J5LCBvdXQgb2YgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBkbyBDVlMgc3VyZ2VyeSBhbmQgcmVsYXRlZCBidWlsZCBmaXhlcnkgdG8gbW92ZSBlbGVtZW50cwoJICBhbmQgaW5kZXhlcnMgaW4gYSBuZXcgZ3N0cmVhbWVyL3BsdWdpbnMgZGlyZWN0b3J5LCBvdXQgb2YgdGhlCgkgIGdzdC8gZGlyZWN0b3J5CgoyMDA1LTExLTI5IDE3OjQ3OjA2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBSZW5hbWUgZ3N0bmV0LXRlbXBuYW1lIHRvIGdzdG5ldC4gRml4ZXMgIzMyMjI1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbTogUmVuYW1lIGdzdG5ldC10ZW1wbmFtZSB0byBnc3RuZXQuIEZpeGVzCgkgICMzMjIyNTcuCgoyMDA1LTExLTI5IDE3OjM1OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0yOSAxNzozMzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBjb21wbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBjb21wbGV0ZQoKMjAwNS0xMS0yOSAxNzozMjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy86IHJlbW92aW5nIC1jb21wcHJlcCBhbmQgLWNvbXBsZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS4xLmluOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC4xLmluOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJICByZW1vdmluZyAtY29tcHByZXAgYW5kIC1jb21wbGV0ZQoKMjAwNS0xMS0yOSAxNzoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuKjogZml4ICMzMjA1MjkgLSBjbGVhbiB1cCBuZXdfc2VnbWVudCBBUEkgYW5kIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGZpeCAjMzIwNTI5IC0gY2xlYW4gdXAgbmV3X3NlZ21lbnQgQVBJIGFuZCBzdHJ1Y3R1cmUuCgkgIExldCdzIGhvcGUgZXZlcnlvbmUgd2FzIHVzaW5nIHRoZSBtZXRob2RzLCBhbmQgbm90IHRoZSBzdHJ1Y3R1cmUuCgoyMDA1LTExLTI5IDE3OjEzOjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBpZiB0aGUgYWNjdW11bGF0b3IgaXMgMCBhbmQgdGhlIGZvcm1hdAoJICBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCjIwMDUtMTEtMjkgMTU6NTA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9xdWVyeV9uZXdfc2Vla2luZyBhbmQgZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfcXVlcnlfbmV3X3NlZWtpbmcgYW5kIGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nIHRvIHRoZQoJICBkb2NzLgoKMjAwNS0xMS0yOSAxNToxNTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZpeCBjb25mbGljdCBtYXJrZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBjb25mbGljdCBtYXJrZXIKCjIwMDUtMTEtMjkgMTU6MTI6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUcmVhdCBhIHBhZCBhbGxvYyB3aXRoIG5ldyBjYXBzIHRoZSBzYW1lIGFzIGlmIHdlIHdlcmUgbm90IG5lZ290aWF0ZWQsIGluIG9yZGVyIHRvIGFsbG93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBUcmVhdCBhIHBhZCBhbGxvYyB3aXRoIG5ldyBjYXBzIHRoZSBzYW1lIGFzIGlmIHdlIHdlcmUgbm90CgkgIG5lZ290aWF0ZWQsIGluIG9yZGVyIHRvIGFsbG93IGEgY2hhbmdpbmcgdXBzdHJlYW0gb3V0cHV0CgkgIHRvIHByb2R1Y2UgYSBuZXcgZm9ybWF0IG9mIGRhdGEuCgoyMDA1LTExLTI5IDE0OjQ3OjA3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUaGUgZXZlbnQgdmlydHVhbCBtZXRob2QgaXMgbm93IHByb3Blcmx5IGltcGxlbWVudGVkLCB3aXRoIGEgZGVmYXVsdCBoYW5kbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnRmdW5jKToKCSAgVGhlIGV2ZW50IHZpcnR1YWwgbWV0aG9kIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZCwgd2l0aCBhIGRlZmF1bHQKCSAgaGFuZGxlcgoJICBTdWIgY2xhc3NlcyBzaG91bGQgY2FsbCB0aGUgcGFyZW50X2NsYXNzIGV2ZW50IG1ldGhvZC4gVGhleSBzaG91bGQKCSAgcmV0dXJuIEZBTFNFIGlmIHRoZXkgaGFkIGEgcHJvYmxlbSBoYW5kbGluZyB0aGUgZ2l2ZW4gZXZlbnQsIG9yIGRvbid0CgkgIHdhbnQgR3N0QmFzZVRyYW5zZm9ybSB0byBzZW5kIHRoYXQgZXZlbiBkb3duc3RyZWFtCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBBZGRlZCB0aGUgc2luZ2xlLXNlZ21lbnQgYm9vbGVhbiBwcm9wZXJ0eS4KCSAgSWYgc2V0IHRvIFRSVUUsIGl0IHdpbGwgb3V0cHV0IGEgc2luZ2xlIHNlZ21lbnQgb2YgZGF0YSwgc3RhcnRpbmcgZnJvbQoJICAwLCB3aWxsIGVhdCB1cCBhbGwgaW5jb21pbmcgbmV3c2VnbWVudCwgYW5kIG1vZGlmeSB0aGUgdGltZXN0YW1wIG9mIHRoZQoJICBidWZmZXJzIGFjY29yZGluZ2x5CgoyMDA1LTExLTI5IDE0OjQzOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzLzAuMTA6CgkgIGZ1cnRoZXIgcmV2aWV3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmdXJ0aGVyIHJldmlldwoKMjAwNS0xMS0yOSAxMzoxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBEb24ndCByZWYgTlVMTCB0YXJnZXQgcGFkICgjMzIyNzUxKS4gSW1wcm92ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCk6CgkgIERvbid0IHJlZiBOVUxMIHRhcmdldCBwYWQgKCMzMjI3NTEpLiBJbXByb3ZlIGRvY3MuCgoyMDA1LTExLTI5IDExOjA3OjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRG9uJ3QgY3Jhc2ggaWYgd2UgZmFpbGVkIHRvIGxvYWQgYSBmZWF0dXJlIGZyb20gYSBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICBEb24ndCBjcmFzaCBpZiB3ZSBmYWlsZWQgdG8gbG9hZCBhIGZlYXR1cmUgZnJvbSBhIHBsdWdpbi4KCjIwMDUtMTEtMjkgMDA6NTE6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvMC4xMDoKCSAgYWRkIG15IHRvZG9zIGZvciAwLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbXkgdG9kb3MgZm9yIDAuMTAKCjIwMDUtMTEtMjggMjE6NTE6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogdXNlIG1vcmUgY2hlY2sgQVBJIGFuZCBsZXNzIEdMaWIgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHVzZSBtb3JlIGNoZWNrIEFQSSBhbmQgbGVzcyBHTGliIEFQSQoKMjAwNS0xMS0yOCAyMTo0ODoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBjb3NtZXRpYyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpYyBjaGFuZ2VzCgoyMDA1LTExLTI4IDE5OjU4OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBkb24ndCBydW4gY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGRvbid0IHJ1biBjaGVja3MgaWYgd2UgZG9uJ3QgaGF2ZSBjaGVjawoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIHJlbW92ZSB0aGUgcmVnaXN0cnkgd2hlbiBydW5uaW5nIG1ha2UgdG9ydHVyZQoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBzZWNvbmQgbXVsdGlwbHkKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgZml4IGEgY29tcGlsZSB3YXJuaW5nIHdoZW4gZGlzYWJsaW5nIGRlYnVnCgoyMDA1LTExLTI4IDE5OjQzOjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RpbmZvLmg6IEhleSEgTGV0J3MgcHJpbnQgdGhlIHBhZCBuYW1lIGlmIHRoZSBwb2ludGVyICE9IE5VTEwgaW5zdGVhZCBvZiB3aGVuIGl0ID09IE5VTEwgOi0pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEhleSEgTGV0J3MgcHJpbnQgdGhlIHBhZCBuYW1lIGlmIHRoZSBwb2ludGVyICE9IE5VTEwgaW5zdGVhZAoJICBvZiB3aGVuIGl0ID09IE5VTEwgOi0pCgoyMDA1LTExLTI4IDE4OjQ0OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFVwZGF0ZWQgY2hlY2ssIGFkZCBzb21lIHNjYWxpbmcgYWNjdXJhY3kgY2hlY2tpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZWQgY2hlY2ssIGFkZCBzb21lIHNjYWxpbmcgYWNjdXJhY3kgY2hlY2tpbmcgY29kZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2RpdjEyOF82NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBGaXggNiB0aW1lcyBmYXN0ZXIgZGl2aXNpb24gY29kZS4gT3B0aW1pemUgZm9yIGNvbW1vbgoJICAxLzEgYW5kIGxlc3MgY29tbW9uIFgvMSBjYXNlcy4KCjIwMDUtMTEtMjggMTc6NTk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0xMS0yOCAxNjowNTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBNb3JlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBNb3JlIGNoZWNrcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19maW5hbGl6ZSksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChkb19saW5lYXJfcmVncmVzc2lvbiksIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKToKCSAgQ2xlYW51cHMuCgkgIFJlbGVhc2UgbG9jayB3aGVuIHRoZSBjbG9jayBjYW5ub3QgYmUgc2xhdmVkLgoJICBDYXRjaCB0aGUgY2FzZSB3aGVyZSB0aGUgcmVncmVzc2lvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRlbm9taW5hdG9yLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZGl2MTI4XzY0X2l0ZXJhdGUpLAoJICAoZ3N0X3V0aWxfZGl2MTI4XzY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEFkZCBwcm90ZW50aWFsbHkgbW9yZSBwZXJmb3JtYW50IG5vbi1pdGVyYXRpdmUgMTI4LzY0IGRpdmlkZSBmdW5jdGlvbgoJICB0aGF0IHVuZm9ydHVuYXRseSBkb2VzIG5vdCB3b3JrIHlldC4KCSAgU2hvcnRjdXQgdGhlIHRyaXZpYWwgMC9YID0gMCBjYXNlLgoJICBSZW1vdmUgdGhlIHdhcm5pbmdzIG9uIG92ZXJmbG93LgoKMjAwNS0xMS0yOCAxNDoxODoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGV2ZXJ5dGhpbmcgY2F1c2luZyBhIHBsdWdpbiBub3QgdG8gbG9hZCBzaG91bGQgYmUgYXQgbGVhc3QgYSBXQVJOSU5HCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYyk6CgkgIGV2ZXJ5dGhpbmcgY2F1c2luZyBhIHBsdWdpbiBub3QgdG8gbG9hZCBzaG91bGQgYmUgYXQgbGVhc3QgYSBXQVJOSU5HCgoyMDA1LTExLTI4IDE0OjAyOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBsb2cgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIGNhcHMKCjIwMDUtMTEtMjggMTQ6MDE6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTExLTI4IDEzOjI1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2RwYXJhbXMudHh0OiBzb21lIFRPRE9zIGZvciB0aGUgbmV4dCBkZXYgY3ljbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kcGFyYW1zLnR4dDoKCSAgc29tZSBUT0RPcyBmb3IgdGhlIG5leHQgZGV2IGN5Y2xlCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIHVzZSBiYXNlIHR5cGUgdG8gYXNzaWduIGFjY2Nlc3NvciBmdW5jdGlvbnMKCjIwMDUtMTEtMjggMTE6MzE6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IE9vcHMsIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiB0b3Bfc3JjZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBPb3BzLCB0aGF0IHNob3VsZCBoYXZlIGJlZW4gdG9wX3NyY2RpcgoKMjAwNS0xMS0yOCAxMDoyOTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZGlzYWJsZSBwaXBlbGluZSB0ZXN0IHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHVucmVsaWFibGUgZXJyb3JzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHBpcGVsaW5lIHRlc3QgdW50aWwgc29tZW9uZSBmaXhlcyB0aGUgdW5yZWxpYWJsZSBlcnJvcnMKCjIwMDUtMTEtMjggMTA6MDc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBVc2UgYSBjbWRsaW5lIGRlZmluZSB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGZpbGUgdG8gdXNlIGZvciB0ZXN0aW5nLCB0byBhdm9pZCBicmVha2luZyBkaXN0Y2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBhIGNtZGxpbmUgZGVmaW5lIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgZmlsZSB0byB1c2UgZm9yCgkgIHRlc3RpbmcsIHRvIGF2b2lkIGJyZWFraW5nIGRpc3RjaGVjay4KCjIwMDUtMTEtMjggMTA6MDQ6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZml4YXRlX3ZhbHVlKTogVXNlIGFycmF5IGZ1bmN0aW9ucyBmb3IgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGZpeGF0ZV92YWx1ZSk6IFVzZSBhcnJheSBmdW5jdGlvbnMgZm9yIGFycmF5cy4KCjIwMDUtMTEtMjggMDk6NTU6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENsYXJpZnkgdGhlIG91dHB1dCBzdHJpbmdzLCBtYWtlcyBpdCBlYXNpZXIgdG8gdHJhbnNsYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgQ2xhcmlmeSB0aGUgb3V0cHV0IHN0cmluZ3MsIG1ha2VzIGl0IGVhc2llciB0byB0cmFuc2xhdGUuCgkgIEZpeGVzICMzMjI2MjYKCjIwMDUtMTEtMjggMDg6MjA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBkb24ndCB0cnkgYW5kIGJ1aWxkIG5ldCBpZiB3ZSBkb24ndCBldmVuIGhhdmUgPHN5cy9zb2NrZXQuaD4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBkb24ndCB0cnkgYW5kIGJ1aWxkIG5ldCBpZiB3ZSBkb24ndCBldmVuIGhhdmUgPHN5cy9zb2NrZXQuaD4KCjIwMDUtMTEtMjcgMjI6NTA6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBBZGQgdGVzdHMgZm9yIGZkc3JjIHNlZWthYmlsaXR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChldmVudF9mdW5jKSwgKHNldHVwX2Zkc3JjKSwKCSAgKGNsZWFudXBfZmRzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmRzcmNfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0ZXN0cyBmb3IgZmRzcmMgc2Vla2FiaWxpdHkKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY191cGRhdGVfZmQpLCAoZ3N0X2Zkc3JjX3N0YXJ0KSwKCSAgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Zkc3JjX2lzX3NlZWthYmxlKSwKCSAgKGdzdF9mZHNyY19nZXRfc2l6ZSksIChnc3RfZmRzcmNfdXJpX3NldF91cmkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBmZHNyYyBzaG91bGQgbm90IGJlIGEgJ2xpdmUnIHNvdXJjZS4KCSAgSW1wbGVtZW50IHNlZWtpbmcgb24gc2Vla2FibGUgZmQncy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2Vla2luZyksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5IGZ1bmN0aW9uczoKCSAgKl9uZXdfc2Vla2luZyBhbmQgKl9wYXJzZV9zZWVraW5nCgoyMDA1LTExLTI3IDIyOjQzOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBkb24ndCBsb29wIGZvcmV2ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBkb24ndCBsb29wIGZvcmV2ZXIKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvYyBmaXhlcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KToKCSAgc3VwcG9ydCBjb250cm9sbGluZyBlbnVtcwoKMjAwNS0xMS0yNyAxOTo1Mjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIGdzdF92YWx1ZV91bmlvbigpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBnc3RfdmFsdWVfdW5pb24oKS4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQ2hhbmdlIHJldHVybiB2YWx1ZSBmb3IgdW5pb24sIGludGVyc2VjdCBhbmQgc3VidHJhY3QgZnVuY3Rpb25zCgkgIGZyb20gZ2ludCB0byBnYm9vbGVhbi4KCjIwMDUtMTEtMjcgMTg6MTE6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogVXNlIGdpbnQsIGdkb3VibGUgYW5kIGdjaGFyIGluIG91ciBBUEkgaW5zdGVhZCBvZiBpbnQsIGRvdWJsZSBhbmQgY2hhciAoYW5kIG1ha2UgdXNhZ2UgaW4gZ3N0dmFsdWUuYyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2FueV9saXN0KSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYW55X2xpc3Rfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9saXN0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9hcnJheSksCgkgIChnc3RfdmFsdWVfc2V0X2ludF9yYW5nZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZG91YmxlX3JhbmdlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZV9mdWxsKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfY2FwcyksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9ib29sZWFuKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kb3VibGUpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbG9hdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxvYXQpLAoJICAoZ3N0X3N0cmluZ193cmFwKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW0pLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV91bmlvbl9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NyZWF0ZV9uZXdfcmFuZ2UpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnQpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlIGdpbnQsIGdkb3VibGUgYW5kIGdjaGFyIGluIG91ciBBUEkgaW5zdGVhZCBvZiBpbnQsIGRvdWJsZSBhbmQKCSAgY2hhciAoYW5kIG1ha2UgdXNhZ2UgaW4gZ3N0dmFsdWUuYyBtb3JlIGNvbnNpc3RlbnQpLgoKMjAwNS0xMS0yNyAxNzowNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGFkZCB1bmRlZmluZWQgZm9yIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB1bmRlZmluZWQgZm9yIGNvcmUKCjIwMDUtMTEtMjcgMTY6NDY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IHVwIE1ha2VmaWxlLmFtIGFuZCByZW1vdmUgR1NUX0VOQUJMRV9ORVcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBNYWtlZmlsZS5hbSBhbmQgcmVtb3ZlIEdTVF9FTkFCTEVfTkVXCgoyMDA1LTExLTI3IDE1OjE1OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHVwZGF0ZSBMREZMQUdTIHVzZSBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgIHVwZGF0ZSBMREZMQUdTIHVzZSBzb21lIG1vcmUKCjIwMDUtMTEtMjcgMTQ6MTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIEZpeGVzICMzMTI1ODkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeGVzICMzMTI1ODkKCjIwMDUtMTEtMjcgMTQ6MDM6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgc29tZSBhZGRpdGlvbmFsIGZhaWxfaWYncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNvbWUgYWRkaXRpb25hbCBmYWlsX2lmJ3MKCjIwMDUtMTEtMjYgMTE6Mjg6MzIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBUaGlzIHNob3VsZG4ndCBpc3N1ZSBhIGdfd2FybmluZyBzaW5jZSBpdCByZXR1cm5zIE5VTEwgaWYgaXQgY291bGRuJ3QgZmluZCB0aGUgcGx1Z2luLCBhbmQgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgVGhpcyBzaG91bGRuJ3QgaXNzdWUgYSBnX3dhcm5pbmcgc2luY2UgaXQgcmV0dXJucyBOVUxMIGlmIGl0CgkgIGNvdWxkbid0IGZpbmQgdGhlIHBsdWdpbiwgYW5kIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBiZWhhdmUKCSAgcHJvcGVybHkgb24gYSBOVUxMIHJldHVybi4gU3dpdGNoaW5nIHRvIGEgR1NUX1dBUk5JTkcuCgoyMDA1LTExLTI1IDE3OjA2OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgbGVhayBjbG9jayBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRG9uJ3QgbGVhayBjbG9jayBtZXNzYWdlcy4KCjIwMDUtMTEtMjUgMTE6Mzg6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogT3B0aW1pc2F0aW9ucywgcmVtb3ZlIHVubmVlZGVkIHZhcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBPcHRpbWlzYXRpb25zLCByZW1vdmUgdW5uZWVkZWQgdmFycy4KCjIwMDUtMTEtMjUgMDA6MDI6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkZWQgbW9yZSBjaGVja3MgZm9yIHRoZSBoaWdoIHByZWNpc2lvbiB1aW50NjQgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgbW9yZSBjaGVja3MgZm9yIHRoZSBoaWdoIHByZWNpc2lvbiB1aW50NjQgY2FzZXMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBJbXBsZW1lbnQgaGlnaCBwcmVjaXNzaW9uIChndWludDY0ICogZ3VpbnQ2NCkgLyBndWludDY0LgoKMjAwNS0xMS0yNCAxOTowNjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IHdyb25nIHBlcmNlbnRhZ2UgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIEZpeCB3cm9uZyBwZXJjZW50YWdlIHF1ZXJ5LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBBZGQgc29tZSBtb3JlIGNvbW1vbiBjYXNlcyB0aGF0IGNhbiBiZSBoYW5kbGVkCgkgIGVmZmljaWVudGx5IHRvIF9zY2FsZS4KCjIwMDUtMTEtMjQgMTg6NDQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgcmVtb3ZlIHdyb25nbHkgY29tbWl0ZWQgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB3cm9uZ2x5IGNvbW1pdGVkIGNvbW1lbnRzCgoyMDA1LTExLTI0IDE4OjQwOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IGRvbid0IHVzZSBjaGVjayBjYWxscyBmcm9tIHRocmVhZHM7IGNoZWNrIHByb2JhYmx5IGlzbid0IHRocmVhZHNhZmUgYW5kIHVzaW5nIGEgbG9jayB0byBtYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAodGhyZWFkX3JlZiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfbWluaV9vYmplY3Rfc3VpdGUpOgoJICBkb24ndCB1c2UgY2hlY2sgY2FsbHMgZnJvbSB0aHJlYWRzOyBjaGVjayBwcm9iYWJseSBpc24ndAoJICB0aHJlYWRzYWZlIGFuZCB1c2luZyBhIGxvY2sgdG8gbWFrZSBpdCB0aHJlYWRzYWZlIHdvdWxkCgkgIGRlZmVhdCB0aGUgcHVycG9zZSBvZiB0aGlzIGNoZWNrCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIHVzZSBHU1RfREVCVUcgc29tZSBtb3JlCgoyMDA1LTExLTI0IDE4OjAzOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoYWluIHRyaXZpYWwgY2FzZSB0byBfc2NhbGVfaW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQ2hhaW4gdHJpdmlhbCBjYXNlIHRvIF9zY2FsZV9pbnQuCgoyMDA1LTExLTI0IDE3OjQ0OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIHRlc3QgZm9yIHNjYWxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3Igc2NhbGluZy4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU21hbGwgZG9jIGZpeC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBJbXBsZW1lbnRlZCBoaWdoIHByZWNpc2lvbiBzY2FsaW5nIGNvZGUuCgoyMDA1LTExLTI0IDE2OjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBkbyBub3QgY3Jhc2ggb24gcGFkPT1OVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIGRvIG5vdCBjcmFzaCBvbiBwYWQ9PU5VTEwKCjIwMDUtMTEtMjQgMTY6MzI6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIEZpeCBkaXN0Y2hlY2sgaXNzdWVzIGZvciB0aGUgbGlicmFyaWVzIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdAoJICAqIGNvbW1vbi9ndGstZG9jLm1hazoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBkaXN0Y2hlY2sgaXNzdWVzIGZvciB0aGUgbGlicmFyaWVzIGRvY3MgYnVpbGQKCSAgQ2xvc2VzICMzMTk1OTkKCjIwMDUtMTEtMjQgMTQ6Mzk6NTkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogRml4IGJ1ZyAjMzE1MDI3OiBtZW1vcnkgbGVhayBpbiBleGFtcGxlIGNvZGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBGaXggYnVnICMzMTUwMjc6IG1lbW9yeSBsZWFrIGluIGV4YW1wbGUgY29kZSBpbiBkb2NzLgoKMjAwNS0xMS0yNCAxMjo0NDoyNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVW5sb2NrIHRoZSBQUkVST0xMX0xPQ0sgaW4gYSBmYWlsdXJlIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI0ICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAZmx1ZW5kby5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFVubG9jayB0aGUgUFJFUk9MTF9MT0NLIGluIGEgZmFpbHVyZSBjYXNlLgoKMjAwNS0xMS0yNCAxMToxNjozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svbmV0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMjQgMDk6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBEb2MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTIzIDIyOjU0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlZCBkaXJlY3RvcmllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBkaXJlY3RvcmllcwoKMjAwNS0xMS0yMyAyMjoyMToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0CgoyMDA1LTExLTIzIDIxOjI0OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZCBhIHRvcnR1cmUgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSB0b3J0dXJlIHRhcmdldAoKMjAwNS0xMS0yMyAyMToxODo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS9jcmVhdGUuYzoKCSogdGVzdHMvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHMvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzL25lZ290aWF0aW9uL2NhcHNuZWdvMS5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoKMjAwNS0xMS0yMyAyMToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbGF0LmM6CgkqIHRlc3RzL211eGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9tdXhpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL211eGluZy9jYXNlMS5jOgoJKiB0ZXN0cy9wcm9iZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvcHJvYmVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9wcm9iZXMvcHJvYmV0ZXN0LmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgoyMDA1LTExLTIzIDIxOjEzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6CgkgIHJlbW92ZSB0cmlnZ2VyIHN1YmRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRyaWdnZXIgc3ViZGlyCgoyMDA1LTExLTIzIDIxOjEyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZmFrZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL25hbWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2Zha2UuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL25hbWUuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5LmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkgIHJlbW92ZSB0ZXN0cyByZXBsYWNlZCBieSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZXN0cyByZXBsYWNlZCBieSBjaGVja3MKCjIwMDUtMTEtMjMgMjA6MDQ6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNiA9PT0KCjIwMDUtMTEtMjMgMTk6NTU6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS42CgoyMDA1LTExLTIzIDE4OjA3OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0yMyAxNzo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIENocmlzdGlhbiwgbGVhcm4gdG8gY29uZmlndXJlIHlvdXIgLnNzaC9jb25maWcgZmlsZSwgYW5kIFNUT1AgY29tbWl0dGluZyB0byB0aGlzZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hyaXN0aWFuLCBsZWFybiB0byBjb25maWd1cmUgeW91ciAuc3NoL2NvbmZpZyBmaWxlLCBhbmQgU1RPUCBjb21taXR0aW5nIHRvIHRoaXNmaWxlCgoyMDA1LTExLTIzIDE2OjEwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgRG9jIHVwZGF0ZXMuCgoyMDA1LTExLTIzIDE1OjQ5OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHJlbW92ZSBtZW50aW9ucyBvZiBzaW5lc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbWVudGlvbnMgb2Ygc2luZXNyYwoKMjAwNS0xMS0yMyAxNDo1MjozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlIGZvciBuZXcgQVBJIGFuZCBBUEkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgVXBkYXRlIGZvciBuZXcgQVBJIGFuZCBBUEkgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3VtZW50YXRpb24gZml4OiBHU1RfVFJZTE9DSyAtPiBHU1RfT0JKRUNUX1RSWUxPQ0sKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jdW1lbnRhdGlvbiB0eXBvIGZpeC4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgRG9jdW1lbnRhdGlvbiBmaXhlcyBmb3IgYXJndW1lbnRzLgoKMjAwNS0xMS0yMyAxMzoyMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBUEkgQ2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24pLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIEFQSSBDaGFuZ2VzLgoJICBSZW5hbWUgZ3N0X3V0aWxfY2xvY2tfdGltZV9zY2FsZSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50CgkgIE1ha2UgZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbiB0YWtlIGEgbnVtZXJhdG9yCgkgIGFuZCBkZW5vbWluYXRvciBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgR1ZhbHVlCgkgIGFkZCBnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbiBoZWxwZXIgZnVuY3Rpb24uCgoyMDA1LTExLTIzIDEzOjE0OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBVc2UgcGFyZW50IGZpZWxkcyBmb3IgdGltZW91dCBhbmQgd2luZG93X3NpemUuCgoyMDA1LTExLTIzIDEyOjM5OjM2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICBhZGQgbWlzc2luZyBjdnNpZ25vcmVzIHNvIENWUyBzaHV0cyB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgY3ZzaWdub3JlcyBzbyBDVlMgc2h1dHMgdXAKCjIwMDUtMTEtMjMgMTI6MzY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRqdXN0IHRvIHJhdGVfbnVtL3JhdGVfZGVub20gY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkanVzdCB0bwoJICByYXRlX251bS9yYXRlX2Rlbm9tIGNoYW5nZS4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBUYWtlIHRoZSBTTEFWRV9MT0NLIG5vdCB0aGUKCSAgT0JKRUNUX0xPQ0suIERvbid0IGNhbGwgYWRkX29ic2VydmF0aW9uIHdpdGggdGhlIGxvY2suCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19pbml0KTogSW5pdGlhbGl6ZSB0aGUgcmF0ZSBhcyBhCgkgIGZyYWN0aW9uLgoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IEFkanVzdCB1c2luZyB1aW50NjRfc2NhbGUgYW5kIHRoZQoJICByYXRlIGZyYWN0aW9uLgoJICAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbiwgZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbik6IENoYW5nZSB0bwoJICBkZWFsIHdpdGggcmF0ZSBhcyBhIGZyYWN0aW9uIHdob3NlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgYXJlCgkgIEdzdENsb2NrVGltZSB2YWx1ZXMuCgkgIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6IE9ubHkgdXNlIHRoZSBPQkpFQ1RfTE9DSyB0byBzZXQgdGhlCgkgIG1hc3RlcjsgdGhlIG90aGVyIGZpZWxkcyBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBTTEFWRV9MT0NLLgoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBOb3RlIHRoYXQgdGhpcyBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZQoJICBTTEFWRV9MT0NLLgoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6IFRha2UgdGhlIFNMQVZFX0xPQ0ssIG5vdCB0aGUKCSAgT0JKRUNUX0xPQ0suIENhbGwgc2V0X2NhbGlicmF0aW9uIGluc3RlYWQgb2YgdG91Y2hpbmcgdGhlCgkgIHZhcmlhYmxlcyBkaXJlY3RseS4KCSAgKGdzdF9jbG9ja19zZXRfcHJvcGVydHksIGdzdF9jbG9ja19nZXRfcHJvcGVydHkpOiBQcm90ZWN0CgkgIG1hc3Rlci9zbGF2ZSBwYXJhbWV0ZXJzIHdpdGggdGhlIFNMQVZFX0xPQ0suCgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIHJhdGUsIGFkZCByYXRlX251bWVyYXRvciBhbmQKCSAgcmF0ZV9kZW5vbWluYXRvci4gUFIzQzFTMy4gQWRkIGEgbmV3IGxvY2ssIHRoZSBTTEFWRV9MT0NLLCBhbmQKCSAgbm90ZSB0aGF0IGFsbCBvZiB0aGUgaW5zdGFuY2UgdmFyaWFibGVzIHRoYXQgYWRkX29ic2VydmF0aW9uIGFuZAoJICB0aGUgc2V0X21hc3RlciBmdW5jdGlvbnMgdXNlIGFyZSBwcm90ZWN0ZWQgYnkgdGhhdCBsb2NrIGFuZCBub3QKCSAgdGhlIE9CSkVDVF9MT0NLLgoJICAoR1NUX0NMT0NLX1NMQVZFX0xPQ0ssIEdTVF9DTE9DS19TTEFWRV9VTkxPQ0spOiBOZXcgbWFjcm9zLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKTogTm8gbG9uZ2VyIHJlcXVpcmVzCgkgIHRoZSBjYWxsZXIgdG8gdGFrZSB0aGUgb2JqZWN0IGxvY2suCgoyMDA1LTExLTIzIDExOjIyOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCBlcnJvciBmb3IgY2xvY2sgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIGVycm9yIGZvciBjbG9jayBzdHVmZi4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9jbG9jayk6CgkgIFBvc3QgY2xvY2sgZXJyb3Igd2hlbiBjbG9jayBjYW5ub3QgYmUgdXNlZCBpbiBhIHBpcGVsaW5lLgoKMjAwNS0xMS0yMyAxMTowNTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbWFrZSB0d28gc3ltYm9scyBmcm9tIGdzdGluZm8gcHJpdmF0ZSBmb3IgdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbWFrZSB0d28gc3ltYm9scyBmcm9tIGdzdGluZm8gcHJpdmF0ZSBmb3IgdGhlIGRvY3MKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBmaXggZG9jIHR5cG9zLCB1cGRhdGUgZG9jcwoKMjAwNS0xMS0yMiAxODoyODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IE5vIG5lZWQgdG8gc3RvcmUgdGhlIGNsb2NrLCB0aGUgcGFyZW50IGVsZW1lbnQgY2xhc3MgYWxyZWFkeSBoYXMgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgTm8gbmVlZCB0byBzdG9yZSB0aGUgY2xvY2ssIHRoZSBwYXJlbnQgZWxlbWVudCBjbGFzcyBhbHJlYWR5CgkgIGhhcyBpdC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBVcGRhdGVzIGZvciBjbG9ja19zZXQgcmV0dXJuaW5nIGEgZ2Jvb2xlYW4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9jbG9ja19nZXRfaW50ZXJuYWxfdGltZSksIChnc3RfY2xvY2tfZ2V0X3RpbWUpLAoJICAoZ3N0X2Nsb2NrX3NsYXZlX2NhbGxiYWNrKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGdzdF9jbG9ja19nZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pLCAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2xvY2tfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgSW1wbGVtZW50IG1hc3Rlci9zbGF2ZS4gV2hlbiBzZXR0aW5nIGEgY2xvY2sgYXMgYSBzbGF2ZSwgYQoJICBwZXJpb2RpYyB0aW1lb3V0IGlzIHNjaGVkdWxlZCB0byBzYW1wbGUgbWFzdGVyIGFuZCBzbGF2ZSB0aW1lcy4KCSAgVGhlbiB0aGUgc2xhdmUgY2xvY2sgaXMgcmVjYWxpYnJhdGVkIHRvIG1hdGNoIG9mZnNldCBhbmQgcmF0ZQoJICBvZiB0aGUgbWFzdGVyIGNsb2NrLgoJICBVcGRhdGUgbG9nZ2luZyBhIGJpdC4KCSAgQWRkIGZsYWcgc28gdGhhdCBhIGNsb2NrIGNhbiBzdGF0ZSB0aGF0IGlzIGNhbm5vdCBiZSBzbGF2ZWQgdG8KCSAgYW5vdGhlciBjbG9jay4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBUaGUgc2V0X2Nsb2NrIHJldHVybnMgYSBnYm9vbGVhbiBmb3Igd2hlbiBhbiBlbGVtZW50IGNhbm5vdAoJICBkZWFsIHdpdGggdGhlIHNlbGVjdGVkIGNsb2NrIGluIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9jbG9jayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgY2xvY2sgY2Fubm90IGJlIHNldCBvbgoJICB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBVc2UgcmVncmVzc2lvbiBjb2RlIGluIEdzdENsb2NrIHBhcmVudCwgcmVtb3ZlIGR1cGxpY2F0ZWQKCSAgZnVuY3Rpb25hbGl0eS4KCjIwMDUtMTEtMjIgMTY6MzE6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgdW5kZXJzY29yZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCB1bmRlcnNjb3JlcwoKMjAwNS0xMS0yMiAxNTo1MjowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBjb3JyZWN0bHkgZml4IEdFbnVtVmFsdWVzIHNvIHRoYXQgbmljayBpcyB0aGUgc2hvcnQgbG93ZXJjYXNlIGRhc2hlZCB0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19zdGF0ZV9lcnJvcl9nZXRfdHlwZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19kYXRhX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19zaXpldHlwZV9nZXRfdHlwZSksIChnc3RfZmFrZV9zcmNfZmlsbHR5cGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX2luaXQpLCAoZ3N0X2Zha2Vfc3JjX3ByZXBhcmVfYnVmZmVyKSwKCSAgKGdzdF9mYWtlX3NyY19hbGxvY19idWZmZXIpLCAoZ3N0X2Zha2Vfc3JjX2dldF9zaXplKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBjb3JyZWN0bHkgZml4IEdFbnVtVmFsdWVzIHNvIHRoYXQgbmljayBpcyB0aGUgc2hvcnQgbG93ZXJjYXNlCgkgIGRhc2hlZCB0YWcKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBhbHNvIHNob3cgdGhlIG5pY2ssIHNpbmNlIGl0J3MgdXNlZnVsIHRvIHVzZSBmcm9tIHBhcnNlX2xhdW5jaAoJICBzeW50YXgKCSAgRml4ZXMgIzMyMjEzOQoKMjAwNS0xMS0yMiAxNToxNTo1MyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQWRkIHV0aWwgbWV0aG9kIGZvciBzY2FsaW5nIGEgY2xvY2t0aW1lIGJ5IGEgZnJhY3Rpb24uIFVzZWZ1bCBpbXBsZW1lbnRhdGlvbiBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIGZvciB0aGUgcmVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2Nsb2NrdGltZV9zY2FsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIHV0aWwgbWV0aG9kIGZvciBzY2FsaW5nIGEgY2xvY2t0aW1lIGJ5IGEgZnJhY3Rpb24uIFVzZWZ1bAoJICBpbXBsZW1lbnRhdGlvbiBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIGZvciB0aGUgcmVhZGVyLgoKMjAwNS0xMS0yMiAxNDoyOToxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSWYgbmVlZGVkLCBhbGxvY2F0ZSBzdG9yYWdlIGluIHRoZSBkZXN0aW5hdGlvbiB2YWx1ZSBkdXJpbmcgY29sbGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbl9yYW5nZSk6CgkgIElmIG5lZWRlZCwgYWxsb2NhdGUgc3RvcmFnZSBpbiB0aGUgZGVzdGluYXRpb24gdmFsdWUgZHVyaW5nCgkgIGNvbGxlY3Rpb24uCgoyMDA1LTExLTIyIDEzOjU4OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgUmVtb3ZlZCBHc3RVUkkgLCBjbG9zZXMgYnVnICMzMjEwNjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3R1cml0eXBlLmM6CgkgICogZ3N0L2dzdHVyaXR5cGUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFJlbW92ZWQgR3N0VVJJICwgY2xvc2VzIGJ1ZyAjMzIxMDYxCgoyMDA1LTExLTIyIDEzOjE0OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE9vcHMsIGJyb2tlIGF1dG9tYXRpYyBzdHJpbmcgdHlwZSBwYXJzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIE9vcHMsIGJyb2tlIGF1dG9tYXRpYyBzdHJpbmcgdHlwZSBwYXJzaW5nLgoJICBBZGQgYSB0ZXN0IHRvIGNhdGNoIGl0IGluIGZ1dHVyZS4KCjIwMDUtMTEtMjIgMTM6MDI6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBnc3QvZ3N0dGFnc2V0dGVyLmMgKGdzdF90YWdfc2V0dGVyX2dldF90YWdfbWVyZ2VfbW9kZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jIChnc3RfdGFnX3NldHRlcl9nZXRfdGFnX21lcmdlX21vZGUpCgkgIChnc3RfdGFnX3NldHRlcl9zZXRfdGFnX21lcmdlX21vZGUsIGdzdF90YWdfc2V0dGVyX2dldF90YWdfbGlzdCk6CgkgIEFjdHVhbGx5IHJlbmFtZSB0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zLiBHcnIuCgoyMDA1LTExLTIyIDEyOjUxOjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIGZpeCBib3JrZWQgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYm9ya2VkIGNvbW1pdAoKMjAwNS0xMS0yMiAxMjozNTo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvY2Fwc2xpc3QuaDogQ29tbWVudCB0ZXN0IGNhc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBDb21tZW50IHRlc3QgY2FzZXMKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgVGVzdCBhdXRvbWF0aWMgdmFsdWUgdHlwZSBkZXRlY3Rpb24gaW4gZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgQWRkIGZyYWN0aW9uIGFzIGEgdHlwZSB3ZSB0cnkgYW5kIGd1ZXNzIGF1dG9tYXRpY2FsbHkgaW4KCSAgY2Fwcy9zdHJ1Y3R1cmUgc3RyaW5ncy4KCjIwMDUtMTEtMjIgMTI6MzU6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgdXBkYXRlIHVwZGF0ZS1mdW5jcyBmb3IgdGFnc2V0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdXBkYXRlLWZ1bmNzIGZvciB0YWdzZXR0ZXIKCjIwMDUtMTEtMjIgMTI6MjA6MDQgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci4qOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncykgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdzLCBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlcykgKGdzdF90YWdfc2V0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBnbXggZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFncywgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZXMpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbGlzdCkKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsaXN0X3ZhbHVlcyk6IFJlbmFtZWQgZnJvbSBfbWVyZ2UsIF9hZGQsCgkgIF9hZGRfdmFsdWVzLCBfYWRkX3ZhbGlzdCwgYW5kIF9hZGRfdmFsaXN0X3ZhbHVlcy4gU2luY2UgdGhpcyBpcyBhbgoJICBpbnRlcmZhY2UgdGhlIGZ1bmN0aW9uIHN1ZmZpeGVzIHNob3VsZCBiZSBtb3JlIGV4cGxpY2l0IHNvCgkgIGxhbmd1YWdlIGJpbmRpbmcgZG9uJ3QgZW5kIHVwIHdpdGggZWxlbWVudC5hZGRfdmFsaXN0IC0+CgkgIGdzdF90YWdfc2V0dGVyX2FkZF92YWxpc3QsIGZvciBleGFtcGxlLiBGaXhlcyAjMzIyMDY5LgoKMjAwNS0xMS0yMiAxMjoxNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBzdHJlc3MgdGVzdCwgdGFrZXMgdG9vIGxvbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBzdHJlc3MgdGVzdCwgdGFrZXMgdG9vIGxvbmcKCjIwMDUtMTEtMjIgMTE6NTY6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogRXh0ZW5kIGNhcHMgc3RyaW5nIHRlc3RzIHRvIGNoZWNrIHRoYXQgYSBjYXBzIHRvIHN0cmluZyBjb252ZXJzaW9uIGlzIHJldmVyc2libGUgYW5kIHByb2R1Y2VzIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEV4dGVuZCBjYXBzIHN0cmluZyB0ZXN0cyB0byBjaGVjayB0aGF0IGEgY2FwcyB0byBzdHJpbmcKCSAgY29udmVyc2lvbiBpcyByZXZlcnNpYmxlIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSBjYXBzLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsdWVfZ2V0X2dlbmVyaWNfdHlwZSk6CgkgIE91dHB1dCAiZnJhY3Rpb24iIGFzIHRoZSBnZW5lcmljIHR5cGUgZnJhY3Rpb24gcmFuZ2UsIHNvIGNhcHMKCSAgc2VyaWFsaXNhdGlvbiBhbmQgZGVzZXJpYWxpc2F0aW9uIHdvcmtzLgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgU3VwcG9ydCAnTUlOJyBhbmQgJ01BWCcgZm9yIGRlc2VyaWFsaXNpbmcgZnJhY3Rpb25zLgoKMjAwNS0xMS0yMiAxMTo1MDoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBNaW5vciBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWlub3IgZG9jIGZpeC4KCjIwMDUtMTEtMjIgMTE6NDg6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50LCBnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCkKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCwgZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSkKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSwgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KToKCSAgUmVuYW1lZCBmcm9tICpfbmV3c2VnbWVudCwgKl9idWZmZXJzaXplLCAqX25vdGFyZ2V0LgoJICAqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczogTmV3IHNjcmlwdCwgcGVyZm9ybXMgdGhlIGNoYW5nZXMKCSAgbGlzdGVkIGFib3ZlLgoKMjAwNS0xMS0yMiAxMToyNTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3VyZSB0aGUgR3N0Rmxvd1JldHVybiBpcyByZXR1cm5lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIE1ha2Ugc3VyZSB0aGUgR3N0Rmxvd1JldHVybiBpcyByZXR1cm5lZC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgYWRkIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgU21hbGwgc3R5bGUgY2xlYW51cC4KCjIwMDUtMTEtMjIgMTA6MjQ6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEJsb2NrIHRoZSBmYWtlc3JjIHNyY3BhZCB3aGVuIHdlIHNlbmQgYW4gZXZlbnQsIHRvIGF2b2lkIGNvbnRlbnRpb24gb24gdGhlIHN0cmVhbV9sb2NrIGNhdXNpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEJsb2NrIHRoZSBmYWtlc3JjIHNyY3BhZCB3aGVuIHdlIHNlbmQgYW4gZXZlbnQsIHRvIGF2b2lkCgkgIGNvbnRlbnRpb24gb24gdGhlIHN0cmVhbV9sb2NrIGNhdXNpbmcgcmFuZG9tIHRlc3QgZmFpbHVyZXMuCgoyMDA1LTExLTIyIDA5OjQyOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBzdWJ0cmFjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZnJhY3Rpb25fc3VidHJhY3QpOgoJICBGaXggc3VidHJhY3Rpb24uCgoyMDA1LTExLTIyIDA5OjM1OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Lmg6IGluY2x1ZGUgImdzdGNoaWxkcHJveHkuaCIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5oOgoJICBpbmNsdWRlICJnc3RjaGlsZHByb3h5LmgiCgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQKCjIwMDUtMTEtMjEgMjM6NTQ6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgSW1wbGVtZW50IGZyYWN0aW9uIHJhbmdlcyBhbmQgZXh0ZW5kIEdzdEZyYWN0aW9uIHRvIHN1cHBvcnQgYXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiwgYXMgd2VsbCBhcyBkZXNlcmlhbGl6YXRpb24gZnJvbSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfcmFuZ2UpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2luaXRfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ZyZWVfZnJhY3Rpb25fcmFuZ2UpLCAoZ3N0X3ZhbHVlX2NvcHlfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2xjb3B5X2ZyYWN0aW9uX3JhbmdlKSwgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZV9mdWxsKSwKCSAgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fcmFuZ2VfbWluKSwKCSAgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fcmFuZ2VfbWF4KSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9mcmFjdGlvbl9yYW5nZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbiksIChnc3RfdmFsdWVfZnJhY3Rpb25fbXVsdGlwbHkpLAoJICAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX3N1YnRyYWN0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19mcmFjdGlvbiksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBJbXBsZW1lbnQgZnJhY3Rpb24gcmFuZ2VzIGFuZCBleHRlbmQgR3N0RnJhY3Rpb24gdG8gc3VwcG9ydAoJICBhcml0aG1ldGljIHN1YnRyYWN0aW9uLCBhcyB3ZWxsIGFzIGRlc2VyaWFsaXphdGlvbiBmcm9tIGludGVnZXIKCSAgc3RyaW5ncyBzdWNoIGFzICIxMDAiCgkgIEFkZCBhIHRlc3RzdWl0ZSBhcyBmb3IgaW50IGFuZCBkb3VibGUgcmFuZ2Ugc2V0IG9wZXJhdGlvbnMKCjIwMDUtMTEtMjEgMTk6NTg6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IEFkZCBnbGliLWNvbXBhdC5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOiBBZGQgZ2xpYi1jb21wYXQuaC4KCjIwMDUtMTEtMjEgMTk6MTM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBmb3IgIzMyMTU5NQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IGZvciAjMzIxNTk1CgoyMDA1LTExLTIxIDE5OjAwOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogQW5kIGFkZCBhIG5pY2UgZGVmaW5lIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQW5kIGFkZCBhIG5pY2UgZGVmaW5lIHRvby4KCjIwMDUtMTEtMjEgMTg6NTM6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC4qOiBNYWtlIGJpbmRpbmcgZnJpZW5kbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KSwgKGdzdF9zZWdtZW50X2dldF90eXBlKSwKCSAgKGdzdF9zZWdtZW50X25ldyksIChnc3Rfc2VnbWVudF9mcmVlKSwgKGdzdF9zZWdtZW50X2luaXQpLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwKCSAgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1ha2UgYmluZGluZyBmcmllbmRseS4KCjIwMDUtMTEtMjEgMTg6NDE6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IFNwcmlua2xlIE5VTExfVEVSTUlOQVRFRCB0byB0YXN0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6IFNwcmlua2xlIE5VTExfVEVSTUlOQVRFRCB0byB0YXN0ZS4KCjIwMDUtMTEtMjEgMTg6Mjc6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBOZXcgZXJyb3IgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oIChHU1RfQ09SRV9FUlJPUl9NSVNTSU5HX1BMVUdJTik6IE5ldyBlcnJvcgoJICBjYXRlZ29yeS4KCjIwMDUtMTEtMjEgMTg6MTY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbSAoZ3N0X2hlYWRlcnMpOiBBZGQgZ2xpYi1jb21wYXQuaC4gbm9pbnN0IHRoZSAtcHJpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L01ha2VmaWxlLmFtIChnc3RfaGVhZGVycyk6IEFkZCBnbGliLWNvbXBhdC5oLgoJICAobm9pbnN0X0hFQURFUlMpOiBub2luc3QgdGhlIC1wcml2YXRlLgoKMjAwNS0xMS0yMSAxODoxMDoxMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZGVjbGFyYXRpb25zIGZvciB3aGljaCB3ZSBjYW4gc2VlIG5vIHNlbnNpYmxlIHVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZW1vdmUgdW5pbXBsZW1lbnRlZCBkZWNsYXJhdGlvbnMgZm9yIHdoaWNoIHdlIGNhbiBzZWUgbm8gc2Vuc2libGUKCSAgdXNlLgoKMjAwNS0xMS0yMSAxODowMzoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5oOiBJbmNsdWRlIGdsaWItY29tcGF0LmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuaDogSW5jbHVkZSBnbGliLWNvbXBhdC5oLgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOiBBZGQgR19HTlVDX05VTExfVEVSTUlOQVRFRC4KCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogSW5jbHVkZSB0aGUgcHVibGljIGFuZCB0aGUgcHJpdmF0ZSBoZWFkZXIuCgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDogQ29waWVkIGhlcmUgZnJvbSBnbGliLWNvbXBhdC5oLgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogcy9nbGliLWNvbXBhdC9nbGliLWNvbXBhdC1wcml2YXRlLy4KCjIwMDUtMTEtMjEgMTc6MjE6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jIChjcmVhdGVfY3VzdG9tX2V2ZW50cyk6IENoZWNrIHRoYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmMgKGNyZWF0ZV9jdXN0b21fZXZlbnRzKTogQ2hlY2sgdGhhdAoJICBGTFVTSF9TVE9QIGlzIHNlcmlhbGl6ZWQuCgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYyAoZXZlbnRfZnVuYyk6CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jIChldmVudF9mdW5jKTogTm8gc3RyZWFtIGxvY2ssIHRoZSBjb3JlCgkgIHRha2VzIGl0LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KTogTm8gbW9yZQoJICBzdHJlYW0gbG9jayB0YWtpbmcsIHlheS4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZMVVNIX1NUT1ApOiBNYXJrZWQgYXMgc2VyaWFsaXplZCB0bwoJICBlbnN1cmUgdGhhdCBjb3JlIHRha2VzIHRoZSBzdHJlYW0gbG9jay4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kb19zZWVrKTogVXBkYXRlIGZvciBzdHJlYW0KCSAgbG9jayBuYW1lIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2V2ZW50KTogTm8gbmVlZCB0byB0YWtlCgkgIHRoZSBzdHJlYW0gbG9jayBmb3IgRU9TLCBORVdTRUdNRU5ULCBvciBGTFVTSF9TVE9QLCB0aGUgY29yZSBkb2VzCgkgIGl0IGFscmVhZHkuIEZvciB0aGUgZmx1c2ggc3RhcnQgd2UgZG8gdGFrZSBpdCB0aG91Z2ggc28gd2UgZ2V0IHRoZQoJICByaWdodCBwcmVyb2xsIHN0YXRlIGNoYW5nZSBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCk6IE5vIG5lZWQgdG8gdGFrZQoJICB0aGUgc3RyZWFtIGxvY2sgaGVyZSwgdGhlIGNvcmUgZG9lcyBpdCBmb3IgdXMuCgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0dFVF9TVFJFQU1fTE9DSyk6IFJlbmFtZWQgZnJvbQoJICBHU1RfU1RSRUFNX0dFVF9MT0NLLgoJICAoR1NUX1BBRF9TVFJFQU1fTE9DSywgR1NUX1BBRF9TVFJFQU1fVFJZTE9DSykKCSAgKEdTVF9QQURfU1RSRUFNX1VOTE9DSywgR1NUX1BBRF9TVFJFQU1fVU5MT0NLX0ZVTEwpCgkgIChHU1RfUEFEX1NUUkVBTV9MT0NLX0ZVTEwpOiBSZW5hbWVkIGZyb20gR1NUX1NUUkVBTV8qLgoJICAoR1NUX1BBRF9HRVRfUFJFUk9MTF9MT0NLKTogUmVuYW1lZCBmcm9tIEdTVF9QUkVST0xMX0dFVF9MT0NLLgoJICAoR1NUX1BBRF9QUkVST0xMX0xPQ0ssIEdTVF9QQURfUFJFUk9MTF9UUllMT0NLKQoJICAoR1NUX1BBRF9QUkVST0xMX1VOTE9DSyk6IFJlbmFtZWQgZnJvbSBHU1RfUFJFUk9MTF8qLgoJICAqIGdzdC9nc3RwYWQuYzogVXBkYXRlIGZvciBzdHJlYW0gbG9jayBuYW1lIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVcGRhdGUgZm9yIHByZXJvbGwgbG9jayBuYW1lIGNoYW5nZS4KCjIwMDUtMTEtMjEgMTc6MTI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDb252ZXJ0IENsb2NrIGZsYWdzIHRvIG9iamVjdCBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChnc3RfY2xvY2tfZ2V0X21hc3Rlcik6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOgoJICBDb252ZXJ0IENsb2NrIGZsYWdzIHRvIG9iamVjdCBmbGFncy4KCSAgQWRkZWQgbWV0aG9kcyB0byBtYW5hZ2UgbWFzdGVyL3NsYXZlIGNsb2Nrcy4KCjIwMDUtMTEtMjEgMTc6MDk6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcywgcmVwbGFjZSBjb2RlIGluIHBsdWdpbnMgd2l0aCBzZWdtZW50IGhlbHBlciBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzLCByZXBsYWNlIGNvZGUgaW4gcGx1Z2lucyB3aXRoIHNlZ21lbnQKCSAgaGVscGVyIGZ1bmN0aW9ucy4KCjIwMDUtMTEtMjEgMTY6NDY6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IERvbid0IGlnbm9yZSBzc2NhbmYgcmVzdWx0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY191cmlfc2V0X3VyaSk6CgkgIERvbid0IGlnbm9yZSBzc2NhbmYgcmVzdWx0cwoKMjAwNS0xMS0yMSAxNjo0MToxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5oIChHU1RfSVNfUEFEX0ZBU1QpOiBSZW1vdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9JU19QQURfRkFTVCk6IFJlbW92ZWQuCgoyMDA1LTExLTIxIDE2OjM0OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLio6IFJhbiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3MuIE9oIHllcy4gZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX0dFVF9MT0NLLCBHU1RfT0JKRUNUX0xPQ0spCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqICouaDoKCSAgKiAqLmM6IFJhbiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3MuIE9oIHllcy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfR0VUX0xPQ0ssIEdTVF9PQkpFQ1RfTE9DSykKCSAgKEdTVF9PQkpFQ1RfVFJZTE9DSywgR1NUX09CSkVDVF9VTkxPQ0spOiBSZW5hbWVkIGZyb20KCSAgR1NUX0dFVF9MT0NLLCBldGMuCgkgICogc2NyaXB0cy91cGRhdGUtbWFjcm9zOiBOZXcgc2NyaXB0LiBSdW4gaXQgb24geW91ciBmaWxlcyB0bwoJICBjaGFuZ2UgR1NUX0xPQ0sgdG8gR1NUX09CSkVDVF9MT0NLLCBhbmQgdGhlIHNhbWUgZm9yIFVOTE9DSyBhcwoJICB3ZWxsLgoKMjAwNS0xMS0yMSAxNTo0NzowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGZpeGVzLCBhZGQgbmV3IGFwaSB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIG1vcmUgZG9jcyBmaXhlcywgYWRkIG5ldyBhcGkgdG8gdGhlIGRvY3MKCjIwMDUtMTEtMjEgMTU6MDE6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6IFdpbSBjbGFpbXMgSSBjYW4gcmVtb3ZlIHRoaXMgc3RhdGVfYnJvYWRjYXN0IGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6IFdpbSBjbGFpbXMgSSBjYW4gcmVtb3ZlIHRoaXMKCSAgc3RhdGVfYnJvYWRjYXN0IGNhbGwuCgoyMDA1LTExLTIxIDE0OjUzOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jIChnc3Rfc2VnbWVudF9pbml0KTogSW5pdGlhbGl6ZSBhYnNfcmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHNlZ21lbnQuYyAoZ3N0X3NlZ21lbnRfaW5pdCk6IEluaXRpYWxpemUgYWJzX3JhdGUuCgoyMDA1LTExLTIxIDE0OjUyOjU2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggd3JvbmcgZnVuY3Rpb24gY2FsbHMgZm9yIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbnRlcnNlY3RfYXJyYXkpOiBGaXggd3JvbmcKCSAgZnVuY3Rpb24gY2FsbHMgZm9yIGFycmF5cy4KCjIwMDUtMTEtMjEgMTQ6NTA6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6IHdpbGQgaWRlYSwgY2FuIHRoaXMgYmUgZG9uZT8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgd2lsZCBpZGVhLCBjYW4gdGhpcyBiZSBkb25lPwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3RmaWx0ZXIuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIGZpeGVzIGFuZCBhZGRpdGlvbnMKCjIwMDUtMTEtMjEgMTQ6NDE6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHU1RfTElWRV9CUk9BRENBU1QsIEdTVF9MSVZFX1NJR05BTCkgKEdTVF9MSVZFX1RJTUVEX1dBSVQsIEdTVF9MSVZFX1dBSVQsIEdTVF9MSVZFX0dFVF9DT05EKSAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR1NUX0xJVkVfQlJPQURDQVNULCBHU1RfTElWRV9TSUdOQUwpCgkgIChHU1RfTElWRV9USU1FRF9XQUlULCBHU1RfTElWRV9XQUlULCBHU1RfTElWRV9HRVRfQ09ORCkKCSAgKEdTVF9MSVZFX1VOTE9DSywgR1NUX0xJVkVfVFJZTE9DSywgR1NUX0xJVkVfTE9DSykKCSAgKEdTVF9MSVZFX0dFVF9MT0NLKTogTW92ZWQgaGVyZSBmcm9tIGdzdGJhc2VzcmMuaC4gVGhleSBhcmUKCSAgcHJpdmF0ZSB0byB0aGUgYmFzZXNyYyBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMTEtMjEgMTQ6MzQ6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZW5kX2V2ZW50KTogRG9jIG1vcmUuIFRha2Ugc3RyZWFtIGxvY2sgb24gYmVoYWxmIG9mIGV2ZW50IGZ1bmN0aW9uIGlmIG5lY2Vzc2FyeS4gSXQgc2hvdWxkIG5vIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2VuZF9ldmVudCk6IERvYyBtb3JlLiBUYWtlIHN0cmVhbSBsb2NrIG9uCgkgIGJlaGFsZiBvZiBldmVudCBmdW5jdGlvbiBpZiBuZWNlc3NhcnkuIEl0IHNob3VsZCBubyBsb25nZXIgYmUKCSAgbmVjZXNzYXJ5IHRvIHRha2UgdGhlIHN0cmVhbSBsb2NrIGluIHBhZCdzIGV2ZW50IGZ1bmN0aW9ucy4gRml4ZXMKCSAgIzMyMDI5OS4KCjIwMDUtMTEtMjEgMTQ6Mjg6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVuYW1lIGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfKiB0byBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qICgjMzIyMDI3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfaW50KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZG91YmxlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX2Jvb2xlYW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCSAgKCMzMjIwMjcpCgoyMDA1LTExLTIxIDE0OjI1OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy4qOiBQb3J0IGZkOi8vIFVSSSBoYW5kbGVyIGZyb20gMC44IHRvIGZkc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2Rpc3Bvc2UpLCAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRzcmNfdXJpX2dldF90eXBlKSwgKGdzdF9mZHNyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3RfZmRzcmNfdXJpX2dldF91cmkpLCAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9mZHNyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUG9ydCBmZDovLyBVUkkgaGFuZGxlciBmcm9tIDAuOCB0byBmZHNyYwoKMjAwNS0xMS0yMSAxMzoyNjo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzIGFuZCBtb3JlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHNlZ21lbnRzX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcyBhbmQgbW9yZSBjaGVja3MuCgoyMDA1LTExLTIxIDEzOjI2OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IERyb3AgbGVhZGluZyAnJScgZnJvbSBHU1RfRk9VUkNDX0ZPUk1BVCwgdGh1cyBtYWtpbmcgaXQgY29uc2lzdGVudCB3aXRoIG91ciBvdGhlciBmb3JtYXQgZGVmaW5lcyAoIzMyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9mb3VyY2Nfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZm91cmNjKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgRHJvcCBsZWFkaW5nICclJyBmcm9tIEdTVF9GT1VSQ0NfRk9STUFULCB0aHVzIG1ha2luZyBpdAoJICBjb25zaXN0ZW50IHdpdGggb3VyIG90aGVyIGZvcm1hdCBkZWZpbmVzICgjMzIwMzI0KS4KCjIwMDUtMTEtMjEgMTM6MTI6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdC4gVmFsdWUgbGlzdHMgYXJlIGJ5IGRlZmluaXRpb24gbm90IGZpeGVkLCBhcyB0aGV5IGFyZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQuIFZhbHVlIGxpc3RzIGFyZSBieSBkZWZpbml0aW9uCgkgIG5vdCBmaXhlZCwgYXMgdGhleSBhcmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KCjIwMDUtMTEtMjEgMTM6MDM6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRklMTEVSKTogUmVtb3ZlZC4gQ2FuIGJlIGFkZGVkIGJhY2sgZHVyaW5nIHRoZSBzdGFibGUgc2VyaWVzIGlmIHdlIG5lZWQgaXQuIEZpeGVzICMzMTkxNzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRklMTEVSKTogUmVtb3ZlZC4gQ2FuIGJlIGFkZGVkIGJhY2sKCSAgZHVyaW5nIHRoZSBzdGFibGUgc2VyaWVzIGlmIHdlIG5lZWQgaXQuIEZpeGVzICMzMTkxNzguCgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF9uZXdfZmlsbGVyKTogUmVtb3ZlZC4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGNvbW1lbnQgYWJvdXQgZmlsbGVyIGV2ZW50cy4KCjIwMDUtMTEtMjEgMTI6NDI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogU2hvdWxkIGhhbmRsZSBib3RoIHZhbHVlIGFycmF5cyBhbmQgdmFsdWUgbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgU2hvdWxkIGhhbmRsZSBib3RoIHZhbHVlIGFycmF5cyBhbmQgdmFsdWUgbGlzdHMuCgoyMDA1LTExLTIxIDEyOjI3OjAxICswMDAwICBBbGVzc2FuZHJvIERlc3NpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKTogVXNlIGdzdF92YWx1ZV9hcnJheSBmdW5jdGlvbnMgdG8gYWNjZXNzIGFycmF5cy4gRml4ZXMgIzMyMTk2Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlc3NpbmEgPGFsZXNzYW5kcm8gbm52YSBvcmc+CgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pc19maXhlZCk6IFVzZSBnc3RfdmFsdWVfYXJyYXkKCSAgZnVuY3Rpb25zIHRvIGFjY2VzcyBhcnJheXMuIEZpeGVzICMzMjE5NjIuCgoyMDA1LTExLTIxIDExOjI2OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUgPT4gZ3N0X2NvbGxlY3RfcGFkc19nZXRfdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUgPT4gZ3N0X2NvbGxlY3RfcGFkc19nZXRfdHlwZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJlbW92ZSB1bnVzZWQgU0lHTkFMX0hBTkRPRkYgZW51bS4KCjIwMDUtMTEtMjEgMTE6MDY6NDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChHc3RFdmVudFR5cGVGbGFncyk6IE5ldyBkYXRhIHR5cGUsIHRoZSBmbGFncyBvZiB0aGUgZXZlbnQgdHlwZSAodXBzdHJlYW0sIGRvd25zdHJlYW0sIHNlcmlhbGl6ZWQpLiBSZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR3N0RXZlbnRUeXBlRmxhZ3MpOiBOZXcgZGF0YSB0eXBlLCB0aGUgZmxhZ3Mgb2YKCSAgdGhlIGV2ZW50IHR5cGUgKHVwc3RyZWFtLCBkb3duc3RyZWFtLCBzZXJpYWxpemVkKS4gUmVuYW1lZAoJICBHU1RfRVZESVJfKiBhbmQgR1NUX0VWU0VSIHRvIEdTVF9FVkVOVF9UWVBFXyouCgkgIChHc3RFdmVudFR5cGUpOiBVc2UgR3N0RXZlbnRUeXBlRmxhZ3MuIFJlbmFtZSBDVVNUT01fVVAgdG8KCSAgQ1VTVE9NX1VQU1RSRUFNLCBDVVNUT01fRFMgdG8gQ1VTVE9NX0RPV05TVFJFQU0sIGV0Yy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGZvciBuZXcgQ1VTVE9NIGV2ZW50IG5hbWVzLgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiBVcGRhdGUgY2hlY2sgZm9yIG5ldyBDVVNUT00gZXZlbnQgbmFtZXMuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF90eXBlX2dldF9mbGFncyk6IE5ldyBmdW5jdGlvbi4gRml4ZXMKCSAgYnVnICMzMTkzOTIuCgoyMDA1LTExLTIxIDExOjAwOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVuYW1lIGdzdF9jb2xsZWNwYWRzX2ZvbygpID0+IGdzdF9jb2xsZWN0X3BhZHNfZm9vKCkuIERvY3VtZW50IHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zIGFzIHVuaW1wbGVtZW50ZWQgKCMzMjA3NjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0X3BhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0X3BhZHNfbmV3KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2Z1bmN0aW9uKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pc19hY3RpdmUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KSwgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdF9yYW5nZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBSZW5hbWUgZ3N0X2NvbGxlY3BhZHNfZm9vKCkgPT4gZ3N0X2NvbGxlY3RfcGFkc19mb28oKS4gRG9jdW1lbnQKCSAgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMgYXMgdW5pbXBsZW1lbnRlZCAoIzMyMDc2NikuCgoyMDA1LTExLTIxIDEwOjQxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogSW1wcm92ZSBkb2NzIGZvciBEVVJBVElPTiBtZXNzYWdlICh1c2FnZSBvZiBkdXJhdGlvbiBwYXJhbWV0ZXIpICgjMzIwMTEzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBJbXByb3ZlIGRvY3MgZm9yIERVUkFUSU9OIG1lc3NhZ2UgKHVzYWdlIG9mIGR1cmF0aW9uIHBhcmFtZXRlcikKCSAgKCMzMjAxMTMpCgoyMDA1LTExLTIxIDEwOjA0OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNS0xMS0yMSAwOTo0NDo0NiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgLnBjIGZpbGUgdG8gc3BlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCAucGMgZmlsZSB0byBzcGVjCgoyMDA1LTExLTIwIDE5OjExOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgc2VnbWVudCBoZWxwZXIgc3RydWN0dXJlIGFuZCBtZXRob2RzLiBOb3QgZnVsbHkgaW1wbGVtZW50ZWQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0ZXZlbnRzX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksCgkgIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBZGRlZCBzZWdtZW50IGhlbHBlciBzdHJ1Y3R1cmUgYW5kIG1ldGhvZHMuIE5vdCBmdWxseSBpbXBsZW1lbnRlZAoJICB5ZXQuCgkgIEFkZGVkIHNlZ21lbnQgY2hlY2suCgoyMDA1LTExLTIwIDE3OjEyOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgYSBkZXNlcmlhbGlzYXRpb24gdGVzdCBmb3IgZnJhY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIGEgZGVzZXJpYWxpc2F0aW9uIHRlc3QgZm9yIGZyYWN0aW9ucwoJICAqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChtYWtlX3BpcGVsaW5lKSwgKG1haW4pOgoJICBGaXggdXAgbWV0YWRhdGEgcmVhZGluZyBzYW1wbGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIERlYnVnIGZvcm1hdCBmaXgKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBEb24ndCB0cnkgYW5kIGZpeGF0ZSBlbXB0eSBjYXBzCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIFdyYXAgaW4gR19CRUdJTl9ERUNMUy9HX0VORF9ERUNMUwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbiksIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX2Rlbm9taW5hdG9yKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgQWRkIHNvbWUgZXh0cmEgZ3VhcmRzIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGVuZCB1cAoJICB3aXRoIGFuIGludmFsaWQgZGVub21pbmF0b3Igb2YgMCBpbiBhIGdzdGZyYWN0aW9uIGFuZAoJICB0aGF0IGZyYWN0aW9ucyBhbHdheXMgZ2V0IHJlZHVjZWQuCgoyMDA1LTExLTIwIDE0OjU2OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGNoYW5nZWxvZyBpbiBsYXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjaGFuZ2Vsb2cgaW4gbGFzdCBjb21taXQKCjIwMDUtMTEtMjAgMTQ6NTA6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0yMCAxMzoyODoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgYSBwcm9wZXIgZW51bSBvZiB0aGUgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBNYWtlIGEgcHJvcGVyIGVudW0gb2YgdGhlIGZsYWcuCgoyMDA1LTExLTE5IDE4OjU3OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIHR5cGUgdG8gcXVhcmsgYW5kIHR5cGUgdG8gc3RyaW5nIGNvbnZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpLCAoZ3N0X2Zvcm1hdF9nZXRfbmFtZSksCgkgIChnc3RfZm9ybWF0X3RvX3F1YXJrKSwgKGdzdF9mb3JtYXRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSksCgkgIChnc3RfcXVlcnlfdHlwZV9nZXRfbmFtZSksIChnc3RfcXVlcnlfdHlwZV90b19xdWFyayksCgkgIChnc3RfcXVlcnlfdHlwZV9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCB0eXBlIHRvIHF1YXJrIGFuZCB0eXBlIHRvIHN0cmluZyBjb252ZXJzaW9ucy4KCjIwMDUtMTEtMTkgMTg6MzI6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GTEFHX09SSUdJTkFMKTogUmVtb3ZlZC4gRml4ZXMgIzMyMDA5Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZMQUdfT1JJR0lOQUwpOiBSZW1vdmVkLiBGaXhlcwoJICAjMzIwMDk3LgoKMjAwNS0xMS0xOSAxODoyODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgbWVzc2FnZSBoYW5kbGluZyBvdmVycmlkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgTWFrZSBtZXNzYWdlIGhhbmRsaW5nIG92ZXJyaWRhYmxlLgoKMjAwNS0xMS0xOSAxODoyNjozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0lTX1VTQUJMRSk6IFJlbW92ZWQuIEZpeGVzICMzMjEyMzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9JU19VU0FCTEUpOiBSZW1vdmVkLiBGaXhlcyAjMzIxMjM1LgoKMjAwNS0xMS0xOSAxODoxNzoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLio6IENoYW5nZSByZXNvbHV0aW9uIHRvIGJlIGEgR3N0Q2xvY2tUaW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYyAoR3N0Q2xvY2ssIEdzdENsb2NrQ2xhc3MpOiBDaGFuZ2UgcmVzb2x1dGlvbiB0bwoJICBiZSBhIEdzdENsb2NrVGltZS4KCSAgKGdzdF9jbG9ja19zZXRfcmVzb2x1dGlvbiwgZ3N0X2Nsb2NrX2dldF9yZXNvbHV0aW9uKTogUmVzb2x1dGlvbgoJICBpcyBhIEdzdENsb2NrVGltZS4gRml4ZXMgIzMyMTcxMC4KCjIwMDUtMTEtMTkgMTg6MDY6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSBvZmZzZXQgcHJvcGVydHkuIEFkZCBpbnRlcm5hbF9jYWxpYnJhdGlvbiBhbmQgZXh0ZXJuYWxfY2FsaWJyYXRpb24uIEZpeCBwYWRkaW5nLiBQYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgb2Zmc2V0IHByb3BlcnR5LiBBZGQKCSAgaW50ZXJuYWxfY2FsaWJyYXRpb24gYW5kIGV4dGVybmFsX2NhbGlicmF0aW9uLiBGaXggcGFkZGluZy4gUGFkCgkgIGFsc28gYnkgR3N0Q2xvY2tUaW1lIHNvIHdlIGRvbid0IHJ1biBpbnRvIHByb2JsZW1zLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KTogUmVtb3ZlLgoJICAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6IFJlbW92ZS4KCSAgKGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3QpOiBSZW1vdmUuIEZpeGVzICMzMjE3MTIuCgoyMDA1LTExLTE5IDE3OjUwOjUyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaDogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF93YWl0KQoJICAoZ19zdGF0aWNfcmVjX2NvbmRfdGltZWRfd2FpdCk6IFJlbW92ZWQsIG5vIGxvbmdlciBuZWVkZWQuCgkgICogZ3N0L2dzdGJpbi5jOiBSZW1vdmUgdGVycmlibGUgY29udGludWVfc3RhdGUgcHJvdG90eXBlLgoJICAqIGdzdC9nc3RlbGVtZW50LmggKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKTogTWFrZSBwdWJsaWMuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOiBSZW1vdmVkLCByZXBsYWNlZAoJICBieSBjb250aW51ZV9zdGF0ZS4gRml4ZXMgIzMxOTM4OS4KCjIwMDUtMTEtMTkgMTc6Mjg6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleEZpbHRlcik6IEFjdHVhbGx5IHBhc3Mgb24gdGhlIHVzZXJfZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4RmlsdGVyKTogQWN0dWFsbHkgcGFzcyBvbiB0aGUgdXNlcl9kYXRhLgoJICBSZWFsbHkgZml4ZXMgIzE2ODQzOC4gSG93ZXZlciBJIGRvbid0IHNlZSBhbnl3aGVyZSB3aGVyZSB0aGUKCSAgZmlsdGVyIGZ1bmN0aW9uIGlzIGNhbGxlZC4uLiBzdHVwaWQgR1N0cmVhbWVyLi4uCgoyMDA1LTExLTE5IDE3OjI2OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXgpOiBBZGQgZmllbGQgZm9yIHVzZXJfZGF0YV9kZXN0cm95LiBXZSBkb24ndCBoYXZlIGEgZGlzcG9zZSBmdW5jdGlvbiwgc28gaXQgd29uJ3QgZ2V0IGNhbGxlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4KTogQWRkIGZpZWxkIGZvciB1c2VyX2RhdGFfZGVzdHJveS4gV2UKCSAgZG9uJ3QgaGF2ZSBhIGRpc3Bvc2UgZnVuY3Rpb24sIHNvIGl0IHdvbid0IGdldCBjYWxsZWQgd2hlbiB0aGUKCSAgb2JqZWN0IGlzIHVucmVmZmVkLCBidXQgb2ggd2VsbCEKCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X3NldF9maWx0ZXJfZnVsbCk6IE5ldyBBUEkgZnVuY3Rpb24sCgkgIGFsbG93cyBhIGRlc3Ryb3kgZnVuY3Rpb24gdG8gYmUgc2V0IHNvIHVzZXJfZGF0YSBjYW4gYmUgZnJlZWQuCgkgIEZpeGVzICMxNjg0MzguCgkgIChnc3RfaW5kZXhfc2V0X2ZpbHRlcik6IENhbGwgZ3N0X2luZGV4X3NldF9maWx0ZXJfZnVsbC4KCjIwMDUtMTEtMTkgMTc6MDg6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jICh0ZXN0X3N0cmluZyk6IEFkZCB0ZXN0IGZvciBidWcgIzE2NTY1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmMgKHRlc3Rfc3RyaW5nKTogQWRkIHRlc3QgZm9yIGJ1ZyAjMTY1NjUwLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3Rfc3RyaW5nX3dyYXApOiBUcnlpbmcgdG8gc2VyaWFsaXplIGEgTlVMTAoJICBzdHJpbmcgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IsIGdpdmVuIHRoZSBsYWNrIG9mIGEgd2F5IHRvCgkgIHJlcHJlc2VudCBOVUxMIHN0cmluZ3MuIEZpeGVzICMxNjU2NTAuCgoyMDA1LTExLTE5IDE2OjQ2OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuaDogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfdmFsdWUpIChnc3RfdmFsdWVfYXJyYXlfcHJlcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF92YWx1ZSkKCSAgKGdzdF92YWx1ZV9hcnJheV9wcmVwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfYXJyYXlfZ2V0X3NpemUpCgkgIChnc3RfdmFsdWVfYXJyYXlfZ2V0X3ZhbHVlKTogTmV3IEFQSSwgY29waWVkIGZyb20KCSAgZ3N0X3ZhbHVlX2xpc3RfKiwgb25seSBvcGVyYXRlcyBvbiBhcnJheXMuCgkgIChnc3RfdmFsdWVfbGlzdF9hcHBlbmRfdmFsdWUsIGdzdF92YWx1ZV9saXN0X3ByZXBlbmRfdmFsdWUpCgkgIChnc3RfdmFsdWVfbGlzdF9jb25jYXQsIGdzdF92YWx1ZV9saXN0X2dldF9zaXplKQoJICAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKTogT25seSBvcGVyYXRlIG9uIGxpc3RzLiBGaXhlcyAjMTU2NjMzLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaW5pdF9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tCgkgIGluaXRfbGlzdCwgYmVjYXVzZSBpdCB3b3JrcyBvbiBib3RoLgoJICAoY29weV9nYXJyYXlfb2ZfZ3N0dmFsdWUpOiBSZW5hbWVkIGZyb20gZ3N0X3ZhbHVlX2xpc3RfY29weV9hcnJheS4KCSAgKGdzdF92YWx1ZV9jb3B5X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29weV9saXN0LgoJICAoZ3N0X3ZhbHVlX2ZyZWVfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBmcmVlX2xpc3QuCgkgIChnc3RfdmFsdWVfY29sbGVjdF9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvbGxlY3RfbGlzdC4KCSAgKGdzdF92YWx1ZV9sY29weV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGxjb3B5X2xpc3QuCgkgIChnc3RfdmFsdWVfbGlzdF9vcl9hcnJheV9wZWVrX3BvaW50ZXIpOiBSZW5hbWVkIGZyb20KCSAgbGlzdF9wZWVrX3BvaW50ZXIuCgkgIChfZ3N0X3ZhbHVlX2FycmF5X3ZhbHVlX3RhYmxlLCBfZ3N0X3ZhbHVlX2xpc3RfdmFsdWVfdGFibGUpOgoJICBVcGRhdGUgdmFsdWUgdGFibGUgZnVuY3Rpb25zLgoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb21wYXJlX2xpc3QuCgoyMDA1LTExLTE5IDE2OjA1OjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3R0YWdsaXN0Lmg6IFdob29wcywgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5zIHZvaWQuIEFsc28gZml4IHNvbWUgY29uc3RuZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3R0YWdsaXN0Lmg6IFdob29wcywgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5zIHZvaWQuIEFsc28gZml4CgkgIHNvbWUgY29uc3RuZXNzLgoKMjAwNS0xMS0xOSAxNTo1MTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogT3BlcmF0ZXMgb24gYSBjb25zdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0LmggKGdzdF90YWdfbGlzdF9mb3JlYWNoKTogT3BlcmF0ZXMgb24gYSBjb25zdAoJICBHc3RUYWdMaXN0Ki4gRml4ZXMgIzE0MzQ3Mi4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6IENsYXJpZnkgd2hhdCB0aGUgZm9yZWFjaC9tYXAgZnVuY3Rpb25zIGNhbgoJICBvciBjYW4ndCBkbyB0byB0aGVpciBhcmd1bWVudHMuCgoyMDA1LTExLTE4IDE5OjIxOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IERvYyBhbmQgQVBJIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pLAoJICAoZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbik6CgkgIERvYyBhbmQgQVBJIGZpeGVzLgoJICBDYWxsaWJyYXRpb24gY2FuIGJlIHNldCB3aXRoIGludGVybmFsIHRpbWUgZXF1YWwgdG8gY3VycmVudAoJICBpbnRlcm5hbCB0aW1lIHRvby4KCjIwMDUtMTEtMTggMTg6NTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVycm9yLio6IGRvY3VtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBkb2N1bWVudAoKMjAwNS0xMS0xOCAxODozODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgb24gcmVxdWlyZW1lbnRzIGZvciBtb3ZpbmcgcGx1Z2lucyB0byBnb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBvbiByZXF1aXJlbWVudHMgZm9yIG1vdmluZyBwbHVnaW5zIHRvIGdvb2QKCjIwMDUtMTEtMTggMTY6MjQ6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEFkZCBuZXQgcGtnY29uZmlnIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOiBBZGQgbmV0IHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTY6MDQ6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IGRvY3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jcyBmaXhlcwoKMjAwNS0xMS0xOCAxNTo1MjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBUdXJuIG9mZiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogVHVybiBvZmYgZGVidWdnaW5nLgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQXNzZXJ0IHRoYXQgdGhlCgkgIHRpbWVzIGNvbm52ZXJnZSBzb21ld2hhdC4gQ2FuJ3QgbWFrZSBhIHJlYWwgdGVzdC4KCjIwMDUtMTEtMTggMTU6MzA6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBVc2UgYWxsIGludGVnZXIgYXJpdGhtZXRpYy4gUmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBkb21haW4sIHdoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogVXNlIGFsbAoJICBpbnRlZ2VyIGFyaXRobWV0aWMuIFJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZG9tYWluLCB3aGljaCBjYW4gYmUKCSAgc2V0IGFzICJpbnRlcm5hbCIgZm9yIGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24uCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogQ2FsbCBfc2V0X2NhbGlicmF0aW9uLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQ2FsbCBfc2V0X2NhbGlicmF0aW9uIGluc3RlYWQgb2YKCSAgcmF0ZV9vZmZzZXQuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBVc2UgdGhlIHJpZ2h0CgkgIGFkanVzdG1lbnQgYXBpLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKQoJICAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6IE5ldyBmdW5jdGlvbnMsIG9ic29sZXRlIHRoZSBvbmVzIEkKCSAgYWRkZWQgeWVzdGVyZGF5LiBEb2guIFByZWNpc2lvbiBpc3N1ZXMgbWVhbiB3ZSBoYXZlIHRvIGV4dHJhcG9sYXRlCgkgIGZyb20gYSBwb2ludCBpbiB0aGUgbW9yZSByZWNlbnQgcGFzdCB0aGFuIDE5NzAuCgkgIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0LCBnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KTogTWFyayBhcwoJICBvYnNvbGV0ZS4KCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBVc2UgdGhlIHJpZ2h0IGNhbGlicmF0aW9uIGRhdGEuCgoyMDA1LTExLTE4IDE0OjQ5OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWxzbyByZXNldCB0aGUgLT5jdXJyZW50XyogdmFsdWVzIGluIFJFQURZLT5QQVVTRUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQWxzbyByZXNldCB0aGUgLT5jdXJyZW50XyogdmFsdWVzIGluIFJFQURZLT5QQVVTRUQKCjIwMDUtMTEtMTggMTQ6MTM6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKTogV2hvb3BzLCBjaGVjayB0aGUgcmlnaHQgZmQuIEFsc28gYWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIFdob29wcywgY2hlY2sgdGhlIHJpZ2h0IGZkLiBBbHNvIGFkZCBzb21lIGRlYnVnZ2luZy4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBBZGp1c3QgZm9yIGludDY0IG9mZnNldC4KCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogQWRkIGEgY3JhcGxvYWQgb2YgZGVidWdnaW5nLiBTdWJ0cmFjdCBvZmYKCSAgdGhlIG1pbmltdW0gdmFsdWVzIGZyb20gdGhlIGlucHV0IHNlcmllcyB0byBkaXNjYXJkIHVubmVlZGVkIGJpdHMuCgkgIFVzZSBvbmx5IGludCBhcml0aG1ldGljLiBUaGVyZSBpcyBzdGlsbCBkb3VibGUgYXJpdGhtZXRpYyB3aGVuCgkgIGNhbGN1bGF0aW5nIHRoZSBpbnRlcmNlcHQgdGhhdCBuZWVkcyBmaXhpbmcuIFJldHVybiBib29sZWFuIHRvCgkgIGluZGljYXRlIHN1Y2Nlc3M7IEZBTFNFIHdvdWxkIG1lYW4gdGhlIGRvbWFpbiBvciByYW5nZSBpcyB0b28KCSAgZ3JlYXQuIFN0aWxsIG5lZWRzIGZpeGVzLgoKMjAwNS0xMS0xOCAxMzoxODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZvciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBzdHJlYW0gdGltZSwgd2UgbmVlZCB0byBzdWJ0cmFjdCBhY2N1bXVsYXRlZCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RyZWFtIHRpbWUsIHdlIG5lZWQgdG8gc3VidHJhY3QKCSAgYWNjdW11bGF0ZWQgdGltZS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKToKCSAgUmVsZWFzZSBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBvZiBhc3luYwoJICBlbnRyaWVzLgoKMjAwNS0xMS0xOCAxMTo1NzozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KTogUG9ydCBnb2VzIGFsbCB0aGUgd2F5IHRvIE1BWFVJTlQxNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgUG9ydCBnb2VzIGFsbCB0aGUgd2F5IHRvIE1BWFVJTlQxNi4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBNYWtlIHRoZSBwb3J0IHJhbmdlIHRoZSBzYW1lIGFzCgkgIGZvciB0aGUga2VybmVsOiAwIGFzc2lnbnMsIG90aGVyd2lzZSBwb3J0cyBhcmUgbGVzcyB0aGFuCgkgIE1BWFVJTlQxNi4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IEFkYXB0IGZvciAwID09IGtlcm5lbCBhc3NpZ25zCgkgIHBvcnQgY2hhbmdlLgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRkIHRoZSBzdGFydAoJICBvZiBhbm90aGVyIHRlc3QuCgoyMDA1LTExLTE4IDExOjAzOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBSZW1vdmluZyBhIGNsb2NrIHByb3ZpZGVyIGZyb20gYSBiaW4sIHRyaWdnZXJzIGEgY2xvY2sgbG9zdCBtZXNzYWdlIHNvIHRoYXQgYSBuZXcgY2xvY2sgd2lsbCBiZSBzZWxlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBSZW1vdmluZyBhIGNsb2NrIHByb3ZpZGVyIGZyb20gYSBiaW4sIHRyaWdnZXJzIGEgY2xvY2sgbG9zdCBtZXNzYWdlCgkgIHNvIHRoYXQgYSBuZXcgY2xvY2sgd2lsbCBiZSBzZWxlY3RlZC4KCSAgQWRkaW5nIGEgY2xvY2sgdG8gYSBiaW4gdHJpZ2dlcnMgYSBjbG9jayBwcm92aWRlciBtZXNzYWdlLgoJICBNYWtlIHN1cmUgd2UgcmVzZWxlY3QgYSBjbG9jayB3aGVuIHdlIHJlY2VpdmVkIGEgY2xvY2sgbG9zdCBtZXNzYWdlLgoJICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZWQgdGhlIGNsb2NrLgoKMjAwNS0xMS0xOCAxMDo1NDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBBZGp1c3QgdGhlIGNsb2NrIGluaXRpYWxseSBzbyBpdCBwcm9kdWNlcyB2YWx1ZXMgYXJvdW5kIHRoZSBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQWRqdXN0CgkgIHRoZSBjbG9jayBpbml0aWFsbHkgc28gaXQgcHJvZHVjZXMgdmFsdWVzIGFyb3VuZCB0aGUgYmFzZSB0aW1lLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6IFR5cG8gZml4LgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKTogQWRkIG5vdGUgb24gd2hlbiB0aGUgc29ja2V0IGdldHMKCSAgY2xvc2VkLgoKMjAwNS0xMS0xNyAxODo1MDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogRnJlZSByZW1vdGUgYW5kIGxvY2FsIHRpbWUgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSk6CgkgIEZyZWUgcmVtb3RlIGFuZCBsb2NhbCB0aW1lIGFycmF5cy4KCjIwMDUtMTEtMTcgMTg6MTg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEZpeCBjb21waWxhdGlvbiwgdW5pbml0aWFsaXplZCB2YXJzIGFuZCBhIGZvcmdvdHRlbiBjb250aW51ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIEZpeCBjb21waWxhdGlvbiwgdW5pbml0aWFsaXplZCB2YXJzIGFuZCBhIGZvcmdvdHRlbiBjb250aW51ZS4KCjIwMDUtMTEtMTcgMTc6NTU6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrLzogQWRkIGEgbW9zdCBtaW5pbWFsIHRlc3QgZm9yIHRoZSBuZXQgY2xpZW50IGNsb2NrLiBNb3JlIHRvIGNvbWUgbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjaGVja19QUk9HUkFNUyk6CgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEFkZCBhIG1vc3QgbWluaW1hbCB0ZXN0IGZvciB0aGUKCSAgbmV0IGNsaWVudCBjbG9jay4gTW9yZSB0byBjb21lIGxhdGVyLgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbTogQWRkIG5ldGNsaWVudGNsb2NrLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IE5ldyBmaWxlcywgaW1wbGVtZW50IGFuIHVudGVzdGVkCgkgIEdzdENsb2NrIHRoYXQgdGFrZXMgaXRzIHRpbWUgZnJvbSBhIG5ldHdvcmsgdGltZSBwcm92aWRlci4KCSAgSW1wbGVtZW50cyB0aGUgYWxnb3JpdGhtIGluIG5ldHdvcmstY2xvY2suc2NtLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqd2luZG93LXNpemUqKTogUmVuYW1lIGZyb20KCSAgKnF1ZXVlLWxlbmd0aCouCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKG5ldHdvcmstdGltZSk6CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKHEtcHVzaCk6IFVwZGF0ZSBjYWxsZXJzLgoKMjAwNS0xMS0xNyAxNjowMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQW5kIHVucmVmIHRoZSBjaGlsZCB0b28uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KToKCSAgQW5kIHVucmVmIHRoZSBjaGlsZCB0b28uLgoKMjAwNS0xMS0xNyAxNDo1MToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUmVmYWN0b3IgdGhlIHNvcnQgaXRlcmF0b3Igc28gaXQgY2FuIGJlIHVzZWQgd2hpbGUgaG9sZGluZyB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpLCAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgIFJlZmFjdG9yIHRoZSBzb3J0IGl0ZXJhdG9yIHNvIGl0IGNhbiBiZSB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlCgkgIExPQ0sgdG9vLgoJICBNYWtlIGNsb2NrIHNlbGVjdGlvbiBzZWxlY3QgYSBjbG9jayBjbG9zZXN0IHRvIHRoZSBzb3VyY2UuCgoyMDA1LTExLTE3IDEyOjM2OjMwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suKjogQW5vbnltb3VzIHN0cnVjdHMgYXJlIGEgZ2NjIChhbmQgc29tZSBvdGhlciBjb21waWxlcnMpIGV4dGVuc2lvbiwgc28gZG9uJ3QgdXNlIHRoZW0uIFNpbmNlIHRoaXMgaXMgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwKCSAgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpLCAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEFub255bW91cyBzdHJ1Y3RzIGFyZSBhIGdjYyAoYW5kIHNvbWUgb3RoZXIgY29tcGlsZXJzKSBleHRlbnNpb24sIHNvCgkgIGRvbid0IHVzZSB0aGVtLiBTaW5jZSB0aGlzIGlzIG9ubHkgZm9yIEFCSS1jb21wYXRpYmlsaXR5LCBhbmQgb3VyCgkgIEFQSS9BQkkgZnJlZXplIGlzIG92ZXIgaW4gYSBmZXcgZGF5cywgdGhpcyB3aG9sZSB0aGluZyB3aWxsIG9ubHkKCSAgbGFzdCBhIGZldyBkYXlzLCBzbyBkb24ndCBib3RoZXIgdHJ5aW5nIHRvIHRoaW5rIHVwIGEgbWVhbmluZ2Z1bAoJICBuYW1lIGZvciB0aGUgc3RydWN0LgoKMjAwNS0xMS0xNyAxMTo1MTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogQWRkIHJhdGUgYW5kIG9mZnNldCBwcm9wZXJ0aWVzLCBwcmVzZXJ2aW5nIEFCSSBzdGFiaWxpdHkuIEFkZCByYXRlL29mZnNldCBhY2Nlc3NvcnMuIFdpbGwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IEFkZCByYXRlIGFuZCBvZmZzZXQgcHJvcGVydGllcywKCSAgcHJlc2VydmluZyBBQkkgc3RhYmlsaXR5LiBBZGQgcmF0ZS9vZmZzZXQgYWNjZXNzb3JzLiBXaWxsIGZpbGUgYnVnCgkgIGZvciB0aGUgZnJlZXplIGJyZWFrLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogSW1wbGVtZW50IHVzaW5nIHJhdGUKCSAgYW5kIG9mZnNldCwgdHJ5aW5nIHRvIGtlZXAgcHJlY2lzaW9uIGFuZCBhdm9pZGluZwoJICB1bmRlcmZsb3cvb3ZlcmZsb3cuCgkgIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0LCBnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KTogTmV3CgkgIGZ1bmN0aW9ucy4gTWFrZSBnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0IG9ic29sZXRlLgoJICAoZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCk6IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLgoJICBXaWxsIGZpbGUgYnVnIHNvb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOiBNYWtlIHRoZSBBQkktc3RhYmlsaXR5IGhhY2sKCSAgZ3JlcHBhYmxlIGJ5IHVzaW5nIEdTVF9QQURESU5HLTErMS4KCjIwMDUtMTEtMTcgMTE6MjU6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vTk9URVMtMC4xLjE6CgkqIGRvY3MvcmFuZG9tL05PVEVTLTAuMi4wOgoJKiBkb2NzL3JhbmRvbS9UT0RPLXBvc3QtMC4xLjA6CgkqIGRvY3MvcmFuZG9tL2FyY2g6CgkqIGRvY3MvcmFuZG9tL2Nvcm91dGluZXM6CgkqIGRvY3MvcmFuZG9tL2Rlc2lnbjoKCSogZG9jcy9yYW5kb20vZmFjdG9yeWluZm86CgkqIGRvY3MvcmFuZG9tL2dib29sZWFuOgoJKiBkb2NzL3JhbmRvbS9wYWRhcmNoOgoJKiBkb2NzL3JhbmRvbS9zZXF1ZW5jZToKCSogZG9jcy9yYW5kb20vc3RhdGUtdHJhbnNpdGlvbnM6CgkqIGRvY3MvcmFuZG9tL3N0YXRlczoKCSogZG9jcy9yYW5kb20vc3RhdGVzLm5ldzoKCSogZG9jcy9yYW5kb20vc3RhdGVzLm9sZDoKCSogZG9jcy9yYW5kb20vd2Fsa3Rocm91Z2g6CgkgIHJlbW92ZSBjb21wbGV0ZWx5IG91dGRhdGVkIHJhbmRvbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29tcGxldGVseSBvdXRkYXRlZCByYW5kb20gZG9jcwoKMjAwNS0xMS0xNyAwOTozNzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEFzc2VydGlvbiBzaG91bGQgY2hlY2sgZm9yIENMT0NLX0xPU1QsIG5vdCBORVdfQ0xPQ0sgKCMzMjE2NDgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCk6CgkgIEFzc2VydGlvbiBzaG91bGQgY2hlY2sgZm9yIENMT0NLX0xPU1QsIG5vdCBORVdfQ0xPQ0sgKCMzMjE2NDgpLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIERvbid0IHVzZSBjKysgc3R5bGUgY29tbWVudHMgaW4gaGVhZGVycyAoIzMyMTYzOCkuCgoyMDA1LTExLTE2IDE4OjM3OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYyAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKTogRnJlZSBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jIChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOiBGcmVlCgkgIGJ1ZmZlci4KCjIwMDUtMTEtMTYgMTg6MTY6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHRpbWUgcHJvdmlkZXIgYWN0dWFsbHkgcHJvdmlkZXMgdGltZXMuIFdvcmtzLCB5byEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDaGVjayB0byBzZWUgdGhhdCB0aGUgdGltZQoJICBwcm92aWRlciBhY3R1YWxseSBwcm92aWRlcyB0aW1lcy4gV29ya3MsIHlvIQoKMjAwNS0xMS0xNiAxODowOTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgbW9yZSB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSBtb3JlIHRlc3RzLgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgU2V0IGVsZW1lbnQgdG8gTlVMTCBiZWZvcmUgZGlzcG9zaW5nIGl0LgoKMjAwNS0xMS0xNiAxNzo1Mzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeAoKMjAwNS0xMS0xNiAxNzo1MjowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC86IFVzZSB0aGUgdGltZXBhY2tldCBzdHVmZiBpbiB0aGUgcHJvdmlkZXIsIGluY2x1ZGUgaXQgZnJvbSBnc3RuZXQuaCwgYW5kIGFkZCBpdCB0byB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9nc3RuZXQuaDoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IFVzZSB0aGUgdGltZXBhY2tldCBzdHVmZiBpbiB0aGUKCSAgcHJvdmlkZXIsIGluY2x1ZGUgaXQgZnJvbSBnc3RuZXQuaCwgYW5kIGFkZCBpdCB0byB0aGUgYnVpbGQuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IE5ldyBmaWxlcywgYWJzdHJhY3RzIG91dCB0aGUgcGFja2V0CgkgIHNlbmRpbmcgYW5kIHJlY2VpdmluZy4KCjIwMDUtMTEtMTYgMTc6MzU6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIHZhbGdyaW5kIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIHZhbGdyaW5kIGNoZWNrLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYWxsb2NfcGFyZW50KSwKCSAgKGdzdF9mYWtlX3NyY19hbGxvY19idWZmZXIpOgoJICBGaXggbWVtbGVhay4KCjIwMDUtMTEtMTYgMTc6MjI6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDYWxsIHBhcmVudCBmaW5hbGl6ZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpOgoJICBDYWxsIHBhcmVudCBmaW5hbGl6ZSB0b28uCgoyMDA1LTExLTE2IDE3OjE4OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSB2YWxncmluZCBjaGVjayB0aGF0IHNob3VsZCB3b3JrIGZpbmUgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIHZhbGdyaW5kIGNoZWNrIHRoYXQgc2hvdWxkIHdvcmsgZmluZSBub3cuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGaXggbWVtbGVha3MgaW4gcGFkIGFsbG9jYXRpb24uCgoyMDA1LTExLTE2IDE2OjQ5OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0LzogTmV3IHBhcnQgb2YgY29yZSB0byBob2xkIG5ldHdvcmsgZWxlbWVudHMgYW5kIG9iamVjdHMuIFB1dCBpbiBjb3JlIGJlY2F1c2UgaXQgZXhwb3NlcyBBUEkgdGhhdCBhcHBsaWNhdGlvbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L2dzdG5ldC5oOiBOZXcgcGFydCBvZiBjb3JlIHRvIGhvbGQgbmV0d29yayBlbGVtZW50cyBhbmQKCSAgb2JqZWN0cy4gUHV0IGluIGNvcmUgYmVjYXVzZSBpdCBleHBvc2VzIEFQSSB0aGF0IGFwcGxpY2F0aW9ucyB3YW50CgkgIHRvIHVzZS4gVGhlIGxpYnJhcnkgaXMgbmFtZWQgbGliZ3N0bmV0LXRlbXBuYW1lIHJpZ2h0IG5vdyBiZWNhdXNlCgkgIG9mIHRoZSBleGlzdGluZyBsaWJnc3RuZXQgaW4gZ3N0LXBsdWdpbnMtYmFzZS4gU29sdXRpb24gaXMKCSAgcHJvYmFibHkgdG8gcmVuYW1lIHRoZSBvbmUgaW4gcGx1Z2lucy1iYXNlOyB3aWxsIGZpbGUgYSBidWcgZm9yCgkgIHRoZSBmcmVlemUgYnJlYWsuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBOZXcgb2JqZWN0IHRvIGV4cG9ydCBhIEdzdENsb2NrJ3MKCSAgZ2V0X3RpbWUgY2FsbCBvdmVyIHRoZSBuZXR3b3JrLgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGxpYl9MVExJQlJBUklFUyk6IEFkZCBnc3RuZXQgdG8gdGhlIGJ1aWxkLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQSBtb3N0IG1pbmltYWwgdGVzdCBzdWl0ZS4gV2lsbAoJICBnZXQgYWRkaXRpb25zIHNob3J0bHkuCgoyMDA1LTExLTE2IDE2OjA5OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuKjogYWRkIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBhZGQgZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUgZnVuY3Rpb25zCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaW5pdCk6CgkgIGFuZCB1c2UgdGhlbQoKMjAwNS0xMS0xNiAxNjowNjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlZCB3YXJuaW5nLCBpdCdzIG5vdCByZWFseSBhbiBlcnJvciBlaXRoZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGF1c2VfdGFzayk6CgkgIFJlbW92ZWQgd2FybmluZywgaXQncyBub3QgcmVhbHkgYW4gZXJyb3IgZWl0aGVyLgoKMjAwNS0xMS0xNiAxNDoyNzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgaWYgdGhlIGNhcHMgYXJlIE5VTEwsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgZWxlbWVudCBpcyBzaHV0dGluZyBkb3duIGFuZCB0aGUgcGFkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIENoZWNrIGlmIHRoZSBjYXBzIGFyZSBOVUxMLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIGVsZW1lbnQKCSAgaXMgc2h1dHRpbmcgZG93biBhbmQgdGhlIHBhZCBjYXBzIGFyZSBzZXQgdG8gTlVMTC4KCjIwMDUtMTEtMTYgMTI6NTc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGZpeCBwYWQgdGVtcGFsdGUgbGVhayBpbiB0ZWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBwYWQgdGVtcGFsdGUgbGVhayBpbiB0ZWUKCjIwMDUtMTEtMTYgMTI6NDA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogdXNlIGdzdF9vYmplY3RfcmVmIHdoZW4gc2V0dGluZyB0aGUgcGFkIHRlbXBsYXRlOyB0aGlzIHdpbGwgdHJpZ2dlciB0aGUgcGFkIHRlbXBsYXRlIGxlYWtzIG9uIEdMaWIgMi42IGFuZCB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ192YWx1ZV9kdXBfZ3N0X29iamVjdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcHJvcGVydHkpOgoJICB1c2UgZ3N0X29iamVjdF9yZWYgd2hlbiBzZXR0aW5nIHRoZSBwYWQgdGVtcGxhdGU7IHRoaXMgd2lsbAoJICB0cmlnZ2VyIHRoZSBwYWQgdGVtcGxhdGUgbGVha3Mgb24gR0xpYiAyLjYgYW5kIHRoZSBzbGF2ZXMKCjIwMDUtMTEtMTYgMTI6MjU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBHTGliIDIuNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdzdF9mbGFnc19nZXRfZmlyc3RfdmFsdWUpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICByZW1vdmUgZnVuY3Rpb25zIGNvcGllZCBmcm9tIEdMaWIgMi42CgoyMDA1LTExLTE2IDExOjI5OjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IERvbid0IGxpbmsgYWdhaW5zdCBWQUxHUklORF9MSUJTLiBUaGF0IHdhcyBhbHdheXMgdGhlIHdyb25nIHRoaW5nIHRvIGRvLCBidXQgb25seSBicmVha3Mgd2l0aCBuZXdlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBEb24ndCBsaW5rIGFnYWluc3QgVkFMR1JJTkRfTElCUy4gVGhhdCB3YXMgYWx3YXlzIHRoZSB3cm9uZyB0aGluZyB0bwoJICBkbywgYnV0IG9ubHkgYnJlYWtzIHdpdGggbmV3ZXIgdmFsZ3JpbmQgdmVyc2lvbnMuIFdlJ3JlIG5vdCBhCgkgIHZhbGdyaW5kIHRvb2wsIHdlIGhhdmUgbm8gbGluay10aW1lIGRlcGVuZGVuY2llcyBvbiBsaWJjb3JlZ3JpbmQuCgoyMDA1LTExLTE2IDExOjA2OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogc29tZSBkZWJ1ZyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIHNvbWUgZGVidWcgY2hhbmdlcwoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIHR5cG8gZml4ZXMKCjIwMDUtMTEtMTUgMjM6NTM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZXZlcnQgYWxsIHRoZXNlIHVucmVmcywgdGhleSBkb24ndCBldmVuIHBhc3MgbWFrZSBjaGVjayAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZlcnQgYWxsIHRoZXNlIHVucmVmcywgdGhleSBkb24ndCBldmVuIHBhc3MgbWFrZSBjaGVjayAhCgoyMDA1LTExLTE1IDE5OjQ4OjQwICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEFuZCBnc3Rfb2JqZWN0X3VucmVmIGhlcmUgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBbmQgZ3N0X29iamVjdF91bnJlZiBoZXJlIHRvbwoKMjAwNS0xMS0xNSAxOTozMTowNSArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvOiBGcmVlIHBhZCB0ZW1wbGF0ZXMsIGZpeGVzIGEgY291cGxlIG9mIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGcmVlIHBhZCB0ZW1wbGF0ZXMsIGZpeGVzIGEgY291cGxlIG9mIGxlYWtzLgoKMjAwNS0xMS0xNSAxOToyNDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogR1NUX1BBRF9QQURfVEVNUExBVEUocGFkKSBnZXRzIHRoZSBwYWQgdGVtcGxhdGUsIHdoaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3Byb3BlcnR5KToKCSAgR1NUX1BBRF9QQURfVEVNUExBVEUocGFkKSBnZXRzIHRoZSBwYWQgdGVtcGxhdGUsIHdoaWxlCgkgIEdTVF9QQURfVEVNUExBVEUocGFkKSBkb2VzIGEgY2FzdC4gV2Ugd2FudCB0aGUgZm9ybWVyIGhlcmUuCgkgICgjMzIxNDUyKQoKMjAwNS0xMS0xNSAxODozNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDUtMTEtMTUgMTc6NTc6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOiBBZGQgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKTogQWRkIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOiBEb2N1bWVudAoJICB1c2luZyBHU1RfQ0xPQ0tfVElNRV9OT05FIHRvIGRpc2FibGUgYmFzZSB0aW1lIG1hbmFnZW1lbnQuCgkgIChkb19waXBlbGluZV9zZWVrLCBnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogRG9uJ3QgcmVzZXQgc3RyZWFtCgkgIHRpbWUgaWYgaXQgd2FzIE5PTkUgYmVmb3JlLgoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IE9ubHkgbXVuZ2UgdGhlIGJhc2UgdGltZSBpZgoJICBzdHJlYW1fdGltZSAhPSBHU1RfQ0xPQ0tfVElNRV9OT05FLgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZQoJICBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdGhlCgkgIGlzc3VlIEknbSBsb29raW5nIGF0LiBBZGQgYSBjaGVjayB0aGF0IHNldHRpbmcgc3RyZWFtX3RpbWUgdG8gTk9ORQoJICBkaXNhYmxlcyBiYXNlIHRpbWUgbWFuYWdlbWVudC4KCjIwMDUtMTEtMTUgMTc6MTg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBzZWdtZW50X3N0b3AgPT0gLTEgYXQgc3RhcnR1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgc2VnbWVudF9zdG9wID09IC0xIGF0IHN0YXJ0dXAuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBJbml0IHNlZ21lbnQgdmFsdWVzIGF0IHN0YXJ0LgoKMjAwNS0xMS0xNSAxNjo1Mjo0NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZQoJICBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdGhlCgkgIGlzc3VlIEknbSBsb29raW5nIGF0Li4uCgoyMDA1LTExLTE1IDE2OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogMCBzZWdtZW50IHZhbHVlcyBhcmUgMCBpbiBhbnkgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgMCBzZWdtZW50IHZhbHVlcyBhcmUgMCBpbiBhbnkgZm9ybWF0LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBQYXJzZSBuZXdzZWdtZW50IGNvcnJlY3RseSBpbiBiYXNldHJhbnNmb3JtCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgU3luYyB0byBjbG9jayB1c2luZyB1cGRhdGVkIHNlZ21lbnQgdmFsdWVzLgoKMjAwNS0xMS0xNSAxNjoyNzowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogQWRkIGNoZWNrIHRoYXQgdGhlIGJhc2UgdGltZSBhbmQgc3RyZWFtIHRpbWUgYXJlIHJlc2V0IGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogQWRkIGNoZWNrIHRoYXQgdGhlCgkgIGJhc2UgdGltZSBhbmQgc3RyZWFtIHRpbWUgYXJlIHJlc2V0IGNvcnJlY3RseS4KCjIwMDUtMTEtMTUgMTU6NDQ6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBTb21lIG1vcmUgVE9ETyBpdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgU29tZSBtb3JlIFRPRE8gaXRlbXMuCgoyMDA1LTExLTE1IDEyOjM1OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSXQncyBub3QgYW4gZXJyb3IgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgIm5vIGNsb2NrIiBhcyB0aGUgY2xvY2tpbmcgbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IEl0J3Mgbm90IGFuCgkgIGVycm9yIGlmIHRoZSB1c2VyIHNlbGVjdGVkICJubyBjbG9jayIgYXMgdGhlIGNsb2NraW5nIG1ldGhvZC4KCjIwMDUtMTEtMTUgMTI6Mjk6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IE5ldyB0ZXN0IGZvciBidWZmZXIgdGltZXN0YW1wcyB3aXRoIGxpdmUgY2FwdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogTmV3IHRlc3QgZm9yIGJ1ZmZlcgoJICB0aW1lc3RhbXBzIHdpdGggbGl2ZSBjYXB0dXJlLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJZiB0aGUgZGF0YXJhdGUKCSAgaXMgMCBidXQgd2UgYXJlIGEgbGl2ZSBzb3VyY2UsIHRpbWVzdGFtcCB0aGUgYnVmZmVycyB1c2luZyB0aGUKCSAgZWxlbWVudCdzIGNsb2NrLgoKMjAwNS0xMS0xNCAxNToxNTo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBzZWN0aW9uIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBtb3JlIHNlY3Rpb24gZG9jcwoKMjAwNS0xMS0xNCAxNDo0NTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIHN1cHByZXNzaW9ucyBmcm9tIFdpbSdzIERlYmlhbiBtYWNoaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIHN1cHByZXNzaW9ucyBmcm9tIFdpbSdzIERlYmlhbiBtYWNoaW5lCgoyMDA1LTExLTE0IDE0OjM2OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIHN1cHByZXNzaW9ucyBmcm9tIEFuZHkncyBBTUQ2NCBVYnVudHUgbWFjaGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBBbmR5J3MgQU1ENjQgVWJ1bnR1IG1hY2hpbmUKCjIwMDUtMTEtMTQgMTI6NDM6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ2hhbmdlIGRvY3M7IHBhcmVudCdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ2hhbmdlIGRvY3M7IHBhcmVudCdzCgkgIFNUQVRFX0xPQ0sgbm90IG5lY2Vzc2FyeS4gRml4ZXMgIzMxMTQ4OS4KCjIwMDUtMTEtMTQgMTI6MTc6NDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci5jIChGSUxFX0FfQlVHKTogQmUgcG9saXRlICphbmQqIGhlbHBmdWwuIEZpeGVzICMzMDUyOTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChGSUxFX0FfQlVHKTogQmUgcG9saXRlICphbmQqIGhlbHBmdWwuIEZpeGVzCgkgICMzMDUyOTEuCgoyMDA1LTExLTE0IDExOjU4OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9vYmplY3QpOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX29iamVjdCk6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdAoJICB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZC4KCjIwMDUtMTEtMTQgMTA6NDk6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZWYgdGhlIHNvdXJjZSBwYWQgY2FwcyB3aGlsZSB3ZSBuZWVkIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgIFJlZiB0aGUgc291cmNlIHBhZCBjYXBzIHdoaWxlIHdlIG5lZWQgdGhlbS4KCSAgRml4ZXMgKCMzMjEzODYpCgoyMDA1LTExLTEyIDEwOjIzOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTEyIDEwOjA0OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGZpbGVzIGZvciBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgZmlsZXMgZm9yIEhFQUQKCjIwMDUtMTEtMTIgMTA6MDM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZGVidWcgdGFzayBqb2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyB0YXNrIGpvaW4KCjIwMDUtMTEtMTIgMTA6MDA6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgZm91bmQgYW5vdGhlciBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm91bmQgYW5vdGhlciBxdW90ZQoKMjAwNS0xMS0xMSAyMDoxMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZGVkIHNvbWUgZG9jcyBmb3IgR3N0Q29sbGVjdERhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHNvbWUgZG9jcyBmb3IgR3N0Q29sbGVjdERhdGEuCgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTb21lIHNtYWxsIGNvZGUgZXhhbXBsZSBmaXguCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb2N1bWVudCBzb21lIG1vcmUuCgoyMDA1LTExLTExIDE5OjI2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjUgPT09CgoyMDA1LTExLTExIDE5OjI0OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS41CgoyMDA1LTExLTExIDE4OjI1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IG1vcmUgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2NvcHkpOgoJICBDb3B5IG1vcmUgZmxhZ3MuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgRml4IHNvbWUgZG9jcy4KCSAgTWFrZSBfaXNfZXF1YWwgZmFzdCBpbiB0aGUgdHJpdmlhbCBjYXNlcy4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIE1vcmUgZG9jcy4gU3BpZmlmeSAuaCBmaWxlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNS0xMS0xMSAxNzoxNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTEtMTEgMTY6Mzc6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIElmIHdlJ3JlIHByb2Nlc3NpbmcgYSBidWZmZXIgYW5kIG5lZWQgdG8gYWxsb2NhdGUgYW4gb3V0cHV0CgkgIGJ1ZmZlciwgd2UgY2Fubm90IGFjY2VwdCBhIGZvcm1hdCBjaGFuZ2UuIElmIHdlIGRpZCBnZXQgYQoJICBmb3JtYXQgY2hhbmdlLCB3ZSBoYXZlIHRvIGFsbG9jIGEgYnVmZmVyIG91cnNlbHZlcyBvZiB0aGUKCSAgcmlnaHQgc2l6ZS4KCjIwMDUtMTEtMTEgMTY6MzQ6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFdoaWxlIGNoZWNraW5nIHRoZSBmbGFnIGZvciByZWVudHJhbmN5IGluIHRoZSBnc3RjYXBzIGZ1bmN0aW9uIGlzIG5pY2UgdG8gZGV0ZWN0IHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucywuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2FwcyksIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpOgoJICBXaGlsZSBjaGVja2luZyB0aGUgZmxhZyBmb3IgcmVlbnRyYW5jeSBpbiB0aGUgZ3N0Y2FwcyBmdW5jdGlvbgoJICBpcyBuaWNlIHRvIGRldGVjdCByZWN1cnNpdmUgaW52b2NhdGlvbnMsIGl0IGFsc28gbWFrZXMgaXQKCSAgaW1wb3NzaWJsZSB0byBjYWxsIGdldGNhcHMgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLCB3aGljaCBtdXN0IGJlCgkgIHBvc3NpYmxlLiBTbywgY2hlY2tpbmcgZm9yIHJlY3Vyc2l2ZSBjYWxscyBoYXMgdG8gZ28uCgoyMDA1LTExLTExIDE1OjE5OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBzeW5jIG9uIGJ1ZmZlcnMgdGhhdCBmYWxsIHBhcnRpYWxseSBvdXRzaWRlIG91ciBjdXJyZW50IHNlZ21lbnQuIFByZXZlbnRzIGFuIGFzc2VydGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIERvbid0IHN5bmMgb24gYnVmZmVycyB0aGF0IGZhbGwgcGFydGlhbGx5IG91dHNpZGUgb3VyIGN1cnJlbnQKCSAgc2VnbWVudC4gUHJldmVudHMgYW4gYXNzZXJ0aW9uIGZhaWx1cmUvYWJvcnQgcGxheWluZyBzb21lIGZpbGVzLgoKMjAwNS0xMS0xMCAxODoxNToyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X21lc3NhZ2Vfc3RhdGVfY2hhbmdlZF9jaGlsZHJlbik6IFN0eWxlIGZpeC4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9tZXNzYWdlX3N0YXRlX2NoYW5nZWRfY2hpbGRyZW4pOiBTdHlsZQoJICBmaXguLgoJICAqIGdzdC9nc3RidXMuYyAocG9sbF9kZXN0cm95LCBwb2xsX2Z1bmMsIGdzdF9idXNfcG9sbCk6IEltcGxlbWVudAoJICBnc3RfYnVzX3BvbGwgd2l0aCB0aGUgc2lnbmFsIHdhdGNoLiBFbnN1cmVzIHRoYXQgcG9sbCBhbmQgYSBzaWduYWwKCSAgd2F0Y2ggc2VlIHRoZSBzYW1lIG1lc3NhZ2VzLgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYyAodGVzdF93YXRjaF93aXRoX3BvbGwpOiBOZXcgdGVzdCwgY2hlY2tzIHRoYXQKCSAgYSBwb2xsIGFuZCBhIHdhdGNoIGF0IHRoZSBzYW1lIHRpbWUgZ2V0IHRoZSBzYW1lIG1lc3NhZ2VzLgoKMjAwNS0xMS0xMCAxNzozNzozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBEb24ndCBjYWxsIGdzdF9jYXBzX2RvX3NpbXBsaWZ5IC0gaXQgZG9lc24ndCByZXNwZWN0IG9yZGVyIG9mIGNhcHMgYW5kIGl0J3Mgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRG9uJ3QgY2FsbCBnc3RfY2Fwc19kb19zaW1wbGlmeSAtIGl0IGRvZXNuJ3QgcmVzcGVjdCBvcmRlciBvZiBjYXBzCgkgIGFuZCBpdCdzIG5vdCBuZWVkZWQuCgoyMDA1LTExLTEwIDE1OjA3OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlZCB0b2RvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIHRvZG8uCgoyMDA1LTExLTEwIDE0OjQ1OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBJbXBsZW1lbnQgY2xvY2sgc3luYyBpbiBiYXNlIGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgSW1wbGVtZW50IGNsb2NrIHN5bmMgaW4gYmFzZSBjbGFzcy4KCjIwMDUtMTEtMTAgMTI6MzI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZvcndhcmQtcG9ydCBhIDAuOCBwYXRjaCB0byBoYW5kbGUgZXNjYXBlZCBzcGFjZXMgaW4gc3RydWN0dXJlIHN0cmluZywgICAgICAgICAgc28gdGhhdCBnc3RfcGFyc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX2ZpZWxkKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICBGb3J3YXJkLXBvcnQgYSAwLjggcGF0Y2ggdG8gaGFuZGxlIGVzY2FwZWQgc3BhY2VzIGluIHN0cnVjdHVyZSBzdHJpbmcsICAgICAgICAgIHNvIHRoYXQgZ3N0X3BhcnNlX2xhdW5jaCgpIGNhbiBkZWFsIHdpdGggc3BhY2VzIGluIGZpbHRlcmVkIGxpbmsKCSAgY2FwcyAoZml4ZXMgIzE2NDQ3OSkKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCB1bml0IHRlc3RzIGZvciB0aGlzIGNoYW5nZQoKMjAwNS0xMS0xMCAxMToxNzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBkb2NzLCBtb3ZlIHNvbWUgU1RBVEUgbWFjcm9zIHRvIHByaXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggZG9jcywgbW92ZSBzb21lIFNUQVRFIG1hY3JvcyB0byBwcml2YXRlLgoKMjAwNS0xMS0xMCAxMDoxNzowMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBGdXJ0aGVyIGltcHJvdmUgcXVlcnkgZG9jcy4gU3RpbGwgbm90IGhhcHB5IHdpdGggdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZ1cnRoZXIgaW1wcm92ZSBxdWVyeSBkb2NzLiBTdGlsbCBub3QgaGFwcHkgd2l0aCB0aGlzLgoKMjAwNS0xMS0xMCAwOToxOToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBjaGVjayBmb3IgYnVnICMzMTczNDEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIGJ1ZyAjMzE3MzQxCgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgU29tZSBtb3JlIHNwaWZmaWZ5aW5nLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb19saW5rKToKCSAgQ2FsbCBwZWVyIGxpbmtmdW5jdGlvbiBpZiB3ZSBhcmUgYSBzb3VyY2UgcGFkLiBUb3RhbGx5IGZpeGVzCgkgICMzMTczNDEKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFVwZGF0ZSBkb2NzLCBzb3VyY2UgcGFkcyBzaG91bGQgY2FsbCB0aGUgcGVlciBsaW5rZnVuY3Rpb24KCSAgc28gdGhleSBjYW4gYXRvbWljYWxseSBwZXJmb3JtIHRoZSBwYWQgbGluay4KCjIwMDUtMTEtMDkgMTk6MzI6MzIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBJbXByb3ZlL2ZpeCBkb2N1bWVudGF0aW9uIGZvciBHc3RRdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcHJvdmUvZml4IGRvY3VtZW50YXRpb24gZm9yIEdzdFF1ZXJ5LgoJICBUaGlzIHN0aWxsIG5lZWRzIHNvbWUgbW9yZSB3b3JrIHRvIGV4cGxhaW4gd2hhdCB0aGUgcXVlcmllcyBhY3R1YWxseSBtZWFuLgoKMjAwNS0xMS0wOSAxODo0MTo1MyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU2xpZ2h0bHkgcG9saXNoIGRvY3MgZm9yIEdzdEFkYXB0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTbGlnaHRseSBwb2xpc2ggZG9jcyBmb3IgR3N0QWRhcHRlci4KCjIwMDUtMTEtMDkgMTg6MTA6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IFViZXItc3BpZmZ5LXNwaWZmaWZ5IHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgVWJlci1zcGlmZnktc3BpZmZpZnkgc29tZSBtb3JlLgoKMjAwNS0xMS0wOSAxNzo1NToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFVzZSBHU1RfREVCVUdfRlVOQ1BUUigpIG1vcmUgZXh0ZW5zaXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfaW5pdCksIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgVXNlIEdTVF9ERUJVR19GVU5DUFRSKCkgbW9yZSBleHRlbnNpdmVseS4KCjIwMDUtMTEtMDkgMTc6MzI6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0Lio6IERvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNS0xMS0wOSAxNzowNjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjQ0OjQwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCjIwMDUtMTEtMDkgMTY6MzI6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogRml4IHJldmlzaW9uIGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBGaXggcmV2aXNpb24gZGF0YS4KCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjoxNjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjowMDowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1vdmVkIHRoZSBtZXNzYWdlIGFzeW5jIGRlbGl2ZXJ5IHByaXZhdGUgbG9jayBhbmQgY29uZCB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNb3ZlZCB0aGUgbWVzc2FnZSBhc3luYyBkZWxpdmVyeSBwcml2YXRlIGxvY2sgYW5kIGNvbmQKCSAgdG8gdGhlIHByaXZhdGUgc2VjdGlvbi4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeGVkIGRvY3MuCgoyMDA1LTExLTA5IDE1OjM0OjQ2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgRG9jdW1lbnQgR3N0VVJJSGFuZGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIERvY3VtZW50IEdzdFVSSUhhbmRsZXIKCjIwMDUtMTEtMDkgMTU6MzE6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogRml4IGl0ZXJhdG9yIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLCAoZ3N0X2l0ZXJhdG9yX2ZvcmVhY2gpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgRml4IGl0ZXJhdG9yIGRvY3MuCgoyMDA1LTExLTA5IDE1OjEwOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5oOiBEb2N1bWVudCBhbm90aGVyIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIERvY3VtZW50IGFub3RoZXIgZmllbGQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgRG9jdW1lbnQuCgoyMDA1LTExLTA5IDEzOjE0OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5oOiBEb2N1bWVudGVkIHN0cnVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgRG9jdW1lbnRlZCBzdHJ1Y3RzLgoKMjAwNS0xMS0wOSAxMjozNjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgc29tZSBuZXcgbWFjcm9zLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jcyB1cGRhdGVzLgoKMjAwNS0xMS0wOSAxMjowMTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFNvbWUgbW9yZSBpdGVtcyBmb3IgdGhlIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgU29tZSBtb3JlIGl0ZW1zIGZvciB0aGUgVE9ETwoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgRG9jdW1lbnQgR3N0Q2Fwcy4KCjIwMDUtMTEtMDkgMTA6MDY6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0aGUgYmVnaW5uaW5nIG9mIGRvY3MgaGVyZSAtLSBoYXZlIHRvIHdvcmsgb24gc29tZXRoaW5nIGVsc2Ugbm93IHRoby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdGhlIGJlZ2lubmluZyBvZiBkb2NzIGhlcmUgLS0gaGF2ZQoJICB0byB3b3JrIG9uIHNvbWV0aGluZyBlbHNlIG5vdyB0aG8uLi4KCjIwMDUtMTEtMDkgMDk6NDg6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICAoZ3N0X2ZpbGVfc2lua19zdG9wKTogTmV3IGZ1bmN0aW9ucywgcmVwbGFjZSB0aGUgc3RhdGUgY2hhbmdlCgkgIGhhbmRsZXIuCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOiBIb29rIHVwIHRoZSBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMuCgkgIChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6IERvbid0IHNldCB0aGUgc3RhdGUgY2hhbmdlIGhhbmRsZXIgYW55CgkgIG1vcmUuIEl0IHdhcyBhIGJpdCB1Z2x5IHRvbywgYmVpbmcgc2V0IGZyb20gaGVyZS4uLgoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHksIGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KToKCSAgQ2xlYW51cHMuLi4KCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKTogTW9yZSByb2J1c3QgY2hlY2sgdGhhdCBkb2Vzbid0IGNhbGwKCSAgR1NUX1NUQVRFLiBVZ2dnZ2dnLgoKMjAwNS0xMS0wOSAwOTo0NzoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIChnc3RfZmlsZV9zaW5rX3N0b3ApOiBOZXcgZnVuY3Rpb25zLCByZXBsYWNlIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgaGFuZGxlci4KCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6IEhvb2sgdXAgdGhlIHN0YXJ0IGFuZCBzdG9wIGZ1bmN0aW9ucy4KCSAgKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KTogRG9uJ3Qgc2V0IHRoZSBzdGF0ZSBjaGFuZ2UgaGFuZGxlciBhbnkKCSAgbW9yZS4gSXQgd2FzIGEgYml0IHVnbHkgdG9vLCBiZWluZyBzZXQgZnJvbSBoZXJlLi4uCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSwgZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpOgoJICBDbGVhbnVwcy4uLgoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pOiBNb3JlIHJvYnVzdCBjaGVjayB0aGF0IGRvZXNuJ3QgY2FsbAoJICBHU1RfU1RBVEUuIFVnZ2dnZ2cuCgoyMDA1LTExLTA4IDEyOjMzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBIb2xkIFNUUkVBTV9MT0NLIHdoaWxlIHB1c2hpbmcgbmV3c2VnbWVudCBvciB0YWcgZXZlbnRzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIEhvbGQgU1RSRUFNX0xPQ0sgd2hpbGUgcHVzaGluZyBuZXdzZWdtZW50IG9yIHRhZyBldmVudHMgYXMgd2VsbC4KCjIwMDUtMTEtMDggMTE6NTI6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICByZXZlcnQgcGFydCBvZiB0aGUgcGF0Y2ggc28gdGhhdCBwYXRocyBhcmUgY29ycmVjdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IHBhcnQgb2YgdGhlIHBhdGNoIHNvIHRoYXQgcGF0aHMgYXJlIGNvcnJlY3QKCjIwMDUtMTEtMDggMTE6MTM6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBdm9pZCBleGNlc3NpdmUgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQXZvaWQgZXhjZXNzaXZlIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfaW5pdCksIChnc3RfbWluaV9vYmplY3RfbmV3KSwKCSAgKGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X29iamVjdF9pbml0KSwKCSAgKGdzdF9vYmplY3RfZmluYWxpemUpOgoJICBSZW1vdmUgY3J1ZnQgY29kZSwgb3B0aW1pemUgYWxsb2NfdHJhY2UuCgoyMDA1LTExLTA3IDE4OjE2OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZml4IHVwIFBTMSBmb3Igc3lzdGVtcyB0aGF0IHRyeSB0byByZXNldCBpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGZpeCB1cCBQUzEgZm9yIHN5c3RlbXMgdGhhdCB0cnkgdG8gcmVzZXQgaXQKCjIwMDUtMTEtMDcgMTA6MzM6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNldCB0aGUgc2VnbWVudF9lbmQgdG8gLTEgaW5pdGlhbGx5LiBGaXhlZCB0eXBlZmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIFNldCB0aGUgc2VnbWVudF9lbmQgdG8gLTEgaW5pdGlhbGx5LiBGaXhlZCB0eXBlZmluZC4KCjIwMDUtMTEtMDcgMTA6MTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IERlYnVnIGNhdGVnb3J5IHNob3VsZCBiZSAnYWRhcHRlcicsIG5vdCAnR3N0QWRhcHRlcicuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgRGVidWcgY2F0ZWdvcnkgc2hvdWxkIGJlICdhZGFwdGVyJywgbm90ICdHc3RBZGFwdGVyJy4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfcGVlayksIChnc3RfY29sbGVjdHBhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19ldmVudCksIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICBBZGQgZGVidWcgY2F0ZWdvcnkgYW5kIHNvbWUgZGVidWdnaW5nIG91dHB1dC4gVXNlIGJvaWxlcnBsYXRlCgkgIG1hY3Jvcy4gUmVtb3ZlIHNvbWUgZXh0cmFuZW91cyB3b3JkcyBmcm9tIGRvY3MuCgoyMDA1LTExLTA1IDE1OjE0OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFNob3J0ZW4gYnkgMzAlIHZpYSB1c2Ugb2YgYm9pbGVycGxhdGUgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogU2hvcnRlbiBieSAzMCUgdmlhIHVzZSBvZiBib2lsZXJwbGF0ZQoJICBtYWNyby4KCjIwMDUtMTEtMDQgMjA6MTI6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBhZGRlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgbW9yZSBkb2NzIGFkZGVkCgoyMDA1LTExLTA0IDE1OjMzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTbWFsbCB1cGRhdGUgdG8gc3RvcCBhdCB0aGUgY29uZmlndXJlZCBzZWdtZW50X2VuZCBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIFNtYWxsIHVwZGF0ZSB0byBzdG9wIGF0IHRoZSBjb25maWd1cmVkIHNlZ21lbnRfZW5kCgkgIHBvc2l0aW9uLgoKMjAwNS0xMS0wNCAxNTowMjo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lio6IGFkZGVkIG1pc3NpbmcgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgYWRkZWQgbWlzc2luZyBkb2NzCgoyMDA1LTExLTA0IDE0OjM1OjEwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDaGVjayBpZiB3ZSBhcmUgZG9pbmcgYSBzZWdtZW50IHNlZWsgYW5kIGhhdmUgYXJyaXZlZCBhdCB0aGUgZW5kIG9mIHRoYXQgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIENoZWNrIGlmIHdlIGFyZSBkb2luZyBhIHNlZ21lbnQgc2VlayBhbmQgaGF2ZSBhcnJpdmVkIGF0IHRoZQoJICBlbmQgb2YgdGhhdCBzZWdtZW50LgoKMjAwNS0xMS0wNCAxMjowODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRG9uJ3QgbGVhayBhIG11dGV4IHVubG9jayBpbiBjYXNlIG9mIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKToKCSAgRG9uJ3QgbGVhayBhIG11dGV4IHVubG9jayBpbiBjYXNlIG9mIGFuIGVycm9yLgoJICAqIGdzdC9nc3RidXMuaDoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0wNCAxMTo0MzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogR2V0IHRoZSBjb250ZXh0IHRvIHdha2UgdXAgb25seSBvbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19pbml0KSwKCSAgKGdzdF9idXNfcG9zdCk6CgkgIEdldCB0aGUgY29udGV4dCB0byB3YWtlIHVwIG9ubHkgb25jZS4KCjIwMDUtMTEtMDMgMjA6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSWYgd2UgYXJlIGdvaW5nIHRvIFBMQVlJTkcsIHBvc3QgdGhlIHJpZ2h0IHBlbmRpbmcgc3RhdGUKCSAgd2hlbiB3ZSBwb3N0IHRoZSBpbnRlcm1lZGlhdGUgcGF1c2VkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHBvc3Qgc3RhdGUgY2hhbmdlcyB0aGF0IHdlcmUgYmV0d2VlbiB0aGUgc2FtZSBzdGF0ZQoJICBhbmQgd2VyZSBub3QgQVNZTkMuCgoyMDA1LTExLTAzIDIwOjE0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJZiB3ZSBhcmUgZ29pbmcgdG8gUExBWUlORywgcG9zdCB0aGUgcmlnaHQgcGVuZGluZyBzdGF0ZQoJICB3aGVuIHdlIHBvc3QgdGhlIGludGVybWVkaWF0ZSBwYXVzZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcG9zdCBzdGF0ZSBjaGFuZ2VzIHRoYXQgd2VyZSBiZXR3ZWVuIHRoZSBzYW1lIHN0YXRlCgkgIGFuZCB3ZXJlIG5vdCBBU1lOQy4KCjIwMDUtMTEtMDMgMTk6Mzg6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZG9jIGZpeGVzCgoyMDA1LTExLTAzIDE3OjUzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9saXZlc3JjX3NpbmspOiBBZGQgY2hlY2tzIHRoYXQgdGhlIHN0YXRlLWNoYW5nZWQgbWVzc2FnZXMgYWN0dWFsbHkgaGF2ZSB0aGUgcmlnaHQgb3JkZXIgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3RfbGl2ZXNyY19zaW5rKTogQWRkIGNoZWNrcyB0aGF0IHRoZQoJICBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2VzIGFjdHVhbGx5IGhhdmUgdGhlIHJpZ2h0IG9yZGVyIGFuZCB0aGUgcmlnaHQKCSAgdmFsdWVzLgoKMjAwNS0xMS0wMyAxNzoxMjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBBZGRlZCBzb21lIG1vcmUgY2hlY2tzLiBTcGVjaWZpY2FsbHkgdGhlIGNhc2Ugd2hlcmUgTk9fUFJFUk9MTCBlbGVtZW50cyBhcmUgaW4gdGhlIHBpcGVsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgY2hlY2tzLiBTcGVjaWZpY2FsbHkgdGhlIGNhc2Ugd2hlcmUgTk9fUFJFUk9MTAoJICBlbGVtZW50cyBhcmUgaW4gdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgUG9zdCBSRUFEWS0+UEFVU0VEIHN0YXRlIGNoYW5nZSBtZXNzYWdlcyB0b28uCgkgIEZpeCBidWcgd2hlcmUgVk9JRCB3YXMgcG9zdGVkIGFzIHBlbmRpbmcgc3RhdGUuLi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgIHVzZSBfZWxlbWVudF9jb250aW51ZV9zdGF0ZSgpIHRvIGNvbnRpbnVlIHRoZSBzdGF0ZSBjaGFuZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBMb3RzIG9mIHN0YXRlIGNoYW5nZSBjbGVhbnVwcywgYXNzaWduIHRoZSBTVEFURV9SRVRVUk4gaW4KCSAgYSBuZXcgY29udGludWVfc3RhdGUoKSBmdW5jdGlvbiB0aGF0IGFsc28gcHJvcGFnYXRlcyB0aGUKCSAgbGFzdCByZXR1cm4gdmFsdWUgZnJvbSBhIHN0YXRlIGNoYW5nZSB0byB0aGUgYXBwLgoJICBVcGRhdGUgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIHdpdGggcHJvcGVyIGNhdGVnb3J5LgoKMjAwNS0xMS0wMyAxNDoyMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvOiBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgUGVvcGxlIHRoaW5rICEhIGlzIHVnbHksIHRoaXMgbG9va3MgYmV0dGVyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBSZW1vdmUgISEgc2luY2UgaXQncyBmaXhlZCBlbHNld2hlcmUgbm93LgoKMjAwNS0xMS0wMyAxMzo1Mjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCAhISB0byBfRkxBR19JU19TRVQgbWFjcm9zIHRvIG1ha2UgdGhlIHJlc3VsdCBib29sZWFuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgQWRkICEhIHRvIF9GTEFHX0lTX1NFVCBtYWNyb3MgdG8gbWFrZSB0aGUgcmVzdWx0IGJvb2xlYW4uCgoyMDA1LTExLTAzIDEyOjQ4OjMwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBjb21wYXJpbmcgYSBmbGFnIGFuZCBhIGdib29sZWFuIHJhcmVseSByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIGNvbXBhcmluZyBhIGZsYWcgYW5kIGEgZ2Jvb2xlYW4gcmFyZWx5IHJldHVybnMgY29oZXJlbnQgcmVzdWx0cy4uLgoJICBBZGRlZCB0d28gY2hhcmFjdGVycyAoISEpIHRvIG1ha2UgdGhhdCB3b3JrIGNvcnJlY3RseS4KCjIwMDUtMTEtMDMgMTI6MTY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBGaXggc29tZSB0eXBvcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgRG9uJ3QgYXNzdW1lIGEgbWluaW9iamVjdCB0aGF0IGlzbid0IGEgYnVmZmVyIGlzIGFuCgkgIGV2ZW50IChpdCBjb3VsZCBiZSB0aGF0IHRoZXJlIGlzIGEgcmVmY291bnRpbmcKCSAgcHJvYmxlbSBzb21ld2hlcmUgYW5kIHRoZSBwb2ludGVyIGlzIHN0YWxlIGFuZAoJICByZWZlcnMgdG8gYW4gYWxyZWFkeSBkZXN0cm95ZWQgbWluaW9iamVjdCkuCgoyMDA1LTExLTAzIDEwOjU2OjIzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTAzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOiBGaXggc29tZSB0eXBvcy4KCjIwMDUtMTEtMDMgMDk6MTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6IFVwZGF0ZSBzZWVrIGV4YW1wbGUgYW5kIGV4cGxhbmF0aW9ucyB0byBjdXJyZW50IDAuOSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgVXBkYXRlIHNlZWsgZXhhbXBsZSBhbmQgZXhwbGFuYXRpb25zIHRvIGN1cnJlbnQgMC45IEFQSS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBSZW1vdmUgRklYTUUgY29tbWVudCBub3cgdGhhdCB0aGUgZm91bmQgY2FwcwoJICBhcmUgdW5yZWZmZWQuCgoyMDA1LTExLTAzIDAwOjM5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEFkZCBhbm90aGVyIEdTVF9TVFJfTlVMTCBpbnN0YW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGFub3RoZXIgR1NUX1NUUl9OVUxMIGluc3RhbmNlCgoyMDA1LTExLTAyIDE5OjA0OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGb2xsb3ctdXAgdG8gV2ltJ3MgcGF0Y2gsIHNvbHZlcyBkZWFkbG9jayBmb3IgYmxvY2tlZCBhbmQgZmx1c2hpbmcgcGFkcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChoYW5kbGVfcGFkX2Jsb2NrKToKCSAgRm9sbG93LXVwIHRvIFdpbSdzIHBhdGNoLCBzb2x2ZXMgZGVhZGxvY2sgZm9yIGJsb2NrZWQgYW5kIGZsdXNoaW5nIHBhZHMKCjIwMDUtMTEtMDIgMTg6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKToKCSAgUmVtb3ZlIHVudXNlZCB2YWx1ZS4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgTWVudGlvbiB0aGF0IHRoZSByZXR1cm5lZCBlbGVtZW50IGlzIHJlZmZlZCBpbiB0aGUgZG9jcy4KCjIwMDUtMTEtMDIgMTg6MzM6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVubG9jayBibG9ja2VkIHBhZHMgd2hlbiB0aGV5IGFyZSBmbHVzaGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBVbmxvY2sgYmxvY2tlZCBwYWRzIHdoZW4gdGhleSBhcmUgZmx1c2hlZC4KCjIwMDUtMTEtMDIgMTU6MzQ6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIGRvYyB1cGRhdGVzCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgZml4IGZvciBhIG5hc3R5IGxpdHRsZSBtaXNzZWQgc2l0dWF0aW9uIHdoZXJlIGFuIGluc3RhbGxlZCBwbHVnLWluCgkgIHdoaWNoIHdhcyBpbiB0aGUgY2FjaGUgZGlkIG5vdCBnZXQgb3ZlcnJpZGRlbiBieSBhbiB1bmluc3RhbGxlZCBvbmUKCSAgd2hpY2ggd2FzIGVhcmxpZXIgaW4gdGhlIHBsdWdpbiBwYXRoIGJlY2F1c2UgdGhlIG5ld2x5IGNyZWF0ZWQgcGx1Z2luCgkgIGZvciB0aGUgdW5pbnN0YWxsZWQgb25lIChub3QgaW4gdGhlIHJlZ2lzdHJ5KSBkaWRuJ3QgZ2V0IGl0cwoJICAtPnJlZ2lzdGVyZWQgc2V0IHRvIFRSVUUKCjIwMDUtMTEtMDIgMTU6MDg6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBHdWFyZCBwdWJsaWMgQVBJIHdpdGggYXNzZXJ0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19zZXRfZnVuY3Rpb24pLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2lzX2FjdGl2ZSksIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdHBhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksIChnc3RfY29sbGVjdHBhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19yZWFkKSwgKGdzdF9jb2xsZWN0cGFkc19mbHVzaCk6CgkgIEd1YXJkIHB1YmxpYyBBUEkgd2l0aCBhc3NlcnRpb25zLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3MgZm9yIGdzdF9wYWRfc2V0X2xpbmtfZnVuY3Rpb24oKS4KCjIwMDUtMTEtMDIgMTQ6Mjg6MDIgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOiBVbnJlZiBmb3VuZF9jYXBzIGFmdGVyIHdlIHVzZWQgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVW5yZWYgZm91bmRfY2FwcyBhZnRlciB3ZSB1c2VkIGl0LgoKMjAwNS0xMS0wMiAxMjoyMDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IHRyeSB0byByZWYgTlVMTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19wZWVrKToKCSAgRG9uJ3QgdHJ5IHRvIHJlZiBOVUxMLgoKMjAwNS0xMS0wMiAwOTozMTowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scwoKMjAwNS0xMS0wMiAwOToyNzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scwoKMjAwNS0xMS0wMiAwOToyNDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBnZW5lcmF0ZWQgY29uZmlnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZ2VuZXJhdGVkIGNvbmZpZwoKMjAwNS0xMS0wMiAwOToyNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgcHJvdmlkZSBhIEdTVF9GVU5DVElPTiB0aGF0IGp1c3QgZ2l2ZXMgYSBzdHJpbmcgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJvdmlkZSBhIEdTVF9GVU5DVElPTiB0aGF0IGp1c3QgZ2l2ZXMgYSBzdHJpbmcgZm9yIG5vdwoKMjAwNS0xMS0wMiAwODo1NjowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlIHdpbjMyIGNvcGllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvcGllcwoKMjAwNS0xMS0wMSAxOToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIG1vcmUgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZG9jIHVwZGF0ZXMKCjIwMDUtMTEtMDEgMTc6NDU6NDYgKzAwMDAgIEx1Y2EgT2duaWJlbmUgPGx1b2duaUB0aW4uaXQ+CgoJICBnc3QvZ3N0LmM6IGZpeCBkb2NzLiBwb3B0IGlzIGRlYXRoLCBsb25nIGxpdmUgR09wdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBmaXggZG9jcy4gcG9wdCBpcyBkZWF0aCwgbG9uZyBsaXZlIEdPcHRpb24uCgoyMDA1LTEwLTMxIDExOjQ0OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBTbWFsbCBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFNtYWxsIGRvYyBmaXguCgoyMDA1LTEwLTMxIDA5OjUyOjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBCb28hCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTMxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIEJvbyEKCSAgKiBnc3QvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX2NoYWluKTogRml4IGRvd25zdHJlYW0gbGVha3kgbW9kZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKTogTm8KCSAgbmVlZCB0byBzZXJpYWxpemUgcHJvcGVydHkgbm90aWZpY2F0aW9ucyBvbiBHTGliIDIuOC4gR0xpYiAyLjYgaGFzCgkgIHRoZSBwb3NzaWJpbGl0eSBvZiBkZWFkbG9ja3MgaGVyZSBpZiBjb2RlIGNhbGxpbmcgbm90aWZ5KCkgb3IKCSAgc2V0KCkgaGFzIGEgbG9jayB0aGF0IGNhbiBiZSB0YWtlbiBpbiBhbm90aGVyIG5vdGlmeSBoYW5kbGVyIChBQkJBCgkgIHdpdGggY2xhc3MgbG9jayBhbmQgZS5nLiBweXRob24gR0lMIHN0YXRlIGxvY2spLgoKMjAwNS0xMC0yOCAxODoxODoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yOCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RidXMuYzogRG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE4OjE0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxODoxMDo0MSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZ3N0LzogdGhlIEdzdFVSSVR5cGUgZG9jdW1lbnRhdGlvbiBwYWdlIGlzIHByaXZhdGUsIGl0IG9ubHkgZGVmaW5lcyBHc3RVUklUeXBlIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBHcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHRoZSBHc3RVUklUeXBlIGRvY3VtZW50YXRpb24gcGFnZSBpcyBwcml2YXRlLCBpdCBvbmx5IGRlZmluZXMgR3N0VVJJVHlwZQoJICB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgR3N0VVJJSGFuZGxlciBwYWdlCgoyMDA1LTEwLTI4IDE3OjM1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE3OjM1OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jdW1lbnRlZCB0aGUgY2xvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEb2N1bWVudGVkIHRoZSBjbG9ja3MuCgoyMDA1LTEwLTI4IDE3OjM0OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGVkIGNvbmZpZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCBjb25maWcKCjIwMDUtMTAtMjggMTc6MjA6NDUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgV29yayBhcm91bmQgZ3RrZG9jIGRlZmljaWVuY2llcywgZG9jdW1lbnQgYSBtYWNybyBkaWZmZXJlbnRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFdvcmsgYXJvdW5kIGd0a2RvYyBkZWZpY2llbmNpZXMsIGRvY3VtZW50IGEgbWFjcm8gZGlmZmVyZW50bHkuCgoyMDA1LTEwLTI4IDE3OjAxOjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIEltcHJvdmUgR3N0QnVmZmVyIGRvY3VtZW50YXRpb24uIEl0J3Mgbm93IDEwMCUgU3BpZmZpZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXByb3ZlIEdzdEJ1ZmZlciBkb2N1bWVudGF0aW9uLiBJdCdzIG5vdyAxMDAlIFNwaWZmaWVyLgoKMjAwNS0xMC0yOCAxNjo1NDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgc29tZSBzdHlsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBzdHlsZSBmaXhlcwoKMjAwNS0xMC0yOCAxNjo0Njo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbW92ZSBzb21lIG1hY3JvcyB0byBwcml2YXRlIHNlY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vdmUgc29tZSBtYWNyb3MgdG8gcHJpdmF0ZSBzZWN0aW9ucwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgYWRkIGRlc2NyaXB0aW9ucyBwcm92aWRlZCBieSBkcyBhbmQgc29tZSBtb3JlCgkgICogZ3N0L2dzdHBhZC5oOgoJICBtYXJrIG1hY3JvIGFzIHRvIGJlIHJlbW92ZWQKCjIwMDUtMTAtMjggMTY6MjE6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgYW4gaXRlbSB0byBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgYW4gaXRlbSB0byBUT0RPLgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkIGl0ZXJhdG9yIGRvY3MuCgoyMDA1LTEwLTI4IDE2OjA4OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICBhZGQgc3R5bGUgZ3VpZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzdHlsZSBndWlkZQoKMjAwNS0xMC0yOCAxMDo0NTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgbGVhayBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpOgoJICBEb24ndCBsZWFrIGNsYXNzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgQW4gRU9TIGV2ZW50IG1hcmtzIHRoZSBxdWV1ZSBhcyBjb21wbGV0ZWx5IGZpbGxlZC4KCjIwMDUtMTAtMjcgMjA6NTk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIG1vcmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4IGRlYnVnZ2luZywKCSAgUHJvdGVjdCB0cmFuc2Zvcm0gYW5kIGNvbmN1cnJlbnQgYnVmZmVyIGFsbG9jIHdpdGggYSBuZXcgbG9jay4KCSAgVHJ5IG5vdCB0byBicmVhayBBQkkvQVBJLgoKMjAwNS0xMC0yNyAxOTozNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogTW92ZSBzb21lIHN0dWZmIGFyb3VuZCBhbmQgY2xlYW51cCB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfdW5sb2NrKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2RlYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1vdmUgc29tZSBzdHVmZiBhcm91bmQgYW5kIGNsZWFudXAgdGhpbmdzLgoKMjAwNS0xMC0yNyAxNTo0ODo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWRkIG1pc3NpbmcgYnJlYWsgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgQWRkIG1pc3NpbmcgYnJlYWsgc3RhdGVtZW50cy4KCjIwMDUtMTAtMjcgMTM6NDc6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFuIGV4dHJhIHJlZmNvdW50IGlzIHRha2VuIGluIGJhc2VzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQW4gZXh0cmEgcmVmY291bnQgaXMgdGFrZW4gaW4gYmFzZXNyYy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFNtYWxsIGNsZWFudXBzLCBjaGVjayBmb3IgZmx1c2hpbmcgYWZ0ZXIgYmVpbmcgdW5sb2NrZWQgZnJvbSB0aGUKCSAgTElWRV9MT0NLLiB0YWtlIHJlZmNvdW50cyBjb3JyZWN0bHkgKG5vdCB5ZXQgZXZlcnl3aGVyZSkuCgkgIERvbid0IHNlbmQgb3V0IEVPUyB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwNS0xMC0yNyAwODo1NTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgbW9yZSBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFNvbWUgbW9yZSBkZWJ1Zy4KCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBSZW1vdmUgb2xkIG9wdGlvbi4KCjIwMDUtMTAtMjYgMTg6NTc6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeGluZyBleGFtcGxlcyBmaXhpbmcgZG9jcyB0eXBvcyBjaGFuZ2luZyBsb2cgcHJpb3JpdHkgaW4gZXJyb3Igc2l0dWF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIGZpeGluZyBleGFtcGxlcwoJICBmaXhpbmcgZG9jcyB0eXBvcwoJICBjaGFuZ2luZyBsb2cgcHJpb3JpdHkgaW4gZXJyb3Igc2l0dWF0aW9ucwoKMjAwNS0xMC0yNiAxMDoxMToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIG1ha2Ugc3VyZSBkaXJzIGdldCBjaGVja2VkIG91dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBzdXJlIGRpcnMgZ2V0IGNoZWNrZWQgb3V0CgoyMDA1LTEwLTI2IDA5OjU2OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDUtMTAtMjUgMTc6NDE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgZG9jIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBTb21lIGRvYyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgQ2FjaGUgcHJldmlvdXNseSByZXF1ZXN0ZWQgcXVlcnkgRFVSQVRJT04gZm9yIHNwZWVkLiBpbnZhbGlkYXRlCgkgIGNhY2hlZCBkdXJhdGlvbiBpZiBlbGVtZW50IHBvc3RzIGEgRFVSQVRJT04gbWVzc2FnZS4KCjIwMDUtMTAtMjUgMTU6Mzk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgSGFuZGxlIFNFR01FTlRfU1RBUlQvRE9ORSBtZXNzYWdlcyBjb3JyZWN0bHkuCgkgIE1vcmUgZXZvbHZlZCBxdWVyeSBhbGdvcml0aG0gdGhhdCBoYW5kbGVzIGR1cmF0aW9uIHF1ZXJpZXMKCSAgY29ycmVjdGx5LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X3F1ZXJ5KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBkb2MuCgoyMDA1LTEwLTI1IDEwOjE1OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdXNlIGludmFsaWQgc3RyZWFtX3RpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHVzZSBpbnZhbGlkIHN0cmVhbV90aW1lLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgc3RyZWFtX3RpbWUgaW4gbmV3c2VnbWVudCBjYW5ub3QgYmUgdW5kZWZpbmVkLgoKMjAwNS0xMC0yNSAxMDoxMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRoZSBjaGFuZ2Vsb2cgbGFzdCB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdGhlIGNoYW5nZWxvZyBsYXN0IHRpbWUKCjIwMDUtMTAtMjQgMTU6NDE6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IERvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgRG9jIGZpeC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBGaXggcG90ZW50aWFsIGRlYWRsb2NrIHdoZW4gUVVFVUVfTE9DSyBpcyB0YWtlbiBiZWZvcmUgU1RSRUFNX0xPQ0suCgoyMDA1LTEwLTI0IDExOjU2OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvdG1wbC86IHRoZXNlIGFyZSBvYnNvbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGFyYW0uc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGxpbmludC5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwbWFuLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBzbW9vdGguc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3R1bml0Y29udmVydC5zZ21sOgoJICB0aGVzZSBhcmUgb2Jzb2xldGUKCjIwMDUtMTAtMjQgMDk6MTM6MjcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBGaXggc29tZSBtaW5vciBkb2N1bWVudGF0aW9uIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggc29tZSBtaW5vciBkb2N1bWVudGF0aW9uIHR5cG9zCgoyMDA1LTEwLTIzIDIzOjA0OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjQgPT09CgoyMDA1LTEwLTIzIDIyOjMwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdGltZSB0byByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aW1lIHRvIHJlbGVhc2UKCjIwMDUtMTAtMjMgMTA6NDk6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGFkZCBtb3JlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBmaWxlcwoKMjAwNS0xMC0yMyAxMDoyOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBVc2UgZnNlZWtvKCkgYW5kIGZ0ZWxsbygpIGlmIGF2YWlsYWJsZS4gV2hlbiBmYWxsaW5nIGJhY2sgb24gbHNlZWsoKSB0byBnZXQgdGhlIGN1cnJlbnQgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCk6CgkgIFVzZSBmc2Vla28oKSBhbmQgZnRlbGxvKCkgaWYgYXZhaWxhYmxlLiBXaGVuIGZhbGxpbmcgYmFjayBvbgoJICBsc2VlaygpIHRvIGdldCB0aGUgY3VycmVudCBvZmZzZXQsIGZmbHVzaCgpIGZpcnN0IHRvIG1ha2Ugc3VyZQoJICBldmVyeXRoaW5nIGlzIHVwLXRvLWRhdGUgYW5kIHdlIGdldCB0aGUgcmlnaHQgb2Zmc2V0LgoKMjAwNS0xMC0yMyAwOTowODo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcmVtb3ZlIHByZW1hdHVyZWx5IGFkZGVkIGVycm9yIGNhdGVnb3J5IGFuZCBjbGVhbiB1cCB0aGUgaW5zdGFuY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgcHJlbWF0dXJlbHkgYWRkZWQgZXJyb3IgY2F0ZWdvcnkgYW5kIGNsZWFuIHVwIHRoZSBpbnN0YW5jZXMKCjIwMDUtMTAtMjEgMTc6NTM6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW1wbHkgc2V0IHRoZSByaWdodCBmbGFnIHdoZW4gZ29pbmcgdG8gcGxheWluZywgdGhhdCdzIGFsbCB3ZSBuZWVkIHRvIGRvIGluc3RlYWQgb2YgY2FsbGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW1wbHkgc2V0IHRoZSByaWdodCBmbGFnIHdoZW4gZ29pbmcgdG8gcGxheWluZywgdGhhdCdzIGFsbAoJICB3ZSBuZWVkIHRvIGRvIGluc3RlYWQgb2YgY2FsbGluZyBhIGZ1bmN0aW9uIGluc2lkZSB0aGUgb2JqZWN0CgkgIGxvY2sgKHRoYXQgY291bGQgdGFrZSB0aGUgbG9jayBhcyB3ZWxsIGFuZCBkZWFkbG9jaykKCjIwMDUtMTAtMjEgMTY6MTg6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHdhcm4sIHRoZSBwZWVyIGVsZW1lbnQga25vd3Mgd2hhdCB0byBkbyBiZXN0IHdoZW4gdGhlIHNlZWsgZmFpbGVkLCBpdCBtaWdodCB0cnkgc29tZXRoaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBEb24ndCB3YXJuLCB0aGUgcGVlciBlbGVtZW50IGtub3dzIHdoYXQgdG8gZG8gYmVzdCB3aGVuCgkgIHRoZSBzZWVrIGZhaWxlZCwgaXQgbWlnaHQgdHJ5IHNvbWV0aGluZyBlbHNlLgoKMjAwNS0xMC0yMSAxNjoxNDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIEZpeCBzZWVraW5nLgoKMjAwNS0xMC0yMSAxNToxMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBNb3JlIGRvY3MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgQ29ycmVjdGx5IHNldCBjYXBzLCBldmVuIG9uIHRoZSBzdWJidWZlci4KCjIwMDUtMTAtMjEgMTE6MzY6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBbmQgMiUgbW9yZSBkb2MgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19maW5hbGl6ZSksIChnc3RfdGFza19mdW5jKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBbmQgMiUgbW9yZSBkb2MgY292ZXJhZ2UuCgoyMDA1LTEwLTIxIDA5OjI0OjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19xdWVyeSk6IENsZWFuIHVwIHBlcmNlbnQgcG9zaXRpb24gcmVwb3J0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19xdWVyeSk6IENsZWFuIHVwIHBlcmNlbnQKCSAgcG9zaXRpb24gcmVwb3J0aW5nLgoKMjAwNS0xMC0yMCAyMTowODo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChnc3RfZXJyb3JfZ2V0X21lc3NhZ2UpOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTW9yZSBkb2NzLgoKMjAwNS0xMC0yMCAyMDo0NjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFub3RoZXIgMSUgbW9yZSBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgQW5vdGhlciAxJSBtb3JlIGNvdmVyYWdlLgoKMjAwNS0xMC0yMCAyMDoyNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFlheSEgMSUgbW9yZSBkb2NzIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBZYXkhIDElIG1vcmUgZG9jcyBjb3ZlcmFnZS4KCjIwMDUtMTAtMjAgMTk6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBEb2NzIGFuZCBjb25zaXN0ZW5jeSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBEb2NzIGFuZCBjb25zaXN0ZW5jeSBmaXhlcy4KCjIwMDUtMTAtMjAgMTk6MzA6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dGFzay4qOiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgTW9yZSBkb2NzLgoKMjAwNS0xMC0yMCAxNzoyMjo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUmV3b3JrZWQgdGhlIG1lc3NhZ2UgaGFuZGxpbmcgYSBiaXQsIGNhY2hlIHRoZSBtZXNzYWdlcyBpbnN0ZWFkIG9mIG9ubHkgdGhlIHNlbmRlcnMuIGFsb3dzIHVzIHRvIGRvIG1vci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIFJld29ya2VkIHRoZSBtZXNzYWdlIGhhbmRsaW5nIGEgYml0LCBjYWNoZSB0aGUgbWVzc2FnZXMgaW5zdGVhZCBvZgoJICBvbmx5IHRoZSBzZW5kZXJzLiBhbG93cyB1cyB0byBkbyBtb3JlIGluIHRoZSBmdXR1cmUuCgoyMDA1LTEwLTIwIDE3OjE4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIERvbid0IHVzZSBjbG9jayB0aW1lIHRvIHJlcG9ydCBwb3NpdGlvbiB3aGVuIGluIEVPUy4KCjIwMDUtMTAtMjAgMTM6MTA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggaW50ZXJmYWNlIG91dHB1dCB3aXRoIGdzdC1pbnNwZWN0IC1hOyBkb24ndCBwcmludCBuZXdsaW5lcyBhZnRlciBkb3VibGUvZmxvYXQgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGludGVyZmFjZSBvdXRwdXQgd2l0aCBnc3QtaW5zcGVjdCAtYTsgZG9uJ3QgcHJpbnQKCSAgbmV3bGluZXMgYWZ0ZXIgZG91YmxlL2Zsb2F0IHByb3BlcnRpZXMuCgoyMDA1LTEwLTIwIDExOjQ4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU3BlZWQgdXAgY3VycmVudCBwb3NpdGlvbiBjYWxjdWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBTcGVlZCB1cCBjdXJyZW50IHBvc2l0aW9uIGNhbGN1bGF0aW9uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KToKCSAgQ29ycmVjdGx5IHNldCBzdHJlYW0gcG9zaXRpb24gaW4gbmV3c2VnbWVudC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGFkZF90b19xdWV1ZSksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgQ2xlYW4gdXAgZGVidWdnaW5nIGluZm8KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBQYXVzZSB0YXNrIGZhc3Rlci4KCjIwMDUtMTAtMTkgMTc6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggcXVlcnkgaGFuZGxpbmcgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChkb19wbGF5aW5nKToKCSAgRml4IHF1ZXJ5IGhhbmRsaW5nIGFnYWluLgoKMjAwNS0xMC0xOSAxNTo1MDoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFQSSBjaGFuZ2UgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZG9fcGxheWluZyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcXVlcnkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksIChmaW5kX2VsZW1lbnRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBBUEkgY2hhbmdlIGZpeC4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X25ld19kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBCdW5kbGluZyBxdWVyeSBwb3NpdGlvbi9kdXJhdGlvbiBpcyBub3QgYSBnb29kIGlkZWEgc2luY2UgZHVyYXRpb24KCSAgZG9lcyBub3QgY2hhbmdlIG11Y2ggYW5kIHdlIGRvbid0IHdhbnQgdG8gcmVjYWxjdWxhdGUgaXQgZm9yIGV2ZXJ5CgkgIHBvc2l0aW9uIHF1ZXJ5LCBzbyB0aGV5IGFyZSBzZXBhcmF0ZWQgYWdhaW4uLgoJICBCYXNlIHZhbHVlIGluIHNlZ21lbnQgcXVlcnkgaXMgbm90IG5lZWRlZC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKSwgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFVwZGF0ZXMgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2UuCgkgIEFkZGVkIHNvbWUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCjIwMDUtMTAtMTkgMTE6NDM6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiB3YWl0IG9uIHRocmVhZCB0byBkaWUgc28gd2UgY2FuIGNoZWNrIHJlZmNvdW50IGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgd2FpdCBvbiB0aHJlYWQgdG8gZGllIHNvIHdlIGNhbiBjaGVjayByZWZjb3VudCBjb3JyZWN0bHkKCjIwMDUtMTAtMTkgMTE6NDM6MTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgdG9vbHMgcGFja2FnZSBuYW1pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0b29scyBwYWNrYWdlIG5hbWluZwoKMjAwNS0xMC0xOSAxMTo0MjozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGxvZyBhbiBpZiBicmFuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyBhbiBpZiBicmFuY2gKCjIwMDUtMTAtMTggMTc6MzA6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IE1ha2UgY2hlY2sgYSBsaXR0bGUgbW9yZSB0aW1lIGNvbnN1bWluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGNoZWNrIGEgbGl0dGxlIG1vcmUgdGltZSBjb25zdW1pbmcuCgoyMDA1LTEwLTE4IDE3OjA2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBTbWFsbCBzdGF0ZSBjaGFuZ2UgdG9ydHVyZSB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlKSwgKG1haW4pOgoJICBTbWFsbCBzdGF0ZSBjaGFuZ2UgdG9ydHVyZSB0ZXN0LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZG9fcGxheWluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE5ldmVyIHRha2Ugc3RhdGUgbG9jayBmcm9tIHN0cmVhbWluZyB0aHJlYWQsIGNsZWFuIHVwIHVnbHkKCSAgaGFja3MuIFVuZm9ydHVuYXRseSBjb3JlIGRvZXMgbm90IHlldCBzdXBwb3J0IG5pY2Ugd2F5cyB0bwoJICBhc3luYyBjb21taXQgc3RhdGUuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICBTdGFydCBzdGF0ZSByZWNhbGMgaWYgYSBTVEFURV9ESVJUWSBtZXNzYWdlIGlzIHBvc3RlZCwgYnV0IG9ubHkKCSAgb24gdGhlIHRvcGxldmVsIGJpbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFN0YXRlIHZhcmlhYmxlcyBhcmUgbm93IHByb3RlY3RlZCB3aXRoIHRoZSBMT0NLLCB0aGUgc3RhdGUKCSAgbG9jayBpcyBvbmx5IHVzZWQgdG8gc2VyaWFsaXplIF9zZXRfc3RhdGUoKS4KCjIwMDUtMTAtMTggMTY6MjU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTZXJpb3VzbHksIHRoaXMgaXMgYmV0dGVyIHRoYW4gYSBwcmV2aW91cyBjb21taXQgYXMgd2Ugb25seSBuZWVkIHRvIG5vdGlmeSB0aGUgZmFjdCB0aGF0IGFuIGVsZW1lbnQgY2hhbmdlZCBzdGF0ZSBpbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9yZWNhbGNfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9kaXJ0eSksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBTZXJpb3VzbHksIHRoaXMgaXMgYmV0dGVyIHRoYW4gYSBwcmV2aW91cyBjb21taXQgYXMgd2Ugb25seSBuZWVkCgkgIHRvIG5vdGlmeSB0aGUgZmFjdCB0aGF0IGFuIGVsZW1lbnQgY2hhbmdlZCBzdGF0ZSBpbiBhIHN0cmVhbWluZwoJICB0aHJlYWQsIG1hcmtpbmcgdGhlIHN0YXRlIG9mIHRoZSBwYXJlbnRzIGRpcnR5LCBoZW5jZSB0aGUKCSAgU1RBVEVfRElSVFkgbWVzc2FnZSBpbnN0ZWFkIG9mIGFidXNpbmcgYSBib29sZWFuIGluIGEgU1RBVEVfQ0hBTkdFCgkgIG1lc3NhZ2UuCgoyMDA1LTEwLTE4IDE1OjE1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ2xlYW51cHMsIHByZXBhcmUgZm9yIHN0YXRlIGNoYW5nZSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayksCgkgIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgQ2xlYW51cHMsIHByZXBhcmUgZm9yIHN0YXRlIGNoYW5nZSBmaXhlcy4KCjIwMDUtMTAtMTggMTQ6Mjk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBQZW5kaW5nIEFCSSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBQZW5kaW5nIEFCSSBjaGFuZ2VzLgoJICBHVGhyZWFkUG9vbCBpbiBHc3RCaW5DbGFzcyB0byBtb25pdG9yIGFzeW5jIHN0YXRlIGNoYW5nZXMuCgkgIHN0YXRlX2Nvb2tpZSBpbiBHc3RFbGVtZW50IHRvIGRldGVjdCBjb25jdXJyZW50IGdzdC9zZXQgc3RhdGUuCgkgIHNldF9zdGF0ZSBpcyBub3cgdmlydHVhbCB0b28gaW4gY2FzZSBhIHZlcnkgY29tcGxpY2F0ZWQgZWxlbWVudAoJICBoYXMgdG8gYmUgY29uc3RydWN0ZWQuCgoyMDA1LTEwLTE4IDEzOjE5OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBtZXNzYWdlcyBmdXR1cmUgcHJvb2YuIHN0YXRlLWNoYW5nZSBnZXRzIGEgZmxhZyBpZiBpdCB3YXMgYSBtZXNzYWdlIGNvbW1pbmcgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2UgbWVzc2FnZXMgZnV0dXJlIHByb29mLgoJICBzdGF0ZS1jaGFuZ2UgZ2V0cyBhIGZsYWcgaWYgaXQgd2FzIGEgbWVzc2FnZSBjb21taW5nIGZyb20gdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuCgkgIHNlZ21lbnQtc3RhcnQvc3RvcCBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW4gb3RoZXIgZm9ybWF0cy4KCSAgQSBtZXNzYWdlIHRvIG5vdGlmeSBhbiBhcHAgdGhhdCBhIHBpcGVsaW5lIGNoYW5nZWQgcGxheWJhY2sKCSAgZHVyYXRpb24uCgkgIEFsc28gZml4IGEgR3N0TWVzc2FnZSBsZWFrIGluIC1sYXVuY2gKCjIwMDUtMTAtMTggMTA6MzI6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOiBNb3JlIGhlbHBmdWwgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6IE1vcmUgaGVscGZ1bCBtZXNzYWdlLgoKMjAwNS0xMC0xOCAwODoyMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIGluZm8gbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpbmZvIG1lc3NhZ2VzCgoyMDA1LTEwLTE4IDA3OjEzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiB1bnJlZiBhIHBsdWctaW4gd2UgZ2V0IHRoYXQgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgdW5yZWYgYSBwbHVnLWluIHdlIGdldCB0aGF0IHdhcyBhbHJlYWR5IGluaXRpYWxpemVkCgoyMDA1LTEwLTE3IDIwOjE2OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGQgbmV3IGFwaSBlbnRyaWVzIGhpZGUgaW50ZXJuYWwgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGFkZCBuZXcgYXBpIGVudHJpZXMKCSAgaGlkZSBpbnRlcm5hbCBtYWNybwoKMjAwNS0xMC0xNyAxODowOTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKTogU2xpZ2h0IGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6IFNsaWdodAoJICBjbGVhbnVwLgoJICAqIGdzdC9NYWtlZmlsZS5hbSAoZ3N0ZW51bXR5cGVzLmMpOiBUaHJlYWRzYWZlIG5vdy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X25ldywgZ3N0X2V2ZW50X2ZpbmFsaXplKTogTE9HLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogcy9JTkZPL0RFQlVHLy4KCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogQmV0dGVyIGRlYnVnIG1lc3NhZ2UuCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOiBzL0lORk8vREVCVUcvLgoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSwgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9pbml0KTogcy9JTkZPL0xPRy8uCgkgIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKTogcy9JTkZPL0xPRy8uCgoyMDA1LTEwLTE3IDE3OjQ2OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgQ2hlY2sgdmFsaWRpdHkgb2YgZW5kIHRpbWUgYmFzZWQgb24gZW5kIHRpbWUgdmFyaWFibGUsIG5vdCBzdGFydCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hlY2sgdmFsaWRpdHkgb2YgZW5kIHRpbWUgYmFzZWQgb24gZW5kIHRpbWUgdmFyaWFibGUsIG5vdCBzdGFydCB0aW1lLgoKMjAwNS0xMC0xNyAxNzowNTozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWVyZ2UgY29udHJvbGxlciB0ZXN0c3VpdGVzIGZpeCBicm9rZW4gdGVzdHMgcmVtb3ZlIG1lbS1jaHVuayBmcm9tIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSAgbWVyZ2UgY29udHJvbGxlciB0ZXN0c3VpdGVzCgkgIGZpeCBicm9rZW4gdGVzdHMKCSAgcmVtb3ZlIG1lbS1jaHVuayBmcm9tIGRvY3MKCjIwMDUtMTAtMTcgMTQ6NDI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0Lzogb3V0LiAgZ2V0IG91dC4gIHlvdSdyZSBmaXJlZC4gIHRvIHRoZSBBdHRpYyAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmM6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgb3V0LiAgZ2V0IG91dC4gIHlvdSdyZSBmaXJlZC4gIHRvIHRoZSBBdHRpYyAhCgoyMDA1LTEwLTE3IDE0OjM3OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IGZpeCBzaWduZWRuZXNzIGlzc3VlcyBpbiBhIChob3BlZnVsbHkpIGNvcnJlY3Qgd2F5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBmaXggc2lnbmVkbmVzcyBpc3N1ZXMgaW4gYSAoaG9wZWZ1bGx5KSBjb3JyZWN0IHdheQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICBzb21lIGRlYnVnZ2luZwoKMjAwNS0xMC0xNyAxMDozNzoxMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBGaXggYSBkb2MgdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBhIGRvYyB0eXBvLgoKMjAwNS0xMC0xNyAwOToyODozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuaDogRml4IHByb3RvdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE3ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmg6IEZpeCBwcm90b3R5cGVzLgoKMjAwNS0xMC0xNiAxNDozMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIGdzdF92ZXJzaW9uX3N0cmluZyAoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdzdF92ZXJzaW9uX3N0cmluZyAoKQoKMjAwNS0xMC0xNiAxMzo1NTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgY29tbWVudDsgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21tZW50OyB1cGRhdGUgd2luMzIgY29uZmlnLmgKCjIwMDUtMTAtMTYgMTI6Mzc6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBEZWFyIEFuZHk6IGhlcmUncyBhIHNjcmlwdCB0byB1cGRhdGUgc3R1ZmYgZnJvbSBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERlYXIgQW5keToKCSAgaGVyZSdzIGEgc2NyaXB0IHRvIHVwZGF0ZSBzdHVmZiBmcm9tIENWUwoJICBMb3ZlLAoJICBUaG9tYXMKCjIwMDUtMTAtMTYgMTI6Mjg6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjbGVhbiB1cCBmdXJ0aGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY2xlYW4gdXAgZnVydGhlcgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBpdCdzIFBMVUdJTkRJUiBub3cKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgdXNlIGdpbnQ2NCwgdGhlIHJhbmdlIGNvdWxkIGJlIGJpZ2dlciB0aGFuIGEgZ3VpbnQKCjIwMDUtMTAtMTYgMTE6NDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGdzdC9nc3RjbG9jay5oOgoJICBHU3RyZWFtZXIgY29uc3VsdGFudHMgd2lsbCBtYWtlIGEgbG90IG9mIG1vbmV5IGluIDIwMzgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdTdHJlYW1lciBjb25zdWx0YW50cyB3aWxsIG1ha2UgYSBsb3Qgb2YgbW9uZXkgaW4gMjAzOAoKMjAwNS0xMC0xNiAxMDo1ODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggZ3VpbnQgaiBkaXZpbmcgdW5kZXIgMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRml4IGd1aW50IGogZGl2aW5nIHVuZGVyIDAKCjIwMDUtMTAtMTYgMTA6Mzg6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2sgZm9yIHByb2Nlc3MuaCwgZGVjbGFyZXMgZ2V0cGlkKCkgb24gV2luZG93cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgY2hlY2sgZm9yIHByb2Nlc3MuaCwgZGVjbGFyZXMgZ2V0cGlkKCkgb24gV2luZG93cwoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIGluY2x1ZGUgcHJvY2Vzcy5oIGlmIHdlIGhhdmUgaXQKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzogKHBvcHVsYXRlKSwgKGdzdF9tZW1fY2h1bmtfbmV3KToKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgZml4IHNpZ25lZG5lc3MgaXNzdWVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGZpeCBnZXRfdHlwZSdzCgoyMDA1LTEwLTE2IDEwOjIyOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGZpeCBzaWduZWRuZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggc2lnbmVkbmVzcwoKMjAwNS0xMC0xNiAxMDoxODozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZml4IEdTVF9WRVJTSU9OCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggR1NUX1ZFUlNJT04KCjIwMDUtMTAtMTYgMTA6MTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGZpeCBpbmxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBpbmxpbmUKCjIwMDUtMTAtMTYgMTA6MTI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGRlZmluZSBQQUNLQUdFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWZpbmUgUEFDS0FHRQoKMjAwNS0xMC0xNiAxMDoxMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlIGF2YWlsYWJsZSBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgYXZhaWxhYmxlIGhlYWRlcnMKCjIwMDUtMTAtMTYgMDk6NTY6MzMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGEgYmFkIGJ1ZyB3aXRoIGEgc2ltcGxlIGZpeC4gQmVjYXVzZSBvZiB1bnNpZ25lZCBpbnRzLCBjYXBzIGludGVyc2VjdGlvbiB3YXMgZ29pbmcgbnV0cyBhbmQgdHJ5aW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6IEZpeCBhIGJhZCBidWcgd2l0aCBhCgkgIHNpbXBsZQoJICBmaXguIEJlY2F1c2Ugb2YgdW5zaWduZWQgaW50cywgY2FwcyBpbnRlcnNlY3Rpb24gd2FzIGdvaW5nIG51dHMKCSAgYW5kCgkgIHRyeWluZyB0byBhY2Nlc3Mgc3RydWN0dXJlcyB3aXRoIEdfTUFYVUlOVCBpbmRleC4gVGhhdCBmaXhlcwoJICB2aWRlb3Rlc3RzcmMgISBmZm1wZWdjb2xvcnNwYWNlICEgZmFrZXNpbmsKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6IGxvZ3MKCSAgY29uc2lzdGVuY3kuCgoyMDA1LTEwLTE2IDA5OjU1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDUtMTAtMTYgMDk6NTQ6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0eXBvCgoyMDA1LTEwLTE2IDA5OjUxOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGVzIGZvciAyaW4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyBmb3IgMmluMzIKCjIwMDUtMTAtMTYgMDk6NDQ6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgbW9yZSBkZWZpbmUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZGVmaW5lIGZpeGVzCgoyMDA1LTEwLTE2IDA5OjIwOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIHRoZSBnZXR0ZXh0IG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE2ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIHRoZSBnZXR0ZXh0IG1hY3JvCgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJICB1cGRhdGUgZm9yIEdTVF9QQUNLQUdFX05BTUUsIEdTVF9QQUNLQUdFX09SSUdJTgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlZCBjb25maWcuaAoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkIHRoZSB0ZW1wbGF0ZSB0byBnZW5lcmF0ZSBjb25maWcuaAoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGVkIGNvcGllcwoKMjAwNS0xMC0xNiAwOToxMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIHJlbW92ZSBtb3JlIFBLR19DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtb3JlIFBLR19DRkxBR1MKCjIwMDUtMTAtMTYgMDk6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogYWRkIHRoZSBuYW5vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF92ZXJzaW9uKToKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBhZGQgdGhlIG5hbm8KCjIwMDUtMTAtMTYgMDg6NTk6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcmVtb3ZlIEdTVF9QS0dfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgR1NUX1BLR19DRkxBR1MKCjIwMDUtMTAtMTUgMjI6MjQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuaDogT29wcywgYWRkIG1pc3NpbmcgY2xvc2luZyBicmFja2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgT29wcywgYWRkIG1pc3NpbmcgY2xvc2luZyBicmFja2V0LgoKMjAwNS0xMC0xNSAyMTo0MToyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBjb21tb24gbTQncyBmb3IgYXJndW1lbnQgY2hlY2tpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgY29tbW9uIG00J3MgZm9yIGFyZ3VtZW50IGNoZWNraW5nCgoyMDA1LTEwLTE1IDIwOjMzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9FVkVOVF9UWVBFX05BTUUoKSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIEdTVF9FVkVOVF9UWVBFX05BTUUoKSBtYWNyby4KCjIwMDUtMTAtMTUgMjA6MDA6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcwoKMjAwNS0xMC0xNSAxOTo1NzowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBwcml2YXRpemUgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICBwcml2YXRpemUgbW9yZSBzeW1ib2xzCgoyMDA1LTEwLTE1IDE4OjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogYWRkIHNyY2RpciwgYnVpbGRkaXIgaW5jbHVkZXMgdG8gR1NUX0FMTF9DRkxBR1MsIHNpbmNlIGV2ZXJ5dGhpbmcgdGhhdCB1c2VzIEdTdHJlYW1lciBBUEkgc2hvdWxkIGhhdmUgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGFkZCBzcmNkaXIsIGJ1aWxkZGlyIGluY2x1ZGVzIHRvIEdTVF9BTExfQ0ZMQUdTLCBzaW5jZQoJICBldmVyeXRoaW5nIHRoYXQgdXNlcyBHU3RyZWFtZXIgQVBJIHNob3VsZCBoYXZlIHRoZSBpbmNsdWRlcwoKMjAwNS0xMC0xNSAxNzo1OTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnaXZlIGVhY2ggdmFsdWUgYSBfZ2V0X3R5cGUsIHJlbW92ZXMgdGhlIERBVEEgZXhwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ2l2ZSBlYWNoIHZhbHVlIGEgX2dldF90eXBlLCByZW1vdmVzIHRoZSBEQVRBIGV4cG9ydHMKCjIwMDUtMTAtMTUgMTc6MjI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGZpeCBsaW5rIGZsYWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGluayBmbGFncwoKMjAwNS0xMC0xNSAxNjozOTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMgZmlsZQoKMjAwNS0xMC0xNSAxNjozNzoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzCgoyMDA1LTEwLTE1IDE2OjMzOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuKjogcmVtb3ZlIF9nc3RfcmVnaXN0cnlfYXV0b19sb2FkLCBub3QgdXNlZCBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgIHJlbW92ZSBfZ3N0X3JlZ2lzdHJ5X2F1dG9fbG9hZCwgbm90IHVzZWQgYW55bW9yZQoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbWFrZSBfZ2V0X3R5cGUgZnVuY3Rpb25zIHNpbWlsYXIsIGZpeGVzIGRhdGEgZXhwb3J0IGZyb20gbGlicmFyeQoKMjAwNS0xMC0xNSAxNjoxNjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIEknbSB0b28gbGF6eSB0byBjb21tZW50IHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGd0ay1kb2MgaW5zaXN0cyBvbiBpbnNlcnRpbmcgPFBBUkE+IGF0IGV2ZXJ5IGVtcHR5IGxpbmUsIHNpZ2gKCjIwMDUtMTAtMTUgMTY6MDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cml0eXBlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgdmFyaW91cyBzdHlsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBzdHlsZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1Mzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZGlyZW50LmM6CgkqIHdpbjMyL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2d0Y2hhci5oOgoJKiB3aW4zMi9tbWFuLmg6CgkqIHdpbjMyL3ZzNy9tbWFuLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9nc3Ric3Rlc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3QxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0ZmlsZTE6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vcGFkX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2NoYWlubm9wdWxsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2dldG5vcHVzaC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWdpc3RyeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWdpc3RyeS9nc3QtcHJpbnQtZm9ybWF0cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzcxMy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODE5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQtMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL2dyb3VwX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3F1ZXVlX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3JlbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91bnJlZi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdXNlbGVzc19pdGVyYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2dzdGJzdGVzdC5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0MS5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0ZmlsZTE6CgkqIHRlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMS5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMi5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMy5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNC5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNS5jOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vcGFkX2xpbmsuYzoKCSogdGVzdHN1aXRlL3BhZC9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BhZC9jaGFpbm5vcHVsbC5jOgoJKiB0ZXN0c3VpdGUvcGFkL2dldG5vcHVzaC5jOgoJKiB0ZXN0c3VpdGUvcGFkL2xpbmsuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzdWl0ZS9yZWdpc3RyeS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3JlZ2lzdHJ5L2dzdC1wcmludC1mb3JtYXRzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzctMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzcuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3NzEzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzgxOS5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQtMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL2dyb3VwX2xpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvcXVldWVfbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9yZWxpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VucmVmLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VzZWxlc3NfaXRlcmF0aW9uLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cyB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1MjowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNvcnJlY3RseSBtYWtlIGNvbmRpdGlvbmFscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNvcnJlY3RseSBtYWtlIGNvbmRpdGlvbmFscwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZml4IHR5cG8gY2F1c2luZyBmZHNyYyBub3QgdG8gYnVpbGQKCjIwMDUtMTAtMTUgMTU6MzA6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6MDE6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjaGVjayBmb3Igc29tZSBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY2hlY2sgZm9yIHNvbWUgaGVhZGVycwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZG9uJ3QgY29tcGlsZSBmZHNyYyB3aXRob3V0IHN5cy9zb2NrZXQuaAoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgZG9uJ3QgY29tcGlsZSBmaWxlaW5kZXggd2l0aG91dCBtbWFwCgoyMDA1LTEwLTE1IDEzOjU4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogcmVvcmdhbml6ZSBjbGVhbiB1cCBkb2N1bWVudCBtb3JlIHJlbW92ZSBjcnVmdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlb3JnYW5pemUKCSAgY2xlYW4gdXAKCSAgZG9jdW1lbnQgbW9yZQoJICByZW1vdmUgY3J1ZnQKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKToKCSAgY29tcGlsZSBmaXhlcywgdGhvdWdoIGl0J3Mgbm90IGJlaW5nIGNvbXBpbGVkIGN1cnJlbnRseQoKMjAwNS0xMC0xNSAxMzoyNDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGNsZWFuIHVwIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBwYyBmaWxlcwoKMjAwNS0xMC0xNSAxMjowMzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkaXIKCjIwMDUtMTAtMTUgMTA6MzQ6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZGlyZWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGlyZWN0b3J5CgoyMDA1LTEwLTE1IDAwOjIyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjIwOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoKMjAwNS0xMC0xNSAwMDoxNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoKMjAwNS0xMC0xNSAwMDoxMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBzaWduZWRuZXNzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzIGZpeGVzCgoyMDA1LTEwLTE0IDE3OjAxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdHRhZy5jOiBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIHRoZSBuZXcgdGFnbGlzdCBkYXRlIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHRhZy5jOiAodGVzdF9kYXRlX3RhZ3MpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgdGhlIG5ldyB0YWdsaXN0IGRhdGUgQVBJLgoKMjAwNS0xMC0xNCAxNDoxMDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy86IEJlYXV0aWZ5ICdsYXN0LW1lc3NhZ2UnIG91dHB1dDogcHJpbnQgJ25vbmUnIGZvciBidWZmZXIgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIGlmIG5vbmUgaXMgc2V0OyBpbXByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEJlYXV0aWZ5ICdsYXN0LW1lc3NhZ2UnIG91dHB1dDogcHJpbnQgJ25vbmUnIGZvciBidWZmZXIgdGltZXN0YW1wcwoJICBhbmQgZHVyYXRpb25zIGlmIG5vbmUgaXMgc2V0OyBpbXByb3ZlIGFsaWdubWVudCB3aXRoIG5leHQgbWVzc2FnZXMuCgoyMDA1LTEwLTE0IDExOjA5OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEkgdG8gY2hlY2sgcGx1Z2luIGZlYXR1cmUgdmVyc2lvbiByZXF1aXJlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfY2hlY2tfdmVyc2lvbik6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9kZWZhdWx0X3JlZ2lzdHJ5X2NoZWNrX2ZlYXR1cmVfdmVyc2lvbik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gY2hlY2sgcGx1Z2luIGZlYXR1cmUgdmVyc2lvbiByZXF1aXJlbWVudHMuCgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAodGVzdF92ZXJzaW9uX2NoZWNrcyksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgU29tZSBiYXNpYyB0ZXN0cyBmb3IgdGhlIGFib3ZlLgoKMjAwNS0xMC0xMyAyMToyNzo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IGd1YXJkIGFnYWluc3QgTlVMTCBwcmludGYgLSBoYXBwZW5zIHdoZW4gZm9yIGV4YW1wbGUgYSBtZXNzYWdlIHN0cnVjdHVyZSB3aXRoIEdzdENsb2NrIGdldHMgc2VyaWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpOgoJICBndWFyZCBhZ2FpbnN0IE5VTEwgcHJpbnRmIC0gaGFwcGVucyB3aGVuIGZvciBleGFtcGxlCgkgIGEgbWVzc2FnZSBzdHJ1Y3R1cmUgd2l0aCBHc3RDbG9jayBnZXRzIHNlcmlhbGl6ZWQKCjIwMDUtMTAtMTMgMTg6MzM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGaXggcHJlc3VtYWJsZSBjb3B5J24ncGFzdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZXZlbnQpOgoJICBGaXggcHJlc3VtYWJsZSBjb3B5J24ncGFzdG8uCgoyMDA1LTEwLTEzIDE3OjUxOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBhZGQgY29ycmVjdCBoZWFkZXIgZm9yIFdJTjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY29ycmVjdCBoZWFkZXIgZm9yIFdJTjMyCgoyMDA1LTEwLTEzIDE3OjQzOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9lbGVtZW50cy86IGZpeCBzb21lIHNpZ25lZG5lc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGZpeCBzb21lIHNpZ25lZG5lc3MKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgSSB3b25kZXIgaWYgdGhpcyBjb3VsZCBhY3R1YWxseSB3cml0ZSArMkdCIGZpbGVzIGJlZm9yZQoKMjAwNS0xMC0xMyAxNzoyNDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIGFuIGV4cG9ydAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFuIGV4cG9ydAoKMjAwNS0xMC0xMyAxNzoyMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBpbmNsdWRlIGhlYWRlciBjb3JyZWN0bHk7IHNob3cgbWUgdGhlIG5hbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluY2x1ZGUgaGVhZGVyIGNvcnJlY3RseTsgc2hvdyBtZSB0aGUgbmFtZQoKMjAwNS0xMC0xMyAxNjozNDowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBmb28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvbwoKMjAwNS0xMC0xMyAxNjoyNjoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwcyk6IEZpeCBUaW1tZWtlIFdheW1hbnMgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKToKCSAgRml4IFRpbW1la2UgV2F5bWFucyBidWcuCgkgIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCk6IE1ha2Ugc3VyZSB3ZSBwYXNzIGEgTlVMLXRlcm1pbmF0ZWQKCSAgc3RyaW5nIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIHRvIGdzdF9jYXBzX2Zyb21fc3RyaW5nLiBUaGVyZSdzIGEKCSAgcG90ZW50aWFsIGZvciwgYmVmb3JlIHRoaXMgZml4LCB0aGF0IHRoaXMgY291bGQgY2F1c2Ugc29tZW9uZQoJICBjb25uZWN0aW5nIG92ZXIgdGhlIG5ldHdvcmsgdG8gY2F1c2UgYSBzZWdmYXVsdCBpZiB0aGUgcGF5bG9hZCBpcwoJICBub3QgTlVMLXRlcm1pbmF0ZWQuCgoyMDA1LTEwLTEzIDE1OjI3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXhlZCB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvcmFuZG9tL1RPRE8tcHJlLTAuOToKCSAgKiBkb2NzL3JhbmRvbS9vbGQvQ2hhbmdlTG9nLmdzdHJlYW1lcjoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIGZpeGVkIHR5cG9zCgoyMDA1LTEwLTEzIDE1OjIzOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IEdMaWIgMi42IGdfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlIGhhcyBhIGJ1ZyB0aGF0IHRyaWdnZXJzIGFuIGluZmluaXRlIGxvb3AKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnc3RfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlKToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2RvdWJsZSksIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgR0xpYiAyLjYgZ19mbGFnc19nZXRfZmlyc3RfdmFsdWUgaGFzIGEgYnVnIHRoYXQgdHJpZ2dlcnMgYW4KCSAgaW5maW5pdGUgbG9vcAoKMjAwNS0xMC0xMyAxNToyMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCB1cCBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIGZpeCB1cCBkZWJ1Z2dpbmcKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgcHJpbnQgb3V0IGNsb2NrIG5pY2VseQoKMjAwNS0xMC0xMyAxNToxMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZGVkIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSgpIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKSwgKGdzdF90YWdfbGlzdF9nZXRfZGF0ZSksCgkgIChnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgpOgoJICBBZGRlZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUoKSBhbmQgZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KCkuCgkgIEdTVF9UQUdfREFURSBub3cgaGFzIGEgdGFnIHR5cGUgb2YgR1NUX1RZUEVfREFURSAoIzE3MDc3NykuCgoyMDA1LTEwLTEzIDE0OjU1OjE3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBuZXdzZWdtZW50IGFuZCBzdG9yZSBpbmZvcm1hdGlvbnMgaW4gQ29sbGVjdERhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBuZXdzZWdtZW50IGFuZCBzdG9yZQoJICBpbmZvcm1hdGlvbnMKCSAgaW4gQ29sbGVjdERhdGEuCgoyMDA1LTEwLTEzIDA5OjU3OjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXggR09wdGlvbiBjb250ZXh0IGxlYWtzIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBmaXggR09wdGlvbiBjb250ZXh0IGxlYWtzCgkgIGRvYyBmaXhlcwoKMjAwNS0xMC0xMiAyMjozNDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0YnVzLmM6IHVzZSBIQVZFX1VOSVNURF9ICgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgdXNlIEhBVkVfVU5JU1REX0gKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgdXBkYXRlIHZzNiBmaWxlcwoKMjAwNS0xMC0xMiAyMjowMDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGhhZCBhIGZldyB0b28gbWFueSAwRCBieXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGFkIGEgZmV3IHRvbyBtYW55IDBEIGJ5dGVzCgoyMDA1LTEwLTEyIDIxOjU2OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IG1vcmUgZ3VpbnQ2NDwtPmdkb3VibGUgY29udmVyc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgZml4IG1vcmUgZ3VpbnQ2NDwtPmdkb3VibGUgY29udmVyc2lvbnMKCjIwMDUtMTAtMTIgMjA6MjM6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGFkZCB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBhZGQgd2luMzItdXBkYXRlIHRhcmdldAoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGFkZCBmaWxlcyB0aGF0IHZpc3VhbCBzdHVkaW8gY2FuJ3QgZ2VuZXJhdGUKCjIwMDUtMTAtMTIgMTk6Mzg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBQcm90ZWN0IGZsYWdzIHdpdGggcHJvcGVyIGxvY2suIHVucmVmIHByb3ZpZGVkIGNhY2hlZCBjbG9jayBpbiBkaXNwb3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAocmVzZXRfZGVncmVlKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgUHJvdGVjdCBmbGFncyB3aXRoIHByb3BlciBsb2NrLgoJICB1bnJlZiBwcm92aWRlZCBjYWNoZWQgY2xvY2sgaW4gZGlzcG9zZS4KCjIwMDUtMTAtMTIgMTk6MTQ6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBsYXlvdXQgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGF5b3V0IGNsZWFudXAKCjIwMDUtMTAtMTIgMTk6MTA6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbW92ZWQgdW51c2VkIGZsYWdzIGZyb20gbWluaW9iamVjdCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOiAoZ3N0X21pbmlfb2JqZWN0X2ZsYWdzX2dldF90eXBlKToKCSAgcmVtb3ZlZCB1bnVzZWQgZmxhZ3MgZnJvbSBtaW5pb2JqZWN0CgkgIGRvYyBmaXhlcwoKMjAwNS0xMC0xMiAxODowMzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIGNvbnZlcnQgdG8gdW5peCBsaW5lIGVuZHM7IHNpbmNlIHRoZSBzb3VyY2UgaXMgYWxzbyB1bml4LXN0eWxlIGxpbmUgZW5kcywgZGV2ZWxvcGVycyBkb24ndCBuZWVkIHRvIGZpZGRsZSBhbmQgc3BlY2lhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29udmVydCB0byB1bml4IGxpbmUgZW5kczsgc2luY2UgdGhlIHNvdXJjZSBpcyBhbHNvIHVuaXgtc3R5bGUgbGluZSBlbmRzLCBkZXZlbG9wZXJzIGRvbid0IG5lZWQgdG8gZmlkZGxlIGFuZCBzcGVjaWFsLWNhc2UsIGJ1dCBjYW4ganVzdCBhbGxvdyB0cmFuc2xhdGlvbiBvbiB0aGUgZmx5CgoyMDA1LTEwLTEyIDE2OjAzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEZsdXNoIGJlZm9yZSBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRmx1c2ggYmVmb3JlIHNlZWtpbmcuCgoyMDA1LTEwLTEyIDE1OjU4OjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKGdzdF9pbml0X2NoZWNrKTogSWdub3JlIHVua25vd24gb3B0aW9ucywgYXMgaGFzIGFsd2F5cyBiZWVuIHRoZSBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKGdzdF9pbml0X2NoZWNrKTogSWdub3JlIHVua25vd24gb3B0aW9ucywgYXMgaGFzCgkgIGFsd2F5cyBiZWVuIHRoZSBjYXNlLgoKMjAwNS0xMC0xMiAxNDoyODozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfc3RvcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoYmluX2VsZW1lbnRfaXNfc2luayksIChyZXNldF9kZWdyZWUpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2lzX2xvY2tlZF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9zaW5rKSwKCSAgKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLCAoZ3N0X3BhZF9pc19ibG9ja2VkKSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKSwgKGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgICogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzogKGdzdF9mcF9zaW5rX2luaXQpOgoJICAqIHRlc3RzdWl0ZS9wYWQvbGluay5jOiAoZ3N0X3Rlc3Rfc3JjX2luaXQpLAoJICAoZ3N0X3Rlc3RfZmlsdGVyX2luaXQpLCAoZ3N0X3Rlc3Rfc2lua19pbml0KToKCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOiAobWFpbik6CgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTCgkgIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgoyMDA1LTEwLTEyIDE0OjEyOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTEwLTEyIDEyOjU4OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBTb21lIGRvYyB1cGRhdGVzLgoJICBSZXZlcnQgbm9uLWludGVudGlvbmFsIGNoYW5nZS4KCjIwMDUtMTAtMTIgMTI6MTg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVc2UgR3N0Q2xvY2tUaW1lIGluIF9nZXRfc3RhdGUoKSBpbnN0ZWFkIG9mIEdUaW1lVmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKHRlc3RfZXZlbnQpOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgVXNlIEdzdENsb2NrVGltZSBpbiBfZ2V0X3N0YXRlKCkgaW5zdGVhZCBvZiBHVGltZVZhbC4KCSAgUmVtb3ZlIG9sZCBjb2RlIGluIGdzdHV0aWxzLmMKCjIwMDUtMTAtMTIgMTE6NDk6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9wYXVzZV90YXNrKTogQWN0dWFsbHkgcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGlzIG5vIHRhc2suIFNob3VsZG4ndCBhZmZlY3QgYW55IGNvZGUsIGFzIG5vdGhpbmcgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcGF1c2VfdGFzayk6IEFjdHVhbGx5IHJldHVybiBGQUxTRSBpZgoJICB0aGVyZSBpcyBubyB0YXNrLiBTaG91bGRuJ3QgYWZmZWN0IGFueSBjb2RlLCBhcyBub3RoaW5nIGluIG91cgoJICBwbHVnaW5zIGNoZWNrcyB0aGlzIHJldHVybiB2YWx1ZS4KCSAgKGdzdF9wYWRfc3RvcF90YXNrKTogQWxzbyB0YWtlIHRoZSBzdHJlYW0gbG9jayBpZiB0aGUgcGFkIGhhcyBubwoJICB0YXNrLiBEb2NzIHVwZGF0ZWQuCgoyMDA1LTEwLTEyIDEwOjA1OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDbGVhbnVwIGFjdGl2YXRpb24gY29kZS4gUmVzZXQgb2xkIHN0YXRlIGlmIGFjdGl2YXRpb24gZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpLCAocG9zdF9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKToKCSAgQ2xlYW51cCBhY3RpdmF0aW9uIGNvZGUuIFJlc2V0IG9sZCBzdGF0ZSBpZgoJICBhY3RpdmF0aW9uIGZhaWxlZC4KCjIwMDUtMTAtMTIgMDk6MDI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBObyBuZWVkIHRvIHByZXJvbCBhZnRlciByZWNlaXZpbmcgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTm8gbmVlZCB0byBwcmVyb2wgYWZ0ZXIgcmVjZWl2aW5nIEVPUy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZXZlbnRfaGFuZGxlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpOgoJICBQcmludCBldmVudHMgbW9yZSB2ZXJib3NlbHkuCgoyMDA1LTEwLTEyIDA4OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBNb3ZlZCBzaW5rczIgdGVzdGNvZGUgaW4gc2lua3MgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzMi5jOgoJICBNb3ZlZCBzaW5rczIgdGVzdGNvZGUgaW4gc2lua3MgY2hlY2suCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiB3aGVuIF9nZXRfc3RhdGUoKSBpdGVyYXRlZCBvdmVyIGFuCgkgIEFTWU5DIGVsZW1lbnQgcmlnaHQgYmVmb3JlIGl0IHBvc3RlZCBhIHN0YXRlIGNvbXBsZXRpb24uCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvIHByb3BlciBjYXN0IGhlcmUuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICBBIHBsYXliYWNrIHJhdGUgb2YgMC4wIGlzIG5vdCBhbGxvd2VkLgoKMjAwNS0xMC0xMiAwMjoyNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MjU6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjIzOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoxOTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MTY6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTExIDE4OjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyLzogVmlzdWFsIFN0dWRpbyA2IHByb2plY3QgZmlsZXMsIGFuZCBhIG5ldyBjb21tb24gZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOiAoX3RvcGVuZGlyKSwgKF90cmVhZGRpciksIChfdGNsb3NlZGlyKSwKCSAgKF90cmV3aW5kZGlyKSwgKF90dGVsbGRpciksIChfdHNlZWtkaXIpOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3RjaGFyLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVmlzdWFsIFN0dWRpbyA2IHByb2plY3QgZmlsZXMsIGFuZCBhIG5ldyBjb21tb24gZGlyZWN0b3J5LgoJICBQaGVhci4KCjIwMDUtMTAtMTEgMTc6MzM6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGZvcmdvdCB0aGlzIG9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9yZ290IHRoaXMgb25lCgoyMDA1LTEwLTExIDE3OjMyOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQ29ycmVjdGx5IHBhcnNlIG5ld3NlZ21lbnQgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQ29ycmVjdGx5IHBhcnNlIG5ld3NlZ21lbnQgaW5mby4KCjIwMDUtMTAtMTEgMTY6NTQ6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBzcGxpdCBwbHVnaW4gcGF0aHMgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHNwbGl0IHBsdWdpbiBwYXRocyBjb3JyZWN0bHkKCjIwMDUtMTAtMTEgMTY6Mjg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBleHRyYSBmbGFnIHRvIG5ld3NlZ21lbnQgZm9yIGZ1dHVyZSBBUEkgZnJlZXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGRlZCBleHRyYSBmbGFnIHRvIG5ld3NlZ21lbnQgZm9yIGZ1dHVyZSBBUEkgZnJlZXplLgoJICBVcGRhdGVkIGNoZWNrIGFuZCBiYXNlIGVsZW1lbnRzLgoKMjAwNS0xMC0xMSAxNjoyNTozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCjIwMDUtMTAtMTEgMTY6MjE6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIG1vcmUgc3RyIG51bGwgcHJvdGVjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBzdHIgbnVsbCBwcm90ZWN0aW9uCgoyMDA1LTEwLTExIDE2OjA1OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QtaTE4bi1saWIuaDogY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKToKCSAgcHJvdGVjdCBwb3NzaWJseSBOVUxMIHN0cmluZ3MKCSAgKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgY29uZmlnLmggYWxyZWFkeSBpbmNsdWRlZCBiZWZvcmUKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgIHN5cy93YWl0LmggYWxzbyBkb2VzbrR0IGV4aXN0IG9uIG1pbmd3LCBzbyBjaGFuZ2UgdGhlIGlmZGVmIGNoZWNrCgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgIFRoaXMgY29tbWl0IGJyb3VnaHQgdG8geW91IGZyb20gbXN5cy9taW5ndwoKMjAwNS0xMC0xMSAxNToyNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGlmIHdlIGRvbid0IGhhdmUgZ2xpYiwgZmFpbCBiZWZvcmUgdGVzdGluZyAyLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBpZiB3ZSBkb24ndCBoYXZlIGdsaWIsIGZhaWwgYmVmb3JlIHRlc3RpbmcgMi44CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIGZpeCBhIGxlYWssIHNob3VsZCBmaXggcGx1Z2lucy1iYXNlIHRlc3RzdWl0ZQoKMjAwNS0xMC0xMSAxNToyMzoxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChwcmVfYWN0aXZhdGUpOiBSZW5hbWVkIGZyb20gcHJlX2FjdGl2YXRlX3N3aXRjaCwgdGFrZSB0aGUgbW9kZSB3ZSdyZSBnb2luZyB0byBhcyBhbiBhcmcuIEdvIGhlYWQgYW5kIHNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAocHJlX2FjdGl2YXRlKTogUmVuYW1lZCBmcm9tIHByZV9hY3RpdmF0ZV9zd2l0Y2gsCgkgIHRha2UgdGhlIG1vZGUgd2UncmUgZ29pbmcgdG8gYXMgYW4gYXJnLiBHbyBoZWFkIGFuZCBzZXQgdGhlIG1vZGUKCSAgYW5kIGZsdXNoaW5nIGZsYWdzIG5vdywgc28gdGhhdCBpZiB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gc3RhcnRzIGEKCSAgdGhyZWFkIGFsbCB0aGUgZmxhZ3Mgd2lsbCBiZSBpbiB0aGUgcmlnaHQgc3RhdGUuCgkgIChwb3N0X2FjdGl2YXRlKTogUmVuYW1lZCBhbHNvLiBKdXN0IGhhbmRsZSBtYWtpbmcgc3VyZSBzdHJlYW1pbmcKCSAgZmluaXNoZXMgZm9yIHRoZSBkZWFjdGl2YXRpb24gY2FzZSwgYW5kIHNldHRpbmcgdGhlIGRlYWN0aXZhdGVkCgkgIG1vZGUuCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDb21wbGFpbiBsb3VkbHkgaWYgZGVhY3RpdmF0aW9uIGZhaWxzLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogQWRhcHQgdG8gcHJlL3Bvc3RfYWN0aXZhdGUgY2hhbmdlcy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IEFkYXB0IHRvIHByZS9wb3N0X2FjdGl2YXRlIGNoYW5nZXMsCgkgIHJlbW92ZSB0aGUgdGVycmlibGUgaGFjay4KCjIwMDUtMTAtMTEgMTU6MDU6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFByZXBhcmUgdG8gbWFrZSBjdXJyZW50IEVPUyBtZXNzYWdlIHF1ZXVlIG1vcmUgZ2VuZXJpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFByZXBhcmUgdG8gbWFrZSBjdXJyZW50IEVPUyBtZXNzYWdlIHF1ZXVlIG1vcmUgZ2VuZXJpYy4KCSAgRml4IHNvbWUgdHlwb3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBSZW5hbWUgYmFzZSB0byBzdHJlYW1fdGltZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwNS0xMC0xMSAxMjo1ODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogV29yayBvbiBwcm9wZXIgY2xvY2sgc2VsZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFdvcmsgb24gcHJvcGVyIGNsb2NrIHNlbGVjdGlvbi4KCjIwMDUtMTAtMTEgMTI6NDI6MjMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuKjogQWRkZWQgR0xpc3QqIHZlcnNpb24gb2YgX3JlbW92ZV9wcm9wZXJ0aWVzKCkgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byB3cmFwIGl0IGluIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc19saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQWRkZWQgR0xpc3QqIHZlcnNpb24gb2YgX3JlbW92ZV9wcm9wZXJ0aWVzKCkgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byB3cmFwCgkgIGl0IGluIGJpbmRpbmdzLgoKMjAwNS0xMC0xMSAxMTowODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIERvYyB1cGRhdGVzLiBEb24ndCBkaXN0cmlidXRlIHRoZSBzYW1lIGNsb2NrIG92ZXIgYW5kIG92ZXIgYWdhaW4uCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9mbG93X2dldF9uYW1lKSwgKGdzdF9mbG93X3RvX3F1YXJrKSwKCSAgKGdzdF9wYWRfZ2V0X3R5cGUpLCAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTWFrZSBwcm9iZSBlbWlzc2lvbiB0aHJlYWRzYWZlIGFnYWluLgoJICBSZWdpc3RlciBxdWFya3MgYW5kIG1vdmUgX2dldF9uYW1lKCkgZnJvbSB1dGlscy4KCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBPbmx5IHJlZGlzdHJpYnV0ZSB0aGUgY2xvY2sgb2YgaXQgY2hhbmdlZC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1vdmVkIHRoZSBfZmxvd19nZXRfbmFtZSgpIHRvIEdzdFBhZC4KCjIwMDUtMTAtMTEgMDk6MTQ6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGlmIHdlIGxvZyBvdXIgaW5pdCwgc2hvdWxkIGFsc28gbG9nIGZpbmFsaXplCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZiB3ZSBsb2cgb3VyIGluaXQsIHNob3VsZCBhbHNvIGxvZyBmaW5hbGl6ZQoKMjAwNS0xMC0xMCAyMzo1NTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjb21tb246CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgZml4IG1vcmUgdmFsZ3JpbmQgd2FybmluZ3MgYmVmb3JlIHR1cm5pbmcgdXAgdGhlIGhlYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBtb3JlIHZhbGdyaW5kIHdhcm5pbmdzIGJlZm9yZSB0dXJuaW5nIHVwIHRoZSBoZWF0CgoyMDA1LTEwLTEwIDIzOjExOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGRvbid0IGRlY2xhcmUgb24gdGhlIHByb3BlciBkZWZpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGRlY2xhcmUgb24gdGhlIHByb3BlciBkZWZpbmUKCjIwMDUtMTAtMTAgMjI6NTk6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgdW5tYW5nbGUgdGhlIG5lc3RpbmcgYSBsaXR0bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVubWFuZ2xlIHRoZSBuZXN0aW5nIGEgbGl0dGxlCgoyMDA1LTEwLTEwIDIyOjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IHNvbWUgY2xlYW51cCBiZWZvcmUgdGhlIGhhY2tpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgc29tZSBjbGVhbnVwIGJlZm9yZSB0aGUgaGFja2luZwoKMjAwNS0xMC0xMCAxODoxNjozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHVzZSBjb252ZXJzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICB1c2UgY29udmVyc2lvbnMKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9ndWludDY0X3RvX2dkb3VibGUpLAoJICAoZ3N0X2dkb3VibGVfdG9fZ3VpbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBleHRlcm5hbGl6ZSwgYmFzZXNyYyB1c2VzIGl0CgkgIG9idmlvdXNseSB0aGUgaW1wbGVtZW50YXRpb24gbmVlZHMgdGVzdGluZwoKMjAwNS0xMC0xMCAxNzowNTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCjIwMDUtMTAtMTAgMTY6NDU6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgoyMDA1LTEwLTEwIDE2OjQzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvc2NoZWQvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9zY2hlZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9zY2hlZC9zb3J0LmM6IChtYWtlX3BpcGVsaW5lMSksIChtYWtlX3BpcGVsaW5lMiksCgkgIChtYWtlX3BpcGVsaW5lMyksIChtYWtlX3BpcGVsaW5lNCksIChwcmludF9lbGVtKSwgKG1haW4pOgoKMjAwNS0xMC0xMCAxNjozODo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogYXBwYXJlbnRseSBjb252ZXJ0aW5nIGZyb20gZ3VpbnQ2NCB0byBkb3VibGUgaXMgbm90IGltcGxlbWVudGVkIG9uIE1TVkMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChndWludDY0X3RvX2dkb3VibGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKToKCSAgYXBwYXJlbnRseSBjb252ZXJ0aW5nIGZyb20gZ3VpbnQ2NCB0byBkb3VibGUgaXMgbm90IGltcGxlbWVudGVkCgkgIG9uIE1TVkMKCjIwMDUtMTAtMTAgMTY6Mzg6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IENoZWNrIGZpeGVzLCB1c2UgQVBJIGFzIHN0YXRlZCBpbiBkZXNpZ24gZG9jcywgcmVtb3ZlIGhhY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzMi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSksCgkgIChtYWluKToKCSAgQ2hlY2sgZml4ZXMsIHVzZSBBUEkgYXMgc3RhdGVkIGluIGRlc2lnbiBkb2NzLCByZW1vdmUgaGFja3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIENhdGNoIHN0b3BwaW5nIG91ciB0YXNrIHdoaWxlIHdlJ3JlIHNodXR0aW5nIGRvd24uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTmV3IHN0YXRlIGNoYW5nZSBhbGdvcml0aG0gKHNlZSAjMzE4MTE2KQoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgUmVtb3ZlIGNydWRlIHN0YXRlIGNoYW5nZSBoYWNrcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIGNydWRlIGhhY2tzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBGaXhlcyBmb3Igc3RhdGUgY2hhbmdlLiBOZWVkcyBzb21lIG1vcmUgd29yayB0byBmdWxseSB1c2UgdGhlCgkgIG5ldyBzdHVmZi4KCjIwMDUtMTAtMTAgMTY6MjA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL01ha2VmaWxlLmFtIChub2luc3RfUFJPR1JBTVMpOiBObyBtb3JlIGluaXQuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvTWFrZWZpbGUuYW0gKG5vaW5zdF9QUk9HUkFNUyk6IE5vIG1vcmUgaW5pdC5jLgoKMjAwNS0xMC0xMCAxNjowNDoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChHX09QVElPTl9GTEFHX05PX0FSRyk6IEFwcGFyZW50bHkgR0xpYiAyLjggcmVxdWlyZXMgdGhpcyBmbGFnLCBidXQgaXQncyBub3QgZXZlbiBpbiBHTGliIDIuNi4gT2RkLiBIYWNrIGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAoR19PUFRJT05fRkxBR19OT19BUkcpOiBBcHBhcmVudGx5IEdMaWIgMi44IHJlcXVpcmVzCgkgIHRoaXMgZmxhZywgYnV0IGl0J3Mgbm90IGV2ZW4gaW4gR0xpYiAyLjYuIE9kZC4gSGFjayBhcm91bmQgdGhlCgkgIGlzc3VlLgoKMjAwNS0xMC0xMCAxNTo1ODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBGaXggbXkgcHJldmlvdXMgY29tbWl0OiBHVHlwZXMgcGFzc2VkIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBjYW4gYmUgZnVuZGFtZW50YWwgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX25ldyk6CgkgIEZpeCBteSBwcmV2aW91cyBjb21taXQ6IEdUeXBlcyBwYXNzZWQgdG8gZ3N0X2l0ZXJhdG9yX25ldygpCgkgIGNhbiBiZSBmdW5kYW1lbnRhbCB0eXBlcy4KCjIwMDUtMTAtMTAgMTU6NTU6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2Ugc3JjL3NpbmsgcGFkcyBsaXN0cyBmb3IgdGhlIHJlc3BlY3RpdmUgaXRlcmF0b3JzIGluc3RlYWQgb2YgZmlsdGVyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRfbGlzdCksCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMpLCAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcyksCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3NpbmtfcGFkcyk6CgkgIFVzZSBzcmMvc2luayBwYWRzIGxpc3RzIGZvciB0aGUgcmVzcGVjdGl2ZSBpdGVyYXRvcnMgaW5zdGVhZAoJICBvZiBmaWx0ZXJpbmcuCgoyMDA1LTEwLTEwIDE1OjUzOjU5ICswMDAwICBSb25hbGQgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIE1lcmdlZCBpbiBwb3B0IHJlbW92YWwgKyBHT3B0aW9uIGFkZGl0aW9uIHBhdGNoIGZyb20gUm9uYWxkLCBidWcgIzE2OTc3Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIE1lcmdlZCBpbiBwb3B0IHJlbW92YWwgKyBHT3B0aW9uIGFkZGl0aW9uIHBhdGNoIGZyb20gUm9uYWxkLCBidWcKCSAgIzE2OTc3Mi4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgU1RBVEVfKFVOKUxPQ0tfRlVMTCwgbW92ZQoJICBHc3RFbGVtZW50IG1hY3JvcyBhcm91bmQsIHJlbW92ZSBwb3B0LXJlbGF0ZWQgc3ltYm9scywgYWRkIGdvcHRpb24KCSAgc3R1ZmYuCgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgcG9wdCBjaGVja3MsIHJlcXVpcmUgR0xpYiAyLjYgZm9yIEdPcHRpb24uCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOiBObyBQT1BUX0NGTEFHUy4KCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOiBEb2MgdXBkYXRlcyB3aXRoIGFuIGV4YW1wbGUuCgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChnc3RfaW5pdCksIChwYXJzZV9vbmVfb3B0aW9uKSwgKHBhcnNlX2dvcHRpb25fYXJnKToKCSAgKiBnc3QvZ3N0Lmg6IFJlbW92ZWQgZ3N0X2luaXRfd2l0aF9wb3B0X3RhYmxlIGFuZCBmcmllbmRzLiBUb29rIGEKCSAgYml0IG9mIGhhbmQgbWVyZ2luZyBhbmQgZGVidWdnaW5nIHRvIGdldCB0aGUgR09wdGlvbiBzdHVmZiB3b3JraW5nCgkgIHRoby4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOiBUaGFua3MgUm9uYWxkIQoKMjAwNS0xMC0xMCAxNTozMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBBZGQgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgcGFzc2VkIEdUeXBlIGlzIGxpa2VseSB0byByZWFsbHkgYmUgYSBHVHlwZSAoYXMgdGhlIGNvbXBpbGVyIHdvbid0IGNhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9uZXcpOgoJICBBZGQgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgcGFzc2VkIEdUeXBlIGlzIGxpa2VseSB0byByZWFsbHkKCSAgYmUgYSBHVHlwZSAoYXMgdGhlIGNvbXBpbGVyIHdvbid0IGNhdGNoIGl0IGlmIHRoZSBzaXplIGFuZAoJICBHVHlwZSBhcmd1bWVudHMgZ2V0IG1peGVkIHVwLCBzZWUgIzMxODQ0NykuCgoyMDA1LTEwLTEwIDE1OjI3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBQYXNzIEdUeXBlIGFuZCBzaXplIGFyZ3VtZW50cyB0byBnc3RfaXRlcmF0b3JfbmV3KCkgaW4gdGhlIHJpZ2h0IG9yZGVyIChtYXliZSB3ZSBzaG91bGQgbWFrZSBfbmV3KCkgdGFrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICBQYXNzIEdUeXBlIGFuZCBzaXplIGFyZ3VtZW50cyB0byBnc3RfaXRlcmF0b3JfbmV3KCkgaW4gdGhlIHJpZ2h0CgkgIG9yZGVyIChtYXliZSB3ZSBzaG91bGQgbWFrZSBfbmV3KCkgdGFrZSB0aGUgR1R5cGUgYXMgZmlyc3QgYXJndW1lbnQKCSAganVzdCBsaWtlIF9uZXdfbGlzdCgpPykgKCMzMTg0NDcpLgoKMjAwNS0xMC0xMCAxNToxNzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEFuZCBmcmVlIHRoZSBHU3RhdGljUmVjTXV0ZXggdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9maW5hbGl6ZSk6CgkgIEFuZCBmcmVlIHRoZSBHU3RhdGljUmVjTXV0ZXggdG9vCgoyMDA1LTEwLTEwIDE0OjMzOjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9HU3RyZWFtZXIudmNwcm9qOgoJICBkb24ndCBlY2hvIHBhdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGVjaG8gcGF0aAoKMjAwNS0xMC0xMCAxNDozMzoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaW5pdCwgZ3N0X2VsZW1lbnRfZmluYWxpemUpOiBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgbXV0ZXggcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2luaXQsIGdzdF9lbGVtZW50X2ZpbmFsaXplKToKCSAgQWxsb2NhdGUgYW5kIGZyZWUgdGhlIG11dGV4IHByb3Blcmx5LgoJICAqIGdzdC9nc3RlbGVtZW50LmggKEdTVF9TVEFURV9VTkxPQ0tfRlVMTCwgR1NUX1NUQVRFX0xPQ0tfRlVMTCk6CgkgIE5ldyBtYWNyb3MuCgkgIChHc3RFbGVtZW50KTogVGhlIHN0YXRlX2xvY2sgaXMgbm93IHJlY3Vyc2l2ZS4gUmVidWlsZCB5b3VyCgkgIHBsdWdpbnMsIHN1Y2tlcnMuIE9sZCBtYWNyb3MgYWRhcHRlZC4KCjIwMDUtMTAtMTAgMTQ6MjM6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMTAtMTAgMTQ6MjM6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfdGltZWRfd2FpdCkKCSAgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpOiBQb3J0ZWQgZnJvbSBzdGF0ZSBjaGFuZ2VzIHBhdGNoLCB3aGlsZQoJICB3ZSB3YWl0IG9uIGJ1ZyAjMzE3ODAyIHRvIGJlIHNvbHZlZCBpbiBhIHdlbGwtZGlzdHJpYnV0ZWQgR0xpYi4KCjIwMDUtMTAtMTAgMTQ6MTU6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvbGlua19vbGRydW50aW1lLmM6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi92czcvbGlua19vbGRydW50aW1lLmM6CgkgIGFkZCBtb3JlIHdpbjMyIGJ1aWxkIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSB3aW4zMiBidWlsZCBmaWxlcwoKMjAwNS0xMC0xMCAxNDowMzoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlLCB2YXJpYWJsZSBuYW1lIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tCgkgIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSwgdmFyaWFibGUgbmFtZSBjaGFuZ2VzLgoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKTogU3BsaXQgb3V0IG9mIGdzdF9lbGVtZW50X3NldF9zdGF0ZSBpbgoJICBwcmVwYXJhdGlvbiBmb3IgdGhlIHN0YXRlIGNoYW5nZSBtZXJnZS4gRG9lc24ndCBwYXkgYXR0ZW50aW9uIHRvCgkgIHRoZSAndHJhbnNpdGlvbicgYXJndW1lbnQuCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOiBVcGRhdGVzLCBob3BlZnVsbHkgcHVyZWx5IGNvc21ldGljLgoJICAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6IE1ULXNhZmV0eS4gUG9ydGVkIGZyb20gdGhlCgkgIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdldF9zdGF0ZSwgY29zbWV0aWMKCSAgY2hhbmdlcy4KCjIwMDUtMTAtMTAgMTM6NTI6MTggKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgdXBkYXRlcyBmb3IgdGhlIHdpbjMyIGJ1aWxkIChwYXRjaCBmcm9tIFNlYmFzdGllbiBNb3V0dGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvY29uZmlnLmg6CgkgICogd2luMzIvZGlyZW50LmM6IChfdHNlZWtkaXIpOgoJICAqIHdpbjMyL2dzdC1pbnNwZWN0LnZjcHJvajoKCSAgKiB3aW4zMi9nc3QtbGF1bmNoLnZjcHJvajoKCSAgKiB3aW4zMi9nc3Rjb25maWcuaDoKCSAgKiB3aW4zMi9nc3RlbGVtZW50cy52Y3Byb2o6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6IChnc3Rfb2JqZWN0X2ZsYWdzX2dldF90eXBlKToKCSAgKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL21zdmM3MS5zbG46CgkgIHVwZGF0ZXMgZm9yIHRoZSB3aW4zMiBidWlsZCAocGF0Y2ggZnJvbSBTZWJhc3RpZW4gTW91dHRlKQoKMjAwNS0xMC0xMCAxMTo1Mjo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9iaW5fZ2V0X3N0YXRlLCBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbQoJICBnc3RfYmluX2dldF9zdGF0ZSwgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoJICAoYmluX2VsZW1lbnRfaXNfc2luayk6IENvbW1lbnQgdXBkYXRlcy4KCSAgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogUmVtb3ZlIG5lZWRsZXNzIGNhc3QuCgkgIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBEb2MgdXBkYXRlLgoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfYmluX2NoYW5nZV9zdGF0ZSwKCSAgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoKMjAwNS0xMC0xMCAxMTowNDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc3JjX3NpbmspOiBDbGVhbnVwcyBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NyY19zaW5rKTogQ2xlYW51cHMgZnJvbSB0aGUgc3RhdGUKCSAgY2hhbmdlIHBhdGNoLgoJICAodGVzdF9saXZlc3JjX3NpbmspOiBTeW5jIG9uIHRoZSBzdGF0ZS4KCjIwMDUtMTAtMTAgMTA6NTk6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IE1lcmdlIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogTWVyZ2UgZnJvbQoJICB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo1Nzo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1lcmdlIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1lcmdlIGZyb20gdGhlIHN0YXRlCgkgIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NTA6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogTWVyZ2UgaW4gc29tZSBzdHlsZSBmaXhlcyBhbmQgYWRkaXRpb25hbCBjaGVja3MgZnJvbSBXaW0ncyBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogTWVyZ2UgaW4gc29tZSBzdHlsZSBmaXhlcyBhbmQgYWRkaXRpb25hbAoJICBjaGVja3MgZnJvbSBXaW0ncyBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjQzOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBhbHJlYWR5IGluIG91ciBsaXN0IG9mIGNhY2hlZCBidWZmZXJzIGJlZm9yZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBhbHJlYWR5IGluIG91ciBsaXN0IG9mCgkgIGNhY2hlZCBidWZmZXJzIGJlZm9yZSBwdWxsaW5nIGEgbmV3IGJ1ZmZlcjsgYWxzbyBtYWtlIHRoZSBidWZmZXIKCSAgbGlzdCBhIEdTTGlzdC4gU3BlZWRzIHVwIHR5cGVmaW5kaW5nIGJ5IGNhLiA1LTEwJSBhbHRvZ2V0aGVyLgoKMjAwNS0xMC0xMCAwOTo0ODoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBkb2MgdXBkYXRlcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICBkb24ndCB1c2UgbG9uZyBsb25nLCBpdCdzIG5vdCBwb3J0YWJsZS4gIFJlcGxhY2luZyB3aXRoCgkgIGdpbnQ2NCBzZWVtcyB0byB3b3JrOyBsZXQncyBob3BlIG5vIHNrZWxldG9ucyBmYWxsIG91dCBvZiB0aGUgY2xvc2V0LgoKMjAwNS0xMC0xMCAwODo1MTo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgYXV0b2dlbi5zaCAoQ09ORklHVVJFX0RFRl9PUFQpOiBObyBtb3JlIC0tcGx1Z2luLWJ1aWRkaXIsIHlheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBhdXRvZ2VuLnNoIChDT05GSUdVUkVfREVGX09QVCk6IE5vIG1vcmUgLS1wbHVnaW4tYnVpZGRpciwgeWF5CgoyMDA1LTEwLTA5IDIwOjQ5OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MsIGZpeCBjb21waWxhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbW9yZSBkb2NzLCBmaXggY29tcGlsYXRpb24KCjIwMDUtMTAtMDkgMjA6MTk6NDggKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBGaXhlZCBhIGZldyBmb3Jnb3R0ZW4gdmFyaWFibGVzIG9uIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wOSAgUGhpbGlwcGUgS2hhbGFmIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBGaXhlZCBhIGZldyBmb3Jnb3R0ZW4gdmFyaWFibGVzIG9uIHByZXZpb3VzIGNvbW1pdAoKMjAwNS0xMC0wOSAxNzo1OTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEZpeCBldmlsIHR5cGVmaW5kIGNyYXNoZXI6IGdldHJhbmdlKCkgbWlnaHQgcmV0dXJuIGEgc2hvcnQgYnVmZmVyIGF0IHRoZSBlbmQgb2YgYSBmaWxlLC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIEZpeCBldmlsIHR5cGVmaW5kIGNyYXNoZXI6IGdldHJhbmdlKCkgbWlnaHQgcmV0dXJuIGEgc2hvcnQKCSAgYnVmZmVyIGF0IHRoZSBlbmQgb2YgYSBmaWxlLCBidXQgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbXVzdAoJICBlaXRoZXIgcmV0dXJuIHRoZSBmdWxsIGRhdGEgYXMgcmVxdWVzdGVkIG9yIE5VTEwsIGJ1dAoJICBuZXZlciBhIHNob3J0IGJ1ZmZlci4KCjIwMDUtMTAtMDkgMTc6NTM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogZG9uJ3QgdXNlIG5ldywgaXQncyBhIEMrKyBrZXl3b3JkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb24ndCB1c2UgbmV3LCBpdCdzIGEgQysrIGtleXdvcmQKCjIwMDUtMTAtMDkgMTc6MjI6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgb25jZSBpcyBlbm91Z2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9uY2UgaXMgZW5vdWdoCgoyMDA1LTEwLTA4IDE4OjIxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgZG9jcyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgZG9jcyBhbmQgZGVidWcgdXBkYXRlcy4KCjIwMDUtMTAtMDggMTg6MDc6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1vcmUgZG9jcwoKMjAwNS0xMC0wOCAxODowMTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHR5cG9zLCBhZGQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggdHlwb3MsIGFkZCBjb21tZW50cy4KCSAgQ2xlYXIgRU9TIGxpc3Qgd2hlbiBnb2luZyB0byBQQVVTRUQgZnJvbSBhbnkgZGlyZWN0aW9uIGFuZCBkbyBpdAoJICBpbiBhIHRocmVhZHNhZmUgd2F5LgoJICBHZXQgYmFzZSB0aW1lIGluIGEgdGhyZWFkc2FmZSB3YXkgdG9vLgoJICBGaXggY29uZnVzaW5nIGRlYnVnIGluIHRoZSBjaGFuZ2Vfc3RhdGUgZnVuY3Rpb24uCgkgIFZhcmlvdXMgb3RoZXIgbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKToKCSAgRml4IHZlcnkgdmVyYm9zZSBidXMgcG9zdGluZyBjb2RlLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBBUkdfIC0+IFBST1BfIGNsZWFudXAKCjIwMDUtMTAtMDggMTc6MzA6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvIGEgbGVzcyBDUFUgZGVtYW5kaW5nIEVPUyBjaGVjayBiZWNhdXNlIHdlIGNhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIERvIGEgbGVzcyBDUFUgZGVtYW5kaW5nIEVPUyBjaGVjayBiZWNhdXNlIHdlIGNhbi4KCjIwMDUtMTAtMDggMTc6MTc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvOiBJdCdzIGFib3V0IHRpbWUgd2UgYnVtcCB0aGUgdmVyc2lvbiBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSAgSXQncyBhYm91dCB0aW1lIHdlIGJ1bXAgdGhlIHZlcnNpb24gbnVtYmVyLgoJICBTaW5jZSBldmVudCB0eXBlcyBkb24ndCBmaXQgaW4gdGhlIGd1aW50OCBhbnltb3JlIGRlc2NyaWJpbmcKCSAgdGhlIHBheWxvYWQgdHlwZSwgbWFrZSBwYXlsb2FkIHR5cGUgMTYgYml0cyB3aWRlLgoKMjAwNS0xMC0wOCAxNjo0OToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogTWFueSBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgTWFueSBkb2MgdXBkYXRlcy4KCjIwMDUtMTAtMDggMTY6MTM6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogRml4IGV2ZW50IHF1YXJrIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEZpeCBldmVudCBxdWFyayByZWdpc3RyYXRpb24uCgkgIEFkZCBzb21lIHNwYWNlIGJldHdlZW4gZXZlbnRzIHNvIHdlIGNhbiBpbnNlcnQgdGhlbSBpbiB0aGUKCSAgcmlnaHQgZ3JvdXBzLgoKMjAwNS0xMC0wOCAxNDo1NzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJldHRlciBsb2cgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICBCZXR0ZXIgbG9nIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1vcmUgZG9jcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIFJlbW92ZSBvbGQgdW51c2VkIHByb3BlcnRpZXMuCgoyMDA1LTEwLTA4IDE0OjQ4OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsb3RzIG9mIG5ldyBkb2NzIGFuZCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGxvdHMgb2YgbmV3IGRvY3MgYW5kIGRvYyBmaXhlcwoKMjAwNS0xMC0wOCAxNDo0MTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZml4IGEgbGVhayBJIGludHJvZHVjZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGxlYWsgSSBpbnRyb2R1Y2VkCgoyMDA1LTEwLTA4IDEzOjU3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IE9ubHkgZXZlciBsb2FkIG9uZSBwbHVnaW4gZm9yIGEgZ2l2ZW4gcGx1Z2luIGJhc2VuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgT25seSBldmVyIGxvYWQgb25lIHBsdWdpbiBmb3IgYSBnaXZlbiBwbHVnaW4gYmFzZW5hbWUuCgkgIFRoaXMgZW5zdXJlcyBjb3JyZWN0IG92ZXJyaWRpbmcgb2YgR1NUX1BMVUdJTl9QQVRIIG92ZXIKCSAgR1NUX1BMVUdJTl9TWVNURU1fUEFUSCBhbmQgb2YgaG9tZSBkaXIgcGx1Z2lucyBvdmVyCgkgIHN5c3RlbSBpbnN0YWxsZWQgcGx1Z2lucy4KCjIwMDUtMTAtMDggMTM6Mzk6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcmVwYXJlIGZvciBkb2luZyBRT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgIFByZXBhcmUgZm9yIGRvaW5nIFFPUy4KCjIwMDUtMTAtMDggMTM6MTA6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEFsbG93IG5ldyBjbG9jayBtZXNzYWdlIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWxsb3cgbmV3IGNsb2NrIG1lc3NhZ2UgdG9vLgoKMjAwNS0xMC0wOCAxMjo1NjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFsc28gY2FycnkgdGhlIGNsb2NrIGluIHF1ZXN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX2xvc3QpLCAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWxzbyBjYXJyeSB0aGUgY2xvY2sgaW4gcXVlc3Rpb24uCgoyMDA1LTEwLTA4IDEyOjM2OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQ2xlYW4gdXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKSwKCSAgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIENsZWFuIHVwLgoJICBBZGRlZCBjbG9jayByZWxhdGVkIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFBvc3QgbWVzc2FnZSB3aGVuIHRoZSBjbG9jayBjaGFuZ2VkLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBuZXcgY2xvY2suCgoyMDA1LTEwLTA4IDExOjE2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQ2FuJ3QgcGFzcyBOVUxMIHN0cmluZ3MgdG8gZ19wcmludCgpIG9uIHdpbmRvd3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIENhbid0IHBhc3MgTlVMTCBzdHJpbmdzIHRvIGdfcHJpbnQoKSBvbiB3aW5kb3dzLgoKMjAwNS0xMC0wOCAxMToxMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgY2hhcHRlciBvbiBydW5uaW5nIEdTdHJlYW1lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSAgYWRkIGEgY2hhcHRlciBvbiBydW5uaW5nIEdTdHJlYW1lci4KCSAgZG9jdW1lbnQgR1NUX0RFQlVHIGFuZCBHU1RfUExVR0lOKiBlbnYgdmFycwoKMjAwNS0xMC0wOCAxMToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogcmVtb3ZlIGluY2x1ZGUgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICByZW1vdmUgaW5jbHVkZSBkaXIKCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBQTFVHSU5TX0JVSUxERElSIHN0dWZmCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgcmVvcmRlciBwYXJzaW5nIG9mIEdTVF9QTFVHSU5fUEFUSCBhbmQgR1NUX1BMVUdJTl9TWVNURU1fUEFUSAoJICAqIGlkaW90dGVzdC5tYWs6CgkgIHJlbW92ZSwgaXQgd2FzIGNvbmRlc2NlbmRpbmcgYW5kIG5vdCBuZWVkZWQKCjIwMDUtMTAtMDggMDk6NTg6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBSZXBvc3QgRU9TIG1lc3NhZ2Ugd2hpbGUgZ29pbmcgdG8gUExBWUlORyBpZiBzdGlsbCBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0KSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBSZXBvc3QgRU9TIG1lc3NhZ2Ugd2hpbGUgZ29pbmcgdG8gUExBWUlORyBpZiBzdGlsbCBFT1MuCgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gcmVjZWl2aW5nIGEgRkxVU0hfU1RBUlQgd2UgZG9uJ3QgYXR0ZW1wdAoJICB0byBzeW5jIG9uIHRoZSBjbG9jayBhbnltb3JlLgoKMjAwNS0xMC0wOCAwOTozODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQmV0dGVyIG1lc3NhZ2UgcHJpbnRvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBCZXR0ZXIgbWVzc2FnZSBwcmludG91dC4KCjIwMDUtMTAtMDggMDk6MjQ6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIENoaWxkUHJveHkgdGhyZWFkc2FmZSBhbmQgZml4IG1lbSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X25hbWUpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfdmFsaXN0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF92YWxpc3QpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2UgQ2hpbGRQcm94eSB0aHJlYWRzYWZlIGFuZCBmaXggbWVtIGxlYWtzLgoKMjAwNS0xMC0wOCAwOTowOTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IGRlYnVnIHRoZSBHU1RfUExVR0lOXyBlbnYgdmFycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBkZWJ1ZyB0aGUgR1NUX1BMVUdJTl8gZW52IHZhcnMKCjIwMDUtMTAtMDggMDg6NTg6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBleHRyYSBmaWVsZCB0byBTVEFURV9DSEFOR0UgbWVzc2FnZSB3aXRoIHRoZSBwZW5kaW5nIHN0YXRlLCB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBuZXcgc3RhdGUgc29vbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBBZGRlZCBleHRyYSBmaWVsZCB0byBTVEFURV9DSEFOR0UgbWVzc2FnZSB3aXRoIHRoZSBwZW5kaW5nCgkgIHN0YXRlLCB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBuZXcgc3RhdGUgc29vbi4KCjIwMDUtMTAtMDggMDg6MDA6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjbGVhbnVwcyBhbmQgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKToKCSAgU21hbGwgY2xlYW51cHMgYW5kIGRvYyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAwNjo0OTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBsb2cgZGlzdHJpYnV0aW5nIGNsb2NrcyBhbmQgYmFzZSB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgbG9nIGRpc3RyaWJ1dGluZyBjbG9ja3MgYW5kIGJhc2UgdGltZQoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgY2xlYW4gdXAgdGhlIGRlYnVnZ2luZyBvdXRwdXQgYSBsaXR0bGUKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgd2FybiBhYm91dCBhIG1lbWxlYWsgKEkndmUgYWN0dWFsbHkgc2VlbiB0aGlzIGJlIHVzZWQsIHRob3VnaAoJICBpdCB3YXMgcHJvYmFibHkgYSBidWcpCgoyMDA1LTEwLTA4IDA2OjQyOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGFkZCB0d28gbmV3IGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHR3byBuZXcgZnVuY3Rpb25zCgoyMDA1LTEwLTA3IDE4OjE3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBNYWtlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGN1c3RvbWl6YWJsZSBieSBzdWJjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19uZXdzZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNYWtlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGN1c3RvbWl6YWJsZSBieSBzdWJjbGFzc2VzLgoKMjAwNS0xMC0wNyAxODowMjoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBOZXcgZXZlbnQgZm9yIGZ1dHVyZSBpZGVhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfYnVmZmVyc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyc2l6ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE5ldyBldmVudCBmb3IgZnV0dXJlIGlkZWEuCgoyMDA1LTEwLTA3IDE2OjI4OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBEb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBEb2MgdXBkYXRlLgoKMjAwNS0xMC0wNyAxNjoxMzo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKTogTWFkZSBpbnRvIGEKCSAgZnVuY3Rpb24gbGlrZSBob25lc3QgQVBJIGNhbGxzLgoJICAoZ3N0X21lc3NhZ2VfbmV3X2VsZW1lbnQpOiBOZXcgbWVzc2FnZSB0eXBlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmggKGVudW0pOiBBZGQgR1NUX01FU1NBR0VfRUxFTUVOVCB0eXBlLgoKMjAwNS0xMC0wNyAxNToyNTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBmZHNyYyBkb2VzIG5vdCBidWlsZCBjdXJyZW50bHkgb24gd2luMzIgZHVlIHRvIHNvY2tldHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZkc3JjIGRvZXMgbm90IGJ1aWxkIGN1cnJlbnRseSBvbiB3aW4zMiBkdWUgdG8gc29ja2V0cGFpcgoKMjAwNS0xMC0wNyAxNToyMjozOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jICh0ZXN0X25vX3ByZXJvbGwpOiBOZXcgY2hlY2ssIGNoZWNrcyB0aGF0IHNldHRpbmcgYSBsaXZlIGZha2VzcmMgdG8gUEFVU0VEIHJldHVybnMgTk9fUFJFUk9MLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAodGVzdF9ub19wcmVyb2xsKTogTmV3IGNoZWNrLCBjaGVja3MKCSAgdGhhdCBzZXR0aW5nIGEgbGl2ZSBmYWtlc3JjIHRvIFBBVVNFRCByZXR1cm5zIE5PX1BSRVJPTEwgYm90aAoJICB0aW1lcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOiBBbGxvdyBhCgkgIE5PX1BSRVJPTEwgZnJvbSBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUgdG8gZmFsbCB0aHJvdWdoLgoKMjAwNS0xMC0wNyAxNToxMzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGRvbid0IHVzZSBpZiBub3QgZGVjbGFyZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHVzZSBpZiBub3QgZGVjbGFyZWQKCjIwMDUtMTAtMDcgMTI6NTI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWN0aXZhdGluZyBhIGdob3N0cGFkIHdpdGggbm8gaW50ZXJuYWwgcGFkIGluIHB1c2ggbW9kZSBpcyBvay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2dldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBBY3RpdmF0aW5nIGEgZ2hvc3RwYWQgd2l0aCBubyBpbnRlcm5hbCBwYWQgaW4gcHVzaCBtb2RlCgkgIGlzIG9rLgoKMjAwNS0xMC0wNyAxMjo0NTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gd3JhcHBpbmcgRkxBR19TRVQvX1VOU0VUIGluIFNUTVQgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gd3JhcHBpbmcgRkxBR19TRVQvX1VOU0VUIGluIFNUTVQgbWFjcm9zLgoJICBGaXhlcyBjb21waWxhdGlvbiBvbiBXaW5kb3dzLgoKMjAwNS0xMC0wNyAxMDozMjoyNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFByaW50IG91dCBmZWF0dXJlIGFuZCBwbHVnaW4gY291bnQgYXQgdGhlIGVuZCB3aGVuIHByaW50aW5nIG91dCBhbGwgZmVhdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQcmludCBvdXQgZmVhdHVyZSBhbmQgcGx1Z2luIGNvdW50IGF0IHRoZSBlbmQgd2hlbiBwcmludGluZyBvdXQKCSAgYWxsIGZlYXR1cmVzLgoJICBBbHNvIGFkZCBhIGNoYW5nZWxvZyBlbnRyeSB3aGljaCBJJ2Qgd3JpdHRlbiBidXQgbm90IGNvbW1pdHRlZD8KCjIwMDUtMTAtMDcgMDA6MTQ6NDUgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgQWRkIGEgR1R5cGUgdG8gR3N0SXRlcmF0b3IsIHVwZGF0ZSBjYWxsc2l0ZXMgYW5kIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2l0ZXJhdGVfZWxlbWVudHMpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2UpLCAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkcyk6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9pdGVyYXRlX2RlZmluaXRpb25zKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9pbml0KSwgKGdzdF9pdGVyYXRvcl9uZXcpLAoJICAoZ3N0X2l0ZXJhdG9yX25ld19saXN0KSwgKGdzdF9pdGVyYXRvcl9maWx0ZXIpOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3R5cGVfaXRlcmF0ZV9kZWZpbml0aW9ucyk6CgkgIEFkZCBhIEdUeXBlIHRvIEdzdEl0ZXJhdG9yLCB1cGRhdGUgY2FsbHNpdGVzIGFuZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMjE6MDk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb2guICB1c2UgY29ycmVjdCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9oLiAgdXNlIGNvcnJlY3QgdmFyaWFibGUKCjIwMDUtMTAtMDYgMTc6MDA6NTAgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB2ZXJzaW9uIGdzdHJlYW1lci10b29scyBwYWNrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2ZXJzaW9uIGdzdHJlYW1lci10b29scyBwYWNrYWdlCgoyMDA1LTEwLTA2IDE0OjIwOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBpbml0aWFsaXplIHF1YXJrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5pdGlhbGl6ZSBxdWFya3MKCjIwMDUtMTAtMDYgMTQ6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBnaXZlIGV2ZW50cyBhIGNoYW5jZSB0byBiZSBoYW5kbGVkIGJ5IGV2ZW50IHByb2JlcyB3aGVuIHRoZSBwYWQgaXMgbm90IGxpbmtlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpOgoJICBnaXZlIGV2ZW50cyBhIGNoYW5jZSB0byBiZSBoYW5kbGVkIGJ5IGV2ZW50IHByb2JlcyB3aGVuIHRoZSBwYWQKCSAgaXMgbm90IGxpbmtlZAoKMjAwNS0xMC0wNiAxMzo1NTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuKjogYWRkIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIGV2ZW50IHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X3R5cGVfZ2V0X25hbWUpLAoJICAoZ3N0X2V2ZW50X3R5cGVfdG9fcXVhcmspLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwgKGdzdF9ldmVudF9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBhZGQgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgZXZlbnQgdHlwZXMKCjIwMDUtMTAtMDYgMTM6NDI6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMDYgMTM6MjQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3QgdXNlIE5VTEwgcG9pbnRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKToKCSAgRG9uJ3QgdXNlIE5VTEwgcG9pbnRlcnMuCgoyMDA1LTEwLTA2IDA5OjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHdpZGVuIHRoZSBkZWJ1ZyBjYXRlZ29yeSBpbiBvdXRwdXQgdG8gZml0IHRoZSBiaWdnZXN0IG9uZSB3ZSBoYXZlIGFkZCBhIGJ1cyBjYXRlZ29yeSBhbmQgdXNlIGl0IHBsYXkgd2l0aCB0aGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHdpZGVuIHRoZSBkZWJ1ZyBjYXRlZ29yeSBpbiBvdXRwdXQgdG8gZml0IHRoZSBiaWdnZXN0IG9uZSB3ZSBoYXZlCgkgIGFkZCBhIGJ1cyBjYXRlZ29yeSBhbmQgdXNlIGl0CgkgIHBsYXkgd2l0aCB0aGUgY29sb3JzCgkgIGZpeCB1cCBzb21lIGNhdGVnb3JpZXMKCjIwMDUtMTAtMDYgMDc6NDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZmlyc3Qgc3RhYiBhdCByZW9yZ2FuaXppbmcgZG9jcyBmb3IgcGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXJzdCBzdGFiIGF0IHJlb3JnYW5pemluZyBkb2NzIGZvciBwYWQKCjIwMDUtMTAtMDYgMDc6MTM6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IGFkZCBwdXNoIGFjdGl2YXRpb24gb2Ygc2luayBnaG9zdCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIGFkZCBwdXNoIGFjdGl2YXRpb24gb2Ygc2luayBnaG9zdCBwYWRzLgoJICBBbmR5ZSwgcGxlYXNlIHZlcmlmeQoKMjAwNS0xMC0wNSAyMjozNToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0xMC0wNSAyMTozNDo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogZml4IGEgYnVnIGluIHRoZSBjYXNlIHdoZXJlIG5laXRoZXIgZWxlbWVudCBoYXMgYSBwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpOgoJICBmaXggYSBidWcgaW4gdGhlIGNhc2Ugd2hlcmUgbmVpdGhlciBlbGVtZW50IGhhcyBhIHBhZAoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIHRoYXQgY2FzZQoKMjAwNS0xMC0wNSAxNzowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdW5yZWYgb3VyIHRlc3QgYnVmZmVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5yZWYgb3VyIHRlc3QgYnVmZmVycwoKMjAwNS0xMC0wNSAxNjoxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IGVtaXQgaGF2ZS1kYXRhIGJlZm9yZSBjaGVja2luZyBmb3IgcGVlcnMuICBUaGlzIGFsbG93cyBmb3IgcHJvYmUgaGFuZGxlcnMgdG8gY29ubmVjdCBlbGVtZW50cy4gIFRoaXMgaGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIGVtaXQgaGF2ZS1kYXRhIGJlZm9yZSBjaGVja2luZyBmb3IgcGVlcnMuICBUaGlzIGFsbG93cwoJICBmb3IgcHJvYmUgaGFuZGxlcnMgdG8gY29ubmVjdCBlbGVtZW50cy4gIFRoaXMgaGVscHMgYXV0b3BsdWdnZXJzLgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKF9wcm9iZV9oYW5kbGVyKSwKCSAgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgc2l4IGNoZWNrcywgbGlua2VkL3VubGlua2VkIHdpdGggbm8vdHJ1ZS9mYWxzZSBwcm9iZQoKMjAwNS0xMC0wNSAxMTo1MDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGluZGVudCBpZmRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluZGVudCBpZmRlZnMKCjIwMDUtMTAtMDQgMTg6NDY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvOiBQcm90ZWN0IGxhc3RfbWVzc2FnZSB3aXRoIGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc2lua19ldmVudCksIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpLAoJICAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpLCAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3N0b3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3N0b3ApOgoJICBQcm90ZWN0IGxhc3RfbWVzc2FnZSB3aXRoIGxvY2suCgoyMDA1LTEwLTA0IDE1OjA0OjUwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGZvcm1hdC5oOiBBZGRlZCBwcmVjaXNpb24gaW4gdGhlIGNvbW1lbnRzIGZvciBHU1RfRk9STUFUX0RFRkFVTFQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICBBZGRlZCBwcmVjaXNpb24gaW4gdGhlIGNvbW1lbnRzIGZvciBHU1RfRk9STUFUX0RFRkFVTFQKCjIwMDUtMTAtMDQgMTM6MTk6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgoyMDA1LTEwLTA0IDEyOjAyOjM0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZlIHNvbWUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIHRoZXJlIGZyb20gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc29tZSBmaWxlcyB0aGF0IGFyZSBubyBsb25nZXIgdGhlcmUgZnJvbSBzcGVjIGZpbGUKCjIwMDUtMTAtMDQgMTE6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbid0IHRyeSB0byBydW4gZXJyb25lb3VzIHBpcGVsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIERvbid0IHRyeSB0byBydW4gZXJyb25lb3VzIHBpcGVsaW5lcy4KCjIwMDUtMTAtMDQgMTE6MTA6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RlcnJvci5jOiBBZGQgYW5vdGhlciBlcnJvciBzdHJpbmcgdXNlZCBpbiBhIGZldyBleGlzdGluZyBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgQWRkIGFub3RoZXIgZXJyb3Igc3RyaW5nIHVzZWQgaW4gYSBmZXcgZXhpc3RpbmcgcGx1Z2lucy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgV2hlbiBhIGZlYXR1cmUgZGlzYXBwZWFycyBmcm9tIGEgcGx1Z2luIChhbmQgdGhlIGZlYXR1cmUgZXhpc3RzIGluCgkgIHRoZSBjYWNoZWQgcmVnaXN0cnkgZmlsZSksIHRoaW5ncyB3ZW50IGhvcnJpYmx5IHdyb25nLiBUaGlzIGlzbid0IGEKCSAgY29tcGxldGUgZml4LCB3ZSBzaG91bGQgYWN0dWFsbHkgYmUgcmVtb3ZpbmcgdGhlICdtaXNzaW5nJyBmZWF0dXJlcwoJICBmcm9tIHRoZSBmZWF0dXJlcyBsaXN0IHdoZW4gd2UgbG9hZCB0aGUgYWN0dWFsIHBsdWdpbi4gVGhhdCdzIG5vdAoJICB5ZXQgaW1wbGVtZW50ZWQuCgoyMDA1LTEwLTA0IDExOjA5OjQxICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogV2UgZG9uJ3QgbmVlZCB0aGlzIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IFdlIGRvbid0IG5lZWQgdGhpcyBoZWFkZXIuCgoyMDA1LTEwLTAzIDE3OjU3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjMgPT09CgoyMDA1LTEwLTAzIDE3OjQ3OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcmVsZWFzZSB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNlIHRpbWUKCjIwMDUtMTAtMDIgMjM6MjQ6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IGNhbGxpbmcgYSBwYWQncyBhY3RpdmF0ZXB1c2goKSBmdW5jdGlvbiBjYW4gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24KCSAgd2hlcmVieSBjYWxsaW5nIGEgcGFkJ3MgYWN0aXZhdGVwdXNoKCkgZnVuY3Rpb24gY2FuIHN0YXJ0IGEgdGhyZWFkCgkgIHRoYXQgc3RhcnRzIHRvIHB1c2ggb3IgcHVsbCBiZWZvcmUgdGhlIHBhZCBnZXRzIHRoZSBGTFVTSElORyBmbGFnCgkgIHVuc2V0LiBIYWNrIGFyb3VuZCBpdCBieSBob2xkaW5nIHRoZSBzdHJlYW0gbG9jayB1bnRpbCB0aGUgZmxhZyBpcwoJICBzZXQuIE5lZWQgdG8gcmVwbGFjZSB0aGlzIHdpdGggYSBwcm9wZXIgc29sdXRpb24uIFRvZ2V0aGVyIHdpdGgKCSAgdGhlIGdob3N0IHBhZCBmaXhlcywgdGhpcyBmaXhlcyBtcDMgcGxheWluZy90YWdyZWFkaW5nLgoKMjAwNS0xMC0wMiAyMzoyMTowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0xMC0wMiAyMzoyMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEFkZCBhIG5vdGUgYWJvdXQgYWN0aXZhdGlvbiBvZiBwcm94eSBwYWRzIG91dHNpZGUgb2YgZ2hvc3QgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEFkZCBhIG5vdGUgYWJvdXQgYWN0aXZhdGlvbiBvZgoJICBwcm94eSBwYWRzIG91dHNpZGUgb2YgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogSW1wbGVtZW50IHRoZSBnaG9zdCBwYWQgYWN0aXZhdGlvbiBkZXNpZ24uCgoyMDA1LTEwLTAyIDE4OjU3OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBKdXN0IHVzZSB0aGUgaW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBKdXN0IHVzZSB0aGUgaW50LgoJICBJdCBpcyB2b2xhdGlsZSwgYWZ0ZXIgYWxsLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBGbGVzaCBvdXQgYWN0aXZhdGlvbiB3aXRoCgkgIGdob3N0IHBhZHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfaW5pdCk6IFVzZQoJICBHU1RfREVCVUdfRlVOQ1BUUi4KCjIwMDUtMTAtMDIgMTg6MzA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEZpeCAodW51c2VkKSBBTV9DT05ESVRJT05BTCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggKHVudXNlZCkgQU1fQ09ORElUSU9OQUwgdGVzdHMuCgoyMDA1LTEwLTAxIDE3OjExOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBhc3NlcnRpb24gdGhhdCBtYWtlcyBzdXJlIHNyY192YWwgaXMgPj0wLCBqdXN0IGxpa2UgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkgaGFzLiAoIzMxNTg5NSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICBBZGQgYXNzZXJ0aW9uIHRoYXQgbWFrZXMgc3VyZSBzcmNfdmFsIGlzID49MCwganVzdCBsaWtlCgkgIGdzdF9xdWVyeV9uZXdfY29udmVydCgpIGhhcy4gKCMzMTU4OTUpCgoyMDA1LTA5LTMwIDE1OjQzOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiBMZXQncyBub3QgaXRlcmF0ZSBwYWRzIHdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluLCBpdCBhdm9pZHMgZ2V0dGluZyBza3ktaGlnaCByZWZjb3VudHMgb24gc2lua3BhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIExldCdzIG5vdCBpdGVyYXRlIHBhZHMgd2UncmUgbm90IGludGVyZXN0ZWQgaW4sIGl0IGF2b2lkcyBnZXR0aW5nCgkgIHNreS1oaWdoIHJlZmNvdW50cyBvbiBzaW5rcGFkLgoKMjAwNS0wOS0zMCAwODoyOTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIHR3ZWFrLCBlbGVtZW50IGluIEFTWU5DIHJlbWFpbnMgQVNZTkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgdHdlYWssIGVsZW1lbnQgaW4gQVNZTkMgcmVtYWlucyBBU1lOQy4KCjIwMDUtMDktMzAgMDg6MDA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IGVycm9yIGlzIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBPbmx5IGVycm9yIGlzIGFuIGVycm9yLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX2NoYWluKToKCSAgQWxzbyBjYWxsIHBhZF9ibG9jayBpbiBwYWQgYWxsb2MuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZmxvd19nZXRfbmFtZSk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgoyMDA1LTA5LTI5IDIwOjI2OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcy4gQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgRml4IGRvY3VtZW50YXRpb24gdHlwb3MuIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDUtMDktMjkgMjA6MTY6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBkaXNhYmxlIHJlZmNvdW50IGNoZWNrcyB1bnRpbCB3ZSB0cmFjayB0aGUgZGFuZ2xpbmcgcmVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHJlZmNvdW50IGNoZWNrcyB1bnRpbCB3ZSB0cmFjayB0aGUgZGFuZ2xpbmcgcmVmCgoyMDA1LTA5LTI5IDE5OjQ1OjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogTWFrZSBzb21lIGVycm9yIG1lc3NhZ2VzIG1vcmUgZW5kLXVzZXIgZnJpZW5kbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogTWFrZSBzb21lIGVycm9yIG1lc3NhZ2VzCgkgIG1vcmUgZW5kLXVzZXIgZnJpZW5kbHkuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOiBDaGVjayBpZiBjb21tYW5kLWxpbmUgYXJndW1lbnQgaXMKCSAgYSBmaWxlIGFuZCBhdHRlbXB0IHRvIGxvYWQgdGhhdCBmaWxlIGFzIGEgcGx1Z2luLgoKMjAwNS0wOS0yOSAxODozNzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGZpeCB0ZXN0cyBmb3IgdGhlIG5ldyB3YXJuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSAgZml4IHRlc3RzIGZvciB0aGUgbmV3IHdhcm5pbmcKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIGEgdGVzdCBmb3IgcGlwZWxpbmUgYW5kIGJ1cyBpbnRlcmFjdGlvbgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnRzIHNob3VsZCBiZSBOVUxMIGlmIHRoZXkgZ2V0IGRpc3Bvc2VkOyBhZGQgYSB3YXJuaW5nIGlmIG5vdAoKMjAwNS0wOS0yOSAxODozNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IGZvciAyLjYgcmVmY291bnRpbmcsIG1ha2UgZGVidWcgbG9nIG1vcmUgY29ycmVjdCBieSBwcmludGluZyB0aGUgYWN0dWFsIHJlZmNvdW50cyBhdCB0aGUgdGltZSBvZiBzd2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBmb3IgMi42IHJlZmNvdW50aW5nLCBtYWtlIGRlYnVnIGxvZyBtb3JlIGNvcnJlY3QgYnkgcHJpbnRpbmcKCSAgdGhlIGFjdHVhbCByZWZjb3VudHMgYXQgdGhlIHRpbWUgb2Ygc3dhcCAoV2ltKQoKMjAwNS0wOS0yOSAxODoyNTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICB1c2UgbWVzc2FnZSB0eXBlIG5hbWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1c2UgbWVzc2FnZSB0eXBlIG5hbWVzCgoyMDA1LTA5LTI5IDE2OjA2OjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA5LTI5IDE2OjA0OjMxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6IE5ldyBmdW5jdGlvbiwgcmVtb3ZlcyBzaWduYWwgd2F0Y2hlcyBwcmV2aW91c2x5IGFkZGVkIHZpYSBnc3RfYnVzX2FkZF9zaWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOiBOZXcgZnVuY3Rpb24sCgkgIHJlbW92ZXMgc2lnbmFsIHdhdGNoZXMgcHJldmlvdXNseSBhZGRlZCB2aWEKCSAgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoLgoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKTogRG9uJ3QgcmV0dXJuIHRoZSBzb3VyY2UgaWQsIGp1c3Qgc3RvcmUKCSAgaXQgb24gdGhlIGJ1cyBpZiB0aGVyZSB3YXNuJ3QgYW4gaWQgYWxyZWFkeS4KCSAgKiBnc3QvZ3N0YnVzLmggKEdzdEJ1cyk6IEFkZCBhIGNvdXBsZSBuZXcgZmllbGRzLiBBUEkgY2hhbmdlcyBmb3IKCSAgYWRkX3NpZ25hbF93YXRjaCBhbmQgcmVtb3ZlX3NpZ25hbF93YXRjaC4KCjIwMDUtMDktMjkgMTU6Mzk6MjIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQmV0dGVyIGlmIHdlIGFjdHVhbGx5IGl0ZXJhdGUgdGhlIGxpc3QgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIEJldHRlciBpZiB3ZSBhY3R1YWxseSBpdGVyYXRlIHRoZSBsaXN0IDopCgoyMDA1LTA5LTI5IDEzOjA3OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBDaGFuZ2UgZm9yIG5ldyBidXMgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoYW5nZSBmb3IgbmV3IGJ1cyBBUEkuCgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHNlbmRfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKToKCSAgQ2hhbmdlIGZvciBuZXcgYnVzIHNpZ25hbCBBUEkuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwKCSAgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF93YXRjaCksIChnc3RfYnVzX3BvbGwpLCAoZ3N0X2J1c19hc3luY19zaWduYWxfZnVuYyksCgkgIChnc3RfYnVzX3N5bmNfc2lnbmFsX2hhbmRsZXIpLCAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIFJlbW92ZSBzdXBwb3J0IGZvciBtdWx0aXBsZSBHU291cmNlcyBvcGVyYXRpbmcgb24gZGlmZmVyZW50CgkgIG1lc3NhZ2UgdHlwZXMgYXMgaXQgaXMgdG9vIGNvbXBsZXggYW5kIHVubmVlZGVkIHdoZW4gdXNpbmcKCSAgc2lnbmFscy4KCSAgQWRkZWQgc3VwcG9ydCBmb3IgcmVjZWl2aW5nIHNpZ25hbHMgZnJvbSB0aGUgYnVzLgoKMjAwNS0wOS0yOSAxMjozNzozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW5hbWUgZmlsdGVyLWNhcHMgdG8gY2FwcyBwcm9wZXJ0eQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICByZW5hbWUgZmlsdGVyLWNhcHMgdG8gY2FwcyBwcm9wZXJ0eQoKMjAwNS0wOS0yOSAxMjowNTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBNb3JlIHJvYnVzdCBmcmFjdGlvbiBzdHJpbmcgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBNb3JlIHJvYnVzdCBmcmFjdGlvbiBzdHJpbmcgcGFyc2luZy4KCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgTWVudGlvbiBnc3RfcGFkX3VzZV9leHBsaWNpdF9jYXBzKCkgPT4gZ3N0X3BhZF91c2VfZml4ZWRfY2FwcygpCgoyMDA1LTA5LTI5IDEwOjU2OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogVGhvdSBzaGFsdCBub3QgZnJlZSBhIHN0cnVjdHVyZSBhbmQgdGhlbiBjb250aW51ZSB1c2luZyBpdCBpbiB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KToKCSAgVGhvdSBzaGFsdCBub3QgZnJlZSBhIHN0cnVjdHVyZSBhbmQgdGhlbiBjb250aW51ZSB1c2luZyBpdAoJICBpbiB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbi4KCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoY2hlY2tfZm91cmNjX2xpc3QpLCAodGVzdF9zaW1wbGlmeSksCgkgIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIGNhcHMgc2ltcGxpZmljYXRpb24uCgoyMDA1LTA5LTI5IDA5OjQ0OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSB0d28gcmVtb3ZlZCBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0d28gcmVtb3ZlZCBmdW5jdGlvbnMKCjIwMDUtMDktMjkgMDk6NDI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE9vcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgT29wcy4KCjIwMDUtMDktMjkgMDk6Mzk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZCBidXMgdG8gYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBidXMgdG8gYmluLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X2RlZ3JlZSksICh1cGRhdGVfZGVncmVlKSwKCSAgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBBIGJpbiBkb2VzIG5vdCBoYXZlIGEgYnVzLCBpdCBnZXRzIHRoZSBidXMgZnJvbSB0aGUgcGFyZW50LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jayksCgkgIChnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jayksIChnc3RfZWxlbWVudF9pc19pbmRleGFibGUpLAoJICAoZ3N0X2VsZW1lbnRfaXNfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfYnVzX2Z1bmMpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBUaGUgcGlwZWxpbmUgcHJvdmlkZXMgYSBidXMuCgoyMDA1LTA5LTI5IDAyOjMyOjM3ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOiBVc2UgZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSBpbnN0ZWFkIG9mIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0gaW5zdGVhZCBvZiBnc3Rfc3RydWN0dXJlX2dldF9pbnQKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0pOiBJbXBsLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaCAoZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSk6IEFkZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERpdHRvCgoyMDA1LTA5LTI5IDAxOjU3OjAwICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIEdTVF9UWVBFX1NUQVRFIGluc3RlYWQgb2YgR19UWVBFX0lOVCwgbWFpbmx5IGZvciBsYW5ndWFnZSBiaW5kaW5ncwoJICB3aGljaCBkb2VzIGludHJvc3BlY3Rpb24uCgkgIFJldmlld2VkIGJ5IENocmlzdGlhbiBTY2hhbGxlcgoKMjAwNS0wOS0yOCAxODoxNDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBmaXhlZCB1bWxhdXRzIGluIENoYW5nZUxvZyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgdW1sYXV0cyBpbiBDaGFuZ2VMb2cgYWdhaW4KCjIwMDUtMDktMjggMTc6MzA6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IGRvbid0IGRvIGR1bW15IGdfc3RyZHVwKClzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBkb24ndCBkbyBkdW1teSBnX3N0cmR1cCgpcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAob25fb2JqZWN0X2NvbnRyb2xsZWRfcHJvcGVydHlfY2hhbmdlZCksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldCksIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF90aW1lZF92YWx1ZV9ub2RlKToKCSAgY29udmVydCAvLyB0byAvKiovIGNvbW1lbnRzCgoyMDA1LTA5LTI4IDE2OjQzOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy4qOiBBZGRlZCBhc3luYy1tZXNzYWdlIGFuZCBzeW5jLW1lc3NhZ2Ugc2lnbmFscyB0byB0aGUgYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpLCAoZ3N0X2J1c19jbGFzc19pbml0KSwKCSAgKGdzdF9idXNfcG9zdCksIChwb2xsX2Z1bmMpLCAoZ3N0X2J1c19hc3luY19zaWduYWxfZnVuYyksCgkgIChnc3RfYnVzX3N5bmNfc2lnbmFsX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQWRkZWQgYXN5bmMtbWVzc2FnZSBhbmQgc3luYy1tZXNzYWdlIHNpZ25hbHMgdG8gdGhlIGJ1cy4KCSAgQWRkZWQgaGVscGVyIEJ1c0Z1bmMgdG8gZW1pdCBzaWduYWxzIGZvciBhbGwgcG9zdGVkIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV90eXBlX2dldF9uYW1lKSwKCSAgKGdzdF9tZXNzYWdlX3R5cGVfdG9fcXVhcmspLCAoZ3N0X21lc3NhZ2VfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJlZ2lzdGVyIHF1YXJrcyBmb3IgbWVzc2FnZSBuYW1lcy4KCjIwMDUtMDktMjggMTY6Mzk6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGFub3RoZXIgY29uc3RydWN0b3IgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgYWRkZWQgYW5vdGhlciBjb25zdHJ1Y3RvciBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCjIwMDUtMDktMjggMTU6NDU6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IGFkZCBhbm90aGVyIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgYWRkIGFub3RoZXIgY2hlY2sKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIGFkZCBzb21lIGRvYwoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICBzbGlnaHRseSBtb3JlIHJlYWRhYmxlIGNvbG9yIGZvciByZWZjb3VudCBkZWJ1Z2dpbmcKCjIwMDUtMDktMjggMTM6NDE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNtYWxsIGRvYyBmaXhlcy4gZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfZGVncmVlKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFNtYWxsIGRvYyBmaXhlcy4gZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2spLCAoZ3N0X2VsZW1lbnRfcHJvdmlkZV9jbG9jayksCgkgIChnc3RfZWxlbWVudF9nZXRfY2xvY2spLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1ha2UgZ2V0L3NldF9jbG9jaygpIHN5bWV0cmljLiBBZGQgcHJvdmlkZV9jbG9jayB2bWV0aG9kIHNpbmNlCgkgIHRoYXQgaXMgYWN0dWFsbHkgd2hhdCB0aGlzIGZ1bmN0aW9uIGRvZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9jbG9jayk6CgkgIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoKMjAwNS0wOS0yOCAxMzowNToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfdW5sb2NrKTogQ29tbWVudCBhIGJpdCBpbiBsaWV1IG9mIHJlYWwgZG9jcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY191bmxvY2spOiBDb21tZW50IGEgYml0IGluCgkgIGxpZXUgb2YgcmVhbCBkb2NzLi4uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IENsZWFuZWQgdXAgYSBiaXQuCgoyMDA1LTA5LTI4IDEyOjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzLzogTWFrZSBlbGVtZW50IGRldGFpbHMgc3RhdGljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgTWFrZSBlbGVtZW50IGRldGFpbHMgc3RhdGljLgoKMjAwNS0wOS0yOCAxMTowMzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgU29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIENsZWFuIHVwIGRpc3Bvc2UgaGFuZGxlcnMuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9yZWYpLCAoZ3N0X29iamVjdF91bnJlZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgQ2xlYW4gdXAgZGlzcG9zZSBoYW5kbGVyLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZWQgc3B1cmlvdXMgVU5MT0NLLgoKMjAwNS0wOS0yNyAyMDo0MDozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MgZG9jdW1lbnRzIGFsbCB1bmRvY3VtZW50ZWQgR3N0WFhYRmxhZ3MgY29tcGxldGVkIHNvbWUgaW5jb21wbGV0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgIGFkZGVkIHR3byBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgkgIGRvY3VtZW50cyBhbGwgdW5kb2N1bWVudGVkIEdzdFhYWEZsYWdzCgkgIGNvbXBsZXRlZCBzb21lIGluY29tcGxldGUgZG9jcwoKMjAwNS0wOS0yNyAxODozMzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgbm93IHVzZWxlc3MgYW5kIGxlYWt5IHJlc3VycmVjdGlvbiBjb2RlIGluIGRpc3Bvc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIHJlbW92ZSBub3cgdXNlbGVzcyBhbmQgbGVha3kgcmVzdXJyZWN0aW9uIGNvZGUgaW4gZGlzcG9zZQoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICBhZGQgc29tZSBkZWJ1Z2dpbmcKCjIwMDUtMDktMjcgMTc6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgUmVtb3ZlIGVsZW1lbnQgdmFyaWFibGUsIHdlIGtlZXAgZWxlbWVudCBpbmZvIGluIHRoZSBpdGVyYXRvciBub3cuCgoyMDA1LTA5LTI3IDE2OjMwOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBlcnJvci1jaGVja2luZyByZXR1cm4gdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBlcnJvci1jaGVja2luZyByZXR1cm4KCSAgdmFsdWVzLgoKMjAwNS0wOS0yNyAxNjoxNjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogRW5hYmxlIGNoZWNrIHRoYXQgd29ya3Mgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEVuYWJsZSBjaGVjayB0aGF0IHdvcmtzIG5vdy4KCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFJlZGlkIHRoZSBzdGF0ZSBjaGFuZ2UgYWxnb3JpdGhtIHVzaW5nIGEgdG9wb2xvZ2ljYWwgc29ydCBhbGdvLgoJICBIYW5kbGVzIGFsbCBjYXNlcyBjb3JyZWN0bHkuCgkgIEV4cG9zZWQgaXRlcmF0b3IgZm9yIHN0YXRlIGNoYW5nZSBvcmRlci4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBUZW1wIHN0b3JhZ2UgZm9yIHN0YXRlIGNoYW5nZXMuIE5lZWQgdG8gZ2V0IHJpZCBvZiB0aGlzIHNvb24uCgoyMDA1LTA5LTI3IDE1OjM3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTGVhayBmaXhlcywgdGhlIGZvbGQgZnVuY3Rpb25zIG5lZWQgdG8gdW5yZWYgdGhlIHBhc3NlZCBvYmplY3QgYW5kIF9nZXRfcGFyZW50XyooKSByZXR1cm5zIHJlZiB0byBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaW5pdCksIChnc3RfdGVlX2RvX3B1c2gpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoaW50ZXJzZWN0X2NhcHNfZnVuYyksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLAoJICAobGlua19mb2xkX2Z1bmMpLCAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKToKCSAgTGVhayBmaXhlcywgdGhlIGZvbGQgZnVuY3Rpb25zIG5lZWQgdG8gdW5yZWYgdGhlIHBhc3NlZCBvYmplY3QgYW5kCgkgIF9nZXRfcGFyZW50XyooKSByZXR1cm5zIHJlZiB0byBwYXJlbnQuCgoyMDA1LTA5LTI3IDEzOjI1OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBQbHVnIGxlYWsgaW4gdGVzdCBjYXNlIGFuZCBmaXggJ21ha2UgY2hlY2stdmFsZ3JpbmQnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKHRlc3RfbWFrZV93cml0YWJsZSk6CgkgIFBsdWcgbGVhayBpbiB0ZXN0IGNhc2UgYW5kIGZpeCAnbWFrZSBjaGVjay12YWxncmluZCcKCjIwMDUtMDktMjcgMTM6MDc6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNldCBSRUFET05MWSBmbGFnIG9uIHN1YmJ1ZmZlcnMsIHNvIHRoYXQgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29ya3MgY29ycmVjdGx5IGluIGFsbCBjaXJjdW1zdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9pbml0KToKCSAgU2V0IFJFQURPTkxZIGZsYWcgb24gc3ViYnVmZmVycywgc28gdGhhdCBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKQoJICB3b3JrcyBjb3JyZWN0bHkgaW4gYWxsIGNpcmN1bXN0YW5jZXMgKHdlIGNvdWxkIGhhdmUganVzdCBjb3BpZWQKCSAgdGhlIHBhcmVudCBidWZmZXIncyByZWFkb25seSBmbGFnLCBidXQgY29uY2VwdHVhbGx5IGl0IHNlZW1zCgkgIGNsZWFuZXIgdG8gbWFyayBhbGwgc3ViYnVmZmVycyBhcyByZWFkLW9ubHkpLiAoYmFzZWQgb24gcGF0Y2gKCSAgYnkgQWxlc3NhbmRybyBEZWNpbmEsICMzMTQ3MTApLgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKGNyZWF0ZV9yZWFkX29ubHlfYnVmZmVyKSwKCSAgKHRlc3RfbWFrZV93cml0YWJsZSksICh0ZXN0X3N1YmJ1ZmZlcl9tYWtlX3dyaXRhYmxlKSwKCSAgKGdzdF90ZXN0X3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpLgoKMjAwNS0wOS0yNyAwOTo1NzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogdXNlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIHVzZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkgY29waWVkIGZyb20gZ3N0YmluLmMgYXMgaXQgaXMgYQoJICB1c2VmdWxsIGZ1bmN0aW9uLgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NyZWF0ZS5jOiAoY3JlYXRlX2FsbF9lbGVtZW50cyk6CgkgICogdGVzdHMvbGF0LmM6IChoYW5kb2ZmX3NyYyksIChoYW5kb2ZmX3NpbmspOgoJICAqIHRlc3RzL3NjaGVkL3J1bnhtbC5jOiAobWFpbik6CgkgICogdGVzdHMvc2Vla2luZy9zZWVraW5nMS5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6IChidXNfaGFuZGxlciksICh0aW1lb3V0X2Z1bmMpLAoJICAobWFpbik6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBzb21lIHRlc3RzLgoKMjAwNS0wOS0yNyAwOToyOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5oOiBSZW1vdmUgY29tbWVudC4gR1NUX1RZUEVfR19FUlJPUiBpcyBoZXJlIHRvIHN0YXksCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBSZW1vdmUgY29tbWVudC4gR1NUX1RZUEVfR19FUlJPUiBpcyBoZXJlIHRvIHN0YXksCgkgIEdfVFlQRV9FUlJPUiBoYXMgYmVlbiBXT05URklYJ2VkIGJ5IHRoZSBHTGliIGZvbGtzCgkgICgjMzE2OTYxLCAjMzAwNjEwKS4KCjIwMDUtMDktMjYgMTg6MjI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIGNoZWNrIHRoYXQgc2hvd3MgZXJyb3IgaW4gc3RhdGUgY2hhbmdlIG9yZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdGhhdCBzaG93cyBlcnJvciBpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgoyMDA1LTA5LTI2IDE3OjQ2OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB1c2UgMyBxdWV1ZXMgYWdhaW4sIHdlIHdlcmUgYWRkaW5nIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB1c2UgMyBxdWV1ZXMgYWdhaW4sIHdlIHdlcmUKCSAgYWRkaW5nIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBvcmRlci4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKToKCSAgU29tZSBkZWJ1ZyBpbmZvLAoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIEFkZGVkIHNvbWUgZGVidWcgaW5mbyBmaXJzdC4KCjIwMDUtMDktMjYgMTc6NDA6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi86IFJlcGxhY2UgYWxsIF9wdWxsX3JlZ2lvbigpIHdpdGggX3B1bGxfcmFuZ2UoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICBSZXBsYWNlIGFsbCBfcHVsbF9yZWdpb24oKSB3aXRoIF9wdWxsX3JhbmdlKCkKCjIwMDUtMDktMjYgMTY6MTk6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0cnkgdGhlIGZvdXJ0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJ5IHRoZSBmb3VydGgKCjIwMDUtMDktMjYgMTY6MTI6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBmb28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvbwoKMjAwNS0wOS0yNiAxNjowNzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEJldHRlciBmYWtlb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogQmV0dGVyIGZha2VvdXQuCgoyMDA1LTA5LTI2IDE1OjQ5OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IFVwZGF0ZSBmb3IgY29udHJvbGxlciBhcGkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IFVwZGF0ZSBmb3IgY29udHJvbGxlciBhcGkgY2hhbmdlLgoKMjAwNS0wOS0yNiAxNTo0MzozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgUmVtb3ZlIG1lbWNodW5rIGJlbmNobWFyayBzdHVmZiwgdGhpcyBpcyB0YWtlbiBvdmVyIGJ5IEdMaWIgYnVnIDExODQzOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL21lbWNodW5rOiBSZW1vdmUgbWVtY2h1bmsgYmVuY2htYXJrIHN0dWZmLCB0aGlzIGlzIHRha2VuCgkgIG92ZXIgYnkgR0xpYiBidWcgMTE4NDM5LgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3Npbmtfd2FpdCk6IEZhY3RvciBvdXQgdGhlIHdhaXQKCSAgcm91dGluZXMgdG8gYSBmdW5jdGlvbi4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBJIGFtIGEgZ29vZCBwZXJzb24gdG9kYXkuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpCgkgIChnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKTogUmVuYW1lZCBmcm9tIHNpbmtfdmFsdWVzLiBVZ2guCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogVXBkYXRlIGZvciBfX2dzdF9jb250cm9sbGVyX2tleS4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYyAoX19nc3RfY29udHJvbGxlcl9rZXkpOgoJICBSZW5hbWVkIGZyb20gY29udHJvbGxlcl9rZXksIGFzIGl0IGlzIGV4cG9ydGVkLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBGYWtlIG91dCB0aGUgY29tcGlsZXIuCgoyMDA1LTA5LTI2IDE1OjAzOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDoKCSAgcmVtb3ZlIHF1ZXJ5dXRpbHMgaGVhZGVycyBhZnRlciBtb3ZpbmcgdGhlIHR3byB1c2VkIGZ1bmN0aW9ucyB0byBnc3RxdWVyeS4gIGFsc28gZml4ZXMgYnVpbGQgcHJvYmxlbSBmb3IgZ3N0c2lkZGVjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgcXVlcnl1dGlscyBoZWFkZXJzIGFmdGVyIG1vdmluZyB0aGUgdHdvIHVzZWQgZnVuY3Rpb25zCgkgIHRvIGdzdHF1ZXJ5LiAgYWxzbyBmaXhlcyBidWlsZCBwcm9ibGVtIGZvciBnc3RzaWRkZWMKCjIwMDUtMDktMjYgMTM6NDA6MjEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBDb3JyZWN0IHN5bnRheCBmb3IgZGVidWcgb3B0aW9uIGluIGdzdC1sYXVuY2ggbWFucGFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29ycmVjdCBzeW50YXggZm9yIGRlYnVnIG9wdGlvbiBpbiBnc3QtbGF1bmNoIG1hbnBhZ2UKCjIwMDUtMDktMjYgMTE6MjE6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfaXNfc2Vla2FibGUpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMDktMjUgMTg6MzQ6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgYWRkZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTI1IDEyOjExOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHRoZSBsYXN0IHR3byBkb2NzIGZpbGVzIHJlbW92ZWQgdGhlIHRtcGwgZGlyZWN0b3J5IGZyb20gY3ZzIChubyBtb3JlIGNvbmZsaWN0cyBoZXJlISkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgaW5saW5lZCB0aGUgbGFzdCB0d28gZG9jcyBmaWxlcwoJICByZW1vdmVkIHRoZSB0bXBsIGRpcmVjdG9yeSBmcm9tIGN2cyAobm8gbW9yZSBjb25mbGljdHMgaGVyZSEpCgoyMDA1LTA5LTI1IDExOjE5OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHR3byBtb3JlIGRvY3MgZmFjdG9yZWQgZ3N0cGFkdGVtcGxhdGUgb3V0IG9mIGdzdHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX2ZpbmFsaXplKSwgKGdzdF9wYWRfc2V0X3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSksCgkgIChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfZGlzcG9zZSksIChuYW1lX2lzX3ZhbGlkKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCksIChnc3RfcGFkX3RlbXBsYXRlX25ldyksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBpbmxpbmVkIHR3byBtb3JlIGRvY3MKCSAgZmFjdG9yZWQgZ3N0cGFkdGVtcGxhdGUgb3V0IG9mIGdzdHBhZAoKMjAwNS0wOS0yNCAxNDozNTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogRml4IHRlc3QgY2FzZTogd2UgY2FuJ3QgcmVseSBvbiBhIGZpeGVkIHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuIGdvaW5nIGZyb20gUkVBRFkgPT4gUEFVU0VEIGJlY2F1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6ICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9mbGFnZ2VkX3NpbmspLAoJICAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfc2VtaV9zaW5rKToKCSAgRml4IHRlc3QgY2FzZTogd2UgY2FuJ3QgcmVseSBvbiBhIGZpeGVkIHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuCgkgIGdvaW5nIGZyb20gUkVBRFkgPT4gUEFVU0VEIGJlY2F1c2UgdGhlIHNpbmsgbWlnaHQgY29tbWl0IGl0cwoJICBuZXcgc3RhdGUgZmlyc3Qgd2hlbiB0aGUgZmlyc3QgYnVmZmVyIGNyZWF0ZWQgYnkgdGhlIHNvdXJjZQoJICByZWFjaGVzIHRoZSBzaW5rIGJlZm9yZSB0aGUgc291cmNlIGhhcyBmaW5pc2hlZCBpdHMgY2hhbmdlIHN0YXRlLgoJICAoVGVzdCBjYXNlIHN0aWxsIGZhaWxzIGF0IHRpbWVzLCBzZWUgIzMxNjg1NiwgY29tbWVudCA1IG9ud2FyZHMpCgoyMDA1LTA5LTI0IDE0OjE0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVmFyaW91cyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgVmFyaW91cyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTA5LTI0IDExOjQxOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5oOiBXZWxsLCB0aGF0J3MgZW1iYXJhc3NpbmcuICBMdWNraWx5IHdlIHdlcmVuJ3QgdXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFdlbGwsIHRoYXQncyBlbWJhcmFzc2luZy4gIEx1Y2tpbHkgd2Ugd2VyZW4ndCB1c2luZwoJICBHU1RfQ0xPQ0tfRElGRiBhbnl3aGVyZS4KCjIwMDUtMDktMjMgMTg6MDg6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2d0ay1kb2MubWFrOiBkb24ndCBmYWlsIG9uIGJ1aWxkaW5nIFhNTCwgRkM0IHNsYXZlIHNob3dzIGEgYnVuY2ggb2YgZG9jIG1pc3NpbmcgYml0cyB0aGF0IEkgZG9uJ3QgZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9ndGstZG9jLm1hazoKCSAgZG9uJ3QgZmFpbCBvbiBidWlsZGluZyBYTUwsIEZDNCBzbGF2ZSBzaG93cyBhIGJ1bmNoIG9mIGRvYwoJICBtaXNzaW5nIGJpdHMgdGhhdCBJIGRvbid0IGdldAoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHNvbWUgZG9jIHVwZGF0ZXMKCjIwMDUtMDktMjMgMTg6MDI6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgYmx1cmIgYWJvdXQgaG93IHRoZSBidXMgZ29lcyBpbnRvIGZsdXNoaW5nIG1vZGUgYW5kIGRyb3BzIGFsbCBtZXNzYWdlcyB3aGVuIGl0cyBiaW4gZ29lcyBmcm9tIFJFQURZIGludG8gTlVMTCBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEFkZCBibHVyYiBhYm91dCBob3cgdGhlIGJ1cyBnb2VzIGludG8gZmx1c2hpbmcgbW9kZSBhbmQKCSAgZHJvcHMgYWxsIG1lc3NhZ2VzIHdoZW4gaXRzIGJpbiBnb2VzIGZyb20gUkVBRFkgaW50byBOVUxMCgkgIHN0YXRlLgoKMjAwNS0wOS0yMyAxNzo0NjowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgYSBtZXRob2QgdG8gZ2V0IGEgR3N0Q2xvY2tUaW1lIG91dCBvZiBhIHN0cnVjdHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2Nsb2NrX3RpbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgbWV0aG9kIHRvIGdldCBhIEdzdENsb2NrVGltZSBvdXQgb2YgYSBzdHJ1Y3R1cmUKCjIwMDUtMDktMjMgMTc6MTc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIHRlc3QgdG8gY2hlY2sgc3RhdGUgY2hhbmdlIG9yZGVyIGluIGJpbnMgKGNhbiBzdGlsbCBiZSBtYWRlIHRvIGZhaWwgaGVyZSB1bmRlciBoZWF2eSBkaXNrIGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfZmxhZ2dlZF9zaW5rKSwKCSAgKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX3NlbWlfc2luayksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgdGVzdCB0byBjaGVjayBzdGF0ZSBjaGFuZ2Ugb3JkZXIgaW4gYmlucyAoY2FuIHN0aWxsIGJlIG1hZGUKCSAgdG8gZmFpbCBoZXJlIHVuZGVyIGhlYXZ5IGRpc2sgbG9hZDsgYmFpbHMgb3V0IHdpdGggJ1B1c2ggb24gcGFkCgkgIGZha2VzaW5rOnNpbmswLCBidXQgaXQgd2FzIG5vdCBhY3RpdmF0ZWQgaW4gcHVzaCBtb2RlJykuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgRml4IHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuIHRoZXJlIGlzIG9ubHkgYSBzZW1pIHNpbmsgKCMzMTY4NTYpCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgVXNlIF9jbGFzc19wZWVrX3BhcmVudCgpLCBub3QgX2NsYXNzX3JlZigpOyBmaXggZG9jcyB0byBzYXkKCSAgJ2RlZmF1bHQgbWFpbiBjb250ZXh0JyBpbnN0ZWFkIG9mICdtYWlubG9vcCcgd2hlcmUgdGhhdCBpcwoJICB3aGF0J3MgbWVhbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBGaXggdHlwb3MgaW4gZGVidWcgbWVzc2FnZXMKCjIwMDUtMDktMjMgMTY6MzU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMDktMjMgMTU6NDg6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9uJ3QgYnJlYWsgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgYnJlYWsgZG9jcyBidWlsZAoKMjAwNS0wOS0yMyAxNTozNjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB2YXJpb3VzIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2NoYWluKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICB2YXJpb3VzIGRvYyB1cGRhdGVzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIGNoYW5nZSBhbiBhc3NlcnQgaW50byBhbiBlcnJvciB1bnRpbCBpdCBnZXRzIGZpeGVkIHByb3Blcmx5CgoyMDA1LTA5LTIzIDE0OjMxOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIDMgbW9yZSBiaWlpaWcgZG9jIGZpbGVzIGFuZCBhZGRlZCBzb21lIG1pc3NpbmcgZG9jcyBvbiB0aGUgZmx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgaW5saW5lZCAzIG1vcmUgYmlpaWlnIGRvYyBmaWxlcyBhbmQgYWRkZWQgc29tZSBtaXNzaW5nIGRvY3Mgb24gdGhlIGZseQoKMjAwNS0wOS0yMyAxMTo0MTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwdXQgYmFjayBzb3VyY2UgaW4gcmVnaXN0cnkuICBhZGQgY2hlY2tzIGZvciBmaW5kX3BsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKToKCSAgcHV0IGJhY2sgc291cmNlIGluIHJlZ2lzdHJ5LiAgYWRkIGNoZWNrcyBmb3IgZmluZF9wbHVnaW4uCgkgICogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzogKGFzc2VydF9zdGF0ZSksIChlbXB0eV9iaW4pLAoJICAodGVzdF9hZGRpbmdfb25lX2VsZW1lbnQpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzogKG1haW4pOgoJICBzb21lIGNvbXBpbGUvcnVuIGZpeGVzCgoyMDA1LTA5LTIyIDIwOjAyOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBmaXggbGVhayBpbiB0aGUgdGVzdCBpdHNlbGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsZWFrIGluIHRoZSB0ZXN0IGl0c2VsZgoKMjAwNS0wOS0yMiAxODowNzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByZXBhcmUgZm9yIG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGFuZCBxdWVyeSBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19wZWVyX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBQcmVwYXJlIGZvciBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBhbmQgcXVlcnkKCSAgaGFuZGxpbmcuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWRkIHNvbWUgY29tbWVudC4KCjIwMDUtMDktMjIgMTc6NDA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogTW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBNb3JlIGRvY3VtZW50YXRpb24uCgkgIEFkZCBzZWdtZW50IHF1ZXJ5IGZvciBmdXR1cmUgdXNlLgoKMjAwNS0wOS0yMiAxNjo1MToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBTb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgIFNpbXBsaWZ5IHNlbmRfZXZlbnQKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEb24ndCBrbm93IGhvdyBmbGFncyBnb3QgYnJva2VuLgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGRlZCBuZXcgcXVlcnkuCgoyMDA1LTA5LTIyIDE1OjM4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCBzaW1wbGlzdGljIHRlc3Qgc3VpdGUgZm9yIEdTVF9UWVBFX0RBVEUgc2VyaWFsaXNhdGlvbiBhbmQgZGVzZXJpYWxpc2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKHRlc3RfZGF0ZSksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgc2ltcGxpc3RpYyB0ZXN0IHN1aXRlIGZvciBHU1RfVFlQRV9EQVRFIHNlcmlhbGlzYXRpb24gYW5kCgkgIGRlc2VyaWFsaXNhdGlvbi4KCjIwMDUtMDktMjIgMTU6MDg6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1RZUEVfREFURSwgYSBib3hlZCB0eXBlIHRoYXQgd3JhcHMgR0RhdGUsIGFuZCB0aGUgdXN1YWwgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgYWxvbmcgd2l0aCBhIGhhY2sgdGhhdCBjaGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpLAoJICAoZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9kYXRlKSwgKGdzdF92YWx1ZV9nZXRfZGF0ZSksCgkgIChnc3RfZGF0ZV9jb3B5KSwgKGdzdF92YWx1ZV9jb21wYXJlX2RhdGUpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9kYXRlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kYXRlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fZGF0ZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZGF0ZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBBZGQgR1NUX1RZUEVfREFURSwgYSBib3hlZCB0eXBlIHRoYXQgd3JhcHMgR0RhdGUsIGFuZCB0aGUgdXN1YWwKCSAgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgYWxvbmcgd2l0aCBhIGhhY2sgdGhhdCBjaGVja3MgdGhhdAoJICBkZXZlbG9wZXJzIGRvbid0IGFjY2lkZW50YWxseSB1c2UgR19UWVBFX0RBVEUgd2hlcmUgR1NUX1RZUEVfREFURQoJICBpcyByZXF1aXJlZC4gUGFydCBvZiB0aGUgZ3JhbmQgc2NoZW1lIGluICMxNzA3NzcuCgoyMDA1LTA5LTIyIDEyOjA1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IFBzeWNoIG91dCBndGstZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46IFBzeWNoIG91dCBndGstZG9jLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfSEFWRV9HTElCXzJfOC4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2hlY2tfUFJPR1JBTVMpOiBBZGQgZ3N0cGx1Z2luIHRvIHRoZSB0ZXN0cy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9lbGVtZW50X2xpc3QpOiBQbHVnIHNvbWUKCSAgaW5jb25zZXF1ZW50aWFsIGxlYWtzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQpOiBEb2MuCgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmMgKGdzdF9pbmRleF9mYWN0b3J5X2NyZWF0ZSk6IFVwZGF0ZSBmb3IKCSAgcmVmY291bnQgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jIChnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKTogRG9jLgoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOiBEb2MsIGRvbid0IGVhdCByZWZzLgoJICAqIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkKTogRG9jLCBkb24ndCBlYXQgcmVmcy4KCSAgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKTogRG9jLgoJICAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBEb2MgdXBkYXRlcy4KCjIwMDUtMDktMjIgMDk6MzA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9nZXRfY2Fwcyk6IExpa2UgYWxsIG91ciBfZ2V0IGFjY2Vzc29ycyByZXR1cm5pbmcgcmVmY291bnRlZCBvYmplY3RzLCByZXR1cm4gYSByZWYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9nZXRfY2Fwcyk6IExpa2UgYWxsIG91ciBfZ2V0CgkgIGFjY2Vzc29ycyByZXR1cm5pbmcgcmVmY291bnRlZCBvYmplY3RzLCByZXR1cm4gYSByZWYuCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jIChHU1RfU1RBUlRfVEVTVCk6IFVzZSByZWZjb3VudC1pZGVtcG90ZW50CgkgIGFjY2Vzc29yIGZvciBjYXBzLiBJREVNUE9URU5DRS4gT2ggeWVzLgoKMjAwNS0wOS0yMSAyMTozOTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEFkZCBtdXRleCB0byBzZXJpYWxpc2UgYWNjZXNzIHRvIHRoZSBoYXNoIHRhYmxlIHdpdGggdGhlIGZ1bmN0aW9uIHBvaW50ZXIgPT4gZnVuY3Rpb24gbmFtZSBzdHJpbmcgbWFwcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0ciksCgkgIChfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIpOgoJICBBZGQgbXV0ZXggdG8gc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgaGFzaCB0YWJsZSB3aXRoCgkgIHRoZSBmdW5jdGlvbiBwb2ludGVyID0+IGZ1bmN0aW9uIG5hbWUgc3RyaW5nIG1hcHBpbmc7CgkgIG1ha2UgdGhhdCBoYXNoIHRhYmxlIHN0YXRpYyBzY29wZSAoIzMxNjgwOSkuCgkgICogZ3N0L3JlZ2lzdHJpZXMvLmN2c2lnbm9yZToKCSAgUmVtb3ZlIGxlZnQtb3ZlciBmaWxlLgoKMjAwNS0wOS0yMSAxNTo1NToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBBbmQgc29tZXRoaW5nIGFib3V0IG5ld3NlZ21lbnQgZXZlbnRzIGFuZCBjYXBzLW9uLWJ1ZmZlcnMgdG8gdGhlIHBvcnRpbmcgZ3VpZGUgKGZlZWwgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgQW5kIHNvbWV0aGluZyBhYm91dCBuZXdzZWdtZW50IGV2ZW50cyBhbmQgY2Fwcy1vbi1idWZmZXJzIHRvCgkgIHRoZSBwb3J0aW5nIGd1aWRlIChmZWVsIGZyZWUgdG8gaW1wcm92ZSkuCgoyMDA1LTA5LTIxIDEzOjI0OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgVGVzdCB0aGF0IHJlbW92aW5nIHByb2JlcyBmcm9tIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb25zIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKHRlc3RfYnVmZmVyX3Byb2JlX29uY2UpOiBUZXN0IHRoYXQgcmVtb3ZpbmcgcHJvYmVzIGZyb20gd2l0aGluCgkgIHRoZSBwcm9iZSBmdW5jdGlvbnMgd29ya3MuCgoyMDA1LTA5LTIxIDEzOjExOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYyAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEFkZCB0ZXN0cyBmb3IgZGF0YSBhbmQgZXZlbnQgcHJvYmVzIG9uIHRoZSBzYW1lIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmMgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBZGQgdGVzdHMgZm9yCgkgIGRhdGEgYW5kIGV2ZW50IHByb2JlcyBvbiB0aGUgc2FtZSBwYWQuCgoyMDA1LTA5LTIxIDEyOjIxOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTmV3IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBOZXcgZmlsZS4KCSAgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBIHNpbXBsZSBidWZmZXIgcHJvYmUgdGVzdC4gTW9yZSB0bwoJICBjb21lLCBmb29saW9zLgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpOiBDb25uZWN0IHRvCgkgIGhhdmUtZGF0YTo6YnVmZmVyLCBub3QgaGF2ZS1kYXRhLgoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpOiBMaWtld2lzZSBmb3IgaGF2ZS1kYXRhOjpldmVudC4KCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpOiBNb3JlIGRvY3MuIFRoZSBwYXJ0IGFib3V0ICdyZXNvbHZpbmcgdGhlCgkgIHBlZXInIGlzbid0IHF1aXRlIHJpZ2h0IHlldCB0aG91Z2guCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUsIGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKQoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSk6IENoYW5nZSB0byB0YWtlIHRoZSBndWludCBoYW5kbGVyX2lkCgkgIGFzIHRoZWlyIGFyZywgbm90IHRoZSBmdW5jdGlvbitkYXRhLCB3aGljaCBpcyBtb3JlIGdsaWItbGlrZS4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKTogQWRkIGEgZGV0YWlsIHRvCgkgIHRoZSBzaWduYWwgZW1pc3Npb24gdG8gaW5kaWNhdGUgaWYgdGhlIGRhdGEgaXMgYSBidWZmZXIgb3IgYW4KCSAgZXZlbnQuCgkgIChnc3RfcGFkX2dldF90eXBlKTogSW5pdGlhbGl6ZSBidWZmZXIgYW5kIGV2ZW50IHF1YXJrcy4KCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCk6IGhhdmUtZGF0YSBpcyBub3cgYSBkZXRhaWxlZCBzaWduYWwsIHllcyBpdAoJICBpcy4KCjIwMDUtMDktMjEgMTE6NTI6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBEb24ndCBwdXQgZnVuY3Rpb25hbCBjb2RlIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBvciBnX3JldHVybl92YWxfaWZfZmFpbCgpIHN0YXRlbWVudHMsIG90aGVyd2lzZSB0aGluZ3Mgd2lsbCBicmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyksCgkgIChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgIERvbid0IHB1dCBmdW5jdGlvbmFsIGNvZGUgaW4gZ19yZXR1cm5faWZfZmFpbCgpIG9yCgkgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgc3RhdGVtZW50cywgb3RoZXJ3aXNlIHRoaW5ncyB3aWxsCgkgIGJyZWFrIHdoZW4gR19ESVNBQkxFX0NIRUNLUyBpcyBkZWZpbmVkIGR1cmluZyBjb21waWxhdGlvbi4KCjIwMDUtMDktMjEgMDk6NDg6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGllZCBhbm90aGVyIG9uZSBhbmQgYWRkZWQgIHNvbWUgb2J2aW91cyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGlubGllZCBhbm90aGVyIG9uZSBhbmQgYWRkZWQgIHNvbWUgb2J2aW91cyBkb2NzCgoyMDA1LTA5LTIxIDA5OjEzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLio6IFByb3Blcmx5IGltcGxlbWVudCBmZHNyYy4gUmVtb3ZlZCBzaWduYWwgYW5kIHRpbWVvdXQsIGJldHRlciBpbXBsZW1lbnRlZCBzb21ld2hlcmUgZWxzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfc3RhcnQpLCAoZ3N0X2Zkc3JjX3N0b3ApLAoJICAoZ3N0X2Zkc3JjX3VubG9jayksIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZHNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFByb3Blcmx5IGltcGxlbWVudCBmZHNyYy4gUmVtb3ZlZCBzaWduYWwgYW5kIHRpbWVvdXQsCgkgIGJldHRlciBpbXBsZW1lbnRlZCBzb21ld2hlcmUgZWxzZS4KCjIwMDUtMDktMjEgMDg6NTg6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTIxIDA4OjQwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC86IHJlbW92ZSBvYnNvbGV0ZSBkb2MgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJICByZW1vdmUgb2Jzb2xldGUgZG9jIGZpbGUKCjIwMDUtMDktMjEgMDc6Mzc6MDIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IERyaW5rIGEgbGl0dGxlIGJlZXIsIGZpeCBhIGxpdHRsZSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6IERyaW5rIGEKCSAgbGl0dGxlIGJlZXIsIGZpeCBhIGxpdHRsZSBsZWFrLgoKMjAwNS0wOS0yMCAyMDo1NDozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICByZW1vdmUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBmaWxlcwoKMjAwNS0wOS0yMCAyMDo0MDowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGlubGluZWQsIHNwbGl0dGVkIGdzdGluZGV4LntjLGh9CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9jbGFzc19pbml0KSwgKGdzdF9pbmRleF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfZmluYWxpemUpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfbmV3KSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2Rlc3Ryb3kpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfZmluZCksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9jcmVhdGUpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfbWFrZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpOgoJICBtb3JlIGRvY3MgaW5saW5lZCwgc3BsaXR0ZWQgZ3N0aW5kZXgue2MsaH0KCjIwMDUtMDktMjAgMjA6MTk6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZml4IGEgbGVhayBpbiBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBsZWFrIGluIGNvbnRyb2xsZXIKCjIwMDUtMDktMjAgMTk6MTY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpOgoJICBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoKMjAwNS0wOS0yMCAxNzozODo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3luYyBwcm9wZXJ0eSBzZXR0YWJsZSBmcm9tIHN1YmNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCk6CgkgIE1ha2Ugc3luYyBwcm9wZXJ0eSBzZXR0YWJsZSBmcm9tIHN1YmNsYXNzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCjIwMDUtMDktMjAgMTc6MzA6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBUaGUgdGltZW91dCBoYW5kbGVyIHNob3VsZCBoYXZlIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNvdXJjZSBzbyB3ZSBkb24ndCB0aW1lb3V0IGJlZm9yZSBwb3BwaW5nIGEgbWVzc2FnZSB3aXRoIDAgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAocG9sbF9mdW5jKSwgKHBvbGxfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBUaGUgdGltZW91dCBoYW5kbGVyIHNob3VsZCBoYXZlIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNvdXJjZQoJICBzbyB3ZSBkb24ndCB0aW1lb3V0IGJlZm9yZSBwb3BwaW5nIGEgbWVzc2FnZSB3aXRoIDAgdGltZW91dC4KCSAgRHVtcCBlcnJvciBtZXNzYWdlcyBhZnRlciBmYWlsZWQgc3RhdGUgY2hhbmdlLgoKMjAwNS0wOS0yMCAxNzoyMToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA1LTA5LTIwIDE1OjQ1OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZSB0aGUgc3luYyBwcm9wZXJ0eSBmcm9tIGZha2VzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgcmVtb3ZlIHRoZSBzeW5jIHByb3BlcnR5IGZyb20gZmFrZXNpbmsuCgkgIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygc2V0dGluZyBzeW5jIFRSVUUKCSAgZm9yIGZha2VzaW5rLCB3aGljaCBpcyBhIGNoYW5nZS4gIEFueW9uZSB3aG8ga25vd3MgaG93CgkgIHRvIGZpeCB0aGlzIG5pY2VseSBpbiBhIEdPYmplY3QteSB3YXksIGZlZWwgZnJlZS4KCjIwMDUtMDktMjAgMTU6MTk6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IHJlbW92ZSBwcm9iZSByZWZzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIHJlbW92ZSBwcm9iZSByZWZzZWN0aW9uCgoyMDA1LTA5LTIwIDEyOjUwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZGlzYWJsZSB2YWxncmluZGluZyB0aGUgY29udHJvbGxlciB0ZXN0IGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHZhbGdyaW5kaW5nIHRoZSBjb250cm9sbGVyIHRlc3QgYWdhaW4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1cGRhdGUgZm9yIGFwaS1jaGFuZ2VzCgoyMDA1LTA5LTIwIDEyOjA1OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkZWQgc3luYyBwcm9wZXJ0eSB0byBiYXNlc2luayB0byBkaXNhYmxlIGNsb2NrIHN5bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBzeW5jIHByb3BlcnR5IHRvIGJhc2VzaW5rIHRvIGRpc2FibGUgY2xvY2sgc3luYy4KCjIwMDUtMDktMjAgMTE6MDk6NTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6IEF2b2lkIGVhdGluZyB0aGUgY2FsbGVyJ3MgcmVmY291bnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6IEF2b2lkCgkgIGVhdGluZyB0aGUgY2FsbGVyJ3MgcmVmY291bnQuCgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UKQoJICAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IENvbmRpdGlvbmFsbHkgZm9uZGxlIHRoZSByaWdodAoJICByZWZjb3VudC4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW4gKEdTVF9IQVZFX0dMSUJfMl84KToKCSAgKiBjb25maWd1cmUuYWMgKEdTVF9IQVZFX0dMSUJfMl84X0RFRklORSk6IE1ha2UgdGhlIGF2YWlsYWJpbGl0eQoJICBvZiBHTGliIDIuOCBwdWJsaWMsIHNvIHdlIGNhbiBrbm93IHdoaWNoIHJlZmNvdW50IHRvIGNoZWNrIGluCgkgIHRlc3RzLgoJICAqIGdzdC9nc3RvYmplY3QuYzogVXNlIHRoZSBHU1RfSEFWRV9HTElCXzJfOCBkZWZpbmUuCgkgIChnc3Rfb2JqZWN0X2luaXQpOiBPbmx5IHNldCB0aGUgZ3N0IHJlZmNvdW50IGlmIHdlJ3JlIGdvaW5nIGFoZWFkCgkgIHdpdGggdGhlIHJlZmNvdW50IGhhY2suCgoyMDA1LTA5LTIwIDEwOjQxOjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGxlYWtzIHBsdW1iZWQsIGFkZGVkIG1vcmUgZGVidWctbG9nZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChwbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KToKCSAgbW9yZSBsZWFrcyBwbHVtYmVkLCBhZGRlZCBtb3JlIGRlYnVnLWxvZ2dpbmcKCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIHdoaXRlc3BhY2UgZml4CgoyMDA1LTA5LTIwIDA5OjQ3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgcmVtb3ZlIGluY2x1ZGUgb2YgcmVtb3ZlZCBoZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpbmNsdWRlIG9mIHJlbW92ZWQgaGVhZGVyCgoyMDA1LTA5LTIwIDA5OjI4OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiBDb21taXQgZnJvbSB0aGUgUG9saXRpY2FsIFBhcnR5IEZvciBNb3JlIEF0b21pYyBDVlMgQ29tbWl0cywgc28gdGhhdCBwZW9wbGUgZG9uJ3Qgd2FzdGUgdG9vIG11Y2ggb2YgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIENvbW1pdCBmcm9tIHRoZSBQb2xpdGljYWwgUGFydHkgRm9yIE1vcmUgQXRvbWljIENWUyBDb21taXRzLAoJICBzbyB0aGF0IHBlb3BsZSBkb24ndCB3YXN0ZSB0b28gbXVjaCBvZiB0aGVpciBkYXkgZmlzaGluZwoJICBvdXQgb2J2aW91cyBsZWFrcyBvdXQgb2YgbWFzc2l2ZSBjb21taXRzLgoJICBPaCwgYW5kIGZpeCBhIHByZXR0eSBkYW1uIG9idmlvdXMgbGVhayBpbiB0aGUgbWVtY2h1bmsKCSAgcmVtb3ZhbCBjb2RlLgoKMjAwNS0wOS0yMCAwOToyMzozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svOiBwbHVnIG1lbS1sZWFrLCByZS1hZGQgdG8gdmFsZ3JpbmRhYmxlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKHBsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgcGx1ZyBtZW0tbGVhaywgcmUtYWRkIHRvIHZhbGdyaW5kYWJsZSB0ZXN0cwoKMjAwNS0wOS0yMCAwOTowODoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgdW5icmVhayB0aGUgYnVpbGQgZm9yIHRob3NlIHdobyBoYXZlIGNocm9uaWMgYXJ0aHJpdGlzIGFuZCB0eXBpbmcgIm1ha2UgY2hlY2siIGlzIGp1c3QgdG9vIHRheGluZyBvbiB0aGUgaGFuZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVuYnJlYWsgdGhlIGJ1aWxkIGZvciB0aG9zZSB3aG8gaGF2ZSBjaHJvbmljIGFydGhyaXRpcwoJICBhbmQgdHlwaW5nICJtYWtlIGNoZWNrIiBpcyBqdXN0IHRvbyB0YXhpbmcgb24gdGhlIGhhbmRzCgoyMDA1LTA5LTIwIDA4OjI1OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Lmg6IFJlLWFkZCBtYXJzaGFsIHRvIGdzdC5oJ3MgaW5jbHVkZSBsaXN0IC0tIGlmIHdlIHJlYWxseSB3YW50IGl0IG91dCwgeW91IHNob3VsZCBmaXggcGx1Z2lucyBhdCB0aGUgc2FtZSB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Lmg6IFJlLWFkZCBtYXJzaGFsIHRvIGdzdC5oJ3MgaW5jbHVkZSBsaXN0IC0tIGlmIHdlCgkgIHJlYWxseSB3YW50IGl0IG91dCwgeW91IHNob3VsZCBmaXggcGx1Z2lucyBhdCB0aGUgc2FtZSB0aW1lLgoKMjAwNS0wOS0yMCAwNzozMjo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbWlzc2luZyBzeW1ib2xzIHRvIGFwaSBkb2NzIGRpc2FibGUgcmVmLWNvdW50IGhhY2sgaWYgd2UgaGF2ZSBnbGliID49IDIuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGFkZGVkIG1pc3Npbmcgc3ltYm9scyB0byBhcGkgZG9jcwoJICBkaXNhYmxlIHJlZi1jb3VudCBoYWNrIGlmIHdlIGhhdmUgZ2xpYiA+PSAyLjgKCjIwMDUtMDktMjAgMDY6Mjg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW06IElnbm9yZSBhIGZldyBtb3JlIGludGVybmFsIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06IElnbm9yZSBhIGZldyBtb3JlIGludGVybmFsIGhlYWRlcnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgb2xkIHNlY3Rpb25zCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlIG9sZCBzZWN0aW9ucwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6IHVwZGF0ZS4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBtZW1jaHVuayBhbmQgdHJhc2hzdGFjaywgc2luY2UgdGhleSdyZQoJICBub3QgdXNlZC4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVpbml0KTogcmVuYW1lIGdzdF9yZWdpc3RyeV9kZWluaXQgdG8gX2NsZWFudXAKCSAgKiBnc3QvZ3N0Lmg6IGRvbid0IGluY2x1ZGUgc29tZSBoZWFkZXJzCgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogYWRkIGdzdG1hcnNoYWwuaAoJICAqIGdzdC9nc3RjbG9jay5jOiBEb24ndCB1c2UgbWVtY2h1bmtzCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogQWRkIHNvbWUgZG9jcwoJICAqIGdzdC9nc3RvYmplY3QuYzogcmVtb3ZlIERFU1RST1lFRCBmbGFnLCBzaW5jZSBpdCdzIHJlZHVuZGFudAoJICAqIGdzdC9nc3RvYmplY3QuaDogc2FtZQoJICAqIGdzdC9nc3RwbHVnaW4uYzogaW5jbHVkZSBnc3RtYWNyb3MuaAoJICAqIGdzdC9nc3RwbHVnaW4uaDogZG9uJ3QgaW5jbHVkZSBnc3RtYWNyb3MuaCwgc2luY2UgaXQncyBwcml2YXRlCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IGRvbid0IHVzZSBtZW1jaHVua3MKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogcmVuYW1lIGdzdF9yZWdpc3RyeV9kZWluaXQoKQoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOiBzYW1lCgoyMDA1LTA5LTIwIDA1OjEzOjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IFJlbW92ZSBkb2NzIGZvciBnZXRiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IFJlbW92ZSBkb2NzIGZvciBnZXRiaXRzCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0cHV0Yml0cy5zZ21sOgoKMjAwNS0wOS0yMCAwMDoyNzozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBBZGQgYSBzbGVlcCB0byBlbnN1cmUgZWxlbWVudHMgaGF2ZSBhIGNoYW5jZSB0byBzdGFydCB0aGVpciBwYWQgdGFza3MgYmVmb3JlIHNodXRkb3duLiBSZWR1Y2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSk6CgkgIEFkZCBhIHNsZWVwIHRvIGVuc3VyZSBlbGVtZW50cyBoYXZlIGEgY2hhbmNlIHRvIHN0YXJ0IHRoZWlyCgkgIHBhZCB0YXNrcyBiZWZvcmUgc2h1dGRvd24uIFJlZHVjZXMgcmFjeSB0ZXN0IHJlc3VsdHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgVGltZSBvdXQgdGhlIHNlbGVjdCBldmVyeSBub3cgYW5kIHRoZW4gdG8gY2hlY2sgZm9yIHNodXRkb3duLgoKMjAwNS0wOS0xOSAyMDowMTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2dzdGVudW10eXBlcy4qOiBVcGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUuCgoyMDA1LTA5LTE5IDE2OjMyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEF1dG9tYXRpY2FsbHkgUEFVU0UgYW5kIFJFU1VNRSBhIHBpcGVsaW5lIHdoZW4gYSBmbHVzaGluZyBzZWVrIGlzIHBlcmZvcm1lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChkb19waXBlbGluZV9zZWVrKSwgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgQXV0b21hdGljYWxseSBQQVVTRSBhbmQgUkVTVU1FIGEgcGlwZWxpbmUgd2hlbiBhIGZsdXNoaW5nIHNlZWsKCSAgaXMgcGVyZm9ybWVkLgoJICBSZW1vdmVkIG9sZCBmaWxlcy4KCjIwMDUtMDktMTkgMTY6Mjg6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICB3aGl0ZXNwYWNlIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXgKCjIwMDUtMDktMTkgMTU6MTI6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5oOiBTcGFjaW5nIGZpeGVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDogU3BhY2luZyBmaXhlbi4KCjIwMDUtMDktMTkgMTQ6NTU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZSBtb3JlIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZSBtb3JlIGNvcnJlY3RseS4KCjIwMDUtMDktMTkgMTQ6NDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBlbmFibGUgY2xlYW51cCBhZ2FpbiBhZnRlciBmaXhpbmcgdGhlIGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGVuYWJsZSBjbGVhbnVwIGFnYWluIGFmdGVyIGZpeGluZyB0aGUgbGVhawoJICAqIGRvY3MvUkVBRE1FOgoJICBzb21lIG1vcmUgaW5mbyBvbiBkb2NzCgoyMDA1LTA5LTE5IDE0OjIwOjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZG9uJ3QgY29tcGxhaW4gYWJvdXQgbXkgQVJNIC5zbyBmaWxlcy4gIEFub3RoZXIgcmVhc29uIHdoeSBpdCBkb2VzIG1ha2Ugc2Vuc2UgdG8gaGF2ZSBwbHVnaW5zIGZvbGxvdyBhIHN0YW5kYXJkIGZpbGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBjb21wbGFpbiBhYm91dCBteSBBUk0gLnNvIGZpbGVzLiAgQW5vdGhlciByZWFzb24gd2h5IGl0IGRvZXMgbWFrZSBzZW5zZQoJICB0byBoYXZlIHBsdWdpbnMgZm9sbG93IGEgc3RhbmRhcmQgZmlsZSBuYW1lIHBhdHRlcm4gbGlrZSBsaWJnc3Qod2hhdGV2ZXIpLnNvCgoyMDA1LTA5LTE5IDE0OjA5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiByZS1lbmFibGUgdGVzdHMgbm93IHRoYXQgbGVha3MgYXJlIHBsdWdnZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlLWVuYWJsZSB0ZXN0cyBub3cgdGhhdCBsZWFrcyBhcmUgcGx1Z2dlZAoJICAqIGNoZWNrL2dzdC9nc3QuYzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBzb21lIG1vcmUgdGVzdHMgd2hpbGUgZml4aW5nIGxlYWtzCgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgbWFrZSBzdXJlIGJpbmFyaWVzIGFyZSB1cHRvZGF0ZSB3aGVuIHZhbGdyaW5kaW5nL2dkYmluZwoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgcmVtb3ZlIGEgcmVmIHRvbyBtYW55LCBhbmQgYWRkIGEgRklYTUUgZm9yIHdoZW4gd2UgZ2V0CgkgIHJvdW5kIHRvIGRpc3Bvc2luZyBvZiBjbGFzc2VzCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggdGhlIHJlZmNvdW50aW5nIHdoZW4gbG9hZGluZyBhIHBsdWdpbiBmcm9tIGEgZmlsZSBhbmQKCSAgdGhlIGNvZGUgcHJldGVuZHMgdGhhdCB0aGUgcG9pbnRlciBpcyB0aGUgc2FtZSBldmVuIHRob3VnaAoJICBvZiBjb3Vyc2UgaXQgY2FuIGNoYW5nZQoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHVucmVmIHBsdWdpbnMgbWFya2VkIGNhY2hlZCAoYSBiaXQgY29uZnVzaW5nIGFzIGEgbmFtZSkKCSAgYXMgdGhlIGRvY3Mgc3RhdGUgc2hvdWxkIGJlIGRvbmUKCSAgdmFyaW91cyBkb2MgYWRkaXRpb25zIHRvIGV4cGxhaW4gcmVmY291bnRpbmcKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgZGVidWdnaW5nCgoyMDA1LTA5LTE5IDE0OjA5OjM3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wOS0xOSAxMToxODowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEdzdEJ1c0hhbmRsZXIgLT4gR3N0QnVzRnVuYywgcmV0dXJuIHZhbHVlIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIGFueSBvdGhlciBHU291cmNlIChGQUxTRSA9PSByZW1vdmUgc291cmNlKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAoc2VuZF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLAoJICAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLCAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF93YXRjaCksIChwb2xsX2Z1bmMpLCAocG9sbF90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBHc3RCdXNIYW5kbGVyIC0+IEdzdEJ1c0Z1bmMsIHJldHVybiB2YWx1ZSBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcwoJICBhbnkgb3RoZXIgR1NvdXJjZSAoRkFMU0UgPT0gcmVtb3ZlIHNvdXJjZSkuCgkgIF9hZGRfd2F0Y2goKSBhbmQgX2FkZF93YXRjaF9mdWxsKCkgbm93IHRha2UgYSBNZXNzYWdlVHlwZSBtYXNrIHRvCgkgIG9ubHkgaGFuZGxlIHNwZWNpZmljIHR5cGVzIG9mIG1lc3NhZ2VzLgoJICBfcG9sbCgpIHJldHVybnMgdGhlIEdzdE1lc3NhZ2UgaW5zdGVhZCBvZiB0aGUgbWVzc2FnZSB0eXBlIHRvIGF2b2lkCgkgIHJhY2UgY29uZGl0aW9ucy4KCSAgX2hhdmVfcGVuZGluZygpIHRha2VzIGEgTWVzc2FnZVR5cGUgbWFzayBub3cgdG9vLgoJICBBZGRlZCB0ZXN0c3VpdGUgZm9yIG11bHRpcGxlIGJ1cyB3YXRjaGVzLgoJICBGaXggdGVzdHN1aXRlcyBhbmQgYXBwbGljYXRpb25zIGZvciBuZXcgYnVzIEFQSS4KCjIwMDUtMDktMTggMjI6MTU6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1hcmsgYSBidW5jaCBvZiB0aGUgdGVzdHMgYXMgdG8gZml4IHVudGlsIHdlIGZpeCB0aGVtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYXJrIGEgYnVuY2ggb2YgdGhlIHRlc3RzIGFzIHRvIGZpeCB1bnRpbCB3ZSBmaXggdGhlbQoKMjAwNS0wOS0xOCAyMTo0MDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vY2hlY2subWFrOiB1c2UgR1NUX1BMVUdJTiBzZXR0aW5ncyBmb3IgdmFsZ3JpbmQgdGVzdHMgYXMgd2VsbCwgc28gd2UncmUgdmFsZ3JpbmRpbmcgdGhlIGNvcnJlY3QgdGhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgdXNlIEdTVF9QTFVHSU4gc2V0dGluZ3MgZm9yIHZhbGdyaW5kIHRlc3RzIGFzIHdlbGwsIHNvIHdlJ3JlCgkgIHZhbGdyaW5kaW5nIHRoZSBjb3JyZWN0IHRoaW5nCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgcGx1ZyBhbm90aGVyIGxlYWsKCjIwMDUtMDktMTggMjE6MjQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICB2YXJpb3VzIGNsZWFudXBzIGFuZCBtZW1sZWFrIHBsdWdnaW5nLiAgbWFrZSB2YWxncmluZCBpcyBoYXBweSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIGNsZWFudXBzIGFuZCBtZW1sZWFrIHBsdWdnaW5nLiAgbWFrZSB2YWxncmluZCBpcyBoYXBweSBub3cuCgoyMDA1LTA5LTE4IDIxOjIzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGFkZCBjaGVjay12YWxncmluZCB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBjaGVjay12YWxncmluZCB0YXJnZXQKCjIwMDUtMDktMTggMDk6MTU6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGxvYWRpbmcgYSBwbHVnaW4gY2FuIHJldHVybiBOVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2FkaW5nIGEgcGx1Z2luIGNhbiByZXR1cm4gTlVMTAoKMjAwNS0wOS0xOCAwNzo0MToyOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgdGhlIEdPcHRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHRoZSBHT3B0aW9uIGNvZGUuCgoyMDA1LTA5LTE4IDA2OjU5OjI1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBGaXggZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogRml4IGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgIENoYW5nZSByZWdpc3RyeSB0byBrZWVwIHRyYWNrIG9mIGJvdGggcGx1Z2lucyBhbmQgZmVhdHVyZXMsCgkgIHJlbW92aW5nIHRoZSBmZWF0dXJlIHRyYWNraW5nIGZyb20gcGx1Z2lucyB0aGVtc2VsdmVzLgoKMjAwNS0wOS0xNyAxODoxNDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgoyMDA1LTA5LTE3IDE4OjExOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCjIwMDUtMDktMTYgMTE6MjQ6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBhZGQgbWlzaW5nIGluY2x1ZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNpbmcgaW5jbHVkZQoKMjAwNS0wOS0xNiAwODoxNzo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCB0aGUgcmlnaHQgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzZXQgdGhlIHJpZ2h0IHZhcgoKMjAwNS0wOS0xNiAwODoxNDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXJlZ2lzdGVyLjEuaW46CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCjIwMDUtMDktMTYgMDQ6NTQ6MjQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgR2V0dGluZyB0aXJlZCBvZiBkZWJ1Z2dpbmcuICBEaXNhYmxlZCBhbGwgdGhlIHVucmVmZmluZyBvZiBwbHVnaW5zIGFuZCBmZWF0dXJlcywgd2hpY2ggZml4ZXMgdGhlIHNlZ2ZhdWx0cywgYnV0IG9mIGNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgR2V0dGluZyB0aXJlZCBvZiBkZWJ1Z2dpbmcuICBEaXNhYmxlZCBhbGwgdGhlIHVucmVmZmluZyBvZgoJICBwbHVnaW5zIGFuZCBmZWF0dXJlcywgd2hpY2ggZml4ZXMgdGhlIHNlZ2ZhdWx0cywgYnV0IG9mCgkgIGNvdXJzZSBsZWFrcyBsaWtlIGNyYXp5LiAgQXQgbGVhc3QgcGxheWJpbiB3b3Jrcy4KCjIwMDUtMDktMTYgMDM6NDY6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBNb3JlIHRlc3RpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAocmVnaXN0ZXJfY2hlY2tfZWxlbWVudHMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocGVlayksIChzdWdnZXN0KSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBNb3JlIHRlc3RpbmcKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZpeCByZWZjb3VudGluZy4KCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoKMjAwNS0wOS0xNiAwMDozNzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdW52ZXJib3NpZnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVudmVyYm9zaWZ5CgoyMDA1LTA5LTE2IDAwOjA4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHNvbWUgd2hpdGVzcGFjZSB0byB0cmlnZ2VyIGEgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgd2hpdGVzcGFjZSB0byB0cmlnZ2VyIGEgYnVpbGQKCjIwMDUtMDktMTYgMDA6MDI6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZGV4LmM6IGdldCByZWZjb3VudGluZyBjb3JyZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogZ2V0IHJlZmNvdW50aW5nIGNvcnJlY3QuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGZlYXR1cmUvcGx1Z2luIGlzCgkgIG5vdCBmb3VuZC4KCjIwMDUtMDktMTUgMjM6NTE6MjQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svOiBBZGQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IEFkZCB0ZXN0CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBGaXggcHJvYmxlbXMgbm90aWNlZCBieSB0ZXN0c3VpdGUKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgoyMDA1LTA5LTE1IDIwOjU2OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSW1wbGVtZW50IHNlbWktZGVjZW50IHJlY291bnRpbmcgYW5kIGxvY2tpbmcgaW4gcGx1Z2lucyBhbmQgcGx1Z2luIGZlYXR1cmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IEltcGxlbWVudCBzZW1pLWRlY2VudCByZWNvdW50aW5nIGFuZCBsb2NraW5nCgkgIGluIHBsdWdpbnMgYW5kIHBsdWdpbiBmZWF0dXJlcy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoKMjAwNS0wOS0xNSAxNDoyMTowOCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbi4gVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHRoZSBiYXNpY3Mgb2YgdHlwZWZpbmRpbmcgd29ya2luZyAtIG9nZ2RlbXV4IHN1Y2NlZWRzIG5vdy4gZGVjb2RlYmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcGxlbWVudCBtaXNzaW5nIGZ1bmN0aW9uLiBUaGlzIGlzIGVub3VnaCB0byBnZXQgdGhlIGJhc2ljcyBvZgoJICB0eXBlZmluZGluZyB3b3JraW5nIC0gb2dnZGVtdXggc3VjY2VlZHMgbm93LiBkZWNvZGViaW4gaXMgc3RpbGwgYnJva2VuLgoKMjAwNS0wOS0xNSAwNTo1ODozNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFkZCAtbm8tdW5kZWZpbmVkIHRvIEdTVF9QTFVHSU5fTERGTEFHUyAoYnVnICMzMTYwNzYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogQWRkIC1uby11bmRlZmluZWQgdG8gR1NUX1BMVUdJTl9MREZMQUdTIChidWcKCSAgIzMxNjA3NikKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogQWRkIC1uby11bmRlZmluZWQgdG8gTERGTEFHUyBmb3IgbGlicwoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCjIwMDUtMDktMTUgMDU6NDg6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgZ2V0Yml0cyBsaWJyYXJ5LiAgTm90aGluZyB1c2VzIGl0LCBhbmQgaXQgc2hvdWxkIGJlIGluIHNvbWV0aGluZyBsaWtlIGxpYm9pbCBpZiBzb21lb25lIGRpZCB3YW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdldGJpdHMgbGlicmFyeS4gIE5vdGhpbmcgdXNlcyBpdCwgYW5kCgkgIGl0IHNob3VsZCBiZSBpbiBzb21ldGhpbmcgbGlrZSBsaWJvaWwgaWYgc29tZW9uZSBkaWQgd2FudAoJICB0byB1c2UgaXQuCgkgICogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2didGVzdC5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2V0Yml0cy5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2V0Yml0cy5oOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19nZW5lcmljLmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2kzODYuczoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfaW5sLmg6CgoyMDA1LTA5LTE1IDA1OjQyOjEzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogRGlzdCBnbGliLWNvbXBhdC5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogRGlzdCBnbGliLWNvbXBhdC5oCgoyMDA1LTA5LTE1IDAzOjIwOjQ5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdzdC9yZWdpc3RyaWVzLCBzaW5jZSBpdCdzIG5vIGxvbmdlciB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBnc3QvcmVnaXN0cmllcywgc2luY2UgaXQncyBubyBsb25nZXIgdXNlZC4KCSAgKiBnc3QvcmVnaXN0cmllcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL3JlZ2lzdHJ5dGVzdC5jOgoKMjAwNS0wOS0xNSAwMTozODozMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvOiBDb252ZXJnZW5jZSBpcyBuZWFyLiAgU2VyaW91c2x5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgQ29udmVyZ2VuY2UgaXMgbmVhci4gIFNlcmlvdXNseS4KCjIwMDUtMDktMTUgMDE6MzQ6NTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0Lio6IEF0dGVtcHQgIzQgdG8gYXBwZWFzZSB0aGUgYnVpbGRib3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgQXR0ZW1wdCAjNCB0byBhcHBlYXNlIHRoZSBidWlsZGJvdHMuCgoyMDA1LTA5LTE1IDAxOjI2OjQyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC5jOiBBdHRlbXB0ICMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgQXR0ZW1wdCAjMy4KCjIwMDUtMDktMTUgMDE6MjA6MjIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0LmM6IEF0dGVtcHQgIzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICBBdHRlbXB0ICMyLgoKMjAwNS0wOS0xNSAwMToxNDoxNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IE9oIHllYWgsIGxpYmdzdHJlYW1lci5zbyBuZWVkcyB0byBjb250YWluIHRoZSBuZXcgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IE9oIHllYWgsIGxpYmdzdHJlYW1lci5zbyBuZWVkcyB0byBjb250YWluCgkgIHRoZSBuZXcgZnVuY3Rpb25zLgoKMjAwNS0wOS0xNSAwMToxMDo1MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuKjogQWRkIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIGluIG5ld2VyIHZlcnNpb25zIG9mIGdsaWIgdGhhbiB3ZSBjYXJlIHRvIHJlcXVpcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOiBBZGQgc29tZSBmdW5jdGlvbnMgdGhhdCBhcmUgaW4gbmV3ZXIgdmVyc2lvbnMKCSAgb2YgZ2xpYiB0aGFuIHdlIGNhcmUgdG8gcmVxdWlyZS4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogVXNlIHRoZW0uCgoyMDA1LTA5LTE1IDAwOjQ4OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHBvL1BPVEZJTEVTLmluOiByZW1vdmUgZ3N0LXJlZ2lzdGVyLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46IHJlbW92ZSBnc3QtcmVnaXN0ZXIuYwoKMjAwNS0wOS0xNSAwMDo0MjowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC86IERvY3VtZW50YXRpb24gdXBkYXRlcyBmb3IgcmVnaXN0cnkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgZm9yIHJlZ2lzdHJ5IGNoYW5nZXMuCgoyMDA1LTA5LTE1IDAwOjM1OjExICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDb3B5IGdfbWtkaXJfd2l0aF9wYXJlbnQoKSBmcm9tIGdsaWIsIGJlY2F1c2Ugd2UgZG9uJ3QgcmVxdWlyZSBnbGliLTIuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENvcHkgZ19ta2Rpcl93aXRoX3BhcmVudCgpIGZyb20gZ2xpYiwKCSAgYmVjYXVzZSB3ZSBkb24ndCByZXF1aXJlIGdsaWItMi44LgoKMjAwNS0wOS0xNSAwMDoyMDoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWRkZWQuICBFc3NlbnRpYWxseSBtb3ZlZCBvdXQgb2YgdGhlIHJlZ2lzdHJpZXMgZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWRkZWQuICBFc3NlbnRpYWxseSBtb3ZlZCBvdXQgb2YgdGhlCgkgIHJlZ2lzdHJpZXMgZGlyZWN0b3J5LgoKMjAwNS0wOS0xNSAwMDoxMzoyNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICByZW1vdmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0aW5kZXguYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzogcmVtb3ZlCgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXJlZ2lzdGVyLmM6IHJlbW92ZQoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlZ2lzdHJ5IHJld3JpdGUuICBDaGFuZ2VzIHJlZ2lzdHJ5IGZyb20gYmVpbmcgYSBmaWxlIGNyZWF0ZWQKCSAgYnkgYSB0b29sIGludG8gYSBzaW1wbGUgY2FjaGUgZmlsZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYnkKCSAgbGliZ3N0cmVhbWVyLiAgUmVtb3ZlZCBnc3QtcmVnaXN0ZXIgKGJlY2F1c2UgaXQncyBubyBsb25nZXIKCSAgbmVlZGVkKS4gIFJlbW92ZSByZWdpc3RyeSBwb29scywgYmVjYXVzZSB3ZSBvbmx5IGhhdmUgb25lCgkgIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uIChYTUwpLiAgRml4IHVwIG90aGVyIHN1YnN5c3RlbXMgYXMKCSAgbmVjZXNzYXJ5LgoKMjAwNS0wOS0xNCAyMjowNTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgd2hvb3BzLCB3cm9uZyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdob29wcywgd3JvbmcgY29tbWl0CgoyMDA1LTA5LTE0IDIyOjAxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgbm90ZXMgb24gZG9jdW1lbnRpbmcgZWxlbWVudHMgYW5kIHBsdWdpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5vdGVzIG9uIGRvY3VtZW50aW5nIGVsZW1lbnRzIGFuZCBwbHVnaW5zCgoyMDA1LTA5LTE0IDE1OjE2OjMzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmVzdCBvZiB0aGUgZml4IGZvciAzMTYxNTU6IGRvbid0IGNvbmZ1c2UgTWluR1cgd2hlbiBydW5uaW5nIGdsaWItbWtlbnVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVzdCBvZiB0aGUgZml4IGZvciAzMTYxNTU6IGRvbid0IGNvbmZ1c2UgTWluR1cgd2hlbiBydW5uaW5nIGdsaWItbWtlbnVtcwoKMjAwNS0wOS0xMyAxNTowMzowNSArMDAwMCAgU3RldmUgTGhvbW1lIDxzdGV2ZS5saG9tbWVAZnJlZS5mcj4KCgkgIGZpbGUgZ3N0LXR5cGVmaW5kLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0LXR5cGVmaW5kLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDktMTMgMTQ6NDk6MjMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBEb24ndCB1c2Ugd2luZG93cyBsaW5raW5nIGF0dHJpYnV0ZXMgaW4gTWluR1cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvbid0IHVzZSB3aW5kb3dzIGxpbmtpbmcgYXR0cmlidXRlcyBpbiBNaW5HVwoKMjAwNS0wOS0xMyAxMTowMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQXBwYXJlbnRseSBwZW9wbGUgdGhpbmsgaXQncyBiZXR0ZXIgaWYgdGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRyeSB0byBzZXQgdGhlIHN0YXRlIHRvIHdoYXRldmVyIHN0YXRlIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChzZXRfc3RhdGVfYXN5bmNfdGhyZWFkX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jKToKCSAgQXBwYXJlbnRseSBwZW9wbGUgdGhpbmsgaXQncyBiZXR0ZXIgaWYgdGhpcyBmdW5jdGlvbiBkb2Vzbid0CgkgIHRyeSB0byBzZXQgdGhlIHN0YXRlIHRvIHdoYXRldmVyIHN0YXRlIHdhcyBhc2tlZCBmb3Igb24gdGhlIGZpcnN0CgkgIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBmb3IgYW55IG9iamVjdC4gIFNlcmlvdXNseS4KCjIwMDUtMDktMTIgMTg6MTQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jIG1ldGhvZCB0aGF0IHNldHMgdGhlIHN0YXRlIGFuZCBzdGFydHMgYSB0aHJlYWQgdG8gbWFrZSBzdXJlIHRoZSBzdGF0ZSBjaGFuZ2UgY29tcGxlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChzZXRfc3RhdGVfYXN5bmNfdGhyZWFkX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgYWRkIGEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jIG1ldGhvZCB0aGF0CgkgIHNldHMgdGhlIHN0YXRlIGFuZCBzdGFydHMgYSB0aHJlYWQgdG8gbWFrZSBzdXJlIHRoZSBzdGF0ZQoJICBjaGFuZ2UgY29tcGxldGVzIGFzIGJlc3QgYXMgaXQgY2FuCgoyMDA1LTA5LTEyIDE3OjAxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBjb2RpZnkgZGVzaWduK2JlaGF2aW91ciBpbiB0ZXN0c3VpdGUgYWZ0ZXIgZGlzY3Vzc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29kaWZ5IGRlc2lnbitiZWhhdmlvdXIgaW4gdGVzdHN1aXRlIGFmdGVyIGRpc2N1c3Npb24KCjIwMDUtMDktMTIgMTY6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBhIHF1b3RlCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIGFkZCBzb21lIGRlYnVnCgoyMDA1LTA5LTEyIDEzOjQ1OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgZm9yIHN1Yi1jbGFzc2VzIHRvIGNhbGwgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiBvZiBwcmVwYXJlX291dHB1dF9idWZmZXIgd2l0aCBhIHdyYXBwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgUmVtb3ZlIHRoZSByZXF1aXJlbWVudCBmb3Igc3ViLWNsYXNzZXMgdG8gY2FsbCB0aGUgcGFyZW50CgkgIGltcGxlbWVudGF0aW9uIG9mIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB3aXRoIGEgd3JhcHBlciBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgRml4ICNkZWZpbmUgd3JhcHBlcgoKMjAwNS0wOS0xMSAxOToyMjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbW9yZSBkb2MgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW9yZSBkb2MgY2xlYW51cHMKCjIwMDUtMDktMTEgMTM6MDc6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyBidWlsZCBjbGVhbiwgaHVycmF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgYnVpbGQgY2xlYW4sIGh1cnJheQoKMjAwNS0wOS0xMSAxMjo1NzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHZhcmlvdXMgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIGRvYyBmaXhlcwoKMjAwNS0wOS0xMSAxMjowMjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGZpeCBzaWxseSBidWcgdGhhdCBjYXVzZWQgYnVpbGQgdG8gZmFpbCB3aGVuIGNoZWNrIGlzIG1pc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBzaWxseSBidWcgdGhhdCBjYXVzZWQgYnVpbGQgdG8gZmFpbCB3aGVuIGNoZWNrIGlzIG1pc3NpbmcKCjIwMDUtMDktMTEgMTI6MDE6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvOiByZWFycmFuZ2UgZ3N0dmFsdWUgc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgcmVhcnJhbmdlIGdzdHZhbHVlIHNlY3Rpb24KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgTk9ORSAtPiBWT0lECgkgICogZ3N0L2dzdHZhbHVlLmM6IChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0wOS0xMSAxMTo1NzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRlYnVnIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBmaXhlcwoKMjAwNS0wOS0wOSAyMzo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IEhlYWRlciBpbmNsdWRlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJICBIZWFkZXIgaW5jbHVkZSBmaXguCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2RlZmF1bHRfcHJlcGFyZV9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgU29tZSBtb3JlIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcyBhbmQgZml4ZXMgdG8gZW5hYmxlIHN1Yi1jbGFzc2VzCgkgIHRoYXQgbW9kaWZ5IGJ1ZmZlciBtZXRhZGF0YSBvbmx5LgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2luaXQpLCAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgSWYgdGhlIG91dHB1dCBwYWQgaGFzIGZpeGVkIGFsbG93ZWQgY2FwcyBhbmQgaW5wdXQgYnVmZmVycwoJICBkb24ndCBoYXZlIGFueSwgc2V0IHRoZSBmaXhlZCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgoyMDA1LTA5LTA5IDE4OjA1OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgb2JqZWN0IGRlYnVnZ2luZyBpcyBnb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvYmplY3QgZGVidWdnaW5nIGlzIGdvb2QKCjIwMDUtMDktMDkgMTc6NDI6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogTWFrZSB0aGUgZXJyb3IgYSBsaXR0bGUgY2xlYXJlciB3aGVuIHRoZSB0ZXN0IGZhaWxzIGJlY2F1c2UgaWRlbnRpdHkgbWFkZSBhIGNvcHkgb2YgdGhlIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIGVycm9yIGEgbGl0dGxlIGNsZWFyZXIgd2hlbiB0aGUgdGVzdCBmYWlscyBiZWNhdXNlCgkgIGlkZW50aXR5IG1hZGUgYSBjb3B5IG9mIHRoZSBidWZmZXIuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTmV3IHN5bWJvbHMgaW4gZ3N0YmFzZXRyYW5zZm9ybS5oCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZGVmYXVsdF9wcmVwYXJlX2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9pbl9wbGFjZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfaW5fcGxhY2UpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2hhbmdlIEJhc2VUcmFuc2Zvcm0gdG8gc2VwYXJhdGUgaW5fcGxhY2Ugb3BlcmF0ZSBmcm9tIHNhbWVfY2FwcwoJICBvdXRwdXQuIGluX3BsYWNlIGltcGxpZXMgdGhhdCB0aGUgZWxlbWVudCBjYW4gcGVyZm9ybSB0aGUgdHJhbnNmb3JtCgkgIG9uIGluY29taW5nIGJ1ZmZlcnMgaW4tcGxhY2UsIGV2ZW4gaWYgdGhlIGNhcHMgb24gdGhlIG91dHB1dCBhcmUKCSAgZGlmZmVyZW50LgoJICBTdWItY2xhc3MgZWxlbWVudHMgY2FuIG5vdyBpbXBsZW1lbnQgc3BlY2lhbCBidWZmZXIgYWxsb2NhdGlvbgoJICBtZXRob2RzIGZvciBvdXRnb2luZyBidWZmZXJzIGlmIHRoZXkgd2lzaCB0by4KCSAgQmlnIGRvY3VtZW50YXRpb24gYWRkaXRpb24uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIENoYW5nZXMgZm9yIGJhc2V0cmFuc2Zvcm0gbW9kaWZpY2F0aW9ucy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgQ29tcGlsZSBmaXguIEV4dHJhIGRlYnVnIG91dHB1dC4KCjIwMDUtMDktMDkgMTU6MTk6MjQgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJICBmaWxlIGdzdGNvbnRyb2wudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3Rjb250cm9sLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDktMDkgMTQ6MzQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBhZGQgdGVzdHMgZm9yIHZhbGlkIHBhZCBuYW1pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobmFtZV9pc192YWxpZCksCgkgIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciB2YWxpZCBwYWQgbmFtaW5nCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpOgoJICBhZGQgQVNTRVJUX1dBUk5JTkcKCSAgcmVtb3ZlIHByaW50aW5nIG9mIGNvZGUsIGl0IGlzIGZyYWdpbGUgd2hlbiB0aGUgY29kZSBjb250YWlucwoJICAlIGFuZCB0aGUgbGluZSBudW1iZXIgaXMgZW5vdWdoIGluZm8KCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3RlbXBsYXRlX25ldyk6CgkgIGZpeCBtZW1sZWFrcwoKMjAwNS0wOS0wOSAxMzoyODowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGFuZCB0aGUgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbmQgdGhlIGNoYW5nZWxvZwoKMjAwNS0wOS0wOSAxMzoyNjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHNheSB3aGF0IENIRUNLIGZsYWdzIHdlIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHNheSB3aGF0IENIRUNLIGZsYWdzIHdlIHVzZQoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9pbmZvKToKCSAgd2UgZG9uJ3QgdXNlIGRhc2hlcyBpbiBoZWFkZXIgbmFtZXMKCjIwMDUtMDktMDkgMTI6MDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBhZGRpbmcgYSB0ZXN0IGZvciBwaXBlbGluZXMgYW5kIHN0YXRlIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3BpcGVsaW5lX3N1aXRlKSwgKG1haW4pOgoJICBhZGRpbmcgYSB0ZXN0IGZvciBwaXBlbGluZXMgYW5kIHN0YXRlIGNoYW5nZXMKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdldF9zdGF0ZV9mdW5jKToKCSAgYWRkIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZpbGUKCjIwMDUtMDktMDggMTc6MjM6NTcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgVmFyaW91cyBmaXhlcyBmb3IgdW5zZWVrYWJsZSwgdW5tbWFwYWJsZSwgYW5kIG5vbi1ub3JtYWwgZmlsZXMsIHNvIHRoYXQgZmFsbGJhY2sgdG8gcmVhZCgpIHJhdGhlciB0aGFuIG1tYXAoKSB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFZhcmlvdXMgZml4ZXMgZm9yIHVuc2Vla2FibGUsIHVubW1hcGFibGUsIGFuZCBub24tbm9ybWFsIGZpbGVzLCBzbyB0aGF0CgkgIGZhbGxiYWNrIHRvIHJlYWQoKSByYXRoZXIgdGhhbiBtbWFwKCkgd29ya3MuCgkgIEFsbG93IG5ld3NlZ21lbnQgZXZlbnRzIHdpdGggc3RhcnQgPT0gZW5kLCBzbyB0aGF0IGNhc2VzIHdoZXJlIHRoYXQncwoJICBjb3JyZWN0IHdvcmsgKGUuZy4gZmlsZXNyYyBvbiBhIHplcm8tc2l6ZSBmaWxlKS4KCjIwMDUtMDktMDggMTE6NDU6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgVXBkYXRlIHRoZSBtYW51YWwgc2VjdGlvbiBvbiBzdGF0ZSBjaGFuZ2VzIGZvciB3aW5nbydzIG5ldyBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSB0aGUgbWFudWFsIHNlY3Rpb24gb24gc3RhdGUgY2hhbmdlcyBmb3Igd2luZ28ncyBuZXcgQVBJCgoyMDA1LTA5LTA3IDE1OjIyOjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogQ2FsbCBnX21vZHVsZV9jbG9zZSB3aGVuIHdlIGRvbid0IGxvYWQgdGhlIG1vZHVsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIENhbGwgZ19tb2R1bGVfY2xvc2Ugd2hlbiB3ZSBkb24ndCBsb2FkIHRoZSBtb2R1bGUKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcHJvcGVydHkpOgoJICBQb3J0IGxlYWsgZml4IGZyb20gMC44CgoyMDA1LTA5LTA3IDE0OjA4OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgbW9yZSByZW5hbWUgZml4aW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSByZW5hbWUgZml4aW5nIC4uLgoKMjAwNS0wOS0wNyAxMzoyMjoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVuYW1lZCBnc3R0YWcgLT4gZ3N0dGFnbGlzdCwgZ3N0dGFnaW50ZXJmYWNlIC0+IGdzdHRhZ3NldHRlciBpbmxpbmVkIGRvY3MgZm9yIGdzdHRyYWNlLCBnc3R0cmFzaHN0YWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuaDoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5jOgoJICByZW5hbWVkIGdzdHRhZyAtPiBnc3R0YWdsaXN0LCBnc3R0YWdpbnRlcmZhY2UgLT4gZ3N0dGFnc2V0dGVyCgkgIGlubGluZWQgZG9jcyBmb3IgZ3N0dHJhY2UsIGdzdHRyYXNoc3RhY2sKCjIwMDUtMDktMDcgMTI6MzU6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IHNwbGl0dGVkIGdzdHR5cGVmaW5kIGludG8gZ3N0dHlwZWZpbmQsIGdzdHR5cGVmaW5kZmFjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jbGFzc19pbml0KSwgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV91bmxvYWRfdGh5c2VsZiksCgkgIChnc3RfdHlwZV9maW5kX2xvYWRfcGx1Z2luKSwgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfbGlzdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2NhcHMpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9leHRlbnNpb25zKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICBzcGxpdHRlZCBnc3R0eXBlZmluZCBpbnRvIGdzdHR5cGVmaW5kLCBnc3R0eXBlZmluZGZhY3RvcnkKCjIwMDUtMDktMDcgMTA6MDY6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IEZpeCBhIHJhY2UgY29uZGl0aW9uIHdoZXJlYnkgdGhlIHBhZCdzIHRhc2sgZnVuY3Rpb24gaXMgZW50ZXJlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBGaXggYSByYWNlCgkgIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBwYWQncyB0YXNrIGZ1bmN0aW9uIGlzIGVudGVyZWQgYmVmb3JlIHRoZQoJICBwYWRfbW9kZSB2YXJpYWJsZSB3YXMgc2V0LgoKMjAwNS0wOS0wNiAyMjo1NzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENhdGNoIG1pc2JlaGF2aW5nIHBhZF9hbGxvYyBmdW5jdGlvbnMgdGhhdCBkb24ndCBzZXQgdXAgY2FwcyBhbmQgZG8gaXQgZm9yIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgQ2F0Y2ggbWlzYmVoYXZpbmcgcGFkX2FsbG9jIGZ1bmN0aW9ucyB0aGF0IGRvbid0CgkgIHNldCB1cCBjYXBzIGFuZCBkbyBpdCBmb3IgdGhlbS4KCjIwMDUtMDktMDYgMjI6MDM6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IHRlc3QgZm9yIHBpcGUhPU5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgIHRlc3QgZm9yIHBpcGUhPU5VTEwKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTA2IDE4OjE4OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgYWRkIGEgY2hlY2sgZm9yIGEgZ2hvc3RwYWQgdGhhdCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQgYmVpbmcgbGlua2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBjaGVjayBmb3IgYSBnaG9zdHBhZCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCBiZWluZyBsaW5rZWQKCjIwMDUtMDktMDYgMTQ6MTE6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjIgPT09CgoyMDA1LTA5LTA2IDE0OjAyOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjkuMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS4yCgoyMDA1LTA5LTA2IDExOjQ1OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICB1cGRhdGUgcmVhZG1lIHdpdGggZXhwbGFuYXRpb24gb2YgbW9kdWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHJlYWRtZSB3aXRoIGV4cGxhbmF0aW9uIG9mIG1vZHVsZXMKCjIwMDUtMDktMDYgMDk6NTI6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvcmFuZG9tL0NoYW5nZUxvZy0wLjg6CgkgIGNoYW5nZWxvZyBzcGxpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nIHNwbGl0CgoyMDA1LTA5LTA1IDE3OjU1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCjIwMDUtMDktMDUgMTc6NTM6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGRpbmcgLWJhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIC1iYWQKCjIwMDUtMDktMDUgMTY6NTQ6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IGFuZCB1cGRhdGUgdG8gbmV3ZXIgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IGFuZCB1cGRhdGUgdG8gbmV3ZXIgQVBJLgoJICBJbmNpZGVudGFsbHkgdGhleSBzaG91bGQgYmUgYSBiaXQgZmFzdGVyIG5vdyB0aGF0IHRoZXkgZG9uJ3QgaGF2ZQoJICB0byBwYXJzZSB0aGUgY2Fwcy4KCjIwMDUtMDktMDUgMTY6NTI6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IFVtLi4uIHJlc3VycmVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IFVtLi4uIHJlc3VycmVjdC4uLgoKMjAwNS0wOS0wNSAxNjozNjo0NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogUmVtb3ZlIGZyb20gQ1ZTLCB0aGV5IHdlcmUgcmVwbGFjZWQgYnkgdGhlIGxpYnhtbCByZWdpc3RyeSBhIHdoaWxlIGJhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBSZW1vdmUgZnJvbSBDVlMsIHRoZXkgd2VyZQoJICByZXBsYWNlZCBieSB0aGUgbGlieG1sIHJlZ2lzdHJ5IGEgd2hpbGUgYmFjawoKMjAwNS0wOS0wNSAxMTo1NDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL1JFQURNRToKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoKMjAwNS0wOS0wNSAwOTozODozOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmV2ZXIgdG8gMS44MCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBhcyBHc3RVdGlscyBpcyBub3QgYXMgZGVhZCBhcyBpdCBzZWVtZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmVyIHRvIDEuODAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgR3N0VXRpbHMgaXMgbm90IGFzIGRlYWQgYXMgaXQgc2VlbWVkCgoyMDA1LTA5LTA1IDA5OjIzOjQ0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIHJlbW92ZSBHc3RVdGlscyBtZW50aW9uIGFzIGl0IGlzIG5vdyBnb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgR3N0VXRpbHMgbWVudGlvbiBhcyBpdCBpcyBub3cgZ29uZQoKMjAwNS0wOS0wNCAxMTowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgbmVlZCB0byBhZGQgLWxjaGVjayB0byB0aGUgcGtnY29uZmlnIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5lZWQgdG8gYWRkIC1sY2hlY2sgdG8gdGhlIHBrZ2NvbmZpZyBmaWxlCgoyMDA1LTA5LTAzIDE3OjM2OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZml4IGZvciBhIGNyaXRpY2FsIHdoZW4gYSBtb2R1bGUgcmV0dXJucyBOVUxMIG9uIG9wZW5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmb3IgYSBjcml0aWNhbCB3aGVuIGEgbW9kdWxlIHJldHVybnMgTlVMTCBvbiBvcGVuaW5nCgoyMDA1LTA5LTAzIDE3OjAwOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgYWRkIGEgc291cmNlIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZCwgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbW9kdWxlIHRoaXMgcGx1Z2luIGlzIGEgcGFydCBvZi4gIEJ5IGRlZmF1bHQgR1NUX1BMVUdJLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBzb3VyY2UgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkLCB0byByZXByZXNlbnQgdGhlIHNvdXJjZQoJICBtb2R1bGUgdGhpcyBwbHVnaW4gaXMgYSBwYXJ0IG9mLiAgQnkgZGVmYXVsdCBHU1RfUExVR0lOX0RFRklORQoJICB3aWxsIHNldCBpdCB0byBQQUNLQUdFLCB3aGljaCBpcyBhdXRvbWFrZSdzIGlkZWEgb2YgdGhlIG5hbWUgb2YKCSAgdGhlIHNvdXJjZSBwcm9qZWN0LgoKMjAwNS0wOS0wMyAxNjoxNjoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA5LTAzIDE0OjIwOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSAgZW5hYmxlIGRvY3MgYnVpbGQgZm9yIGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZW5hYmxlIGRvY3MgYnVpbGQgZm9yIGRpc3RjaGVjawoKMjAwNS0wOS0wMyAxMzo1NDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLW1rZGI6CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2MtbWt0bXBsOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLXNjYW5vYmo6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYWMzZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2FjM3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2F1ZGlvc2NhbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvY29iaW4uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZHZkc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2V4YW1wbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0YXZpZW5jb2Rlci5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWdkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZ2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMWVuY29kZXIuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzJlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzJwbGF5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWdfcGxheS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnYXVkaW8uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBnMTIzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNlYXUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2Vhdmkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2V3YXYuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cmVhbWVyLXBsdWdpbnMtdW51c2VkLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHNwZWN0cnVtLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHY0bHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5jb2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5kZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHhhLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHhpbmcuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbWVkaWFuLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wMXZpZGVvcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAydmlkZW9wYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDNwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMXBhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcycGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzJzdWJ0LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3J0anBlZ2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9ydGpwZWdlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc21vb3RoLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Ntb290aHdhdmUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3BpbmRlbnRpdHkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3RlcmVvLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N5bmFlc3RoZXNpYS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zeXN0ZW1fZW5jb2RlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZjZHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92aWRlb3NjYWxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZpZGVvc2luay5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b2x1bWUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9yYmlzZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvcmJpc2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92dW1ldGVyLnNnbWw6CgkgIHJlbW92ZSBvbGQgcGx1Z2lucyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIHBsdWdpbnMgZG9jcwoKMjAwNS0wOS0wMyAxMzo0OTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGNsZWFuIHVwIGRvY3MgYnVpbGQgYSBsaXR0bGU7IGhhdmUgZG9jZGlyIGJlIGFuIG92ZXJyaWRhYmxlIGluc3RhbGwgbG9jYXRpb247IHNlcGFyYXRlIGd0ay1kb2MgYW5kIGRvY2Jvb2sgYml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgZG9jcyBidWlsZCBhIGxpdHRsZTsgaGF2ZSBkb2NkaXIgYmUgYW4gb3ZlcnJpZGFibGUgaW5zdGFsbCBsb2NhdGlvbjsgc2VwYXJhdGUgZ3RrLWRvYyBhbmQgZG9jYm9vayBiaXRzCgoyMDA1LTA5LTAyIDIzOjM2OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgd2hpdGVzcGFjZSBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBjbGVhbnVwcwoKMjAwNS0wOS0wMiAyMzoxNzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYnVmZmVyX2FsbG9jKToKCSAgQWRkIGNvbW1lbnQuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB0aHJlYWQtc2FmZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIFNldCBvZmZzZXQgb24gZ2VuZXJpYyBidWZmZXIgYWxsb2NhdGVkIGJ5IGZhbGxiYWNrLgoKMjAwNS0wOS0wMiAyMzowMzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTA5LTAyIDIxOjM3OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBydW4gdGhlIHdpbmdvLW1hZ2ljIHNjcmlwdCBhZ2FpbnN0IHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwKCSAgKGdzdF9jb250cm9sbGVyX2ZpbmRfY29udHJvbGxlZF9wcm9wZXJ0eSk6CgkgIHJ1biB0aGUgd2luZ28tbWFnaWMgc2NyaXB0IGFnYWluc3QgdGhlIGRvY3MKCjIwMDUtMDktMDIgMTg6MzY6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSAgcmVtb3ZlZCBmaWxlIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGZpbGUgYWdhaW4KCjIwMDUtMDktMDIgMTc6MjM6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1lcmdlZCBlbGVtZW50ZGV0YWlscyBkb2NzIGludG8gZWxlbWVudGZhY3RvcnkgZG9jcyBpbmxpbmVkIGJvdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIG1lcmdlZCBlbGVtZW50ZGV0YWlscyBkb2NzIGludG8gZWxlbWVudGZhY3RvcnkgZG9jcwoJICBpbmxpbmVkIGJvdGgKCjIwMDUtMDktMDIgMTY6NDQ6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBtYWdpY2FsIHBpeGllIGR1c3QgdG8gbWFrZSBnbGliLW1rZW51bXMgY29uc2lkZXIgdGhpcyBlbnVtIGFuIGVudW0gYW5kIG5vdCBhIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgbWFnaWNhbCBwaXhpZSBkdXN0IHRvIG1ha2UgZ2xpYi1ta2VudW1zCgkgIGNvbnNpZGVyIHRoaXMgZW51bSBhbiBlbnVtIGFuZCBub3QgYSBmbGFncy4KCjIwMDUtMDktMDIgMTY6MTc6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBpbmxpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlYWxwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIG1vcmUgZG9jcyBpbmxpbmVkCgoyMDA1LTA5LTAyIDE1OjQyOjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oIChHc3RTdGF0ZSk6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGUsIGNoYW5nZWQgdG8gYmUgYSBub3JtYWwgZW51bSBpbnN0ZWFkIG9mIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChHc3RTdGF0ZSk6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGUsCgkgIGNoYW5nZWQgdG8gYmUgYSBub3JtYWwgZW51bSBpbnN0ZWFkIG9mIGZsYWdzLgoJICAoR3N0U3RhdGVDaGFuZ2VSZXR1cm4pOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlUmV0dXJuLCBuYW1lcwoJICBtdW5nZWQgdG8gYmUgR1NUX1NUQVRFX0NIQU5HRV8qLgoJICAoR1NUX1NUQVRFX0NIQU5HRSk6IFJlbmFtZWQgZnJvbSBHU1RfU1RBVEVfVFJBTlNJVElPTiwgdXBkYXRlZCB0bwoJICB3b3JrIHdpdGggdGhlIG5ldyBzdGF0ZSByZXByZXNlbnRhdGlvbi4KCSAgKEdzdFN0YXRlQ2hhbmdlKTogTmV3IGVudW1lcmF0aW9uIG9mIHBvc3NpYmxlIHN0YXRlIHRyYW5zaXRpb25zLgoJICBSZXBsYWNlcyBHU1RfU1RBVEVfRk9PX1RPX0JBUiB3aXRoIEdTVF9TVEFURV9DSEFOR0VfRk9PX1RPX0JBUi4KCSAgKEdzdEVsZW1lbnRDbGFzczo6Y2hhbmdlX3N0YXRlKTogUGFzcyB0aGUgR3N0U3RhdGVDaGFuZ2UgYWxvbmcgYXMKCSAgYW4gYXJndW1lbnQuIEhlbHBzIGxhbmd1YWdlIGJpbmRpbmdzLCBzbyB0aGV5IGRvbid0IGhhdmUgdG8gdXNlCgkgIHRyaWNreSBsb2NrLW5lZWRpbmcgbWFjcm9zIGxpa2UgR1NUX1NUQVRFX0NIQU5HRSAoKS4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1zdGF0ZXMgKGZpbGUpOiBOZXcgc2NyaXB0LiBSdW4gaXQgb24gYSBmaWxlIHRvCgkgIHVwZGF0ZSBpdCBmb3Igc3RhdGUgbmFtaW5nIGFuZCBBUEkgY2hhbmdlcy4gVXBkYXRlcyBmaWxlcyBpbgoJICBwbGFjZS4KCSAgKiBBbGwgZmlsZXMgdXBkYXRlZCBmb3IgdGhlIG5ldyBBUEkuCgoyMDA1LTA5LTAyIDEyOjExOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cCBzcGVjIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgc3BlYyBzb21lIG1vcmUKCjIwMDUtMDktMDIgMTI6MDg6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogZml4IGEgYnVuY2ggb2YgdW5jaGVja2VkIHJldHVybiB2YWx1ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRyYWNlLmM6IChnc3RfdHJhY2VfZmx1c2gpLCAoZ3N0X3RyYWNlX3RleHRfZmx1c2gpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKSwKCSAgKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgZml4IGEgYnVuY2ggb2YgdW5jaGVja2VkIHJldHVybiB2YWx1ZXMKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzogKG1haW4pOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cCBhIGxpdHRsZQoKMjAwNS0wOS0wMSAxOTowNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgdXBkYXRlZCAuY3ZzaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIC5jdnNpZ25vcmUKCjIwMDUtMDktMDEgMTg6MTI6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBIYW5kbGUgbmV3c2VnbWVudHMgbW9yZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEhhbmRsZSBuZXdzZWdtZW50cyBtb3JlIGNvcnJlY3RseS4KCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgQSBuZXdzZWdtZW50IGNhbm5vdCBoYXZlIGEgc3RhcnRfdGltZSBvZiAtMQoKMjAwNS0wOS0wMSAxNjo1MzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2dzdGVudW10eXBlcy4qOiBVcGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZQoKMjAwNS0wOC0zMSAyMTowMTozNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUmVtb3ZlIGV4dHJhbmVvdXMgJ2NvJyBmcm9tIGN2cyBjb21tYW5kIGluIFBXRywgYXMgcmVwb3J0ZWQgb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGV4dHJhbmVvdXMgJ2NvJyBmcm9tIGN2cyBjb21tYW5kIGluIFBXRywgYXMgcmVwb3J0ZWQgb24gaXJjLgoKMjAwNS0wOC0zMSAxODo0NTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOiBmaXhlZCBib29sZWFuIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgZml4ZWQgYm9vbGVhbiBhZ2FpbgoKMjAwNS0wOC0zMSAxNToyNzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGFkZCAtZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCAtZ29vZAoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICByZW1vdmUgd3JvbmcgZG9jcwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19maWx0ZXJlZCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGFkZCBnc3RfZWxlbWVudF9saW5rX2ZpbHRlcmVkCgoyMDA1LTA4LTMxIDE0OjA4OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jcywgZml4ZWQgZG91YmxlIGlkLXJlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaXR5cGUuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIGlubGluZWQgbW9yZSBkb2NzLCBmaXhlZCBkb3VibGUgaWQtcmVmCgoyMDA1LTA4LTMxIDEzOjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQYXNzdGhyb3VnaCBlbGVtZW50cyBkb24ndCBuZWVkIHRoZSBjYXBzIGFzIHRoZXkgZG9uJ3QgY2FyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBQYXNzdGhyb3VnaCBlbGVtZW50cyBkb24ndCBuZWVkIHRoZSBjYXBzIGFzIHRoZXkgZG9uJ3QgY2FyZS4KCjIwMDUtMDgtMzEgMTM6NTA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IGxlYWsgcmVmY291bnRzIG9uIGJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIERvbid0IGxlYWsgcmVmY291bnRzIG9uIGJ1ZmZlcnMuCgoyMDA1LTA4LTMxIDEzOjQxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIG5vdCBuZWdvdGlhdGVkIG1vcmUgZ3JhY2VmdWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgbW9yZSBncmFjZWZ1bGx5LgoKMjAwNS0wOC0zMSAxMjo1NTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFNldCBSRUFET05MWSBmbGFnIG9uIG1tYXAnZWQgYnVmZmVycywgb3RoZXJ3aXNlIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvbid0IHdvcmsgcHJvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICBTZXQgUkVBRE9OTFkgZmxhZyBvbiBtbWFwJ2VkIGJ1ZmZlcnMsIG90aGVyd2lzZQoJICBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b24ndCB3b3JrIHByb3Blcmx5ICgjMzE0NzA4KS4KCjIwMDUtMDgtMzEgMTA6MDc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHBhc3N0aHJvdWdoIGVsZW1lbnRzIGNhbiBldmVuIGRvIGlucGxhY2Ugb24gbm9uIHdyaXRhYmxlIGJ1ZmZlcnMgKGFzIHRoZXkgZG9uJ3QgdG91Y2ggdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBwYXNzdGhyb3VnaCBlbGVtZW50cyBjYW4gZXZlbiBkbyBpbnBsYWNlIG9uIG5vbiB3cml0YWJsZQoJICBidWZmZXJzIChhcyB0aGV5IGRvbid0IHRvdWNoIHRoZW0pLgoKMjAwNS0wOC0zMSAxMDowMDowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBtb3JlIHRlc3RzIChoZWhlIEkgaGF2ZSB0aGUgbW9zdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9jbGFzc19pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgbW9yZSB0ZXN0cyAoaGVoZSBJIGhhdmUgdGhlIG1vc3QpCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBkZXNjcmliZSBwb3BwaW5nIG1lc3NhZ2VzIHdoZW51c2luZyBtdWxsdGlwbGUgc291cmNlcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJICBpbXBsZW1lbnQgYm9vbGVhbiBwcm9wZXJ0aWVzCgoyMDA1LTA4LTMxIDA4OjU3OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogQ2Fubm90IGFzc2VydCB0aGF0IHRoZSByZWZjb3VudCBoYXMgdG8gYmUgcG9zaXRpdmUgc2luY2UgYSBkaXNwb3NlZCBvYmplY3QgY2FuIGJlIHJlc3VyZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKToKCSAgQ2Fubm90IGFzc2VydCB0aGF0IHRoZSByZWZjb3VudCBoYXMgdG8gYmUgcG9zaXRpdmUKCSAgc2luY2UgYSBkaXNwb3NlZCBvYmplY3QgY2FuIGJlIHJlc3VyZWN0ZWQuCgoyMDA1LTA4LTMxIDA4OjM4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgY2hhbmdlLCBuZWVkIHRvIGZpcnN0IGZpeCBiYWRseSBiZWhhdmluZyBhcHBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBSZXZlcnQgY2hhbmdlLCBuZWVkIHRvIGZpcnN0IGZpeCBiYWRseSBiZWhhdmluZwoJICBhcHBzLgoKMjAwNS0wOC0zMCAxOTo0NTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzLzogQWN0aXZhdGUgcGFkcyBiZWZvcmUgdXNpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyk6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KToKCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgdXNpbmcgdGhlbS4KCjIwMDUtMDgtMzAgMTk6Mjk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEZsdXNoaW5nIG91dCAwIGJ5dGVzIGlzIG9rIGZvciB0aGlzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9mbHVzaCk6CgkgIEZsdXNoaW5nIG91dCAwIGJ5dGVzIGlzIG9rIGZvciB0aGlzIGZ1bmN0aW9uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBubyBuZXdzZWdtZW50IGdpdmVzIGEgd2FybmluZyBhbmQgc2V0cyB0aGUgc3RhcnQvc3RvcCB0bwoJICBpbnZhbGlkLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCk6CgkgIFNvbWUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZik6CgkgIENoZWNrIHJlZmNvdW50IGhlcmUgdG9vLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFBhZHMgYXJlIGluaXRpYWxseSBmbHVzaGluZyBhbmQgcmVmdXNpbmcgZGF0YS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgIFdoZW4gYWRkaW5nIGEgY2Fwc2ZpbHRlciBlbGVtZW50IG1ha2Ugc3VyZSBpdCBoYXMgdGhlCgkgIHNhbWUgc3RhdGUgYXMgdGhlIHBhcmVudCBiaW4uCgoyMDA1LTA4LTMwIDE3OjIzOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgYW5kIHR3byBtb3JlIGlubGluZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgbW9yZSBkb2NzIGFuZCB0d28gbW9yZSBpbmxpbmVkCgoyMDA1LTA4LTMwIDE3OjEyOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IHN5bmMgdG8gY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgRG9uJ3Qgc3luYyB0byBjbG9jay4KCjIwMDUtMDgtMzAgMDg6MTc6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IHVsdHJhbDMzdCBmdW5jMTBucyBkZXNlcnZlIHRvIGFwcGVhciBpbiB0aGUgZG9jcyBhY3R1YWx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVsdHJhbDMzdCBmdW5jMTBucyBkZXNlcnZlIHRvIGFwcGVhciBpbiB0aGUgZG9jcyBhY3R1YWx5CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOC0yOSAyMTo0MTowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBhbmQgZXh0ZW5kZWQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgaW5saW5lZCBhbmQgZXh0ZW5kZWQgZG9jcwoKMjAwNS0wOC0yOSAxOTo1OTo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBtb3JlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgbW9yZSB0ZXN0cwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICBpbmNsdWRlIHBhdGggZml4ZXMKCSAgKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICBjb250cm9sbGVyIGV4YW1wbGUgd29ya3Mgbm93CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYyBmaXhlcwoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIHNob3cgcGFyYW0gc3BlYyBmbGFncwoKMjAwNS0wOC0yOSAxNjoxMDozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6IE5ldyAzNzMzdCBmdW5jdDEwbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6IE5ldyAzNzMzdCBmdW5jdDEwbi4KCjIwMDUtMDgtMjkgMDk6NTI6NDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkgIE1pbm9yIHVwZGF0ZXMgdG8gZGV2ZWxvcGVyIGN2cyBpbnN0cnVjdGlvbnMsIHRvIG1vcmUgY2xvc2VseSBtYXRjaCB3aGF0IHRoZSBmcmVlZGVza3RvcCBwZW9wbGUgd2FudC4gQWxzbywgdGVzdCBteSBjdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWlub3IgdXBkYXRlcyB0byBkZXZlbG9wZXIgY3ZzIGluc3RydWN0aW9ucywgdG8gbW9yZSBjbG9zZWx5IG1hdGNoIHdoYXQKCSAgdGhlIGZyZWVkZXNrdG9wIHBlb3BsZSB3YW50LiBBbHNvLCB0ZXN0IG15IGN2cyBjb21taXQgYWNjZXNzLi4uCgoyMDA1LTA4LTI4IDE3OjQ1OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOiBQcm90b3R5cGUgaW5zdGFuY2VfaW5pdCBhcyBoYXZpbmcgdHdvIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGp1c3Qgb25lLiBBbGxvd3Mgc3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9GVUxMKTogUHJvdG90eXBlIGluc3RhbmNlX2luaXQKCSAgYXMgaGF2aW5nIHR3byBhcmd1bWVudHMgaW5zdGVhZCBvZiBqdXN0IG9uZS4gQWxsb3dzIHN1cGVyY2xhc3NlcwoJICB0byBhY2Nlc3MgaW5mb3JtYXRpb24gb24gc3ViY2xhc3NlcyAtLSBzZWUgdGhlIHRlcnJpYmxlIGZvcigpIGxvb3AKCSAgaW4gZ3R5cGUuYzpnX3R5cGVfY3JlYXRlX2luc3RhbmNlIGZvciB0aGUgcmVhc29uIHdoeS4gQWxsIGNhbGxlcnMKCSAgY2hhbmdlZC4KCjIwMDUtMDgtMjcgMTA6NTc6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OiB1cGRhdGUgaW5mbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgdXBkYXRlIGluZm8KCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgYWRkZWQgZGVzY3JpcHRpb25zIGZvciBidXMgYW5kIG1lc3NhZ2UKCSAgaW5saW5lIGNhcHMgYW5kIGNsb2NrIGRvY3MKCjIwMDUtMDgtMjYgMjI6MzI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvYyBmaXhlcwoKMjAwNS0wOC0yNiAyMToyMzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBmaXggZGl2LWJ5LXplcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgZml4IGRpdi1ieS16ZXJvCgoyMDA1LTA4LTI2IDE0OjIxOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBDaGVjayBlbGVtZW50X3NldF9zdGF0ZSdzIHJldHVybiB2YWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IENoZWNrCgkgIGVsZW1lbnRfc2V0X3N0YXRlJ3MgcmV0dXJuIHZhbC4KCSAgKHRlc3RfMl9lbGVtZW50cyk6IEFkZCB0ZXN0IHRoYXQncyBiZWVuIGRpc2FibGVkIGZvciBtb250aHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IENsZWFudXBzLiBBZGQgY2FuLWFjdGl2YXRlLXB1c2ggYW5kCgkgIGNhbi1hY3RpdmF0ZS1wdWxsIHByb3BlcnRpZXMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogQ2xlYW51cHMuIEFkZCBjYW4tYWN0aXZhdGUtcHVzaCBhbmQKCSAgY2FuLWFjdGl2YXRlLXB1bGwgcHJvcGVydGllcy4gSW1wbGVtZW50IGlzX3NlZWthYmxlIHNvIGZha2VzcmMgY2FuCgkgIG9wZXJhdGUgaW4gcHVsbCBtb2RlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKEdzdEJhc2VTaW5rKTogUmVtb3ZlIGhhcy1sb29wLCBoYXMtY2hhaW4KCSAgcHJvcGVydGllcy4KCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGUsIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCkKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCk6IE1ha2UgYWN0aXZhdGlvbiBtb2RlIGNob29zaW5nIHdvcmsuCgkgIENsZWFudXBzLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiwgZ3N0X2Jhc2Vfc2lua19sb29wKTogQXNzZXJ0IGFjdGl2YXRpb24gbW9kZQoJICBpcyByaWdodC4gTWFrZSBwdWxsIG1vZGUgd29yay4gUG9zdCBhbiBlb3MgYmVmb3JlIHBhdXNpbmcgaW4gcHVsbAoJICBtb2RlLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBQYXkgYXR0ZW50aW9uIHRvIHRoZSBjb3JlJ3MKCSAgY2hhbmdlX3N0YXRlKCkgcmV0dXJuIHZhbC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdzdEJhc2VTcmMpOiBSZW1vdmUgaGFzLWxvb3AsCgkgIGhhcy1nZXRyYW5nZSBwcm9wZXJ0aWVzLiBDbGVhbnVwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmggKEdzdEJhc2VTcmMpOiBSZW1vdmUgaGFzX2xvb3AsCgkgIGhhc19nZXRyYW5nZSBhbmQgcmVwbGFjZSB3aXRoIGNhbl9hY3RpdmF0ZV9wdWxsIGFuZAoJICBjYW5fYWN0aXZhdGVfcHVzaC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oIChHc3RCYXNlU2luayk6IFJlYXJyYW5nZSBmaWVsZHMsIGFkZAoJICBsb2NraW5nIGNvbW1lbnRzLiBSZW1vdmUgaGFzX2xvb3AsIGhhc19jaGFpbiBhbmQgcmVwbGFjZSB3aXRoCgkgIGNhbl9hY3RpdmF0ZV9wdWxsIGFuZCBjYW5fYWN0aXZhdGVfcHVzaC4KCjIwMDUtMDgtMjYgMTM6Mjg6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWRkIG1ldGFkYXRhIHJlYWRpbmcgZXhhbXBsZSB0aGF0IGxvb3BzIG92ZXIgYSBsaXN0IG9mIGZpbGVuYW1lcywgZHVtcGluZyBhbnkgdGFncyBmb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChoYXZlX3BhZF9oYW5kbGVyKSwgKG1ha2VfcGlwZWxpbmUpLCAocHJpbnRfdGFnKSwgKG1haW4pOgoJICBBZGQgbWV0YWRhdGEgcmVhZGluZyBleGFtcGxlIHRoYXQgbG9vcHMgb3ZlciBhIGxpc3Qgb2YgZmlsZW5hbWVzLAoJICBkdW1waW5nIGFueSB0YWdzIGZvdW5kLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZGlzcG9zZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBSZWxlYXNlIGEgZmV3IHBvdGVudGlhbGx5LWhlbGQgcmVmZXJlbmNlcyBpbiBkaXNwb3NlLgoKMjAwNS0wOC0yNiAxMzoyMTo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6IGRvICpub3QqIGFkZCB0bXBsLyouc2dtbCBmaWxlcyB0byBDVlMhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICBkbyAqbm90KiBhZGQgdG1wbC8qLnNnbWwgZmlsZXMgdG8gQ1ZTIQoKMjAwNS0wOC0yNiAxMzoxNzo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYnl0ZXN0cmVhbS86IHJlbW92aW5nIG9ic29sZXRlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vLmN2c2lnbm9yZToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5oOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5oOgoJICByZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwoKMjAwNS0wOC0yNiAxMjo0ODoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGRpc2FiZWQgYWRkaXRpb25hbCBpbmRleCBlbnRyaWVzIGFnYWluLCBhcyB0aGlzIG1ha2VzIGRvY3MtZ2VuIGp1c3Qgc2xvdyBhbmQgdGhleSBhcmVuJ3QgdXNlZnVsIHlldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRpc2FiZWQgYWRkaXRpb25hbCBpbmRleCBlbnRyaWVzIGFnYWluLCBhcyB0aGlzIG1ha2VzIGRvY3MtZ2VuIGp1c3QKCSAgc2xvdyBhbmQgdGhleSBhcmVuJ3QgdXNlZnVsIHlldAoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGxpdHRsZSAtc2VjdGlvbi50eHQgY2xlYW51cCBmb3IgbGlicwoKMjAwNS0wOC0yNiAxMTo1NjoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCB1cCBzb21lIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICBmaXggdXAgc29tZSBkZWJ1Z2dpbmcKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGhhbmRsZSBhbmQgc3RvcmUgdGltZWQgTkVXU0VHTUVOVCBldmVudHMgc28gdGhhdCBzdWJjbGFzc2VzIHRoYXQKCSAgY2FsY3VsYXRlIHRpbWUgYnkgY291bnRpbmcgc2FtcGxlcyBoYXZlIGEgc2VnbWVudF9zdGFydCB0aW1lIHRoZXkKCSAgbmVlZCB0byBhZGQgdG8gdGhlaXIgdGltZXN0YW1wcyAtIHNlZSBhdWRpb3Jlc2FtcGxlCgoyMDA1LTA4LTI2IDExOjE5OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHdoaXRlc3BhY2UsIGRvYyBhbmQgZGVidWcgZml4aW5nL2FkZGl0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSwgZG9jIGFuZCBkZWJ1ZyBmaXhpbmcvYWRkaXRpb25zCgoyMDA1LTA4LTI1IDIzOjE3OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IHJlbW92ZWQgJzsnIGZyb20gdGhlIGVuZCBvZiBtYWNybyBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgcmVtb3ZlZCAnOycgZnJvbSB0aGUgZW5kIG9mIG1hY3JvIGRlZnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoYWN0aXZhdGVfcGFkcyksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHByb2JlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBmaXhlZCBwYXJhbWV0ZXIgbmFtZSBtaXNtYXRjaGVzIGJldHdlZW4gc291cmNlLCBoZWFkZXIgYW5kIGRvY3MKCSAgYWRkZWQgc29tZSBtb3JlIGRvY3MsIHJlc29sdmVkIHRoZSBsYXN0IGJhdGNoIG9mIHVudXNlZCBlbGVtZW50cyBpbgoJICBkb2NzIChub3cgc29tZW9uZSBuZWVkcyB0byBkb2MgdGhlbSkKCjIwMDUtMDgtMjUgMjA6NTI6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICByZXNwZWN0IG9yZGVyIG9mIHBsdWdpbiBkaXJzIHdoZW4gbG9hZGluZyBwbGx1Z2lucyBhbmQgcmVidWlsZGluZyByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVzcGVjdCBvcmRlciBvZiBwbHVnaW4gZGlycyB3aGVuIGxvYWRpbmcgcGxsdWdpbnMgYW5kIHJlYnVpbGRpbmcgcmVnaXN0cnkKCjIwMDUtMDgtMjUgMTk6MzY6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IENhY2hlIGNhcHMgdW5pdF9zaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDYWNoZSBjYXBzIHVuaXRfc2l6ZS4KCSAgTWFrZSBzdXJlIHdlIGNhbm5vdCBuZWdvdGlhdGUgdXAgYW5kIGRvd25zdHJlYW0gYXQgdGhlCgkgIHNhbWUgdGltZS4KCjIwMDUtMDgtMjUgMTg6NTU6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIG1ha2UgcmVnaXN0cnkgcmVzcGVjdCBvcmRlciBvZiBHU1RfUExVR0lOX1BBVEg7IG1ha2UgdGhlIGluc3RhbGxlZCBsb2NhdGlvbiBnbyBsYXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHJlZ2lzdHJ5IHJlc3BlY3Qgb3JkZXIgb2YgR1NUX1BMVUdJTl9QQVRIOyBtYWtlIHRoZSBpbnN0YWxsZWQgbG9jYXRpb24gZ28gbGFzdAoKMjAwNS0wOC0yNSAxODo1NDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYWRkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkb2NzCgoyMDA1LTA4LTI1IDE2OjI3OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgdWludDY0IGNoZWNraW5nIG1ldGhvZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgdWludDY0IGNoZWNraW5nIG1ldGhvZAoKMjAwNS0wOC0yNSAxMzo1MjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgYWJvdXQgdGhlIHBvc3RlZCBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBCZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSBhYm91dCB0aGUgcG9zdGVkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgU29tZSBjbGVhbnVwcywgd2FybiB3cm9uZyByZXR1cm4gdmFsdWVzLgoKMjAwNS0wOC0yNSAxMDo1MToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZXZlcnQgdW5wb3B1bGFyIGNoYW5nZSBmb3IgR1NUX01FU1NBR0VfU1JDIHRvIEdPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIFJldmVydCB1bnBvcHVsYXIgY2hhbmdlIGZvciBHU1RfTUVTU0FHRV9TUkMgdG8gR09iamVjdC4KCjIwMDUtMDgtMjUgMTA6MzU6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBmaXggZG9jcyBieSBmaXhpbmcgZW51bSB0eXBlZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcyBieSBmaXhpbmcgZW51bSB0eXBlZGVmCgoyMDA1LTA4LTI1IDEwOjE2OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgd2ltIGZpeGVkIHRoZSB0YXNrLCB5YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdpbSBmaXhlZCB0aGUgdGFzaywgeWF5CgoyMDA1LTA4LTI1IDEwOjAxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQ2xlYW51cCBjYW4gYmUgZG9uZSBhdCB0aGUgZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDbGVhbnVwIGNhbiBiZSBkb25lIGF0IHRoZSBlbmQuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2ZpbmFsaXplKSwKCSAgKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfY2xlYW51cF9hbGwpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKToKCSAgT2ggYm95Li4gVGhhbmtzIGZvciBmaW5kaW5nIHRoaXMsIFRob21hcy4KCjIwMDUtMDgtMjQgMjI6MDE6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZ3JtcGYsIGFub3RoZXIgdHJ5IHRvIGZpeCBpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ3JtcGYsIGFub3RoZXIgdHJ5IHRvIGZpeCBpdAoKMjAwNS0wOC0yNCAyMTo1NzowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBhbm90aGVyIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBmaXgKCjIwMDUtMDgtMjQgMjE6NDU6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogYWRkZWQgbWlzc2luZyB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGFkZGVkIG1pc3NpbmcgdHlwZXMKCjIwMDUtMDgtMjQgMjE6MzU6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1paXNzaW5nIGNsYXNzZXMgYW5kIHN5bWJvbHMgKDEyMyBtb3JlIHRvIGdvKSByZW1vdmVkIHJlbW92ZWQgc3ltYm9scyBmcm9tIHNlY3Rpb24gZmlsZSBmaXhlZCBtYW55IGRvYy1jb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICBhZGRlZCBtaWlzc2luZyBjbGFzc2VzIGFuZCBzeW1ib2xzICgxMjMgbW9yZSB0byBnbykKCSAgcmVtb3ZlZCByZW1vdmVkIHN5bWJvbHMgZnJvbSBzZWN0aW9uIGZpbGUKCSAgZml4ZWQgbWFueSBkb2MtY29tbWVudHMKCjIwMDUtMDgtMjQgMjA6NDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBNYWtlIHN1cmUgYWxsIHRhc2tzIGFyZSBzdG9wcGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHN1cmUgYWxsIHRhc2tzIGFyZSBzdG9wcGVkLgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYWZ0ZXIgdXNhZ2UgZm9yIHByb3BlciB2YWxncmluZGluZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpbmFsaXplKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgUmVhbGx5IHdhaXQgZm9yIHRoZSB0YXNrIHRvIHN0b3AgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlCgkgIG11dGV4LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBTbWFsbCBjbGVhbnVwcy4gRG9uJ3Qgc3RvcCB0aGUgdGFzayB3aGVuIHdlIGRpZCBub3Qgc3RhcnQKCSAgaXQuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2luaXQpLAoJICAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19jbGVhbnVwX2FsbCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLAoJICAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUHJvdGVjdCB0aGUgc3RyZWFtIGxvY2sgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgkgIERpc2FsbG93IHNldHRpbmcgdGhlIHN0cmVhbSBsb2NrIHdoZW4gcnVubmluZy4KCSAgQWRkIGNsZWFudXBfYWxsIHRvIHdhaXQgZm9yIHRoZSB0aHJlYWRwb29sIHRvIGZpbmlzaC4KCSAgUmVtb3ZlIGNvZGUgdG8gYXV0b2FsbG9jYXRlIGEgbXV0ZXggaWYgbm9uZSB3YXMgcHJvdmlkZWQuCgkgIEFkZCBfam9pbigpIHRvIHdhaXQgZm9yIGEgdGFzayB0byBzdG9wLgoJICBQcm90ZWN0IHRoZSB0aHJlYWQgcG9vbCB3aXRoIGEgZ2xvYmFsIGxvY2suCgoyMDA1LTA4LTI0IDE3OjU3OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogSGFuZGxlIG5ld3NlZ21lbnQgZXZlbnRzIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBIYW5kbGUgbmV3c2VnbWVudCBldmVudHMgY29ycmVjdGx5LgoJICBEcm9wIGJ1ZmZlcnMgb3V0IG9mIHRoZSBzZWdtZW50IHJhbmdlLgoKMjAwNS0wOC0yNCAxNzoyNDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdGVzdCB3aGlsZSB3aW0gaXMgZml4aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHRlc3Qgd2hpbGUgd2ltIGlzIGZpeGluZwoKMjAwNS0wOC0yNCAxNjo0NjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBhZGQgcGx1Z2luc2RpciB0byBwa2djb25maWcgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBwbHVnaW5zZGlyIHRvIHBrZ2NvbmZpZyBmaWxlcwoKMjAwNS0wOC0yNCAxNjo0MTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wOC0yNCAxNjowOTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGFkZCBhIHRlc3QgdGhhdCBkb2VzIGEgYnVuY2ggb2Ygc3RhdGUgY2hhbmdlcyBvbiBlbGVtZW50cyBuZWVkcyBzb21lIGZpeGluZyBmb3IgdmFsZ3JpbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSksIChtYWluKToKCSAgYWRkIGEgdGVzdCB0aGF0IGRvZXMgYSBidW5jaCBvZiBzdGF0ZSBjaGFuZ2VzIG9uIGVsZW1lbnRzCgkgIG5lZWRzIHNvbWUgZml4aW5nIGZvciB2YWxncmluZAoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIHdoaXRlc3BhY2UKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBhZGQgcHJvdG90eXBlIGZvciBnc3RfY2Fwc19pc19lcXVhbF9maXhlZAoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6CgkgIGRvYyBmaXhlcwoKMjAwNS0wOC0yNCAxNTo0OTowMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmMgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6IFNwZXcgaWYgd2UgdHJ5IHRvIGNvbnZlcnQgYSBuZWdhdGl2ZSB2YWx1ZS4gRG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UuIE1vc3RseSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RxdWVyeS5jIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOiBTcGV3IGlmIHdlIHRyeSB0bwoJICBjb252ZXJ0IGEgbmVnYXRpdmUgdmFsdWUuIERvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLiBNb3N0bHkgdGhpcyBpcwoJICBoZXJlIHRvIGZvcmNlIGNhbGxlcnMgdG8gZW5zdXJlIC0xIG1hcHMgdG8gLTEuCgoyMDA1LTA4LTI0IDE1OjEwOjQxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogV2VsbCBkb25lIHRvIE1pY2hhZWwgZm9yIGNhdGNoaW5nIG15IGRlbGliZXJhdGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgc3BlbGxpbmcgbWlzdGFrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBXZWxsIGRvbmUgdG8gTWljaGFlbCBmb3IgY2F0Y2hpbmcgbXkgZGVsaWJlcmF0ZSBpbnRyb2R1Y3Rpb24KCSAgb2YgdGhpcyBzcGVsbGluZyBtaXN0YWtlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGQgR1NUX0VMRU1FTlRfVU5QQVJFTlRJTkcgdG8gcHJldmVudCByYWNlcyBzbyB0aGF0IHdlIGNhbgoJICB1bmxpbmsgcGFkcyBiZWZvcmUgcmVtb3ZpbmcgdGhlIGVsZW1lbnQgZnJvbSB0aGUgYmluLgoKMjAwNS0wOC0yNCAxMzo0OToyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChwYXJzZV9kZWJ1Z19saXN0KTogQWNjZXB0IGUuZy4gR1NUX0RFQlVHPTQgdG8gbWVhbiB0aGUgc2FtZSB0aGluZyBhcyBHU1RfREVCVUc9Kjo0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKHBhcnNlX2RlYnVnX2xpc3QpOiBBY2NlcHQgZS5nLiBHU1RfREVCVUc9NCB0byBtZWFuCgkgIHRoZSBzYW1lIHRoaW5nIGFzIEdTVF9ERUJVRz0qOjQuCgkgIChwYXJzZV9kZWJ1Z19sZXZlbCwgcGFyc2VfZGVidWdfY2F0ZWdvcnkpOiBOZXcgaGVscGVyIHBhcnNlcnMuCgoyMDA1LTA4LTI0IDEzOjMzOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogdXNlIGdib29sZWFuIHJldHVybiB2YWx1ZXMgYW5kIHBvaW50ZXJzIHRvIHNpemUgc28gd2UgY2FuIHVzZSB0aGUgZnVsbCBHU1RfQlVGRkVSX1NJWkUgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICB1c2UgZ2Jvb2xlYW4gcmV0dXJuIHZhbHVlcyBhbmQgcG9pbnRlcnMgdG8gc2l6ZSBzbyB3ZSBjYW4gdXNlIHRoZQoJICBmdWxsIEdTVF9CVUZGRVJfU0laRSByYW5nZSAoZ3VpbnQpIGZvciBidWZmZXIgc2l6ZXMKCSAgdXNlIEdzdFBhZERpcmVjdGlvbiBmb3IgdHJhbnNmb3JtX2NhcHMKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHJlbmFtZSBnZXRfc2l6ZSB0byBnZXRfdW5pdF9zaXplIHNpbmNlIHRoYXQncyB3aGF0IGl0IGlzCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9jYXBzKToKCSAgdXNlIEdzdFBhZERpcmVjdGlvbiBmb3IgdHJhbnNmb3JtX2NhcHMKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBjbGVhbnVwIGFuZCBkZWJ1Z2dpbmcKCjIwMDUtMDgtMjQgMTM6MDQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeGVkIGxvbmcgc3RhbmRpbmcgbWVtLWxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGFjdGl2YXRlX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllcyk6CgkgIEZpeGVkIGxvbmcgc3RhbmRpbmcgbWVtLWxlYWsKCjIwMDUtMDgtMjQgMTE6NTQ6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQ2hhbmdlIEdTVF9NRVNTQUdFX1NSQyB0byBiZSBhIEdPYmplY3QgcmF0aGVyIHRoYW4gYSBHc3RPYmplY3QsIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBzZW5zaWJseSBwb3N0IGN1c3RvbSBtZXNzYWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIENoYW5nZSBHU1RfTUVTU0FHRV9TUkMgdG8gYmUgYSBHT2JqZWN0IHJhdGhlciB0aGFuIGEgR3N0T2JqZWN0LCBzbwoJICB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gc2Vuc2libHkgcG9zdCBjdXN0b20gbWVzc2FnZXMgd2l0aCByZWZlcmVuY2VzCgkgIHRvIHRoZWlyIG93biBvYmplY3RzLgoKMjAwNS0wOC0yNCAxMTo0NDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFueSBmaXhlcyBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5IFRob21hcy4gQ2FuIG5vdyBhbHNvIGRvIHRyYW5zZm9ybXMgd2l0aCB2YXJpYWJsZSBzaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYW55IGZpeGVzIGFuZCBuZXcgZmVhdHVyZXMgYWRkZWQgYnkgVGhvbWFzLiBDYW4gbm93IGFsc28gZG8KCSAgdHJhbnNmb3JtcyB3aXRoIHZhcmlhYmxlIHNpemVzIGFuZCBhIGN1c3RvbSBmaXhhdGVfY2FwcyBmdW5jdGlvbi4KCjIwMDUtMDgtMjQgMTE6MzY6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoZWNrIGlmIHRoZSBjYXBzIGlzIGZpeGVkIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoZWNrIGlmIHRoZSBjYXBzIGlzIGZpeGVkCgkgIGFscmVhZHkuCgoyMDA1LTA4LTI0IDExOjIyOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgU29tZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIENhc3QgdG8gQ2xvY2tUaW1lIGJlZm9yZSBmb3JtYXR0aW5nIHRvIHRpbWUuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIENsZWFudXBzLgoKMjAwNS0wOC0yMyAyMTozMjozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3JhY2VmdWxseSBoYW5kbGUgaGVscGVyIG1ldGhvZCBjYWxscyB0byBvYmplY3RzIHRoYXQgYXJlIG5vdCBiZWVpbmcgY29udHJvbGxlZCwgYWRkZWQgdGVzdCBjYXNlIGZvciB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzogKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xsZXIpLAoJICAoZ3N0X29iamVjdF9zaW5rX3ZhbHVlcyksIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMpLAoJICAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXkpOgoJICBncmFjZWZ1bGx5IGhhbmRsZSBoZWxwZXIgbWV0aG9kIGNhbGxzIHRvIG9iamVjdHMgdGhhdCBhcmUgbm90IGJlZWluZwoJICBjb250cm9sbGVkLCBhZGRlZCB0ZXN0IGNhc2UgZm9yIHRoYXQKCjIwMDUtMDgtMjMgMTg6MTc6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogU29tZSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQgYW5kIGRvYyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2NvcHkpLCAoZ3N0X2V2ZW50X25ld19jdXN0b20pLAoJICAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9uZXdfdGFnKSwgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIG91dHB1dCBhbmQgZG9jIGNsZWFudXBzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRml4IHBvc3NpYmxlIGRlYWRsb2NrLgoKMjAwNS0wOC0yMyAxNDoyNTo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgYWJvdXQgMTAwIHN5bWJvbHMgZnJvbSBnc3RyZWFtZXItdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgc2VjdGlvbnMgZml4ZWQgbW9yZSBicm9rZW4gY29tbWVudHMgYWRkZWQgR3N0QnVzIHRvIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBhZGRlZCBhYm91dCAxMDAgc3ltYm9scyBmcm9tIGdzdHJlYW1lci11bnVzZWQudHh0IHRvIHRoZSByaWdodCBzZWN0aW9ucwoJICBmaXhlZCBtb3JlIGJyb2tlbiBjb21tZW50cwoJICBhZGRlZCBHc3RCdXMgdG8gZG9jcwoKMjAwNS0wOC0yMyAxMTo1Mzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvYyBjb21tZW50cywgYWRkZWQgbWlzc2luZyBjb21tZW50cyBhbmQgZml4ZWQgY29tbWVudHMgZml4ZWQgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGlubGluZWQgbW9yZSBkb2MgY29tbWVudHMsIGFkZGVkIG1pc3NpbmcgY29tbWVudHMgYW5kIGZpeGVkIGNvbW1lbnRzCgkgIGZpeGVkIHR5cG9zCgoyMDA1LTA4LTIzIDExOjM4OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogc29tZSBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgbW9yZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX2Jvb2xlYW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgZml4YXRlIGZ1bmN0aW9uIGZvciBib29sZWFuczsgYWRkIGEgRklYTUUgdGhhdCB0aGVzZSBmdW5jCgkgIG5hbWVzIHNob3VsZCBwcm9iYWJseSBiZSBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qCgoyMDA1LTA4LTIyIDIxOjAzOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwb3J0ZWQgZ3N0Y2hpbGRwcm94eSBvdmVyIGZyb20gMC44IHBvcnRlZCBnc3QtaW5zcGVjdCBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG92ZXIgZnJvbSAwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfaW5pdCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfbmFtZSksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpLCAoZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfdmFsaXN0KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXQpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3ZhbGlzdCksIChnc3RfY2hpbGRfcHJveHlfc2V0KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9jaGlsZF9hZGRlZCksIChnc3RfY2hpbGRfcHJveHlfY2hpbGRfcmVtb3ZlZCksCgkgIChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIHBvcnRlZCBnc3RjaGlsZHByb3h5IG92ZXIgZnJvbSAwLjgKCSAgcG9ydGVkIGdzdC1pbnNwZWN0IGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgb3ZlciBmcm9tIDAuOAoKMjAwNS0wOC0yMiAxOTo0ODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWxzbyBjYWxsIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb24gaWYgd2UgaGF2ZSBBTlkgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgQWxzbyBjYWxsIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb24gaWYgd2UgaGF2ZSBBTlkgY2Fwcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgRml4IGRlYnVnIGluZm8uCgoyMDA1LTA4LTIyIDE5OjIyOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlcikKCSAgRG9uJ3QgcHJldGVuZCB0byBoYW5kbGUgc2VlayBldmVudHMgaWYgdGhlIHNvdXJjZSBpcyBub3Qgc2Vla2FibGUKCjIwMDUtMDgtMjIgMTg6NDg6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVtb3ZlIGV4dHJhIHBhcmFtZXRlciB0byBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFJlbW92ZSBleHRyYSBwYXJhbWV0ZXIgdG8gZGVidWcgb3V0cHV0CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIEZpeCBzZWVrIGV2ZW50IGhhbmRsaW5nLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgRG9uJ3Qgc3RhcnQgdGhlIHNyYyBwYWQgdGFzayBvbiBGTFVTSF9TVE9QIGlmIHRoZSBwYWQKCSAgaXNuJ3QgbGlua2VkLgoJICBEZWJ1ZyBjaGFuZ2VzLgoKMjAwNS0wOC0yMiAxNToxMjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRSk6IE5ldyBnaGV0dG8gbWFjcm8sIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIGFuZCBnc3RpbXBsZW1lbnRzaW50ZXJmYWNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UpOiBOZXcgZ2hldHRvCgkgIG1hY3JvLCBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSBhbmQgZ3N0aW1wbGVtZW50c2ludGVyZmFjZSBmb3IgYQoJICBuZXcgdHlwZS4KCjIwMDUtMDgtMjIgMTU6MDg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGRlZCBjaGVjayBmb3IgZ3N0X3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgZ3N0X3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nLgoKMjAwNS0wOC0yMiAxNDozNTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IE1ha2UgX3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nIHNhbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwgKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIE1ha2UgX3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nIHNhbmUuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFkZCBnX3JldHVybl92YWxfaWZfZmFpbCgpIHRvIHByb3RlY3QgYWdhaW5zdCBzZWdmYXVsdHMuCgoyMDA1LTA4LTIyIDEwOjM3OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHJlbWFpbmluZyBkb2NzLCBhZGRlZCBtaXNzaW5nIGRvYyBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGlubGluZWQgcmVtYWluaW5nIGRvY3MsIGFkZGVkIG1pc3NpbmcgZG9jIGNvbW1lbnRzCgoyMDA1LTA4LTIyIDA5OjI1OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGVuIHByZXJvbGwgaXMgZG9uZSwgdXNlIHJlZmNvdW50IHJhbmdlIGNoZWNrIGZvciB0aGUgc2luawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbiBwcmVyb2xsIGlzIGRvbmUsIHVzZSByZWZjb3VudCByYW5nZQoJICBjaGVjayBmb3IgdGhlIHNpbmsKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIG1hY3JvIGZvciBjaGVja2luZyByZWZjb3VudCByYW5nZQoKMjAwNS0wOC0yMSAxNjo1MzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZmlndXJlIHRoaXMgb3V0IGZvciBIVCBtYWNoaW5lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlndXJlIHRoaXMgb3V0IGZvciBIVCBtYWNoaW5lcwoKMjAwNS0wOC0yMSAxNToyMTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgc29tZSBmdW5reSBIVC9tdWx0aWNwdSB2cyBzaW5nbGUgZGlmZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBmdW5reSBIVC9tdWx0aWNwdSB2cyBzaW5nbGUgZGlmZmVyZW5jZQoKMjAwNS0wOC0yMSAxNTowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogY2xlYW4gdXAgZW52aXJvbm1lbnQgZm9yIHdoZW4gcmVnaXN0cnkgZ2V0cyBidWlsdCB2ZXJzdXMgd2hlbiBhY3R1YWwgdGVzdHMgYXJlIHJ1bjsgdmFsZ3JpbmQgc2VlbXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGNsZWFuIHVwIGVudmlyb25tZW50IGZvciB3aGVuIHJlZ2lzdHJ5IGdldHMgYnVpbHQgdmVyc3VzCgkgIHdoZW4gYWN0dWFsIHRlc3RzIGFyZSBydW47IHZhbGdyaW5kIHNlZW1zIHRvIG5vdCByZXBvcnQKCSAgbGVha3MgaWYgR1NUX1BMVUdJTl9QQVRIIGlzIHNldCB0byBzb21lIHNwZWNpZmljIHZhbHVlcwoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIG1vcmUgcmVmY291bnRpbmcgY2hlY2tzOyBtYXliZSB0aGlzIGV4cG9zZXMgYQoJICBwcmVyb2xsIGxvY2sgYnVnID8KCSAgKiBjb21tb24vY2hlY2subWFrOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChnc3RfYmluX2dldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfY2hhaW4pOgoJICBhZGQvZml4IGRlYnVnZ2luZy93aGl0ZXNwYWNlCgoyMDA1LTA4LTIxIDExOjQwOjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jOiBFciwgZG9uJ3QgY2FsbCBnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UgeW91IGlkaW90LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBFciwgZG9uJ3QgY2FsbCBnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UgeW91IGlkaW90LgoKMjAwNS0wOC0yMSAxMToxNTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcnVuIHZhbGdyaW5kIHdpdGggcHJvcGVyIGVudgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcnVuIHZhbGdyaW5kIHdpdGggcHJvcGVyIGVudgoKMjAwNS0wOC0yMSAxMDo1NDo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogVXNlIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUwoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgZXZlbnRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTcHJpbmtsZSBnc3RfYmFzZV9zcmNfc3RvcCBsaWJlcmFsbHkgYXJvdW5kIGVycm9yIHBhdGhzIHRvIGZpeAoJICBwcm9ibGVtcyByZXVzaW5nIGEgc291cmNlIGFmdGVyIGZhaWxlZCBzdGF0ZSBjaGFuZ2VzLgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBFeHRyYSBkZWJ1ZyBvdXRwdXQuIERvbid0IHNlZ2ZhdWx0IG9uIEdTVF9QQURfR0VUUkFOR0VGVU5DID0gTlVMTAoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgTWlncmF0ZSBwYXJ0IG9mIHRoZSBkb2NzIGZyb20gdGhlIFNHTUwgZmlsZS4gV2FpdCBmb3IgZW5zb25pYyB0bwoJICB0ZWxsIG1lIGhvdyBJIGRpZCBpdCB3cm9uZyA7KQoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIEV4dHJhIHJvYnVzdG5lc3MgdG8gc3RhdGUgY2hhbmdlcyBiZXR3ZWVuIGZpbGVzLgoKMjAwNS0wOC0yMSAxMDozOTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZG9uJ3QgdmFsZ3JpbmQgdGhlIGNvbnRyb2xsZXIgdGVzdCAtIGl0J3MgbGVha2luZyAtIFN0ZWZhbiwgSEVMUAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIGNvbnRyb2xsZXIgdGVzdCAtIGl0J3MgbGVha2luZyAtIFN0ZWZhbiwgSEVMUAoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpLAoJICAoZ3N0X2NoZWNrX2NoYWluX2Z1bmMpLCAoZ3N0X2NoZWNrX3NldHVwX2VsZW1lbnQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX2VsZW1lbnQpLCAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIGJ1bmNoIG9mIG1ldGhvZHMgdG8gc2V0IHVwIGVsZW1lbnRzLCBhbmQgc3JjIGFuZCBzaW5rIHBhZHMKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKSwgKGNsZWFudXBfZmFrZXNyYyk6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KSwgKGNsZWFudXBfaWRlbnRpdHkpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB1c2UgdGhlbQoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoKMjAwNS0wOC0yMCAyMDozMDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIG1ha2UgR1NUX0VMRU1FTlRfRVJST1Igbm90IGRvIEdTVF9FUlJPUl9PQkpFQ1QgLSB0aGVzZSBlcnJvcnMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFuZCBub3QgYWx3YXlzIHByaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBHU1RfRUxFTUVOVF9FUlJPUiBub3QgZG8gR1NUX0VSUk9SX09CSkVDVCAtIHRoZXNlIGVycm9ycyBzaG91bGQKCSAgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24gYW5kIG5vdCBhbHdheXMgcHJpbnRlZCBhcyB3ZWxsCgoyMDA1LTA4LTIwIDIwOjE1OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBzZXQgR1NUX1RPT0xTX0RJUgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgc2V0IEdTVF9UT09MU19ESVIKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgZmFpbF91bmxlc3NfZXF1YWxzX2ludAoJICBhZGQgZmFpbF91bmxlc3MgZm9yIGVycm9yIG1lc3NhZ2VzCgoyMDA1LTA4LTIwIDE0OjAwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgZmFjdG9yIG91dCB0aGUgY29tbW9uIHN0dWZmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmYWN0b3Igb3V0IHRoZSBjb21tb24gc3R1ZmYKCjIwMDUtMDgtMjAgMTM6MTc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB3b3JrIG9uIGJ1aWxkcyB3aXRob3V0IGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIG9uIGJ1aWxkcyB3aXRob3V0IGNoZWNrCgoyMDA1LTA4LTIwIDEyOjQ3OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmVuYW1lZCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW5hbWVkIHRlc3QKCjIwMDUtMDgtMjAgMTI6NDM6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIHB1dCBzb21lIG1ha2UtdXAgb24gdGhlIGdzdGV2ZW50IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHB1dCBzb21lIG1ha2UtdXAgb24gdGhlIGdzdGV2ZW50IHRlc3QKCjIwMDUtMDgtMjAgMTI6Mzk6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB2YWxncmluZCBtb3JlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YWxncmluZCBtb3JlIHRlc3RzCgoyMDA1LTA4LTIwIDEyOjE0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIG1vdmUgY2hlY2sgc3R1ZmYgdG8gaXRzIG93biBsaWJyYXJ5IHRvIGJlIHVzZWQgYnkgb3RoZXIgbW9kdWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBjaGVjayBzdHVmZiB0byBpdHMgb3duIGxpYnJhcnkgdG8gYmUgdXNlZCBieSBvdGhlciBtb2R1bGVzCgoyMDA1LTA4LTE5IDA5OjU4OjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBlbGltaW5hdGUgYW5vdGhlciB0bXBsIGZpbGUsIGZpeCBzcGVsbGluZyBpbiB0aGUgbG9uZy1kZXNjcmlwdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJICAqIGdzdC9nc3QuYzoKCSAgZWxpbWluYXRlIGFub3RoZXIgdG1wbCBmaWxlLCBmaXggc3BlbGxpbmcgaW4gdGhlIGxvbmctZGVzY3JpcHRpb24KCjIwMDUtMDgtMTggMTY6NDI6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBTaG91bGQgZml4IGJ1aWxkIG9uIDY0LWJpdCBhcmNoJ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBTaG91bGQgZml4IGJ1aWxkIG9uIDY0LWJpdCBhcmNoJ3MKCjIwMDUtMDgtMTggMTY6MjA6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwaXBlbGluZSBnb2VzIHRvIFBMQVlJTkcsIHRoYXQgZGF0YSBoYXMgYWN0dWFsbHkgaGl0IHRoZSBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiBhIHBpcGVsaW5lIGdvZXMgdG8gUExBWUlORywgdGhhdCBkYXRhIGhhcwoJICBhY3R1YWxseSBoaXQgdGhlIHNpbmsuCgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc2luayk6IEEgc2luayB0aGF0IGRvZXNuJ3QgZ2V0IGFueQoJICBkYXRhIHNob3VsZG4ndCByZXR1cm4gU1VDQ0VTUyBmb3IgZ29pbmcgdG8gZWl0aGVyIFBMQVlJTkcgb3IKCSAgUEFVU0VELiBUZXN0IGFsc28gdGhlIHJldHVybiB2YWx1ZXMgb24gdGhlIHdheSBiYWNrIGRvd24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKTogV2hlbiBjaGFuZ2luZyB0aGUKCSAgc3RhdGUgb2YgYW4gZWxlbWVudCBjdXJyZW50bHkgY2hhbmdpbmcgc3RhdGUgYXN5bmNocm9ub3VzbHksIGdvIHRvCgkgIGxvc3Qtc3RhdGUgYWZ0ZXIgY29tbWl0aW5nIHRoZSBwZW5kaW5nIHN0YXRlLiBNYWtlcyBmdXR1cmUgY2FsbHMKCSAgdG8gZ2V0X3N0YXRlIGNvbnRpbnVlIHRvIHJldHVybiBBU1lOQy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6IFJldHVybgoJICBBU1lOQyB3aGVuIGdvaW5nIHRvIFBMQVlJTkcgaWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBwcmVyb2xsLCBhcyBjYW4KCSAgaGFwcGVuIHdpdGggbGl2ZSBzb3VyY2VzLgoKMjAwNS0wOC0xOCAxNjoxNToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IEhhY2sgbG9uZyBwYXJhZ3JhcGggaW50byAyIGNodW5rcyBhcyBhIHdvcmthcm91bmQgZm9yIGJ1Z2d5IGphZGV0ZXggdmVyc2lvbiBpbiBzaWQgYW5kIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBIYWNrIGxvbmcgcGFyYWdyYXBoIGludG8gMiBjaHVua3MgYXMgYSB3b3JrYXJvdW5kIGZvciBidWdneQoJICBqYWRldGV4IHZlcnNpb24gaW4gc2lkIGFuZCBicmVlenkgdGhhdCBsb29wcyBpbmZpbml0ZWx5IGFuZAoJICBlYXRzIGFsbCBSQU0uCgoyMDA1LTA4LTE4IDE2OjAwOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogUHJvdmlkZSBtb3JlIGVycm9yIG1hcmdpbiBpbiBjbG9jayBtZWFzdXJlbWVudHMgdG8gYWxsb3cgZm9yIGdfZ2V0X2N1cnJlbnRfdGltZSBpbmFjY3VyYWNpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgUHJvdmlkZSBtb3JlIGVycm9yIG1hcmdpbiBpbiBjbG9jayBtZWFzdXJlbWVudHMgdG8gYWxsb3cgZm9yCgkgIGdfZ2V0X2N1cnJlbnRfdGltZSBpbmFjY3VyYWNpZXMuCgoyMDA1LTA4LTE4IDE1OjQ3OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudHMuYzogRml4IGVycm9yIG1lc3NhZ2Ugb3V0cHV0IHNvIEkgbWlnaHQgYmUgYWJsZSB0byB0ZWxsIHdoeSB0aGUgdGVzdCB3b3JrcyBoZXJlIGJ1dCBmYWlscyBvbiB0aGUgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIEZpeCBlcnJvciBtZXNzYWdlIG91dHB1dCBzbyBJIG1pZ2h0IGJlIGFibGUgdG8gdGVsbCB3aHkgdGhlCgkgIHRlc3Qgd29ya3MgaGVyZSBidXQgZmFpbHMgb24gdGhlIGJ1aWxkIGZhcm0uCgoyMDA1LTA4LTE4IDE1OjMxOjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrLzogSSB3cm90ZSBhIHRlc3QhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKSwgKG1haW4pOgoJICBJIHdyb3RlIGEgdGVzdCEKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTcGVsbGluZyBjb3JyZWN0aW9uCgkgICogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJICBEb2NzIHVwZGF0ZXMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFRyZWF0IGEgYnVmZmVyLXdpdGhvdXQtbmV3c2VnbWVudCB0aGUgc2FtZSBhcyBhIHJlY2VpdmluZwoJICBhIG5ld3NlZ21lbnQgbm90IGluIHRpbWUgZm9ybWF0LCBhbmQgZGlzYWJsZSBzeW5jaW5nIHRvIHRoZSBjbG9jawoJICB3aXRoIGEgd2FybmluZy4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIpOgoJICBBc3NlcnQgaWYgYW55b25lIHRyaWVzIHRvIHJlcGxhY2UgdGhlIGV4aXN0aW5nIHN5bmNfaGFuZGxlciBmb3IgYnVzLAoJICBhcyBvbmx5IHRoZSBvd25lciBzaG91bGQgYmUgc2V0dGluZyBpdC4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgSGF2ZSBhIGZpeGVkIHNldCBvZiBjdXN0b20gZXZlbnQgZW51bXMgd2l0aCBldmVudHMgaWRlbnRpZmllZCBieQoJICB0aGVpciBzdHJ1Y3R1cmUgbmFtZSAoYXMgaW4gMC44KSwgcmF0aGVyIHRoYW4gYSBmcmVlLWZvci1hbGwKCSAgYWxsb3dpbmcgY29sbGlzaW9ucyBiZXR3ZWVuIGVudW0gdmFsdWVzIGZyb20gZGlmZmVyZW50IHBsdWdpbnMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgRG9jcyBjaGFuZ2UuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBIYW5kbGUgb3V0LW9mLWJhbmQgZG93bnN0cmVhbSBldmVudHMgZnJvbSB0aGUgc2VuZGluZyB0aHJlYWQuCgoyMDA1LTA4LTE3IDE2OjU3OjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IEludGVycHJldCBwbGF5LXRpbWVvdXQ9PTAgdG8gbWVhbiBubyB0aW1lb3V0IGF0IGFsbC4gSW4gdGhhdCBjYXNlLCBkb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBJbnRlcnByZXQKCSAgcGxheS10aW1lb3V0PT0wIHRvIG1lYW4gbm8gdGltZW91dCBhdCBhbGwuIEluIHRoYXQgY2FzZSwgZG9uJ3QKCSAgYm90aGVyIHdpdGggYSBnZXRfc3RhdGUgb3IgYSB3YXJuaW5nLCBqdXN0IHJldHVybiBkaXJlY3RseSwgZXZlbgoJICBpZiBpdCdzIEFTWU5DLgoKMjAwNS0wOC0xNyAxNjozMzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEZWJ1ZyBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERlYnVnIGNoYW5nZXMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9iaW5fd2F0Y2hfZm9yX3N0YXRlX2NoYW5nZSk6IEFkZCBmdW5jdGlvbiB0bwoJICBlbnN1cmUgYmlucyBwb3N0IHN0YXRlIGNoYW5nZSBtZXNzYWdlcy4gQSBiaXQgb2YgYSBoYWNrIGJ1dCBJIGNhbid0CgkgIHRoaW5rIG9mIGEgd2F5IHRvIGF2b2lkIGl0LgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlKTogQWRkZWQgdGVzdC4KCjIwMDUtMDgtMTYgMTc6MjM6NTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuKjogTmV3IGZ1bmN0aW9uLCBsaWtlIHBlZWsoKSBidXQgeW91IG93biB0aGUgZGF0YS4gTm90IHRlcnJpYmx5IGVmZmljaWVudCBhdG0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmMgKGdzdF9hZGFwdGVyX3Rha2UpOiBOZXcgZnVuY3Rpb24sIGxpa2UKCSAgcGVlaygpIGJ1dCB5b3Ugb3duIHRoZSBkYXRhLiBOb3QgdGVycmlibHkgZWZmaWNpZW50IGF0bS4KCjIwMDUtMDgtMTYgMTY6Mjk6MDQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R1dGlscy4qOiBBZGQgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0YWcgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKSwgKHB1c2hfYW5kX3JlZiksCgkgIChnc3RfZWxlbWVudF9mb3VuZF90YWdzKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHR3byB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGFnIGhhbmRsaW5nLgoKMjAwNS0wOC0xNiAxMjoxNTo0NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggZG9jcyB0byB1c2UgX2Jpbl9hZGQoKSBiZWZvcmUgX2xpbmsoKSwgd2hpY2ggZml4ZXMgdGhlIGV4YW1wbGVzIHdpdGggcmVjZW50IGNvcmUgdmVyc2lvbnMgKHJlcG9ydGVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgRml4IGRvY3MgdG8gdXNlIF9iaW5fYWRkKCkgYmVmb3JlIF9saW5rKCksIHdoaWNoIGZpeGVzIHRoZSBleGFtcGxlcwoJICB3aXRoIHJlY2VudCBjb3JlIHZlcnNpb25zIChyZXBvcnRlZCBieSBNYWRoYW4gUmFqIE0KCSAgPHJhal9tYWRhbkByZWRpZmZtYWlsLmNvbT4sICMzMTMxOTkpLgoKMjAwNS0wOC0xNiAwOTo0Mjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGRlZCBzdWJ0cmFjdCBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkZWQgc3VidHJhY3QgY2hlY2tzLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MgYWJvdXQgbmV3c2VnbWVudAoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIEZpeCBGSVhNRQoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBBZGQgY29tbWVudHMsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICBjbGVhbnVwcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfaW50X3JhbmdlKSwKCSAgKGdzdF9zdHJpbmdfdW53cmFwKSwgKGdzdF92YWx1ZV91bmlvbl9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV91bmlvbl9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2xpc3QpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnQpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGUpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2Zyb21fbGlzdCksIChnc3RfdmFsdWVfc3VidHJhY3RfbGlzdCksCgkgIChnc3RfdmFsdWVfY2FuX2NvbXBhcmUpLCAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb24pOgoJICBDbGVhbnVwcywgYWRkIGNvbW1lbnRzLCByZW1vdmUgdW5uZWVkZWQgYXNzZXJ0cy4KCjIwMDUtMDgtMTUgMTg6MTU6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZG9uJ3QgY29udmVydCBOVUxMIHN0cnVjdHVyZXMgdG8gc3RyaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgY29udmVydCBOVUxMIHN0cnVjdHVyZXMgdG8gc3RyaW5ncwoKMjAwNS0wOC0xNSAxNjo1NzozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbWFkZSBzb21lIGRlZmluZXMgcHJpdmF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBtYWRlIHNvbWUgZGVmaW5lcyBwcml2YXRlCgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9jbGFzc19pbml0KToKCSAgZG9jdW1lbnRlZCBhbGwgdW5kb2N1bWVudGVkIHNpZ25hbCBpbmxpbmUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgIGFkZGVkIHBhZGRpbmcKCjIwMDUtMDgtMTUgMDk6NTY6MTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBEb2N1bWVudCBfc2V0X2xpbmtfZnVuY3Rpb24gLT4gX3NldF9zZXRjYXBzX2Z1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRG9jdW1lbnQgX3NldF9saW5rX2Z1bmN0aW9uIC0+IF9zZXRfc2V0Y2Fwc19mdW5jdGlvbi4KCjIwMDUtMDgtMTQgMjI6Mjk6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBhIC5jaGVjayB0YXJnZXQgZm9yIHJ1bm5pbmcgdGhlIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSAuY2hlY2sgdGFyZ2V0IGZvciBydW5uaW5nIHRoZSBjaGVjawoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgY29zbWV0aWMgZml4dXBzCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBjb21wbGV0ZSBjaGVja3MgZm9yIGdzdGJ1ZmZlcjsgd291bGQgYmUgbmljZSBpZiBJIGNvdWxkIGdldCB0aGUKCSAgZ2NvdiBzdHVmZiB0byB3b3JrIHNvIEkgY2FuIHNlZSBpZiBJIGFjdHVhbGx5IGNvbXBsZXRlZCBnc3RidWZmZXIuYwoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBBU1NFUlRfQlVGRkVSX1JFRkNPVU5UCgoyMDA1LTA4LTEzIDExOjQ1OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICByZW1vdmUgc3BpZGVyIGZyb20gZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNwaWRlciBmcm9tIGRpc3QKCjIwMDUtMDgtMTMgMTE6NDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvZ3N0c3BpZGVyLnZjcHJvajoKCSAgcmVtb3ZlZCBmcm9tIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgZnJvbSBIRUFECgoyMDA1LTA4LTEzIDEwOjMzOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSBhcyB3ZSBoYXZlIGluIDAuOCwgYW5kIGRvbid0IHNwZXcgb3V0IGEgd2FybmluZyBpZiBhIHRhZyB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBpcyByZS1yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZy5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSksIChnc3RfdGFnX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIEFkZCBHU1RfVEFHX0xBTkdVQUdFX0NPREUgYXMgd2UgaGF2ZSBpbiAwLjgsIGFuZCBkb24ndAoJICBzcGV3IG91dCBhIHdhcm5pbmcgaWYgYSB0YWcgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQKCSAgaXMgcmUtcmVnaXN0ZXJlZCwgdW5sZXNzIGl0IGlzIHJlLXJlZ2lzdGVyZWQgd2l0aCBhCgkgIGRpZmZlcmVudCB0eXBlICgjMzA4NDM4KS4KCjIwMDUtMDgtMTIgMTQ6MzA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IEFkZCBzb21lIHBhcmFncmFwaHMgYWJvdXQgc3RhdGUgY2hhbmdlcyBpbiAwLjkgdG8gdGhlIFBXRyBhbmQgdGhlIHBvcnRpbmcgZ3VpZGUsIGluIHBhcnRpY3VsYXIgYWJvdXQgdGhlIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJICBBZGQgc29tZSBwYXJhZ3JhcGhzIGFib3V0IHN0YXRlIGNoYW5nZXMgaW4gMC45IHRvIHRoZSBQV0cKCSAgYW5kIHRoZSBwb3J0aW5nIGd1aWRlLCBpbiBwYXJ0aWN1bGFyIGFib3V0IHRoZSBuZXcgbWVhbmluZwoJICBvZiBHU1RfU1RBVEVfUEFVU0VEIGFuZCBob3cgdG8gd3JpdGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9ucwoJICB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzIGJ5IG11bHRpcGxlIHRocmVhZHMgaW4gbWluZC4KCjIwMDUtMDgtMTEgMTc6Mzk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGFkZGVkIGRlcHJlY2F0aW9uIGFuZCBzaW5jZSBpbmRleGVzIGFkZGVkIHNpbmNlIHRhZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGRlcHJlY2F0aW9uIGFuZCBzaW5jZSBpbmRleGVzCgkgIGFkZGVkIHNpbmNlIHRhZ3MKCjIwMDUtMDgtMTEgMTQ6MjQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWN0dWFsbHkgaW1wbGVtZW50IChyZSlzZXR0aW5nIHRoZSB0YXJnZXQgb24gYSBnaG9zdHBhZCBhcyBkZXNjcmliZWQgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIEFjdHVhbGx5IGltcGxlbWVudCAocmUpc2V0dGluZyB0aGUgdGFyZ2V0IG9uIGEgZ2hvc3RwYWQKCSAgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzLgoKMjAwNS0wOC0xMCAyMToxOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2hlY2sgd2hldGhlciBHU1RfREVCVUdfTk9fQ09MT1IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IGFuZCBkaXNhYmxlIGNvbG91cmVkIGRlYnVnIG91dHB1dCBpZiB0aGF0IGlzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9jaGVja193aXRoX3BvcHRfdGFibGUpLCAoaW5pdF9wcmUpOgoJICBDaGVjayB3aGV0aGVyIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcwoJICBzZXQgYW5kIGRpc2FibGUgY29sb3VyZWQgZGVidWcgb3V0cHV0IGlmIHRoYXQgaXMgdGhlIGNhc2UuCgoyMDA1LTA4LTEwIDE1OjA4OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogVGhlIG1lbW9yeSByZXR1cm5lZCBieSBnc3RfdHlwZV9maW5kX3BlZWsoKSBuZWVkcyB0byBzdGF5IHZhbGlkIHVudGlsIHRoZSBlbmQgb2YgYSB0eXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgVGhlIG1lbW9yeSByZXR1cm5lZCBieSBnc3RfdHlwZV9maW5kX3BlZWsoKSBuZWVkcyB0bwoJICBzdGF5IHZhbGlkIHVudGlsIHRoZSBlbmQgb2YgYSB0eXBlZmluZCBmdW5jdGlvbiwgYW5kCgkgIHR5cGVmaW5kIGZ1bmN0aW9ucyBtYXkga2VlcCByZXN1bHRzIGZyb20gZGlmZmVyZW50CgkgIG9mZnNldHMgYXJvdW5kLCBzbyB3ZSBjYW4ndCBqdXN0IHVucmVmIHRoZSBidWZmZXIgZnJvbQoJICB0aGUgcHJldmlvdXMgX3BlZWsoKSwgYnV0IGhhdmUgdG8gc2F2ZSBhbGwgYnVmZmVycwoJICByZXR1cm5lZCBieSBfcGVlaygpIHVudGlsIHR5cGVmaW5kaW5nIGlzIGRvbmUgYW5kIG9ubHkKCSAgZnJlZSB0aGVtIHRoZW4uCgoyMDA1LTA4LTA5IDE2OjI1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTmV3IG1hY3JvczogR1NUX1JPVU5EX1VQXzIoKSB0aHJvdWdoIEdTVF9ST1VORF9VUF82NCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBOZXcgbWFjcm9zOiBHU1RfUk9VTkRfVVBfMigpIHRocm91Z2ggR1NUX1JPVU5EX1VQXzY0KCkuCgoyMDA1LTA4LTA4IDE2OjAxOjEyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHVwIHNwZWMgZm9yIGxhdGVzdCBDVlMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIHNwZWMgZm9yIGxhdGVzdCBDVlMgY2hhbmdlcwoKMjAwNS0wOC0wOCAxNTowODoxNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBGaXggYSBwcmV0dHkgZ29vZCBtZW1sZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRml4IGEgcHJldHR5IGdvb2QgbWVtbGVhay4KCjIwMDUtMDgtMDggMTM6NTU6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aXRlcmF0b3IuaDogRml4IHdyb25nIGluY2x1ZGUgYW5kICdtYWtlIGRpc3RjaGVjaycuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBGaXggd3JvbmcgaW5jbHVkZSBhbmQgJ21ha2UgZGlzdGNoZWNrJy4KCjIwMDUtMDgtMDggMTM6Mzg6MzQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIFVzZSBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoKSBpbnN0ZWFkLgoKMjAwNS0wOC0wOCAxMzozMTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCBwYWRkaW5nIHRvIG91ciBiYXNlIGVsZW1lbnRzJyBjbGFzcyBhbmQgaW5zdGFuY2Ugc3RydWN0cyBhbmQgdG8gR3N0SXRlcmF0b3IgKHlvdSB3aWxsIG5lZWQgdG8gcmVidWlsZCBhbGwgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGQgcGFkZGluZyB0byBvdXIgYmFzZSBlbGVtZW50cycgY2xhc3MgYW5kIGluc3RhbmNlIHN0cnVjdHMgYW5kCgkgIHRvIEdzdEl0ZXJhdG9yICh5b3Ugd2lsbCBuZWVkIHRvIHJlYnVpbGQgYWxsIHBsdWdpbnMgYW5kIGFwcHMhKQoKMjAwNS0wOC0wOCAxMzoxNzowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIGRlZmF1bHQgbWVzc2FnZSBmb3J3YXJkaW5nIGZyb20gY2hpbGQtPmJ1cyB0byBiaW4tPmJ1cyB0aHJlYWRzYWZlIGFuZCBtYWtlIGl0IG5vdCBlbWl0IHdhcm5pbmdzIGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlcik6CgkgIE1ha2UgZGVmYXVsdCBtZXNzYWdlIGZvcndhcmRpbmcgZnJvbSBjaGlsZC0+YnVzIHRvIGJpbi0+YnVzCgkgIHRocmVhZHNhZmUgYW5kIG1ha2UgaXQgbm90IGVtaXQgd2FybmluZ3MgaWYgdGhlIHBhcmVudCBoYXMgbm8gYnVzLgoKMjAwNS0wOC0wOCAxMjoxNDoyMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogT24gcGF1c2VkLT5yZWFkeSwgc2V0IHBhZC0+Y2FwcyB0byBOVUxMLCBhcyBpcyB0aGUgZG9jdW1lbnRlZCBiZWhhdmlvdXIgaW4gdGhpcyBzdGF0ZSBjaGFuZ2UuIEZpeGVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChhY3RpdmF0ZV9wYWRzKToKCSAgT24gcGF1c2VkLT5yZWFkeSwgc2V0IHBhZC0+Y2FwcyB0byBOVUxMLCBhcyBpcyB0aGUgZG9jdW1lbnRlZAoJICBiZWhhdmlvdXIgaW4gdGhpcyBzdGF0ZSBjaGFuZ2UuIEZpeGVzIHBsYXliYWNrIG9mIHNlcmllcyBvZgoJICBtZWRpYSBmaWxlcyB3aGVuIHZpc3VhbGl6YXRpb24gaXMgZW5hYmxlZCBpbiBUb3RlbS4KCjIwMDUtMDgtMDcgMTM6Mzc6MDggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEFsbG93IE5VTEwgYXMgZmlsdGVyLWNhcHMgKHdoaWNoIG1lYW5zICJhbnkiKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIEFsbG93IE5VTEwgYXMgZmlsdGVyLWNhcHMgKHdoaWNoIG1lYW5zICJhbnkiKS4KCjIwMDUtMDgtMDUgMTc6Mjg6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgYWRkaW5nIG1vcmUgZW50cmllcyB0byB0aGUgZG9jcyBhbmQgZml4IHNtYWxsIGRvYy1idWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbW9yZSBlbnRyaWVzIHRvIHRoZSBkb2NzIGFuZCBmaXggc21hbGwgZG9jLWJ1Z3MKCjIwMDUtMDgtMDUgMTM6NDI6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNoZWNrL2dzdC1saWJzLy5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIG1pZ3JhdGVkIHNvbWUgbW9yZSBkb2NzIHRvIGJlIGlubGluZWQgaW4gdGhlIHNvdXJjZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1pZ3JhdGVkIHNvbWUgbW9yZSBkb2NzIHRvIGJlIGlubGluZWQgaW4gdGhlIHNvdXJjZXMKCjIwMDUtMDgtMDUgMTI6NTk6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBhZGRlZCBsb25nL3Nob3J0IGRlc2MgZm9yIGNvbnRyb2xsZXIgZG9jcyBhZGRlZCBjb2xsZWN0cGFkcyBiYXNlIGNsYXNzIGRvY3MgYWRkZWQgY29ycmVjdCBpbmNsdWRlcyB0byBiYXNlLWNsYXNzIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIGxvbmcvc2hvcnQgZGVzYyBmb3IgY29udHJvbGxlciBkb2NzCgkgIGFkZGVkIGNvbGxlY3RwYWRzIGJhc2UgY2xhc3MgZG9jcwoJICBhZGRlZCBjb3JyZWN0IGluY2x1ZGVzIHRvIGJhc2UtY2xhc3MgZG9jcwoKMjAwNS0wOC0wNSAxMDowMjo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBtb3JlIHRlc3RzIChhbmQgZml4ZXMpIGZvciB0aGUgY29udHJvbGxlciBtb3JlIGRvY3MgZm9yIHRoZSBjb250cm9sbGVyIGludGVncmF0ZWQgY29tcGFuaWVzIGRvY3MgZm9yIHRoZSBhZGFwdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHRlc3RzIChhbmQgZml4ZXMpIGZvciB0aGUgY29udHJvbGxlcgoJICBtb3JlIGRvY3MgZm9yIHRoZSBjb250cm9sbGVyCgkgIGludGVncmF0ZWQgY29tcGFuaWVzIGRvY3MgZm9yIHRoZSBhZGFwdGVyCgoyMDA1LTA4LTA1IDA2OjU3OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvc21ldGljIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpYyBmaXhlcwoKMjAwNS0wOC0wNSAwNjo1NTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdsaXN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnc2V0dGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFzaHN0YWNrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaWhhbmRsZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cml0eXBlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZlcnNpb24uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R4bWwuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGQgc2l6ZXR5cGUgdGVzdHMgZm9yIGZha2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzaXpldHlwZSB0ZXN0cyBmb3IgZmFrZXNyYwoKMjAwNS0wOC0wNCAxOTo0MDo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogUmVpbXBsZW1lbnQgdXNpbmcgYmFzZXRyYW5zZm9ybSwgZml4ZXMgYnVmZmVyX2FsbG9jIHByb3h5aW5nIGFtb25nIG90aGVyIHRoaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogUmVpbXBsZW1lbnQgdXNpbmcgYmFzZXRyYW5zZm9ybSwKCSAgZml4ZXMgYnVmZmVyX2FsbG9jIHByb3h5aW5nIGFtb25nIG90aGVyIHRoaW5ncy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBSZXZlcnQgcGF0Y2ggdG8gZ3N0YmFzZXRyYW5zZm9ybSBmcm9tIDctMjggcmVtb3ZpbmcKCSAgZGVsYXlfY29uZmlndXJlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaCAoR3N0QmFzZVRyYW5zZm9ybUNsYXNzLmdldF9zaXplKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfc2l6ZSk6CgkgIFNlbWFudGljcyBjaGFuZ2VkLCBzaG91bGQgcmV0dXJuIG5vdCB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0IGJ1ZmZlcgoJICBidXQgdGhlIGJ5dGUgc2l6ZSBvZiBhIGJ1ZmZlciB3aXRoIGEgZ2l2ZW4gY2Fwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKTogQmV0dGVyCgkgIGRlYnVnIG9iamVjdC4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2Fwcyk6IERvbid0IHNldCBvdXRfc2l6ZSBoZXJlOiAoaW4sCgkgIG91dCkgYXJlIG5vdCB0aGUgcGFkIGNhcHMgdW50aWwgc2V0Y2FwcyBmaW5pc2hlcy4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOiBQcm94eSB0aGUgYnVmZmVyX2FsbG9jIGZvciB0aGUKCSAgbm90LWluLXBsYWNlIGNhc2UgYXMgd2VsbC4gRGVhbCB3aXRoIGNoYW5naW5nIGZyb20gaW4tcGxhY2UgdG8KCSAgbm90LWluLXBsYWNlIHdpdGhpbiBjYWxsaW5nIHBhZF9hbGxvY19idWZmZXIuIFN0aWxsIGEgYml0CgkgIGNvbmNlcm5lZCBhYm91dCB0aGUgb3ZlcmhlYWQgaGVyZS4uLgoKMjAwNS0wOC0wNCAxMTo1Njo1NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDogQWRkZWQgZ3N0X2FkYXB0ZXJfZ2V0X3R5cGUoKSB0byB0aGUgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgQWRkZWQgZ3N0X2FkYXB0ZXJfZ2V0X3R5cGUoKSB0byB0aGUgaGVhZGVyCgoyMDA1LTA4LTAzIDE2OjEwOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeGVkIGRpc3RjaGVjayBicmVha2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgZGlzdGNoZWNrIGJyZWFrYWdlCgoyMDA1LTA4LTAzIDE1OjU5OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgYWRkZWQgY2hlY2sgdGVzdCBzdWl0ZSBmb3IgdGhlIGNvbnRyb2xsZXIgZml4ZWQgYSBkb2MgdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgY2hlY2sgdGVzdCBzdWl0ZSBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgZml4ZWQgYSBkb2MgdHlwbwoKMjAwNS0wOC0wMyAxMzozMDoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9SRUFETUU6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGFkZCBzaG9ydC9sb25nIGRlc2NyaXB0aW9uIGRvY3MgdG8gYmFzZSBjbGFzc2VzIGFkZCBwdXNoc3JjIHRvIHRoZSBkb2NzIHJlbW92ZSBjb25zb2xpZGF0ZWQgZG9jIGZyYWdtZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNob3J0L2xvbmcgZGVzY3JpcHRpb24gZG9jcyB0byBiYXNlIGNsYXNzZXMKCSAgYWRkIHB1c2hzcmMgdG8gdGhlIGRvY3MKCSAgcmVtb3ZlIGNvbnNvbGlkYXRlZCBkb2MgZnJhZ21lbnRzCgoyMDA1LTA4LTAyIDIxOjM5OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHRoYXQgb25lIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhhdCBvbmUgdG9vCgoyMDA1LTA4LTAyIDIxOjM4OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkgIGFkZGVkIG1pc3NpbmcgcGMgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIG1pc3NpbmcgcGMgZmlsZXMKCjIwMDUtMDgtMDIgMjE6MzU6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sLnBjLmluOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkgIGFkZGVkIGNvbnRyb2xsZXIgY29kZSByZW1vdmVkIGRwYXJhbSBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgY29udHJvbGxlciBjb2RlCgkgIHJlbW92ZWQgZHBhcmFtIHBjIGZpbGVzCgoyMDA1LTA4LTAxIDIxOjE3OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEJyb2FkY2FzdCB0aGUgY29uZGl0aW9uIHdoZW4gc2h1dHRpbmcgZG93biwgdG8gbWFrZSBzdXJlIHdlIHdha2UgYWxsIHRocmVhZHMgdXAuIFNodXQgZG93bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2ZpbmFsaXplKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zdG9wKToKCSAgQnJvYWRjYXN0IHRoZSBjb25kaXRpb24gd2hlbiBzaHV0dGluZyBkb3duLCB0byBtYWtlIHN1cmUgd2Ugd2FrZSBhbGwKCSAgdGhyZWFkcyB1cC4gU2h1dCBkb3duIHBhZHMgb24gZmluYWxpemUsIGZvciBzYWZldHkuCgoyMDA1LTA4LTAxIDE3OjI2OjAwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSGFuZGxlIFBBVVNFRC0+UkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIGFmdGVyIG5lZ290aWF0aW9uIG9jY3VycmVkIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTAxICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBQQVVTRUQtPlJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbiBhZnRlciBuZWdvdGlhdGlvbgoJICBvY2N1cnJlZCBhbHJlYWR5LgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KToKCSAgRXh0cmEgcGllY2Ugb2YgZGVidWcgZm9yIG5ldyBtZXNzYWdlcy4KCjIwMDUtMDgtMDEgMTY6NDM6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGRwYXJhbXMgZGVwcyBmcm9tIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZHBhcmFtcyBkZXBzIGZyb20gdGhlIGRvY3MKCjIwMDUtMDgtMDEgMTY6MTc6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2wvY29udHJvbC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2NvbnRyb2wuaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW0uYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW0uaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1fc21vb3RoLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtX3Ntb290aC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbWNvbW1vbi5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBsaW5lYXJpbnRlcnAuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGxpbmVhcmludGVycC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL3VuaXRjb252ZXJ0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvdW5pdGNvbnZlcnQuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZHlucGFyYW1zL2RwYXJhbXN0ZXN0LmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2R5bnBhcmFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zL2RwYXJhbXN0ZXN0LmM6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBkZWFjdGl2YXRlIGFuZCByZW1vdmUgZHBhcmFtcyAobGliZ3N0Y29udHJvbCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYWN0aXZhdGUgYW5kIHJlbW92ZSBkcGFyYW1zIChsaWJnc3Rjb250cm9sKQoKMjAwNS0wOC0wMSAxMToxNTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuKjogU2V0IGNhcHMgb24gYWxsIG91dGdvaW5nIGJ1ZmZlcnMsIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU2V0IGNhcHMgb24gYWxsIG91dGdvaW5nIGJ1ZmZlcnMsIG5vdCBqdXN0IHRoZSBmaXJzdCBvbmUuCgoyMDA1LTA4LTAxIDA5OjEwOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIgd2hlbiB3ZSd2ZSBmb3VuZCB0aGUgdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tfc2V0X2J1ZmZlcl9jYXBzKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFNldCBjYXBzIG9uIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciB3aGVuIHdlJ3ZlIGZvdW5kIHRoZSB0eXBlLgoKMjAwNS0wOC0wMSAwODo1MjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0LzogUmVtb3ZlIHNvbWUgb2xkIGNydWZ0IGZyb20gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkgIFJlbW92ZSBzb21lIG9sZCBjcnVmdCBmcm9tIGRvY3MuCgoyMDA1LTA3LTMxIDExOjU5OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5oOiBGaXggaW5saW5lIGRvY3MgZm9yIEdzdFBhZExpbmtSZXR1cm4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgRml4IGlubGluZSBkb2NzIGZvciBHc3RQYWRMaW5rUmV0dXJuLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBOZXcgQVBJOiBnc3Rfc3RydWN0dXJlX2hhc19uYW1lKCkuCgoyMDA1LTA3LTMwIDE1OjAwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQUNfU1lTX0xBUkdFRklMRSwgd2hpY2ggd2lsbCBzZXQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgYW5kIF9MQVJHRUZJTEVfU09VUkNFIGluIGNvbmZpZy5oIGFzIHJlcXVpcmVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFDX1NZU19MQVJHRUZJTEUsIHdoaWNoIHdpbGwgc2V0IF9GSUxFX09GRlNFVF9CSVRTPTY0CgkgIGFuZCBfTEFSR0VGSUxFX1NPVVJDRSBpbiBjb25maWcuaCBhcyByZXF1aXJlZC4gRG8gbm90CgkgIGV4cG9ydCB0aG9zZSBmbGFncyBpbiBvdXIgLnBjIGZpbGVzIGFueSBsb25nZXIgKCMxNDIyMDkpLgoJICBSZW1vdmUgdW51c2VkIEdTVF9ESVNBQkxFX09NRUdBX0NPVEhSRUFEUyBzdHVmZi4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLCAoZ3N0X2ZpbGVfc2lua19ldmVudCksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCksIChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIFJlZG8gc2Vlay90ZWxsIGNhbGxzIHdpdGggbGFyZ2UgZmlsZSBzdXBwb3J0IGluIG1pbmQ7IGFkZCBzb21lCgkgIGRlYnVnZ2luZyBtZXNzYWdlczsgYWRkIGxvZyBtZXNzYWdlIHRoYXQgdGVsbHMgdXMgd2hlbiBsYXJnZQoJICBmaWxlIHN1cHBvcnQgaXMgdW5hdmFpbGFibGUgb3Igbm90IGVuYWJsZWQgZm9yIHNvbWUgcmVhc29uLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgIEFkZCBsb2cgbWVzc2FnZSB0aGF0IHRlbGxzIHVzIHdoZW4gbGFyZ2UgZmlsZSBzdXBwb3J0CgkgIGlzIHVuYXZhaWxhYmxlIG9yIG5vdCBlbmFibGVkIGZvciBzb21lIHJlYXNvbi4KCjIwMDUtMDctMjkgMTk6MjI6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkZWQgdGVzdCBmb3IgcmVtb3ZpbmcgYW4gZWxlbWVudCB3aXRoIGdob3N0cGFkIGZyb20gYSBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgZm9yIHJlbW92aW5nIGFuIGVsZW1lbnQgd2l0aCBnaG9zdHBhZCBmcm9tIGEgYmluLgoJICBGaXhlZCB0ZXN0IGFzIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyB0aGUgcmlnaHQgdGhpbmcuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeV90eXBlKSwgKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeSksIChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdWxsKSwgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdXNoKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldCksCgkgIChnc3RfcHJveHlfcGFkX2dldF90YXJnZXQpLCAoZ3N0X3Byb3h5X3BhZF9pbml0KSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfcHJveHlfcGFkX2ZpbmFsaXplKSwKCSAgKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX25ldyksCgkgIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgQ2xlYW4gdXAgZ2hvc3RwYWRzLCByZW1vdmUgcHJvcGVydGllcyBmb3IgaW50ZXJuYWwgc3R1ZmYuCgkgIE1ha2UgdGhyZWFkc2FmZS4KCSAgRml4IHJlZmNvdW50aW5nLgoJICBQcmVwYXJlIGZvciBzd2l0Y2hpbmcgdGFyZ2V0cywgbm90IGFsbCB1c2UgY2FzZXMgd29yayB5ZXQuCgoyMDA1LTA3LTI5IDE5OjE5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvZ3N0YmluLmM6ICh1bmxpbmtfcGFkcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOgoJICBVbmxpbmtpbmcgcGFkcyB3aGlsZSBob2xkaW5nIHRoZSBiaW4gTE9DSyBpcyBub3QgYSBnb29kCgkgIGlkZWEuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLCAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgTm8gcHJvYiBzZXR0aW5nIHRlbXBsYXRlIGFmdGVyIGNyZWF0aW5nIHRoZSBwYWQuCgoyMDA1LTA3LTI5IDE1OjM0OjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidXMuYzogZ3N0X2J1c19wb2xsIG1heSBiZSBjYWxsZWQgZnJvbSBvdGhlciB0aHJlYWRzLiBIYW5kbGUgdGhpcyBuaWNlbHkgYnkgbm90IG1ha2luZyBwb2xsX2RhdGEgZGlzYXBwZWFyIG9mZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NldF9mbHVzaGluZyksIChnc3RfYnVzX3BvcCksCgkgIChnc3RfYnVzX3BlZWspLCAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksIChwb2xsX2hhbmRsZXIpLCAocG9sbF90aW1lb3V0KSwKCSAgKHBvbGxfZGVzdHJveSksIChwb2xsX2Rlc3Ryb3lfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICBnc3RfYnVzX3BvbGwgbWF5IGJlIGNhbGxlZCBmcm9tIG90aGVyIHRocmVhZHMuIEhhbmRsZQoJICB0aGlzIG5pY2VseSBieSBub3QgbWFraW5nIHBvbGxfZGF0YSBkaXNhcHBlYXIgb2ZmIHRoZQoJICBzdGFjayBvbmNlIGdzdF9idXNfcG9sbCByZXR1cm5zLgoJICBnc3RfYnVzX3BlZWsgbm93IGluY3JlbWVudHMgdGhlIHJlZmNvdW50IG9uIHRoZSByZXR1cm5lZAoJICBtZXNzYWdlLgoKMjAwNS0wNy0yOSAxMToyOTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBPdmVydmlldyBvZiBjdXJyZW50IEdob3N0UGFkIGRhdGFzdHJ1Y3R1cmVzIGFuZCB1c2UgY2FzZXMgZm9yIGNoYW5naW5nIHRoZSB0YXJnZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBPdmVydmlldyBvZiBjdXJyZW50IEdob3N0UGFkIGRhdGFzdHJ1Y3R1cmVzIGFuZCB1c2UKCSAgY2FzZXMgZm9yIGNoYW5naW5nIHRoZSB0YXJnZXQuCgoyMDA1LTA3LTI4IDE1OjM4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBBZGRlZCBjaGVja3MgZm9yIGhpZXJhcmNoeSBjb25zaXN0ZW5jeSB3aGFuIGFkZGluZyBsaW5rZWQgZWxlbWVudHMgdG8gYmlucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrcyBmb3IgaGllcmFyY2h5IGNvbnNpc3RlbmN5IHdoYW4gYWRkaW5nIGxpbmtlZAoJICBlbGVtZW50cyB0byBiaW5zLgoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIHRvIHRlc3QgZWxlbWVudCBzY2hlZHVsaW5nIHdpdGhvdXQgYmluL3BpcGVsaW5lLgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpcnN0IGFkZCBlbGVtZW50cyB0byBiaW4sIHRoZW4gbGluay4KCSAgKiBnc3QvZ3N0YmluLmM6ICh1bmxpbmtfcGFkcyksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpOgoJICBVbmxpbmsgcGFkcyBmcm9tIGVsZW1lbnRzIGFkZGVkL3JlbW92ZWQgZnJvbSBiaW4gdG8gbWFpbnRhaW4KCSAgaGllcmFyY2h5IGNvbnNpc3RlbmN5LgoKMjAwNS0wNy0yOCAxMTo0OTo1NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBSZW1vdmUgYnJva2VuIGRlbGF5X2NvbmZpZ3VyZSAoZml4ZXMgcmVuZWdvdGlhdGlvbiBvZiBzb2Z0d2FyZSBzY2FsaW5nIHBpcGVsaW5lcyk7IHJlbW92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJlbW92ZSBicm9rZW4gZGVsYXlfY29uZmlndXJlIChmaXhlcyByZW5lZ290aWF0aW9uIG9mIHNvZnR3YXJlCgkgIHNjYWxpbmcgcGlwZWxpbmVzKTsgcmVtb3ZlIHNvbWUgbGVmdG92ZXIgcHJpbnRmKClzLgoKMjAwNS0wNy0yOCAxMToyNDozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBzb21lIG1vcmUgdGVzdHMgZm9yIHdyb25nIGhpZXJhcmNoeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgdGVzdHMgZm9yIHdyb25nIGhpZXJhcmNoeQoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICBTb21lIHVwZGF0ZXMuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBDbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCksIChnc3RfZWxlbWVudF9zZWVrKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBTb21lIG1vcmUgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBDaGVjayBmb3IgY29ycmVjdCBoaWVyYXJjaHkgd2hlbiBsaW5raW5nIHBhZHMuIE1vdmluZyB0bwoJICBzdHJpY3QgcmVxdWlyZW1lbnQgZm9yIGdob3N0cGFkcyB3aGVuIGxpbmtpbmcgZWxlbWVudHMgaW4KCSAgZGlmZmVyZW50IGJpbnMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBDbGVhbiB1cHMuIEFkZGVkIFdST05HX0hJRVJBUkNIWSByZXR1cm4gdmFsdWUuCgoyMDA1LTA3LTI4IDEwOjM4OjAyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEJldHRlciBkZWJ1ZyBpZiBubyB0cmFuc2Zvcm0gaXMgcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgQmV0dGVyIGRlYnVnIGlmIG5vIHRyYW5zZm9ybSBpcyBwb3NzaWJsZS4KCjIwMDUtMDctMjcgMjA6MjI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L25ldHdvcmstdHJhbnNwOiBTb21lIG9sZCBkb2MgSSBoYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvbmV0d29yay10cmFuc3A6CgkgIFNvbWUgb2xkIGRvYyBJIGhhZC4KCjIwMDUtMDctMjcgMTk6MDA6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBzZXJpYWxpemF0aW9uIG9mIHNlZWsgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRml4IHNlcmlhbGl6YXRpb24gb2Ygc2VlayBldmVudHMuCgoyMDA1LTA3LTI3IDE4OjQ3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBmaXggZXZlbnQgc2VyaWFsaXphdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2V2ZW50KToKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBmaXggZXZlbnQgc2VyaWFsaXphdGlvbi4KCjIwMDUtMDctMjcgMTg6MzM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIGRvY3MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDSEFOR0VTLTAuOToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgU29tZSBkb2NzIHVwZGF0ZXMKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgIEV2ZW50IHVwZGF0ZXMuCgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBVc2UgZmFzdGVyIGNhc3RzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZWVrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBVcGRhdGUgZ3N0X2VsZW1lbnRfc2Vlay4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSksIChfZ3N0X2V2ZW50X2NvcHkpLAoJICAoZ3N0X2V2ZW50X25ldyksIChnc3RfZXZlbnRfbmV3X2N1c3RvbSksIChnc3RfZXZlbnRfZ2V0X3N0cnVjdHVyZSksCgkgIChnc3RfZXZlbnRfbmV3X2ZsdXNoX3N0YXJ0KSwgKGdzdF9ldmVudF9uZXdfZmx1c2hfc3RvcCksCgkgIChnc3RfZXZlbnRfbmV3X2VvcyksIChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpLCAoZ3N0X2V2ZW50X25ld190YWcpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3RhZyksIChnc3RfZXZlbnRfbmV3X2ZpbGxlciksIChnc3RfZXZlbnRfbmV3X3FvcyksCgkgIChnc3RfZXZlbnRfcGFyc2VfcW9zKSwgKGdzdF9ldmVudF9uZXdfc2VlayksCgkgIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBNYWtlIEdzdEV2ZW50IHVzZSBHc3RTdHJ1Y3R1cmUuIEFkZCBwYXJzaW5nIGNvZGUsIG1ha2Ugc3VyZSB0aGUKCSAgQVBJIGlzIHN1ZmZpY2llbnRseSBnZW5lcmljLgoJICBNYXJrIHBvc3NpYmxlIGRpcmVjdGlvbnMgb2YgZXZlbnRzIGFuZCBzZXJpYWxpemF0aW9uLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9pbml0KSwgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKSwKCSAgKF9nc3RfbWVzc2FnZV9jb3B5KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfZG9uZSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVwZGF0ZSBmb3IgbmV3IGV2ZW50cy4KCSAgQ2F0Y2ggZXZlbnRzIHNlbnQgaW4gd3JvbmcgZGlyZWN0aW9ucy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgRXZlbnQgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dGFnLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICBSZW1vdmUgZXZlbnQgY29kZSBmcm9tIHRoaXMgZmlsZS4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KToKCSAgRXZlbnQgdXBkYXRlcy4KCjIwMDUtMDctMjcgMTU6MDU6NDUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBkZWJ1Z2dpbmcgYWN0dWFsbHkgdXNlZnVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgTWFrZSBkZWJ1Z2dpbmcgYWN0dWFsbHkgdXNlZnVsLgoKMjAwNS0wNy0yNSAxMjozMTowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgZGVmYXVsdCBmaXhhdGlvbiBvbmNlIGFnYWluLCBzbyB0aGF0IGdzdF9wYWRfZml4YXRlKCkgYWN0dWFsbHkgZG9lcyBhbnl0aGluZyBhdCBhbGwuIFRoaXMgcHJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGZpeGF0ZV92YWx1ZSksIChnc3RfcGFkX2RlZmF1bHRfZml4YXRlKSwKCSAgKGdzdF9wYWRfZml4YXRlX2NhcHMpOgoJICBJbXBsZW1lbnQgZGVmYXVsdCBmaXhhdGlvbiBvbmNlIGFnYWluLCBzbyB0aGF0IGdzdF9wYWRfZml4YXRlKCkKCSAgYWN0dWFsbHkgZG9lcyBhbnl0aGluZyBhdCBhbGwuIFRoaXMgcHJvYmFibHkgbmVlZHMgdG8gYmUgc29tZQoJICBzb3J0IG9mIGEgbGFzdCByZXNvcnQsIGFuZCB1c2UgcHJvZmlsZS1iYXNlZCBmaXhhdGlvbiBmaXJzdCwgYnV0CgkgIHNpbmNlIHRoYXQgZG9lc24ndCBleGlzdCB5ZXQsIHRoaXMgaXMgdGhlIGJlc3Qgd2UgaGF2ZS4gRml4ZXMKCSAgdmlzdWFsaXphdGlvbiBpbiBUb3RlbS4KCjIwMDUtMDctMjIgMTE6NDc6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFNtYWxsIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTbWFsbCB1cGRhdGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgIFNvbWUgbW9yZSBjb21tZW50cy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEZpeCBoYW5kb2ZmIG1hcnNoYWxsLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFdlJ3JlIGEgcmVhbCBpbnBsYWNlIGVsZW1lbnQuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCSAgKiB0ZXN0cy9sYXQuYzogKGZha2VzcmMpLCAoZmFrZXNpbmspLCAoc2ltcGxlKSwgKHF1ZXVlKSwgKG1haW4pOgoJICAqIHRlc3RzL211eGluZy9jYXNlMS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvZHluYW1pYy1waXBlbGluZS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0MS5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0Mi5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvaW50ZXJydXB0My5jOiAobWFpbik6CgkgICogdGVzdHMvc2NoZWQvcnVueG1sLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9zY2hlZC1zdHJlc3MuYzogKG1haW4pOgoJICAqIHRlc3RzL3NlZWtpbmcvc2Vla2luZzEuYzogKGV2ZW50X3JlY2VpdmVkKSwgKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOiAoYnVzX2hhbmRsZXIpLCAodGltZW91dF9mdW5jKSwKCSAgKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMy5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGU0LmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTUuYzogKG1haW4pOgoJICBGaXggdGhlIHRlc3RzLgoKMjAwNS0wNy0yMSAxNzoyMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6IFNvbWUgc21hbGwgYWRkaXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIHNtYWxsIGFkZGl0aW9ucy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RpbWVzKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBkaXNjb250IHZhbHVlcyBhcmUgZ2ludDY0LCBoYW5kbGUgdGhlIG1hdGggY29ycmVjdGx5LgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKToKCSAgTWFrZSB0aGUgYmFzZXNyYyByZXBvcnQgZXJyb3IgaWYgdGhlIHNvdXJjZSBwYWQgaXMgbm90IGxpbmtlZC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgTWFrZSBxdWV1ZSBjb2xsZWN0IGRhdGEgZXZlbiBpZiB0aGUgc3JjcGFkIGlzIG5vdCBsaW5rZWQuCgkgIFN0YXJ0IHB1c2hpbmcgb3V0IGRhdGEgYXMgc29vbiBhcyBpdCBpcyBsaW5rZWQuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLCAoZ3N0X2Zsb3dfZ2V0X25hbWUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGRlZCBnc3RfZmxvd19nZXRfbmFtZSgpIHRvIGVhc2UgZXJyb3IgcmVwb3J0aW5nLgoKMjAwNS0wNy0yMCAxODowMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFkZGVkIGEgYnVuY2ggb2YgbWVzc2FnZXMgZm9yIGFkdmFuY2VkIHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBhIGJ1bmNoIG9mIG1lc3NhZ2VzIGZvciBhZHZhbmNlZCBzZWVraW5nLgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmM6IChnc3RfZHBtYW5fc2V0X3BhcmVudCksCgkgIChnc3RfZHBtYW5fc3RhdGVfY2hhbmdlZCk6CgkgIEZpeCBzb21lIG5ldy1wYWQgLT4gcGFkLWFkZGVkIHNpZ25hbHMKCjIwMDUtMDctMjAgMTc6MjI6MjcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvOiBEb2N1bWVudCBuZXctcGFkL3N0YXRlLWNoYW5nZSBzaWduYWwgcmVuYW1lcyBhbmQgdGhlIEZpeGVkTGlzdCB0eXBlIHJlbmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIERvY3VtZW50IG5ldy1wYWQvc3RhdGUtY2hhbmdlIHNpZ25hbCByZW5hbWVzIGFuZCB0aGUgRml4ZWRMaXN0CgkgIHR5cGUgcmVuYW1lLgoKMjAwNS0wNy0yMCAxNzoxNjo0NCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgR3N0RWxlbWVudDo6bmV3LXBhZCAtPiBwYWQtYWRkZWQsIEdzdEVsZW1lbnQ6OnN0YXRlLWNoYW5nZSAtPiBzdGF0ZS1jaGFuZ2VkLCBHc3RWYWx1ZUZpeGVkTGlzdCAtPiBHc3RWYWx1ZUFycmF5LCBhZGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLCAoZ3N0X2VsZW1lbnRfc2Vlayk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWx1ZV9nZXRfZ2VuZXJpY190eXBlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfYXJyYXkpLCAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksCgkgIChnc3RfdmFsdWVfbGlzdF9wcmVwZW5kX3ZhbHVlKSwgKGdzdF92YWx1ZV9saXN0X2FwcGVuZF92YWx1ZSksCgkgIChnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSksIChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hcnJheV9zdHJpbmcpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9hcnJheSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYXJyYXkpLCAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9hcnJheSksCgkgIChnc3RfdmFsdWVfaXNfZml4ZWQpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgR3N0RWxlbWVudDo6bmV3LXBhZCAtPiBwYWQtYWRkZWQsIEdzdEVsZW1lbnQ6OnN0YXRlLWNoYW5nZSAtPgoJICBzdGF0ZS1jaGFuZ2VkLCBHc3RWYWx1ZUZpeGVkTGlzdCAtPiBHc3RWYWx1ZUFycmF5LCBhZGQgZm9ybWF0IGFuZAoJICBmbGFncyBhcyB0aGVpciBvd24gYXJndW1lbnRzIGluIGdzdF9lbGVtZW50X3NlZWsoKSAoc2hvdWxkIGltcHJvdmUKCSAgImJpbmRlYWJpbGl0eSIpLCByZW1vdmUgZnVuY3Rpb24gZ2VuZXJhdG9ycyBzaW5jZSB0aGV5IGRvbid0IHdvcmsKCSAgdW5kZXIgYSB3aG9sZSBidW5jaCBvZiBjb21waWxlcnMgKHRoZXkgd2VyZSBkZXByZWNhdGVkIGFscmVhZHkKCSAgYW55d2F5KS4KCjIwMDUtMDctMjAgMTc6MTU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkgIHBhdGNoIGZyb20gRWRnYXJkIHRvIHByb3Blcmx5IHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBmcm9tIEVkZ2FyZCB0byBwcm9wZXJseSBzdXBwcmVzcyB0aGVzZSB3YXJuaW5ncwoKMjAwNS0wNy0yMCAxNjoyMDozOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGluZm8uKjogRml4IGlsbGVnYWwgY2FzdCBvbiBzb21lIHBsYXRmb3JtcyAoIzMwOTI1MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX25hbWVvZl9mdW5jcHRyKSwKCSAgKF9nc3RfZGVidWdfcmVnaXN0ZXJfZnVuY3B0cik6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgRml4IGlsbGVnYWwgY2FzdCBvbiBzb21lIHBsYXRmb3JtcyAoIzMwOTI1MykuCgoyMDA1LTA3LTIwIDExOjM1OjE4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBBZGQgX25ld19jdXN0b20sIG1ha2UgX25ld19hcHBsaWNhdGlvbiBhIG1hY3JvIHRvIF9uZXdfY3VzdG9tLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2N1c3RvbSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkIF9uZXdfY3VzdG9tLCBtYWtlIF9uZXdfYXBwbGljYXRpb24gYSBtYWNybyB0byBfbmV3X2N1c3RvbS4KCjIwMDUtMDctMjAgMTA6NTg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCBhIGdib29sZWFuIHRvIGRlY2lkZSB3aGVuIHRvIHB1c2ggb3V0IGEgZGlzY29udC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCBhIGdib29sZWFuIHRvIGRlY2lkZSB3aGVuIHRvIHB1c2ggb3V0IGEgZGlzY29udC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfcXVldWVfZ2V0X3Byb3BlcnR5KToKCSAgU29tZSBjbGVhbnVwcy4KCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTEuYzogKG1haW4pOgoJICBNYWtlIGEgdGhyZWFkIHRlc3QgY29tcGlsZSBhbmQgcnVuLi4uIHZlcnkgc2lsbHkuLgoKMjAwNS0wNy0yMCAxMDoxMzo0NiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6IE1lbnRpb24gcmVtb3ZhbCBvZiBsaWJnc3RnY29uZi0wLjkubGEgYW5kIGV4aXN0ZW5jZSBvZiBnY29uZiBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIE1lbnRpb24gcmVtb3ZhbCBvZiBsaWJnc3RnY29uZi0wLjkubGEgYW5kIGV4aXN0ZW5jZSBvZiBnY29uZgoJICBlbGVtZW50cy4KCjIwMDUtMDctMjAgMDg6Mjk6MDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvcHdnLzogRG9jdW1lbnQgYmFzZSBjbGFzc2VzLCB1cGRhdGUgc2VjdGlvbnMgb2Ygbi10by0xIGFuZCAxLXRvLW4gKG11eGVyLCBmaXggc29tZSBjb2RlIGV4YW1wbGVzIGFuZCBsaW5rcyBhbmQgdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbWFuYWdlci54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvbi54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItbnRvb25lLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1vbmV0b24ueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIERvY3VtZW50IGJhc2UgY2xhc3NlcywgdXBkYXRlIHNlY3Rpb25zIG9mIG4tdG8tMSBhbmQgMS10by1uIChtdXhlciwKCSAgZGVtdXhlciksIHJlbW92ZSBuLXRvLW4gKHdhcyBuZXZlciB3cml0dGVuKSwgZml4IHNvbWUgY29kZSBleGFtcGxlcwoJICBhbmQgbGlua3MgYW5kIHVwZGF0ZSB0aGUgcG9ydGluZyBzZWN0aW9uIHRvIGluY2x1ZGUgYWxsIHRoaXMuCgoyMDA1LTA3LTE5IDE3OjQ2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXVlLio6IFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIG1vcmUgaW50ZWxsaWdlbnRseSB1cHN0cmVhbSBhbmQgb3V0cHV0IGFuIEVSUk9SL0VPUyB3aGVuIHN0cmVhbWluZyBzdG9wcGVkIGR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBtb3JlIGludGVsbGlnZW50bHkgdXBzdHJlYW0gYW5kIG91dHB1dAoJICBhbiBFUlJPUi9FT1Mgd2hlbiBzdHJlYW1pbmcgc3RvcHBlZCBkdWUgdG8gZmF0YWwgZXJyb3IuCgoyMDA1LTA3LTE5IDE0OjUyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb24ndCBibG9jayBmb3JldmVyIGZvciB0aGUgc3RhdGUgY2hhbmdlIHRvIGNvbXBsZXRlLCB0aGUgcGlwZWxpbmUgYWxyZWFkeSBkaWQgd2l0aCBhIHNlbnNpYmxlIHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgRG9uJ3QgYmxvY2sgZm9yZXZlciBmb3IgdGhlIHN0YXRlIGNoYW5nZSB0byBjb21wbGV0ZSwgdGhlCgkgIHBpcGVsaW5lIGFscmVhZHkgZGlkIHdpdGggYSBzZW5zaWJsZSB0aW1lb3V0LgoKMjAwNS0wNy0xOSAxMzo0Mzo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogTWFrZSBzdXJlIHdlIG5ldmVyIGNhbGwgdGhlIGNyZWF0ZSBmdW5jdGlvbiBpcyB3ZSBnb3QgZGVhY3RpdmF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBNYWtlIHN1cmUgd2UgbmV2ZXIgY2FsbCB0aGUgY3JlYXRlIGZ1bmN0aW9uIGlzIHdlCgkgIGdvdCBkZWFjdGl2YXRlZC4KCjIwMDUtMDctMTkgMTE6Mjc6MDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgoyMDA1LTA3LTE5IDEwOjQwOjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcGFyc2UvcGFyc2UubDogQXR0ZW1wdCB0byBzb2x2ZSBidWcgIzE3MjgxNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3BhcnNlL3BhcnNlLmw6IEF0dGVtcHQgdG8gc29sdmUgYnVnICMxNzI4MTUuCgoyMDA1LTA3LTE5IDA5OjE5OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kb19zZWVrKToKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICBPbmx5IHVwZGF0ZSB0aGUgc2Vla2luZyB2YWx1ZXMgd2hlbiB3ZSBhcmUgbm90CgkgIGJ1c3kgc3RyZWFtaW5nLgoKMjAwNS0wNy0xOCAxNzo0Mzo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIE9vcHMsIGlnbm9yZSB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfcHVzaF9ldmVudCBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgT29wcywgaWdub3JlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50IGhlcmUuCgoyMDA1LTA3LTE4IDE3OjEyOjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2VuZCBkaXNjb250IGV2ZW50IGZyb20gdGhlIGxvb3AgZnVuY3Rpb24sIGFzIHBhZHMgYXJlbid0IGFjdGl2YXRlZCB5ZXQgaW4gdGhlIGFjdGl2YXRlX3B1c2ggaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFNlbmQgZGlzY29udCBldmVudCBmcm9tIHRoZSBsb29wIGZ1bmN0aW9uLCBhcyBwYWRzCgkgIGFyZW4ndCBhY3RpdmF0ZWQgeWV0IGluIHRoZSBhY3RpdmF0ZV9wdXNoIGhhbmRsZXIuCgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgRG9uJ3QgbGVhayBlbGVtZW50IG5hbWUuCgoyMDA1LTA3LTE4IDE0OjQ3OjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBU19MSUJUT09MX1RBR1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzogVXNlIEFTX0xJQlRPT0xfVEFHUy4KCjIwMDUtMDctMTggMTI6NTg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IFJlbW92ZSBkZWxldGVkIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIFJlbW92ZSBkZWxldGVkIHR5cGVzLgoKMjAwNS0wNy0xOCAxMjo0OTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGVycm9yLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlbW92ZWQgcGx1Z2FibGUgc2NoZWR1bGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZWQgcGx1Z2FibGUgc2NoZWR1bGVycy4KCSAgUmVtb3ZlZCBTY2hlZHVsZXIvTWFuYWdlciBmcm9tIGVsZW1lbnRzLgoJICBSZW1vdmVkIGdzdHR5cGVzLmgsIHJlYXJyYW5nZWQgaW5jbHVkZXMuCgkgIFJlbW92ZWQgZGVwZW5kZW5jeSBwYWQ8LT5lbGVtZW50LCBlbGVtZW50PD5waXBlbGluZSwgYW5kCgkgIHZhcmlvdXMgb3RoZXJzLCAgZml4IGluY2x1ZGVzLgoJICBpbXBsZW1lbnQgZ3N0X3BhZF9nZXRfcGFyZW50KCkgd2l0aCBnc3Rfb2JqZWN0X2dldF9wYXJlbnQoKQoJICBNYWtlIEdzdFRhc2sgc2VmY29udGFpbmVkLgoJICBGaXggX2dldF9zdGF0ZSgpIG9uIEdzdEJpbiwgaXQgZGlkIG5vdCByZXR1cm4gQVNZTkMgd2l0aCBhIDAKCSAgdGltZW91dC4KCSAgRml4IGVuZGxlc3MgbG9vcCBpbiBpdGVyYXRvcl9mb2xkX3dpdGhfcmVzeW5jLgoKMjAwNS0wNy0xOCAwOToyMjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBvbGQgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RhcmNoLmg6CgkgIFJlbW92ZSBvbGQgZmlsZS4KCjIwMDUtMDctMTggMDg6NTE6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IE5vIG1vcmUgY290aHJlYWRzLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBObyBtb3JlIGNvdGhyZWFkcy5oCgoyMDA1LTA3LTE4IDA4OjQzOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2NvdGhyZWFkcy4qOiBMZXQncyByZW1vdmUgdGhlc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9jb3RocmVhZHMuYzoKCSAgKiBnc3QvY290aHJlYWRzLmg6CgkgIExldCdzIHJlbW92ZSB0aGVzZS4KCjIwMDUtMDctMTggMDg6Mjg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSBkb2NzIGluIHRoZSB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MgaW4gdGhlIHdvcmtzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgUmVmY291bnRpbmcgZml4ZXMuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLCAoZ3N0X2J1c19wb2xsKToKCSAgQ2xlYW51cHMuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZmluYWxpemUpOgoJICBTZXQgU1JDIHRvIE5VTEwuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLAoJICAoZ3N0X3BhZF9nZXRfcGFyZW50X2VsZW1lbnQpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKSwKCSAgKGdzdF9wYWRfcHJveHlfc2V0Y2Fwcyk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZCBfZ2V0X3BhcmVudF9lbGVtZW50KCkgdG8gZ2V0IGEgcGFkcyBwYXJlbnQgYXMgYW4gZWxlbWVudC4KCjIwMDUtMDctMTcgMjI6NDQ6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IFJlbW92ZSBib2d1cyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJlbW92ZSBib2d1cyB0ZXN0LgoKMjAwNS0wNy0xNyAyMjoyNjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlZmNvdW50aW5nIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhaW4pLCAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVhY3RpdmF0ZSksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUmVmY291bnRpbmcgZml4ZXMuCgkgIEZpeCBsb2dpYyBmb3IgcmV0dXJuaW5nIEFTWU5DIHdoZW4gbm90IHByZXJvbGxlZC4KCjIwMDUtMDctMTcgMjI6MjI6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuYzogRml4IG5hc3R5IHJlZmNvdW50IGJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXggbmFzdHkgcmVmY291bnQgYnVnLgoKMjAwNS0wNy0xNiAxOToyNTo0MSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgTW92ZWQgZmRzcmMgdG8gZ3N0LXBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNb3ZlZCBmZHNyYyB0byBnc3QtcGx1Z2lucy4KCjIwMDUtMDctMTYgMTU6NDM6MTAgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCBjaGFuZ2Vsb2cgZW50cnkKCjIwMDUtMDctMTYgMTU6NDE6MDQgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNiBQaGlsaXBwZSBLaGFsYWYgPGJ1cmdlckBzcGVlZHkub3JnPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmgKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbQoJICBQb3J0ZWQgZmRzcmMgdG8gMC45LgoKMjAwNS0wNy0xNiAxNDo1MjoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBjb21waWxlIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIEZpeCBjb21waWxlIGVycm9yLgoKMjAwNS0wNy0xNiAxNDo0MToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFN0b3JlIGFuZCB1c2UgZGlzY29udCB2YWx1ZXMgd2hlbiBzeW5jaW5nIGJ1ZmZlcnMgYXMgZGVzY3JpYmVkIGluIGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBTdG9yZSBhbmQgdXNlIGRpc2NvbnQgdmFsdWVzIHdoZW4gc3luY2luZyBidWZmZXJzIGFzIGRlc2NyaWJlZAoJICBpbiBkZXNpZ24gZG9jcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfc2VuZF9kaXNjb250KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCksCgkgIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIFB1c2ggZGlzY29udCBldmVudCB3aGVuIHN0YXJ0aW5nLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgY2xlYW51cHMgaW4gYmFzZV90aW1lICBkaXN0cmlidXRpb24uCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X2Jhc2VfdGltZSksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEFkZGVkIG1ldGhvZHMgZm9yIHRoZSBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgkgIFNvbWUgTVQgZml4ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfbGFzdF9zdHJlYW1fdGltZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIE1UIGZpeGVzLgoJICBIYW5kbGUgc2Vla2luZyBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvYywgcmVtb3ZlIHN0cmVhbV90aW1lCgkgIGhhY2suCgkgIENsZWFudXBzIGNsb2NrIGFuZCBzdHJlYW1fdGltZSBzZWxlY3Rpb24gY29kZS4gQWRkZWQgYWNjZXNzb3JzCgkgIGZvciB0aGUgc3RyZWFtX3RpbWUuCgoyMDA1LTA3LTE2IDE0OjA2OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KTogVXNlIHRoZSBtYWdpYyB3b3JkLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVycm9yLmMgKF9nc3RfY29yZV9lcnJvcnNfaW5pdCk6IFVzZSB0aGUgbWFnaWMgd29yZC4uCgoyMDA1LTA3LTE2IDEzOjUwOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBNYWtlIGVsZW1lbnRzIHNpbGVudCBhcyB0aGUgZGVlcF9ub3RpZnkgcmVmcyB0aGUgcGFyZW50LCB3aGljaCBtaWdodCBtYWtlIHRoZSB0ZXN0IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBlbGVtZW50cyBzaWxlbnQgYXMgdGhlIGRlZXBfbm90aWZ5IHJlZnMgdGhlCgkgIHBhcmVudCwgd2hpY2ggbWlnaHQgbWFrZSB0aGUgdGVzdCBmYWlsLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKToKCSAgRG9uJ3QgaG9sZCB0aGUgbG9jayBmb3IgdG9vIGxvbmcuCgoyMDA1LTA3LTE2IDEyOjMzOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCB1bnJlZiB0aGUgY2FwcyB3ZSBwYXNzZWQgdG8gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSgpIGFmdGVyIHBhc3NpbmcgdGhlbS4gZ3N0X2NhcHNfbWFrZV93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIERvbid0IHVucmVmIHRoZSBjYXBzIHdlIHBhc3NlZCB0byBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgYWZ0ZXIKCSAgcGFzc2luZyB0aGVtLiBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgd2lsbCBkbyB0aGF0IGZvciB1cy4KCjIwMDUtMDctMTUgMTY6MTA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjYXBzLmggKGdzdF9jYXBzX2lzX3NpbXBsZSk6IFJlbW92ZWQgZGVwcmVjYXRlZCBtYWNybyAoIzE1NzMxMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjYXBzLmggKGdzdF9jYXBzX2lzX3NpbXBsZSk6IFJlbW92ZWQgZGVwcmVjYXRlZCBtYWNybwoJICAoIzE1NzMxMSkuCgoyMDA1LTA3LTE1IDE0OjU5OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKTogV3JpdGUgb3VyIG93biBtYXJzaGFsbGluZyBmdW5jdGlvbiBmb3IgdGhlIGhhbmRvZmYgc2lnbmFsLiBQcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKG1hcnNoYWxfVk9JRF9fTUlOSU9CSkVDVCk6IFdyaXRlIG91cgoJICBvd24gbWFyc2hhbGxpbmcgZnVuY3Rpb24gZm9yIHRoZSBoYW5kb2ZmIHNpZ25hbC4gUHJvcGVybHkgdHlwZSB0aGUKCSAgYnVmZmVyIGFzIGEgYnVmZmVyLiBGaXhlcyBzb21lIHdhcm5pbmdzLiBTaG91bGQgZG8gYSBtb3JlIGdlbmVyYWwKCSAgc29sdXRpb24uCgkgIChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6IFBsdWcgaW50byB0aGUgcmlnaHQgbWFyc2hhbGxlci4KCjIwMDUtMDctMTUgMTM6NDQ6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZWQgZG9jcywgbW9zdGx5IERJU0NPTlQgcmVsYXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgVXBkYXRlZCBkb2NzLCBtb3N0bHkgRElTQ09OVCByZWxhdGVkLgoKMjAwNS0wNy0xNSAxMjo1NTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOiBzL0dTVF9QQURfTElOS19SRUZVU0VEL0ZBTFNFLyBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgcy9HU1RfUEFEX0xJTktfUkVGVVNFRC9GQUxTRS8gaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkKCjIwMDUtMDctMTUgMTE6MDU6NTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICByZW1vdmUgaXJyZWxldmFudCBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgaXJyZWxldmFudCBjb2RlCgoyMDA1LTA3LTE1IDExOjA0OjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtdHlwZWZpbmQuYzogVXBkYXRlLCBhZGQgY29weXJpZ2h0IGJsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogVXBkYXRlLCBhZGQgY29weXJpZ2h0IGJsb2NrLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgTm9ybWFsaXplIGFuZCB0cnVuY2F0ZSBjYXBzIGJlZm9yZSBmaXhhdGlvbi4KCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjYXBzLmMgKGdzdF9jYXBzX3RydW5jYXRlKTogTmV3IGZ1bmN0aW9uLCBkZXN0cnVjdGl2ZWx5CgkgIGRpc2NhcmRzIGFsbCBidXQgdGhlIGZpcnN0IHN0cnVjdHVyZSBmcm9tIGl0cyBhcmd1bWVudC4KCjIwMDUtMDctMTUgMTA6NDE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IE1ha2UgcGFzc3Rocm91Z2ggd29yayB1c2luZyB0aGUgYnVmZmVycG9vbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY29uZmlndXJlX2NhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2lzX3Bhc3N0aHJvdWdoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1ha2UgcGFzc3Rocm91Z2ggd29yayB1c2luZyB0aGUgYnVmZmVycG9vbHMuCgkgIENoYW5nZWQgQVBJIGEgYml0LCBzdWJjbGFzc2VzIGhhdmUgdG8gd3JpdGUgaW50byBhIGJ1ZmZlcgoJICBwcm92aWRlZCBieSB0aGUgYmFzZSBjbGFzcy4KCSAgTW9yZSBkZWJ1ZyBpbmZvIGluIG5lZ28gZnVuY3Rpb25zLgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6CgkgIFBvcnQgdG8gbmV3IGJhc2UgY2xhc3MuCgoyMDA1LTA3LTE1IDEwOjMwOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVG90YWxseSBkdW1wIG1lc3NhZ2VzIGluIC1sYXVuY2ggd2l0aCB0aGUgLW0gb3B0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIFRvdGFsbHkgZHVtcCBtZXNzYWdlcyBpbiAtbGF1bmNoIHdpdGggdGhlIC1tIG9wdGlvbi4KCSAgRml4IG1lc3NhZ2UgbmFtZSBmb3IgU3RhdGUgbWVzc2FnZXMsCgoyMDA1LTA3LTE0IDE4OjQ1OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQb3N0IGVycm9yIG1lc3NhZ2VzIG9uIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBQb3N0IGVycm9yIG1lc3NhZ2VzIG9uIGVycm9ycy4KCjIwMDUtMDctMTQgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBSZW1vdmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KToKCSAgUmVtb3ZlIGRlYnVnIGluZm8uCgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIERlZmluZSBlcnJvciBmb3Igc3RyZWFtIHN0b3BwZWQuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hhaW4pLCAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSk6CgkgIERvIHByb3BlciByZXR1cm4gdmFsdWVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfZ2V0X3JhbmdlKToKCSAgQmV0dGVyIHJldHVybiB2YWx1ZXMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICBSZW9yZ2FuaXNlIHJldHVybiB2YWx1ZXMsIGFkZCBtYWNybyB0byBjaGVjayBmb3IgZmF0YWwgZXJyb3JzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgUmV0dXJuIHByb3BlciBHc3RGbG93UmV0dXJuIHZhbHVlcywKCjIwMDUtMDctMTQgMDk6MzU6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZGV0YWlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZvcm1hdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWFjcm9zLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYXJzZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5cG9vbC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGFyYW0uc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBsaW5pbnQuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBtYW4uc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZHBzbW9vdGguc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3R1bml0Y29udmVydC5zZ21sOgoJKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgbW9yZSBhdXRpc3RpYyBjbGVhbmxpbmVzcyBpbiBmdW5jdGlvbnMvbmFtZXMvZGVmaW5lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBhdXRpc3RpYyBjbGVhbmxpbmVzcyBpbiBmdW5jdGlvbnMvbmFtZXMvZGVmaW5lcwoKMjAwNS0wNy0xMyAxODoyOTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBmaXggZGVidWcgaWZkZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkZWJ1ZyBpZmRlZgoKMjAwNS0wNy0xMyAxNjoyNjowNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfc3RhcnQpOiBQb3N0IGFuIGVycm9yIGlmIHRoZSBzb3VyY2UgY291bGRuJ3QgbmVnb3RpYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19zdGFydCk6IFBvc3QgYW4gZXJyb3IgaWYgdGhlCgkgIHNvdXJjZSBjb3VsZG4ndCBuZWdvdGlhdGUuCgoyMDA1LTA3LTEzIDEzOjE0OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC5zdXBwOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZnJvbSBFZGdhcmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHN1cHByZXNzaW9uIGZyb20gRWRnYXJkCgoyMDA1LTA3LTEzIDEzOjEwOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgdHdvIHRlc3RzdWl0ZSBhcHBzIG92ZXIgdG8gdGhlIGNoZWNrIGRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9jb21wYXJlLmM6CgkgICogdGVzdHN1aXRlL2NhcHMvdmFsdWVfaW50ZXJzZWN0LmM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBtb3ZlIHR3byB0ZXN0c3VpdGUgYXBwcyBvdmVyIHRvIHRoZSBjaGVjayBkaXIKCjIwMDUtMDctMTIgMTc6MTc6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZGVkIG1vcmUgZGVidWcgaW5mbyBpbiB0aGUgbmVnb3RpYXRlIHByb2Nlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgQWRkZWQgbW9yZSBkZWJ1ZyBpbmZvIGluIHRoZSBuZWdvdGlhdGUgcHJvY2Vzcy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBQcmVwYXJlIGZvciBzZWdtZW50IHBsYXliYWNrLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIFNvbWUgbW9yZSBkb2NzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBOVUxMIHBpcGVsaW5lIG9uIGVycm9ycy4KCjIwMDUtMDctMTIgMTc6MDQ6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfY29weSk6IENvcHkgdGhlIGJ1ZmZlciB3aGV0aGVyIG9yIG5vdCBpdCBjb21lcyBmcm9tIGEgbWFsbG9jIHJlZ2lvbi4gTWFrZSBzdXJlIG91ciBjb3B5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2NvcHkpOiBDb3B5IHRoZSBidWZmZXIgd2hldGhlciBvcgoJICBub3QgaXQgY29tZXMgZnJvbSBhIG1hbGxvYyByZWdpb24uIE1ha2Ugc3VyZSBvdXIgY29weSBnZXRzIGZyZWVkLgoKMjAwNS0wNy0xMiAxNjoyODozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBmaXggcmVmY291bnRpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCByZWZjb3VudGluZyBvZiB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcwoKMjAwNS0wNy0xMiAxMzoyNjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlLWVuYWJsZSBsZWFrIGNoZWNraW5nIDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZS1lbmFibGUgbGVhayBjaGVja2luZyA6KQoKMjAwNS0wNy0xMiAxMjoyMDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIHBlci10ZXN0IHZhbGdyaW5kIHRhcmdldHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBwZXItdGVzdCB2YWxncmluZCB0YXJnZXRzCgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZGF0YV9wcm90b2NvbF9zdWl0ZSksIChtYWluKToKCSAgY2xlYW4gdXAKCjIwMDUtMDctMTIgMDk6NDE6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGluc3RhdGUgbW9yZSB2YWxncmluZGFibGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTIgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGluc3RhdGUgbW9yZSB2YWxncmluZGFibGUgdGVzdHMKCSAgKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChjaGFpbl9mdW5jKSwgKGV2ZW50X2Z1bmMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZmFrZXNyY19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IHRlc3QgbGVha3MKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpbmFsaXplKToKCSAgZml4IHRoZSBzdGF0aWMgbXV0ZXggbGVhawoKMjAwNS0wNy0xMSAxODo0MTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIHR3byBtb3JlIHRlc3RzIGZvciB2YWxncmluZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHR3byBtb3JlIHRlc3RzIGZvciB2YWxncmluZGluZwoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICB0ZXN0IHJlZmNvdW50IG9mIGRlc2VyaWFsaXplZCBidWZmZXIsIGZvdW5kIGEgbGVhawoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6CgkgIGFkZCBtaW5pb2JqZWN0IHRvIGRvY3MKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBhZGQgc29tZSBkb2NzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF9zdHJpbmdfdW53cmFwKToKCSAgZml4IGEgaGFyZC10by1maW5kIGludmFsaWQgd3JpdGUgZm9yIG9uZSBvZiB0aGUgdGVzdHMKCSAgZml4IGEgbGVhayBmb3IgZGVzZXJpYWxpemVkIGJ1ZmZlcnMKCjIwMDUtMDctMTEgMTU6NDE6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkb24ndCB2YWxncmluZCBhcyBwYXJ0IG9mIG1ha2UgY2hlY2sgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgdmFsZ3JpbmQgYXMgcGFydCBvZiBtYWtlIGNoZWNrIGZvciBub3cKCjIwMDUtMDctMTEgMTU6MjI6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBzcGVjaWZ5IHRvb2wKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNwZWNpZnkgdG9vbAoKMjAwNS0wNy0xMSAxNToxODozMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBSZXdyaXRlIHNjaGVkdWxpbmctY2hhcHRlciBmb3Igc2NoZWR1bGluZyBtb2RlbCBpbiAwLjkuIEFkZCBsb3RzIG9mIGV4YW1wbGUgY29kZSBhbmQgZXhwbGFuYXRpb24gZm9yIHBhZCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICBSZXdyaXRlIHNjaGVkdWxpbmctY2hhcHRlciBmb3Igc2NoZWR1bGluZyBtb2RlbCBpbiAwLjkuIEFkZCBsb3RzCgkgIG9mIGV4YW1wbGUgY29kZSBhbmQgZXhwbGFuYXRpb24gZm9yIHBhZCBhY3RpdmF0aW9uLCBsb29wKCkgYW5kCgkgIGdldHJhbmdlKCkgZnVuY3Rpb25zIGFuZCBhIGJpdCBtb3JlLiBSZW1vdmUgb2xkIGNvbW1lbnRzIHBvaW50aW5nCgkgIHRvIGxvb3AtZnVuY3Rpb25zLgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgQWRkIGxvb3AvZ2V0cmFuZ2UgZXhhbXBsZXMuCgoyMDA1LTA3LTExIDE1OjEwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0LnN1cHA6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB2YWxncmluZCB1bml0IHRlc3RzIGFzIGNoZWNrLWxvY2FsOyBhZGQgZ3N0X2RlaW5pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFsZ3JpbmQgdW5pdCB0ZXN0cyBhcyBjaGVjay1sb2NhbDsgYWRkIGdzdF9kZWluaXQKCjIwMDUtMDctMTEgMTU6MDY6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gYmFzZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIGJhc2VzcmMKCjIwMDUtMDctMTAgMTI6MDM6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgbW9yZSBtYWNybyBzcGxpdHRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbWFjcm8gc3BsaXR0aW5nCgoyMDA1LTA3LTEwIDAwOjA3OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IGFkZCBkZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgIGFkZCBkZWJ1ZwoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGNoZWNrX2ludHIpLCAoZXZlbnRfbG9vcCk6CgkgIGZpeCBidXMgbGVha3MKCjIwMDUtMDctMDkgMjM6NTI6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaXggY2FwcyBsZWFrIGluIGJvdGggY2FzZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBjYXBzIGxlYWsgaW4gYm90aCBjYXNlcwoKMjAwNS0wNy0wOSAyMzo0ODo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGR1aCwgcmVtb3ZlIHVudXNlZCB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGR1aCwgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMDctMDkgMjM6NDc6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpeCBhIGNhcHMgbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGEgY2FwcyBsZWFrCgoyMDA1LTA3LTA5IDIzOjMzOjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogYWRkIGZpbmFsaXplIG1ldGhvZCBhbmQgY2xlYW4gdXAgcHJvcGVybHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKToKCSAgYWRkIGZpbmFsaXplIG1ldGhvZCBhbmQgY2xlYW4gdXAgcHJvcGVybHkKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9kaXNwb3NlKToKCSAgYWRkIGRlYnVnCgoyMDA1LTA3LTA5IDIzOjE1OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZG9uJ3QgZ2V0IHNyYyBmb3IgYWxsIG1lc3NhZ2VzOyBvbmx5IGZvciBlb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGdldCBzcmMgZm9yIGFsbCBtZXNzYWdlczsgb25seSBmb3IgZW9zCgoyMDA1LTA3LTA5IDIyOjU0OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogYWRkIG1vcmUgdGhpbmdzIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIG1vcmUgdGhpbmdzIHRvIGNoZWNrCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBtb3JlIGRlYnVnCgoyMDA1LTA3LTA5IDE2OjM2OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9nc3RjaGVjay5jOgoJKiBjaGVjay9nc3RjaGVjay5oOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeSB1c2UgR1NUX1NUQVJUX1RFU1Qgbm93LCBzbyB3ZSBhZGQgYSBkZWJ1ZyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZGVidWdnaW5nIGNhdGVnb3J5CgkgIHVzZSBHU1RfU1RBUlRfVEVTVCBub3csIHNvIHdlIGFkZCBhIGRlYnVnIGxpbmUKCjIwMDUtMDctMDkgMTU6MTg6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgdGVzdCBmb3Igc3RhdGUgY2hhbmdlIG1lc3NhZ2Ugb24gYSBiaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgYWRkIHRlc3QgZm9yIHN0YXRlIGNoYW5nZSBtZXNzYWdlIG9uIGEgYmluCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBhZGQgYW5vdGhlciB0ZXN0CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19wb3N0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ldyk6CgkgICogZ3N0L2dzdHNjaGVkdWxlci5jOgoJICB2YXJpb3VzIGRlYnVnZ2luZyBhZGRpdGlvbnMgYW5kIGNsZWFudXBzCgoyMDA1LTA3LTA4IDE2OjQxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBhZGRpbmcgdGVzdHMgZm9yIGVsZW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgdGVzdHMgZm9yIGVsZW1lbnRzCgoyMDA1LTA3LTA4IDE2OjE2OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IHBsdWcgbW9yZSBsZWFrcy4gIEEgc2ltcGxlIGdzdF9pbml0KCkgbm93IGlzIGxlYWtmcmVlLCB5YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX2ZlYXR1cmUpOgoJICBwbHVnIG1vcmUgbGVha3MuICBBIHNpbXBsZSBnc3RfaW5pdCgpIG5vdyBpcyBsZWFrZnJlZSwgeWF5LgoKMjAwNS0wNy0wOCAxNjowODoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIHBsdWcgYW5vdGhlciBtZW1sZWFrIGluIHJlZ2lzdHJ5IGxvYWRpbmcgLSBJIGhhdmUgTk8gaWRlYSB3aHkgdGhpcyB3YXMgcmV0dXJuaW5nIGEgR3N0UGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbHVnIGFub3RoZXIgbWVtbGVhayBpbiByZWdpc3RyeSBsb2FkaW5nIC0gSSBoYXZlIE5PIGlkZWEgd2h5IHRoaXMgd2FzIHJldHVybmluZyBhIEdzdFBsdWdpbgoKMjAwNS0wNy0wOCAxNDo1MDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICBJIG5lZWQgdG8gbGVhcm4gdG8gc3RvcCBkb2luZyB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJIG5lZWQgdG8gbGVhcm4gdG8gc3RvcCBkb2luZyB0aGlzCgoyMDA1LTA3LTA4IDE0OjM5OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYWRkIHJpZ2h0IHZhcmlhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcmlnaHQgdmFyaWFibGUKCjIwMDUtMDctMDggMTQ6MzU6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgR1NUX1NFVF9FUlJPUl9DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgR1NUX1NFVF9FUlJPUl9DRkxBR1MKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBjaGFuZ2UgdG8gRVJST1JfQ0ZMQUdTCgoyMDA1LTA3LTA4IDE0OjAxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogbWFrZSBHU1RfRVJST1JfQ0ZMQUdTIG92ZXJyaWRhYmxlIGFuZCByZS1lbmFibGUgV2Vycm9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgbWFrZSBHU1RfRVJST1JfQ0ZMQUdTIG92ZXJyaWRhYmxlIGFuZCByZS1lbmFibGUgV2Vycm9yCgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgYWRkIGEgbm90ZSBhYm91dCBlcnJvciBDRkxBR1MKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBjb21tZW50IG91dCBzb21lIHVudXNlZCBjb2RlCgkgICogZ3N0L2dzdC5jOiAoc3BsaXRfYW5kX2l0ZXJhdGUpOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChsb2FkX2ZlYXR1cmUpOgoJICBwbHVnIHNvbWUgbWVtbGVha3MKCjIwMDUtMDctMDcgMTU6MDc6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBtYWtlIGxpYnMgdXNlIHNhbWUgZ3RrLWRvYy5tYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1ha2UgbGlicyB1c2Ugc2FtZSBndGstZG9jLm1hawoKMjAwNS0wNy0wNyAxNDoxNjo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgZmFjdG9yIG91dCBndGstZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmYWN0b3Igb3V0IGd0ay1kb2MKCjIwMDUtMDctMDcgMTQ6MDE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogVW5sb2NrIHRoZSBTVFJFQU1fTE9DSyBjb21wbGV0ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZGlzcG9zZSk6CgkgIFVubG9jayB0aGUgU1RSRUFNX0xPQ0sgY29tcGxldGVseS4KCjIwMDUtMDctMDcgMTM6MTQ6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA3LTA3IDEzOjEyOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2luc3RhbnRpYXRlLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNy0wNyAxMTo1OTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYWRkaW5nIGFuIGVsZW1lbnQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIGFuIGVsZW1lbnQgdGVzdAoKMjAwNS0wNy0wNyAxMTowOTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX2hhdmVfcGVuZGluZyk6IFJlbW92ZSBpbnRlbnNlbHkgaXJyaXRhdGluZyBkZWJ1ZyBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKTogUmVtb3ZlIGludGVuc2VseSBpcnJpdGF0aW5nCgkgIGRlYnVnIG1lc3NhZ2UuCgoyMDA1LTA3LTA3IDEwOjAzOjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBhbm90aGVyIGRvYyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgZG9jIGZpeAoKMjAwNS0wNy0wNyAwOToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9CVUlMRDoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1vcmUgbWFjb3N4IG1hZG5lc3MgZml4aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIG1hY29zeCBtYWRuZXNzIGZpeGluZwoKMjAwNS0wNy0wNyAwODo0MzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS4qOiBSZW1vdmUgb2xkIHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW1vdmUgb2xkIHR5cGVzCgoyMDA1LTA3LTA3IDA4OjE2OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBBbGxvdyBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCB0aGVpciBvd24gbmVnb3RpYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19uZWdvdGlhdGUpOgoJICBBbGxvdyBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCB0aGVpciBvd24gbmVnb3RpYXRpb24uCgoyMDA1LTA3LTA2IDE3OjE3OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlIGRlc2lnbiBub3RlcyB0byByZWZsZWN0IHRoZSBtb3ZlbWVudCBvZiByZXNwb25zaWJpbGl0eSBmb3IgYnVzIGhhbmRsaW5nIGZyb20gR3N0UGlwZWxpbmUgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBVcGRhdGUgZGVzaWduIG5vdGVzIHRvIHJlZmxlY3QgdGhlIG1vdmVtZW50IG9mCgkgIHJlc3BvbnNpYmlsaXR5IGZvciBidXMgaGFuZGxpbmcgZnJvbSBHc3RQaXBlbGluZSB0bwoJICBHc3RCaW4KCjIwMDUtMDctMDYgMTY6NDU6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgdW5uZWNlc3NhcnkgcXVldWUyLzMvNCBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcXVldWUyLzMvNCBleGFtcGxlcy4KCjIwMDUtMDctMDYgMTY6MjI6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXhhbXBsZXMvOiBVcGRhdGUgYSBjb3VwbGUgb2YgdGhlIGV4YW1wbGVzIHRvIHdvcmsgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiBleGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6IChtYWluKToKCSAgVXBkYXRlIGEgY291cGxlIG9mIHRoZSBleGFtcGxlcyB0byB3b3JrIGFnYWluLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KToKCSAgU3BlbGxpbmcgY29ycmVjdGlvbnMgYW5kIGV4dHJhIGRlYnVnLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLCAoaXNfZW9zKSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoYmluX2VsZW1lbnRfaXNfc2luayksIChnc3RfYmluX2dldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfZGlzcG9zZSksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgTW92ZSB0aGUgYnVzIGhhbmRsZXIgZm9yIGNoaWxkcmVuIHRvIHRoZSBHc3RCaW4sIGFuZCBjcmVhdGUgYQoJICBzZXBhcmF0ZSBidXMgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBmcm9tIGNoaWxkcmVuIHRvIHRoZSBvbmUgdGhlCgkgIGJ1cyBzZW5kcyAndXB3YXJkcycgb24uCgoyMDA1LTA3LTA2IDEzOjI1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBNYWtlIGJhc2VzcmMgbmVnb3RpYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19sb29wKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NyY19nZXRjYXBzKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfbmVnb3RpYXRlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIE1ha2UgYmFzZXNyYyBuZWdvdGlhdGUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBwcmVyb2xsIGZhaWxzIGluIGJhc2VzaW5rLgoJICBVcGRhdGUgUkVBRE1FLgoKMjAwNS0wNy0wNiAxMzoyMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wbGVtZW50IHRoZSBmaXhhdGUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZml4YXRlX2NhcHMpLCAoZ3N0X3BhZF9hY2NlcHRfY2Fwcyk6CgkgIEltcGxlbWVudCB0aGUgZml4YXRlIGZ1bmN0aW9uLgoJICBDbGVhbiB1cCBhY2NlcHRjYXBzLgoKMjAwNS0wNy0wNiAxMjoyNDo1MCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBSZW1vdmUgbmV2ZXItd3JpdHRlbiBmaWx0ZXItZmFjdG9yeSBjaGFwdGVyOyBJJ2xsIGFkZCB0aGUgdmFyaW91cyBiYXNlIGNsYXNzZXMgdG8gcGFydCA0ICgib3RoZXIgZWxlbWVudCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWZpbHRlcmZhY3RvcnkueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIFJlbW92ZSBuZXZlci13cml0dGVuIGZpbHRlci1mYWN0b3J5IGNoYXB0ZXI7IEknbGwgYWRkIHRoZSB2YXJpb3VzCgkgIGJhc2UgY2xhc3NlcyB0byBwYXJ0IDQgKCJvdGhlciBlbGVtZW50IHR5cGVzIikgbGF0ZXIgb24uCgoyMDA1LTA3LTA2IDEyOjE4OjAwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBBZGQgYSBjaGFwdGVyIG9uIGNhcHMgbmVnb3RpYXRpb24sIHNpbXBsaWZ5IHRoZSBvcmlnaW5hbCBjb2RlIHNhbXBsZXMgYSBiaXQgdy5yLnQuIGNhcHMgbmVnb3RpYXRpb24sIGFkZCBsaW5rIHRvIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEFkZCBhIGNoYXB0ZXIgb24gY2FwcyBuZWdvdGlhdGlvbiwgc2ltcGxpZnkgdGhlIG9yaWdpbmFsIGNvZGUKCSAgc2FtcGxlcyBhIGJpdCB3LnIudC4gY2FwcyBuZWdvdGlhdGlvbiwgYWRkIGxpbmsgdG8gdGhlIGFkdmFuY2VkCgkgIHNlY3Rpb24uIEFkZCBhIGJ1bmNoIG9mIGV4YW1wbGVzIHNob3dpbmcgZGlmZmVyZW50IHVzZSBjYXNlcyBvZgoJICBkaWZmZXJlbnQgdHlwZXMgb2YgY2FwcyBuZWdvdGlhdGlvbi4gVXBzdHJlYW0gcmVuZWdvdGlhdGlvbiBpc24ndAoJICBmdWxseSBkb2N1bWVudGVkIHlldCBzaW5jZSBub2JvZHkga25vd3MgaG93IHRoYXQgd29ya3MuCgoyMDA1LTA3LTA2IDExOjM0OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSAgcGMgZmlsZSBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGMgZmlsZSBjbGVhbnVwcwoKMjAwNS0wNy0wNiAxMTozMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBpZiBwYWQgaGFzIG5vIHBhcmVudCwgcmV0dXJuIE5VTEwgYXMgbGlzdCBvZiBpbnRlcm5hbCBsaW5rcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgaWYgcGFkIGhhcyBubyBwYXJlbnQsIHJldHVybiBOVUxMIGFzIGxpc3Qgb2YgaW50ZXJuYWwgbGlua3MKCjIwMDUtMDctMDUgMTY6Mzg6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IHMvQkFTRVNSQy9CQVNFX1NSQy9nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHMvQkFTRVNSQy9CQVNFX1NSQy9nLgoKMjAwNS0wNy0wNSAxNToyODoxOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA1LTA3LTA1IDEyOjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJICBiZXR0ZXIgcmVwb3J0IGdlbnJhdGlvbiB0YXJnZXQgKGxjb3YgbmVlZHMgYSBwYXRjaCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJldHRlciByZXBvcnQgZ2VucmF0aW9uIHRhcmdldCAobGNvdiBuZWVkcyBhIHBhdGNoKQoKMjAwNS0wNy0wNSAxMDo1ODoyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzLCB0ZXN0c3VpdGU6IE51bGwgaWYgd2UgZ290IGl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cywgdGVzdHN1aXRlOiBOdWxsIGlmIHdlIGdvdCBpdC4uLgoKMjAwNS0wNy0wNSAxMDoyMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFBvcnRlZCBkYXRhcHJvdG9sIHRvIDAuOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfdmFsaWRhdGVfcGFja2V0KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICBQb3J0ZWQgZGF0YXByb3RvbCB0byAwLjkuCgkgIEFkZGVkIHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMDctMDUgMDk6MzU6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBEZWZhdWx0IHRvIHJldHVybmluZyBUUlVFIGZvciB0aGUgY2FzZSB3aGVuIHRyYW5mb3JtX2NhcHMgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKToKCSAgRGVmYXVsdCB0byByZXR1cm5pbmcgVFJVRSBmb3IgdGhlIGNhc2Ugd2hlbiB0cmFuZm9ybV9jYXBzIHJldHVybnMKCSAgYSBmaXhlZCBjYXBzLCBsaWtlIGZvciBpZGVudGl0eSBvciB2b2x1bWUuCgoyMDA1LTA3LTA1IDA4OjQ3OjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay86IEFwcGxpY2F0aW9uIG1lc3NhZ2UgQVBJIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jIChwb3VuZF9idXNfd2l0aF9tZXNzYWdlcyk6CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYyAoU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAoZ290X2hhbmRvZmYpOiBBcHBsaWNhdGlvbgoJICBtZXNzYWdlIEFQSSBjaGFuZ2UuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IE1vcmUKCSAgbG9naWMgd2Vha3MgaGVyZTogYWx3YXlzIHJ1biB0cmFuc2Zvcm1fY2FwcywgdHJ5aW5nIHBhc3N0aHJvdWdoCgkgIG9wZXJhdGlvbiBvbmx5IGlmIHRoZSBvcmlnaW5hbCBjYXBzIGludGVyc2VjdHMgd2l0aCB0aGUgdHJhbnNmb3JtLgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOiBEZWJ1ZwoJICBzb3VyY2UgYW5kIHNpbmsgY2Fwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKToKCSAgSW50ZXJzZWN0IHRoZSBwZWVyIGNhcHMgd2l0aCB0aGUgcGFkIHRlbXBsYXRlIGJlZm9yZSBnb2luZyBpbnRvCgkgIHRyYW5zZm9ybV9jYXBzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKTogTW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKTogVGFrZSBhIEdzdE9iamVjdAoJICBzcmMgYXJndW1lbnQuCgoyMDA1LTA3LTA0IDE1OjA4OjMwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLio6IG5vdyByZXR1cm5zIHRoZSBzaWduYWwgaWQgZm9yIGJldHRlciB3cmFwcGluZyBpbiBiaW5kaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIChnc3RfcGFkX2FkZF8qX3Byb2JlKTogbm93IHJldHVybnMgdGhlIHNpZ25hbCBpZCBmb3IgYmV0dGVyIHdyYXBwaW5nCgkgIGluIGJpbmRpbmdzLgoKMjAwNS0wNy0wNCAwOToyMjo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBPbmx5IHNldCBleHBsaWNpdCBjYXBzIG9uIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogT25seSBzZXQgZXhwbGljaXQgY2FwcyBvbiBwYWRzLgoKMjAwNS0wNy0wMSAxNjo0Njo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY206IENvbW1lbnRhcnkgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogQ29tbWVudGFyeSB1cGRhdGUuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmMgKFBST1BfRFVQTElDQVRFKTogR29uZSBkYWRkeSBnb25lLgoJICBEaWRuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UsIG5vdCBpbXBsZW1lbnRhYmxlIHdpdGggYmFzZXRyYW5zZm9ybSwKCSAgZXRjLgoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSk6IFVucmVmIGluYnVmIHZpYSBtYWtlX3dyaXRhYmxlLiBGZWVibGUKCSAgYXR0ZW1wdCBhdCBpbXBsZW1lbnRpbmcgdGhlIHN5bmMgcHJvcGVydHksIG5lZWRzIGFuIHVubG9jayBtZXRob2QuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOgoJICBOZXcgZnVuYywgYnkgZGVmYXVsdCByZXR1cm5zIHRoZSBzYW1lIGNhcHMgKHRoZSBpZGVudGl0eQoJICB0cmFuc2Zvcm1hdGlvbikuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2Fwcyk6IFVzZXMgdHJhbnNmb3JtX2NhcHMgdG8gcmV0dXJuCgkgIHNvbWV0aGluZyBzZW5zaWJsZS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogQ29tcGxpY2F0ZWQgbG9naWMgdG8gZ2V0IGNhcHMgb24KCSAgYm90aCBwYWRzLCBldmVuIGlmIHRoZXkgYXJlIGRpZmZlcmVudCwgYW5kIHRvIGNhbGwgc2V0X2NhcHMgb25jZQoJICBmb3IgZXZlcnkgdGltZSBib3RoIHBhZHMgZ2V0IHRoZWlyIGNhcHMgc2V0LgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOiBHaXZlIHRoZSByZWYgdG8gdGhlIHRyYW5zZm9ybQoJICBmdW5jdGlvbi4gQWxsb3dzIGluLXBsYWNlIG1vZGlmaWNhdGlvbiBvZiB0aGUgYnVmZmVyLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaCAodHJhbnNmb3JtX2NhcHMpOiBOZXcgY2xhc3MgbWV0aG9kLgoJICBHaXZlbiBjYXBzIG9uIG9uZSBzaWRlLCB3aGF0IGNhbiBJIGRvIG9uIHRoZSBvdGhlci4KCSAgKHNldF9jYXBzKTogVGFrZSB0d28gY2Fwcywgb25lIGZvciBlYWNoIHNpZGUgb2YgdGhlIGVsZW1lbnQuCgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoYW5nZSBwcm90b3R5cGUgdG8gbW9kaWZ5CgkgIGNhcHMgaW4gcGxhY2UuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHdlIGNhbiBjaGVjayB0aGUgbXV0YWJpbGl0eSBvZgoJICB0aGUgY2FwcywgYW5kIGEgZ29vZCBpZGVhIGJlY2F1c2UgZml4YXRlIGZ1bmN0aW9ucyBhcmUganVzdCBjYWxsZWQKCSAgYXMgYSBtYXR0ZXIgb2YgbGFzdCByZXNvcnQuIChOb3QgYWN0dWFsbHkgaW1wbGVtZW50ZWQuKQoJICAoZ3N0X3BhZF9zZXRfY2Fwcyk6IElmIHRoZSBjYXBzIHdlJ3JlIHNldHRpbmcgaXMgYWN0dWFsbHkgdGhlIHNhbWUKCSAgYXMgdGhlIGV4aXN0aW5nIHBhZCBjYXBzLCBqdXN0IHVwZGF0ZSB0aGUgcG9pbnRlciB3aXRob3V0IGNhbGxpbmcKCSAgc2V0Y2Fwcy4gQXNzZXJ0IHRoYXQgY2FwcyBpcyBlaXRoZXIgTlVMTCBvciBmaXhlZCwgYXMgcGVyIHRoZQoJICBkb2NzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBVcGRhdGUgZm9yIGZpeGF0ZSBjaGFuZ2VzLgoKMjAwNS0wNy0wMSAxNDozNjoxMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFB1dCB0aGUgbWluaV9vYmplY3QgaW50byBHVmFsdWUgYXMgYSBtaW5pX29iamVjdCwgbm90IGEgZ3BvaW50ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTAyICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9lbWl0X2hhdmVfZGF0YV9zaWduYWwpOgoJICBQdXQgdGhlIG1pbmlfb2JqZWN0IGludG8gR1ZhbHVlIGFzIGEgbWluaV9vYmplY3QsCgkgIG5vdCBhIGdwb2ludGVyLgoKMjAwNS0wNy0wMSAxNDoyMDoxOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOiBGaXggYnVpbGRib3QgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkYm90IGFnYWluLgoKMjAwNS0wNy0wMSAxMzowMTo0NyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IEFkZCBleHRyYSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIEFkZCBleHRyYSBjaGVjay4KCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZGJvdC4KCjIwMDUtMDctMDEgMTI6NDM6MDMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEVuYWJsZSBidWlsZGluZyB0aGUgUFdHIGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJICBFbmFibGUgYnVpbGRpbmcgdGhlIFBXRyBleGFtcGxlcy4KCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgQWRkIFVSSSBpbnRlcmZhY2Ugc3R1Yi4KCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItYXV0b3BsdWdnZXIueG1sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIEFkZCBwb3J0aW5nIGd1aWRlIChtb3N0bHkgc3R1YnMpLCByZW1vdmUgYXV0b3BsdWdnaW5nIChzZWUgQURNKS4KCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6CgkgIFVwZGF0ZSB0aGUgYnVpbGRpbmctKi54bWwgcGFydHMgZm9yIDAuOSBjaGFuZ2VzLiBBbGwgZXhhbXBsZXMKCSAgY29kZSBibG9ja3MgY29tcGlsZSBpbiBleGFtcGxlcy9wd2cvKi4KCjIwMDUtMDYtMzAgMTI6MzI6MTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogRml4IHBsYXliaW4vZGVjb2RlYmluIGV4YW1wbGVzLCB1cGRhdGUgZG9jcyBhIGJpdCwgbWVudGlvbiBidXMgaW5zdGVhZCBvZiBzaWduYWxzIGluIHZhcmlvdXMgcGxhY2VzLCBtZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgRml4IHBsYXliaW4vZGVjb2RlYmluIGV4YW1wbGVzLCB1cGRhdGUgZG9jcyBhIGJpdCwgbWVudGlvbiBidXMKCSAgaW5zdGVhZCBvZiBzaWduYWxzIGluIHZhcmlvdXMgcGxhY2VzLCBtZW50aW9uIGttcGxheWVyIGFuZAoJICBrYWZmZWluZSBzaW5jZSB0aGV5IGhhdmUgYSB3b3JraW5nIEdTdHJlYW1lciBiYWNrZW5kIGluIHRoZSBLREUKCSAgc2VjdGlvbi4KCjIwMDUtMDYtMzAgMTI6MjY6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZGVidWcgZGlzYWJsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWcgZGlzYWJsZSBmaXhlcwoKMjAwNS0wNi0zMCAxMjoxODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIENIQU5HRVMtMC45IGRvYywgdXBkYXRlZCBzdGF0dXMgb2Ygb3RoZXIgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ0hBTkdFUy0wLjk6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJICBBZGRlZCBDSEFOR0VTLTAuOSBkb2MsIHVwZGF0ZWQgc3RhdHVzIG9mIG90aGVyIGRvY3MuCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbW92ZSAiaG1tIiBtYWNybwoKMjAwNS0wNi0zMCAxMjoxNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IFNvbWUgdHdlYWtzLCBvbmx5IEVPUyBhbmQgYSBidWZmZXIgY29tcGxldGUgYSBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFNvbWUgdHdlYWtzLCBvbmx5IEVPUyBhbmQgYSBidWZmZXIgY29tcGxldGUgYSBwcmVyb2xsLgoKMjAwNS0wNi0zMCAxMTozOTozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6IFByb3h5IGFjdGl2YXRlX3B1c2ggZG93biB0byB0aGUgaW50ZXJuYWwgcGFkIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOiBQcm94eQoJICBhY3RpdmF0ZV9wdXNoIGRvd24gdG8gdGhlIGludGVybmFsIHBhZCBhcyB3ZWxsLgoKMjAwNS0wNi0zMCAxMDo1OTozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOiBTb21lIGRvY3VtZW50YXRpb24gZml4ZXMgKCMzMDczOTQgYW5kICMzMDczOTcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6ICBSb25hbGQgUy4gQnVsdGplICA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSAgU29tZSBkb2N1bWVudGF0aW9uIGZpeGVzICgjMzA3Mzk0IGFuZCAjMzA3Mzk3KS4KCjIwMDUtMDYtMzAgMTA6MjM6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNoZWNrL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTMwIDEwOjIyOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ28gYmFjayB0byB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBnbyBiYWNrIHRvIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBub3cKCjIwMDUtMDYtMzAgMTA6MTA6MDAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggbWVtbGVhayAoIzMwOTEyNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogIFJvbmFsZCBTLiBCdWx0amUgIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfaW50ZXJzZWN0X2xpc3QpOgoJICBGaXggbWVtbGVhayAoIzMwOTEyNSkuCgoyMDA1LTA2LTMwIDA5OjU5OjI3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4IGZha2VzcmMgZXhhbXBsZSB0byBjb21waWxlOyBkb2Vzbid0IHdvcmssIGJ1ZyBzb21ld2hlcmUuLi4/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBGaXggZmFrZXNyYyBleGFtcGxlIHRvIGNvbXBpbGU7IGRvZXNuJ3Qgd29yaywgYnVnIHNvbWV3aGVyZS4uLj8KCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgIEFkZCByZWZlcmVuY2UgZm9yIGZpbHRlcmVkIGNhcHMgdG8gYWJvdmUgY2hhcHRlci4KCjIwMDUtMDYtMzAgMDk6NDE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IExhbWUgYXR0ZW1wdCBhdCBtYWtpbmcgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhIGJpdCBtb3JlIHJlYWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChjbGVhcl9xdWV1ZSksIChyZW1vdmVfYWxsX2Zyb21fcXVldWUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBMYW1lIGF0dGVtcHQgYXQgbWFraW5nIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYSBiaXQKCSAgbW9yZSByZWFkYWJsZS4KCjIwMDUtMDYtMzAgMDk6MzM6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSB0d2Vla3MgYW5kIGFkZGl0aW9ucyB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFNvbWUgbW9yZSB0d2Vla3MgYW5kIGFkZGl0aW9ucyB0byB0aGUgZG9jcy4KCjIwMDUtMDYtMzAgMDk6MjM6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSZW1vdmVkIGF0b21pYyBvcGVyYXRpb25zLCB1c2UgZXhpc3RpbmcgTE9DSy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoZGVmYXVsdF9oYXZlX2RhdGEpLCAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfaW5pdCksCgkgIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9hdG9taWNfaW50X3NldCksIChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2V2ZW50X3Byb2JlKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9kYXRhX3Byb2JlKSwgKGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2J1ZmZlcl9wcm9iZSk6CgkgIFJlbW92ZWQgYXRvbWljIG9wZXJhdGlvbnMsIHVzZSBleGlzdGluZyBMT0NLLgoJICBNb3ZlIGV4Y2VwdGlvbiBoYW5kbGluZyBvdXQgb2YgbWFpbiBjb2RlIHBhdGguCgoyMDA1LTA2LTMwIDA3OjQ1OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZHJvcCBjaXJjdWxhciByZWZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRyb3AgY2lyY3VsYXIgcmVmZXJlbmNlCgoyMDA1LTA2LTI5IDE5OjIwOjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBhY2N1bXVsYXRvciwgYWRkIGRlZmF1bHQgdmFsdWUgYnkgdXNpbmcgX2VtaXR2KCkgaW5zdGVhZCBvZiBfZW1pdCgpIGZvciBzaWduYWwgZW1pc3Npb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKHNpbGx5X3JldHVybl90cnVlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEZpeCBhY2N1bXVsYXRvciwgYWRkIGRlZmF1bHQgdmFsdWUgYnkgdXNpbmcgX2VtaXR2KCkgaW5zdGVhZAoJICBvZiBfZW1pdCgpIGZvciBzaWduYWwgZW1pc3Npb24uCgoyMDA1LTA2LTI5IDE2OjU3OjU5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBBZGQgcHJvYmUgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBBZGQgcHJvYmUgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvcik6CgkgIE1ha2Ugd29yayAoPz8pLgoKMjAwNS0wNi0yOSAxNjo0NTo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBmaXggZm9yIHBwYywgaG9wZWZ1bGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZm9yIHBwYywgaG9wZWZ1bGx5CgoyMDA1LTA2LTI5IDE2OjExOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNpbXBsaWZ5IGNvZGUgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGhhbmRsZSBzaG9ydCB3cml0ZXMgYW5kIHJldHVybiBHU1RfRkxPV19FUlJPUiBpZiBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVzaW5rX3JlbmRlcik6CgkgIFNpbXBsaWZ5IGNvZGUgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGhhbmRsZSBzaG9ydAoJICB3cml0ZXMgYW5kIHJldHVybiBHU1RfRkxPV19FUlJPUiBpZiBhbiBlcnJvciBvY2N1cmVkLgoKMjAwNS0wNi0yOSAxNjowNToyNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIHByb2JlcyBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBSZW1vdmUgcHJvYmVzIG1vcmUuCgoyMDA1LTA2LTI5IDE1OjUxOjI1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBSZW1vdmUgb2xkIHByb2JlcywgYWRkIG5ldyBnLXNpZ25hbC1iYXNlZCBwcm9iZXMgYW5kIHNvbWUgdXRpbGl0eSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHByb2JlLnNnbWw6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKSwKCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIG9sZCBwcm9iZXMsIGFkZCBuZXcgZy1zaWduYWwtYmFzZWQgcHJvYmVzIGFuZCBzb21lIHV0aWxpdHkKCSAgZnVuY3Rpb25zLgoKMjAwNS0wNi0yOSAxNToxNzoyNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IE1vdmVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX1tzaW5rfHNyY11fY2FwcygpIHRvIGdzdHV0aWxzIGFuZCBhZGRlZCB0aGUgZGVmaW5pdGlvbiB0byB0aGUgaGVhZGVyIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNb3ZlZCBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9bc2lua3xzcmNdX2NhcHMoKSB0byBnc3R1dGlscyBhbmQgYWRkZWQKCSAgdGhlIGRlZmluaXRpb24gdG8gdGhlIGhlYWRlciBmaWxlLgoKMjAwNS0wNi0yOSAxNDo1NjowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW0gKHNjYW4tYnVpbGQuc3RhbXApOiBUb3RhbGx5IG9ubHkgY2hlY2sgcGx1Z2lucyBmcm9tIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbSAoc2Nhbi1idWlsZC5zdGFtcCk6IFRvdGFsbHkgb25seSBjaGVjawoJICBwbHVnaW5zIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDA1LTA2LTI5IDE0OjUyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvdG1wbC86IFNvbWUgZml4aW5ncyBmb3IgYmxhbnRlbnRseSB3cm9uZyB0ZXh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSAgU29tZSBmaXhpbmdzIGZvciBibGFudGVudGx5IHdyb25nIHRleHQuCgoyMDA1LTA2LTI5IDEyOjQwOjM5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3QuYzoKCSAgbG9naWMgd2FzIHJldmVyc2VkLCBkdWgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZ2ljIHdhcyByZXZlcnNlZCwgZHVoCgoyMDA1LTA2LTI5IDEyOjI1OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCBBIEdTVF9QTFVHSU5fUEFUSF9PTkxZIGVudiB2YXI7IGlmIGl0IGlzIHNldCwgaXQgd2lsbCBvbmx5IHNjYW4gdGhlIEdTVF9QTFVHSU5fUEFUSCBsb2NhdGlvbnMsIGFuZCBub3QgYWRkIHN5c3RlbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6IChhZGRfcGF0aF9mdW5jKSwgKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfcGF0aCk6CgkgIGFkZCBBIEdTVF9QTFVHSU5fUEFUSF9PTkxZIGVudiB2YXI7IGlmIGl0IGlzIHNldCwgaXQgd2lsbAoJICBvbmx5IHNjYW4gdGhlIEdTVF9QTFVHSU5fUEFUSCBsb2NhdGlvbnMsIGFuZCBub3QgYWRkCgkgIHN5c3RlbSBsb2NhdGlvbnMKCjIwMDUtMDYtMjkgMTI6MjM6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgZml4ZXMKCjIwMDUtMDYtMjkgMTI6MDI6MTMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEZpeCBhdXRvcGx1Z2dpbmcgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgRml4IGF1dG9wbHVnZ2luZyBleGFtcGxlLgoKMjAwNS0wNi0yOSAxMTo0NjoxNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBUcnkgdG8gZ2V0IGF1dG9wbHVnZ2luZyB3b3JraW5nLCBmaXggdHlwZSBkZXRlY3Rpb24uIEZpeCB0ZXh0IGluIGhlbGxvLXdvcmxkIGltYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBUcnkgdG8gZ2V0IGF1dG9wbHVnZ2luZyB3b3JraW5nLCBmaXggdHlwZSBkZXRlY3Rpb24uIEZpeCB0ZXh0CgkgIGluIGhlbGxvLXdvcmxkIGltYWdlLgoKMjAwNS0wNi0yOSAxMToxMDo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGRlYnVnIGxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBkZWJ1ZyBsaW5lLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBtYXAgU0lHTkFMIGFuZCBCUk9BRENBU1QgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgUmVtb3ZlIHJlZHVuZGFudCBicmFjZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgIERvbid0IGNhbGwgc2V0Y2FwcyBmdW5jdGlvbiB3aGVuIHJlc2V0aW5nIGNhcHMgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZGlzcG9zZSksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZCksIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfYXN5bmMpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF91bnNjaGVkdWxlKToKCSAgVXNlIEJST0FEQ0FTVCBhcyB0aGlzIGlzIHdoYXQgd2UgZG8uCgoyMDA1LTA2LTI5IDEwOjI0OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2UgYXJlIGFjdHVhbGx5IHByZXJvbGxpbmcgYmVmb3JlIGNvbW1pdGluZyB0aGUgc3RhdGUgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgV2UgYXJlIGFjdHVhbGx5IHByZXJvbGxpbmcgYmVmb3JlIGNvbW1pdGluZyB0aGUgc3RhdGUKCSAgY2hhbmdlLgoKMjAwNS0wNi0yOSAwOToyNTo1MSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBVcGRhdGUgKHVudGlsIHRocmVhZHMvc2NoZWR1bGluZykgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgTWFudWFsOyByZW1vdmUgR3N0VGhyZWFkLCBhZGQgR3N0QnVzLCBhZGQgc2ltLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1zY2hlZHVsZXJzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICAqIGRvY3MvbWFudWFsL3RocmVhZC5maWc6CgkgIFVwZGF0ZSAodW50aWwgdGhyZWFkcy9zY2hlZHVsaW5nKSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7CgkgIHJlbW92ZSBHc3RUaHJlYWQsIGFkZCBHc3RCdXMsIGFkZCBzaW1wbGUgcG9ydGluZyBjaGVja2xpc3QsIGFkZAoJICBkb2N1bWVudGF0aW9uIGZvciB0YWcgd3JpdGluZywgY2xvY2tzLCBtYWtlIGFsbCBleGFtcGxlcyB1bnRpbCB0aGlzCgkgIHBhcnQgY29tcGlsZSBhbmQgcnVuLgoJICAqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgVXBkYXRlIGZyb20gY2hhbmdlcyB0byBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7IGFkZCBidXMKCSAgZXhhbXBsZSwgcmVtb3ZlIHRocmVhZCBleGFtcGxlLgoKMjAwNS0wNi0yOCAxOTo0NToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogQWRkIGRlYnVnZ2luZyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwKCSAgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9idXNfcG9wKSwgKGdzdF9idXNfcGVlayksCgkgIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCk6CgkgIEFkZCBkZWJ1Z2dpbmcgbWVzc2FnZXMuCgkgIE1ha2UgaW50ZXJuYWwgbWV0aG9kcyBzdGF0aWMuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgYnVzIGlzIGZsdXNoZWQgaW4gdGhlIGhhbmRsZXIuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9idXMpOgoJICBGaXggcmVmY291bnQgaW4gX2dldF9idXMoKTsKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9jbG9ja19mdW5jKToKCSAgQ2xvY2sgcmVmY291bnRpbmcgZml4ZXMuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBwcmVyb2xsIHRpbWVkIG91dCBtb3JlIGdyYWNlZnVsbHkuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2Rpc3Bvc2UpOgoJICBDbGVhbiB1cCB0aGUgaW50ZXJuYWwgdGhyZWFkIGluIGRpc3Bvc2UuIFRoaXMgaXMgbmVlZGVkCgkgIGZvciBzdWJjbGFzc2VzIHRoYXQgYWN0dWFsbHkgZ2V0IGRpc3Bvc2VkLgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfY2xhc3NfaW5pdCksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Rpc3Bvc2UpOgoJICBGcmVlIHRocmVhZCBwb29sIGluIGRpc3Bvc2UuCgoyMDA1LTA2LTI4IDE2OjU3OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVidWcsIHByaW50LWV2ZW50KTogTmV3IHV0aWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVidWcsIHByaW50LWV2ZW50KTogTmV3IHV0aWxzLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqZGVidWcqLCAqd2l0aC1ncmFwaCopOiBOZXcgcGFyYW1ldGVycy4KCSAgKCpwYWNrZXQtbG9zcyopOiBVbmlmaWVkIGxvc3MgcHJvYmFiaWxpdHkuCgkgIChuZXR3b3JrLXRpbWUpOiBSZXBvcnQgb3V0LW9mLWJhbmQgZXZlbnRzLgoJICAqIHRlc3RzL3Bsb3QtZGF0YTogQWRkIHN1cHBvcnQgZm9yIG91dC1vZi1iYW5kIGV2ZW50cy4gSGFjayBpdAoJICBpbnRvIHRoaXMgc2NyaXB0IGluc3RlYWQgb2YgcGFzc2luZyBpdCBkb3duIHRoZSBwaXBlOyBzaG91bGQgZml4CgkgIHRoaXMgbGF0ZXIuCgoyMDA1LTA2LTI4IDE1OjM2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvOiBEb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgRG9jcyBmaXhlcy4KCjIwMDUtMDYtMjggMTM6NDA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQ29ycmVjdGx5IHByb3h5IHRoZSBjaGVja19wdWxsX3JhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpOgoJICBDb3JyZWN0bHkgcHJveHkgdGhlIGNoZWNrX3B1bGxfcmFuZ2UgZnVuY3Rpb24uCgoyMDA1LTA2LTI4IDEyOjQ1OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmaXggZmFrZSBlbGVtZW50cyB0b28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmYWtlIGVsZW1lbnRzIHRvbwoKMjAwNS0wNi0yOCAxMjowMTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZGlkIHMvYmFzZXMocmMvaW5rKV8vYmFzZV9zKHJjL2luaylfLzsgd2ltIHdhbnRzIHRvIHJlbW92ZSBiYXNlIGNvbXBsZXRlbHksIGJ1dCB0aGF0J3MgZm9yIGxhdGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaWQgcy9iYXNlcyhyYy9pbmspXy9iYXNlX3MocmMvaW5rKV8vOyB3aW0gd2FudHMgdG8gcmVtb3ZlIGJhc2UgY29tcGxldGVseSwgYnV0IHRoYXQncyBmb3IgbGF0ZXIKCjIwMDUtMDYtMjggMTE6NDg6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBSZW1vdmVkIG5lZWQgZm9yIHNsaWIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBSZW1vdmVkIG5lZWQgZm9yIHNsaWIuCgoyMDA1LTA2LTI4IDExOjM2OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVGhlIGRlcHJlY2F0ZWQgcGFkIGxvb3AgZnVuY3Rpb24gaXMgcmVtb3ZlZCBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfc2V0X3BhZF9mdW5jdGlvbnMpLAoJICAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV91cGRhdGVfcGFkX2Z1bmN0aW9ucyk6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCk6CgkgIFRoZSBkZXByZWNhdGVkIHBhZCBsb29wIGZ1bmN0aW9uIGlzIHJlbW92ZWQgbm93LgoKMjAwNS0wNi0yOCAxMTozMzoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp0aW1lb3V0KiwgKnNlbmQtbG9zcyosICpyZWN2LWxvc3MqKTogTmV3IHBhcmFtZXRlcnMsIHNpbXVsYXRlIG5ldHdvcmsgcGFja2V0IGxvc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqdGltZW91dCosICpzZW5kLWxvc3MqLCAqcmVjdi1sb3NzKik6CgkgIE5ldyBwYXJhbWV0ZXJzLCBzaW11bGF0ZSBuZXR3b3JrIHBhY2tldCBsb3NzLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtOiBJbml0aWFsaXplIHRoZSBSTkcuCgoyMDA1LTA2LTI4IDExOjAyOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRmx1c2hpbmcgdGhlIHByZXJvbGwgcXVldWUgYWx3YXlzIG5lZWRzIHRvIHVubG9jayB0aGUgd2FpdGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfZGVhY3RpdmF0ZSk6CgkgIEZsdXNoaW5nIHRoZSBwcmVyb2xsIHF1ZXVlIGFsd2F5cyBuZWVkcyB0byB1bmxvY2sgdGhlIHdhaXRlcnMuCgoyMDA1LTA2LTI4IDEwOjQ1OjQ4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFdoZWVuIGEgc2VlayB3YXMgc3VjY2Vzc2Z1bCBvbiBhIHBpcGVsaW5lLCBzZXQgdGhlIHN0cmVhbV90aW1lIHRvIHRoZSBzZWVrIG9mZnNldCBpbiBvcmRlciB0byBoYXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBXaGVlbiBhIHNlZWsgd2FzIHN1Y2Nlc3NmdWwgb24gYSBwaXBlbGluZSwgc2V0IHRoZSBzdHJlYW1fdGltZSB0byB0aGUKCSAgc2VlayBvZmZzZXQgaW4gb3JkZXIgdG8gaGF2ZSBhIHN5bmNocm9uaXplZCBzdHJlYW1fdGltZS4KCjIwMDUtMDYtMjggMTA6Mzc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQ2FsbCB3cmFwcGVyIGZ1bmN0aW9uIGluc3RlYWQgb2YganVzdCBjYWxsaW5nIHRoZSBmdW5jdGlvbiBwb2ludGVycy4gVGhpcyB0YWtlcyBjYXJlIG9mIGFueSBsb2NraW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKToKCSAgQ2FsbCB3cmFwcGVyIGZ1bmN0aW9uIGluc3RlYWQgb2YganVzdCBjYWxsaW5nIHRoZSBmdW5jdGlvbgoJICBwb2ludGVycy4gVGhpcyB0YWtlcyBjYXJlIG9mIGFueSBsb2NraW5nIGFuZCB3aGF0bW9yZS4KCjIwMDUtMDYtMjggMTA6Mjg6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IENPTk5FQ1RFRCAtPiBMSU5LRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcHVzaCksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQ09OTkVDVEVEIC0+IExJTktFRC4KCjIwMDUtMDYtMjggMDk6NTk6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgICouYzogRG9uJ3QgY2FzdCB0byBHU1RfT0JKRUNUIHdoZW4gcmVmZmluZyBvciB1bnJlZmZpbmcuIExhcmdlIHNvdXJjZS1tdW5naW5nIGNvbW1pdCEhIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiAqLmM6IERvbid0IGNhc3QgdG8gR1NUX09CSkVDVCB3aGVuIHJlZmZpbmcgb3IgdW5yZWZmaW5nLiBMYXJnZQoJICBzb3VyY2UtbXVuZ2luZyBjb21taXQhISEKCjIwMDUtMDYtMjggMDk6MTc6MTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF91bnJlZiwgZ3N0X29iamVjdF9yZWYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYyAoZ3N0X29iamVjdF91bnJlZiwgZ3N0X29iamVjdF9yZWYpCgkgIChnc3Rfb2JqZWN0X3NpbmspOiBUYWtlIGdwb2ludGVyIGFyZ3VtZW50cywgbm90IEdzdE9iamVjdCAtLQoJICBhdm9pZHMgY2FzdHMuIExpa2UgR0xpYi4KCjIwMDUtMDYtMjggMDg6NDE6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKTogRG9uJ3QgcHJveHkgYWN0aXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKTogRG9uJ3QgcHJveHkKCSAgYWN0aXZhdGUuCgoyMDA1LTA2LTI3IDE4OjM5OjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNodXQgdXAgZ2NjMwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2h1dCB1cCBnY2MzCgoyMDA1LTA2LTI3IDE4OjM1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jIChnc3RfdHlwZV9maW5kX2hlbHBlcik6IFVucmVmIGFueSByZW1haW5pbmcgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jIChnc3RfdHlwZV9maW5kX2hlbHBlcik6IFVucmVmIGFueQoJICByZW1haW5pbmcgYnVmZmVyLgoJICAqIGdzdC9nc3R0cmFjZS5jIChnc3RfYWxsb2NfdHJhY2VfbGlzdF9zb3J0ZWQpOiBOZXcgaGVscGVyLAoJICByZXR1cm5zIGEgc29ydGVkIGNvcHkgb2YgdGhlIHRyYWNlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnRfbGl2ZSk6IE5ldyBBUEksIG9ubHkgcHJpbnRzIHRyYWNlcyB3aXRoCgkgIGxpdmUgb2JqZWN0cy4gU29ydCB0aGUgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludF9hbGwpOiBTb3J0IHRoZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50KTogQWxpZ24gY29sdW1ucy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IEFkYXB0IGZvciBwYWQgYWN0aXZhdGlvbiBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IFVucmVmIGFmdGVyIHBhcmVudGluZwoJICBzY2hlZC4KCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKTogRHJvcCByZWYgb24gc2NoZWQuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2luaXQpOiBTZXQgdGhlIGRlZmF1bHQgYWN0aXZhdGUgZnVuYy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfZGVmYXVsdCk6IFB1c2ggbW9kZSBieSBkZWZhdWx0LgoJICAocHJlX2FjdGl2YXRlX3N3aXRjaCwgcG9zdF9hY3RpdmF0ZV9zd2l0Y2gpOiBOZXcgc3R1YnMsIHRoaW5ncyB0bwoJICBkbyBiZWZvcmUgYW5kIGFmdGVyIHN3aXRjaGluZyBhY3RpdmF0aW9uIG1vZGVzIG9uIHBhZHMuCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpOiBUYWtlIGEgYm9vbGVhbiBhbmQgbm90IGEgbW9kZSwgZGlzcGF0Y2ggdG8KCSAgdGhlIHBhZCdzIGFjdGl2YXRlIGZ1bmN0aW9uIHRvIGNob29zZSB3aGljaCBtb2RlIHRvIGFjdGl2YXRlLgoJICBTaG9ydGN1dCBvbiBkZWFjdGl2YXRpb24gYW5kIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9uIGRpcmVjdGx5LgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogTmV3IEFQSSwgKGRlKWFjdGl2YXRlcyBhIHBhZCBpbiBwdWxsCgkgIG1vZGUuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOiBOZXcgQVBJLCBzYW1lIGZvciBwdXNoIG1vZGUuCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZV9mdW5jdGlvbikKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVsbF9mdW5jdGlvbikKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVzaF9mdW5jdGlvbik6IFNldHRlcnMgZm9yIG5ldyBBUEkuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X21pbmlfb2JqZWN0X25ldywgZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICBUcmFjZSBhbGwgbWluaW9iamVjdHMuCgkgIChnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSk6IFVucmVmIHRoZSBhcmcgaWYgd2UgY29weSwgbGlrZQoJICBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKTogTm8gdHJhY2UgaW5pdC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZSkKCSAgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdWxsLCBnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlcHVzaCk6CgkgIEFkYXB0IGZvciBuZXcgcGFkIEFQSS4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoX2dzdF9ldmVudF9pbml0aWFsaXplKTogRG9uJ3QgaW5pdGlhbGl6ZSB0cmFjZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMpCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3NpbmtfcGFkcyk6IE5ldyBBUEkgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGl0ZXJhdG9yX2ZvbGRfd2l0aF9yZXN5bmMpOiBOZXcgdXRpbGl0eSwKCSAgc2hvdWxkIGZvbGQgaW50byBnc3RpdGVyYXRvci5jIGluIHNvbWUgZm9ybS4KCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOiBTaW1wbGlmaWVkIHZpYSB1c2Ugb2YgZm9sZCBhbmQKCSAgZGVsZWdhdGlvbiBvZiBkZWNpc2lvbnMgdG8gZ3N0cGFkLT5hY3RpdmF0ZS4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfc291cmNlX2ZpbmFsaXplKTogU2V0IHRoZSBidXMgdG8gTlVMTCwKCSAgaGVscCBpbiBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKTogUmVmIHRoZSBidWZmZXIgdHlwZQoJICBjbGFzcyBvbmNlIGluIGluaXQsIGxpa2UgZ3N0bWVzc2FnZS4gRGlkbid0IHJ1biBpbnRvIHRoaXMgaXNzdWUKCSAgYnV0IGl0IHNlZW1zIGNvcnJlY3QuIERvbid0IGluaXRpYWxpemUgYSB0cmFjZSwgZ3N0bWluaW9iamVjdCBkb2VzCgkgIHRoYXQuCgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF9zdG9wX2Zyb21fYXBwKTogTmV3CgkgIHRlc3QsIHJ1bnMgZmFrZXNyYyAhIGZha2VzaW5rLCBzdG9wcGluZyBvbiA6OmhhbmRvZmYgdmlhIGEgbWVzc2FnZQoJICB0byB0aGUgYnVzLgoJICAoYXNzZXJ0X2xpdmVfY291bnQpOiBOZXcgdXRpbCBmdW5jdGlvbiwgdXNlcyBhbGxvYyB0cmFjZXMgdG8gY2hlY2sKCSAgY2xlYW51cC4KCSAgKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYyAodGVzdF9naG9zdF9wYWRzKTogTW9yZSByZWZjb3VudCBjaGVja3MuCgkgIFRvIGJlIG1vZGlmaWVkIHdoZW4gdW5saW5rIGRyb3BzIHRoZSBpbnRlcm5hbCBwYWQuCgoyMDA1LTA2LTI3IDE4OjExOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDbGVhbnVwIHRoZSBnZXRfc3RhdGUoKSBmdW5jdGlvbiBhIGxpdHRsZSwgbWFrZSBzdXJlIGl0IGl0ZXJhdGVzIHRoZSBzYW1lIHNldCBvZiBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfc3RhdGUpLCAoZ3N0X2Jpbl9pdGVyYXRlX3N0YXRlX29yZGVyKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgQ2xlYW51cCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gYSBsaXR0bGUsIG1ha2Ugc3VyZSBpdAoJICBpdGVyYXRlcyB0aGUgc2FtZSBzZXQgb2YgZWxlbWVudHMuCgkgIEFkZGVkIHN0dWIgaXRlcmF0ZV9zdGF0ZV9vcmRlcigpLgoKMjAwNS0wNi0yNyAxNDo0MDowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpdGVyYXRvci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBhZGRpbmcgYmFzZXRyYW5zZm9ybSBhbmQgaXRlcmF0b3IgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIGJhc2V0cmFuc2Zvcm0gYW5kIGl0ZXJhdG9yIGRvY3MKCjIwMDUtMDYtMjcgMTM6MjU6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6IE5vdGVzIG9uIGhvdyBhY3RpdmF0aW9uIHNob3VsZCB3b3JrIC0tIG5vdCBxdWl0ZSBpbXBsZW1lbnRlZCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6IE5vdGVzIG9uIGhvdyBhY3RpdmF0aW9uIHNob3VsZAoJICB3b3JrIC0tIG5vdCBxdWl0ZSBpbXBsZW1lbnRlZCB5ZXQuCgoyMDA1LTA2LTI3IDA4OjU0OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeS5zZ21sOgoJICByZW1vdmUgc3R1ZmYgdGhhdCBpc24ndCB0aGVyZSBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3R1ZmYgdGhhdCBpc24ndCB0aGVyZSBhbnltb3JlCgoyMDA1LTA2LTI3IDA4OjE2OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgbW9yZSBkb2MgYW5kIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZG9jIGFuZCB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTA2LTI1IDE5OjUzOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEF0IGxlYXN0IGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gY29ycmVjdCwgbmVlZHMgbW9yZSBmaXhpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbik6CgkgIEF0IGxlYXN0IGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gY29ycmVjdCwgbmVlZHMgbW9yZQoJICBmaXhpbmcuCgoyMDA1LTA2LTI1IDE5OjM3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmlnaHQsIHR3byBwcm9ibGVtcyBoZXJlOiBnaG9zdHBhZHMgZG9uJ3QgdGFrZSBsb2NrcyBhbmQgZ2xpYiBfcmVjX211dGV4X2xvY2tfZnVsbCgpIHdpdGggZGVwdGg9PTAgc3RpbGwgbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBSaWdodCwgdHdvIHByb2JsZW1zIGhlcmU6IGdob3N0cGFkcyBkb24ndCB0YWtlIGxvY2tzIGFuZAoJICBnbGliIF9yZWNfbXV0ZXhfbG9ja19mdWxsKCkgd2l0aCBkZXB0aD09MCBzdGlsbCBsb2Nrcy4KCSAgQ2F0Y2ggaWxsZWdhbCBsb2NraW5nIGFuZCBnX3dhcm4gdGhlbS4KCjIwMDUtMDYtMjUgMTk6MTQ6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYzogSGF2ZSB0byBjaGVjayBmb3IgY29tcGxldGlvbiBub3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICBIYXZlIHRvIGNoZWNrIGZvciBjb21wbGV0aW9uIG5vdy4uLgoKMjAwNS0wNi0yNSAxOTowOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVubG9jayBTVFJFQU1fTE9DSyB3aGF0ZXZlciB0aGUgcmVjdXJzaW9uIHdhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlc2lua19ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgVW5sb2NrIFNUUkVBTV9MT0NLIHdoYXRldmVyIHRoZSByZWN1cnNpb24gd2FzLgoKMjAwNS0wNi0yNSAxNzo1NDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJld29ya2VkIHRoZSBiYXNlIHNpbmssIGhhbmRsZSBldmVudCBhbmQgYnVmZmVyIHNlcmlhbGlzYXRpb24gY29ycmVjdGx5IGFuZCByZW1vdmVkIHBvc3NpYmxlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZXNpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9ldmVudCksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZXNpbmtfY2hhaW4pLCAoZ3N0X2Jhc2VzaW5rX2xvb3ApLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZXdvcmtlZCB0aGUgYmFzZSBzaW5rLCBoYW5kbGUgZXZlbnQgYW5kIGJ1ZmZlciBzZXJpYWxpc2F0aW9uCgkgIGNvcnJlY3RseSBhbmQgcmVtb3ZlZCBwb3NzaWJsZSBkZWFkbG9jay4KCSAgSGFuZGxlIEVPUyBjb3JyZWN0bHkuCgoyMDA1LTA2LTI1IDE3OjUxOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWxsb3cgZWxlbWVudHMgdG8gcG9zdCBFT1MgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChpc19lb3MpLCAocGlwZWxpbmVfYnVzX2hhbmRsZXIpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKSwgKG1haW4pOgoJICBBbGxvdyBlbGVtZW50cyB0byBwb3N0IEVPUyBpbiB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBGaXggdXAgLWxhdW5jaCwgbWFrZSBpdCBleGl0IHRoZSBwb2xsIGxvb3Agd2hlbiB0aGUKCSAgcGlwZWxpbmUgYWN0dWFsbHkgY2hhbmdlZCBzdGF0ZS4KCSAgRml4IHVwIHdhcm5pbmcgcGFyc2luZyBpbiAtbGF1bmNoLgoKMjAwNS0wNi0yNSAxNzo0NDozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogQ29yZSB0YWtlcyBTVFJFQU1fTE9DSyBmb3IgdXMgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2NoYWluKSwgKGdzdF90ZWVfbG9vcCksCgkgIChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICBDb3JlIHRha2VzIFNUUkVBTV9MT0NLIGZvciB1cyBub3cuCgoyMDA1LTA2LTI1IDE3OjQyOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogS2VlcCB0cmFjayBvZiBjdXJyZW50IHRhcmdldCBzdGF0ZSB3aGlsZSBwZXJmb3JtaW5nIGEgc3RhdGUgY2hhbmdlIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gZG8gc29tZXRoaW5nIGludGVyZXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpOgoJICBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgdGFyZ2V0IHN0YXRlIHdoaWxlIHBlcmZvcm1pbmcgYSBzdGF0ZQoJICBjaGFuZ2Ugc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBkbyBzb21ldGhpbmcgaW50ZXJlc3RpbmcuCgkgIEZpeCBwYXJzaW5nIG9mIHdhcm5pbmcvZXJyb3IgbWVzc2FnZXMgd2hlbiBHRXJyb3IgaXMgTlVMTC4KCjIwMDUtMDYtMjQgMTg6MTY6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNvbXBhdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBzdGFydCBwdWxsaW5nIGluIGJhc2UgY2xhc3NlcyBhbmQgZWxlbWVudHMgZm9yIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN0YXJ0IHB1bGxpbmcgaW4gYmFzZSBjbGFzc2VzIGFuZCBlbGVtZW50cyBmb3IgZG9jcwoKMjAwNS0wNi0yNCAwNzo0OTo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBmaXhlZCBtYWtlIGRpc3RjaGVjayB3aXRoIGd0ay1kb2MgMS4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCBtYWtlIGRpc3RjaGVjayB3aXRoIGd0ay1kb2MgMS4zCgoyMDA1LTA2LTIzIDE3OjExOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2hlbiB0aGUgc3RhdGUgZGlkIG5vdCBjaGFuZ2UsIGFsc28gcmVwb3J0IE5PX1BSRVJPTEwgd2hlbiBpdCBtYXR0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFdoZW4gdGhlIHN0YXRlIGRpZCBub3QgY2hhbmdlLCBhbHNvIHJlcG9ydCBOT19QUkVST0xMCgkgIHdoZW4gaXQgbWF0dGVycy4KCjIwMDUtMDYtMjMgMTc6MDk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBObyB1bnNhZmUgdGFzayBwYXVzaW5nIHBsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgTm8gdW5zYWZlIHRhc2sgcGF1c2luZyBwbGVhc2UuCgoyMDA1LTA2LTIzIDE3OjA3OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6IFJlZiB0aGUgdGFzayBiZWZvcmUgcHVzaGluZyBpdCBvbiB0aGUgdGhyZWFkcG9vbC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgaGF2ZSBhIHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19zdGFydCksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3BhdXNlKSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpOgoJICBSZWYgdGhlIHRhc2sgYmVmb3JlIHB1c2hpbmcgaXQgb24gdGhlIHRocmVhZHBvb2wuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHdlIGhhdmUgYSByZWYgd2hlbiB0aGUgdGhyZWFkZnVuY3Rpb24gaXMKCSAgYWN0dWFsbHkgY2FsbGVkLgoKMjAwNS0wNi0yMyAxNToyNjowOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpOiBDaGVjayBpZiB0aGUgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlsZSdzIHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKTogQ2hlY2sgaWYgdGhlCgkgIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpbGUncyBzaXplLgoKMjAwNS0wNi0yMyAxNTowNDo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oIChHU1RfQ0xBU1NfTE9DSywgR1NUX0NMQVNTX1RSWUxPQ0spIChHU1RfQ0xBU1NfVU5MT0NLLCBHU1RfQ0xBU1NfR0VUX0xPQ0ssIEdzdE9iamVjdENsYXNzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9DTEFTU19MT0NLLCBHU1RfQ0xBU1NfVFJZTE9DSykKCSAgKEdTVF9DTEFTU19VTkxPQ0ssIEdTVF9DTEFTU19HRVRfTE9DSywgR3N0T2JqZWN0Q2xhc3MpCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOiBNYWtlIHRoZSBjbGFzcyBsb2NrCgkgIHJlY3Vyc2l2ZS4gV2ltIHdvbid0IGxldCBtZSBkcm9wIGRlZXBfbm90aWZ5LiBEZWNvZGViaW4gd29ya3MKCSAgYWdhaW4sIHdob29wZHkgZG9vLgoKMjAwNS0wNi0yMyAxNDoxODoxNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKG9uX2ludF9ub3RpZnkpOiBDYXRjaGVzIG5vdGlmeTo6Y2FwcyBvbiB0aGUgaW50ZXJuYWwgcGFkLCBhbmQgaGFja3MgYWNjb3JkaW5nbHkuIERvZXNuJ3QgZG8gaXQgb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChvbl9pbnRfbm90aWZ5KTogQ2F0Y2hlcyBub3RpZnk6OmNhcHMgb24gdGhlCgkgIGludGVybmFsIHBhZCwgYW5kIGhhY2tzIGFjY29yZGluZ2x5LiBEb2Vzbid0IGRvIGl0IG9uIHRoZSB0YXJnZXQKCSAgcGFkIGJlY2F1c2Ugd2UgY2hhbmdlIGl0cyBjYXBzLiBQcm9iYWJseSBjYXRjaGVzIGFsbCBjYXNlcyBvZgoJICBpbnRlcmVzdCB0aG8uCgkgIChnc3RfZ2hvc3RfcGFkX3NldF9wcm9wZXJ0eSk6IENvbm5lY3QgdG8gbm90aWZ5OjpjYXBzIGFzCgkgIGFwcHJvcHJpdGF0ZS4KCjIwMDUtMDYtMjMgMTM6MjA6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChwbG90LXNpbXVsYXRpb24pOiBQaXBlIGRhdGEgdG8gdGhlIGVsaXRlIHB5dGhvbiBza3JpcHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtIChwbG90LXNpbXVsYXRpb24pOiBQaXBlIGRhdGEgdG8gdGhlCgkgIGVsaXRlIHB5dGhvbiBza3JpcHQuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKGRlZmluZS1wYXJhbWV0ZXIpOiBOZXcgbWFjcm8sCgkgIGRlZmluZXMgYSBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgc2V0IHZpYSB0aGUgY29tbWFuZCBsaW5lLgoJICAoc2V0LXBhcmFtZXRlciEsIHBhcnNlLXBhcmFtZXRlci1hcmd1bWVudHMpOiBDb21tYW5kIGxpbmUgYXJncwoJICBwYXJzZXIuCgkgICogdGVzdHMvcGxvdC1kYXRhOiBTaW1wbGUgbWF0cGxvdGxpYi1iYXNlZCBwbG90dGVyLCB0YWtlcyBpbnB1dCBvbgoJICBzdGRpbi4KCjIwMDUtMDYtMjMgMTM6MjA6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIG1vcmUgaW1wb3J0YW50IGRvY3VtZW50YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtb3JlIGltcG9ydGFudCBkb2N1bWVudGF0aW9uCgoyMDA1LTA2LTIzIDExOjQzOjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG9uJ3QgcmVzdGFydCB0eXBlZmluZGluZyBvbiBhIGRpc2NvbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIERvbid0IHJlc3RhcnQgdHlwZWZpbmRpbmcgb24gYSBkaXNjb250LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBEZWJ1ZyBzcGVsbGluZyBmaXguCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEFsbG93IGNoYW5naW5nIG1vZGUgb2YgYW4gYWN0aXZlIHBhZC4KCSAgRGVidWcgb3V0cHV0IGZpeGVzLgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChsb2FkX2ZlYXR1cmUpOgoJICBEb24ndCBjYXN0IGEgc3RhdGljIHBhZCB0ZW1wbGF0ZSB0byBhIG5vcm1hbCBwYWQgdGVtcGxhdGUuCgoyMDA1LTA2LTIzIDExOjI1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZSBnc3Rfc3RydG9sbCBjb21wbGV0ZWx5LCBzaW5jZSBpdCBkaWRuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcgbW9yZSB0aGFuIHdoYXQgZ19hc2NpaV9zdHJ0b3VsbCBhbHJlYWR5IGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICByZW1vdmUgZ3N0X3N0cnRvbGwgY29tcGxldGVseSwgc2luY2UgaXQgZGlkbid0IGFjdHVhbGx5IGRvCgkgIGFueXRoaW5nIG1vcmUgdGhhbiB3aGF0IGdfYXNjaWlfc3RydG91bGwgYWxyZWFkeSBkb2VzLgoJICBjaGVjayBmb3IgcmFuZ2UgZXJyb3JzIHdoZW4gZGVzZXJpYWxpemluZwoJICBkbyBhIGNhc3QgZm9yIHRoZSB1bnNpZ25lZCBjYXNlczsgYnV0IGZ1cnRoZXIgZml4aW5nIG5lZWRzCgkgIGEgZGVjaXNpb24gb24gd2hhdCB0aGUgaW50ZXJwcmV0YXRpb24gb2YgIihpbnQpIiBhbmQKCSAgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBiZSBmb3IgdmFsdWVzIHRoYXQgZmFsbCBvdXRzaWRlIHRoZQoJICB0eXBlJ3MgYm91bmRhcmllcyAoaWUsIHJlZnVzZSwgb3IgaW50ZXJwcmV0IGFzIGNhc3RpbmcpCgoyMDA1LTA2LTIzIDEwOjM3OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFkZGVkIHN1cHBvcnQgZm9yIGxpdmUgc291cmNlcyBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdCBjYW5ub3QgZG8gcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHN1cHBvcnQgZm9yIGxpdmUgc291cmNlcyBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdAoJICBjYW5ub3QgZG8gcHJlcm9sbC4KCSAgVXBkYXRlZCBkZXNpZ24gZG9jcywgYWRkZWQgbGl2ZS1zb3VyY2UgZGVzaWduIGRvYy4KCSAgSW1wbGVtZW50ZWQgbGl2ZSBzb3VyY2UgZnVuY3Rpb25hbGl0eSBpbiBiYXNlc3JjCgkgIEZpeCBlcnJvciBjb25kaXRpb24gaW4gX2Jpbl9nZXRfc3RhdGUoKQoJICBJbXBsZW1lbnQgbGl2ZSBzb3VyY2UgaGFuZGxpbmcgaW4gLWxhdW5jaC4KCSAgQWRkZWQgY2hlY2sgZm9yIGxpdmUgc291cmNlcy4KCSAgRml4ZWQgY2FzZSBpbiBHc3RCaW4gd2hlcmUgZWxlbWVudHMgd2VyZSBjaGFuZ2VkIHN0YXRlCgkgIG11bHRpcGxlIHRpbWVzLgoKMjAwNS0wNi0yMyAwOTo1OTozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jICh0ZXN0X2dldF9hbGxvd2VkX2NhcHMsIHRlc3RfcmVmY291bnQpOiBGaXggYm9ya2VuIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmMgKHRlc3RfZ2V0X2FsbG93ZWRfY2FwcywgdGVzdF9yZWZjb3VudCk6IEZpeAoJICBib3JrZW4gcmVmY291bnRpbmcuCgoyMDA1LTA2LTIzIDA5OjQxOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGNvbW1pdCB0aGUgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IHRoZSBmaWxlCgoyMDA1LTA2LTIzIDA5OjQxOjA5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2NhcHMpOiBSZW1vdmUgbmVlZGxlc3MgcmVmcywgZ3N0X2NhcHNfcmVwbGFjZSB0YWtlcyBjYXJlIG9mIHRoaXMgZm9yIHVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2V0X2NhcHMpOiBSZW1vdmUgbmVlZGxlc3MgcmVmcywKCSAgZ3N0X2NhcHNfcmVwbGFjZSB0YWtlcyBjYXJlIG9mIHRoaXMgZm9yIHVzLgoKMjAwNS0wNi0yMyAwOToyODoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2Fwcyk6IENhbGwgdGhlIGZ1bGwgZ3N0X3BhZF9zZXRfY2FwcyBvbiB0aGUgdGFyZ2V0LCBub3QganVzdCBpdHMgc2V0Y2FwcygpIGZ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpOiBDYWxsIHRoZSBmdWxsCgkgIGdzdF9wYWRfc2V0X2NhcHMgb24gdGhlIHRhcmdldCwgbm90IGp1c3QgaXRzIHNldGNhcHMoKSBmdW5jdGlvbi4KCjIwMDUtMDYtMjMgMDA6Mzk6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogQSBuZXR3b3JrIGNsb2NrIHNpbXVsYXRvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206IEEgbmV0d29yayBjbG9jayBzaW11bGF0b3IuCgkgIFNvbWV0aGluZyBvZiBhbiBhbGdvcml0aG1pYyB0ZXN0YmVkIGJlZm9yZSBkb2luZyBzb21ldGhpbmcgaW4gQy4KCjIwMDUtMDYtMjIgMTk6NTc6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYWtlIHN1cmUgY2Fwc2xpc3QuaCBnZXRzIGRpc3RlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBzdXJlIGNhcHNsaXN0LmggZ2V0cyBkaXN0ZWQKCjIwMDUtMDYtMjIgMTk6NDg6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZmlsZSBmcm9tc3RyaW5nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGZyb21zdHJpbmcuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDYtMjIgMTk6MjI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBjb3B5IG92ZXIgZnJvbSAwLjgsIGFuZCBhZGQgdHdvIHdpdGggYml0bWFza3Mgc3BlY2lmaWVkIHdpdGggKGludCkgMHhGRi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgY29weSBvdmVyIGZyb20gMC44LCBhbmQgYWRkIHR3byB3aXRoIGJpdG1hc2tzIHNwZWNpZmllZCB3aXRoCgkgIChpbnQpIDB4RkYuLi4KCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIGFkZCB0ZXN0IHRvIHBhcnNlIGV2ZXJ5dGhpbmcgZnJvbSBjYXBzbGlzdC5oCgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpLAoJICAobWFpbik6CgkgIGFkZCB0ZXN0IGZvciBzdHJ1Y3R1cmUgZGVzZXJpYWxpemF0aW9uCgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCB0ZXN0cyBmb3IgZGVzZXJpYWxpemF0aW9uIG9mIHN0cmluZ3MgdG8gaW50IHR5cGVzCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9udGhfZmllbGRfbmFtZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBhZGQgYSB3YXkgdG8gZ2V0IHRoZSBuYW1lIG9mIGEgZmllbGQgcmVmZXJlbmNlZCBieSBpbmRleAoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICBpbnN0ZWFkIG9mIGNoZWNraW5nIGlmIHRoZSByZXN1bHRpbmcgbG9uZyBsb25nIGxpZXMgYmV0d2VlbgoJICBtaW4gYW5kIG1heCwgd2UgY2hlY2sgaWYgdGhlIGxvbmcgbG9uZyB3b3VsZCBmaXQgaW50bwoJICBhIG51bWJlciBvZiBieXRlcyBmb3IgdGhlIGZpbmFsIHR5cGUuCgkgIFRoaXMgZml4ZXMgY2FzZXMgd2hlcmUgYSBzdHJpbmcgcmVwcmVzZW50cyAyXjMyIC0gMSwgd2hpY2gKCSAgd2hlbiBjYXN0IHRvIGludCB3b3VsZCBiZSB0aGUgKHZhbGlkKSAtMSwgYnV0IGlzIGJpZ2dlciB0aGFuCgkgIEdfTUFYSU5UCgoyMDA1LTA2LTIyIDExOjAyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgYWRkIGEgbG9nIGxpbmUgZm9yIHR5cGUgZGVzZXJpYWxpemF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBsb2cgbGluZSBmb3IgdHlwZSBkZXNlcmlhbGl6YXRpb24KCjIwMDUtMDYtMjIgMTA6NTI6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmV0dXJuIGxvbmcgbG9uZywgbm90IGludCwgc28gZ2ludDY0IGRlc2VyaWFsaXphdGlvbiBhY3R1YWxseSB3b3Jrcy4gIElzIHRoZXJlIGFueSBmbGFnIHRoYXQgbWFrZXMgdGhlIGNvbXBpbGVyIGNoZWNrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemUpOgoJICByZXR1cm4gbG9uZyBsb25nLCBub3QgaW50LCBzbyBnaW50NjQgZGVzZXJpYWxpemF0aW9uIGFjdHVhbGx5CgkgIHdvcmtzLiAgSXMgdGhlcmUgYW55IGZsYWcgdGhhdCBtYWtlcyB0aGUgY29tcGlsZXIgY2hlY2sgdGhpcyA/CgkgIEZpeGVzICMzMDg1NTkKCjIwMDUtMDYtMjIgMDk6NTU6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEFkZGVkIGNvbnZlbmllbmNlIG1hY3JvcyBmb3Igc2V0dGluZyBidWZmZXJzIGluIEdWYWx1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGRlZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9yIHNldHRpbmcgYnVmZmVycyBpbiBHVmFsdWUuCgoyMDA1LTA2LTIxIDE3OjQxOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC86IGFkZCBhIHRlc3QgZGVzZXJpYWxpemluZyBpbnQ2NCwgYW5kIGNvbW1lbnQgcGFydCBvdXQgYmVjYXVzZSBpdCBmYWlscywgeWF5ICEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZGVzZXJpYWxpemluZyBpbnQ2NCwgYW5kIGNvbW1lbnQgcGFydCBvdXQgYmVjYXVzZQoJICBpdCBmYWlscywgeWF5ICEKCjIwMDUtMDYtMjEgMTY6NTM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgIGNvbW1pdCBhIGZpbGUgSSBmb3Jnb3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1pdCBhIGZpbGUgSSBmb3Jnb3QKCjIwMDUtMDYtMjEgMTY6NDg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdmFsdWVfc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGVzdF9nc3RfaW5pdC5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9zZXJpYWxpemUuYzoKCSogdGVzdHN1aXRlL3Rlc3RfZ3N0X2luaXQuYzoKCSAgbW92ZSBvdmVyIGEgdmFsdWVfc2VyaWFsaXplIHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgb3ZlciBhIHZhbHVlX3NlcmlhbGl6ZSB0ZXN0CgoyMDA1LTA2LTIwIDE1OjE4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2J1ZmZlciksCgkgIChnc3RfdmFsdWVfc2VyaWFsaXplX2J1ZmZlciksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZsYWdzKSwgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEZpeCBzZXJpYWxpc2F0aW9uIG9mIGJ1ZmZlcnMsIHRoZXkgYXJlIG5vdCBib3hlZCB0eXBlcyBhbnltb3JlCgoyMDA1LTA2LTIwIDE1OjE0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogVGVzdGNhc2UgdG8gc2hvdyBlcnJvciBpbiBidWZmZXItb24tY2FwcyBzZXJpYWxpc2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIFRlc3RjYXNlIHRvIHNob3cgZXJyb3IgaW4gYnVmZmVyLW9uLWNhcHMgc2VyaWFsaXNhdGlvbi4KCjIwMDUtMDYtMjAgMTU6MTM6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3dpbmdvL3BvcnRpbmctcGx1Z2lucy10by0wLjk6IEEgcGl0aWZ1bCBkb2N1bWVudCBJIHdpbGwgYmUgYWRkaW5nIHRvIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL3JhbmRvbS93aW5nby9wb3J0aW5nLXBsdWdpbnMtdG8tMC45OiBBIHBpdGlmdWwgZG9jdW1lbnQgSQoJICB3aWxsIGJlIGFkZGluZyB0byBsYXRlci4KCjIwMDUtMDYtMjAgMTE6NDE6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jIChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOiBVbmxvY2sgdGhlIGNsb2NrIGlmIGl0cyBzb2NrcyBmaWxsIHdpdGggcm9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jIChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOiBVbmxvY2sgdGhlIGNsb2NrCgkgIGlmIGl0cyBzb2NrcyBmaWxsIHdpdGggcm9ja3MuCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX29idGFpbik6IFNldCB0aGUgbmFtZSBvbiBvYmplY3QgY29uc3RydWN0aW9uLgoJICBBdm9pZCBkb3VibGUtY2hlY2tlZCBsb2NraW5nLgoKMjAwNS0wNi0yMCAxMTozMjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRml4IHBvdGVudGlhbCBlbmRsZXNzIGxvb3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzogKGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkpOgoJICBGaXggcG90ZW50aWFsIGVuZGxlc3MgbG9vcC4KCjIwMDUtMDYtMjAgMTE6Mjc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9naG9zdHBhZHMvZ2hvc3RwYWRzLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2dob3N0cGFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzL2dob3N0cGFkcy5jOgoJICByZW1vdmUgYW5vdGhlciB0ZXN0IHRoYXQncyBvYnNvbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFub3RoZXIgdGVzdCB0aGF0J3Mgb2Jzb2xldGUKCjIwMDUtMDYtMjAgMTE6MjM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Nsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svc2lnbmVkbmVzcy5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbG9jay8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvY2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzoKCSogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOgoJKiB0ZXN0c3VpdGUvY2xvY2svc2lnbmVkbmVzcy5jOgoJICByZW1vdmUgY2xvY2sgdGVzdHN1aXRlLCBpbXBvcnRhbnQgc3R1ZmYgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNsb2NrIHRlc3RzdWl0ZSwgaW1wb3J0YW50IHN0dWZmIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCjIwMDUtMDYtMjAgMTE6MTg6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2JpbnMvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2JpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJICByZW1vdmUgdGVzdCB0aGF0IHdhcyBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVzdCB0aGF0IHdhcyBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgoyMDA1LTA2LTE5IDExOjMyOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgZ3N0dGFnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgZ3N0dGFnCgkgICogY2hlY2svZ3N0L2dzdHRhZy5jOiAoY2hlY2tfdGFncyksIChTVEFSVF9URVNUKSwgKGdzdF90YWdfc3VpdGUpLAoJICAobWFpbik6CgkgIG1vdmUgb3ZlciBmcm9tIHRlc3RzdWl0ZSBkaXIgYW5kIGNsZWFuIHVwCgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHN1aXRlL3RhZ3MvLmN2c2lnbm9yZToKCSAgKiB0ZXN0c3VpdGUvdGFncy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdGFncy9tZXJnZS5jOgoJICByZW1vdmUgdGVzdHN1aXRlL3RhZ3MKCjIwMDUtMDYtMTkgMTA6NTQ6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBzb21lIG1vcmUgZG9jcyBjbGVhbnVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIG1vcmUgZG9jcyBjbGVhbnVwCgoyMDA1LTA2LTE5IDEwOjMxOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2J1ZnNwZWVkLy5naXRpZ25vcmU6CgkqIHRlc3RzL2J1ZnNwZWVkL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9idWZzcGVlZC9SRUFETUU6CgkqIHRlc3RzL2J1ZnNwZWVkL2dzdG1lbXBvb2wuYzoKCSogdGVzdHMvYnVmc3BlZWQvZ3N0bWVtcG9vbC5oOgoJKiB0ZXN0cy9idWZzcGVlZC90ZXN0MS5jOgoJKiB0ZXN0cy9idWZzcGVlZC90ZXN0Mi5jOgoJKiB0ZXN0cy9zcGlkZXlfYmVuY2guYzoKCSAgcmVtb3ZlIGJ1ZnNwZWVkIGFuZCBzcGlkZXlfYmVuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBidWZzcGVlZCBhbmQgc3BpZGV5X2JlbmNoCgoyMDA1LTA2LTE5IDEwOjIyOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgIGNsZWFuIHVwIGRvY3MgYSBsaXR0bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIHVwIGRvY3MgYSBsaXR0bGUKCjIwMDUtMDYtMTkgMDA6NTI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0Y2hlY2suaDogYWRkIG1hY3JvcyBmb3IgY2hlY2tpbmcgcmVmY291bnRzIG9uIG9iamVjdHMgYW5kIGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIG1hY3JvcyBmb3IgY2hlY2tpbmcgcmVmY291bnRzIG9uIG9iamVjdHMgYW5kIGNhcHMKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgc29tZSBtb3JlIHVuaXQgdGVzdHMKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKToKCSAgZml4IGxlYWtlZCByZWZjb3VudHMgKEkgaG9wZSA6KSkgc28gdW5pdHRlc3Qgd29ya3MKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIHdoaXRlc3BhY2UgcmVtb3ZhbAoKMjAwNS0wNi0xOCAyMjozMzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCjIwMDUtMDYtMTcgMTI6MDA6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMDYtMTcgMTE6NTg6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19jaGFpbik6IFJlbW92ZSBib2d1cyBhc3NlcnQ7IGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfY2hhaW4pOiBSZW1vdmUgYm9ndXMKCSAgYXNzZXJ0OyBpdCdzIGFsd2F5cyBwb3NzaWJsZSB0aGF0IHRoZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCBpbgoJICBiZXR3ZWVuIHRoZSBjaGVja3MgaW4gZ3N0cGFkLmMgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbi4gUmVseSBvbgoJICBmaW5pc2hfcHJlcm9sbCgpIHRvIHJldHVybiBhIEZMVVNISU5HIG9yIHNpbWlsYXIgaW5zdGVhZCBvZiBvbiB0aGUKCSAgYXNzZXJ0LgoKMjAwNS0wNi0xNyAxMTozMzoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2V2ZW50KTogT25seSB3YWl0IGZvciB0aGUgY2xvY2sgYW5kIHBvc3QgYW4gRU9TIG1lc3NhZ2UgaWYgd2UgY29tZSBvdXQgb2YgZmluaXNoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19ldmVudCk6IE9ubHkgd2FpdCBmb3IgdGhlCgkgIGNsb2NrIGFuZCBwb3N0IGFuIEVPUyBtZXNzYWdlIGlmIHdlIGNvbWUgb3V0IG9mIGZpbmlzaF9wcmVyb2xsIGluCgkgIHRoZSBwbGF5aW5nIHN0YXRlLgoKMjAwNS0wNi0xNyAwOTo1ODozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIGluY29ycG9yYXRlIHBsdWdpbnMgc3R1ZmYgYW5kIHVuaW5zdGFsbGVkIHN0dWZmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpbmNvcnBvcmF0ZSBwbHVnaW5zIHN0dWZmIGFuZCB1bmluc3RhbGxlZCBzdHVmZgoKMjAwNS0wNi0xNyAwOTozMjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMTcgMDk6MTI6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGdzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGdzdC9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBnc3QvcGFyc2UvLmdpdGlnbm9yZToKCSogZ3N0L3JlZ2lzdHJpZXMvLmdpdGlnbm9yZToKCSogZ3N0L3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSogcGx1Z2lucy9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdG9vbHMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA2LTE3IDA4OjU5OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIC5naXRpZ25vcmU6CgkqIENoYW5nZUxvZzoKCSogUkVBRE1FOgoJKiBjaGVjay8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmU7IGZpeCBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlOyBmaXggUkVBRE1FCgoyMDA1LTA2LTE2IDE3OjUwOjE2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEFsbG93IE5VTEwgYXMgcG9zc2libGUgdmFsdWUgZm9yIGZpbHRlcl9jYXBzIHByb3BlcnR5LCBpbmRpY2F0aW5nIEdTVF9DQVBTX0FOWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KTogQWxsb3cgTlVMTCBhcyBwb3NzaWJsZSB2YWx1ZQoJICBmb3IgZmlsdGVyX2NhcHMgcHJvcGVydHksIGluZGljYXRpbmcgR1NUX0NBUFNfQU5ZLgoKMjAwNS0wNi0wOSAxMzozMzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBmaXggZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jcmVhdGUpOgoJICBmaXggZGVidWcgb3V0cHV0CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgIHVzZSBsaWJnc3QgcHJlZml4CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCBzcGVjIGZvciBpdAoKMjAwNS0wNi0wOSAxMjoyMzowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3RyZWFtZXIuc3BlYy5pbjogY2xlYW4gdXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGNsZWFuIHVwCgoyMDA1LTA2LTA5IDEyOjA5OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdHJlYW1lci5zcGVjLmluOiBjbGVhbiB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAKCjIwMDUtMDYtMDkgMTI6MDM6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogVE9ETzoKCSogZG9jcy9yYW5kb20vVE9ETy1wcmUtMC45OgoJICBoYXZlIGEgcmVhbCBUT0RPLCBtb3ZlIG9sZCBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBoYXZlIGEgcmVhbCBUT0RPLCBtb3ZlIG9sZCBUT0RPCgoyMDA1LTA2LTA5IDEyOjAwOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcG8gdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcG8gdXBkYXRlcwoKMjAwNS0wNi0wOSAxMToxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDUtMDYtMDggMjI6MTY6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBSUEFEIGZpeGVzIGFsbCBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOiBSUEFEIGZpeGVzIGFsbCBhcm91bmQuCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBSZWZjb3VudGluZyBmaXhlcy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgICogcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogUlBBRCBmaXhlcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogTmV3IGdob3N0IHBhZCBpbXBsZW1lbnRhdGlvbiBhcyBmdWxsIHByb3h5CgkgIHBhZHMuIFRoZSB0cmlja3kgdGhpbmcgaXMgdGhleSBwcm92aWRlIGJvdGggc291cmNlIGFuZCBzaW5rCgkgIGludGVyZmFjZXMsIHNpbmNlIHRoZXkgcHJveHkgdGhlIGludGVybmFsIHBhZCBmb3IgdGhlIGV4dGVybmFsCgkgIHBhZCwgYW5kIHZpY2UgdmVyc2EuIEltcGxlbWVudCB3aXRoIGxvd2VyLWxldmVsIFByb3h5UGFkIG9iamVjdHMsCgkgIHdpdGggdGhlIGludGVyaW9yIHByb3h5IHBhZCBhcyBhIGNoaWxkIG9mIHRoZSBleHRlcmlvciBnaG9zdCBwYWQuCgkgIFNob3VsZCB3cml0ZSBhIGRvYyBvbiB0aGlzLgoJICAqIGdzdC9nc3RwYWQuaDogcy9SUEFEL1BBRC8sIHMvUmVhbFBhZC9QYWQvLgoJICAoZ3N0X3BhZF9zZXRfbmFtZSwgZ3N0X3BhZF9zZXRfcGFyZW50KTogTWFjcm9zIHJlbW92ZWQsIHVzZQoJICBnc3Rfb2JqZWN0IEFQSS4KCSAgKiBnc3QvZ3N0cGFkLmM6IEJpZyBjaGFuZ2VzLiBObyBtb3JlIHN0dWIgYmFzZSBHc3RQYWQsIG5vdyBhbGwKCSAgcGFkcyBhcmUgcmVhbCBwYWRzLiBObyBnaG9zdCBwYWRzIGluIHRoaXMgZmlsZS4gTm90IGRvY3VtZW50aW5nCgkgIHRoZSBteXJpYWQgcy9SUEFEL1BBRC8gYW5kIFJFQUxJWkUgZml4ZXMuCgkgIChnc3RfcGFkX2NsYXNzX2luaXQpOiBBZGQgcHJvcGVydGllcyBmb3IgImRpcmVjdGlvbiIgYW5kCgkgICJ0ZW1wbGF0ZSIuIEJvdGggYXJlIGNvbnN0cnVjdC1vbmx5LCBzbyB0aGV5IGNhbid0IGNoYW5nZSBkdXJpbmcKCSAgdGhlIGxpZmUgb2YgdGhlIHBhZC4gRml4ZXMgcHJvcGVybHkgZGVyaXZpbmcgZnJvbSBHc3RQYWQuCgkgIChnc3RfcGFkX2N1c3RvbV9uZXcsIGdzdF9wYWRfY3VzdG9tX25ld19mcm9tX3RlbXBsYXRlKTogR29uZS4gRm9yCgkgIGRlcml2ZWQgb2JqZWN0cywganVzdCBzZXQgcHJvcGVydGllcyB3aGVuIGNyZWF0aW5nIHRoZSBvYmplY3RzIHZpYQoJICBnX29iamVjdF9uZXcuCgkgIChnc3RfcGFkX2dldF9wYXJlbnQpOiBJbXBsZW1lbnQgYXMgYSBmdW5jdGlvbiwgcmV0dXJuIE5VTEwgaWYgdGhlCgkgIHBhcmVudCBpcyBub3QgYW4gZWxlbWVudC4KCSAgKGdzdF9wYWRfZ2V0X3JlYWxfcGFyZW50LCBnc3RfcGFkX2FkZF9naG9zdF9wYWQpCgkgIChnc3RfcGFkX3JlbW92ZV9naG9zdF9wYWQsIGdzdF9wYWRfcmVhbGl6ZSk6IFJlbW92ZWQuCgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOiBNYWtlIG5hbWUgYSBjb25zdHJ1Y3QKCSAgcHJvcGVydHkuIERvbid0IHNldCBpdCBpbiB0aGUgb2JqZWN0IGluaXQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfYWRkX3BhZCk6IERvbid0IGFsbG93IGFkZGluZyBwYWRzCgkgIHdpdGggVU5LTk9XTiBkaXJlY3Rpb24uCgkgIChnc3RfZWxlbWVudF9hZGRfZ2hvc3RfcGFkKTogUmVtb3ZlIG5vbi1vcnRob2dvbmFsIEFQSS4gUmVwbGFjZQoJICB3aXRoIGdzdF9lbGVtZW50X2FkZF9wYWQgKGUsIGdzdF9naG9zdF9wYWRfbmV3IChuYW1lLCBwYWQpKS4KCSAgKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpOiBSZW1vdmUgZ2hvc3QtcGFkIHNwZWNpYWwgY2FzZXMuCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKTogUmVtb3ZlIHJwYWQgY3J1ZnQuCgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IFVzZSBnc3RfcGFkX2dldF9wYXJlbnQgdG8KCSAgY2F0Y2ggdGhlIHBhZCdzLXBhcmVudC1ub3QtYW4tZWxlbWVudCBjYXNlLgoJICAqIGdzdC9nc3QuaDogSW5jbHVkZSBnc3RnaG9zdHBhZC5oLgoJICAqIGdzdC9nc3QuYyAoaW5pdF9wb3N0KTogTm8gbW9yZSByZWFsLCBnaG9zdCBwYWRzLgoJICAqIGdzdC9NYWtlZmlsZS5hbTogQWRkIGdzdGdob3N0cGFkLltjaF0uCgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBDaGVjayB0aGF0IGxpbmtpbmcKCSAgaW50byBhIGJpbiBjcmVhdGVzIGdob3N0IHBhZHMsIGFuZCB0aGF0IHRoZSByZWZjb3VudHMgYXJlIHJpZ2h0LgoJICBQYXJ0bHkgbW92ZWQgZnJvbSBnc3RiaW4uYy4KCjIwMDUtMDYtMDggMTQ6MDA6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL3BpcGVsaW5lcy8uY3ZzaWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChzZXR1cF9waXBlbGluZSksIChydW5fcGlwZWxpbmUpLAoJICAoU1RBUlRfVEVTVCksIChjbGVhbnVwX3N1aXRlKSwgKG1haW4pOgoJICBhZGQgc29tZSB0ZXN0cyByZWxhdGVkIHRvIGNsZWFudXAgYWZ0ZXIgcnVubmluZyBwaXBlbGluZXMKCjIwMDUtMDYtMDggMTM6NTc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYWRkIGEgR3N0QnVmZmVyIHVuaXQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgR3N0QnVmZmVyIHVuaXQgdGVzdAoKMjAwNS0wNi0wOCAxMzo0NToyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIHByZXZpb3VzIGNvbW1pdCBhY2NpZGVudGFsbHkgYWxzbyBhZGRlZCByZWZjb3VudCBkZWZpbmVzIGZvciBnc3RtaW5pb2JqZWN0LCBsb2dnaW5nIHRoYXQgbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwcmV2aW91cyBjb21taXQgYWNjaWRlbnRhbGx5IGFsc28gYWRkZWQgcmVmY291bnQgZGVmaW5lcyBmb3IgZ3N0bWluaW9iamVjdCwgbG9nZ2luZyB0aGF0IG5vdwoKMjAwNS0wNi0wOCAxMzo0Mjo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIGEgJ3BsdWdpbnMnIGRpciB0byB0aGUgUExVR0lOX1BBVEggaW4gdGhlIHVuaW5zdGFsbGVkIHNjcmlwdCB0byBkcm9wIHJhbmRvbSBvdGhlciBwbHVnaW4taGF2aW5nIHByb2plY3RzIGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSAncGx1Z2lucycgZGlyIHRvIHRoZSBQTFVHSU5fUEFUSCBpbiB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IHRvIGRyb3AgcmFuZG9tIG90aGVyIHBsdWdpbi1oYXZpbmcgcHJvamVjdHMgaW4KCjIwMDUtMDYtMDggMTM6NDE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICB3ZSBkaWQgYSBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3ZSBkaWQgYSBwcmVyZWxlYXNlCgoyMDA1LTA2LTA4IDEzOjQxOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgT0JKRUNUIGFjdHMgb24gb2JqIG5vdCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBPQkpFQ1QgYWN0cyBvbiBvYmogbm90IGNhcHMKCjIwMDUtMDYtMDggMTM6NDE6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGFkZCBhIGRlYnVnIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGRlYnVnIGxpbmUKCjIwMDUtMDYtMDggMTM6NDA6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdoaXRlIHNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZSBzcGFjZSBmaXhlcwoKMjAwNS0wNi0wMyAxODoyNjo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJICBhZGRlZCBzdXBwb3J0IGZvciBodG1sIHVuaXQgdGVzdCBjb3ZlcmFnZSByZXBvcnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBzdXBwb3J0IGZvciBodG1sIHVuaXQgdGVzdCBjb3ZlcmFnZSByZXBvcnRzCgoyMDA1LTA2LTAyIDE1OjQ1OjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IEZyZWUgZXhpc3RpbmcgY2FwcyBpZiB0aGUgY2Fwc2ZpbHRlciBjaGFuZ2VzLiBBZGQgYSBGSVhNRSBhYm91dCBzZXR0aW5nIHRob3NlIGNhcHMgb24gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgRnJlZSBleGlzdGluZyBjYXBzIGlmIHRoZSBjYXBzZmlsdGVyIGNoYW5nZXMuIEFkZCBhIEZJWE1FIGFib3V0CgkgIHNldHRpbmcgdGhvc2UgY2FwcyBvbiB0aGUgcGFkcy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCksIChnaG9zdF91cCk6CgkgIEJlZm9yZSBhZGRpbmcgYSBnaG9zdCBwYWQgdG8gYSBwYXJlbnQgYmluLCBjaGVjayB0aGF0IHRoZXJlIGlzbid0CgkgIGFscmVhZHkgb25lIGZvciB0aGUgZWxlbWVudCBvbiB0aGUgYmluLiBQcmV2ZW50cyBpbmZpbml0ZSByZWN1cnNpb24KCSAgd2hlbiB1c2luZyBkZWNvZGViaW4gaW4gcGFyc2UgcGlwZWxpbmVzLiBBbmR5IHNheXMgaGUnbGwgcmV3cml0ZSB0aGUKCSAgd2F5IHRoaXMgd29ya3MgYW55d2F5LCBzbyBpZ25vcmUgdGhlIGhhY2suCgoyMDA1LTA2LTAyIDExOjEyOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGRvX3B1bGxfdHlwZWZpbmQpOiBRdWVyeSB0aGUgZmlsZSBzaXplLCBwYXNzIGl0IG9uIHRvIHRoZSB0eXBlIGZpbmQgaGVscGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgKGRvX3B1bGxfdHlwZWZpbmQpOiBRdWVyeSB0aGUKCSAgZmlsZSBzaXplLCBwYXNzIGl0IG9uIHRvIHRoZSB0eXBlIGZpbmQgaGVscGVyLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfZG9fc2Vlayk6IFNldCB0aGUKCSAgc2VnbWVudF9zdGFydCBhbmQgc2VnbWVudF9lbmQgcHJvcGVybHkgYWNjb3JkaW5nIHRvIHRoZSBzZWVrCgkgIG1ldGhvZC4gU2VnbWVudF9lbmQgaXMgc3RpbGwgYSBiaXQgZmxha3kgYmVjYXVzZSBvZmZzZXQgY2FuIGJlCgkgIG5lZ2F0aXZlIGZvciBDVVIgYW5kIEVORCBjYXNlcywgYnV0IGl0IHRha2VzIC0xIGFzIGFuICJ1bnNldCIKCSAgdmFsdWUuCgoyMDA1LTA2LTAyIDA5OjQyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQnVmZmVyYWxsb2M6IHJldHVybiBHc3RGbG93UmV0dXJuIHRvIG1vcmUgYWNjdXJhdGx5IHJlcG9ydCB3aHkgYWxsb2NhdGlvbiBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcGFkX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV9zaW5rX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgQnVmZmVyYWxsb2M6IHJldHVybiBHc3RGbG93UmV0dXJuIHRvIG1vcmUgYWNjdXJhdGx5IHJlcG9ydAoJICB3aHkgYWxsb2NhdGlvbiBmYWlsZWQuCgoyMDA1LTA2LTAyIDA5OjM5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IFRha2Ugc25hcHNob3Qgb2Ygc3RhdGUgd2l0aG91dCBibG9ja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIFRha2Ugc25hcHNob3Qgb2Ygc3RhdGUgd2l0aG91dCBibG9ja2luZy4KCjIwMDUtMDYtMDIgMDg6MjY6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgU21hbGwgZG9jIHVwZGF0ZXMKCjIwMDUtMDUtMzAgMTY6Mjg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogUHJvdGVjdCBsYXN0X21lc3NhZ2UgcHJvcGVydHkgYXMgaXQgaXMgYWNjZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9ldmVudCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICBQcm90ZWN0IGxhc3RfbWVzc2FnZSBwcm9wZXJ0eSBhcyBpdCBpcyBhY2Nlc3NlZCBmcm9tCgkgIG11bHRpcGxlIHRocmVhZHMuCgoyMDA1LTA1LTMwIDE1OjUzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU2xpY2tlciBwYWQgYWN0aXZhdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIFNsaWNrZXIgcGFkIGFjdGl2YXRpb24gY29kZS4KCjIwMDUtMDUtMzAgMTU6NTE6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNb3ZlIGVsZW1lbnRmYWN0b3J5IG1ldGhvZHMgdG8gc2VwYXJhdGUgLmggZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogZ3N0L2dzdHR5cGVzLmg6CgkgIE1vdmUgZWxlbWVudGZhY3RvcnkgbWV0aG9kcyB0byBzZXBhcmF0ZSAuaCBmaWxlLgoKMjAwNS0wNS0zMCAxNTo0ODo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIHR5cG8gZml4ZXMsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgU21hbGwgdHlwbyBmaXhlcywgZG9jIHVwZGF0ZXMuCgoyMDA1LTA1LTMwIDE1OjQ2OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdC5jOiBSZW1vdmUgY3B1LW9wdCBmbGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfcG9wdF90YWJsZSksIChpbml0X3Bvc3QpLAoJICAoaW5pdF9wb3B0X2NhbGxiYWNrKToKCSAgUmVtb3ZlIGNwdS1vcHQgZmxhZy4KCjIwMDUtMDUtMzAgMTU6NDQ6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IEF2b2lkIHR5cGVjaGVja2luZyBpbiBwbGFjZXMgd2hlcmUgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQXZvaWQgdHlwZWNoZWNraW5nIGluIHBsYWNlcyB3aGVyZSBub3QgbmVlZGVkLgoJICBBZGRlZCBhY2Nlc3NvciBmb3IgbWFsbG9jX2RhdGEuCgoyMDA1LTA1LTMwIDE1OjQxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBQcm9wYWdhdGUgZXJyb3JzIGZyb20gX3NldF9jYXBzKCkgaW4gY29uZmlndXJlX3NyYy9zaW5rIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJldHVybmluZyBUUlVFLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcmVhbF9wYWRfaW5pdCksIChnc3RfcGFkX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLAoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgUHJvcGFnYXRlIGVycm9ycyBmcm9tIF9zZXRfY2FwcygpIGluIGNvbmZpZ3VyZV9zcmMvc2luawoJICBmdW5jdGlvbnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgVFJVRS4KCSAgRkxVU0ggZXZlbnRzIGNhbiB0cmF2ZWwgdXAgYW5kIGRvd25zdHJlYW0KCjIwMDUtMDUtMzAgMTU6MzY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBIYW5kbGUgRU9TIGluIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgIEhhbmRsZSBFT1MgaW4gcHJlcm9sbC4KCjIwMDUtMDUtMzAgMTU6MzQ6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuYzogUmVtb3ZlIG9sZCBwaWVjZXMgb2YgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpOgoJICBSZW1vdmUgb2xkIHBpZWNlcyBvZiBjb2RlCgkgIEZsdXNoaW5nIHRoZSBxdWV1ZSBpbiBhbiB1cHN0cmVhbSBldmVudCBpcyBhIHZlcnkgYmFkIGlkZWEuCgoyMDA1LTA1LTI5IDEzOjU2OjU1ICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkgIGZpbGUgZ3N0c2ltcGxlc2NoZWR1bGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUNPTVBBTlkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHNpbXBsZXNjaGVkdWxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1DT01QQU5ZLgoKMjAwNS0wNS0yNyAwOToyODowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICByZW1vdmUgY29uZmxpY3QgZG9vYmVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGNvbmZsaWN0IGRvb2JlcnMKCjIwMDUtMDUtMjcgMDk6Mjc6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb2xsZWN0KTogVXNlIGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3Qgc28gYXMgdG8gYWRkIGEgcmVmIG9uIHRoZSBvYmplY3QgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfdmFsdWVfbWluaV9vYmplY3RfY29sbGVjdCk6IFVzZQoJICBnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0IHNvIGFzIHRvIGFkZCBhIHJlZiBvbiB0aGUgb2JqZWN0ICh3aGljaAoJICB3aWxsIGJlIHJlbW92ZWQgd2hlbiB0aGUgdmFsdWUgaXMgdW5zZXQpLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCk6IEZpeCBzaWduYWwKCSAgYXJnIHR5cGUgaW4gOjpoYW5kb2ZmLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6IEFsc28gZGVhY3RpdmF0ZQoJICBwYWRzIGluIFJFQURZLT5OVUxMLCBqdXN0IGluIGNhc2UgdGhlIGVsZW1lbnQgZGlkbid0IG1ha2UgaXQgdG8KCSAgUEFVU0VELiBXaW5nbyB0ZXN0ZWQsIFdpbSBhcHByb3ZlZC4KCjIwMDUtMDUtMjYgMTA6NTA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEEgZmx1c2hpbmcgcGFkIGNhbm5vdCBiZSB1c2VkIHRvIGFsbG9jX2J1ZmZlciBmcm9tLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9saW5rKSwgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLAoJICAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKToKCSAgQSBmbHVzaGluZyBwYWQgY2Fubm90IGJlIHVzZWQgdG8gYWxsb2NfYnVmZmVyIGZyb20uCgoyMDA1LTA1LTI2IDEwOjQ4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy4qOiBJbXBsZW1lbnQgYSByZWFsIEdTb3VyY2UgYW5kIHVzZSBnX21haW5fY29udGV4dF93YWtldXAoKSB0byBzaWduYWwgbmV3IG1lc3NhZ2VzIGluc3RlYWQgb2YgdGhlIHNvY2tldHBhaXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19wb3N0KSwKCSAgKGdzdF9idXNfcG9wKSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLAoJICAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLCAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBJbXBsZW1lbnQgYSByZWFsIEdTb3VyY2UgYW5kIHVzZSBnX21haW5fY29udGV4dF93YWtldXAoKSB0bwoJICBzaWduYWwgbmV3IG1lc3NhZ2VzIGluc3RlYWQgb2YgdGhlIHNvY2tldHBhaXIuCgoyMDA1LTA1LTI1IDE5OjMzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IHN0YXRlIGNoYW5nZXMgZm9yIG5vbiBzaW5rcy4gV2Ugbm93IGNoYW5nZSBzaW5rcywgdGhlbiBlbGVtZW50cyB3aXRoIHVuY29ubmVjdGVkIHNyY3BhZHMsIHRoZW4gdGhlIHJlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoaGFzX2FuY2VzdG9yKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChhcHBlbmRfY2hpbGQpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIEZpeCBzdGF0ZSBjaGFuZ2VzIGZvciBub24gc2lua3MuIFdlIG5vdyBjaGFuZ2Ugc2lua3MsIHRoZW4gZWxlbWVudHMKCSAgd2l0aCB1bmNvbm5lY3RlZCBzcmNwYWRzLCB0aGVuIHRoZSByZXN0LgoJICBNb3JlIGVmZmljaWVudCBxdWV1ZSB1bmxvY2tpbmcgaW4gZmx1c2ggYW5kIHN0YXRlIGNoYW5nZXMuCgkgIFNldCB0aGUgcGFkIGFjdGl2YXRlIG1vZGUgZXZlbiBpZiBpdCBkb2VzIG5vdCBoYXZlIGFuIGFjdGl2YXRlCgkgIGZ1bmN0aW9uLgoKMjAwNS0wNS0yNSAxNjowOTozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIGhhcHBpZnkgYnVpbGRib3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhcHBpZnkgYnVpbGRib3QKCjIwMDUtMDUtMjUgMTU6NTc6NTcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgZ28gaW4gcHVsbCBtb2RlIGZvciBub24tc2Vla2FibGUgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICBEb24ndCBnbyBpbiBwdWxsIG1vZGUgZm9yIG5vbi1zZWVrYWJsZSBzb3VyY2VzLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9kaXNwb3NlKSwgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksCgkgIChmcmVlX2VudHJ5KSwgKHN0b3BfdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCksIChmaW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGRvX3B1bGxfdHlwZWZpbmQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEFsbG93IHR5cGVmaW5kaW5nICh3L28gc2Vla2luZykgaW4gcHVzaC1tb2RlLCBzaW1wbGlmaWVkIHZlcnNpb24KCSAgb2Ygd2hhdCB3YXMgaW4gMC44LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2J1ZmZlcl9qb2luKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0X2J1ZmZlcl9qb2luKCkgZnJvbSAwLjguCgoyMDA1LTA1LTI1IDEzOjU5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBEaXNhYmxlIGF0dGVtcHQgYXQgbW9kZSBzd2l0Y2hpbmcgdW50aWwgaXQgaXMgZmlndXJlZCBvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBEaXNhYmxlIGF0dGVtcHQgYXQgbW9kZSBzd2l0Y2hpbmcgdW50aWwgaXQgaXMgZmlndXJlZCBvdXQuCgoyMDA1LTA1LTI1IDExOjUwOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSW1wbGVtZW50IGdzdF9wYWRfcGF1c2Uvc3RhcnQvc3RvcF90YXNrKCksIHRha2UgU1RSRUFNIGxvY2sgaW4gdGFzayBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcGVlayksIChnc3RfYWRhcHRlcl9mbHVzaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2ZpbmlzaF9wcmVyb2xsKSwgKGdzdF9iYXNlc2lua19jaGFpbiksCgkgIChnc3RfYmFzZXNpbmtfbG9vcCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2VzcmNfbG9vcCksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X3JlYWxfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3JlYWxfcGFkX2luaXQpLCAoZ3N0X3JlYWxfcGFkX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcmVhbF9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2lzX2FjdGl2ZSksIChnc3RfcGFkX2dldF9xdWVyeV90eXBlcyksIChnc3RfcGFkX3VubGluayksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9nZXRfcmVhbF9wYXJlbnQpLAoJICAoZ3N0X3JlYWxfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwgKGdzdF9wYWRfcGVlcl9nZXRfY2FwcyksCgkgIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfZ2V0X3BlZXIpLCAoZ3N0X3BhZF9yZWFsaXplKSwKCSAgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksIChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9kaXNwYXRjaGVyKSwgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3JlYWxfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpLCAoaGFuZGxlX3BhZF9ibG9jayksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayksIChnc3RfcGFkX3BhdXNlX3Rhc2spLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2luaXQpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfdGFza19zdGFydCksIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9mdW5jKToKCSAgSW1wbGVtZW50IGdzdF9wYWRfcGF1c2Uvc3RhcnQvc3RvcF90YXNrKCksIHRha2UgU1RSRUFNIGxvY2sKCSAgaW4gdGFzayBmdW5jdGlvbi4KCSAgUmVtb3ZlIEFDVElWRSBwYWQgZmxhZywgdXNlIEZMVVNISU5HIGV2ZXJ5d2hlcmUKCSAgQWRkZWQgX3BhZF9jaGFpbigpLCBfcGFkX2dldF9yYW5nZSgpIHRvIGNhbGwgY2hhaW4vZ2V0cmFuZ2UKCSAgZnVuY3Rpb25zLgoJICBBZGQgbG9ja3MgYXJvdW5kIElTX0ZMVVNISU5HIHdoZW4gcmVhZGluZy4KCSAgVGFrZSBTVFJFQU0gbG9jayBpbiBjaGFpbigpLCBnZXRfcmFuZ2UoKSBmdW5jdGlvbnMgc28gcGx1Z2lucwoJICBkb24ndCBuZWVkIHRvIHRha2UgaXQgYW55bW9yZS4KCjIwMDUtMDUtMjUgMTE6MjY6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFVucmVmIG1lc3NhZ2UgYWZ0ZXIgdXNpbmcgaXRzIGNvbnRlbnRzIGluc3RlYWQgb2YgYmVmb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgVW5yZWYgbWVzc2FnZSBhZnRlciB1c2luZyBpdHMgY29udGVudHMgaW5zdGVhZCBvZgoJICBiZWZvcmUuCgoyMDA1LTA1LTI0IDE2OjQ3OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBEb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWdob3N0cGFkcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIERvY3MgdXBkYXRlcy4KCSAgQWRkZWQgZ2VuZXJhbCBvdmVydmlldyBkb2MuCgkgIEFkZGVkIGRyYWZ0IGdob3N0cGFkIHJlcGxhY2VtZW50IGlkZWEuCgoyMDA1LTA1LTIyIDA0OjI2OjQxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZ3N0L3RtcGwvb2xkLzogSSBkaWRuJ3QgaW50ZW5kIHRvIGFkZCB0aGVzZSBvciBjaGVjayB0aGVtIGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RCaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RCdWZmZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0Q2xvY2suc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3REYXRhLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEV2ZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0SW5kZXguc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RTdHJ1Y3R1cmUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RUYWcuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9jb3RocmVhZHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9jb3RocmVhZHNfY29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ2V0dGV4dC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dvYmplY3QyZ3RrLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3JhbW1hci50YWIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3QtaTE4bi1hcHAuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3QtaTE4bi1saWIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RfcHJpdmF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGFnZ3JlZ2F0b3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhcmNoLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YXRvbWljX2ltcGwuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RidWZmZXJzdG9yZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRhdGFfcHJpdmF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGRpc2tzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGlza3NyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGVsZW1lbnRmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZXh0cmF0eXBlcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZha2VzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmFrZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZkc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZkc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmlsZXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmaWxlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aHR0cHNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGlkZW50aXR5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bWFyc2hhbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG1kNXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtdWx0aWRpc2tzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtdWx0aWZpbGVzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHBpcGVmaWx0ZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzY2hlZHVsZXJmYWN0b3J5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c2VhcmNoZnVuY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzaGFwZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzcGlkZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzcGlkZXJpZGVudGl0eS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHN0YXRpc3RpY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0ZWUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0aW1lY2FjaGUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R0eXBlZmluZGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3R4bWxyZWdpc3RyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2d0aHJlYWQtY290aHJlYWRzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvdHlwZXMuc2dtbDoKCSAgSSBkaWRuJ3QgaW50ZW5kIHRvIGFkZCB0aGVzZSBvciBjaGVjayB0aGVtIGluLgoKMjAwNS0wNS0yMCAxMjo0NzowNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDUtMTkgMTk6NTQ6MDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBVc2UgLW5vLWNvbW1vbiBldmVyeXdoZXJlLiAgSW4gYSBzYW5lIHdvcmxkLCBpdCB3b3VsZCBiZSB0aGUgZGVmYXVsdCBpbiBsaWJ0b29sLCBiZWNhdXNlIHdpdGhvdXQgaXQsIHlvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogVXNlIC1uby1jb21tb24gZXZlcnl3aGVyZS4gIEluIGEgc2FuZSB3b3JsZCwgaXQKCSAgd291bGQgYmUgdGhlIGRlZmF1bHQgaW4gbGlidG9vbCwgYmVjYXVzZSB3aXRob3V0IGl0LCB5b3UgY2FuJ3QKCSAgYnVpbGQgRExMcyBvbiBXaW5kb3dzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IFJlbW92ZSBHc3RDcHUsIEdzdERhdGEsIEdzdFRocmVhZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjcHUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGRhdGEuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRocmVhZC5zZ21sOgoKMjAwNS0wNS0xOSAxOTo0MToxMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC4qOiBBZGQgR1ZhbHVlIHNldC9nZXQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCksCgkgIChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCksIChnc3RfdmFsdWVfZ2V0X21pbmlfb2JqZWN0KToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOiBBZGQgR1ZhbHVlIHNldC9nZXQgZnVuY3Rpb25zLgoKMjAwNS0wNS0xOSAxNjoyNjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2Ugc3ViYnVmZXIgdW5yZWYgdGhlIHBhcmVudCBpbiBmaW5hbGl6ZS4gc29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2luaXQpLCAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3Rfc3ViYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X3N1YmJ1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3Rfc3ViYnVmZmVyX2luaXQpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfcmFuZG9tX3BhZCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpOgoJICBNYWtlIHN1YmJ1ZmVyIHVucmVmIHRoZSBwYXJlbnQgaW4gZmluYWxpemUuCgkgIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMDUtMTkgMTY6MjM6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBmcmVlIHByZXJvbGwgcXVldWUgdG9vIGVhcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2luaXQpLCAoZ3N0X2Jhc2VzaW5rX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgZnJlZSBwcmVyb2xsIHF1ZXVlIHRvbyBlYXJseS4KCjIwMDUtMDUtMTkgMTQ6NTI6MTYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC86IEhpLCBJJ20gb3V0ZGF0ZWQuIFBsZWFzZSBzaG9vdCBtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9ST0FETUFQOgoJICBIaSwgSSdtIG91dGRhdGVkLiBQbGVhc2Ugc2hvb3QgbWUuCgoyMDA1LTA1LTE5IDEyOjA3OjM1ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogRG8gbm90IGFjY2VzcyB2YXJpYWJsZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZGVsZXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIERvIG5vdCBhY2Nlc3MgdmFyaWFibGVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGRlbGV0ZWQuCgoyMDA1LTA1LTE5IDA4OjQxOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQSBwbHVnaW4gZmVhdHVyZSBkb2VzIHVuZm9ydHVuYXRseSBub3QgdXNlIHRoZSBvYmplY3QgbmFtZSB5ZXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9mZWF0dXJlcyk6CgkgIEEgcGx1Z2luIGZlYXR1cmUgZG9lcyB1bmZvcnR1bmF0bHkgbm90IHVzZSB0aGUKCSAgb2JqZWN0IG5hbWUgeWV0Li4uCgoyMDA1LTA1LTE4IDE3OjM1OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBQb3J0IF9zcGFuKCkgZnVuY3Rpb25zIHRvIG5ldyBzdWJidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksIChnc3RfYnVmZmVyX3NwYW4pOgoJICBQb3J0IF9zcGFuKCkgZnVuY3Rpb25zIHRvIG5ldyBzdWJidWZmZXJzLgoKMjAwNS0wNS0xOCAxMzo0OTowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggY2xvY2sgc2V0dGVyeSBpbiBiaW5zIHdoZW4gYWRkaW5nIGtpZHMgYWZ0ZXIgdGhlIGNsb2NrIGhhcyBiZWVuIHNlbGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgRml4IGNsb2NrIHNldHRlcnkgaW4gYmlucyB3aGVuIGFkZGluZyBraWRzIGFmdGVyIHRoZSBjbG9jayBoYXMKCSAgYmVlbiBzZWxlY3RlZC4KCjIwMDUtMDUtMTggMTM6MjM6MjQgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBXb3JrYXJvdW5kIHVudGlsIHNpZ25hbHMgc3VwcG9ydCBHc3RNaW5pT2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgV29ya2Fyb3VuZCB1bnRpbCBzaWduYWxzIHN1cHBvcnQgR3N0TWluaU9iamVjdC4KCjIwMDUtMDUtMTggMTE6MzQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBPb3BzLCBmaXggYSB0eXBvIEdTVF9UWVBFX0JVRkZFUiAtPiBHU1RfVFlQRV9TVUJCVUZGRVIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgT29wcywgZml4IGEgdHlwbyBHU1RfVFlQRV9CVUZGRVIgLT4gR1NUX1RZUEVfU1VCQlVGRkVSLgoKMjAwNS0wNS0xOCAwOTo1NTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlLzogUG9ydGVkIGFuZCBhZGRlZCBhZGFwdGVyIHRvIHRoZSBiYXNlIGNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfYWRhcHRlcl9jbGFzc19pbml0KSwgKGdzdF9hZGFwdGVyX2luaXQpLAoJICAoZ3N0X2FkYXB0ZXJfZGlzcG9zZSksIChnc3RfYWRhcHRlcl9maW5hbGl6ZSksIChnc3RfYWRhcHRlcl9uZXcpLAoJICAoZ3N0X2FkYXB0ZXJfY2xlYXIpLCAoZ3N0X2FkYXB0ZXJfcHVzaCksIChnc3RfYWRhcHRlcl9wZWVrKSwKCSAgKGdzdF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZSksCgkgIChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBQb3J0ZWQgYW5kIGFkZGVkIGFkYXB0ZXIgdG8gdGhlIGJhc2UgY2xhc3Nlcy4KCjIwMDUtMDUtMTcgMTc6NTA6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWZmZWQvdW5yZWZmZWQgb25jZSBiZWZvcmUgdGhyZWFkcyBjYW4gYmUgdXNlZC4gIEZpeGVzICMzMDQ1NTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZmZlZC91bnJlZmZlZCBvbmNlIGJlZm9yZSB0aHJlYWRzIGNhbiBiZQoJICB1c2VkLiAgRml4ZXMgIzMwNDU1MS4KCjIwMDUtMDUtMTcgMTc6Mzc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBEb24ndCBxdWV1ZSBidWZmZXJzIGluIGJhc2VzaW5rIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2ZpbmlzaF9wcmVyb2xsKSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZyZWUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9xdWVyeSksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBxdWV1ZSBidWZmZXJzIGluIGJhc2VzaW5rIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoJICBVbnJlZiBidWZmZXIgd2hlbiBmbHVzaGluZyBpbiBiYXNlc2luay4KCSAgRmx1c2ggcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWQoJICBVbnJlZiBidWZmZXIgd2hlbiBfcHVzaCgpIHJldHVybnMgYW4gZXJyb3IuCgkgIERvbid0IGZyZWUgTWluaU9iamVjdCBpbnN0YW5jZSB3aGVuIHJlZmNvdW50IGlzIGluY3JlbWVudGVkCgkgIGluIF9maW5hbGl6ZSgpIHNvIHRoYXQgd2UgY2FuIHJlY292ZXIgb2JqZWN0cy4KCjIwMDUtMDUtMTcgMTc6MjI6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXNjaGVkdWxlcnMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIGV4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSAgc21hbGwgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBkb2MgZml4ZXMKCjIwMDUtMDUtMTcgMTQ6MTE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDbGVhciBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfc2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcGFkX3B1c2gpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFyIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIFJlbW92ZSBJTl9TRVRDQVBTIGZsYWcgdG9vLgoKMjAwNS0wNS0xNyAxNDowMTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogUmVtb3ZlIGltcGxpY2l0IGNhc3QgZnJvbSBnYm9vbGVhbiB0byBHc3RFbGVtZW50U3RhdGVSZXR1cm47IG1ha2Ugc3VyZSB3ZSBzdGlsbCByZXR1cm4gZmFpbHVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZW1vdmUgaW1wbGljaXQgY2FzdCBmcm9tIGdib29sZWFuIHRvIEdzdEVsZW1lbnRTdGF0ZVJldHVybjsKCSAgbWFrZSBzdXJlIHdlIHN0aWxsIHJldHVybiBmYWlsdXJlIGluIHBhdXNlZCA9PiByZWFkeSBjYXNlIGlmCgkgIHRoZSBwYXJlbnQgY2xhc3MgZmFpbHMgdG8gY2hhbmdlIHN0YXRlIGFuZCBvdXIgb3duIHN0b3AKCSAgdmZ1bmMgc3VjY2VlZHMuCgoyMDA1LTA1LTE3IDEwOjQxOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBNZXNzYWdlIHdhcyB1bnJlZmZlZCB0b28gc29vbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1lc3NhZ2Ugd2FzIHVucmVmZmVkIHRvbyBzb29uLgoKMjAwNS0wNS0xNiAyMToxNzoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IEVyci4uLiB1bS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogRXJyLi4uIHVtLi4uCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X2dob3N0X3BhZHMpOiBOZXcgdGVzdCBmb3IgdGhlCgkgIGdob3N0aW5nLWlmLWVsZW1lbnRzLW5vdC1pbi1zYW1lLWJpbiBiZWhhdmlvci4KCjIwMDUtMDUtMTYgMjE6MDU6MjEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogVXNlIGdfYXRvbWljX2ludF9nZXQoKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyByZWZjb3VudCBkaXJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogVXNlIGdfYXRvbWljX2ludF9nZXQoKSBpbnN0ZWFkIG9mCgkgIGFjY2Vzc2luZyByZWZjb3VudCBkaXJlY3RseS4KCjIwMDUtMDUtMTYgMjA6MjE6NTUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IHJlbW92ZSBHc3REYXRhIGNoZWNrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogcmVtb3ZlIEdzdERhdGEgY2hlY2tzCgkgICogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6IChTVEFSVF9URVNUKTogZml4IGZvciBBUEkgY2hhbmdlcwoJICAqIGdzdC9NYWtlZmlsZS5hbTogYWRkIG1pbmlvYmplY3QsIHJlbW92ZSBkYXRhCgkgICogZ3N0L2dzdC5oOiBhZGQgbWluaW9iamVjdCwgcmVtb3ZlIGRhdGEKCSAgKiBnc3QvZ3N0ZGF0YS5jOiByZW1vdmUKCSAgKiBnc3QvZ3N0ZGF0YS5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmg6IHJlbW92ZQoJICAqIGdzdC9nc3R0eXBlcy5oOiByZW1vdmUgR3N0RXZlbnQgYW5kIEdzdE1lc3NhZ2UKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKTogZml4IGZvciBBUEkgY2hhbmdlcwoJICAqIGdzdC9nc3RtYXJzaGFsLmxpc3Q6IGNoYW5nZSBCT1hFRCAtPiBPQkpFQ1QKCSAgSW1wbGVtZW50IEdzdE1pbmlPYmplY3QuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBNb2RpZnkgdG8gYmUgc3ViY2xhc3NlcyBvZiBHc3RNaW5pT2JqZWN0LgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpLCAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3RfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSksIChfZ3N0X2J1ZmZlcl9jb3B5KSwKCSAgKGdzdF9idWZmZXJfaW5pdCksIChnc3RfYnVmZmVyX25ldyksIChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpLAoJICAoZ3N0X3N1YmJ1ZmZlcl9nZXRfdHlwZSksIChnc3Rfc3ViYnVmZmVyX2luaXQpLAoJICAoZ3N0X2J1ZmZlcl9jcmVhdGVfc3ViKSwgKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwKCSAgKGdzdF9idWZmZXJfc3Bhbik6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5jOiAoX2dzdF9ldmVudF9pbml0aWFsaXplKSwgKGdzdF9ldmVudF9nZXRfdHlwZSksCgkgIChnc3RfZXZlbnRfY2xhc3NfaW5pdCksIChnc3RfZXZlbnRfaW5pdCksIChnc3RfZXZlbnRfZmluYWxpemUpLAoJICAoX2dzdF9ldmVudF9jb3B5KSwgKGdzdF9ldmVudF9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfaW5pdGlhbGl6ZSksCgkgIChnc3RfbWVzc2FnZV9nZXRfdHlwZSksIChnc3RfbWVzc2FnZV9jbGFzc19pbml0KSwKCSAgKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLCAoX2dzdF9tZXNzYWdlX2NvcHkpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cHJvYmUuYzogKGdzdF9wcm9iZV9wZXJmb3JtKSwKCSAgKGdzdF9wcm9iZV9kaXNwYXRjaGVyX2Rpc3BhdGNoKToKCSAgKiBnc3QvZ3N0cHJvYmUuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSksIChnc3RfcXVlcnlfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXJ5X2NsYXNzX2luaXQpLCAoZ3N0X3F1ZXJ5X2ZpbmFsaXplKSwgKGdzdF9xdWVyeV9pbml0KSwKCSAgKF9nc3RfcXVlcnlfY29weSksIChnc3RfcXVlcnlfbmV3KToKCSAgVXBkYXRlIGVsZW1lbnRzIGZvciBHc3REYXRhIC0+IEdzdE1pbmlPYmplY3QgY2hhbmdlcwoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSAgKGdzdF9idWZmZXJfc3RvcmVfYWRkX2J1ZmZlcl9mdW5jKSwKCSAgKGdzdF9idWZmZXJfc3RvcmVfY2xlYXJlZF9mdW5jKSwgKGdzdF9idWZmZXJfc3RvcmVfZ2V0X2J1ZmZlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9tbWFwX2J1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3RfbW1hcF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfbW1hcF9idWZmZXJfaW5pdCksCgkgIChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpLCAoZ3N0X2ZpbGVzcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZXNyY19jcmVhdGVfcmVhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksIChmcmVlX2VudHJ5X2J1ZmZlcnMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlcik6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kcC1wcml2YXRlLmg6CgoyMDA1LTA1LTE1IDIzOjE4OjQwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBEb24ndCBpbmNsdWRlIGhlYWRlcnMgdGhhdCB3ZXJlIGp1c3QgcmVtb3ZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IERvbid0IGluY2x1ZGUgaGVhZGVycyB0aGF0IHdlcmUKCSAganVzdCByZW1vdmVkLgoKMjAwNS0wNS0xNSAyMzoxNjoyOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IFJlbW92ZSBzb21lIGVsZW1lbnRzIHRoYXQgZG9uJ3QgbmVlZCB0byBiZSBpbiB0aGUgY29yZSAob3IgZXZlbiBleGlzdCBhdCBhbGwpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IFJlbW92ZSBzb21lIGVsZW1lbnRzIHRoYXQgZG9uJ3QKCSAgbmVlZCB0byBiZSBpbiB0aGUgY29yZSAob3IgZXZlbiBleGlzdCBhdCBhbGwpLgoJICAqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0cGlwZWZpbHRlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RwaXBlZmlsdGVyLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzaGFwZXIuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmg6CgkgICogcG8vUE9URklMRVMuaW46IFJlbW92ZSBhYm92ZSBmaWxlcy4KCjIwMDUtMDUtMTQgMTg6MDE6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9pdGVyYXRlX3NpbmtzKTogVXNlIHNpbmtfaXRlcmF0b3JfZmlsdGVyIHNvIGFzIHRvIGdldCB0aGUgcmVmcyByaWdodC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBVc2Ugc2lua19pdGVyYXRvcl9maWx0ZXIKCSAgc28gYXMgdG8gZ2V0IHRoZSByZWZzIHJpZ2h0LgoJICAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBOZXcgZnVuY3Rpb24sIHdyYXBzIGJpbl9lbGVtZW50X2lzX3NpbmssCgkgIHVucmVmZmluZyBvYmplY3RzIHRoYXQgZG9uJ3QgcGFzcyB0aGUgZmlsdGVyLgoKMjAwNS0wNS0xNCAxNzoxMjoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogRHJvcCByZWYgb24gYnVzIGFmdGVyIGdzdF9lbGVtZW50X3NldF9idXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfaW5pdCk6IERyb3AgcmVmIG9uIGJ1cyBhZnRlcgoJICBnc3RfZWxlbWVudF9zZXRfYnVzLgoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOiBTZXQgdGhlIGJ1cyBvbiB0aGUgcGlwZWxpbmUgdG8gTlVMTC4gSW4KCSAgbm9ybWFsIGNhc2VzLCB0aGlzIHdpbGwgZGVzdHJveSB0aGUgYnVzLgoJICAqIGdzdC9nc3R1dGlscy5jIChwcmVwYXJlX2xpbmtfbWF5YmVfZ2hvc3RpbmcpOiBEcm9wIHJlZiBvbiByb290CgkgIG9iamVjdC4KCjIwMDUtMDUtMTQgMTU6NTQ6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBGaXggc3RhdGUgY2hhbmdlcyBpZiBhIGJpbiBoYXMgbm8gc2lua3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBGaXggc3RhdGUgY2hhbmdlcyBpZiBhIGJpbgoJICBoYXMgbm8gc2lua3MuCgoyMDA1LTA1LTE0IDE1OjMyOjM2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogSW5zdGVhZCBvZiBjYWxsaW5nIGdzdF9wYWRfbGluaywgY2FsbCBwYWRfbGlua19tYXliZV9naG9zdGluZywKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IEluc3RlYWQgb2YgY2FsbGluZwoJICBnc3RfcGFkX2xpbmssIGNhbGwgcGFkX2xpbmtfbWF5YmVfZ2hvc3RpbmcsCgkgIChwYWRfbGlua19tYXliZV9naG9zdGluZyk6IExpbmtzIHBhZHMsIG1ha2luZyBzdXJlIHRoYXQgdGhlCgkgIGVsZW1lbnRzIGJlaW5nIGxpbmtlZCBhcmUgaW4gdGhlIHNhbWUgYmluLgoJICAoZmluZF9jb21tb25fcm9vdCwgb2JqZWN0X2hhc19hbmNlc3RvciwgZ2hvc3RfdXAsIHJlbW92ZV9wYWQpOgoJICBIZWxwZXJzIGZvciBwYWRfbGlua19tYXliZV9naG9zdGluZy4KCjIwMDUtMDUtMTMgMTI6NTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliID49IDIuNC4wIChmb3IgdGhlIGdfYXRvbWljXyogZnVuY3MpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXF1aXJlIEdMaWIgPj0gMi40LjAgKGZvciB0aGUgZ19hdG9taWNfKiBmdW5jcykKCjIwMDUtMDUtMTMgMTA6MTg6NDEgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGQgbWlzc2luZyAuaCBmaWxlIHRvIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgLmggZmlsZSB0byBzcGVjIGZpbGUKCjIwMDUtMDUtMTMgMDk6Mjc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICBNZW50aW9uIEdzdFB1c2hTcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gR3N0UHVzaFNyYwoKMjAwNS0wNS0xMiAxOTo0NTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IElkZW50aWZ5IHNpbmtzIGJ5IHRoZWlyIGZsYWcgdG8gYXZvaWQgb3Zlcmx5IGNvbXBsaWNhdGVkIGNoZWNrcyAoZm93IG5vdykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX3VubG9jayksCgkgIChnc3RfYmFzZXNyY19pc19zZWVrYWJsZSk6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwKCSAgKGJpbl9lbGVtZW50X2lzX3NpbmspLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBJZGVudGlmeSBzaW5rcyBieSB0aGVpciBmbGFnIHRvIGF2b2lkIG92ZXJseSBjb21wbGljYXRlZAoJICBjaGVja3MgKGZvdyBub3cpLgoJICBEbyBzdGF0ZSBjaGFuZ2VzIGV2ZW4gZm9yIGVsZW1lbnRzIG5vdCByZWFjaGFibGUgZnJvbSB0aGUKCSAgc2lua3MuCgkgIEJhc2VTaW5rIGlzIGEgc2luayBub3cgOikKCSAgU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvIGluIHRoZSBiYXNlc3JjLgoKMjAwNS0wNS0xMiAxNTowOToxNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXBsZW1lbnQgX3F1ZXJ5IG9uIGEgYmluLCBzaW1pbGFyIHRvIF9zZW5kX2V2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEltcGxlbWVudCBfcXVlcnkgb24gYSBiaW4sIHNpbWlsYXIgdG8gX3NlbmRfZXZlbnQuCgoyMDA1LTA1LTEyIDEzOjU5OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEaXNjb250IGV2ZW50IG9mZnNldCBmb3JtYXQgc2hvdWxkIGJlIEdTVF9GT1JNQVRfQllURVMsIG5vdCBHU1RfRk9STUFUX1RJTUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2RvX3NlZWspOgoJICBEaXNjb250IGV2ZW50IG9mZnNldCBmb3JtYXQgc2hvdWxkIGJlIEdTVF9GT1JNQVRfQllURVMsCgkgIG5vdCBHU1RfRk9STUFUX1RJTUUuCgoyMDA1LTA1LTEyIDEzOjE4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTYW1lIGZpeCBhcyBSb25hbGQncyBidXQgd2l0aG91dCB0aGUgc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKToKCSAgU2FtZSBmaXggYXMgUm9uYWxkJ3MgYnV0IHdpdGhvdXQgdGhlIHNpZ25hbC4KCjIwMDUtMDUtMTIgMTI6Mjc6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBObywgYW4gZWxlbWVudCBpcyBub3QgYSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pOgoJICBObywgYW4gZWxlbWVudCBpcyBub3QgYSBwYWQuCgoyMDA1LTA1LTEyIDEyOjE3OjIzICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IElmIGEgY2hpbGQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIHdoaWxlIHdlIHJlbW92ZSB0aGUgY2hpbGQgZnJvbSB0aGUgYmluIGFuZCB3aGlsZSB3ZSdyZSByZXRyaWV2aW5nIGl0cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChjYl9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2Jpbl9nZXRfc3RhdGUpOgoJICBJZiBhIGNoaWxkIGlzIHJlbW92ZWQgZnJvbSBhIGJpbiB3aGlsZSB3ZSByZW1vdmUgdGhlIGNoaWxkIGZyb20KCSAgdGhlIGJpbiBhbmQgd2hpbGUgd2UncmUgcmV0cmlldmluZyBpdHMgc3RhdGUsIHNpZ25hbCB0aGlzIHRvIHRoZQoJICBnZXRfc3RhdGUgZnVuY3Rpb24gc28gd2UgYWJvcnQgdGhlIHdhaXQgKGluc3RlYWQgb2Ygd2FpdGluZyBmb3IKCSAgYSB0aW1lb3V0KSBhbmQgY2FuIGltbWVkaWF0ZWx5IHJlLWl0ZXJhdGUgb3ZlciBhbGwgb3RoZXIgZWxlbWVudHMuCgoyMDA1LTA1LTEyIDEwOjQzOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBBZGRlZCBpc19zZWVrYWJsZSB0byBCYXNlU3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2lzX3NlZWthYmxlKSwKCSAgKGdzdF9iYXNlc3JjX3N0YXJ0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X3B1c2hzcmNfYmFzZV9pbml0KSwgKGdzdF9wdXNoc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1c2hzcmNfaW5pdCksIChnc3RfcHVzaHNyY19jcmVhdGUpOgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgQWRkZWQgaXNfc2Vla2FibGUgdG8gQmFzZVNyYwoJICBBZGRlZCBzaW1wbGUgUHVzaFNyYy4KCjIwMDUtMDUtMTEgMDk6MjE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggcmVmY291bnRpbmcgaW4gdXRpbHMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hZGRfcGFkKSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9saW5rX3BhZHMpLCAoZ3N0X2VsZW1lbnRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnlfY29udmVydCksIChpbnRlcnNlY3RfY2Fwc19mdW5jKSwKCSAgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pLCAoZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KToKCSAgRml4IHJlZmNvdW50aW5nIGluIHV0aWxzIGZ1bmN0aW9uLgoJICBObyBwb2ludCBpbiB0cnlpbmcgdG8gYWN0aXZhdGUgYSBwYWQgd2hlbiBpdCdzIGFkZGVkLCBpdCBjb3VsZAoJICBiZSBhZGRlZCBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gYW5kIHRoZW4gd2UgZGVhZGxvY2ssIHRoZQoJICBlbGVtZW50IGhhcyB0byBkZWNpZGUgd2hhdCB0byBkby4KCjIwMDUtMDUtMTEgMDM6Mzc6MTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfcmVuZGVyKTogRXIsIGVtaXQgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYyAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6IEVyLCBlbWl0IHdpdGgKCSAgKmFsbCogdGhlIGFyZ3VtZW50cy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6IEdyYWIgdGhlCgkgIHN0cmVhbSBsb2NrIGlmIGl0J3MgYSBGTFVTSF9ET05FOyBub3JtYWwgZmx1c2hlcyBkb24ndCBnZXQgdGhlCgkgIGxvY2sgKGFjY29yZGluZyB0byB0aGUgZG9jcyAtLSBpZiB0aGlzIGlzIHdyb25nIGNoYW5nZSB0aGUgZG9jcykuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOiBTZXQgdGhlIGJ1cyB0bwoJICBmbHVzaCBtZXNzYWdlcyBpbiB0aGUgTlVMTCBzdGF0ZS4KCSAgKiBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcG9zdCk6IElmIGEgYnVzIGlzIGZsdXNoaW5nLCB1bnJlZiB0aGUKCSAgbWVzc2FnZSBpbW1lZGlhdGVseSBhbmQgcmV0dXJuLgoJICAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpOiBOZXcgZnVuY3Rpb24uIElmIGEgYnVzIGlzIGZsdXNoaW5nLCBpdAoJICBmbHVzaGVzIG91dCBhbnkgcXVldWVkIG1lc3NhZ2VzIGFuZCBpbW1lZGlhdGVseSB1bnJlZnMgbmV3CgkgIG1lc3NhZ2VzLiBUaGlzIGlzIHNvIHdoZW4gYW4gZWxlbWVudCBnb2VzIHRvIE5VTEwsIGFsbCBvZiB0aGUKCSAgdW5oYW5kbGVkIG1lc3NhZ2VzIGNvbWluZyBmcm9tIGl0IGNhbiBiZSBmcmVlZCwgYW5kIHRoZWlyCgkgIHJlZmVyZW5jZXMgdG8gdGhlIGVsZW1lbnQgZHJvcHBlZC4gSW4gb3RoZXIgd29yZHM6IG1lc3NhZ2Ugc291cmNlCgkgIHJlZiBjb25zaWRlcmVkIGhhcm1mdWwgOlAKCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogVW5yZWYgcGVlciBlbGVtZW50IHdoZW4KCSAgd2UncmUgZmluaXNoZWQgd2l0aCBpdC4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgoyMDA1LTA1LTEwIDE0OjUxOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHJlbW92ZSBzdHVwaWQgcHJpbnRmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3R1cGlkIHByaW50ZgoKMjAwNS0wNS0xMCAxNDo1MDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBBZGRlZCBmbGFncyBzZXJpYWxpemUvZGVzZXJpYWxpemUvY29tcGFyZSBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwKCSAgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIEFkZGVkIGZsYWdzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS9jb21wYXJlIGNvZGUuCgoyMDA1LTA1LTA5IDIxOjM3OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKTogSW50ZXJzZWN0IHRoZSBwZWVyJ3MgY2FwcyB3aXRoIG91ciBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKToKCSAgSW50ZXJzZWN0IHRoZSBwZWVyJ3MgY2FwcyB3aXRoIG91ciBjYXBzLgoKMjAwNS0wNS0wOSAxNTo1NDoyNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0LzogSGFuZGxlIG5lZ2F0aXZlIG9mZnNldHMgYmV0dGVyLiBGaXhlcyBkZWNvZGViaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspOgoJICBIYW5kbGUgbmVnYXRpdmUgb2Zmc2V0cyBiZXR0ZXIuIEZpeGVzIGRlY29kZWJpbi4KCjIwMDUtMDUtMDkgMTQ6NDc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJbXBsZW1lbnQgYWNjZXB0X2NhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KToKCSAgSW1wbGVtZW50IGFjY2VwdF9jYXBzLgoJICBGaXggc2lsbHkgbG9jay91bmxvY2sgbWlzbWF0Y2ggaW4gYmFzZSBjbGFzcy4KCjIwMDUtMDUtMDkgMTA6NTM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBSZW1vdmUgb2xkIHF1ZXJ5IGZ1bmN0aW9ucy4gUG9ydGVkIG9sZCBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIG9sZCBxdWVyeSBmdW5jdGlvbnMuIFBvcnRlZCBvbGQgY29kZS4KCSAgQWRkZWQgcG9zaXRpb24vY29udmVydCBoZWxwZXIgZnVuY3Rpb25zIHRvIGdzdHV0aWxzLgoJICBSZW9yZGVyZWQgZ3N0cGFkLmMgY29kZSwgZ3JvdXBpbmcgcmVsZXZhbnQgdGhpbmdzLgoJICBSZW1vdmUgZ3N0X21lc3NhZ2VfbmV3KCksIGFsd2F5cyBuZWVkIHRvIHNwZWZpY3kgYSBzcGVjaWZpYwoJICBtZXNzYWdlLgoKMjAwNS0wNS0wOSAwNjoyMToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmg6IEFkZCBzb21lIGluY2x1ZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDogQWRkIHNvbWUgaW5jbHVkZXMuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDogSW5jbHVkZSBtb3JlIGhlYWRlcnMuCgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbik6IE5ldyByb3V0aW5lLCByZXBsYWNlcwoJICBzb21lIHVzZXMgb2YgZ3N0X3BhZF9xdWVyeS4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5jOiBCdWlsZCBmaXhlcy4gTWFrZSBwYXJzZSBmdW5jdGlvbnMgaWdub3JlCgkgIE5VTEwgb3V0IHBhcmFtZXRlcnMuCgkgIChnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKTogTmV3IHByb2MsIGFsbG9jYXRlcyBhIG5ldyBwb3NpdGlvbgoJICBxdWVyeS4KCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGxpYmdzdHJlYW1lcl9AR1NUX01BSk9STUlOT1JAX2xhX1NPVVJDRVMpOiBBZGQKCSAgZ3N0cXVlcnl1dGlscy5jIHRvIHRoZSBidWlsZC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCk6IEltcGxlbWVudCB3aXRoCgkgIHRoZSBnZW5lcmljIEdfVkFMVUVfQ09MTEVDVC4KCjIwMDUtMDUtMDggMTc6MDc6MDUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IEFkZGVkIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdCBvZiBoZWFkZXJzIHRvIGluc3RhbGwsIHRoYXQgd2FzIGEgJ25hY2h0eScgbW92ZSB3aW5nbyA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IChnc3RfaGVhZGVycyk6CgkgIEFkZGVkIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdCBvZiBoZWFkZXJzIHRvIGluc3RhbGwsIHRoYXQgd2FzCgkgIGEgJ25hY2h0eScgbW92ZSB3aW5nbyA6KQoKMjAwNS0wNS0wNiAyMTo0MToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHF1ZXJ5LmgKCSAgKiBnc3QvZ3N0cXVlcnkuYyAoX2dzdF9xdWVyeV9pbml0aWFsaXplKTogRXh0ZW5kIEdzdFF1ZXJ5IGZyb20KCSAgR3N0RGF0YSwgaW5pdCBhIG1lbWNodW5rLgoJICAoc3RhbmRhcmRfZGVmaW5pdGlvbnMpOiBBZGQgYSBmZXcgcXVlcnkgdHlwZXMsIGRlcHJlY2F0ZSBhIGZldy4KCSAgKGdzdF9xdWVyeV9nZXRfdHlwZSk6IE5ldyBwcm9jLgoJICAoX2dzdF9xdWVyeV9jb3B5LCBfZ3N0X3F1ZXJ5X2ZyZWUsIGdzdF9xdWVyeV9uZXcpOiBHc3REYXRhCgkgIGltcGxlbWVudGF0aW9uLgoJICAoZ3N0X3F1ZXJ5X25ld19hcHBsaWNhdGlvbiwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUpOiBOZXcgcHVibGljCgkgIHByb2NzLgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDogUmVtb3ZlZCBMSU5LUyBmcm9tIHRoZSBxdWVyeSB0eXBlcywKCSAgYmVjYXVzZSBhbGwgdGhlIHJlc3QgY2FuIGJlIGRpc3BhdGNoZWQgdG8gb3RoZXIgcGFkcyAtLSBzZWVtZWQKCSAgdWdseSB0byBoYXZlIGEgcXVlcnkgdGhhdCBjb3VsZG4ndCBiZSBkaXNwYXRjaGVkLiBpbnRlcm5hbF9saW5rcwoJICBpcyBmaW5lIGFzIGEgcGFkIG1ldGhvZC4KCSAgKiBnc3QvZ3N0cGFkLmg6IEFkZCBxdWVyeTIgYXMgYSBwYWQgbWV0aG9kLCBhZGQgdGhlIG5ldyBmdW5jdGlvbnMKCSAgaW4gZ3N0cGFkLmMsIGJ1dCBtYWludGFpbiBiaW5hcnkgY29tcGF0aWJpbGl0eSBmb3IgdGhlIG1vbWVudC4KCSAgV2lsbCBmaXggYmVmb3JlIDAuOSBpcyBvdXQuCgkgICogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5oOiBOZXcgZmlsZXMsIGltcGxlbWVudCAzIG1ldGhvZHMgZm9yIGVhY2gKCSAgcXVlcnkgdHlwZTogcGFyc2VfcXVlcnksIHBhcnNlX3Jlc3BvbnNlLCBhbmQgc2V0LiBQcm9iYWJseSBuZWVkIGFuCgkgIGFsbG9jYXRvciBhcyB3ZWxsLgoJICAqIGdzdC9nc3QuaDogQWRkIGdzdHF1ZXJ5LmggYW5kIGdzdHF1ZXJ5dXRpbHMuaCB0byB0aGUgbGlzdC4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVzaW5rX3F1ZXJ5Mik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19xdWVyeTIpOiBSZXBsYWNlIG9sZCBxdWVyeSwKCSAgcXVlcnlfdHlwZXMsIGFuZCBmb3JtYXRzIG1ldGhvZHMuCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3F1ZXJ5MiwgZ3N0X3BhZF9xdWVyeTJfZGVmYXVsdCkKCSAgKGdzdF9wYWRfc2V0X3F1ZXJ5Ml9mdW5jdGlvbik6IE5ldyBmdW5jdGlvbnMuCgkgIChnc3RfcmVhbF9wYWRfaW5pdCk6IFNldCBxdWVyeTJfZGVmYXVsdCBhcyB0aGUgZGVmYXVsdCBxdWVyeTIKCSAgZnVuY3Rpb24uIEJhc2ljYWxseSBqdXN0IGRpc3BhdGNoZXMgdG8gaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCSAgTmVlZHMgcmV2aWV3IQoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaCAoX0dTVF9EQVRBX0lOSVQpOiBTZXQgZGF0YS0+cmVmY291bnQgdG8gMQoJICB3aXRob3V0IHVzaW5nIHRoZSBhdG9taWMgb3BlcmF0aW9ucy4gT25seSBvbmUgdGhyZWFkIGNhbiBwb3NzaWJseQoJICBiZSBhY2Nlc3NpbmcgdGhlIGRhdGEgYXQgdGhpcyBwb2ludC4gQ2hhbmdlZCBzbyBhcyB0byBhdm9pZAoJICBnc3RfYXRvbWljIG9wZXJhdGlvbnMuCgoyMDA1LTA1LTA2IDE5OjUwOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBbHNvIHNldCBjYXBzIGlmIHdlIHVzZSB0aGUgZmFsbGJhY2sgYnVmZmVyIGFsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3B1c2gpOgoJICBBbHNvIHNldCBjYXBzIGlmIHdlIHVzZSB0aGUgZmFsbGJhY2sgYnVmZmVyIGFsbG9jLgoKMjAwNS0wNS0wNiAxNzozMzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFB1cmdlIEdzdEF0b21pYyBzdHVmZiBmcm9tIGRvY3MgYW5kIHdpbjMyIG1ha2VmaWxlcyBhcyB3ZWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGF0b21pYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWVtY2h1bmsuc2dtbDoKCSAgKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSAgKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJICAqIHdpbjMyL01ha2VmaWxlOgoJICBQdXJnZSBHc3RBdG9taWMgc3R1ZmYgZnJvbSBkb2NzIGFuZCB3aW4zMiBtYWtlZmlsZXMgYXMgd2VsbAoKMjAwNS0wNS0wNiAxNzoxMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHMoKSwgbWFrZSBpdCByZXR1cm4gTlVMTCBpZiBubyBwZWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2Fwcyk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2dldGNhcHMpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9nZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfZ2V0Y2FwcyksCgkgIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGUpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoaW50ZXJzZWN0X2NhcHNfZnVuYyk6CgkgIEZpeCBnc3RfcGFkX3BlZXJfZ2V0X2NhcHMoKSwgbWFrZSBpdCByZXR1cm4gTlVMTCBpZiBubyBwZWVyLgoJICBBbHdheXMgdGFrZSBRVUVVRV9MT0NLIGFmdGVyIFNUUkVBTV9MT0NLIG9yIHdlIG1pZ2h0IGRlYWRsb2NrLgoJICBTb21lIGZpeGVzIGZvciB0aGUgcGVlcl9nZXRfY2FwcygpIGNoYW5nZS4KCjIwMDUtMDUtMDYgMTY6MTk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBY3R1YWxseSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvciBjb2RlcyByZXR1cm5lZCBmcm9tIHRoZSBwdXNoIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICBBY3R1YWxseSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvciBjb2RlcyByZXR1cm5lZCBmcm9tIHRoZSBwdXNoCgkgIGZ1bmN0aW9ucy4KCjIwMDUtMDUtMDYgMDg6MjU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTb21lIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZXZlbnQpLCAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBTb21lIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgRml4ZWQgc2NoZWR1bGluZyBkZWNpc2lvbiBpbiBfcGFkc19hY3RpdmF0ZSgpLgoKMjAwNS0wNS0wNSAyMTo1OTo1MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBmaW5hbCBjcnVmdCBmaXhhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbmFsIGNydWZ0IGZpeGFnZQoKMjAwNS0wNS0wNSAyMTo0NTo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGNydWZ0IHJlbW92YWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNydWZ0IHJlbW92YWwKCjIwMDUtMDUtMDUgMjE6NDI6MjQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcmV2ZXJ0IGNydWZ0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgY3J1ZnQKCjIwMDUtMDUtMDUgMjE6Mzc6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICByZXZlcnQgYWNjaWRlbnRhbCBjb21taXQgb2YgY3J1ZnQgLS0gZG9oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgYWNjaWRlbnRhbCBjb21taXQgb2YgY3J1ZnQgLS0gZG9oCgoyMDA1LTA1LTA1IDE1OjAyOjQwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0XzJfZWxlbWVudHMpOiAiRml4IiB0aGUgdGVzdCBzdWl0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAodGVzdF8yX2VsZW1lbnRzKTogIkZpeCIKCSAgdGhlIHRlc3Qgc3VpdGUuCgoyMDA1LTA1LTA1IDExOjQzOjA2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IGJyb2tlbiBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBicm9rZW4gc3BlYyBmaWxlCgoyMDA1LTA1LTA1IDA5OjMxOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgb2JqZWN0IHRvIGhlbHAgaW4gbWFraW5nIGNvbGxlY3QgcGFkIGJhc2VkIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2dldF90eXBlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0cGFkc19pbml0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdHBhZHNfbmV3KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19zZXRfZnVuY3Rpb24pLCAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLAoJICAoZmluZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2lzX2FjdGl2ZSksIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdHBhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksIChnc3RfY29sbGVjdHBhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19yZWFkKSwgKGdzdF9jb2xsZWN0cGFkc19mbHVzaCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzaW5rX2dldF90aW1lcyksIChnc3RfZmFrZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2Zha2VzaW5rX3ByZXJvbGwpLCAoZ3N0X2Zha2VzaW5rX3JlbmRlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmlsZXNpbmtfaW5pdCksIChnc3RfZmlsZXNpbmtfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlc2lua19vcGVuX2ZpbGUpLCAoZ3N0X2ZpbGVzaW5rX2Nsb3NlX2ZpbGUpLAoJICAoZ3N0X2ZpbGVzaW5rX3BhZF9xdWVyeSksIChnc3RfZmlsZXNpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVzaW5rX3JlbmRlciksIChnc3RfZmlsZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQWRkZWQgb2JqZWN0IHRvIGhlbHAgaW4gbWFraW5nIGNvbGxlY3QgcGFkIGJhc2VkIGVsZW1lbnRzLgoJICBQb3J0ZWQgZmlsZXNpbmsuCgkgIE1ha2UgZXZlbnQgZnVuY3Rpb24gaW4gc2luayBiYXNlY2xhc3MgcmV0dXJuIGdib29sZWFuLgoKMjAwNS0wNS0wNSAwOToyODowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBuYW1lIGxvb2t1cCBpbiBHc3RCaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2VuZF9ldmVudCksIChjb21wYXJlX25hbWUpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChnc3RfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfY2xvY2tfZmluYWxpemUpOgoJICAqIGdzdC9nc3RkYXRhLmM6IChnc3RfZGF0YV9yZXBsYWNlKToKCSAgKiBnc3QvZ3N0ZGF0YS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwgKGdzdF9wYWRfc3RhcnRfdGFzayksCgkgIChnc3RfcGFkX3BhdXNlX3Rhc2spLCAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKSwgKGdzdF9wYWRfcHJveHlfZ2V0Y2Fwcyk6CgkgIEZpeCBuYW1lIGxvb2t1cCBpbiBHc3RCaW4uCgkgIEFkZGVkIF9kYXRhX3JlcGxhY2UoKSBmdW5jdGlvbiBhbmQgX2J1ZmZlcl9yZXBsYWNlKCkKCSAgVXNlIGZpbmFsaXplIG1ldGhvZCB0byBjbGVhbiB1cCBjbG9jay4KCSAgRml4IHJlZmNvdW50aW5nIG9uIHJlcXVlc3QgcGFkcy4KCSAgRml4IHBhZCBzY2hlZHVsZSBtb2RlIGVycm9yLgoJICBTb21lIG1vcmUgb2JqZWN0IHJlZmNvdW50aW5nIGRlYnVnIGluZm8sCgoyMDA1LTA1LTA0IDIxOjI5OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBHQ0MgNCBmaXhlbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMDQgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGF0b21pYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX3NldF9kYXRhZmxvd19mdW5jcyksCgkgIChnc3RfYmFzZXNyY19xdWVyeSksIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlc3JjX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmFrZXNyY19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZmluZF9lbGVtZW50X2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NhdmVfdGh5c2VsZiksIChnc3RfYmluX3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KSwgKGdzdF9jYXBzX3NhdmVfdGh5c2VsZiksCgkgIChnc3RfY2Fwc19sb2FkX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZiksIChnc3RfZWxlbWVudF9yZXN0b3JlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbG9hZF9hbmRfbGluayksIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksCgkgIChnc3RfZ2hvc3RfcGFkX3NhdmVfdGh5c2VsZiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX3dyaXRlKSwgKGdzdF94bWxfcGFyc2VfZG9jKSwKCSAgKGdzdF94bWxfcGFyc2VfZmlsZSksIChnc3RfeG1sX3BhcnNlX21lbW9yeSksCgkgIChnc3RfeG1sX2dldF9lbGVtZW50KSwgKGdzdF94bWxfbWFrZV9lbGVtZW50KToKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKF9maWxlX2luZGV4X2lkX3NhdmVfeG1sKSwgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKHJlYWRfc3RyaW5nKSwgKHJlYWRfdWludCksCgkgIChyZWFkX2VudW0pLCAobG9hZF9wYWRfdGVtcGxhdGUpLCAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKSwKCSAgKGxvYWRfcGF0aHMpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCk6CgkgICogdG9vbHMvZ3N0LWNvbXBsZXRlLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoeG1sbGF1bmNoX3BhcnNlX2NtZGxpbmUpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXMpOgoJICBHQ0MgNCBmaXhlbi4KCjIwMDUtMDUtMDQgMTk6NDE6MDUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmaWxlIHRvIHdvcmsgZm9yIDAuOSBicmFuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBzcGVjIGZpbGUgdG8gd29yayBmb3IgMC45IGJyYW5jaAoKMjAwNS0wNS0wMyAxMjo0Njo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGFwcGx5IHBhdGNoIGZyb20gIzE3MjUyNiB0byBtYWtlIHJlZ2lzdGVyIHdvcmsgb24gTWFjT1NYCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fY2hlY2tfbW9kdWxlKSwKCSAgKGdzdF9wbHVnaW5fY2hlY2tfZmlsZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIGFwcGx5IHBhdGNoIGZyb20gIzE3MjUyNiB0byBtYWtlIHJlZ2lzdGVyIHdvcmsgb24gTWFjT1NYCgoyMDA1LTA1LTAyIDE2OjUwOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDUtMDIgMTU6MzE6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9pbmRleGR1bXAuYzoKCSAgbW9yZSBwcmludCBmb3JtYXQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgcHJpbnQgZm9ybWF0IGZpeGVzCgoyMDA1LTA1LTAyIDE1OjIwOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvcHJvcGVydHkuaDoKCSAgbWVyZ2VzIGZyb20gMC44IGZvciA2NCBiaXQgaXNzdWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtZXJnZXMgZnJvbSAwLjggZm9yIDY0IGJpdCBpc3N1ZXMKCjIwMDUtMDUtMDIgMTM6NTU6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBkcmFmdCBmb3IgbmV3IHF1ZXJ5IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1xdWVyeS50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc3JjX3N0YXJ0KToKCSAgQWRkZWQgZHJhZnQgZm9yIG5ldyBxdWVyeSBBUEkuCgkgIEFkZGVkIGRyYWZ0IGZvciBiZXR0ZXIgc2VsZWN0aW5nIHNjaGVkdWxpbmcgbWV0aG9kcy4KCSAgTWFrZSBiYXNlc3JjIGlnbm9yZSBsZW5ndGggaWYgdGhlIHN1YmNsYXNzIGRvZXMgbm90IHN1cHBvcnQKCSAgaXQuCgoyMDA1LTA1LTAyIDExOjU0OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBhdXRvbWFrZSAxLjUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9tYWtlIDEuNSBmaXhlcwoKMjAwNS0wNS0wMiAxMTo0NzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9tYW51YWxzLm1hazoKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgcG9zc2libGUgZml4ZXMgZm9yIGF1dG9tYWtlLTEuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcG9zc2libGUgZml4ZXMgZm9yIGF1dG9tYWtlLTEuNQoKMjAwNS0wNC0yOCAxNjoyODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEJldHRlciBkZWJ1Z2dpbmcgb2YgY2xvY2tpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2Rpc2NvbnRfZ2V0X3ZhbHVlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKHBpcGVsaW5lX2J1c19oYW5kbGVyKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X3VubG9ja2VkKToKCSAgQmV0dGVyIGRlYnVnZ2luZyBvZiBjbG9ja2luZyBpbmZvLgoJICBBbGxvdyBOVUxMIHZhbHVlcyB3aGVuIGdldHRpbmcgZGlzY29udCB2YWx1ZXMuCgoyMDA1LTA0LTI3IDE0OjE5OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0LzogSW5jcmVhc2UgdGltZW91dCBmb3IgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKGdzdF9wYWRfc3VpdGUpOgoJICBJbmNyZWFzZSB0aW1lb3V0IGZvciBjaGVja3MuCgoyMDA1LTA0LTI3IDEzOjUyOjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBmaXggdGhlIGJyb2tlbiBydWxlIGZvciBjbGVhbnVwLiAgQXBwYXJlbnRseSB0aGlzIHJ1bGUgaXMgb25seSBuZWVkZWQgb24gRkMyLCBzbyBtYXliZSB0aGlzIHdhcnJhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IHRoZSBicm9rZW4gcnVsZSBmb3IgY2xlYW51cC4gIEFwcGFyZW50bHkgdGhpcyBydWxlIGlzCgkgIG9ubHkgbmVlZGVkIG9uIEZDMiwgc28gbWF5YmUgdGhpcyB3YXJyYW50cyBmdXJ0aGVyIGF1dG90b29sCgkgIGluc3BlY3Rpb24uCgoyMDA1LTA0LTI2IDE4OjA3OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRyYXNoc3RhY2suaDogT29vaGguIGEgbmFzdHkgb25lISBBZnRlciBoYXZpbmcgYSBmYWlsZWQgcG9wKCkgZnJvbSB0aGUgc3RhY2ssIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3RhY2sgaXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkgIE9vb2hoLiBhIG5hc3R5IG9uZSEgQWZ0ZXIgaGF2aW5nIGEgZmFpbGVkIHBvcCgpIGZyb20gdGhlIHN0YWNrLAoJICBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN0YWNrIGlzIGVtcHR5LiBJbiB0aGF0IGNhc2UsIGRvbid0CgkgIGZvbGxvdyB0aGUgTlVMTCBwb2ludGVyLgoKMjAwNS0wNC0yNSAxMzowMDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBnc3RfbGlicmFyeV9sb2FkIGFzIGl0IGRvZXMgbW9yZSBoYXJtIHRoYW4gZ29vZCB3aXRoIHRoZSBuZXcgZ19tb2R1bGUgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwKCSAgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIFJlbW92ZSBnc3RfbGlicmFyeV9sb2FkIGFzIGl0IGRvZXMgbW9yZSBoYXJtIHRoYW4gZ29vZCB3aXRoCgkgIHRoZSBuZXcgZ19tb2R1bGUgZmxhZ3MuCgkgIFJldmVydCBib2d1cyBjYXBzIHRlbXBsYXRlIGNoZWNrIGluIHBhZCBsaW5raW5nLCBwYWQgY2FwcwoJICBhcmUgaW1wb3J0YW50IHdoZW4gbGlua2luZyBub3QgdGhlIHRlbXBsYXRlLCB3aGljaCBpcyBtb3JlCgkgIGdlbmVyYWwgdGhhbiB0aGUgY3VycmVudCBjYXBzLgoKMjAwNS0wNC0yNSAxMTo1MTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgdGhlcmUgaXMgbm8gc3BlZWQuICByZWFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGVyZSBpcyBubyBzcGVlZC4gIHJlYWxseS4KCjIwMDUtMDQtMjUgMDk6NTE6MDYgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9hdXRvcGx1Zy86IERpZSwgc3BpZGVyLCBkaWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvcGx1Zy8uY3ZzaWdub3JlOgoJICAqIGdzdC9hdXRvcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c2VhcmNoZnVuY3MuaDoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlci5oOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5oOgoJICAqIGdzdC9hdXRvcGx1Zy9zcGlkZXJ0ZXN0LmM6CgkgIERpZSwgc3BpZGVyLCBkaWUuCgoyMDA1LTA0LTI1IDA5OjQ1OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC4qOiBBZGRlZCBzdHVicyBmb3IgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLAoJICAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBzdHVicyBmb3IgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuCgoyMDA1LTA0LTI1IDAzOjU0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGZpbGUgcHl0aG9uLWVsZW1lbnRzLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgcHl0aG9uLWVsZW1lbnRzLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMjQgMjM6NTM6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZC5oOiBEaXNhYmxlIHNvbWUgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuICBXaW0sIHBsZWFzZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDogRGlzYWJsZSBzb21lIHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zLiAgV2ltLAoJICBwbGVhc2UgZml4LgoKMjAwNS0wNC0yNCAyMjo0OTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBDb252ZXJ0IGV2ZXJ5dGhpbmcgZnJvbSBHc3RBdG9taWNJbnQgdG8gZ19hdG9taWNfaW50XyosIGFuZCByZW1vdmUgZ3N0YXRvbWljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29udmVydCBldmVyeXRoaW5nIGZyb20gR3N0QXRvbWljSW50IHRvIGdfYXRvbWljX2ludF8qLCBhbmQKCSAgcmVtb3ZlIGdzdGF0b21pYy4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGF0b21pYy5jOgoJICAqIGdzdC9nc3RhdG9taWMuaDoKCSAgKiBnc3QvZ3N0YXRvbWljX2ltcGwuaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkYXRhLmM6CgkgICogZ3N0L2dzdGRhdGEuaDoKCSAgKiBnc3QvZ3N0ZGF0YV9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiBBZGQgZ3N0X2F0b21pY19pbnRfc2V0KCkgY29tcGFpdGliaWxpdHkgZnVuY3Rpb24uCgkgICogZ3N0L2dzdHV0aWxzLmg6CgoyMDA1LTA0LTI0IDIyOjQ0OjEzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RwYWQuYzogT2ggeWVhaCwgaXQncyBhbHdheXMgbmljZSB0byBtYWtlIHRoZSByZWdyZXNzaW9ucyB0ZXN0cyB3b3JrLiAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIG5vIGxvbmdlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChTVEFSVF9URVNUKTogT2ggeWVhaCwgaXQncyBhbHdheXMgbmljZSB0bwoJICBtYWtlIHRoZSByZWdyZXNzaW9ucyB0ZXN0cyB3b3JrLiAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIG5vCgkgIGxvbmdlciB0cnVlLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja190ZW1wbGF0ZXNfY29tcGF0aWJsZV91bmxvY2tlZCk6CgkgIERpc2FibGUgd2FybmluZyBmb3IgcGFkcyB3aXRob3V0IHRlbXBsYXRlcy4KCjIwMDUtMDQtMjQgMjE6MTY6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZW1vdmUgaGFuZGxpbmcgb2YgZmlsdGVyZWQgY2Fwcy4gIEZpeC9tZXJnZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgZmlsdGVyZWQgbGlua3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogUmVtb3ZlIGhhbmRsaW5nIG9mIGZpbHRlcmVkIGNhcHMuICBGaXgvbWVyZ2UKCSAgZnVuY3Rpb25zIHRoYXQgaGFuZGxlIGZpbHRlcmVkIGxpbmtzLgoJICAqIGdzdC9nc3RwYWQuaDogUmVtb3ZlICdhcHBmaWx0ZXInIGZpZWxkIGFuZCBwcm90b3R5cGVzIG9mCgkgIHJlbW92ZWQgZnVuY3Rpb25zLgoJICAqIGdzdC9nc3R1dGlscy5jOiBGaXgvcmVtb3ZlIHV0aWxpdHkgZnVuY3Rpb25zIHRoYXQgaGFuZGxlCgkgIGZpbHRlcmVkIGNhcHMuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6IEFkZCBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbiBvZiBjYXBzCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogSWdub3JlIGZpbHRlcmVkIGNhcHMgd2hlbiBsaW5raW5nLiAgVGhpcwoJICByZXF1aXJlcyBmaXhpbmcgc28gdGhhdCB0aGUgZmlsdGVyIGNhcHMgbm90YXRpb24gY3JlYXRlcwoJICBhIGNhcHNmaWx0ZXIgZWxlbWVudCBhbmQgc2V0cyB0aGUgZmlsdGVyX2NhcHMgcHJvcGVydHkuICBJCgkgIHRoaW5rIGV2ZXJ5b25lIHByb2JhYmx5IHdhbnRzIHRvIGtlZXAgdGhlIHNob3J0aGFuZCBub3RhdGlvbi4KCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDogdXBkYXRlcyBmb3IgQVBJIGNoYW5nZXMuCgkgICogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogUmVnaXN0ZXIgY2Fwc2ZpbHRlciBlbGVtZW50LgoJICAqIGdzdC9NYWtlZmlsZS5hbTogZml4IHNwYWNpbmcKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6IHJhbmRvbQoKMjAwNS0wNC0yMyAyMzoyOTo0NyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZWxlbWVudHMvOiBOZXcgZWxlbWVudCB0aGF0IGFjdHMgbGlrZSBhbiBpZGVudGl0eSwgYnV0IGZpbHRlcnMgY2Fwcy4gIFdpbGwgZXZlbnR1YWxseSByZXBsYWNlIGZpbHRlcmVkIGNhcHMgaW4gcGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IE5ldyBlbGVtZW50IHRoYXQgYWN0cyBsaWtlIGFuCgkgIGlkZW50aXR5LCBidXQgZmlsdGVycyBjYXBzLiAgV2lsbCBldmVudHVhbGx5IHJlcGxhY2UgZmlsdGVyZWQKCSAgY2FwcyBpbiBwYWQgbGlua2luZy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2NyZWF0ZV9hbGxfcGFkcyk6IE5ldyBmdW5jdGlvbgoJICB0byBjcmVhdGUgYWxsIHRoZSBBTFdBWVMgcGFkcyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggYW4KCSAgZWxlbWVudCBjbGFzcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBzaG91bGQgZXZlbnR1YWxseSBiZQoJICBtZXJnZWQgaW4gd2l0aCBHc3RFbGVtZW50IGluaXRpYWxpemF0aW9uLgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRTogcGFydCBvZiB0cmlnZ2VyIHRlc3QgY29kZSB0aGF0IHNob3VsZAoJICBoYXZlIGJlZW4gY2hlY2tlZCBpbiBhIGxvbmcgdGltZSBhZ28uCgoyMDA1LTA0LTIzIDIzOjI1OjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmVtb3ZlIGFzLWxpYnRvb2wgc3R1ZmYuICBJdCdzIGxpa2VseSBub3QgYW5kIGhhcmQgdG8gY2FycnkgYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IFJlbW92ZSBhcy1saWJ0b29sIHN0dWZmLiAgSXQncyBsaWtlbHkgbm90CgkgIG5lZWRlZCB3aXRoIG5ldyB2ZXJzaW9ucyBvZiBsaWJ0b29sIChub2JvZHkgd2lsbCBjb25maXJtIHRoaXMpLAoJICBhbmQgaGFyZCB0byBjYXJyeSBhcm91bmQuCgkgICogZ3N0L2F1dG9wbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL01ha2VmaWxlLmFtOgoKMjAwNS0wNC0yMSAxNzoxMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBNYWtlZmlsZS5hbSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgTWFrZWZpbGUuYW0gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTIxIDA5OjM3OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBTb21lIG1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgIFNvbWUgbW9yZSBkb2NzLgoKMjAwNS0wNC0yMSAwOTozMzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBwYXJlbnQgcmVmY291bnQgaW4gR3N0TWVzc2FnZSB0byBlbnN1cmUgR3N0U3RydWN0dXJlIGNvbnNpc3RlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2NvcHkpLCAoX2dzdF9tZXNzYWdlX2ZyZWUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3KSwgKGdzdF9tZXNzYWdlX25ld19lcnJvciksCgkgIChnc3RfbWVzc2FnZV9uZXdfd2FybmluZyksIChnc3RfbWVzc2FnZV9uZXdfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwgKGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3BhcmVudF9yZWZjb3VudCksCgkgIChnc3Rfc3RydWN0dXJlX2NvcHlfY29uZGl0aW9uYWwpOgoJICBVc2UgcGFyZW50IHJlZmNvdW50IGluIEdzdE1lc3NhZ2UgdG8gZW5zdXJlIEdzdFN0cnVjdHVyZQoJICBjb25zaXN0ZW5jeS4KCSAgQ2xlYW5lZCB1cCBoZWFkZXJzIGEgYml0LgoKMjAwNS0wNC0yMCAwOToxMDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1ha2UgZ3N0X2NhcHNfcmVwbGFjZSgpIHdvcmsgbGlrZSBvdGhlciBfcmVwbGFjZSgpIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbl91bmxvY2tlZCk6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3N1Z2dlc3QpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUpLCAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoc3RvcF90eXBlZmluZGluZyksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGZpbmRfc3VnZ2VzdCksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2dldHJhbmdlKSwgKGRvX3R5cGVmaW5kKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfc3ViX2ZyZWUpLAoJICAoZ3N0X2J1ZmZlcl9kZWZhdWx0X2ZyZWUpLCAoZ3N0X2J1ZmZlcl9kZWZhdWx0X2NvcHkpLAoJICAoZ3N0X2J1ZmZlcl9zZXRfY2Fwcyk6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlZiksIChnc3RfY2Fwc191bnJlZiksCgkgIChnc3RfY2Fwc19yZXBsYWNlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZV9maWx0ZXJlZCksIChnc3RfcGFkX3JlbGlua19maWx0ZXJlZCksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIpOgoJICBNYWtlIGdzdF9jYXBzX3JlcGxhY2UoKSB3b3JrIGxpa2Ugb3RoZXIgX3JlcGxhY2UoKSBmdW5jdGlvbnMuCgkgIFVzZSBfY2Fwc19yZXBsYWNlKCkgd2hlcmUgcG9zc2libGUuCgkgIE1ha2Ugc3VyZSBfbWVzc2FnZV9uZXcoKSBpbml0aWFsaXNlcyBpdHMgZmllbGQuCgkgIEFkZCBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcygpCgoyMDA1LTA0LTE4IDA4OjUzOjAyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBzL0FSR18vUFJPUF8vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBzL0FSR18vUFJPUF8vLgoKMjAwNS0wNC0xOCAwODoyNDozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19zZXRfcHJvcGVydHkpCgkgIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpOiBCTE9DS1NJWkUgaXMgYSBVTE9ORy4gUmVuYW1lIEFSR18uLi4KCSAgdG8gUFJPUF8uLi4uCgoyMDA1LTA0LTE2IDIwOjI3OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE5FV1M6CgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBORVdTIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBORVdTIGJ1aWxkCgoyMDA1LTA0LTE2IDIwOjE2OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZWQgc29tZSBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIHNvbWUgbGluZQoKMjAwNS0wNC0xNiAxNjoyODowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlIHRvIHBrZ2NvbmZpZyBwYXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZSB0byBwa2djb25maWcgcGF0aAoKMjAwNS0wNC0xNCAxNzoxNzozMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9mYXEvdXNpbmcueG1sOiBBZGQgbm90ZSBvbiBnc3RyZWFtZXItcHJvcGVydGllcyAoIzE1NDk5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgQWRkIG5vdGUgb24gZ3N0cmVhbWVyLXByb3BlcnRpZXMgKCMxNTQ5OTYpLgoKMjAwNS0wNC0xMyAxNzo0MToyOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6IFNvbWUgYW5hbHlzaXMgb24gb3B0aW9uYWwgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6CgkgIFNvbWUgYW5hbHlzaXMgb24gb3B0aW9uYWwgcHJvcGVydGllcy4KCjIwMDUtMDQtMTIgMTU6MDA6MzAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIFVzZSBsaWJ4bWwyIGZvciByZWdpc3RyeSBwYXJzaW5nLCB1c2Ugc3RhdGljcGFkdGVtcGxhdGVzIGluIGVsZW1lbnRmYWN0b3JpZXMuIE1ha2VzIGdzdF9pbml0KCkgKy8tIDEweCBmYXN0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY2xlYW51cCksIChnc3RfZWxlbWVudF9yZWdpc3RlciksCgkgIChfX2dzdF9lbGVtZW50X2ZhY3RvcnlfYWRkX3N0YXRpY19wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfc3RhdGljX3BhZF90ZW1wbGF0ZXMpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fc3JjX2NhcHMpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fc2lua19jYXBzKToKCSAgKiBnc3QvcmVnaXN0cmllcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfdHlwZSksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2NsYXNzX2luaXQpLCAoZ3N0X3htbF9yZWdpc3RyeV9pbml0KSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfbmV3KSwgKGdzdF94bWxfcmVnaXN0cnlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Byb3BlcnR5KSwgKGdldF90aW1lKSwgKG1ha2VfZGlyKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfZ2V0X3Blcm1zX2Z1bmMpLAoJICAocGx1Z2luX3RpbWVzX29sZGVyX3RoYW5fcmVjdXJzZSksIChwbHVnaW5fdGltZXNfb2xkZXJfdGhhbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X29wZW5fZnVuYyksIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWRfZnVuYyksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfZnVuYyksIChnc3RfeG1sX3JlZ2lzdHJ5X2Nsb3NlX2Z1bmMpLAoJICAoYWRkX3RvX2NoYXJfYXJyYXkpLCAocmVhZF9zdHJpbmcpLCAocmVhZF91aW50KSwgKHJlYWRfZW51bSksCgkgIChsb2FkX3BhZF90ZW1wbGF0ZSksIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pLCAobG9hZF9wYXRocyksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWQpLCAoZ3N0X3htbF9yZWdpc3RyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfY2FwcyksIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9mZWF0dXJlKSwgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlKSwgKGdzdF94bWxfcmVnaXN0cnlfcmVidWlsZF9yZWN1cnNlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfcmVidWlsZCk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9wYWRfdGVtcGxhdGVzX2luZm8pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9lbGVtZW50X2luZm8pOgoJICBVc2UgbGlieG1sMiBmb3IgcmVnaXN0cnkgcGFyc2luZywgdXNlIHN0YXRpY3BhZHRlbXBsYXRlcyBpbgoJICBlbGVtZW50ZmFjdG9yaWVzLiBNYWtlcyBnc3RfaW5pdCgpICsvLSAxMHggZmFzdGVyLgoKMjAwNS0wNC0xMiAxMDo1Mjo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBBZGRlZCB0eXBlZmluZCBoZWxwZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCB0eXBlZmluZCBoZWxwZXIuCgkgIFNtYWxsIHByZXJvbGwgZml4IGluIHRoZSBiYXNlIHNpbmsuCgkgIERpc2FibGUgdHlwZWZpbmQgY29kZSBpbiBiYXNlc3JjLgoJICBDcnVkZSBwb3J0IG9mIHR5cGVmaW5kZWxlbWVudC4KCSAgRmFrZXNyYyBjbGVhbnVwcy4KCjIwMDUtMDQtMTIgMDk6MTY6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJICBJbmNyZWFzZSB0aW1lb3V0IHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5jcmVhc2UgdGltZW91dCBzb21lIG1vcmUKCjIwMDUtMDQtMTEgMTI6MDI6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBvbmx5IGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9ubHkgZGlycwoKMjAwNS0wNC0xMSAxMTo0MDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMDQtMTEgMTE6MjQ6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEZpeCB1cCB0aGUgdGltZW91dCBzbyB0aGF0IHRoZSB0ZXN0IGRvZXMgbm90IGZhaWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKGdzdGJ1c19zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdGRhdGEuYzogKHRocmVhZF9yZWYpLCAoZ3N0X2RhdGFfc3VpdGUpOgoJICAqIGNoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCB1cCB0aGUgdGltZW91dCBzbyB0aGF0IHRoZSB0ZXN0IGRvZXMgbm90IGZhaWwuCgoyMDA1LTA0LTExIDA5OjUzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSAgZGlzdCB0cmlnZ2VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXN0IHRyaWdnZXIKCjIwMDUtMDQtMTAgMjE6NDI6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCjIwMDUtMDQtMTAgMjA6Mjk6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wNC0xMCAxODoxOToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBpZ25vcmUgYWxyZWFkeSBhcHBsaWVkIHBhdGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgYWxyZWFkeSBhcHBsaWVkIHBhdGNoCgoyMDA1LTA0LTA4IDExOjM0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIGdzdHBhcmVudC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3RwYXJlbnQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMDggMTE6MzQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgZ3N0cGFyZW50Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHBhcmVudC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0wNiAxNzozMDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vcmUgd29yayBvbiB0aGUgZ2VuZXJpYyBzb3VyY2UgYmFzZSBjbGFzcywgaW1wbGVtZW50IHNlZWtpbmcsIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY19nZXRfZm9ybWF0cyksIChnc3RfYmFzZXNyY19xdWVyeSksCgkgIChnc3RfYmFzZXNyY19nZXRfZXZlbnRfbWFzayksIChnc3RfYmFzZXNyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlc3JjX2V2ZW50X2hhbmRsZXIpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZXNyY19sb29wKSwKCSAgKGdzdF9iYXNlc3JjX3VubG9jayksIChnc3RfYmFzZXNyY19nZXRfc2l6ZSksIChnc3RfYmFzZXNyY19zdGFydCksCgkgIChnc3RfYmFzZXNyY19zdG9wKSwgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSksIChiYXNlc3JjX2ZpbmRfcGVlayksCgkgIChiYXNlc3JjX2ZpbmRfc3VnZ2VzdCksIChnc3RfYmFzZXNyY190eXBlX2ZpbmQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9maWxlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2ZpbGVzcmNfaW5pdCksCgkgIChnc3RfZmlsZXNyY19maW5hbGl6ZSksIChnc3RfZmlsZXNyY19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZXNyY19mcmVlX3BhcmVudF9tbWFwKSwgKGdzdF9maWxlc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVzcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZXNyY19jcmVhdGVfbW1hcCksCgkgIChnc3RfZmlsZXNyY19jcmVhdGVfcmVhZCksIChnc3RfZmlsZXNyY19jcmVhdGUpLAoJICAoZ3N0X2ZpbGVzcmNfZ2V0X3NpemUpLCAoZ3N0X2ZpbGVzcmNfc3RhcnQpLCAoZ3N0X2ZpbGVzcmNfc3RvcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIE1vcmUgd29yayBvbiB0aGUgZ2VuZXJpYyBzb3VyY2UgYmFzZSBjbGFzcywgaW1wbGVtZW50IHNlZWtpbmcsCgkgIHF1ZXJ5LgoJICBNYWtlIGZpbGVzcmMgZXh0ZW5kIHRoZSBiYXNlIHNvdXJjZSBjbGFzcy4KCSAgQWRkZWQgZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiB0byBHc3RQYWQuCgoyMDA1LTA0LTA2IDExOjA4OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwa2djb25maWcvOiBOZXcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46IE5ldyBmaWxlcy4KCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjIChBQ19PVVRQVVQpOiBBZGQgZ3N0cmVhbWVyLWJhc2UgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0wNC0wNSAxNzo0MTo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBhZGQgYSBub3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBub3RlCgoyMDA1LTA0LTA1IDA4OjQ0OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFkZSBiYXNlIHNvdXJjZSBjbGFzcywgbWFrZSBmYWtlc3JjIGV4dGVuZCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvUkVBRE1FOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNyY19iYXNlX2luaXQpLCAoZ3N0X2Jhc2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX2dldF9mb3JtYXRzKSwKCSAgKGdzdF9iYXNlc3JjX2dldF9xdWVyeV90eXBlcyksIChnc3RfYmFzZXNyY19xdWVyeSksCgkgIChnc3RfYmFzZXNyY19nZXRfZXZlbnRfbWFzayksIChnc3RfYmFzZXNyY19ldmVudF9oYW5kbGVyKSwKCSAgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlX3VubG9ja2VkKSwgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZXNyY19sb29wKSwgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfY2xhc3NfaW5pdCksIChnc3RfZmFrZXNyY19pbml0KSwKCSAgKGdzdF9mYWtlc3JjX2V2ZW50X2hhbmRsZXIpLCAoZ3N0X2Zha2VzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mYWtlc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZXNyY19jcmVhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlc3JjX2dldHJhbmdlKSwKCSAgKGdzdF9maWxlc3JjX29wZW5fZmlsZSksIChnc3RfZmlsZXNyY19sb29wKSwKCSAgKGdzdF9maWxlc3JjX2FjdGl2YXRlKSwgKGZpbGVzcmNfZmluZF9wZWVrKSwKCSAgKGdzdF9maWxlc3JjX3R5cGVfZmluZCk6CgkgIE1hZGUgYmFzZSBzb3VyY2UgY2xhc3MsIG1ha2UgZmFrZXNyYyBleHRlbmQgaXQuCgkgIEFkZCBjb21tZW50cyB0byBiYXNlc2luayBjbGFzcy4KCSAgU29tZSBmaWxlc3JjIGNsZWFudXAuCgoyMDA1LTA0LTAxIDEwOjE0OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIGFkZCBzdXBwb3J0IGZvciBnb29nbGUgbWFsbG9jIGlmIGF2YWlsYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHN1cHBvcnQgZm9yIGdvb2dsZSBtYWxsb2MgaWYgYXZhaWxhYmxlCgoyMDA1LTA0LTAxIDAyOjQxOjM1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogU3dpdGNoIHRvIHVzaW5nIEdfTU9EVUxFX0JJTkRfTE9DQUwsIHdoaWNoIG1lYW5zIHBsdWdpbnMgYXJlIG5vdyBleHBlY3RlZCB0byBsaW5rIGFnYWluc3QgbGliZ3N0cmVhbWVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2NoZWNrX2ZpbGUpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBTd2l0Y2ggdG8gdXNpbmcgR19NT0RVTEVfQklORF9MT0NBTCwgd2hpY2ggbWVhbnMgcGx1Z2lucyBhcmUgbm93CgkgIGV4cGVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIuCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06IHNhbWUKCjIwMDUtMDMtMzEgMTU6MDA6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2luc3RhbnRpYXRlLzogQWRkIHRlc3QgdG8gdGVzdCBzcGVlZCBvZiBjYXBzIGNvcHkgYW5kIGZyZWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTMxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NhcHMuYzogQWRkIHRlc3QgdG8gdGVzdCBzcGVlZCBvZiBjYXBzIGNvcHkKCSAgYW5kIGZyZWUuCgkgICogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jIChtYWluKTogVXNlIGFsbG9jIG9ubHkgb24gdGhlCgkgIEdNZW1DaHVuayB0byBiZSBmYWlyLgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmg6IFJlbW92ZSB3YXJuaW5nIGFib3V0IHVzaW5nIHRoZSBmYWxsYmFjawoJICB0cmFzaCBzdGFjayBpbXBsZW1lbnRhdGlvbiwgaXQncyBzdGlsbCBmYXN0ZXIgdGhhbiBtYWxsb2MuCgoyMDA1LTAzLTMxIDEwOjEwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIHRyYW5zZm9ybSBiYXNlIGNsYXNzIHNvIHN1YmNsYXNzZXMgZG9uJ3QgbmVlZCB0byBkZWFsIHdpdGggc3RhdGUgY2hhbmdlcyBldmVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYmFzZV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfZXZlbnQpLCAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybSksIChnc3RfaWRlbnRpdHlfc3RhcnQpLAoJICAoZ3N0X2lkZW50aXR5X3N0b3ApOgoJICBBZGRlZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gdHJhbnNmb3JtIGJhc2UgY2xhc3Mgc28gc3ViY2xhc3NlcwoJICBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBzdGF0ZSBjaGFuZ2VzIGV2ZW4uCgoyMDA1LTAzLTMxIDEwOjEwOjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmM6CgkgIGFkZCBwZXItdGhyZWFkIHN0YXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcGVyLXRocmVhZCBzdGF0cwoKMjAwNS0wMy0zMSAwOTo0NjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIHJhdGUgdG8gdGhlIGRpc2NvbnQgZXZlbnQgdG8gcHJlcGFyZSBmb3IgdmFyaWFibGUgc3BlZWQgYW5kIHJldmVyc2UgcGxheWJhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19kaXNjb250aW51b3VzX3ZhbGlzdCksCgkgIChnc3RfZXZlbnRfbmV3X2Rpc2NvbnRpbnVvdXMpLCAoZ3N0X2V2ZW50X2Rpc2NvbnRfZ2V0X3ZhbHVlKToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgQWRkZWQgcmF0ZSB0byB0aGUgZGlzY29udCBldmVudCB0byBwcmVwYXJlIGZvciB2YXJpYWJsZSBzcGVlZAoJICBhbmQgcmV2ZXJzZSBwbGF5YmFjay4KCjIwMDUtMDMtMzAgMTQ6MDk6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgQ29tbWl0IG1lbSBjaHVuayB0ZXN0OyBwcm9iYWJseSB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb21taXQgbWVtIGNodW5rIHRlc3Q7IHByb2JhYmx5IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KCjIwMDUtMDMtMzAgMDM6NTc6MzkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgQSBsaXR0bGUgZXhhbXBsZSBwcm9ncmFtIHRvIHNob3cgaG93IHRyaWdnZXItYmFzZWQgZWxlbWVudHMgY2FuIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6IEEgbGl0dGxlIGV4YW1wbGUgcHJvZ3JhbSB0byBzaG93CgkgIGhvdyB0cmlnZ2VyLWJhc2VkIGVsZW1lbnRzIGNhbiB3b3JrLgoKMjAwNS0wMy0yOSAxNjoxODoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFNpbXBsaWZ5IHBhZCBhY3RpdmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNpbmtfYmFzZV9pbml0KSwgKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19wYWRfZ2V0Y2FwcyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLCAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3R5cGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2Jhc2VfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2ZpbmFsaXplKSwKCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwgKGdzdF9pZGVudGl0eV9pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9ldmVudCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBTaW1wbGlmeSBwYWQgYWN0aXZhdGlvbi4KCSAgQWRkZWQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgcHVsbF9yYW5nZSBjYW4gYmUgcGVyZm9ybWVkLgoJICBFcnJvciBvdXQgd2hlbiBwdWxsaW5nIGluYWN0aXZlIG9yIGZsdXNoaW5nIHBhZHMuCgkgIFJlbW92ZWQgY29uc3QgZnJvbSByZWZjb3VudGVkIHR5cGVzIGFzIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UuCgkgIFNpbXBsaWZ5IHBhZCB0ZW1wbGF0ZXMgaW4gYmFzZXNpbmsKCSAgQWRkZWQgYmFzZSBjbGFzcyBmb3Igc2ltcGxlIDEtdG8tMSB0cmFuc2Zvcm1zLgoJICBNYWtlIGlkZW50aXR5IHN1YmNsYXNzIHRoZSBiYXNlIHRyYW5zZm9ybS4KCjIwMDUtMDMtMjkgMTQ6MzQ6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvOiBBZGQgdGhlc2UgZmlsZXMgdG8gQ1ZTLiBOb3cgSSByZWFsbHkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24sIGJ1dCBsaWtlIHdoYXRldmVyLiBJIHdhbnQgZ3JlZW4gYnVpbGRib3QhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1vdmVycmlkZXMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1vdmVycmlkZXMudHh0OiBBZGQgdGhlc2UgZmlsZXMgdG8gQ1ZTLiBOb3cgSQoJICByZWFsbHkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24sIGJ1dCBsaWtlIHdoYXRldmVyLiBJIHdhbnQKCSAgZ3JlZW4gYnVpbGRib3QhCgoyMDA1LTAzLTI5IDE0OjEyOjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzLzogRGlzdCB0aGUgb3ZlcnJpZGVzIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06IERpc3QgdGhlIG92ZXJyaWRlcyBmaWxlcy4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2xlYW4tbG9jYWwpOiBSZW1vdmUgLmxpYnMgZGlyZWN0b3JpZXMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGFsbCB0aGUgYXR0aWMKCSAgZWxlbWVudHMgdG8gRVhUUkFfRElTVCwgc28gcG8vIGZpbGVzIGFyZSBoYXBweS4KCjIwMDUtMDMtMjkgMTM6MTA6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBvL1BPVEZJTEVTOiBSZW1vdmUgZ3N0c3BpZGVyLmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBvL1BPVEZJTEVTOiBSZW1vdmUgZ3N0c3BpZGVyLmMuCgkgICogY29uZmlndXJlLmFjIChBQ19PVVRQVVQpOiBBZGQgbWlzc2luZyB0ZXN0c3VpdGUgbWFrZWZpbGVzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogUmVtb3ZlIHRoZSBzZWN0aW9uIG9uCgkgIGJ5dGVzdHJlYW0uCgkgICogdGVzdHMvY29tcGxleGl0eS5jIChtYWluKTogU2V0IHRoZSBsZW5ndGggb2YgdGhlIHByZXJvbGwgcXVldWUKCSAgb24gdGhlIHNpbmtzIHRvIHByZXZlbnQgYSBsb2NrdXAuCgoyMDA1LTAzLTI5IDExOjM5OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvOiBSZW1vdmUgdGVzdCwgaXQncyB0aGUgc2FtZSBhcyB0aGUgb25lIGluIGNoZWNrL2dzdC1saWJzL2dkcC5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC10ZXN0LmM6IFJlbW92ZSB0ZXN0LCBpdCdzCgkgIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4gY2hlY2svZ3N0LWxpYnMvZ2RwLmMuCgoyMDA1LTAzLTI5IDEwOjU1OjM5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBwby8sIGRvY3MvZ3N0LzogQ29tbWl0IGF1dG9tYXRpYyBjaGFuZ2VzIHRvIGRvY3MgYW5kIHBvIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMy0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwby8sIGRvY3MvZ3N0LzogQ29tbWl0IGF1dG9tYXRpYyBjaGFuZ2VzIHRvIGRvY3MgYW5kIHBvIGZpbGVzLgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbSAobGliZ3N0ZWxlbWVudHNfbGFfTERGTEFHUyk6IExpbmsgdG8KCSAgdGhlIHZlcnNpb25lZCBsaWJnc3RiYXNlLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiBEZXBlbmQgb24gYW4gdW52ZXJzaW9uZWQgZ3N0LXJlZ2lzdGVyLCBzZWVtcwoJICB0byBtYWtlIGF1dG9jb25mIGhhcHBpZXIuCgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06IE1ha2UgbGliZ3N0YmFzZSBhIHZlcnNpb25lZCBsaWIuCgoyMDA1LTAzLTI4IDE0OjU0OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlL1JFQURNRToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9SRUFETUU6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkZWQgc3RhdGUgY2hhbmdlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBzdGF0ZSBjaGFuZ2UgY29kZS4KCSAgQWRkZWQvdXBkYXRlZCBkb2NzLgoJICBBZGRlZCBzaW5rIGJhc2UgY2xhc3MsIG1ha2UgZmFrZXNpbmsgZXh0ZW5kIHRoZSBiYXNlIGNsYXNzLgoJICBTbWFsbCBjbGVhbnVwcyBpbiBHc3RQaXBlbGluZS4KCjIwMDUtMDMtMjYgMjI6MDc6NTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgZ3N0Y3B1LltjaF0uICBUaGUgZ3N0X2NwdSBmdW5jdGlvbmFsaXR5IGlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogcmVtb3ZlIGdzdGNwdS5bY2hdLiAgVGhlIGdzdF9jcHUgZnVuY3Rpb25hbGl0eQoJICBpcyBicm9rZW4gYW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCBsaWJyYXJ5LgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6IGRvbid0IGNhbGwgX2dzdF9jcHVfaW5pdGlhbGl6ZSgpCgkgICogZ3N0L2dzdC5oOiByZW1vdmUgZ3N0Y3B1LmgKCSAgKiBnc3QvZ3N0Y3B1LmM6IHJlbW92ZQoJICAqIGdzdC9nc3RjcHUuaDogcmVtb3ZlCgkgICogZ3N0L01ha2VmaWxlLmFtLmZ1dHVyZTogUmVtb3ZlIHRoaXMgZmlsZS4gIEl0J3MgYW5jaWVudC4KCjIwMDUtMDMtMjUgMDk6NTc6NDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogQWRkIGRlZmF1bHQgZXZlbnQvc2V0X21hbmFnZXIgaGFuZGxlcnMuIFRoZSBzZXRfbWFuYWdlciBoYW5kbGVyIHRha2VzIGNhcmUgdGhhdCB0aGUgbWFuYWdlciBpcyBkaXN0cmlidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9zZXRfbWFuYWdlciksCgkgIChnc3RfYmluX3NlbmRfZXZlbnQpOgoJICBBZGQgZGVmYXVsdCBldmVudC9zZXRfbWFuYWdlciBoYW5kbGVycy4gVGhlIHNldF9tYW5hZ2VyIGhhbmRsZXIKCSAgdGFrZXMgY2FyZSB0aGF0IHRoZSBtYW5hZ2VyIGlzIGRpc3RyaWJ1dGVkIG92ZXIga2lkcyB0aGF0IHdlcmUKCSAgYWxyZWFkeSBpbiB0aGUgYmluIGJlZm9yZSB0aGUgbWFuYWdlciB3YXMgc2V0LiBUaGUgZXZlbnQgaGFuZGxlcgoJICBpcyBhIHV0aWxpdHkgdmlydHVhbCBmdW5jdGlvbiB0aGF0IHNlbmRzIHRoZSBldmVudCBvdmVyIGFsbCBzaW5rcywKCSAgc28gdGhhdCBnc3RfZWxlbWVudF9zZW5kX2V2ZW50IChiaW4sIGV2ZW50KTsgaGFzIHRoZSBleHBlY3RlZAoJICBiZWhhdmlvdXIuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0KToKCSAgUmUtaW5zdGFsbCBkZWZhdWx0IGV2ZW50IGhhbmRsaW5nIGZvciBkaXNjb250aW51aXRpZXMsIHNvIHRoYXQKCSAgc2Vla2luZyB3b3JrcyB3aXRob3V0IHJlcXVpcmluZyBoYWNrcyBpbiBhcHBsaWNhdGlvbnMgb3IgZXh0cmEKCSAgY29kZSBpbiBzaW5rcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgSGFsZiBoYWNrLCBoYWxmIHV0aWxpdHk6IHNldCBhIHBpcGVsaW5lIHRvIFBBVVNFRCBmb3Igc2VlayBldmVudHMsCgkgIHNpbmNlIHRoYXQgaXMgdGhlIG9ubHkgd2F5IHdlIGNhbiBndWFyYW50ZWUgYS92IHN5bmMuIE1lYW5zIHRoYXQKCSAgeW91IGNhbiBkbyBnc3RfZWxlbWVudF9zZWVrIChwaXBlbGluZSwgbWV0aG9kLCBwb3MpOyBvbiBhIHBpcGVsaW5lCgkgIGFuZCBpdCAianVzdCB3b3JrcyIuCgoyMDA1LTAzLTI1IDA5OjM1OjAxICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogTG9jay91bmxvY2sgbWlzbWF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3VzZV9jbG9jayk6CgkgIExvY2svdW5sb2NrIG1pc21hdGNoLgoKMjAwNS0wMy0yNSAwMDozNTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtcGx1Z2lucy1iYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZXJyb3Igb3V0IHVudGlsIGRvY3MgYXJlIGZpeGVkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICByZW1vdmUgdGhyZWFkCgoyMDA1LTAzLTIyIDE0OjIzOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWN0aXZhdGVkIG1vcmUgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChTVEFSVF9URVNUKSwgKGdzdF9kYXRhX3N1aXRlKSwgKG1haW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdCksCgkgIChnc3Rfc3RydWN0dXJlX2NvcHlfY29uZGl0aW9uYWwpOgoJICBBY3RpdmF0ZWQgbW9yZSB0ZXN0cy4KCSAgQWRkZWQgbWVzc2FnZSB0ZXN0LgoJICBBZGRlZCBHX1RZUEVfUE9JTlRFUiB0byBHc3RTdHJ1Y3R1cmUuCgoyMDA1LTAzLTIyIDExOjMyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jcyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIERvY3MgdXBkYXRlcwoKMjAwNS0wMy0yMSAxODoxNzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRml4IGNvcHktYW5kLXBhc3RlIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBGaXggY29weS1hbmQtcGFzdGUgZXJyb3IuCgoyMDA1LTAzLTIxIDE3OjM0OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZGF0YS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3Rwcm9iZS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHF1ZXVlLmg6CgkqIGdzdC9nc3RzY2hlZHVsZXIuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2ludGVyZmFjZS5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L2dzdHRocmVhZC5oOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9zY2hlZHVsZXJzL2NvdGhyZWFkc19jb21wYXQuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZW50cnlzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcmNvdGhyZWFkcy5jOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9ndGhyZWFkLWNvdGhyZWFkcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2ZpbGVwYWQuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL21hc3NfZWxlbWVudHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIE5leHQgYmlnIG1lcmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTmV4dCBiaWcgbWVyZ2UuCgkgIEFkZGVkIEdzdEJ1cyBmb3IgbWFpbmxvb3AgaW50ZWdyYXRpb24uCgkgIEFkZGVkIEdzdE1lc3NhZ2UgZm9yIHNlbmRpbmcgbm90aWZpY2F0aW9ucyBvbiB0aGUgYnVzLgoJICBBZGRlZCBHc3RUYXNrIGFzIGFuIGFic3RyYWN0aW9uIGZvciBwaXBlbGluZSBlbnRyeSBwb2ludHMuCgkgIFJlbW92ZWQgR3N0VGhyZWFkLgoJICBSZW1vdmVkIFNjaGVkdWxlcnMuCgkgIFNpbXBsaWZpZWQgR3N0UXVldWUgZm9yIG11bHRpdGhyZWFkZWQgY29yZS4KCSAgTWFkZSBfbGluayB0aHJlYWRzYWZlLCByZW1vdmVkIG9sZCBjYXBzbmVnby4KCSAgQWRkZWQgU1RSRUFNX0xPQ0sgYW5kIFBSRVJPTExfTE9DSyBpbiBHc3RQYWQuCgkgIEFkZGVkIHBhZCBibG9ja2luZyBmdW5jdGlvbnMuCgkgIFJld29ya2VkIHNjaGVkdWxpbmcgZnVuY3Rpb25zIGluIEdzdFBhZCB0byBwcmVwYXJlIGZvcgoJICBzY2hlZHVsaW5nIHVwZGF0ZXMgc29vbi4KCSAgTW92ZWQgZXZlbnRzIG91dCBvZiBkYXRhIHN0cmVhbS4KCSAgU2ltcGxpZmllZCBHc3RFdmVudCB0eXBlcy4KCSAgQWRkZWQgcmV0dXJuIHZhbHVlcyB0byBwdXNoL3B1bGwuCgkgIFJlbW92ZWQgY2xvY2tpbmcgZnJvbSBHc3RFbGVtZW50LgoJICBBZGRlZCBwcm90b3R5cGVzIGZvciBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZm9yIG5leHQgbWVyZ2UuCgkgIFJlbW92ZWQgaXRlcmF0ZSBmcm9tIGJpbnMgYW5kIHN0YXRlIGNoYW5nZSBtYW5hZ2VtZW50LgoJICBGaXhlZCBzb21lIGVsZW1lbnRzLCBkaXNhYmxlZCBvdGhlcnMgZm9yIG5vdy4KCSAgRml4ZWQgLWluc3BlY3QgYW5kIC1sYXVuY2guCgkgIEFkZGVkIGNoZWNrIGZvciBHc3RCdXMuCgoyMDA1LTAzLTEwIDEyOjUxOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMi5jOiAoZ3N0X2Nsb2NrX2RlYnVnKSwgKGVsZW1lbnRfd2FpdCksCgkgIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzogKGRvX3Rlc3QpOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9iaW4uYzogKGFkZF9yZW1vdmVfdGVzdDEpLAoJICAoYWRkX3JlbW92ZV90ZXN0MiksIChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvcGFkLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChzaWdpbnRfaGFuZGxlcl9zaWdoYW5kbGVyKToKCSAgKiB0b29scy9nc3QtdHlwZWZpbmQuYzogKG1haW4pOgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgZG9jIGFib3V0IGNsb2NrLgoJICByZW1vdmVkIGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlX3VwKCksIG1hcmtlZCBtZXRob2RzCgkgIGZvciByZW1vdmFsLgoJICBGaXggbW9yZSB0ZXN0c3VpdGVzLgoKMjAwNS0wMy0wOSAxNzoyODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBfcGFkX2dldF9kaXJlY3Rpb24gd3J0IGdob3N0cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfZGlyZWN0aW9uKSwKCSAgKF9nc3RfcGFkX2RlZmF1bHRfZml4YXRlX2ZvcmVhY2gpLCAoZ3N0X3BhZF9jb2xsZWN0diksCgkgIChnc3RfcGFkX2NvbGxlY3RfdmFsaXN0KToKCSAgKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzogKHRlc3RfY2Fwcyk6CgkgICogdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOiAodGVzdDEpLCAodGVzdDIpLCAodGVzdDMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0Mi5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOiAobXlfZml4YXRlKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3NldHMuYzogKGNoZWNrX2NhcHMpOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3NpbXBsaWZ5LmM6IChjaGVja19jYXBzKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3N1YnRyYWN0LmM6IChjaGVja19jYXBzKToKCSAgRml4IF9wYWRfZ2V0X2RpcmVjdGlvbiB3cnQgZ2hvc3RwYWRzLgoJICBGaXggY2FwcyB0ZXN0c3VpdGUuCgoyMDA1LTAzLTA5IDE2OjEwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZW50cnlzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkgIEFkZGVkIEdzdEJpbiB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgR3N0QmluIHRlc3QuCgkgIEFkZGVkIEdzdFN5c3RlbUNsb2NrIHRlc3QuCgkgIEltcGxlbWVudGVkIGNsb2NrIGRpc3RyaWJ1dGlvbiBjb2RlIGluIEdzdEJpbi4KCSAgSW1wbGVtZW50ZWQgaXRlcmF0ZSBzaW5rcyBtZXRob2QgZm9yIGZ1dHVyZSB1c2UuCgkgIFJlYXJyYW5nZWQgZ3N0ZWxlbWVudC5oCgkgIEZpeCBHc3RJdGVyYXRvciBjb21wYXJpc29uIGJ1Zy4KCSAgTW92ZWQgc29tZSBjb2RlIHRvIEdzdFBpcGVsaW5lLCBtb3N0bHkgY2xvY2tpbmcgcmVsYXRlZC4KCjIwMDUtMDMtMDkgMTE6MDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBCdW1wIHZlcnNpb24gbnVtYmVyLCB3ZSdyZSBub3cgMC45LjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9hZGQpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlbW92ZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lX3JlY3Vyc2VfdXApOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3JlZiksIChnc3RfY2xvY2tfaWRfdW5yZWYpLAoJICAoZ3N0X2Nsb2NrX2lkX2NvbXBhcmVfZnVuYyksIChnc3RfY2xvY2tfaWRfd2FpdCksCgkgIChnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyksIChnc3RfY2xvY2tfaW5pdCksCgkgIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwgKGdzdF9jbG9ja19nZXRfdGltZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9wYWRfZGVmYXVsdF9maXhhdGVfZm9yZWFjaCksCgkgIChnc3RfcGFkX2NvbGxlY3R2KSwgKGdzdF9wYWRfY29sbGVjdF92YWxpc3QpLCAoZ3N0X3BhZF9xdWVyeSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyLCB3ZSdyZSBub3cgMC45LjAKCSAgQWRkIGZ1dHVyZSBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgkgIEZpeCBOVUxMIF91bnJlZigpIGluIF9nZXRfYnlfbmFtZV9yZWN1cnNlX3VwCgkgIFJlYXJyYW5nZSBnc3RwYWQuaC4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDUtMDMtMDggMTc6NDI6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdGJhc2ljc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2dzdG9wdGltYWxzY2hlZHVsZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RhZ2dyZWdhdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aWZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNoYXBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgUmVtb3ZlIHRocmVhZHNhZmUgcHJvcGVydGllcy4gRml4IGVsZW1lbnRzIGJlY2F1c2UgR09iamVjdCBjb21wbGFpbnMgd2hlbiBpbnN0YWxsaW5nIGEgcHJvcGVydHkgYmVmb3JlIGRlY2xhcmluZyBhIHNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgdGhyZWFkc2FmZSBwcm9wZXJ0aWVzLiBGaXggZWxlbWVudHMgYmVjYXVzZSBHT2JqZWN0CgkgIGNvbXBsYWlucyB3aGVuIGluc3RhbGxpbmcgYSBwcm9wZXJ0eSBiZWZvcmUgZGVjbGFyaW5nIGEKCSAgc2V0L2dldF9wcm9wZXJ0eSBoYW5kbGVyLgoJICBSZWFycmFuZ2UgZ3N0ZWxlbWVudC5oIGZpbGUsIHVzZSBTVEFURSBtYWNyb3MgZm9yIHN0YXRlIGxvY2tzLgoJICBGcmVlIG11dGV4ZXMgaW4gdGhlIGZpbmFsaXplIG1ldGhvZCBpbnN0ZWFkIG9mIGRpc3Bvc2UuCgoyMDA1LTAzLTA4IDE1OjU3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgcGFyZW50YWdlIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChTVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICAqIGdzdC9nc3R0aHJlYWQuYzogKGdzdF90aHJlYWRfcmVsZWFzZV9jaGlsZHJlbl9sb2Nrcyk6CgkgIEFkZGVkIHBhcmVudGFnZSBjaGVjay4KCSAgRml4IGJ1aWxkIG9nIEdzdFRocmVhZCBhZ2Fpbi4KCjIwMDUtMDMtMDggMTQ6Mzg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIHVwZGF0ZXMsIGNsZWFuIHVwIHNvbWUgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKSwgKGdzdF9iaW5faXRlcmF0ZV9yZWN1cnNlKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWUpLCAoZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9sb29wX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKSwgKGdzdF9vYmplY3Rfc2luayksIChnc3Rfb2JqZWN0X2Rpc3Bvc2UpLAoJICAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpLCAoZ3N0X29iamVjdF9zZXRfbmFtZSksCgkgIChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpLCAoZ3N0X29iamVjdF91bnBhcmVudCksCgkgIChnc3Rfb2JqZWN0X2NoZWNrX3VuaXF1ZW5lc3MpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jcyB1cGRhdGVzLCBjbGVhbiB1cCBzb21lIGhlYWRlcnMuCgkgIEZyZWUgaXRlcmF0b3JzIGluIEdzdEJpbi4KCSAgR3N0T2JqZWN0IGlzIG5vdyBsb29raW5nIGdvb2QuCgoyMDA1LTAzLTA3IDE4OjMzOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBBZGRlZCBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrLy5jdnNpZ25vcmU6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0LWxpYnMvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChwb3VuZF9idXNfd2l0aF9tZXNzYWdlcyksIChwdWxsX21lc3NhZ2VzKSwKCSAgKFNUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RkYXRhLmM6IChTVEFSVF9URVNUKSwgKHRocmVhZF9yZWYpLCAodGhyZWFkX3VucmVmKSwKCSAgKGdzdF9kYXRhX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAobWFrZV9saXN0X29mX2ludHMpLCAoU1RBUlRfVEVTVCksCgkgIChhZGRfZm9sZF9mdW5jKSwgKGdzdGl0ZXJhdG9yX3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKGdzdF9mYWtlX29iamVjdF9nZXRfdHlwZSksIChTVEFSVF9URVNUKSwKCSAgKHRocmVhZF9uYW1lX29iamVjdCksICh0aHJlYWRfbmFtZV9vYmplY3RfZGVmYXVsdCksCgkgIChnc3Rfb2JqZWN0X25hbWVfY29tcGFyZSksIChnc3Rfb2JqZWN0X3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpLCAodGhyZWFkX2xpbmtfdW5saW5rKSwKCSAgKGdzdF9wYWRfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19sb2dfbWVzc2FnZV9mdW5jKSwKCSAgKGdzdF9jaGVja19sb2dfY3JpdGljYWxfZnVuYyksIChnc3RfY2hlY2tfaW5pdCk6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOiAoc2V0dXBfcGlwZWxpbmUpLAoJICAocnVuX3BpcGVsaW5lKSwgKFNUQVJUX1RFU1QpLCAoc2ltcGxlX2xhdW5jaF9saW5lc19zdWl0ZSksIChtYWluKToKCSAgQWRkZWQgY2hlY2tzLgoKMjAwNS0wMy0wNyAxODoyOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpdGVyYXRvci4qOiBBZGRlZCBtaXNzaW5nIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9pbml0KSwgKGdzdF9pdGVyYXRvcl9uZXcpLAoJICAoZ3N0X2xpc3RfaXRlcmF0b3JfbmV4dCksIChnc3RfbGlzdF9pdGVyYXRvcl9yZXN5bmMpLAoJICAoZ3N0X2xpc3RfaXRlcmF0b3JfZnJlZSksIChnc3RfaXRlcmF0b3JfbmV3X2xpc3QpLAoJICAoZ3N0X2l0ZXJhdG9yX3BvcCksIChnc3RfaXRlcmF0b3JfbmV4dCksIChnc3RfaXRlcmF0b3JfcmVzeW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9mcmVlKSwgKGdzdF9pdGVyYXRvcl9wdXNoKSwgKGZpbHRlcl9uZXh0KSwKCSAgKGZpbHRlcl9yZXN5bmMpLCAoZmlsdGVyX3VuaW5pdCksIChmaWx0ZXJfZnJlZSksCgkgIChnc3RfaXRlcmF0b3JfZmlsdGVyKSwgKGdzdF9pdGVyYXRvcl9mb2xkKSwgKGZvcmVhY2hfZm9sZF9mdW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9mb3JlYWNoKSwgKGZpbmRfY3VzdG9tX2ZvbGRfZnVuYyksCgkgIChnc3RfaXRlcmF0b3JfZmluZF9jdXN0b20pOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICBBZGRlZCBtaXNzaW5nIGZpbGVzLgoKMjAwNS0wMy0wNyAxODoyNzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcmVsYXRpb25zLnR4dDoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvdGhyZWFkL3RocmVhZC5jOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5jOgoJKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmM6CgkqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXJpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0Y3B1LmM6CgkqIGdzdC9nc3RkYXRhLmM6CgkqIGdzdC9nc3RkYXRhLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cHJvYmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnLmM6CgkqIGdzdC9nc3R0YWdpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGhyZWFkLmM6CgkqIGdzdC9nc3R0cmFzaHN0YWNrLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZXMuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBvL25iLnBvOgoJKiBwby9ydS5wbzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMi5jOgoJKiB0b29scy9nc3QtY29tcHByZXAuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIEZpcnN0IFRIUkVBREVEIGJhY2twb3J0IGF0dGVtcHQsIGZvY3VzaW5nIG9uIGFkZGluZyBsb2NrcyBhbmQgbWFraW5nIHN1cmUgdGhlIEFQSSBpcyB0aHJlYWRzYWZlLiBOZWVkcyBtb3JlIHdvcmsuIE1vci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRmlyc3QgVEhSRUFERUQgYmFja3BvcnQgYXR0ZW1wdCwgZm9jdXNpbmcgb24gYWRkaW5nIGxvY2tzIGFuZAoJICBtYWtpbmcgc3VyZSB0aGUgQVBJIGlzIHRocmVhZHNhZmUuIE5lZWRzIG1vcmUgd29yay4gTW9yZSBkb2NzCgkgIGZvbGxvdyB0aGlzIHdlZWsuCgoyMDA1LTAyLTI1IDAwOjEwOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGFub3RoZXIgbm8tZGVidWcgYnVpbGQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIG5vLWRlYnVnIGJ1aWxkIGZpeAoKMjAwNS0wMi0yNCAyMzo0MTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmM6CgkgIGRpc2FibGUgZGVidWcgYnVpbGQgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIGRlYnVnIGJ1aWxkIGZpeAoKMjAwNS0wMi0yNCAxNzoxMjoxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBOZXcgZmlsZXMsIGdvb2QgZm9yIHJ1bm5pbmcgY29tcGxleGl0eSBiZW5jaG1hcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9iZW5jaC1jb21wbGV4aXR5LnNjbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmdudXBsb3Q6IE5ldyBmaWxlcywgZ29vZCBmb3IgcnVubmluZyBjb21wbGV4aXR5CgkgIGJlbmNobWFya3MuCgoyMDA1LTAyLTI0IDE1OjM2OjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IE5ldyB0ZXN0LCBzZXRzIHVwIE4gZWxlbWVudHMsIGF0IGVhY2ggbGV2ZWwgdGVlaW5nIGludG8gTSBzdHJlYW1zIHBlciBlbGVtZW50LiBFZWVlbnRlcmVzdGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY29tcGxleGl0eS5jOiBOZXcgdGVzdCwgc2V0cyB1cCBOIGVsZW1lbnRzLCBhdCBlYWNoIGxldmVsCgkgIHRlZWluZyBpbnRvIE0gc3RyZWFtcyBwZXIgZWxlbWVudC4gRWVlZW50ZXJlc3RpbmcuCgoyMDA1LTAyLTI0IDEyOjMxOjEyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9tYXNzX2VsZW1lbnRzLmdudXBsb3Q6IGdudXBsb3QgZmlsZSBmb3IgdGhlIG1hc3NfZWxlbWVudHMgYmVuY2htYXJrLiBSdW4gYXMgZ251cGxvdCBtYXNzX2VsZW1lbnRzLmdudXBsb3QgPiBmb28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDItMjQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbWFzc19lbGVtZW50cy5nbnVwbG90OiBnbnVwbG90IGZpbGUgZm9yIHRoZSBtYXNzX2VsZW1lbnRzCgkgIGJlbmNobWFyay4gUnVuIGFzIGdudXBsb3QgbWFzc19lbGVtZW50cy5nbnVwbG90ID4gZm9vLnBzLCBhZnRlcgoJICBydW5uaW5nIGJlbmNoLW1hc3NfZWxlbWVudHMuc2NtLgoJICAqIHRlc3RzL2JlbmNoLW1hc3NfZWxlbWVudHMuc2NtOiBOZXcgc2NyaXB0LCBydW5zIG1hc3NfZWxlbWVudHMKCSAgZm9yIHZhcmlvdXMgbnVtYmVycyBvZiBpZGVudGl0aWVzLCBvdXRwdXR0aW5nIHRoZSByZXN1bHRzIHRvIGEKCSAgZmlsZS4gUmVxdWlyZXMgZ3VpbGUgMS42LiBKdXN0IGZvciB0ZXN0aW5nLgoKMjAwNS0wMi0yMyAxNToxNDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkgIG9uZSBtb3JlIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25lIG1vcmUgZml4CgoyMDA1LTAyLTIzIDE1OjA2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJICBjb21waWxlIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBpbGUgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wMi0yMiAxNjozNDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgaHVudGluZyBzZWFzb24gb24gMC45IGlzIG5vdyBPUEVOCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBodW50aW5nIHNlYXNvbiBvbiAwLjkgaXMgbm93IE9QRU4KCg==